From nobody Mon Oct 19 18:23:03 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022114.outbound.protection.outlook.com [52.101.96.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4AC43FE362; Tue, 7 Jul 2026 12:26:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.114 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427222; cv=fail; b=tvmU3bdaAITDaCrh2HZbUDT0hSBcTfzbC0no/iOLa7GbGrh59+iyrnb5GQSaZAA6BBU7z36M+TfMpreNrEZnmX0NfI7waDIeM4v84n5X9+d+pVsDWTZavCooibl4HuLhO9sRj+E0ednbJalh7ryArM+7sbsnAYmn977taIwK/F0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427222; c=relaxed/simple; bh=MHbZObFH/YiDHiGKbRxzAATYxmqcK5zgrhAUZaM05wk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Xx5qOnL/t1tzQQlie+fnA1XnCBo5jM9Mw3qMteJGwbfIEaYyLqGpqTfjWm6dHg2Kf3qI84fpOG5qBQjpzEAjKkc0U2YJPSazuEjA5anpRzWKtPF1nwmVjJndHfnMnthobItwbZPihow93MSJzANU10NaV58NkwriUd0udtGyWKE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=FcCZOFAL; arc=fail smtp.client-ip=52.101.96.114 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="FcCZOFAL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q0wdsznwVTNW+UUoyhCJjgINQ13bsPyOcDS5yIh1JDCvmYUSbpuTudblZlQGTJSlcUZYs4I1j9F/NKIERiFzMpO8k6hU/die7G6L3y2rRezpmjks73jYCNKFrIWsAwo/lgFDLpfpF7hqNUhS2fV/9Eam0wM96aXcAxNBRj08fUB8ZiJF8HmCnBstFG/B8hn9okjafKsdjhDH6lnCR9q0GTs1O8ThZ02PdZ/auwZmzaqH1X7TD94QCWnVl3gfk6TlOkrAdVHJ0405efhEqj/cdZpJ+mztXsHQH3t3FaohJC/mXIuUhZh1NUCM1p3eGke6gkI/6DiSLTJOtNbas6WVfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MqUN+Ge5pa8YkE8//+RBDKMEy9BtL9Ej05adkUt6a9o=; b=K95gBAnUcJ63L/kZA1c91bdaPh8oD4A40RRRZhzFPgp07wUGmtsoPBiNiRCFac2kgI82mQ7BKeupUO/SW7/BFt5oJxDa/mQ6gzlbG9LIgLzzz5WRn4gz3jLHwsADY3jDeomgtkTRRZJAVxCCvXXam3YONqs8NJMxFSlXs4e783e6+NUR+hF5gQC2aUj622HKEO7ndHNtz3RumvwsslDHI0JkkFF92zGQ72D085RL9lLUmbm+tLA6uzTr5qZMmCHzKO1pxxzfxD7Jeug8MD9JGq5eKstW1UH9I/jT+6oEVCSHjyYTP7fi2h8APvcEidHVQC+xhSjpG3cXcxIu4whAdg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MqUN+Ge5pa8YkE8//+RBDKMEy9BtL9Ej05adkUt6a9o=; b=FcCZOFALIoQOVKgwlR2QgXETJyFLMo4vqIVUdzvlP/BxbTqVnE0+QnK+CdCHFYOzA9I1h65wA/4Pljsb0Wuxe82AVi3PUxy3Y+rX3G/SB/RmUt346YS6UGHsys5Do8EkJyWxUGhpqQ81rwXVt2euRrLPgiiC1CSBc+FLbThAphM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by CWXP265MB2615.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:8b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.13; Tue, 7 Jul 2026 12:26:56 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:56 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:40 +0100 Subject: [PATCH v2 1/7] wifi: ath9k_htc: don't store usb_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-1-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=2845; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=MHbZObFH/YiDHiGKbRxzAATYxmqcK5zgrhAUZaM05wk=; b=F+Xy09P6O+kMXaie+SWGy76yz7RsnCRpPLvMuUMxPJK1xq7qZ0iAhCk6TlXp5vF1B0QPNLK+2 a39iaBet8+QDeycXS+OpgUDlCLHz55yAIsAjNg5w1y8scG1cZBUSdXo X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|CWXP265MB2615:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b8eee36-8e4b-4531-2aa9-08dedc230901 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|7416014|10070799003|366016|1800799024|921020|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: MjwzkSUtHUELPQWQQ9lInTnWXl55PVh4TUTfHZDJ7BkTFVcEvpJ86KVgF9Ess/Suscr7mrDU1/o4tjlBQUPjJ9D4Hsepbv8PCJH68DC743uhXyW7hiBM1UNgo0sY3ipQsCSpg2bVN1cY51iM0TEU+CyOSNGVe/YtoRwAwby1x43DpnDVQVDyf2HLVMcAryKENE3TNwUSmRbiQGd1waFTc77NxN/b1PL2dW9hgqQjB7IbrflIK8mu4bBahIulGrvMFcJR+g8sEBMmGzgH+MCwXbXpxRqFFSUnF/XHGfmzWtf4+7OvViQ2kUUvp80cID557zUv0MfBwoxdobo0tkR2ie8IxyfzYFs/+kvxlP5M8ib2Gn+YbF5tuBJ0UmSUIr9T3MsL+bB9MYoMLr1Xjan+9zQmyM+aK+v537pxmRhXAmOKH4R4u02RiFa6jpB8Bp+mv2d1VZeI0Xi7LNSfDgBwk+1MZ4mMeDRrdZ95dkY1NOCnjqYbqdhQ0na7qyH5tYjxAoqhtNem6X9TeSzgCe0ffVd5O6lwCyU+Vz2CYU6ZHfvD5cTVAFgV8xlqpjGLLe/TSF/gRLGi3gdN/BrnX/N1fpBQIW+oKqAKQPaHWWtPCV6HwBQMGrKi/uDAVYV0mcy7GeAP3388B452cGtrgYr2erZ+FReancmZDbAFisrMKVns0ZxrFcGRZE2SlxKy4APxt8TieoWoFpu7bbdpph2+/w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(7416014)(10070799003)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RHluSnRaM1NxT0tuTEtkYlJLM2U4Y0o2eGxSS292SUZZZXkxdTdxekNtT09O?= =?utf-8?B?MUgwUDliQjA2cUZCQjR4Q05qQzgybFpmNzBEVnhjbE5QUTJ5clY5OW5jckh6?= =?utf-8?B?MTF2YmFvaTlJaUw3aXNXOUprV0Q1RWpUVW5wTmp4aFJ3YldIUDBCRm1PaUFw?= =?utf-8?B?eVJNMnN6dUpOS3RoTWVvZHczZjlUeFRQdXJ2eFRuSHcxbnhDZlc5L3RxRzFq?= =?utf-8?B?Z0xyWGdJTzB0UXQrOXlraGdGelN4WGorTjRzNEN4a1M3L09DK2s0R2hBQlYr?= =?utf-8?B?ZzBybFBFRkhLUUZkRVhRTXhiaUlWVHpKWWgrSC8wRWJvZU1YTUZZaXJuejAw?= =?utf-8?B?RDROQytaVXpZLzdmdXpLaC8zdjJHVGQzOHV5SUtsS05GdUU3YUF6WjMxMlF2?= =?utf-8?B?Nks5TGRlcGREZklla24yS1NHYldETU92MFFQaHo0YTlJN3BvcCsweVBIRzd1?= =?utf-8?B?K1ZoemxXazlTMU1iWWhkUm5ZbUpROGFERzQ4aEV5aU5ranNsTUNURTVGZVR0?= =?utf-8?B?aDBlU3Z1VnNMTHl2K3JFa0NhZkEwRjducHNhZGVqNDU5MjljZlpuM2xxMVFu?= =?utf-8?B?dk16OFIvMG1tZ0NQN0IwT1hSVWRuK0xZNStuWjY4NHY4Y1luVTFmL2luT2lx?= =?utf-8?B?QWVUMXF4NGk2K1YvcytPQkI5SHpTaGRHVExJZGJEd1BuNlplS2ZvQ0QxbERr?= =?utf-8?B?MmVxeFN4UzRsMFVYREdvNDlQTHliVjJwVXVndnlIMERTdWNnZEltNU1icWVl?= =?utf-8?B?dkpyU08zNGxMQTVlVzZlOXUvVlJkVmt0Qmt4MTNqd3B6M2hSTDVaYVFBWjdi?= =?utf-8?B?bXF1TDk2SnZuSWpUVnlPRUpybVd6Vm1hcDhaeVdXaDNHUVpZVEFad2MxWGta?= =?utf-8?B?UVNVRmtucm1tN2laZHBnMFVkd3NHWHA5dVJLTmc3ay94ZDJxTUswNkp1TWNh?= =?utf-8?B?MUQ2SWY2ei9XZHFZSGJITk1PRWhyT3RFdGRFRWI1cmxJVXd4a042WkxPa3ha?= =?utf-8?B?UHBkZjNUUm5YZVRQY3l2T0k1NnpadHMybGovTVh4VjdkcmxWQjZORE1pVU9L?= =?utf-8?B?UVJaYnQyWStZYXk1QUFTWkxjMFZKY1JLckdudnNxbTBhWEZHM0lQSWJJMkRI?= =?utf-8?B?eXNzQjRmVjZyTVhtTTBlNmRnaE56QXhLNXBHUHZZSGozcm5SaUtqanhsb2dy?= =?utf-8?B?anRyQkJIeGlROXRvNHFtZktGYzNQWUZGSnAxUEJMN3dNQUFJY1crWi9jb1VS?= =?utf-8?B?NkFxQWVmS0p4Wnk4STNDSDhLb1NlZEFZemFjS2x0aEt6SnhkMEFEczUwMSsr?= =?utf-8?B?bFpuWGVKUUFGVmZqZVd4bjI3VmRhSi9QMkFtYmFBVnhNYUFiVW9qMVRPTHBB?= =?utf-8?B?clM2RzI4VGFPd2FKZGJBY29zdVFzR0hET05aSFhRZlJqa3Fxd3lnTEpvVWxE?= =?utf-8?B?ZCs0ZU5xWk5kVlpBcEhTeUtTWVJueGdUTVNneXVjYUlEZDd0YW8vL080ckJK?= =?utf-8?B?U1VZaXFVaUIwMUN2cGkvRGhYamp1NnllL2tXb2ljUUREVUFmNS9CNFFKdnB3?= =?utf-8?B?c3VsdVFWS0x1SDFVajh2cy82bTVtQlJnemVMRStFSkRmREpvblpXUmVZM3Nm?= =?utf-8?B?bjBIZ3A0WWxHSlJqaVZEaHg1aWJuK2N5a3JlNnpsdWkrdW93WG9sU2ExemRE?= =?utf-8?B?MTV3ZEVJRUVjYThrbURyTDZvMFM4RnorTGgraXA4QWVQczdEV1M5Q3cwdDFL?= =?utf-8?B?b3FmOU9pb2RvR3MwNlFWVmN4R2lFZU0rZlFYVU9WOHZOU0tMejdWMzgxMkg3?= =?utf-8?B?bGhEUVdNU3h6cXJZSVJoTTFCQlhzQVFYdVRHUEVEeThZKzI4VEtROERMVTdn?= =?utf-8?B?NnRQdlVPaWVhYVVrMTFUcVJhL291cGJnMzhsMFRNNVlPM1ArUitrdDFpd3dt?= =?utf-8?B?NitYbWRmKzIxT3BMYnZleWxiM1FLSEFZTm5zMGEzMkJRWGswUkdyRUhQT3kv?= =?utf-8?B?aUtXa08zUmtCekVkZG1yMmErcFJNUHd0b1pBZytkZVk3Q3lTenBOQUR4cHJJ?= =?utf-8?B?WWtOZy8xcnpsZ3NDOGZnK1VnOG91UkREaGtscThGRzdJT0taWFh5aTVmVVRN?= =?utf-8?B?Q3VoeldtU1hIWkk2bTNobFJ2T3ViS013Mm1kK0pYaytVYnViRjUvUmFORTQ1?= =?utf-8?B?Umo1cmRZOCtzNUZtQUxCa1hvSzZqZlRsNEtsTXVJMU0wR0dmOVdXRThOTmp3?= =?utf-8?B?UURVbjZKVDFEYVIzOWRGd2ovUEF4bHhSdnZNdzFjY1A1eEEyanBTQmlSS3RL?= =?utf-8?B?Ly91bHJOdVhVem5WRjZIdTB2SE9JM1BvR3JzcUZIdDQxdnMxcThiUT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 0b8eee36-8e4b-4531-2aa9-08dedc230901 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:56.6948 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0gPWQKiAdJiOq3CCp36GlS+38yI1lxA77muj8KADLGI5xHP0mYGaxVLHqxVv4gMYfBm3wdDiBHYwnkbVhIJsVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP265MB2615 usb_device_id is not guaranteed to live longer than probe due to presence of dynamic ID. All information apart from driver_data can be easily retrieved from usb_device, so just store driver_data. Signed-off-by: Gary Guo --- drivers/net/wireless/ath/ath9k/hif_usb.c | 12 ++++++------ drivers/net/wireless/ath/ath9k/hif_usb.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireles= s/ath/ath9k/hif_usb.c index 47f904e7e652..d3491ff08e6e 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c @@ -1087,7 +1087,7 @@ static int ath9k_hif_usb_download_fw(struct hif_devic= e_usb *hif_dev) } kfree(buf); =20 - if (IS_AR7010_DEVICE(hif_dev->usb_device_id->driver_info)) + if (IS_AR7010_DEVICE(hif_dev->id_info)) firm_offset =3D AR7010_FIRMWARE_TEXT; else firm_offset =3D AR9271_FIRMWARE_TEXT; @@ -1182,7 +1182,7 @@ static int ath9k_hif_request_firmware(struct hif_devi= ce_usb *hif_dev, if (MAJOR_VERSION_REQ =3D=3D 1 && hif_dev->fw_minor_index =3D=3D 3) { const char *filename; =20 - if (IS_AR7010_DEVICE(hif_dev->usb_device_id->driver_info)) + if (IS_AR7010_DEVICE(hif_dev->id_info)) filename =3D FIRMWARE_AR7010_1_1; else filename =3D FIRMWARE_AR9271; @@ -1198,7 +1198,7 @@ static int ath9k_hif_request_firmware(struct hif_devi= ce_usb *hif_dev, =20 return -ENOENT; } else { - if (IS_AR7010_DEVICE(hif_dev->usb_device_id->driver_info)) + if (IS_AR7010_DEVICE(hif_dev->id_info)) chip =3D "7010"; else chip =3D "9271"; @@ -1255,9 +1255,9 @@ static void ath9k_hif_usb_firmware_cb(const struct fi= rmware *fw, void *context) =20 ret =3D ath9k_htc_hw_init(hif_dev->htc_handle, &hif_dev->interface->dev, - hif_dev->usb_device_id->idProduct, + le16_to_cpu(hif_dev->udev->descriptor.idProduct), hif_dev->udev->product, - hif_dev->usb_device_id->driver_info); + hif_dev->id_info); if (ret) { ret =3D -EINVAL; goto err_htc_hw_init; @@ -1369,7 +1369,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *= interface, =20 hif_dev->udev =3D udev; hif_dev->interface =3D interface; - hif_dev->usb_device_id =3D id; + hif_dev->id_info =3D id->driver_info; #ifdef CONFIG_PM udev->reset_resume =3D 1; #endif diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.h b/drivers/net/wireles= s/ath/ath9k/hif_usb.h index dc0b0fa5c325..b3e7b0fb54b8 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.h +++ b/drivers/net/wireless/ath/ath9k/hif_usb.h @@ -115,7 +115,7 @@ struct cmd_buf { struct hif_device_usb { struct usb_device *udev; struct usb_interface *interface; - const struct usb_device_id *usb_device_id; + int id_info; const void *fw_data; size_t fw_size; struct completion fw_done; --=20 2.54.0 From nobody Mon Oct 19 18:23:03 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022114.outbound.protection.outlook.com [52.101.96.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34EBC414A31; Tue, 7 Jul 2026 12:27:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.114 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427228; cv=fail; b=MitQfTgxSLBff0POMmfTzyDlYo7Nn8XwdLrIe166FE4SIaOyhPa/QcpVuJLhwzuXN5IRKx6nfxpNpHo/EIjuPoZWRz3Ry9iObDvpu3mG4Tma2HQvRhdJyyiO5TGT0jINHX5cMFPzBFi+o8cJ3S4dIdhfQaK0Mzn5u84hx2c0bUU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427228; c=relaxed/simple; bh=6+vYp2bGWhLA04W5W7NsXQfW73uwfudeZDZMQMgWbSs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Cqyiax2/8kOAEe5AGWaCdmc0DvG4Eva10pLXHtNND7vB+vYcPig1m1517LKb6XoM1XfPAaU5H4wzsbIa1lfDKoKwZUZRHlwOqZTsCNTp+vSA+LERYxqbRgn3vjs1KZzmVVOhDT7b2O31BsjWml7IRBq2hMUfe1EK65Hi6mYvVpY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=ux1DmfP+; arc=fail smtp.client-ip=52.101.96.114 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="ux1DmfP+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NH5/O6jChFITqsIjPsTnstkSiGk/s9uOntYtj3Qs/n47tzlLiL9Q9+o0r8AtM1nw4pobM/SDvQXjyCyfSIUXRojywZKejlxUVSuMrVd3T0Ms+BWBf1+QKYgxxZm6CCIbgPZp7m2Lp5C64OZIQI51YJ7JLB70jO9SuliBO4HcnOusEtJ3D1IHNsWXia2C1ScXFDBuDEIXXw3HA0+5LE3m5GDrVebTdcxLWdgvVJUV1cK0hNvvu6QZhhLtUwLIjBBCkbL6f5XkyPA8/vyyOcl9ur19uaWFbH8M2a2gOC9gO4Li+R7PkpVQs+fO9/OApRzbV7EfgqRoIHO85dcsFE4p2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2BPhTB6rTYTl5dD6cwPc2MbehDrDbzu10dJ3ACK5IXk=; b=PhcscTGLpXJAwvFmMF+ukvc+XVElBUlZyb/SS8rzIDaFUN6H7G1DkFV8adOrVK8N2+w+R9eCBA0uOaBWam0NzaX0b24CRHhqlHeAMNJotR4S6l5zmFgUnaby/mQrGD82i0nIlsj5OWkou1bTAPQ2pNF9ioW29nCQ+Ao265iYNAjqb+7RvzpLFOsDal8lEah729QXY00GpNl4tmrV14MR3cdWDU4NsRIPoW8cd3Hi1L2zNpFu1VS0lQjhUN9k2qm+tfjqg1h0GjiQF/KyrOF9qMIFZpRgqmBFb4vo5dELZZv2pJJ9vg1M5riDqEtM22a0NqZZ+MZKFT7vidckjEgdMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2BPhTB6rTYTl5dD6cwPc2MbehDrDbzu10dJ3ACK5IXk=; b=ux1DmfP+DOjMRFYL5GU1i9fxWrvmm+B+f38/qQ7qFgfkAd4gELpz8IVreWTaaURVs1PMbT55iHVqmqtDaVtjSwsqqoPjzqeAKyIsCfXMuG8Tphv4HEQag2aq4GFfAvdOMQHwapV4UN55AOebgzlJ7PS6q0Yk3uPXBIjlVL0TUzs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by CWXP265MB2615.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:8b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.13; Tue, 7 Jul 2026 12:26:57 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:57 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:41 +0100 Subject: [PATCH v2 2/7] usb: usbtmc: don't store usb_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-2-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo , Manuel Ebner X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=1091; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=6+vYp2bGWhLA04W5W7NsXQfW73uwfudeZDZMQMgWbSs=; b=R6n/eRh1ZOo7ShHuxUbVNfa4nbxwsQ1xqllj/8CGLxdssFIA1HITatjBJPNej3NURYrtUDF/P 9QU1AAVZFXnAcVovMcO2HPzv6atqqrME8w1KO2YqvyyP2uxsr4wnQvK X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|CWXP265MB2615:EE_ X-MS-Office365-Filtering-Correlation-Id: 2df17553-ba90-425a-69b3-08dedc230942 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|7416014|10070799003|366016|1800799024|921020|18002099003|22082099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: ZE1PobLhjoxlZyucCGeZtzQQ4DrQutUKWkyNjcrDuOUTWMnFWN4Weoj3ZbYICf+XzEq+8O4S1ktdgPQ2T0Sx/z24jR5m2cIXpf6YLpwDI/BCdkBOnHqkcQE6oQGks1nAbXzMQafjM8ztsrNxTSwO/jl4bQVbZ/UOCSx2ODVuBMUVbd0wltfemRNgxqerXLE5j/kH8ei8kDQUNHmVymrmxCdiHraPRNudo3BAjDcKLbDdeZ9zj13B5SMXPMqviOJvqCkB27+7zQ/tJyDQ7n143FEl9spOCQ8KAHh+tiO/+b3FAuJtss4iI6bA1NFJ0wqag1l91FQy7BEUzuoLMFjKiby0jHADCF0rz/o+3BMaTlDj2He97wOH6miX+mS6dZPy9WL3rmpn7P2jWz5gCHG/T11CAcIqQi/VVHIOf2iZkYm+Vem2gv6u67fO6xMBucaP5mVmva//w3Y6VZh5qF/iQf1a3mVcF2/5Uic9jf2VbgV5FaqLMrYBkC8QpLl9Arpk4vbvjcuOG9kFUPwZ+Xw2jQwLka4AIoCqerIiJ6aN6TTIz+3FaDIZanMAzY2cfL0kbDs6PEVPZljwofD05G0SKTN1dlg4Ot8MMZe3Jaxzr49W0C2yNg27c/+w6ACrZgkmpgfg/4T8YdzXp61tMDoCDHzDV9rRpJ/44afUcCqLk37xiWtyNFn8x9hlvzDNqo33hyZ9yAdHPfvm714LC9z1uQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(7416014)(10070799003)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZVJ4TVN5djFLZTJOU2huc1ZoazZ6L3BiWXUvYXdiVnpQNGhVZVZEOUlEcWtV?= =?utf-8?B?akt2Zld6RWRTRUFaTEtZOTQ4Sko1aExZUzlWZkpRTThKWG95VS9EVWg2REYw?= =?utf-8?B?amNEdE0rQXVPTWFtWWVBLy9PYU1FN0pKYnhKa0VvYXcrVW42cmxTQlJzME1F?= =?utf-8?B?S1orcjZLK0hObEN3ZWlTQzIwc1ZyRm0zaVY2aUFESjU3WEpYdDg4K1B1TlhC?= =?utf-8?B?THRJYTdCWE92Njk5VjlzUGNhVHI1bTBpVWpLRGNSbWxRV3g4N3Z5dENTbi90?= =?utf-8?B?bWJURm90a1krSUVmN3YvRzdVb25hNHk2NWFRd3BuLzdsOXVsaUVRWG0rYm1F?= =?utf-8?B?TWdpVkQ4c0ZrVlNHbVVLNTB0eHFCVnBsdGRjaVNaQzhmSHg5V3NmU0E2Yjgx?= =?utf-8?B?UHZ1WEdKR3ZqdzFHYklWUU1NQWE5STFoRzdtaUY4MGx3aU5RZ0lQRThscUph?= =?utf-8?B?dDBvNWhlT1RyT1VURG11NTJBQmRtT1BaOEtrMGt1QjcwcXU5OTBLd0JuOCsr?= =?utf-8?B?aTVjRk5kdzViNFc1WlA0ZW5MZ3NBT0Y4SVYrSDFtTEl1a1N1SEFPdVJqamJs?= =?utf-8?B?elJya2cvenpsQkJGelZwbXdseUY1T2lkaFdleFB3ZUx5ZjVoUDhtQmlXaGZ0?= =?utf-8?B?QjdxQ1FYSHVaWFF4MnlBaXRCYTRnTThIYUVOQWtycDVDZ3VMa3o1bExUWVo0?= =?utf-8?B?a2Q3RlhpNDJ4ejBkSHBSUjVWNUcyZjM4d1ZEM2oxcHZ1UFdEV2FlRlB0eFMz?= =?utf-8?B?c1hFTzgrTFJDVU4xTnJGSDgyczVESmdyUmdidGVVYmFJWHpQSi92K05uTENw?= =?utf-8?B?ZXdKUnM3U2l4OUpMQ0xtOXJsNzV0dVZlRGpZdjk1Ly9XUXgrN2FEY2M0ZlIz?= =?utf-8?B?WC9RbmRibStrL2RSZ3lOczRESnQra3J6Q3BFYUE1ZTlkd3d5MURnWmxnb0sz?= =?utf-8?B?WnJFazhyOW9uOGpudC80a1lwUlVkd3IyM1FrM1c3NEtHT2xHZENsVEZUWTN1?= =?utf-8?B?NlM3bXJxNkxhOG13Nm02SWhIZXV2V2pyWGZjYzE1VU14WGlJVzQwTEdSQVdq?= =?utf-8?B?UTM5dXdsYU5XSEI3dVF2WWJJcW9vNTRhaWg4ZEVIUXozUnI0TG95STIrYkN6?= =?utf-8?B?VnF0N0FkT0Zhc2RIb1BKUHlPdmlwZ0RzaVp3MGwxREFmTXNOSlJiNlBqNW9C?= =?utf-8?B?SUs0a1BGK0EvcVVJNklnODhnbXZUN2p5YlZLVkY5bjhmYlozWGplRGozQ2tI?= =?utf-8?B?ajNERTJxSUJOMnhZWGNsVmJCRnlLQVRHOTdibEltZG9vOE53MG1EWFR0Tk5W?= =?utf-8?B?dzhyRXR2SVlDeU5KVG1pZEdXMmRHZE9zSUMyWXNZT3hJWHJFeTZubnNqMFRN?= =?utf-8?B?b2tUWFlHWCtVOFo3M1J5eG0rNTFFTlNPMGdTMjRaZzEwRkZxd2FnSVREclFP?= =?utf-8?B?UEdVemplNThvUmdHZHhQMGE5T1pTdWprUkdrRjdtempZd29vZWlVRDFEMGwz?= =?utf-8?B?bTFwVGVpdkpKcUx4Qk1US3BPbkp1MjVhWlVHRDRiUU12VFpMK0tEN1lDZUVK?= =?utf-8?B?RnFGQ0dlVjJWa1RpRE1vZksySXJJYzN4ZHhqRytrOEFEREpBR002RGxIMlhB?= =?utf-8?B?VXJFeGF1UVNvcSsxQlIyZVZOVmQvYU1kV2ZLS1A0S1V1QXpaM0RISGxNeXEz?= =?utf-8?B?TG9xUUVTa3VZdDZDMVR3ZnFXSmgyWFo2U0dBY3E1Q0JnN1JzM3lIVnpNNkd1?= =?utf-8?B?RlVzblZ3WStqOWVkVjdlWVdQbko0QTJoR1gycVU1eHBWLzV1Sm1nTldhSVln?= =?utf-8?B?YSt4eHJlUS8xcnFjS0hEblQwTFJuYVB1VmVZWGx2aG53RGt3bExSYWcxZTJ1?= =?utf-8?B?cTVyQXphL1UrTmQ1SWlDME5hMGo0RU1SS3hEQTcyL1kwUmFTU3RIQVVZY0hv?= =?utf-8?B?T0U3Q0h3Mzd0MGNTZ0FCdFF6SHE3WTc4Um8wMVZOWWFNbXd4djhIN0xSZ0VW?= =?utf-8?B?UDRPM2FXVVIxdDdHTlJtWkVMcmh5NFlkK0tSVUs3VWRhZWtHTTlseVlUTmh1?= =?utf-8?B?ZUxVZ05RTlBwV3d3Zm0reVhTWkg5Yldvd1VYb1EwYXJQRGR3d29BSjh2V2pY?= =?utf-8?B?SVNZa1VITjhoNHlHUXBPUElBZHg4MVdERFFYemgyajFzTHJrM3RucUpnRGtT?= =?utf-8?B?ZGQ3N1RpNlFQdDJPbVdJWm9aUGtUeXdNQkE4d3N2WDUxNDhScEZVbi9kTUFu?= =?utf-8?B?cStJMjFQT2tTRXRRb25XTERwa2tIeXgyTTUwaTJoVlRCZlhtWHRFTm53Wnls?= =?utf-8?B?TzBNQy9GaWEyZS9ENnUxb2ltNlNFQmFNZythMnlvQmFFbTEyZFNlZz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 2df17553-ba90-425a-69b3-08dedc230942 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:57.1417 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Lq7mf95O1w3BwQrMc3X3dEV8mq38uxdFrZKddczn1tiOLn8AR6weJN6TkHSwfaSx+5sDA9k0HqjvXFcanMV4xA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP265MB2615 usb_device_id is not guaranteed to live longer than probe due to presence of dynamic ID. This stored ID is unused so remove it. Reviewed-by: Manuel Ebner Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/usb/class/usbtmc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c index af9ae55dae14..51cd9320a736 100644 --- a/drivers/usb/class/usbtmc.c +++ b/drivers/usb/class/usbtmc.c @@ -71,7 +71,6 @@ struct usbtmc_dev_capabilities { * allocated for each USBTMC device in the driver's probe function. */ struct usbtmc_device_data { - const struct usb_device_id *id; struct usb_device *usb_dev; struct usb_interface *intf; struct list_head file_list; @@ -2394,7 +2393,6 @@ static int usbtmc_probe(struct usb_interface *intf, return -ENOMEM; =20 data->intf =3D intf; - data->id =3D id; data->usb_dev =3D usb_get_dev(interface_to_usbdev(intf)); usb_set_intfdata(intf, data); kref_init(&data->kref); --=20 2.54.0 From nobody Mon Oct 19 18:23:03 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022114.outbound.protection.outlook.com [52.101.96.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6993D41A784; Tue, 7 Jul 2026 12:27:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.114 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427230; cv=fail; b=Juy9kEyBCPbQ6kbIUDGJCmLoxCTruoHm2SWmlvqc62W7eUzIZ2knOvxU62De+OVjHcy8aSqKI790iZmRfaXBtS8Fv1Vv+rbsIC8aJyAMyqrF+A+iU/NDjjfSvKkRdJ8AZtgxj3mn8iLdW5C29qL9qfoUBswtITgoE43NJmrsa20= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427230; c=relaxed/simple; bh=H5JFKotXcRvBL+j9x2gVWjs5di3esqntHjg/n1H0gL0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ZLLEbvLl4HpdKJ9IsjMR2UFlKnc9eh4ldoqGTgDVHFiIZZgyrx4uoxEbBRhVhkbpwlSMGbuV70Ft1E5777SypirBgD4FkedtZ1Wjxs03QRq6Fmup59Kwq4O/FP74YRDQNgm36mV2NlCMgBGLIVqcfXOTM07btHKk7j/KRiwmj0k= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=z42VeGru; arc=fail smtp.client-ip=52.101.96.114 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="z42VeGru" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TohsxdBIOgpDr8RViM7yp75sRD3r0oExuAuvfUsWrgXaOpLhpruVCPIb6+KDTR5RCQhLDykrEgyNYHCcu6KciypkHPZyRNwUnTUjZRiyMzTR3gN3taWnHyneEquabdFYgDHat2fAV/VdpPxRoWILc7UxmBR3AhoWtT/maHkx7AHIZSqjtqIIdYl8QVAy1qZ4h4FiliGrYoJH/OOy1f1LeRPPOvnKBCn45cck9XEVSiWExMkkBAq7SuD0qU9lJUeOUj0K2aeRgoxaJdCac007wrQfDRjsE+WZvSsyd3Wv3WsXLTRNhNzLydw4g/drdXwCSgZEBx42Br8usHEEhk048Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wKJZ67QQ885SkqS0B0nB7uW1qr5umZrpZ5Tc2Hd5MW8=; b=JI5ux/4Lp5FKG0f2uYOOe5mXpoRjWgAt3ImXTdM4/TogmjRamimX4GP3tE6Y6YCpOWptu5kc8XGWrKPu2Xv7ipQRI/ZFnYEpz8egGnqItx6D/fL1+d7e3GITP8AjEHt5G8Y1UZPsZb8NOz+IN946/pyAGhUX9riBMH5yQAbgpvnG9zNMes8FnoCcnHZ59Hkvntj0Cu5LHYXqv6gEooRAEyk5bDgPxra4xcGMk5/mlryxUtHSUNKNgx5gPGqCCefSCazmhW7FgdT709NhlWR8xFusrTZs8egS9jm00fcg3oNFzI3+b2uyB94oM4GYJNMrr2X1KMrmfQa2lmqZ/dJWoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wKJZ67QQ885SkqS0B0nB7uW1qr5umZrpZ5Tc2Hd5MW8=; b=z42VeGruNK4lmS1r+HGwadOmX3eK86J2QcZB+5fndA7r51s8JEmXfMA93wZw0UEEFP0SNSkatsbfYI1ah+06QuzKc8sSPNb6wF0SXyqBFKCWGOG09NmQUbjuJj2P+MxZWITAZjqtuN3c65wZ5HPUJf0eRjevG0zlZMFgUfS31hg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by CWXP265MB2615.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:8b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.13; Tue, 7 Jul 2026 12:26:57 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:57 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:42 +0100 Subject: [PATCH v2 3/7] usb: serial: spcp8x5: don't store usb_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-3-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo , Manuel Ebner X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=1552; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=H5JFKotXcRvBL+j9x2gVWjs5di3esqntHjg/n1H0gL0=; b=P77tZzMnJYZxzDerSi4XVJcO0FMK+FnQt7iSZRf88ngqZR5Pu+Addl4UxgGA9ZA0cREr+5UFV 6W9EZxeAzNsB6mzcy6Uw50sf4JFew+UYZXlx6g0kKxMdqUL18YRSBzi X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|CWXP265MB2615:EE_ X-MS-Office365-Filtering-Correlation-Id: b3803309-9abc-4c79-b58b-08dedc230986 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|7416014|10070799003|366016|1800799024|921020|18002099003|22082099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: iBgRhaO94C7HyKtHQ+28p9hIgLtM11+cgntsD+nQrCDUjBLC7j642xf8q7MObKBWGWRxxjgfR2y4YL21uOa9vkzUUkjABfwJZiD0xfijVJKMm9du+LnjoDPc9QrROaxDddN+YI7dNK8gGrH2Y/QRwihOrQ4JVE12F3GWMpMsHU0Qj3GaPUSYXOCrIOsCSr5XmmqOslNWTBPh0YmyVAzEcFxVRvV3oNULSM2I4qvl1e4/loXpmpslxs1E6iheatMWocZD7FdbvIp8QRKjftZnoJlu2f0gJsNbNfl1z3i7yHpBYnPikkWZYQp/T2T932DWAdmP1AAyVugeVfdLRzR/OFWi1S/Bp/mSuueL35ORBcpEhousbAS9moQrdQDgRuUXQ2n7lyW+fD/TC1q3sFJQze7zdW8PAlkGQhAsYURbugSnxdrzDy3D6Ydxt032pCP+eaQHH7vD62bSvYTmFFhIdTByNl/foO0VbSvhTrEs97xho6lJBMcK2XyZxBqyWxJlaaGEFG3CEsLvpeYfoddu01dmEKcHm7q4OdYnwoFRYa2AdxLaQB/SCwX01JZB4kBFLfl79JT5OjjVvUXMFwhyLHzzh3CLECGUe3VmoQ7PuhWflP09DlLqwMSPsBtmYUIBPzZbvVnHljGlmuVafhYNaVjGdXbJo7qY0SKp4TbPcZCV/21/m0B+4IAbrVMuOHuUImP5H80xHI2NtTkCSz4BBA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(7416014)(10070799003)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d0V1K2JqR2liMEFXTVU5T3ZoRHM2dUlkUDZwSG0wcklsSHhQd1RRQ3prTm1t?= =?utf-8?B?QWhTTzUvaG5VZjZFQlo1OVRUemxoWS9mMGRSbktpRUZza3hrMDE4N1hxVHFj?= =?utf-8?B?RTl1Z3BIbm9YTERaZTRyN1VhOUFLYk82MGovVmlRdUd0TEQxd0I0YmtBclMx?= =?utf-8?B?Tk82aWRndERBdXI0MFg4L3lMU0NOeWdOTkRyNVdqK2pIbXBiZjN5Z3lMYUtE?= =?utf-8?B?TFF2d25ueEF0c0wxVmJKN2IzQXRaY1VpR0kyWmtKU3ZUOVZXVDB1bHF5R0Qr?= =?utf-8?B?L2NlOTBJNWFWR3FJeFNHQ1IwQlM3dHVxZ1AzQzU5L0FLdjJTNVVVTk1BZ0tv?= =?utf-8?B?cFJ5SUdqd01FNjRPdHBwUzJzUGRRUzRLYXU2ZVAwdkpIaEhIYTNWbm9XWiti?= =?utf-8?B?dTlsQ3JjMnE2SlVHb0xEdUd0eVF2QzBlUEFPZ3BaWEEzc2NITUtTOFora1NU?= =?utf-8?B?WGRuYjZKTG8wSFJWdTU5Nk9uVTVTd3ZSMmFYLzZIVE1ja05vUGJvSEVzRlYw?= =?utf-8?B?M2tSNUUzWGdLRzhKYjVaWStEbFdKRVRzVUpRdXE3Y3BHVGtENkhOSVlOb0NK?= =?utf-8?B?VEhadmlhbVFFKy83bVNWdVNXWk5MekV0VkdPV3dGMzdCSEFyaGY3aTZLbXhI?= =?utf-8?B?WGdtZzN2UlR2MDZQb3VDOE42TVBGTkxITjlxeHpHbDF3c0piOEFhbUdPWXhi?= =?utf-8?B?Y2pFMzRPSTNyZXJVRmk2cFVVaTlrUS96YzU4Q3YvU0dJZEtzTG5wSUtCUUhW?= =?utf-8?B?NjJNQVA0eERwSlU3RWpsK3JMaEYxZFM1bG02VENhVHJMMHI4K2s0ejN1WWRS?= =?utf-8?B?d1p0dmdTR1phV3AzQ0kyTk9idXdtMHY5dzJPTnVjWXdDMmxUZUJJcFRVTWUv?= =?utf-8?B?bGlBTTJPM3ZMcUVkUksvZWljbVhwNmlKUUhDcEVWdU1pTzlMVU5LRnV0Rkk4?= =?utf-8?B?ZDZMeTNtRXJINFRFcmU1c3FHQXZJTDBHd240RmFmYTdMS0MwRWJESk5zRGhy?= =?utf-8?B?MG40MVR5aWtOMER2SEtLdXpVcUh1czNIVUpNZDB1OW4zd2pRaUo1bE5SRXdz?= =?utf-8?B?QzFMS29QUW9jWlZjUGFxZnBCdDcxWjlvVGozSW4zMHRkMG1OK3ZBV0lwd3dj?= =?utf-8?B?clNlbC9lOXVlcUoxazNzdVZ6cVB1T1hvbXJ2RVFBWmJ1VU8ySUJmOXhha0J5?= =?utf-8?B?YjU2dUhXZ2JtTXptR3RtSTVtd25UUTdEbHFvSmhKcmNvNms4ZVA2TDdmT0N3?= =?utf-8?B?TmJveGVrbjZQNHdLbS9SV2JlVFBGQVh2SDFwbnB6QjgvNnNxZmt2R0hQR21q?= =?utf-8?B?cG83T05aMEh5cTRnbnFmUUV1RG1GelJnbGtRL3YzcWdMTk02ZmhicDhWN0JE?= =?utf-8?B?Zm5EV0FCaDRmMy9vbUFWSDNlL0U5R0JpcG1KYXFhZUFPcSttenJST09HVlhZ?= =?utf-8?B?NlRndjZNMURYZDdSVmJ2Wm1vYUtOYWl2dWpXRDFTbWljMXJzSkZweWhWVklz?= =?utf-8?B?WEw5SkNNUWhIdXRhK0NEb0F1QVNHbVlqSVJvR3BqRnNVVzFLZVZuMkQrb2k2?= =?utf-8?B?cmNWNFcrelVSbDk2R1pSVDkvTmcxVG16WVZDVWpYRkxqYktSTmtjWUc4eFZL?= =?utf-8?B?VGpScHhaWE1keHVxbWwwREZCVVlRR0NTMlRqMmtXS1JpSzlidS9KUUVJOVJJ?= =?utf-8?B?NnZEUGpld3kwSGxMYzg5VndtaXhDTTc0c0VGNHhEZE9QemNrTDJjOVI0ZUVQ?= =?utf-8?B?eHNoUUg4WGxTdzNjVlNscEh3cW1rNkN4RHR2aUFnNTRDNFZPVml5SDBTc0gw?= =?utf-8?B?OERRbjU1dVhoYzF0aXh3SXJXTS81YnFzY1VSMTJSOVcxL040aFJibWw5Y3lQ?= =?utf-8?B?dTVkejFZQ2FVcEwwbmYrOTArYW5KY2NIaGF4MmRjTGVSNVhnY25JeTJuMktZ?= =?utf-8?B?R1Q5S1FNMUFrcDhyMUhVRWtQcHQvb2ZnMkxHSTZLeGZRQ1Q4ekxOV2V6bTc3?= =?utf-8?B?UWR1MllnQWhYVkZteVZxR0gwUWsydWRHNm9OZ2dmbkZDaDgvRU95SkVlU2ky?= =?utf-8?B?cEM4eHNieVBJdFQxZGJrYVdNakZCSGVrZDlIQWdkMStoT0xwdGJuYlg5TmpW?= =?utf-8?B?bUJVaytDZnIrMDhxWmt5VTFGaXB3OFJIZjV1R2lROEpNWmtoVnk2TzV3R0RB?= =?utf-8?B?ZUlDOWVPa3BpYnZ2REtaK0RRSE1KbXp0a1pwZ2NsSGRUalhHTmxqcUVmd2dU?= =?utf-8?B?NFc1RWZDUml1OTRzczZlOEtuT2xsczB5RFBwUDlHZ2V2ZFQrRllwMkIvbmlu?= =?utf-8?B?VFBiQzZReGtmVDEzUEY4R01icSt5L2NkOFo1WFBaU0wxbys4QkNvQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: b3803309-9abc-4c79-b58b-08dedc230986 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:57.5692 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xR2/SlvL6TxTNo2cvYalnOFnH+ugagL+PaWBtCnVb0+VZ8ritgx+MRPBKbL1t615t9mIXpRl1I4q0BWUVNV2HQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP265MB2615 USB probe functions should not keep usb_device_id for longer than probe due to presence of dynamic ID removal. USB serial does not support ID removal, however in this case only driver_data is ever needed, there is no reason keeping the usb_device_id in the first place, so convert it as well. Reviewed-by: Manuel Ebner Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/usb/serial/spcp8x5.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c index c11d64bf08fb..0e7715a02df4 100644 --- a/drivers/usb/serial/spcp8x5.c +++ b/drivers/usb/serial/spcp8x5.c @@ -133,14 +133,14 @@ struct spcp8x5_private { static int spcp8x5_probe(struct usb_serial *serial, const struct usb_device_id *id) { - usb_set_serial_data(serial, (void *)id); + usb_set_serial_data(serial, (void *)id->driver_info); =20 return 0; } =20 static int spcp8x5_port_probe(struct usb_serial_port *port) { - const struct usb_device_id *id =3D usb_get_serial_data(port->serial); + unsigned int quirks =3D (unsigned int)(unsigned long)usb_get_serial_data(= port->serial); struct spcp8x5_private *priv; =20 priv =3D kzalloc_obj(*priv); @@ -148,7 +148,7 @@ static int spcp8x5_port_probe(struct usb_serial_port *p= ort) return -ENOMEM; =20 spin_lock_init(&priv->lock); - priv->quirks =3D id->driver_info; + priv->quirks =3D quirks; =20 usb_set_serial_port_data(port, priv); =20 --=20 2.54.0 From nobody Mon Oct 19 18:23:03 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020078.outbound.protection.outlook.com [52.101.195.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 908423FFF85; Tue, 7 Jul 2026 12:27:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427223; cv=fail; b=qvZ2jPjE0aSRbu63yA8Uyb3rik95P9Pli5+Zz8WNAietYPpiFXatKTd7kOXmJqIOLV+a1pC+QaPcjuF/qrmtR3s6cyIM71IJQ+IlbICcO6JA7Wb70ixnF6ePXEfqQpVHwmPLgl1D/Giz9hFcOjwqdLBTQFf50T+6OxCCY3lEIV0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427223; c=relaxed/simple; bh=9IzFoPq4V3Z7TwiHHEN0xyIYYm4BOZwBCQu5gs+z5G0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=BUrsxY/Vt24twdWqfyRAqVMst7OtuSfe4BlR7XC2ymvI+M5E7whb+AtpuqkyHM/7a/RRcd1syWC/hLzDqE6sFpbSS5IuRbakCiAEme0GS4vE95VXARaR0iOoDOFiRXwQjhWd3Gbp6UfzRf9N0xPvVpgNiquBPLsIKBYQrzFgl2o= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=Lj8WH2C7; arc=fail smtp.client-ip=52.101.195.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="Lj8WH2C7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kTnBjMDGOBpa6UEuF+uU7OFVd+TWK4/tz3GWSCdsSEYN3aZJr1i2+/M8lJS64+B6opyATTcZ3dmmvxIHhCBGOo0d19Hha9cbGZtkjkwK0zFUvwUxmxxrF2CtAALWB9RvBhr+Hnp9LYsuwIQIui+KasE+pCo12PusSFvwWfTBjaHXUQvRB8lpDRzszflWS+ftv9I+QUwZz1fe3ZjN8kegeSqTJF9Xq/qtx4RFL6TLvtKEhkdQZlmBrILAUxS5FF9QnzIgCm7heGsCEeDw+cLYG+9/bFMiBWxItd1RuwK766eUouQnPA9X1kYwYfAq05dZEqrirkqlMFlLXFgSQhcN4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gtgwQVaJXlDUIpdX9JwkVeJX3PHffHmv/2dBPFGjK0M=; b=v+QmhMlD9bMfhB0LHmur/DserkiGdw2NgjkqgLdIvGSOf7lv4j7l0C/7r8gAZUEauXyVRtrQnj2c2Zt25fIjFeSt95MZYAzWSBfEtgHVvz4GDAN78lmeZUW66HHecYUvpzOfGHZn6kocP3SiGH4t3Dayx4csNTdcQ8ikewKElfwio1Q3cKaSvFhKtTeDbJuY1R6kcuFE5OeabYXg8b4YRhjvEh2dhP99iFifLR4F3BZq/k39WCcwewiPacPI6kXbb5NIndM+9aQwclng/8PKMdjClNJyf96GGWJ4kAYiSaxbwH8aJE2vG6Y6YlKlpvXz66L7Cqq9ak5JuJ6AcEdJEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gtgwQVaJXlDUIpdX9JwkVeJX3PHffHmv/2dBPFGjK0M=; b=Lj8WH2C7bSsjxqYuFWFE+x1zUsuiTJGa5cm9/7kbejSRqVPtK2Ob0N2ztPYcxGdweYAu6318Veb6iF3lp/QV/hFwEHjdJynoliLVsdsMqA3CEW4qYiGCMdhVw4rI7e6ML188qqtqEHarDKe0gY2k0k7DAaJU3cM3h8eYK8b2kJ4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by LO4P265MB7369.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Tue, 7 Jul 2026 12:26:58 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:58 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:43 +0100 Subject: [PATCH v2 4/7] media: as102: do not rely on id table address comparison Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-4-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=3994; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=9IzFoPq4V3Z7TwiHHEN0xyIYYm4BOZwBCQu5gs+z5G0=; b=BzioJqoXyLQbZlaP8dKa4mLMdNwAYOj5lJKpgPqYE0df+LSwSt6tX8VXEcr2VPdRejsho/E6+ xMoOhbA9apUBNzys0j8pZfhLkVstKTNsA1EgEclvK7ryZ71SGcixs46 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|LO4P265MB7369:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b8c561e-2ee1-4169-143e-08dedc2309c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|1800799024|366016|376014|23010399003|22082099003|18002099003|56012099006|6133799003|921020; X-Microsoft-Antispam-Message-Info: pXlH6HLoj0eeilc3/ptW0c0puHxtmut11IqM0PbUzGZlJbaawmudsBa26ZKdMC89cM309V9M8BGLvA2P1jOtvQU11j0VADE9AYyDs00Zkg0QNpZdYXVCkwUo5IlfBDz3JkJGCM2+zyR8yrYPmujvT3kgJnyyAl10MA7b587HqT0SoY0p2qQ8wJwPMv57o2pBp4+Bb9iZojAD+tKYYF/tzcGvYRHEGjO2IcTdZiNhWrCIi56qWQTsSZCRVNVjMVtYuHZA63NMlAZGg+o3XPATRPLMSGBEbrRwCU0r0V6LomGL8FNSLGG/pqlO+w723j/YN+tmji8eco91FD/GrGYYCqgL+hdo8Cg6wfCsizKFS6ixPpfD7IEv0TO+XSmUN2NmJAi+wE5twKh/JuWCHN6VbrGO/RFOYMDOtFfOxO0Y1/YTMtgs2NiUKf9P/sGw+dUjnDMWR1sA3vd/Rfp3vb0eXKVcnUylYCDo4kdJvdK7Y+c1ETNEoYPorDfHcD4M0vMu1HQY9nAZKmI4m7aOfblqvc9za2eOsdBKvdp5/888oLFuykMd5ax9bqpmEep5f1klBk9DLp+wuNmC0ofnQOnelFWzE8kb7vEJDxwzWeq58sIjyX9jtJ2cQp1JDVwoLBiJWb11VbNZRbl9wTjovd+NZDFyUustjb57ZNchU5krLXIF7MPxLIq7FhjCXytpU178+sccm4anxOx6Fbi511LXRw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(1800799024)(366016)(376014)(23010399003)(22082099003)(18002099003)(56012099006)(6133799003)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TU9GMm9lNE1RR1ZmV2JkWUl3eHNxSkhHY01ZYmFGQjQzNVNBcFcxU1VhYW9z?= =?utf-8?B?Yzk2LzVoSlV1bVBwN3JrZnN1Z0hlOThxRklsU1NHdFdkKzNxVEoyZnVGVU15?= =?utf-8?B?Tzg5d0pvWWp6REtFN0FoL2ZUaE1lMzB4MW1mSmhoOExzK0RNUStxU25lWW4y?= =?utf-8?B?K2xUR0RVcWZOU3hHekxjVkpHeWEzcGNNOEZEcVByMzZkWnZnMFpyV3pnWkRL?= =?utf-8?B?SWhURTUvNHlYakpDWXlkN2R2ZXo1SHUvTHMyeEtDc0w3VWJrSUIvNGVzenY0?= =?utf-8?B?UUR3TS9jNmJtc0dOV3BvbW1ReTRHejZrczJUbzlFais3dW91OE5DdklOdEdR?= =?utf-8?B?YWN0Z1UyUE03MzF6UUhCM2loR1dKS2Z4MHRTZW8xVHJISjJ5dXIzVDR4V3F4?= =?utf-8?B?SytoK3JIVnlGZ1JMQnF3SmR0Y2ttZVR0d0dWVzFoOEI1N1p6clpGL3hpeHNO?= =?utf-8?B?UGRqY2tEODJKUk1qUVQ1NjNNZnk3TDVqK0RvcmNqVzcvRi95TGw5cGpkVVg4?= =?utf-8?B?N1h5TVBnK3NIOXI3TTNFVzdyOVVtcENuTEJhdUZ2aDNCS3BVRXlrVTNaenQ5?= =?utf-8?B?YmUyQW5WdG9LcFZZRUs4SUhWdkJwaE9CTGw0c3Q1LytNM0RpdDNRVVExTURV?= =?utf-8?B?SGpCbHk2RWp4SEtURW1LNFZqY1gzYlBleEFWN2JLb2Njc0FPbXQ5YTRJR2ZX?= =?utf-8?B?UDNtNDhUL2ZxMi9BSjFWdWNzQVJBcnBiOGhuT3JUK1RYMklQQ0Rkck83Ujdz?= =?utf-8?B?WWQzRTBsZlkzRjQyRjVBUTh6QkRkanY3SlhjVS8vOVoyV0VCREphRTE3U1lm?= =?utf-8?B?NGRzZzNkR1htZFpHS0R2QkMxNHlTVTZLeWUzNWNCRmFPbkR3ZGdWaTZrUDZQ?= =?utf-8?B?U2E0NE9QQXVkWWVxV08vTTlkc2h6TDUvM0Vvd0paRzBDQkpsazRWS2xrelUw?= =?utf-8?B?NGErWXB4enlaS1FINDUyUEsybmFkajJ3SlA0QWxZTGdVTk42QnFXN0JsQTB4?= =?utf-8?B?V2ZtVnlDWERvelNEMy96VUlwSzFZRlA3UjJ1OEhqam82Yk5TZWljMVd3eG5K?= =?utf-8?B?WGRsVWlIUEllUnpOaFhqOE9IZ0xQVXZ5dkFKdndJbHh1V0M4MGpHTzcvdklR?= =?utf-8?B?aG1MWWhxM21tODJEUVIxTE9xYnV5ek9zK1BuTW40ZWFJL1F0WlBvalUwc0pO?= =?utf-8?B?YXNjMWR1MjZSVFhkcXFkVWoxc2VZZVM5UllaaXdMM1dJdXdVZVBjcjQvckk2?= =?utf-8?B?Uko1bWNxS0tDQ21ySFFyWmhVcWtnMWx2RVB0RmpIaUxqWjNDYVVsVGtpSzAy?= =?utf-8?B?alhNazdhTEQrVXNkSy8zYU1sMkRJSENYdE5LSVZmd2MzL1U3M2ZLdE02eGht?= =?utf-8?B?U1FtR0x5cDhxUFoyUlhGS1RnVXd5ZTFGVzBLU1VXVjdKbi9FR3huMU9XTUFi?= =?utf-8?B?RUZtaHhaZTNyRmlnQmJWYmVmYlRoQmxHeHNVTXV1NlR3Q1N6WW5Cd2lzcUdH?= =?utf-8?B?MnNtZ2orRVViNXZpd1dZQUx5b1VmVXE0d3VYYXhWcFl5VXFrRVZpOXF6bmZO?= =?utf-8?B?NHBZdEU5QzFaZ0NhdEJoRXlnd0FwM3hiTzJBOFAveVhCOVhqRWV6cUZWWWlQ?= =?utf-8?B?UU5JWWtKd0Ixb1FIb2xVYTB5RWl2YU9HMk02aW9hN3c4TktDdHBlSDNSLzlG?= =?utf-8?B?TnVZRkp5SU9WOEZmWHlzZXV1U0dua3VSaE0ycWIxRUw3Qmx3ZDVUVG9oVGcy?= =?utf-8?B?dnRseGFkQWVqdDZDRnoydHhCZ1J6NzNlTjQ2L1U5V0FINnhqSFNjVVNFN2NX?= =?utf-8?B?SkxDZHllbURSMjNPZ0t5R3ptTUJmTWQ2WVdmRGl0YmJGd0FQZkQ0c21USFl4?= =?utf-8?B?RGZwejBCTUNXQURjcVY1QUJTa0tPemk3YTNybkFURGx6UnM0Nm9WSjM3SE4r?= =?utf-8?B?VlFGNDNyclp4ZGdUU3ZTKzdEN1oyMXhHYzUzcGw0eGczaEdtVWZNd0NIckRV?= =?utf-8?B?WDRtbTlQSzcyZm5hVWtXbjl3Y3BHWDlmbkx5WDZrNFNmaENHdGl1UFB1WXB5?= =?utf-8?B?a21zK1NTUjFNcDZsK1FLOXMyQ1A5N0srcVN3L1dSYko1TTlvbnM5ZzFjT0cw?= =?utf-8?B?aFMxT09UeEJrMTBqYU1pcktybWJSM3pxaXlmYjMzazl2a3kwMTRReUhKdmVV?= =?utf-8?B?VURHMUs5R21wVHdDb0kzbXdKMlNxUjV5RWsvMU9WVVIvM3NQeFZLRDk2RmRO?= =?utf-8?B?R3QyZFBUT1NZeDYwS1F0TlRwS05FTW5JYXR6VW9yYkYyMFd0VWxQTVl2THlG?= =?utf-8?B?MHVvdUR4Z3EyWXBEaVJKaTdhYk14SEo2cGhzSEZWQ3A3OGt0YTI0dz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 9b8c561e-2ee1-4169-143e-08dedc2309c8 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:57.9936 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DhEkZe9Y+p6DtsN1o5dbBK7eUZNxbjyfveEVd+yRokltlTEW74MDJN8iyXDkE8ykcMD4wlMjBTzbeu1IMVM9LQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB7369 The driver info should be retrieved using the driver_info field, not by address comparison. Signed-off-by: Gary Guo --- drivers/media/usb/as102/as102_usb_drv.c | 73 ++++++++++++++---------------= ---- 1 file changed, 30 insertions(+), 43 deletions(-) diff --git a/drivers/media/usb/as102/as102_usb_drv.c b/drivers/media/usb/as= 102/as102_usb_drv.c index a11024451ceb..be2f8be560fa 100644 --- a/drivers/media/usb/as102/as102_usb_drv.c +++ b/drivers/media/usb/as102/as102_usb_drv.c @@ -24,35 +24,33 @@ static void as102_usb_stop_stream(struct as102_dev_t *d= ev); static int as102_open(struct inode *inode, struct file *file); static int as102_release(struct inode *inode, struct file *file); =20 -static const struct usb_device_id as102_usb_id_table[] =3D { - { USB_DEVICE(AS102_USB_DEVICE_VENDOR_ID, AS102_USB_DEVICE_PID_0001) }, - { USB_DEVICE(PCTV_74E_USB_VID, PCTV_74E_USB_PID) }, - { USB_DEVICE(ELGATO_EYETV_DTT_USB_VID, ELGATO_EYETV_DTT_USB_PID) }, - { USB_DEVICE(NBOX_DVBT_DONGLE_USB_VID, NBOX_DVBT_DONGLE_USB_PID) }, - { USB_DEVICE(SKY_IT_DIGITAL_KEY_USB_VID, SKY_IT_DIGITAL_KEY_USB_PID) }, - { } /* Terminating entry */ +struct as102_dev_info { + const char *name; + /* + * eLNA configuration: devices built on the reference design work best + * with 0xA0, while custom designs seem to require 0xC0 + */ + uint8_t elna_cfg; }; =20 -/* Note that this table must always have the same number of entries as the - as102_usb_id_table struct */ -static const char * const as102_device_names[] =3D { - AS102_REFERENCE_DESIGN, - AS102_PCTV_74E, - AS102_ELGATO_EYETV_DTT_NAME, - AS102_NBOX_DVBT_DONGLE_NAME, - AS102_SKY_IT_DIGITAL_KEY_NAME, - NULL /* Terminating entry */ -}; +#define DRIVER_INFO(dev_name, dev_elna_cfg) \ + .driver_info =3D (kernel_ulong_t)&(const struct as102_dev_info){ \ + .name =3D (dev_name), \ + .elna_cfg =3D (dev_elna_cfg), \ + } =20 -/* eLNA configuration: devices built on the reference design work best - with 0xA0, while custom designs seem to require 0xC0 */ -static uint8_t const as102_elna_cfg[] =3D { - 0xA0, - 0xC0, - 0xC0, - 0xA0, - 0xA0, - 0x00 /* Terminating entry */ +static const struct usb_device_id as102_usb_id_table[] =3D { + { USB_DEVICE(AS102_USB_DEVICE_VENDOR_ID, AS102_USB_DEVICE_PID_0001), + DRIVER_INFO(AS102_REFERENCE_DESIGN, 0xA0) }, + { USB_DEVICE(PCTV_74E_USB_VID, PCTV_74E_USB_PID), + DRIVER_INFO(AS102_PCTV_74E, 0xC0) }, + { USB_DEVICE(ELGATO_EYETV_DTT_USB_VID, ELGATO_EYETV_DTT_USB_PID), + DRIVER_INFO(AS102_ELGATO_EYETV_DTT_NAME, 0xC0) }, + { USB_DEVICE(NBOX_DVBT_DONGLE_USB_VID, NBOX_DVBT_DONGLE_USB_PID), + DRIVER_INFO(AS102_NBOX_DVBT_DONGLE_NAME, 0xA0) }, + { USB_DEVICE(SKY_IT_DIGITAL_KEY_USB_VID, SKY_IT_DIGITAL_KEY_USB_PID), + DRIVER_INFO(AS102_SKY_IT_DIGITAL_KEY_NAME, 0xA0) }, + { } /* Terminating entry */ }; =20 struct usb_driver as102_usb_driver =3D { @@ -336,29 +334,18 @@ static int as102_usb_probe(struct usb_interface *intf, { int ret; struct as102_dev_t *as102_dev; - int i; - - /* This should never actually happen */ - if (ARRAY_SIZE(as102_usb_id_table) !=3D - (sizeof(as102_device_names) / sizeof(const char *))) { - pr_err("Device names table invalid size"); - return -EINVAL; - } + const struct as102_dev_info *info =3D (const struct as102_dev_info *)id->= driver_info; =20 as102_dev =3D kzalloc_obj(struct as102_dev_t); if (as102_dev =3D=3D NULL) return -ENOMEM; =20 - /* Assign the user-friendly device name */ - for (i =3D 0; i < ARRAY_SIZE(as102_usb_id_table); i++) { - if (id =3D=3D &as102_usb_id_table[i]) { - as102_dev->name =3D as102_device_names[i]; - as102_dev->elna_cfg =3D as102_elna_cfg[i]; - } - } - - if (as102_dev->name =3D=3D NULL) + if (info) { + as102_dev->name =3D info->name; + as102_dev->elna_cfg =3D info->elna_cfg; + } else { as102_dev->name =3D "Unknown AS102 device"; + } =20 /* set private callback functions */ as102_dev->bus_adap.ops =3D &as102_priv_ops; --=20 2.54.0 From nobody Mon Oct 19 18:23:03 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020078.outbound.protection.outlook.com [52.101.195.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE41340D58D; Tue, 7 Jul 2026 12:27:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427225; cv=fail; b=AGSn7sKkJDqWEW7zApRjl1DJ9ls19Mj0vDEpdFMEd/xpbxxzZAqxhZdXof0dlNqTMg+ulWBsXE7YJG/BusxEE11+TJ3MEBRGCePH4RSiNncI5DrT5eYTJKXgN6SiZz6U+JeXlaY84BSuXt9BVebsw6kW3C9kt/4vbUvM9NDe/ac= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427225; c=relaxed/simple; bh=mQt4GX99A0rxCSX6TmR75VvpTMuybzpbb+lleSgOg0k=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=X3NhlwL/IpRLxsAtph/uxl/Nu0IrhxKwT2IycJ3B2QkL/KQiUYUUnEEdfKibwl48QxeCZF/Vv2HIN+cH4bDC9Bi3dPGR4Ig/+fEZl2C9/ndJtKerd2XyD8nNfXi/04frnc+hhezIQTNc7YoRdQ76C1fH9O1kdkhwWC3iisFlpR0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=oEt/4JPX; arc=fail smtp.client-ip=52.101.195.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="oEt/4JPX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HujnRfVWCtT8Q+HrPZ7Yj5zl935w5cEb0deAtjyKsGMiLHu47XNPFAUVl+b/h/bgOvE0S4oTGFMxz/zocojRo66t3zEPLetMaQwinhfn6z12O06HvIQ65/SIKLrJNmG3tG1iLEl1oGpo6/WyKo+DMULdPHZzMEn2fx+WQkDDNVkg25lwSywb0Qx0OFepdUfX4Hq4NxVYL3WFQGaGIPv/LESf8oT2JHqC1zL2go+ikgrXEM4vGRvzIhw9aFBnw02N8+IgBTfmc9J53GVjWY8TBEJkrjhMpZriggLRfD8Q8En8DRqOamIugVLOUqEdjxLY/rkmcAzocOE7n3rESTcwcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ha8d1zmRJYHoxFwY7QskfF49lT/+G7XOz/+2aIwZx3A=; b=y9nsrBDSW46XJJqs5mef7mHceP5xz70OIHCS5P5G5IEfabUM2ULRqcRVbifQjcVuaiKSeB9vbKRgpJD00VzS9ZTLu1PalulRRkGHcBVTWNcmePxAjlrphjVeegMdYpkkzQ59Mz9cieoIdHhkNIve943BERjK6rIDU4966/OLubb+QDaRUBpzVCORZlfI50mCf3TTARJJemRjbndtTDPhXZqb+zHAmVQPqU+JslEqdqy61JZo6xrsPCbu+sVnU3goY0BQ/ua7K7hQQSnAVtBQZeaHWCTb/s5XFdjXzGC8n29x/qeWlw48XT87Mc6eG8WSJ5dJiiEE8SyvF2EbWSyRyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ha8d1zmRJYHoxFwY7QskfF49lT/+G7XOz/+2aIwZx3A=; b=oEt/4JPXu8dtUy52f8CN6tw5xx10pZ5eIX9RKcntBkiSNRZ31lqwXlGIvIsqV8Njm/DDEl5t8jkuC4otNuR2hreIalmWaoHfd4WeT8jDCbmBNr9i8RSOpM+UFtZPe14Gpytj5QKWNfgZjbRa7qbWHQVuHveHdWTW8ubBwoywO/Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by LO4P265MB7369.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Tue, 7 Jul 2026 12:26:58 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:58 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:44 +0100 Subject: [PATCH v2 5/7] net: usb: pegasus: don't rely on id table pointer arithmetic Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-5-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=6903; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=mQt4GX99A0rxCSX6TmR75VvpTMuybzpbb+lleSgOg0k=; b=K2YgvVACGofbvIuTjS7w1s86oo7d8TVogZFLiVle7hwPgF7LYd8JreBHLIA4POvQ71UIj4pAQ wstgohiduLvC806MHI+D3tyx6Lel+DGyiWrh0zthBTtVCrQl+5z1WR0 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|LO4P265MB7369:EE_ X-MS-Office365-Filtering-Correlation-Id: e5c9010d-103f-4449-9c5d-08dedc230a07 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|1800799024|366016|376014|23010399003|22082099003|18002099003|56012099006|921020; X-Microsoft-Antispam-Message-Info: 0VDWJ6Y/BjGRuon8D2KL3wUpo49EzQ4Vwvp0ZkhTXWJbKZTEEk6t02U9NRL5FRw6iELBsS+PU8+84yA5IxFg6f3zzhYJj5wTtZykSg3/RH+zMq/f6Qs3wFAHA5MshvnkWRC3oytZ8e3dK5s14Uufw1Uhxf027XKHwQsaPmskHJrqNhK2cSFs2Jik0KOmcdxCPmAwLbOaA4Y8Aqa/tN7GK3QHTwii/I4K5OZRY4RqK/8tyR1TyZLuGmDzXLBWoNxNkw/94scdqGwuy23meSk/ifFRK4PKjdjDAUAK26czEV7PleAh7gs7Fi94SjmC8cRkDpBIfRu3m6HvAPEt9F0RpGHt5UY7qskuT9LA8NSK8BcbTKhrtLB38M1YtguFpLICvwhD9ckiasW+TlmmbKQtEr1OkEm0U1IPh6CB525ytHFz2NtujTK6jXlkRyIweAAIi8gYJvMq49Ab7q3IMysFKYzwwJGSSofq16syLaTcXc7ykTUDMvNn7NS8Xvnd3hZz57j47VuEUlOju5AuKAR3tuaiSZSHA0p69fJPlqlpFGA/FhXGdSiX0Qu6NbtIKHOmoowDBchzYzLFoWAiR/ahRWIzjp4x/C+9zyCDtbAfFq+WditCyLs8rAkeSEGSUC95Drc18jDlorz8He7WxeSxJ3sO7RriyRKVJENA24ySc/MtObRHyxVBr/+QKVjAKJV+pY89qrpNTLqfbKR5WqK62w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(1800799024)(366016)(376014)(23010399003)(22082099003)(18002099003)(56012099006)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dURrSzIxTTAzN2hMZysxenp3aDBsby9hRHpKNGE1ZlNsVld2M2ZINlNpb2dx?= =?utf-8?B?WG1ZbmVoT0Y4aE1ydWk2eXlsQytUdktoRXlXUGg0KzhjUW1VKzFicWo4VjJu?= =?utf-8?B?Ri9CUThGcy8yczY0RHJ0L2laamJmS0o2YjB6MkZhTUdhNmY1T1M1K0xRZnFm?= =?utf-8?B?WGd3L1pzK2ZoTUNKQmZ2TFFBSDhKeEtmK0kzMS91UzhJLytpMGp5SjRaR0FO?= =?utf-8?B?TTlOaUEvTWI2YWJUOTg5Yk9KQURON3JYay9VSEMwNzArUHdhdFNDRGdnakZz?= =?utf-8?B?K3MveHp6Y1k5d083emZ3OGRYNmhOdDJtUWZGM1lvZTJIQ214Nk45SlRTYjIx?= =?utf-8?B?aFViV1VQVmQ3d2d0dXRiTnMyWGtMZngyVDVqWi9Lbks0bzVQUHorbFdHTThZ?= =?utf-8?B?K1duUmZGaUVFbHdwZFBnbHZLVTJ4RFVsYjlmbzNPQTNjTFdHZ0NxakF2eDRl?= =?utf-8?B?TjVpa0ptdHFtTGNlMnBmUWNqeHBaZXR6bGtBZEZla0dVZlMvV1hCU2xOS1JJ?= =?utf-8?B?K1NpdkwybGFjYk1Vcm9hdDhQZlYvd0hIN2Irc3QzVkdha0NPM0s2T3puSXhy?= =?utf-8?B?eXM4YVFPTmZlU1RIRXlHbHNwZVR1VkZ2WFdhODYzMGNERHRVOVdZbks2aU92?= =?utf-8?B?MWFBMW5rQXVkZjYyYkJGVFJhclB2SlNoSElrMjVMNEROVWFqVGxlajhCOWRT?= =?utf-8?B?a2RQcjdsVS9PaitGVWtoSUxLSHoyOVJUa2UxRW9aVFRrU1ZPMFdHVDQvZlRM?= =?utf-8?B?VmRjcms5S210UjVHbVNEU2JlblMzbG1hWUlzUlFET2JXVnMrbkEzZHd3MlJM?= =?utf-8?B?eVJRNXZjTUEwdFcrZit5bk9rMXdLU0svNGxnWmxnTXN1SGRIZXZjMURHa2tx?= =?utf-8?B?bDBNc0JiMEJmZzNEZ0VYQUgwSW8rVDh0cDJZd0NwK1B6ZDhydDUrZFh5OHND?= =?utf-8?B?UFZPaWgwckx0eG92U1hnKzYrTEU0cUVSWENyNXMya3p5SkZueG1paU1oOVp4?= =?utf-8?B?RUV6Q25SeUp5VFF5Q1RtTkdkVGFzQlBGa0I5Nm5uZzR4VjlaM0xmY29mNldV?= =?utf-8?B?ZGlyMFpXd3FxTTNpb29scHZuRTRQeCsyTjhNK2F2ODBTUmhTVGxyUnZQeUl2?= =?utf-8?B?NDJBeDIxVEZ2UG5ISnhJZitqbjhUWDNlbWNBNmdjYlk5S2FTQktEYS9sZlRQ?= =?utf-8?B?eDRqU0J1bjY1VVhBTERvL3FzTFd2N085QzBEYzFIN2p3aGttK0hIcG52YlhP?= =?utf-8?B?MWwyYkZtUks0SWE3c1pvMWNzUWlBMlVVRE9JanYxOUhNNGFUc08wTDlFVXdx?= =?utf-8?B?MGpMUll1d1pybmlMU1ZDSDk1QWliZWtDUXRVeCszdFZxT0pmWk51U2hheS9M?= =?utf-8?B?SnFIelduZnQ0Z2NGblpKbVZmdmxNK1FvWWs3RkdrZGdqbHBzd04xYWNSWUNN?= =?utf-8?B?dFN6UHFjejRDOVlLVVlkVktHMDFlRHVPZC9EQnNocE1pdk1SVGRFbVJHYWJN?= =?utf-8?B?VWliZUdVNzdmV3NnWnRYZFZHZnR5eG44ZGYvKzVNcURzbXMvdUhSWlREQ3Jl?= =?utf-8?B?NkExSXF1cEZpaGlUYXJXa1ZNWDVLNUpCRm9mVWxSbXNHaUtPb200VUY2WWVH?= =?utf-8?B?WjJkTkhrdHVWQ2ExRUZpcmNYU0xMNXRwanlrY2JKam04QndTTW5Rc0pTNS9V?= =?utf-8?B?QU92VlZiWno0MGkxL1ZsWXplVlZsTnlzV2I3bEFIQUVDSUJVdEo1TFQ3K2V4?= =?utf-8?B?dnpwU1poaVRwZHdUNFIrL3QyTnhacjJyYWpib0wvWVB1RXN4VlphTHlhdk5C?= =?utf-8?B?aTkveHF5bTdIQ2lWcU1TWERNS2lOVXBqSm9vWTBHQ0szQTRnM2Zva2NpeFVV?= =?utf-8?B?OVNqSktZZmkwdVdwQXM3dEpMN3krYmdVenAybEhJWXI4bjJUb1BmWFhtN3p5?= =?utf-8?B?ckt1ZStHOWFPdnltUndBeTNWaEJqbUtHUGJtU1lONjB5bkZwNW1hY1RRNG1I?= =?utf-8?B?WUYxYnJmcTM0bS9sbDFISE5GTFJFTmhhM3lSNDMzSkdLVXZ1Rmxua3JVZHBh?= =?utf-8?B?UWM3eUZuZTRMSmQ4TDJqNk5xbEt3bUlnazhiMXAvc2VjSWorV203WWI3OXhI?= =?utf-8?B?QS9wZzRTV1FMZmRZTmZHbWhrNTZSb2liMUJsM2pFQUtkV1dKZUtibVZ5Mko5?= =?utf-8?B?SldjeDNBUHVXcFFoZmFUOVNOM0ZSOUVkZjQxbGptVmVRVVVaWWI1L1hPRm9y?= =?utf-8?B?c0YyV3hQT2R0dWJEUkpRbUZJSFBTYzE3VnhJK0lJUTVMK2R2TTBrMWkwVnhG?= =?utf-8?B?UmJOZTJ1K0JzZ3k0KzVLOFpyVUVlaFE5R2picEhVbVF4Um5tWTFLQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: e5c9010d-103f-4449-9c5d-08dedc230a07 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:58.4519 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ICsHmIHOkGYhT2mtsMmQ5y5B42P3o7zFcWh+BaM1S+DIjLdhnhot/90CW3UNgSAiC3PWU7mDLpDEGR3s6ev54A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB7369 The current code is broken when dynamic ID is involved; in such cases usb_device_id parameter of probe lives on the heap and the pointer arithmetic will get an index that is wildly out of bound. Instead of keeping a side table for additional information, use driver_info field of the usb_device_id. The dynamic ID parsing code needs to be updated for this; convert it to just write to the reserved entry for dynamic ID and remove the weird loop. Signed-off-by: Gary Guo --- drivers/net/usb/pegasus.c | 54 +++++++++++++++++++------------------------= ---- drivers/net/usb/pegasus.h | 3 --- 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c index 8700eeb8e22d..aba1a640fc26 100644 --- a/drivers/net/usb/pegasus.c +++ b/drivers/net/usb/pegasus.c @@ -43,21 +43,12 @@ static bool loopback; static bool mii_mode; static char *devid; =20 -static struct usb_eth_dev usb_dev_id[] =3D { -#define PEGASUS_DEV(pn, vid, pid, flags) \ - {.name =3D pn, .vendor =3D vid, .device =3D pid, .private =3D flags}, -#define PEGASUS_DEV_CLASS(pn, vid, pid, dclass, flags) \ - PEGASUS_DEV(pn, vid, pid, flags) -#include "pegasus.h" -#undef PEGASUS_DEV -#undef PEGASUS_DEV_CLASS - {NULL, 0, 0, 0}, - {NULL, 0, 0, 0} -}; +static struct usb_eth_dev dynamic_id_info =3D {}; =20 static struct usb_device_id pegasus_ids[] =3D { #define PEGASUS_DEV(pn, vid, pid, flags) \ - {.match_flags =3D USB_DEVICE_ID_MATCH_DEVICE, .idVendor =3D vid, .idProdu= ct =3D pid}, + {.match_flags =3D USB_DEVICE_ID_MATCH_DEVICE, .idVendor =3D vid, .idProdu= ct =3D pid, \ + .driver_info =3D (kernel_ulong_t)&(const struct usb_eth_dev) {.name =3D = pn, .private =3D flags}}, /* * The Belkin F8T012xx1 bluetooth adaptor has the same vendor and product * IDs as the Belkin F5D5050, so we need to teach the pegasus driver to @@ -66,7 +57,8 @@ static struct usb_device_id pegasus_ids[] =3D { */ #define PEGASUS_DEV_CLASS(pn, vid, pid, dclass, flags) \ {.match_flags =3D (USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_DEV_C= LASS), \ - .idVendor =3D vid, .idProduct =3D pid, .bDeviceClass =3D dclass}, + .idVendor =3D vid, .idProduct =3D pid, .bDeviceClass =3D dclass, \ + .driver_info =3D (kernel_ulong_t)&(const struct usb_eth_dev) {.name =3D p= n, .private =3D flags}}, #include "pegasus.h" #undef PEGASUS_DEV #undef PEGASUS_DEV_CLASS @@ -402,12 +394,12 @@ static inline int reset_mac(pegasus_t *pegasus) if (i =3D=3D REG_TIMEOUT) return -ETIMEDOUT; =20 - if (usb_dev_id[pegasus->dev_index].vendor =3D=3D VENDOR_LINKSYS || - usb_dev_id[pegasus->dev_index].vendor =3D=3D VENDOR_DLINK) { + if (le16_to_cpu(pegasus->usb->descriptor.idVendor) =3D=3D VENDOR_LINKSYS = || + le16_to_cpu(pegasus->usb->descriptor.idVendor) =3D=3D VENDOR_DLINK) { set_register(pegasus, Gpio0, 0x24); set_register(pegasus, Gpio0, 0x26); } - if (usb_dev_id[pegasus->dev_index].vendor =3D=3D VENDOR_ELCON) { + if (le16_to_cpu(pegasus->usb->descriptor.idVendor) =3D=3D VENDOR_ELCON) { __u16 auxmode; ret =3D read_mii_word(pegasus, 3, 0x1b, &auxmode); if (ret < 0) @@ -445,9 +437,9 @@ static int enable_net_traffic(struct net_device *dev, s= truct usb_device *usb) memcpy(pegasus->eth_regs, data, sizeof(data)); ret =3D set_registers(pegasus, EthCtrl0, 3, data); =20 - if (usb_dev_id[pegasus->dev_index].vendor =3D=3D VENDOR_LINKSYS || - usb_dev_id[pegasus->dev_index].vendor =3D=3D VENDOR_LINKSYS2 || - usb_dev_id[pegasus->dev_index].vendor =3D=3D VENDOR_DLINK) { + if (le16_to_cpu(pegasus->usb->descriptor.idVendor) =3D=3D VENDOR_LINKSYS = || + le16_to_cpu(pegasus->usb->descriptor.idVendor) =3D=3D VENDOR_LINKSYS2= || + le16_to_cpu(pegasus->usb->descriptor.idVendor) =3D=3D VENDOR_DLINK) { u16 auxmode; ret =3D read_mii_word(pegasus, 0, 0x1b, &auxmode); if (ret < 0) @@ -1153,7 +1145,7 @@ static int pegasus_probe(struct usb_interface *intf, struct usb_device *dev =3D interface_to_usbdev(intf); struct net_device *net; pegasus_t *pegasus; - int dev_index =3D id - pegasus_ids; + const struct usb_eth_dev *info =3D (const struct usb_eth_dev *)id->driver= _info; int res =3D -ENOMEM; static const u8 bulk_ep_addr[] =3D { PEGASUS_USB_EP_BULK_IN | USB_DIR_IN, @@ -1178,7 +1170,6 @@ static int pegasus_probe(struct usb_interface *intf, goto out; =20 pegasus =3D netdev_priv(net); - pegasus->dev_index =3D dev_index; pegasus->intf =3D intf; =20 res =3D alloc_urbs(pegasus); @@ -1206,7 +1197,7 @@ static int pegasus_probe(struct usb_interface *intf, pegasus->msg_enable =3D netif_msg_init(msg_level, NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK); =20 - pegasus->features =3D usb_dev_id[dev_index].private; + pegasus->features =3D info ? info->private : DEFAULT_GPIO_RESET; res =3D get_interrupt_interval(pegasus); if (res) goto out2; @@ -1235,7 +1226,7 @@ static int pegasus_probe(struct usb_interface *intf, queue_delayed_work(system_long_wq, &pegasus->carrier_check, CARRIER_CHECK_DELAY); dev_info(&intf->dev, "%s, %s, %pM\n", net->name, - usb_dev_id[dev_index].name, net->dev_addr); + info ? info->name : "(unknown)", net->dev_addr); return 0; =20 out3: @@ -1325,8 +1316,9 @@ static struct usb_driver pegasus_driver =3D { =20 static void __init parse_id(char *id) { - unsigned int vendor_id =3D 0, device_id =3D 0, flags =3D 0, i =3D 0; + unsigned int vendor_id =3D 0, device_id =3D 0, flags =3D 0; char *token, *name =3D NULL; + int dyn_id_index =3D ARRAY_SIZE(pegasus_ids) - 2; =20 token =3D strsep(&id, ":"); if (token) @@ -1348,14 +1340,12 @@ static void __init parse_id(char *id) if (device_id > 0x10000 || device_id =3D=3D 0) return; =20 - for (i =3D 0; usb_dev_id[i].name; i++); - usb_dev_id[i].name =3D name; - usb_dev_id[i].vendor =3D vendor_id; - usb_dev_id[i].device =3D device_id; - usb_dev_id[i].private =3D flags; - pegasus_ids[i].match_flags =3D USB_DEVICE_ID_MATCH_DEVICE; - pegasus_ids[i].idVendor =3D vendor_id; - pegasus_ids[i].idProduct =3D device_id; + dynamic_id_info.name =3D name; + dynamic_id_info.private =3D flags; + pegasus_ids[dyn_id_index].match_flags =3D USB_DEVICE_ID_MATCH_DEVICE; + pegasus_ids[dyn_id_index].idVendor =3D vendor_id; + pegasus_ids[dyn_id_index].idProduct =3D device_id; + pegasus_ids[dyn_id_index].driver_info =3D (kernel_ulong_t)&dynamic_id_inf= o; } =20 static int __init pegasus_init(void) diff --git a/drivers/net/usb/pegasus.h b/drivers/net/usb/pegasus.h index a05b143155ba..ccdedcef52e7 100644 --- a/drivers/net/usb/pegasus.h +++ b/drivers/net/usb/pegasus.h @@ -85,7 +85,6 @@ typedef struct pegasus { unsigned features; u32 msg_enable; u32 wolopts; - int dev_index; int intr_interval; struct tasklet_struct rx_tl; struct delayed_work carrier_check; @@ -102,8 +101,6 @@ typedef struct pegasus { =20 struct usb_eth_dev { char *name; - __u16 vendor; - __u16 device; __u32 private; /* LSB is gpio reset value */ }; =20 --=20 2.54.0 From nobody Mon Oct 19 18:23:03 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020078.outbound.protection.outlook.com [52.101.195.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 29A9E414A22; Tue, 7 Jul 2026 12:27:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427228; cv=fail; b=Ptbz5RnzP/uC873t+irZuXNgUEpUrO/0VUFIduuBVWXO7pv1t1DND3CwwDsUAF2ZiU+niowKgeEvrgsdJ3Dynsl5RwuqSvBiB+xLVxC87k8DCr/n+jMgI9L+Kas0F2UdrW7NWB2kpSMPcCueEaOXDBS3WRDP1k5/dMmuU/Ui+Ss= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427228; c=relaxed/simple; bh=bGNGx/Pqz/dMHsHlRYZxTN/Xro5PB9TMed2dxLbQkrw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ryyS4+9kSOrAiKsTZMZ4sniAojXaeX8Ijk4ntv49u3tJ2Mcd9FbZP1PPikYcdaGaqwJemTKKPoMFm471F1sk+bUkGz19VQNRwQBrJD2SdftRD95a5FJ6V70zFjfcJ5eVTdxbQYwd8s1eeEFKMvhdoD1Ouj58PAalQVAxkgHuT5M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=AhmtHp3D; arc=fail smtp.client-ip=52.101.195.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="AhmtHp3D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DBlS1fMyIcUm0vLUrVNh4rnmfpAnyhiNVxeFHMR//wZuQ6NF48ArmcHGT9GcafaFKFigfSDi5suX15iZX3+V7Mg2jnz+mjVQPu6wrJzl41cv/ZhNtAiJCL6NH+olFwC4jhPJS9Nc9RVFZtQdY7yZ1eg/yrZUFgzoSBqiDu8LaquBBA2Y3bvMnQo8VP8yFLcdtngJaLh8dx7fbgdJdDDL1isjPiO/n5BSMaYRZhXIUjXQ7ZUdbpk2kLQcjgzhf2EVDOTx+izOPgaRyTx556FuusaJZXe6MPfP9IaR68j2N2J4yLiZkBJFSFyGqI1D5Od9/AOf0nXDtAMqaEIuPoayUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JqwwzOYOStFtXTj/Pif0JcuM2QAoi+rH/5+Zid+CsUE=; b=vDSN2/tjhO3BmOPucEEN+TOMBILiqeqBo2HOyK0fKoFaxhUE0CZYArqVElDnBGaK5bpytq7Pasn/guUWOa0UWs0EgqjazV6GUgX5istn+aYMiHTaPvRnzBAhBQBPu/sehYQLMFvYf8f3sRWUkQfOmHc7+NO1aePbQBBCozA4tolMPegI+TgAd0ICMkz5GVQ8nV1qmo9cWkhZ19HAlFzrB9CDCv6VIKVCKhUwFo1eBA+ck4VFujGfXMfmuK3Zt9Wm2sVwpzriYzTvQ5x4IuUw3H32OG9jpBNqsTBw6GLpiIrj4DZIzJEbaFJK8NambFp+O5z9G8F14gG2PPY6YrDMIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JqwwzOYOStFtXTj/Pif0JcuM2QAoi+rH/5+Zid+CsUE=; b=AhmtHp3DP1H+9KHeZHDuCo5UrBEXoGGWKngBKaYdNZHFQsj2/c7c4c95kiHS1UrjgQUaHsY6fd27xix1L67uU7c3SjvdH2O8BcH5l0WrbecYk8ClDwe9QttspHGJ7d+93YMf0ckGHeuzP6YsJG8oFHfv20WIWSC5+MEA8L/YzuU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by LO4P265MB7369.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Tue, 7 Jul 2026 12:26:58 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:58 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:45 +0100 Subject: [PATCH v2 6/7] usb: xusbatm: don't rely on id table pointer arithmetic Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-6-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=1821; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=bGNGx/Pqz/dMHsHlRYZxTN/Xro5PB9TMed2dxLbQkrw=; b=s5v9BenMs7Vgz9bmemAB7Dd2sItCz9Uj4XhkdIifoefBnleKBE9irHAg1ikR2BbaObPqa6jj+ ZsE3bMf9Tt2AAsa8u9jMHgIaFiN4qBM6wJgUrJhuMqIrHawXzAHIK2x X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|LO4P265MB7369:EE_ X-MS-Office365-Filtering-Correlation-Id: c688fbde-9639-494a-27a6-08dedc230a4d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|1800799024|366016|376014|23010399003|22082099003|18002099003|56012099006|921020; X-Microsoft-Antispam-Message-Info: eiGV25/CqnTuIzC/jAp0aUAfh/DUhGM9yxXz/rywpPMbfz8h2IoRDeh40ogcq7dtkVZDbGFrDZ1BCus+Kx2u3ZQs1wCXgpR0gsWoW4gRZdTg0u9WKZF6x2GWFzgOlREmkLlvWVmV04mtYmJuzgINd7h3ikXFRPaV05Xc4yyLyx2zvlYUrPxoloov1HIE+Fhdx6EtpiD3QAfM56FBSei4yt5wa5WXOSCQW7riEKI0VL0a233T6kOJemjOkb1ac2MN7uzumOa6/7PmVuoonxmNfFeYV5BEqgcSCXvHqJh58nHAFIAOCeVl25AL8KxGpBvHxfWLE9ajwfKaGITKLx1KlkhT0MhHpGcFPkQvWpsyRaEBH00ELVc96qLHhS323U2rfl/mUzH/l5O27yiyd0Vswwz/8FnkpWkecUhGnR85mUT92POPyAO7MabHyBBHrJvkqIC93yCKjH31iG1iESZQRfPltXc0A3IE2p0odvs9vCiV3isSZKiAcv5CpYoolOHrwneQSgBUCmePlV/nPAyrjNXBEcdGWqWzo5/iEJ4wZMsw1QDWIAdi2woeLTXKQdOTw5/5iNKqFqsbMFS0OZuR8dmjigYtoIonxLxRoERXNJ2rzdyUZ52ZxUUtK5h0b13UMuHGxjiassz3QlaLvv9MC52R5D6bbqyFUAp0VPbaW7NAp2eoHaYDA4p730alufc2WsI9px1ZQwa4wQd3Gm5Yug== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(1800799024)(366016)(376014)(23010399003)(22082099003)(18002099003)(56012099006)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U0o5UVV3OGVXUWF0SjNkU240YmJqN2lTYVFQL2syNXRkVG9mT2wzbUJKZEd0?= =?utf-8?B?MGFXa3NGNzN1TWRyazZxeUN6VSs3MWZHSGlkL0lMN1NRT21NZ3VEeWllVHFu?= =?utf-8?B?dXY5aXdLMDllSit1ZEFvZnZvZm1MOFBJRjdHRG5aNTVEelZlMlUvRDZZUlpR?= =?utf-8?B?dFVUQ0UrcHROakVDUTExSlMvNzEvdVUxaTFqMGw2dVVrUWEvcUV1WEpuVVBm?= =?utf-8?B?TUtMSGd3YUpIdUpTRER2NmRsOVQ3M2NJai90cnVtY2tsTXcwNWxFQk8vT3I4?= =?utf-8?B?cDdzYzZ1QWszajdyYmxmSjZZR1ovOStva2dGcXVmRG9sWVg3MzNxbnFZQzZM?= =?utf-8?B?ZVJHK0Z0QUxRYUlHSkhUcm9ZakVJYlVFemhUdzFndFE1QnBjS1JDcVJFMXdu?= =?utf-8?B?OEZDaEp1OS9ra0YzbEV0RXUwZmhuZDZnTnVCamxiS2haaDV5ZXcvckxSRGwr?= =?utf-8?B?Vi9pelZ6bmQzaXJ6Q1ZhZnE2d0tGWS9qbk1xdVdnSXNFTW95cVExMnQ3clZV?= =?utf-8?B?SmxicnlMY3F6amxZbkk3UjBDL0NmMU1ubFR3bjlaYUlNa3pHQ0ViM3J6Zzht?= =?utf-8?B?VHhkL0JsUTlISFJSN0FtajhQQWo2NkJYbnY1MGlOYnEyWnhZZkJDS01HMTRh?= =?utf-8?B?aGFERHV3cjJYY0lnbjNNeHViUTc5V2dVQUdrM25ITi8vN3ZoK0ZPWEZMdU5T?= =?utf-8?B?NXJqekRKdjlud3pBMTZPQ2xZRFo4ZzEyVnBDTmNxMFpabmdLNmlzcm1ZOFVU?= =?utf-8?B?bnZHcWFwYWdGalZlSUdMTzcycDVzSk5VSlNvWkRoSVN4YnRVSkQ2WGZ2U0pk?= =?utf-8?B?MFNrQk84aTVibE9DSWR1L0pIUUhpQ2tIL1AzRTVmb2szZXg3TlAzVlpTaEpI?= =?utf-8?B?QjhGUEtUUk8ybGpuaXNyZTJGVGJ5K1FtMFpzNFQvMlpIcEJ3aDFqMzVDQTRV?= =?utf-8?B?TzFwdkRLLzd3YTAwU05RZXkvRWVRc3N0aFl5aVhjWm82ZXZTbFZ3MGc4aEN2?= =?utf-8?B?RXBseGNsd3dwTEpJTUYrSGJlN2svYmhOZDdTS2FhMGNrdnh3ajY1TUZ0RmhS?= =?utf-8?B?NkFDeDgvVWhHZmZoakRpV2NZZnJXMU0xQyszbmpNVmlMaUY4WDNiV1FNVVlN?= =?utf-8?B?eTVvSitEZWV1Z2J4b2xnek0yVWZyT242TTdlMkVYY3o4UmlvdmVyRHNodUh3?= =?utf-8?B?NkFqY0hLV2l4WDNLakFOd0huU3BTamV4NnpBRkZ4QVlKbWVKRmlqWXpUNi83?= =?utf-8?B?b0ozeThBekg4aVVjdlJUYTB2cjR1dGs3NS95VndHTzBHMnFwNXBRU0E4Smpu?= =?utf-8?B?RnVBeTRpdnpEU2hCUTBjS09razErZU1RTXlEVmt4SnpxbmVIV0h4WHd6aWxv?= =?utf-8?B?SUFsbmthTk1KaEpPUGFKTC9CQ2tjeTBjcnRmaXkyNVNNVEFoaEFVOFZEWHNS?= =?utf-8?B?S0ZDYkxaWFh6MGJiR3BVU3RNZTJHMVBiS1c0aENtY3BwUnNRTy9yVnF3TmZs?= =?utf-8?B?VVczVm9oYWR0MU9NWDYxTkk0ci9vN1pOMllzRUpqSXZNMWc2TytEb1p5eGh6?= =?utf-8?B?KzdLSDZxWHIyUUtqRnF4YWJMMVdtUGp4cmRXMjRoQWc4aUxBeSs0T0F3RkN0?= =?utf-8?B?dFNqNWRjVWNRdjNmTUdTN1FkM2FCRGMyMGphTWUza2FzRjl5VFgvc3Vlb3Zr?= =?utf-8?B?Qyt5d0gxTTAxNHJUMGVKdTFBSm90QWtVK1BZOEROOWx4QkYvcWZEVGZoQm04?= =?utf-8?B?TlZrZjhxNzBoWHEzRkpvT0ZEbitkWCtNenZQdm55SGlNaFN4azNMb09kNFVC?= =?utf-8?B?RTBna3RlTmp2NXZIUHErZ2VSRHk5RGhCaXpDMkZhTksrTFBCU0VFYkZ3Um43?= =?utf-8?B?WDI4RFBpL1ZVemVMVStlK0hmVzVZZkF1S0g4U01mdjUvK1Bobko2eGxTK2lW?= =?utf-8?B?bTNTZ1dIZ0t4eThrcm4zUU5pTTkvQjhFZEhxdFNISHB0enBySmcraW1DUjhX?= =?utf-8?B?SkhpKzRiRzFmVDNGSDBMVWgzTjlrYkF4V1dUSlQvNGVvaDhReUh6dUhZUUs3?= =?utf-8?B?Y0lkZ1BPLzVrYUJqT0hIaDQ4bE80OVd0KzQ5K0hkZ3VWOGkzWVMyQkNIdmJz?= =?utf-8?B?eXZzQUxQRk1xd3A4UTZ6MVFlbnFLaEE4MElWZ2I1MUxVVWJyVFNHMjhMQTcx?= =?utf-8?B?cFVJQWMwdGtnZHRobWw3T04xTVc0WkFnMGU2ZkdBOG1BK0lEVzRGamdMYnl2?= =?utf-8?B?a0xLbXpJN29kcmE5UjZMOW5lb0w5Q0JjOGlWSFhRd2d4MTJGUm43ZGkrT29u?= =?utf-8?B?aUgwdS9rK1ZzOWpwZVk3S0R1aGJCVVZndEZINlV4OTNwNVkvRmpQZz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: c688fbde-9639-494a-27a6-08dedc230a4d X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:58.8831 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Dp6M73q9IWO3TUFUuVr+VdscODzSNbKYczB4GP4SX5FEIxPpEZutDaj7XPPeKG/MZuvF9VgMLRf9wSUDXZiOmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB7369 The current code is broken when dynamic ID is involved; in such cases usb_device_id parameter of probe lives on the heap and the pointer arithmetic will get an index that is wildly out of bound. xusbatm initialize the USB device IDs dynamically so it can just use driver_info too. Even with conversion, xusbatm still cannot support dynamic IDs, so also set no_dynamic_id. Signed-off-by: Gary Guo --- drivers/usb/atm/xusbatm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/usb/atm/xusbatm.c b/drivers/usb/atm/xusbatm.c index 0befbf63d1cc..5c1e1f521555 100644 --- a/drivers/usb/atm/xusbatm.c +++ b/drivers/usb/atm/xusbatm.c @@ -79,7 +79,7 @@ static int xusbatm_bind(struct usbatm_data *usbatm, struct usb_interface *intf, const struct usb_device_id *id) { struct usb_device *usb_dev =3D interface_to_usbdev(intf); - int drv_ix =3D id - xusbatm_usb_ids; + int drv_ix =3D id->driver_info; int rx_alt =3D rx_altsetting[drv_ix]; int tx_alt =3D tx_altsetting[drv_ix]; struct usb_interface *rx_intf =3D xusbatm_find_intf(usb_dev, rx_alt, rx_e= ndpoint[drv_ix]); @@ -168,7 +168,8 @@ static struct usb_driver xusbatm_usb_driver =3D { .name =3D xusbatm_driver_name, .probe =3D xusbatm_usb_probe, .disconnect =3D usbatm_usb_disconnect, - .id_table =3D xusbatm_usb_ids + .id_table =3D xusbatm_usb_ids, + .no_dynamic_id =3D 1, }; =20 static int __init xusbatm_init(void) @@ -190,6 +191,7 @@ static int __init xusbatm_init(void) xusbatm_usb_ids[i].match_flags =3D USB_DEVICE_ID_MATCH_DEVICE; xusbatm_usb_ids[i].idVendor =3D vendor[i]; xusbatm_usb_ids[i].idProduct =3D product[i]; + xusbatm_usb_ids[i].driver_info =3D i; =20 xusbatm_drivers[i].driver_name =3D xusbatm_driver_name; xusbatm_drivers[i].bind =3D xusbatm_bind; --=20 2.54.0 From nobody Mon Oct 19 18:23:03 2026 Received: from LO3P265CU004.outbound.protection.outlook.com (mail-uksouthazon11020124.outbound.protection.outlook.com [52.101.196.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F55B40A943; Tue, 7 Jul 2026 12:27:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.196.124 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427230; cv=fail; b=tLxF21MQ164q/cy/209xS8n9uhq53gClnmtANvTFgunSixrRX6tr7WvjuSByJEBWuIpinbreNqGaE/7BTr3niX7hpYPZlaLZaL0qXmFa+DP/K75hK8bIE/h33DILbb+JOtqtelVw+Wmh8RE7HTU06unbqLfZBhFnnPfXPn5NyeM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783427230; c=relaxed/simple; bh=++nTjvaUlIlFlL8D8AcF4vnmvP7p2rLheSDLnLOiYcU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=K42MJba3Y9T4Nrdl5cYvid/cxximpk2MxBNOOUYbfSW7ITmUf1yM3DzO756XDOhXElRzz9K/b20BZJ8oYG2rZn4CSkuemmnK0TyUn6rVMWCu3W0oYeSHc88gifwizrreOek5shhFu4hItJUDXVix3k/QfKBMufyW8eKsx+zonaE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=Ii9bOIak; arc=fail smtp.client-ip=52.101.196.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="Ii9bOIak" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n/SuwLhjGR8uHBpf6f3oY97U4ZvHj1kxkfKmrH6rPargFkV25/WNCUcFwlkVHi5BImoguG/93vnE/JogXB6Vz6EIKrJ3Dl2MP5rWaPbfrKHtHCwcyUaf9s0fVkhdf5D/JsPjwje1ITJt4TpgdFCIyp4UGgfUmtL0vIF7PBgDznI/11WAzM6wkwjFOjkq4/N/qkeFFNJLJpsh6GOkaFkwCl2i3hfY8TEQeG58rljtdz8y2TyDFA5+4SOQ7re+SUON/7j3njn+LApuEnijmVG+vbDr4Wd3zvDxeNCAl4wDhSZMCD347fwVX+MhZXom/79HCaZ9CMnQKnSyuod5B1v8Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IcmrvPCu1eFMNzTDwg4KQVgOQZlZ+T1ehfcBf4+kdj4=; b=DBMb5/IrLRuUULAeVGTtJmJ1S+LxQO5lKgN9cDjNVFuxTor1V8+7yNeDPyKa52Ze4z/bWSQzMxyl9keFJeeIksFqLbryRBadPSHJKOOVPQYDRHtZtL0eupuzXn7RACK4Rm7bPNVdPrtY8j+9TIfZq2dbv1M8Beai/0bqCR9MfmE/si9lac3hPyAwvAbnLBGpPpDIW2mbUgfOVcAUvBWT52T5cfXkSNtseg6FNIrbU2Mo+yP6acSzZXhLw8EQ6p/7nskFL+rcZ5STEO//F1AhY9BMKu7dFxHqQxFswGBBeJl/s9iHj4emLUYZNpoyg61Ft1/D/2wgNijRng9OinwjpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IcmrvPCu1eFMNzTDwg4KQVgOQZlZ+T1ehfcBf4+kdj4=; b=Ii9bOIakE7dadlnm4i/nWPAi3shAKMUGERkhlrSaSsUmMOwP03agWByJZKSXNpeWsJsgqcFCEM5t6RmQsRWIOPhJ+faFbIoS+VXmSSrG3SS8NxfYSg1jlmCyqpC69sQlwsh7YFx23E9+D/61TMQKwqr2jWLB99nt89wvjzNxCX4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by CWLP265MB6339.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1e5::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Tue, 7 Jul 2026 12:26:59 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 12:26:59 +0000 From: Gary Guo Date: Tue, 07 Jul 2026 13:26:46 +0100 Subject: [PATCH v2 7/7] usb: fix UAF when probe runs concurrent to dyn ID removal Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260707-usb_dyn_id_uaf-v2-7-632dcf3adfba@garyguo.net> References: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> In-Reply-To: <20260707-usb_dyn_id_uaf-v2-0-632dcf3adfba@garyguo.net> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Johan Hovold , Mauro Carvalho Chehab , Petko Manolov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Chas Williams <3chas3@gmail.com>, Alan Stern Cc: linux-usb@vger.kernel.org, driver-core@lists.linux.dev, linux-wireless@vger.kernel.org, linux-media@vger.kernel.org, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783427215; l=3274; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=++nTjvaUlIlFlL8D8AcF4vnmvP7p2rLheSDLnLOiYcU=; b=dnz5iXX4/7k5x0lB+IMPVjTlSf0/sAMci3uHVlMmv2lhQSqqeWV3nl90BOgHll0GfWlegw7YO 9fvJnP1wIrGCEgm72dwO7Suc5Tga23Nk4N39khDrwugsRA76Ec/X7CW X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:312::10) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOVP265MB8871:EE_|CWLP265MB6339:EE_ X-MS-Office365-Filtering-Correlation-Id: b668a805-e605-4d5d-55da-08dedc230a8f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|376014|10070799003|1800799024|366016|56012099006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: pkWAZT/X+f3Ry0wy1FnZ2Q6nTZM2BYjmm6tX+n9YUwnzEKEjlM6hjSwakJAbUoC4iL0MD4Iubq0tYS3pw+JS6yVxKH9tSXFxvkmnQZZPNR5lTawNot/TlxzcMhkN/190kdo6skonpRQ0Om9GlT4J54OelpDaHzzwffEc0zmu6JMyyuMF9x18MAt698w9zUbbvkwd5bTTDz01Lt9GsM1Fk3MDFg50nlVMpBzR7G35fbsXNzhrG1oL4ofHyMjijF0afIp2I3KK37xBMYyRZPYZzJiaKWYGFnEbBIOflAGXcX0ghsOrdGQ4j48MkZrx3/Wf4sFbDO8DjYjP5ZSE0N5QwQaFRzzat0UvGeaOaa/2kNgpKXwCXDmw6dZCXInCU2lX9ZD5btFlLReDMIavp1XDfguTAyB4qEh8a9PuzxQ6R82JgIPh4QftabfY6paMLQ0rMZr7qfrqyqF/NHrQRu/YXp5ogqaAbXqSlPbzWtXsTJXqikpIjjCor4AaNpoQDXT6v1hyZUMNco4/kCKK/RpCOhhuLYN9EhWWcLiBEQASeAnQh+CKV7GEk8dg2W+9DGQmHBkuS3p/N2Gqx6yTe2aq6e6eIOuzHFHqbXyAWL/U/L7o4xnB8CH6R5jj7iwqVbdKziVZiHv1oXqxq/KCAzJy1SJwiae6Az/unjtj9gpxRxPz7+7ReOi8tJBGVP8621vXd3JwCrxV5Y/DTIoZ8u2kfA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(376014)(10070799003)(1800799024)(366016)(56012099006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UElIV2JJMmZHN3N1anhFTWVzaXRjL1p1LzlzWlBCeXNBWGJMNFlTQmhXRW9v?= =?utf-8?B?OFNuWjN0NkpoRTFENkY2d1ZpUFNpYzl3SDhzODlwWFFubVRiaGZXdFpwblVU?= =?utf-8?B?NFZaY0hCZW5uVHNqaHdocCtLeHc0dGhHMnB4dUpQWWxkN3BNck9hdk1UYkZF?= =?utf-8?B?N2JBa29wYnRrZHdwbW1LNnpSbGpkbk05aHBlTng0aWxTWk9hVWxXRTVSZ0xN?= =?utf-8?B?YWV4T2YrYjl1OHcyK3h1emxudElhdWNiVU1GVmpYem9acTV6MGhnUEFzZjIw?= =?utf-8?B?Sjh6aU51ZG44UG5sSDE4VW5XNXNHbGVQR3lxOFdFb0JQSnNvRGNzOVYzOFJ3?= =?utf-8?B?YkJrNVJlaGkvdklud216WE1ZbUdqYWtxKzl3bUxDcDRWMG1wbHpWWFIvS3Rx?= =?utf-8?B?aUd3aW1IbngwZTZkc3VBakk1YWQvVitCZC8xTEsrNDhzTlB0VzgvUXNuaWg4?= =?utf-8?B?K1Z6ZkdYVERrR0plMFVRLzBsdW1JMVRlMURrL1MvMXVZNFZKTG5LZ2JET2pN?= =?utf-8?B?Q3l0ZDhjNEZYc2x1cm04blZZUmlHMkMwZGVleWUrRTRlZDd6L05DeHpxOEwz?= =?utf-8?B?aFdORlBETDZmQWxuWVo5UjYwbzFiMHNTN1ZYRnlyKytVWU5sZVJMVk0wa3hE?= =?utf-8?B?ZGEyUktFQ2VpeGh0ZU0xOGNrS1FTcCtqU0VkYkhQbENubjVTQWJlSGE2OVQ4?= =?utf-8?B?by9lQTE3S0ovT3pURGlDN3NvVlg3UGRha1UvYlRiM0tyZHR1VEExbDRrekpO?= =?utf-8?B?QUNJRjBEUEd6SGN2ZDVFKy80Qk5ocnB2Um9SQ2tmRzBaS2QvV3NCdm9oYjBm?= =?utf-8?B?dVJWVXJMY3hCT1FFdkhyQzB3N2FHL29SSjlqend6azVTbHpyYWVVQUlPRFE4?= =?utf-8?B?eWlMVjQrWGJua2RUeFkvdmMxMFlVbWNDOVhoSTEwbnZLNE1ZcG5IaG05Vko2?= =?utf-8?B?LzQzQTN5N09oRWx0T0xzM2RPRWQ5d1c3UTJabitCRWR1cEVDbG5zNVlvVU5X?= =?utf-8?B?L0JpR00yVDlTcGF1bndkZndEOFFKN2JRM05kYjR0L3BsVlI5UnJBK1k2Um8r?= =?utf-8?B?RTJUMEhmMVVjL3lPZWNkMVlVZ1M0L1hiYkJyTENPQU5CNWR0TWgyeU02K29G?= =?utf-8?B?TDRrSlBvUnpqNUpRT0lNc1hRTEJQVVVoMy9MaFVMRDhmS1VqVzRDYTg2aS9x?= =?utf-8?B?ZHBEUVNNcVgraWNnTXlSZWY3aCt6WnVjY2drMzFFY29KVFRzbFN0c21JS1pY?= =?utf-8?B?amM2V2ZwazQvTTl4VFlFU01zMzZXZFljNWgrdHJGRXdoQ1JFZTdBQ3pEOExr?= =?utf-8?B?bGc3OG1uRk45UkkxUEs0aFNFMmEwVU50WVJnSFEwRzFtY2c1TVloRDJIV1dj?= =?utf-8?B?N1RKZXVwMlZVYktQUW5KdkNFNGhiL2ZacXlQSktTR21BNXlMZklZbGQ4QUhr?= =?utf-8?B?Y3Zkd2lrc01TdEowbU9NMllhY1ptY2RiWFJCMnd1UmxDK0JDeU1MUEJRT0c1?= =?utf-8?B?RDNXZVlqVjVtYWNnUEFVMzV3eS9vTTQzZURHWWJTbVdmdFJrb1RJcXFyNGRr?= =?utf-8?B?VHVWZjlJRStKaitOVU44cWZvYVcxOXNITk1SL2IvWlkyK3NHV283TzFIZmhI?= =?utf-8?B?T252c1lCV3B5am54WVgrL1RrTUM1OFY2ZS9ZUit6N09FOGJSS1lHOEphS3Zi?= =?utf-8?B?UUR1TUxXdVZDOTBsRmc3RStBUjE1M0NWTHlud292NFpGVVd5aVMvbzZRTTh2?= =?utf-8?B?QjlDWUpIeEVGWHBtY2RzTkJoemtTQm9EbDF2c0lRWU9kTVlySUQwOUZqQmgx?= =?utf-8?B?NXNsNDFKWmJRZk1ZQU50TXVoREdQaVc0UmxnWFp3RXpXQk95MzBjZDRJMFMw?= =?utf-8?B?S2hvVXVIVkpXek5Ub1JoRHZGZDQxMTI5b1ZsYmRBVnVEMHJobzVlejB1dGJJ?= =?utf-8?B?Qll5eFU0NjRlcXVLd3BZOU9KdEtMTGtrS0dKc2dyV2tLMDRWVFpBNVNmcTlU?= =?utf-8?B?UHhBTlVyK1hSaWltajNpTUxpNUxMNEE2NTFkVDJWbFZvUkh2NzFjK0hrU0FV?= =?utf-8?B?bFE4Sjl3SFJ2ck5HZ0NUdUthQU5mcjdjNXpxRUY2KzQrKzZZWVYzd1FFVElL?= =?utf-8?B?dWVTdldRdE1EL25JWUZoZ2wzMHF0UStQUU5aUndHY0krWHBsL1JySHhtR2xa?= =?utf-8?B?OUFLK1Q0cldHYzkwTHU3NzlFZmxvS0dBRWpWOTJvY3RGbElJdWpTSmhkdnBC?= =?utf-8?B?c1FHNGtFUUpWcjlHTFo2S0xadS9nKzN1NTJRV2dkQWF6S3psL0l5QkRicGN5?= =?utf-8?B?R2RSTjZTMmpLWDd0Sjl4bm1WMmJQRHR0OFZuVitzR0pucTNnRmRwQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: b668a805-e605-4d5d-55da-08dedc230a8f X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 12:26:59.3086 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dGsgTcxn7akOHePhETSc1Tt1aBPHYlDfANmayJ0oXBLVB2Jkx3AdXyH6xSeW41tDAcPgIgbmv+I/3v+8qQYzEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWLP265MB6339 Dynamic IDs are only guaranteed to be valid when usb_dynids_lock is held, as remove_id_store can free the node. Thus, make a copy in usb_probe_interface. Clarify the documentation that the id parameter is only valid during the probe. USB serial has the same pattern, but it does not need fixing as the IDs cannot be removed via sysfs. Fixes: 0c7a2b72746a ("USB: add remove_id sysfs attr for usb drivers") Signed-off-by: Gary Guo Reviewed-by: Danilo Krummrich --- drivers/usb/core/driver.c | 12 ++++++++---- include/linux/usb.h | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index f63004417058..7f33fe5ba03b 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -228,14 +228,16 @@ static void usb_free_dynids(struct usb_driver *usb_dr= v) } =20 static const struct usb_device_id *usb_match_dynamic_id(struct usb_interfa= ce *intf, - const struct usb_driver *drv) + const struct usb_driver *drv, + struct usb_device_id *id_copy) { struct usb_dynid *dynid; =20 guard(mutex)(&usb_dynids_lock); list_for_each_entry(dynid, &drv->dynids.list, node) { if (usb_match_one_id(intf, &dynid->id)) { - return &dynid->id; + *id_copy =3D dynid->id; + return id_copy; } } return NULL; @@ -321,6 +323,7 @@ static int usb_probe_interface(struct device *dev) struct usb_interface *intf =3D to_usb_interface(dev); struct usb_device *udev =3D interface_to_usbdev(intf); const struct usb_device_id *id; + struct usb_device_id id_copy; int error =3D -ENODEV; int lpm_disable_error =3D -ENODEV; =20 @@ -340,7 +343,7 @@ static int usb_probe_interface(struct device *dev) return error; } =20 - id =3D usb_match_dynamic_id(intf, driver); + id =3D usb_match_dynamic_id(intf, driver, &id_copy); if (!id) id =3D usb_match_id(intf, driver->id_table); if (!id) @@ -892,6 +895,7 @@ static int usb_device_match(struct device *dev, const s= truct device_driver *drv) struct usb_interface *intf; const struct usb_driver *usb_drv; const struct usb_device_id *id; + struct usb_device_id id_copy; =20 /* device drivers never match interfaces */ if (is_usb_device_driver(drv)) @@ -904,7 +908,7 @@ static int usb_device_match(struct device *dev, const s= truct device_driver *drv) if (id) return 1; =20 - id =3D usb_match_dynamic_id(intf, usb_drv); + id =3D usb_match_dynamic_id(intf, usb_drv, &id_copy); if (id) return 1; } diff --git a/include/linux/usb.h b/include/linux/usb.h index 1da4ad1610bc..49ab8dbb885f 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -1185,7 +1185,8 @@ extern ssize_t usb_show_dynids(struct usb_dynids *dyn= ids, char *buf); * interface. It may also use usb_set_interface() to specify the * appropriate altsetting. If unwilling to manage the interface, * return -ENODEV, if genuine IO errors occurred, an appropriate - * negative errno value. + * negative errno value. The usb_device_id parameter is only valid during + * probe. * @disconnect: Called when the interface is no longer accessible, usually * because its device has been (or is being) disconnected or the * driver module is being unloaded. --=20 2.54.0