From patchwork Wed Mar 27 20:08:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Klimov X-Patchwork-Id: 17680 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1UKwe4-0007I6-4U; Wed, 27 Mar 2013 21:08:28 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-2) with esmtp id 1UKwe3-0006Rg-HP; Wed, 27 Mar 2013 21:08:27 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754472Ab3C0UIY (ORCPT + 1 other); Wed, 27 Mar 2013 16:08:24 -0400 Received: from mail-pa0-f41.google.com ([209.85.220.41]:38916 "EHLO mail-pa0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754218Ab3C0UIY (ORCPT ); Wed, 27 Mar 2013 16:08:24 -0400 Received: by mail-pa0-f41.google.com with SMTP id kx1so1864975pab.0 for ; Wed, 27 Mar 2013 13:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:subject:from:to:cc:date:content-type:x-mailer :content-transfer-encoding:mime-version; bh=3YK3DY7naLT4T+7Ff/raZZF3mPsZGXfUtAf+eTwRT+8=; b=gywnOlIuY4VRdRJaWZxZwTj+7u6GDHegeZeEcOtaIhIUMzsK46QokjcxeqoFmQg43E Xh8ApdMwlYCkNXstJgqui9033yV0Rqt2qeTxmR9fMO0cy7iO7NqwP+jnvTtojDs8b4TY Dwh04ugIUNRWmZxkqcyk2ZcploW4eRHHOrtGcYE1Qbb79vxZHLSI+5TPXgyxZiLtzLrb oK5xo/w8jAFzKL49csKwCdU2uvf+8d479y9qlMlupMbw91y0BM5F5qbWTmTEvXRH53xg OGklvapgMZD5nzKhrDhYRLmgtbTVTq8R9ZckZg16CsmVDaDVO6kbD1CY+zAWFVejJkq2 1Rug== X-Received: by 10.66.164.97 with SMTP id yp1mr31871635pab.49.1364414903447; Wed, 27 Mar 2013 13:08:23 -0700 (PDT) Received: from [61.83.230.213] ([61.83.230.213]) by mx.google.com with ESMTPS id t1sm24559814pab.12.2013.03.27.13.08.20 (version=SSLv3 cipher=RC4-SHA bits=128/128); Wed, 27 Mar 2013 13:08:22 -0700 (PDT) Message-ID: <1364414899.3909.25.camel@samsungRC530> Subject: [patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device doesn't match From: Alexey Klimov To: mchehab@redhat.com Cc: jkosina@suse.cz, linux-input@vger.kernel.org, linux@wagner-budenheim.de, klimov.linux@gmail.com, linux-media@vger.kernel.org Date: Thu, 28 Mar 2013 00:08:19 +0400 X-Mailer: Evolution 3.2.3-0ubuntu6 Mime-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2013.3.27.195715 X-PMX-Spam: Gauge=XI, Probability=11%, Report=' RU_TLD 0.5, FORGED_FROM_GMAIL 0.1, MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, MIME_LOWER_CASE 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1400_1499 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, CT_TEXT_PLAIN_UTF8_CAPS 0, DKIM_SIGNATURE 0, INVALID_MSGID_NO_FQDN 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __DATE_TZ_RU 0, __FRAUD_BODY_WEBMAIL 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NS , __YOUTUBE_RCVD 0' 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: Alexey Klimov --- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/media/radio/radio-ma901.c b/drivers/media/radio/radio-ma901.c index c61f590..348dafc 100644 --- a/drivers/media/radio/radio-ma901.c +++ b/drivers/media/radio/radio-ma901.c @@ -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");