Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30b29537 authored by Alexey Klimov's avatar Alexey Klimov Committed by Jiri Kosina
Browse files

media: radio-ma901: return ENODEV in probe if usb_device doesn't match



Masterkit MA901 usb radio device shares USB ID with Atmel V-USB devices.
This patch adds additional checks in usb_ma901radio_probe() and if
product or manufacturer doesn't match we return -ENODEV and don't
continue. This allows hid drivers to handle not MA901 device.

Signed-off-by: default avatarAlexey Klimov <klimov.linux@gmail.com>
Acked-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 5b4617d8
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -347,9 +347,20 @@ static void usb_ma901radio_release(struct v4l2_device *v4l2_dev)
static int usb_ma901radio_probe(struct usb_interface *intf,
				const struct usb_device_id *id)
{
	struct usb_device *dev = interface_to_usbdev(intf);
	struct ma901radio_device *radio;
	int retval = 0;

	/* Masterkit MA901 usb radio has the same USB ID as many others
	 * Atmel V-USB devices. Let's make additional checks to be sure
	 * that this is our device.
	 */

	if (dev->product && dev->manufacturer &&
		(strncmp(dev->product, "MA901", 5) != 0
		|| strncmp(dev->manufacturer, "www.masterkit.ru", 16) != 0))
		return -ENODEV;

	radio = kzalloc(sizeof(struct ma901radio_device), GFP_KERNEL);
	if (!radio) {
		dev_err(&intf->dev, "kzalloc for ma901radio_device failed\n");