Unverified Commit 70125123 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!13912 media: dvbdev: fix the logic when DVB_DYNAMIC_MINORS is not set

parents df4c334b 7e531866
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -530,6 +530,9 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
	for (minor = 0; minor < MAX_DVB_MINORS; minor++)
		if (!dvb_minors[minor])
			break;
#else
	minor = nums2minor(adap->num, type, id);
#endif
	if (minor >= MAX_DVB_MINORS) {
		if (new_node) {
			list_del(&new_node->list_head);
@@ -543,17 +546,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
		mutex_unlock(&dvbdev_register_lock);
		return -EINVAL;
	}
#else
	minor = nums2minor(adap->num, type, id);
	if (minor >= MAX_DVB_MINORS) {
		dvb_media_device_free(dvbdev);
		list_del(&dvbdev->list_head);
		kfree(dvbdev);
		*pdvbdev = NULL;
		mutex_unlock(&dvbdev_register_lock);
		return ret;
	}
#endif

	dvbdev->minor = minor;
	dvb_minors[minor] = dvb_device_get(dvbdev);
	up_write(&minor_rwsem);