From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022093.outbound.protection.outlook.com [52.101.96.93]) (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 115DB3B95E7; Thu, 23 Jul 2026 22:01:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844088; cv=fail; b=qYS5DGoXJyoey547I1ajoWwl13oRxKOIcGNFx+qloD2ftIQ2vkrwRfCa7JpqNrxN5+JZl9CI/VzOILngwxxz2AYSsSegBoSMy53BcdpXb/glpjDrnq0yVq+6/7D138IBrJm46btSchqupep6+QNCwJmrZitIOrv8o9YcmCFPM6U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844088; c=relaxed/simple; bh=U7uXjdSKmDse7k/sCbcN5jPL6x6YmINvafdMIYA71+E=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=t/Pw/txMH2DHmleCeI14a8xOyIR+FH0nT3aJnvY7CJuIofvLap1WfKExrxvgggKR6AJJb7br88xcQLcMogd2z9C44huepJLh9vqpTIq2RMA1OkidHWBmROnMZYVpkq3Y2QIc9UpmXsF3ZkEShrdyiWkauwj8T/U5RhBJjdcJicQ= 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=RKPwXb/q; arc=fail smtp.client-ip=52.101.96.93 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="RKPwXb/q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t4c98e/m2Mzns/Q1pIho9DnhCGoW/wTOroNfhzRIEeshykSP3sMjysY1bOzg7npXBuDW5yGmX64nYe15LOJ0iaEEtRSxBpCl1hbQVKuDOFitHIwPIRE4N0o0qygD5M9H2OaOQkR3c6d8ctCLQ2qwZhp2enLwrvNXwTn0P3+qptZ26NaaRIHvm1Q392/QWzK4S9FBORY9sH9/qL03rGoeRWJbLK11RPXRcKI4gLdVTEmGw4NvZI9fwq/nG32HL3PhqX0yl9v1O/U3l8FzZma8nyvKEZwgrgVjfLphTvluSZU/abHo+MC60OGHoXippYovKlaFmIZHEEcnphUJZRBT7Q== 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=L8pTx+hmMFStEfx50Hw+BD+74x++0Ir3LXQJRrbKqSA=; b=mWSqBLauqC60u2rhGVSZvBjlitfXTfur5hQtEi/ITXruVnfarZtQOrB1DFvrMr3jjJf1NYaDFsegh5YExJaLW/AnSBWDRSnUkstGoP5m6zCIPFU3G4kvQJFewjHhIq3pwv0K/nJ7FTKWgjClkg6TDf2KZqIGaSl4EGTJDF3W7bT/AIxJFu3EDlkWX9J1fG13grrPGtHzsTnW+bNxqShe3VSw6bfve8XvYfD36ZQkEqVUKMDciYpfYdpz/71pxbvEvUnmt5v8Tp/dx0NupM1T3ReRi7mc7SshMc4MOcS/aPlXRGRnKwJZMhtztt9HuUOGX/DFhG4G74DjCWzCjduqzQ== 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=L8pTx+hmMFStEfx50Hw+BD+74x++0Ir3LXQJRrbKqSA=; b=RKPwXb/qk/Gd6ipjBuKchsEAN3o81pnrMBmEKgxEk4ZWmqddFx4RCSaJ7LfUX6mwXst1ZJtxu52N/OdsMVyeYrNXTjgR+P63FDO7RZIyeVUMLC1nHj7+o1SU85TYEDgFvcXmkI95Ma6uGTxCfbpUZm4XMnMrs99cguZD01TrHUM= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:07 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:07 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:40 +0100 Subject: [PATCH v4 1/9] ata: ata_generic: don't store pci_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-1-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=1540; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=U7uXjdSKmDse7k/sCbcN5jPL6x6YmINvafdMIYA71+E=; b=0zcBkx1mfhqNGnjWeOzrl9U1ciXvwYK4rHnE92uSFQORZQgi3nYIOcL7jVTB5MF3m4tkEZ1hv UymJl/GNodfDwMC21QZ9UeSEM7jkSCWwu4Om4mGv2KQ2//ecIXLd9DL X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: 2fcf005a-0acd-4088-2ab1-08dee905e5f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: Xoy61JP193PzPowYtb4vMterJAdikL4RHTZyvx3nnJ7yaAJcUtHi1az/kff02KDm7GvAXOvPpNvXlvFBKiRBswAG+bC3i2Bcs0Z42L1F6XtBcvV8M+COfIBVlzkxhTxiCAVnL5EBH67db7GV+1mEKrnjfxRvlhplqMxpdwiB3o+515orsYlOG1yQInsFPRiIM9vNeQUZVaX/VR7uO8E0QjA5HbGnzqIx95eh8eoYGaVlmFOPCu8cJfjC9FHTMxHAgRNCc+Z25Ms3wig124YpnLnN0VwSDCEyRoV51qeuMZZ9Ngs0PPni1mQhpo6kSrD1B1blJ93XCcx97PPIWiSZgoXGdHUXrwzq8aY2f7nu340mGO9NtLKwAUZO3JyWOvSogCtLuY6jbygGlp8QAEHegmyAeKRqMF9s0NaSR+BiWXk7/+tdr47/cd5fF4sXGMjqYG9JGDmr0fS7h8Xnt7FtWtfEldEcDQcp6Dio3q/XVX+6/JA9DiaArArMLy7twS9sSWqUk7rT5PuSsgVWY6S5lH8aEK47qwFVpL29LGWCER3RgUQQdR+lH8wIPAC/Lb5rkFBdnFS4CJuu9mcmifD9a5uNQpJcuGFSDd8vKP67y55/BUoJBn2e/m1b/vNhmWXjTrP9yzKKd4yW1WPzMxrWL9OR5PCQVduOcSHoCok3Cf/g4at2/cUuJL2YwjYbeWonNPS/QTclR2mJz9MURvWhhQ== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b2RoSmt4Zmp3MlNXemIzdlRLalhiUk52TTRGR3lmc0o2S3VGWXRrT1B0c3FT?= =?utf-8?B?S2YvMC8wcHdEMVNwZ1RxdFJldW9NQzNtRUdYQmNCRVJxWEF0elZHMEVMd24r?= =?utf-8?B?OVZ2UDVoYTBJbHVqWUROVkdtY0dtZ2V5ckFIYWF1NGJZOEdZNVZIYTBicEt6?= =?utf-8?B?TnhvOG1RbThsR0lpbWRtcVNkdjM5ZzhXamZoaFFoc2pONFBHdHdieGhEcXo0?= =?utf-8?B?MUY4NCsrOGdjZlI3MUZHWlVrRGJScFdieDlya3U5NjMzOXQyRkNCa3pwK1Q4?= =?utf-8?B?Ry91Y05JMnRuNUxlY2NROUdIWmViaDhwbW9DT29rNGRmUTZqZ0R4cGdHZEIv?= =?utf-8?B?bXJkdlBlZmpyb3pLWW55aGk4aUpJRWZ4NURGa3h6T09mOHM0aWpiYnY3U1Uz?= =?utf-8?B?LzlFd1c4NTJZbW9yZjhkYTRLRnJwSjBvd2pNS21qekNUYlJUc0Y0amQxTS9C?= =?utf-8?B?Y1NoTy90VitGS0lCTWs2S0hTSDBvNm42L1NSWHpCeFV0dW5VNkR6R1o1TFhz?= =?utf-8?B?UlhzbDFtb1NuTjJ6RVY2TWpNNnJZR1M0Znh4LzVmUzZxcHA2c29PQkt0TjJS?= =?utf-8?B?R01TKzlUbTgvTWlrUU1lOGRldDBhZWFGSXdLMmg2bGNTRk4rMk5zUVkxNXpm?= =?utf-8?B?SC9GQlRHNTVEMFB4SWNIUENGM3ErMVhJTzY3ZFVhNlVRS0JnYnFpZ1c1bWdO?= =?utf-8?B?RlNrN3EyMG5WU285WFpjTHlxS3c3VGNJenJ2L2MrWUlCTTBWQ3NSbjllOHVB?= =?utf-8?B?WndNVVF5QjUvdGRmNi9TcVVUczBVbkYrRFJqWmhRRlQ3Q0tSejFEYTZvazNl?= =?utf-8?B?dERvYk43aGZGM0FYNFF5eDdkaXFGaWhXRmNrSWVXS0xNRWpZcU9UN0tUZEw1?= =?utf-8?B?RXlzMEgrNjhkV3gveUIySG1oQzJDd05hN2RBUnZSWWdHZTNoL205TkJub1ZV?= =?utf-8?B?blBtWjV0cnZLbUxIY3pKbTExMTR3cjdYbVA0ejdzeHZ0T1M3VEhOWFdkRm0x?= =?utf-8?B?U1NWbzBxWXlIRXJCWEZOdk5uWiszRERTNE9jWWlOQ0tMZmVEKzJnZ0krZS9J?= =?utf-8?B?cE9EVzZaVnJUV2g5eUN2SFBwVnVpelJHUGc5Q3VSL1RTMWdkVTEzSTZEQnJQ?= =?utf-8?B?QlBNYjVSWFZvczFvMXRaWXlGMHdTNU9ZMWZ2L0s3NXRqYmljVS9zaW1BdDlP?= =?utf-8?B?UmtyMElSUnFBcHZFNksyMmtxTXBISlpQY28vRWVLOHdEVTQrTVJxM0FlYmJV?= =?utf-8?B?RHlENjVQa3hac0VJekJPdWJ4cVZYa0Q4U3ZPV3VxOVh6cFdDYWROdFpRSXNE?= =?utf-8?B?UXhYZlJBVjNTSmhGajlwbCtQWERRRnAybnY5eUhxcURXby9vK0tjSEdSK1J0?= =?utf-8?B?dWhneVJNQmx0dVJFQUpsVnJMSVVUK3JZRzNINzMwdlk4V1ZHWnRlUDVnYTkx?= =?utf-8?B?K1ljWFhBZytsQmdYQUx2RHg4YTlVTUhQTkZia3hkZHRYcE9Mdlp4anFhV3VI?= =?utf-8?B?WEY5d28vdkJQTlFMYVFaZ3dIRVdlclNyTHl3RjJLeXhMdTlrc2V2Zi9PRlBl?= =?utf-8?B?TjVuR1hwaFQ1RVhZcThNdXhieG1FS3orQmZocGhPUUFQakN0NTVraTRJK1A2?= =?utf-8?B?WHBiOUducE1YVFVERXVBc1R4aDBwMmJXYkF1QVVoT2FEUTdBbmdoakpRek04?= =?utf-8?B?d0xnOG5pVDBYbHUzbHZaREl6bHJ1MkNmWmMvYzYzRDVLU0RJQTZNZWtaVlhZ?= =?utf-8?B?NFg1dUNZRWNybGRoUEtOOXV3RE1nQnFKeVVBOHdVenJRejNlSWNpSU92NXE0?= =?utf-8?B?YzhxU0tBZUZBdkJvOHF6MjlsU0MyVm5zV214RzZUWE5ZM1ArM09pdzR4bldU?= =?utf-8?B?UmxmTFlFZ3VDVXN1VUdtNmxLdmRTMU9MemRuQlFlL1htSGxLazl6bThZbGVM?= =?utf-8?B?MXdma2taZlYwTXh3M0RYSDhTMjFiaEpyaTZ2SExrc2NqOXBoalQ1WWQ4bDRx?= =?utf-8?B?NXVDQlNQVnBJNnFLRCtKS05ZbDBQUVJHWmFWRy9BakJ2cGJ5a3E2RExKTnJH?= =?utf-8?B?cU5zdTZtcVY3Y2I4YktkaEl0QXlzUkFRZ3pIUEZURWt5YUtCSFlFSmR5Tzc1?= =?utf-8?B?bUc1c2Rnc3l3d2l0Y05rSnY5bThQWHlkWTVUZTYxNVpsa0VYSnllOW5jemQx?= =?utf-8?B?dXdzUkxNT0EzVitjMU1MM2FMMnArRFpMVlRTM3BNMWljSXJxZnNvaGZ2LzI0?= =?utf-8?B?N2h3dGNXTFJ3bUptVUQwaHpnejAydENpc1dHQVE0NGw0RS9PQ0phWFMyM1g2?= =?utf-8?B?NXl4TjlBMUFWeVNoS09YQjU0ZThtdE1XRzRyNUNSeFJQdXpldERnQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 2fcf005a-0acd-4088-2ab1-08dee905e5f9 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:07.6121 (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: rr0tRCEvv+s2DeO6ai2svXF8PK+tu2Fwne1LcZMDRBKClFLY4jrPbSo138V1pC4ICf9pUxtqRhWonDISBpUfEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 pci_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 pci_dev, so just store driver_data. Reviewed-by: Danilo Krummrich Acked-by: Damien Le Moal Signed-off-by: Gary Guo --- drivers/ata/ata_generic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/ata/ata_generic.c b/drivers/ata/ata_generic.c index e70b6c089cf1..18ea740ca582 100644 --- a/drivers/ata/ata_generic.c +++ b/drivers/ata/ata_generic.c @@ -51,11 +51,11 @@ enum { static int generic_set_mode(struct ata_link *link, struct ata_device **unu= sed) { struct ata_port *ap =3D link->ap; - const struct pci_device_id *id =3D ap->host->private_data; + unsigned long driver_data =3D (unsigned long)ap->host->private_data; int dma_enabled =3D 0; struct ata_device *dev; =20 - if (id->driver_data & ATA_GEN_FORCE_DMA) { + if (driver_data & ATA_GEN_FORCE_DMA) { dma_enabled =3D 0xff; } else if (ap->ioaddr.bmdma_addr) { /* Bits 5 and 6 indicate if DMA is active on master/slave */ @@ -206,7 +206,7 @@ static int ata_generic_init_one(struct pci_dev *dev, co= nst struct pci_device_id return rc; pcim_pin_device(dev); } - return ata_pci_bmdma_init_one(dev, ppi, &generic_sht, (void *)id, 0); + return ata_pci_bmdma_init_one(dev, ppi, &generic_sht, (void *)id->driver_= data, 0); } =20 static const struct pci_device_id ata_generic[] =3D { --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022122.outbound.protection.outlook.com [52.101.96.122]) (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 02DB6350D74; Thu, 23 Jul 2026 22:01:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.122 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844081; cv=fail; b=q9bHABPXn5uqe2BWjYKQMDhJ+Oa81rX6PFNSGqio0olRIMwMGBc7/iVHN2CutfIsONNo2hIPJefavSKjMk0BLRm7ZNmg1ivM4ZFtn1Kk6sW9dvoxM8yhj8HRofiJgtGFIxg6fiMmDP/RDa+DhiGPC39F48Brsjt/Qev0UjyJ9gA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844081; c=relaxed/simple; bh=8gJVnailyzMYXVEeFt/Vs6x7yjYC1eVNKx3NdE39Fcg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=igHhgbJWFvUAP2huL2nCZyda2oa1t2B7queuYU2oGupoGPFYr6QwHj4T2KWbio4CABgHaE/AcoL3961SGZQJ8KHEfR6w3WqBflLWWBjBq41GXlleDYE55oZwO+mkZWikRVBJrgACLdEPN1Sgf/G3OfSS3YgwwEUsYcqFjGiy+bU= 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=LvM2Vqib; arc=fail smtp.client-ip=52.101.96.122 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="LvM2Vqib" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NhnNX9sXl26WB4qUfrL9QXLd0Kce6+g5da49eA+o1o5vJ1ihFtlQkRmbOL265IMYn7RWa5BGs4I0+wZu8jtPqZcfEfrigwPml2CMY/wyQZb4tzJwOcnhd0cmAhe7B95t+N78rENQb0Nylw8nJ2Nu7HA0ODniAOXXujpKC4M/uGP4Mj+C5/6y+SpC7Mfl8R2cBdcMRlxveUT32bvhzazmW4JnaPph64GNuLm1bjaYL30LBF5xDLKf+QP1tz1wkt4LPyZqvO0/b2WzriTQKymrlDcmiykQ9eik2kyLNyvFaaoHHB92cmV138S/JJUKiYQXv0kH9FA6VVzizO4wRtYqHg== 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=xq9AjxX3EhxMdox1zaGtdiqE4DTflnHv8h5VPtjrvBQ=; b=vCK6ni/ihXEM9h1ZtrJgzGrbmCIuxyq6cBOoVg9B/mffKn23ZD1qgxlF59f4g0T8D129LEgMSjRLei2HEpVnsvG7vwgs/Du+vdsl08O38pnWHTXqxitLvuQVU2F8Mswzgln7vJXN8+scbpCIvhbMUu/H9nQhdImEANkTBFJNsfffnLfs4Xhk6Ucu09fRpQE+GMzKvzV6NrSwIam+Q5v8Riy2NyZHmZr1fbjp+sZWA2iyUE3wmktJOMEpeg0CyVILBxeQUjnHgW+/SbqXvFkBBH62bzCE/xX5HMsQi1+obKZY0+k/GQEVH0CD2xVVlh98HY6eZNXwOs6fCWDMbY0ZGg== 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=xq9AjxX3EhxMdox1zaGtdiqE4DTflnHv8h5VPtjrvBQ=; b=LvM2VqibrDmaBZkVLKbRLphHMgzQA5A6cjWO8mUIksTESeSEnZtd8l7b//jJOmiZBkvDR5XEsgRLvdLMFDid2mJWedqrqqayeX3DbpUQ0e8KVDnqfJWMwNirlxgZ2WWK2SwJZchxqBXVcE0IksjkzZWboTpeZe927k7u9lvdkBc= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:08 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:08 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:41 +0100 Subject: [PATCH v4 2/9] scsi: nsp32: don't store pci_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-2-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=2148; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=8gJVnailyzMYXVEeFt/Vs6x7yjYC1eVNKx3NdE39Fcg=; b=+Y+fiGQUF5x/hbvd3vvEL3to+g6aAWun5gT/qaiQ64JweWsJ3wp9j9C5yS6BaYpiuQqXRxemS 6U4y96CakbKB4N5eQRmmZDdSo9vrXiJizoriNzEYw/xeztOELvxLcgS X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a64cd77-66d5-49c8-abf1-08dee905e638 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: btJc6/u4K18qirAM0S1yJV1b5uaM4dGG8/OAEuJ1h0D3A52vkkOuSmBsWVG88/j8nOfMXuw5eUdewsMSbN6pU/uoY4Fp/1srjPa4fbGvx7ARdnDiSs8/DcASSmm2Bxsr2tv7tGOImWTayRVVsTHkeoEdfVLVqSxHmCGm4EnMJ7yqtxCB5WS5YHNr5QsZfhdW7hFc9Ds7f6PRkL4QDHSUmam+Fbu7dAq+SqP04KcmDN37V8v1pzF/ttNAxYFcOtxzsihega+ARcnJP/qeJT/2Zr1mu9yl+fN085izilbkCEaKhch3LBpYBB2u8/njMdFylRxkgOyeHovvUjvy5x7NkFO3KucUr02jlgn9yecBxZ2alE68Z4qRkMfL6HyKQ1XYMqTAESgtgdLzX/u5fhPKHPZZhyeEd1mQN+QEHExvtQ60jWc1QtYaV6CAWsl0Vgz825/nEwybgSgBYHHqTCB9ZE5V9JbGhxlWE79ftA0Uqb856/QxZrj7PWkZCkj9NhilruP/iFViOxj2xlWL94NHK/rMF7sgmC02bbAzmScspMx4XjMeRjHtC1lCm8nJEiGMGD4IeOzyFolvds+te98F+XxrvT5aLeYqKKs4yWhYtAlWz44XfBjriiu1jgkHV8Z5hVltbVATKAozg4WU91gu/njq/R64OSBu2/NeCU08PsCgCMzbW6vf5CD62BP1Rh6DUyOUludaNSRRGqrY6Ig45A== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZEVtL0R2bVdpMVBVVWJYdnZFT3hiOGZNdmhQSGFvTHRnb3VRaTR5Rk9nQ2p1?= =?utf-8?B?OXE4M245eG10aG5NYjhNS3Mvd0gzZFJzNk5BREpOSlBiZFlBeU5udzFDSk03?= =?utf-8?B?RFFTRU1PbWtrd3Y3ZitMb21LUGZyTGZRRTRLeHd1RHc0ckFvbGRhV2ZVV2lk?= =?utf-8?B?cUp3Uit4NEIrcW14Mk1pdnRxeDUxNE93ZGhOSzRMZTI4OW93YVpDaTRkL1dy?= =?utf-8?B?cFhNV0FZUDdmSzhpZDhBeGQ5OXJZUlR5TUUzbU1TaWc3R1lFZk5xRFNBTC9T?= =?utf-8?B?UHpBWURRY2JrMWJPck15b05YZGNOTFdYRkp6aWd6bnhiN1ZiMFV2RTJNNVd3?= =?utf-8?B?L1o5WFBjYkZ0TFd5Y1Y1QitoK3VRRXNKYzRXakVrY2xSang4T29LRllHc3ZC?= =?utf-8?B?TzNWN0tZK0d2SGw3d001b1ZaOW50MkZiaGRaL29iTW93YU5xTDhxVUQvYThv?= =?utf-8?B?cUpnVCtBVVlSNlZBTXVpRlpZT0dxZ0pLLytwWVBvUzdjRHJrUHM0akdydUJp?= =?utf-8?B?Q0xHRHI0YlBPMGJLbXBEdmVhMlo3a0tPVVJRMDBLTlhmTTlhb0VicSt5QlUy?= =?utf-8?B?cFc5MnpmSGRFeDlmZGFUVk4xMURqSE5BTnlxR1ZrVFdnTDF1RllmSG9lajhV?= =?utf-8?B?ejl4eXBHS3VXRmlpNVN5SGNhTnNydFRNanZYY2dSeUFOTUtBbkpBazRtR2Nz?= =?utf-8?B?Mms4K2Q0Yk1BZlpUMW1ISkJTT3pLYW5iMVNyR0loRU9FSnNRdGhzSnA1dTh2?= =?utf-8?B?U3pFbDBoMmxzaEJPTVRKUjZPbGtzb3VnNFdlR2dRTXlKTUswYktZUGF5UEZ5?= =?utf-8?B?aHpkaGdXZnJ6bTlBVnlYUm1mb1BBMDlvU0VZR2pTdWx2MTRVbDFCd3UrQmJ6?= =?utf-8?B?S0dlZU5Rbjg4eE9rV3hENkM0YXdIZUV3bE5OdWliMERoU01XbjFiZVFQWjhj?= =?utf-8?B?dENNRmNGeUR0UnRheSsycU5LQjByZ1kySWZlckdsbjN0ZFovaGVxNWI0UTZQ?= =?utf-8?B?M1ltelJVV09sQUkvTjF4ZFlnNHN3c1NMbEt1WnVQZmNjSHJ1ZkVwT0lqcVR1?= =?utf-8?B?YzBaWE1RZFVDbmhKTmtneWdPbXJMS2dnQkRER0NZUWl5bUZyYnRNMitrYTRx?= =?utf-8?B?bWVtQ3NyQW0vR1BnN2NIcUtZTE1oMWdVbWhPeEg3cUsxLzFkdzdRNXphNTZZ?= =?utf-8?B?bjIxV3RpbG1CMExNK0dLSk92OXRyd3RJa3pzQ25vazVoSTJJaE95WlA5ZW1B?= =?utf-8?B?V0ZuZkp4NEtIR3d6QVplaVg5a3JkS1lDQmlORWxjcE03eE5iZFF0SW9KVStn?= =?utf-8?B?QWRjLzl5djNza2FmZzN5YVRqWlFnK0VPQnU3SlFsV21ETzJjOUZQbUM2SHR0?= =?utf-8?B?b0wyRnVGSkVUM2U2eTZJS012cmw1YlVNV1VOb2tPQWhiSU44Z1gyc0k4T3hU?= =?utf-8?B?VU5BVC9ULzVXckpBN2sza0c2ZkZucHVCb1BxeWpXanl3N1E5akduaTVJYUtV?= =?utf-8?B?anp2ajFMQ0Y5ZkROeXhFc2RUMHo2WXRkRys3SnZEL0NWRWZNdXA5Mng1UmRk?= =?utf-8?B?UWxmT3BHbEZMV09ZOFhuWE5ob3E0ZzhzdDg5aVBpY2pMY1dkNVllSVJ0aFNI?= =?utf-8?B?akNEY1NLQjFuRWRUeWRWWlc1QVk4WG9Ha09wQ0VJR2FSdjFCUDY2VnR1K2hk?= =?utf-8?B?ZEtGWXJQODVuR2FvUHdIaGdyUC9RQ3VRbU9oWmxlVm9uYWVPYkh4YmhWaWpI?= =?utf-8?B?MDZlbFp5emZDRjl6NVVUMjRnWjJwWDhsWlRHNjRuK3ZoN3g3KzJudVVSMk96?= =?utf-8?B?NFppZGhTcHBTWnM5L1NnbGpqUm9sYVF5ZlpXNXpQOURLanFoN1RIblVrRzVQ?= =?utf-8?B?UmxDVC96VDZXS3JXL1pKVUcrUitweUhINGZRa0tnRWdZSkZuK1lTcm5uL2Jy?= =?utf-8?B?ck51SFpvT1V4MjIxLy9TaS80SE0ra3Y2YnI2OTc2SHp6cDhVRm1BaUx4aVA1?= =?utf-8?B?TE9HckErRWx2M2VyMWRxRjFxZ1B1dHcvUjZCSGlxK2l5R2M4Qm5Rd1VkWUhQ?= =?utf-8?B?V2p6VFhvZHJXZDg0R3djRVpPWVBnNC9tdWhWVXExRFkwSzg4ci9mL2ptYm5m?= =?utf-8?B?aDNVWlNRV0NhNkkrbmpzTm9XU1lzOGJQSzZ1SVhWMXpORmgyQkRBdVNNcnhU?= =?utf-8?B?UkxGa1c5TENuNkc4TUFsclRXR3UzWGg2U1ZNczVTQnlrckRabVJkenY2QkxT?= =?utf-8?B?Mk92UHRPWmhtbDl1d3ZmeUxBQlVMUVQzbHdiT0lVNk1ia2t1ekRVa05ybE1H?= =?utf-8?B?V2EzNGZsazN1NytLbjZkY0N2dkRuTFhXdVZnTDNTN0NRZEM0NkR2Zz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 5a64cd77-66d5-49c8-abf1-08dee905e638 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:08.0352 (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: X1mVLXb4p3g2xhuef8MsKIs+iZHx270Lv7FeHAniV3BHJAufNbubx6+M26t/Z5ax4ibP38yfdpUCP8em/f5g7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 pci_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 pci_dev, so just store driver_data. Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/scsi/nsp32.c | 8 ++++---- drivers/scsi/nsp32.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c index e893d5677241..9c9281222a0a 100644 --- a/drivers/scsi/nsp32.c +++ b/drivers/scsi/nsp32.c @@ -1470,7 +1470,7 @@ static int nsp32_show_info(struct seq_file *m, struct= Scsi_Host *host) (nsp32_read2(base, INDEX_REG) >> 8) & 0xff); =20 mode_reg =3D nsp32_index_read1(base, CHIP_MODE); - model =3D data->pci_devid->driver_data; + model =3D data->model; =20 #ifdef CONFIG_PM seq_printf(m, "Power Management: %s\n", @@ -2907,8 +2907,8 @@ static int nsp32_eh_host_reset(struct scsi_cmnd *SCpn= t) */ static int nsp32_getprom_param(nsp32_hw_data *data) { - int vendor =3D data->pci_devid->vendor; - int device =3D data->pci_devid->device; + int vendor =3D data->Pci->vendor; + int device =3D data->Pci->device; int ret, i; int __maybe_unused val; =20 @@ -3340,7 +3340,7 @@ static int nsp32_probe(struct pci_dev *pdev, const st= ruct pci_device_id *id) } =20 data->Pci =3D pdev; - data->pci_devid =3D id; + data->model =3D id->driver_data; data->IrqNumber =3D pdev->irq; data->BaseAddress =3D pci_resource_start(pdev, 0); data->NumAddress =3D pci_resource_len (pdev, 0); diff --git a/drivers/scsi/nsp32.h b/drivers/scsi/nsp32.h index 924889f8bd37..9e65771cb592 100644 --- a/drivers/scsi/nsp32.h +++ b/drivers/scsi/nsp32.h @@ -564,10 +564,10 @@ typedef struct _nsp32_hw_data { =20 struct scsi_cmnd *CurrentSC; =20 - struct pci_dev *Pci; - const struct pci_device_id *pci_devid; - struct Scsi_Host *Host; - spinlock_t Lock; + struct pci_dev *Pci; + int model; + struct Scsi_Host *Host; + spinlock_t Lock; =20 char info_str[100]; =20 --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022093.outbound.protection.outlook.com [52.101.96.93]) (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 0A9FE3546DF; Thu, 23 Jul 2026 22:01:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844096; cv=fail; b=WrfJ+dXQeVdcJSN0OsrEndUZlCqoWnfU81POgS2qcEYRNgrZRZnxA+SUtZGWYuEWyXzI8Tmvno3hdNk8axZvrDhxVKqGyFFk8LWtKpiAgSobHkdi3b9mICTqYeK6S5rC7WGWmpjoIRpzQI2JJsnau4537KCYDgSyHdo1MuCI7xw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844096; c=relaxed/simple; bh=wgL7fCE//vjwzTSIhjUwV/F00oWziqEaO95Fl1LpTDo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=I+65glLIWgyZuyYS2qF7PPQUnruv20qj4iXNNBtW3R/gLjblOBPe7ui7VIonPspiPwleXg61H8pApRUnzhMvR4enW5wd8pUIluuOVozkOYUSFyrvMejvqSZ/t6XzsDU4u4yQ1ml2q3TtrXRBZ4BGA3yg/DViKmVk0PbcV794thc= 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=Wjbzalhy; arc=fail smtp.client-ip=52.101.96.93 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="Wjbzalhy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xxpxQljjeF7hpuVJw65V0NVUoThJnE16ITUtQPTmEl7sWO12YPRT6OmXgNAxwJBUE9F9qfNDdCYqRL8LnpJbpgjKxsRhXCcdo6nXjTN7BIjB8+4K83PPUTz04RzoySNIEd3N64atqWY6ZF8Az2yy5Yf/IByJDGYt0G+2wwwmaV9GEtar7FV9jFrrj+PL5+MfxNLff33FQARvKy9WNxaza7PRhbZ3SZFdBYfkq3FRZkYgjfhtEX3ieCgDY2fng2kfpclFkIF+fyDXBdU1pRO1FoiArIVOq+Jk9RyJgb5/CLtI9F9UfhcCitbUoyYUv9oUJYiD2Vu1U7SnndMIjndXbg== 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=o7V/cR9AyVAcL4HsXPbg162VLpkBkDOgBZmZ687ae1M=; b=ZNGqqxKVfrrw5X5jSSWOHy+h1GFSd3HSad1EStsc8YE4qtBO64sErFXl0VMWyAfvIEB2zWfwpM+UF0j6qWofHLXKe9Mg2luHx7qSXsOAqsl1vWdQHN/rbM/Vu6F0zUUI1DhYrsLLpi0D5Ne+MUIfEvtjojxxNSsDSpXT2WaXwiKRXxsOryVFl99fxhE46a2ObD5HwffNuvNEp5WNzs6L+jgQxOvpYgUqtMc0UNkzqekEEZ9RM4+oEcIQqjbjLAnrvz18Mx0qI6ipJFASMU1kMQjody135CJH4127UCiBejVeVlRFoTVEcBCBm2stSrqamujis9CPLB3/ZojzCWreKA== 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=o7V/cR9AyVAcL4HsXPbg162VLpkBkDOgBZmZ687ae1M=; b=WjbzalhymJxEI+VZ7X6TuE3p+QPI4DjYiP35d/jCc45k3eTEJBaCMo8OUTfxI2vEJGczM4a1kY4PAwl51njSl2qAQBUtXicXs80PHBtaq0oXSAxoLV0ElEyswMQTqjdD3bpAt4PUP6LPvHvyBVHirBn2SlDW1X08u68t6P/rIYA= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:08 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:08 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:42 +0100 Subject: [PATCH v4 3/9] ipack: tpci200: don't store pci_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-3-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=1308; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=wgL7fCE//vjwzTSIhjUwV/F00oWziqEaO95Fl1LpTDo=; b=R93S+PTbAf9QYW0nsAfTg/yQsXSru11QUm0q9HbpH8ecie9MSXW8hub7SfcOT07X16kTX+SwU /YuSeGSV8++D7hXe7zHlNS8APaW2k11F279ycBWwImLSptbURSprPSH X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f9c9a39-63ee-4795-4085-08dee905e678 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: /ZOe5fYFK8BbxqXkWeWH6TEB9zgUaHgg5qEK90GeqDBOBt+23DBzsS1fYkQ8GPnv16ppGu1Y4QjloF+92HA6tMx9bYDvOcbAgCZwgSE/nGsC3ZIR3XL2YBX8jEL/cisfM80IuHbI+fCsHwY7mUIyM0WYfC4IlHM6GxH/7mVXTHmLMKBHLDwGyZOm6LQlhjKj2akdOcHoMVl+MPIYXc12WPQ84/9B5/SJZUydkYb1fINfImhztouWIe2Eq8hzJLezP0uwosxd8W7fpkgu64Qhth3UqG5XEnLp1AvOgkLACrmq/jt62ioDCJoAxE/ic/F5vdQk1MLx0w6H+NjCEdUYB/zF6ol7oT0tF0HKjJ/F9QTyjOPN9trAc8gy3krTr9v4wSp77t6nsdHWjqiMlvIcTG3or+mbeck6A6uckAxjcmLiREjCPAvshUOTf41VF9H0Ft4990erHp8YmhmGPX0b2vlb0IfYbRcAvArJvCjTnzjPHsMPb2KwVgbOywffc+cA8jfGVH2/YTErc7LOUmsTyjSHNX6ihtKDCPo2POMj27PCnOsmGOaij3QVB4hKifKeqs9flm/3nf7QhyUBWie5xlWubm7EeSKJgiDVclKr447/L9mHgbbaAr6zWrrta+C/iSDMvXIC6XlzEK3IeYJ1jnZ6FOPgAiji+bXnvDoqfa1rsNzCB7W/IgawK/hGAW8pFc6s0hJPTUmt67SLZ3OI9g== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?enV6N04xMlFobXRJTkRZT2M1eVlNb01ZRXpTMitLeWFZMGJ1cGFHV295dmNB?= =?utf-8?B?eUdHbUNpdHZCcjh4T1U4R1JyYk5BZFV1U2pHZFN6WjNBTG1XeWhhaExZYkl1?= =?utf-8?B?bllCWjZkTngyQUUwVG5xWjJaSzJOaVltTTJvVlJqcFJGZjlxZXNQYld0NzF3?= =?utf-8?B?b3BVOE1NUmh5b2tMYVViVWtVVkIyenluSHFFZXpyUkp1YmVQekd3emU0bE5z?= =?utf-8?B?aGhxS3kwOFl1dTlMUllob0pESVNFbG5UaU5KQmpsR0VFNkt5TnNVRGVZZTJq?= =?utf-8?B?U1dKNXZscGVjaUcvZnA1VmNrR2s4V0VYcFFmeG1icm90UEpyZUtPdFpWQlgr?= =?utf-8?B?NGtxUkZENUxYVFZlOWtveGtWN3dRZjVnc2s2cG9jZ0h2RkE2akl4YkNkSXdJ?= =?utf-8?B?UlpiaEtKWkdrRGRnZ2lSWm40cjRlZmhCNklPWGFYZzhZcmpBOXZoVlpwSnYz?= =?utf-8?B?OXQ2RzJldnBYZ2lRVnNsZXd5TnFLQmZqSm9Fa0RzdE5tMXBCek4wNWRBUU9n?= =?utf-8?B?aDV5SFkyNzBHd0JOMmxYOVBsY1BJM2ZOR3F1Z2h2Q3R1ejR0OGEwYkc4YlF0?= =?utf-8?B?STBMYTFJZnB6MEQ1OWZlcGxlUzhRbmlqRktoQVlsUmlXWVdZTmxyeVRWT2E5?= =?utf-8?B?VkUrKzZuWkg0SXE0YUVNQ2hCQnQ1UThuMUZRYUJNbmFGSG5nQWF4L0c1VTgv?= =?utf-8?B?R3dUK01LREQvNlBmQ1EvbWx6cFRidU1UbFFzT01nb0ZTblhlcjhidlF3WHlu?= =?utf-8?B?dTd4MDJXL3lKY2dhRzNWcHgvT0pKaHdMazVUcFk1YUpsSGlQWGNzM3RTNkVQ?= =?utf-8?B?blE1ck55elRYNmdmQXNsQTVDVkdqd1RuQk50c0ZIWG9YeU1Qb3VZV0k0bE5M?= =?utf-8?B?SVVDLzJWNWVsWkdGdHp2eWtJY2VZYjRTNnorTkVSeHdSWk1mRS9ZWVF6OEx3?= =?utf-8?B?bFR6cWVCQXZnWTBueGZrNkdTS2pLU3oyQmNJbDFudmQ0bzloZzFoTGMyTEhI?= =?utf-8?B?S1A2Y016M2Q4YTNPWkpDaDM5NmlaZ1QwRXpYcGxmcmlaQXVralJVcjhFVHVa?= =?utf-8?B?di83emR1MG50REJsS1V5aksxcGtRWkUwOHRUQ2I4M04rQVd2NER1QXBsK3ZH?= =?utf-8?B?SEI2VlUrb3g1RFpXSVdrMGFuRHY1cnRSakc4ZjFYSFVobUJPYXU3Zjgydmcx?= =?utf-8?B?YkJBcTg1Vm5GaFhmSDd1aThSd2RTUnkrMEovRVo0Y2RjL0JwSER3VmtXQ3Y1?= =?utf-8?B?L3NpbzVQN0FMUVo0YlNJbXhpOW5oM3k2NmMrcWdaU0MxanhoaXVmTVozMisy?= =?utf-8?B?OFJsL2N5NFlHR29UR3I3cERCUWJyL2hLVlUvNEM4TUkzUXRaclpYbGJzYmhD?= =?utf-8?B?NFp4dnFGWlBPMWVLRnNGZWE1WW5jcWtyL3EwK0F5ZjMwY3pWOG1pemU5c3kv?= =?utf-8?B?ZW04d0h6YzRZcUFxQWVVSHJKVkVmRkFlYnlxK1oybjlCTytpMkJrUHE2bWpu?= =?utf-8?B?dW92Uit5cmpNck4xY1pwL09VMXpkTGZTZHRoUGtrNCtsMXlOLzltQVVhZ0RI?= =?utf-8?B?T2x1K1ZoZnFVcEVuczdOTTFxQ0NmT3dxaENyMEF2dEVGaENPK1k4aFMxNEpK?= =?utf-8?B?Q0g0V3c1MmtnWG44bVM5UG51WlBxUUJjNmNnTDZvSnllaUpCZ2xHRG9FSW5h?= =?utf-8?B?MHBXUG9OUkp4VllLaGtadWd6dWMvV2RYWG5JdjNQYUpCaktQSDBOZ2RJT29X?= =?utf-8?B?cThmeDBiZHBIZkhpdzh1OVpwN0FwL3djUkVHbXo5Wm1zQXNMRzdLeFY4UDlP?= =?utf-8?B?djlKM0pqVUFkZ0h2eHk2WVd5UTFiNVB5K1l2YW5zVnU3aFRrVmlyVUZEeitZ?= =?utf-8?B?dzNlMHoxbkJjb0tseVc3dU9kOTJUQUo1RjUvM29BQ2pnVnRWak54TFZidXVM?= =?utf-8?B?ZGhNMWdjbWFQZzZ0d1hxWXlBK2xDMkZnZUFqRnpCTFZjKzBhTlo2N3ZDcUpy?= =?utf-8?B?enJrWDVqK2NQM0ZQVFR2eWVQMWdVOFBsYldSb1BuSlUyVUY3YjZJbXh1QVdY?= =?utf-8?B?aUhRc2MvU1p1M0NjOXNnR05MWTBhelAzV3pWS011K043aEdxOCszNm9QYlgw?= =?utf-8?B?c3ZGaWg3eCtxR0JRZG1lYmhIc1FmN1NJMnJRNGYwcFFDVEc3SkFoV2dGSTAx?= =?utf-8?B?WS9KRVExaGpGWS9ZN3BSa0hOWVZnWjE1b1lwMk1PKzBoL3FPd0FPM3N3bFd2?= =?utf-8?B?bHYvRkdOSFp1TjI4Qm9tMDhVR3hheTZtVlMwVkczL2NaNkx1V3ozU25ZYmFa?= =?utf-8?B?cjlWNU1RaXJ0dlozQXM0RGlOdWxqN0tId0pra3prdk85YXV5MFA4QT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 3f9c9a39-63ee-4795-4085-08dee905e678 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:08.4432 (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: 6cMBYAXF74RyS/X3Wafm3kWBklyBUn9eImzBm5eb4eopbkG853NHvmtEe+Ojll5uCYRzbRjd7cs8fc70bHGtmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 pci_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: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/ipack/carriers/tpci200.c | 1 - drivers/ipack/carriers/tpci200.h | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/ipack/carriers/tpci200.c b/drivers/ipack/carriers/tpci= 200.c index 05dcb6675cd6..1cf51f763293 100644 --- a/drivers/ipack/carriers/tpci200.c +++ b/drivers/ipack/carriers/tpci200.c @@ -562,7 +562,6 @@ static int tpci200_pci_probe(struct pci_dev *pdev, =20 /* Save struct pci_dev pointer */ tpci200->info->pdev =3D pdev; - tpci200->info->id_table =3D (struct pci_device_id *)id; =20 /* register the device and initialize it */ ret =3D tpci200_install(tpci200); diff --git a/drivers/ipack/carriers/tpci200.h b/drivers/ipack/carriers/tpci= 200.h index e79ac64abcff..a2bf3125794b 100644 --- a/drivers/ipack/carriers/tpci200.h +++ b/drivers/ipack/carriers/tpci200.h @@ -145,7 +145,6 @@ struct tpci200_slot { */ struct tpci200_infos { struct pci_dev *pdev; - struct pci_device_id *id_table; struct tpci200_regs __iomem *interface_regs; void __iomem *cfg_regs; struct ipack_bus_device *ipack_bus; --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022122.outbound.protection.outlook.com [52.101.96.122]) (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 5FE8B3FAE1D; Thu, 23 Jul 2026 22:01:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.122 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844097; cv=fail; b=Rq6QNrNHv6JzlH6wFyLbJ9Pnv5R3l62AMybEK92rE8mE8C8AnXHBYh63TgG6DIgTe3OOIvITD4zuvGxYBoeQxNIquuuHByKstiLhySRsrv0XwOZPG4yAOoJTk9ekASFDowmzLbB4Q+iJR+AVvYwbbWoVN1XNDMmcGdaUwFI7A2A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844097; c=relaxed/simple; bh=Uq8OGAcHVw6a6nyxNc6mSwt8JEqAoheaziIIndM7prc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=nGK3vVu9FtBZYllJM5KbtTxf28lWgnOKhEO/jU7q5KVpaBPBinCnHuzrfKMJtj1cKQQnODCAPYbNN3shcgXSvAwLPHVed70G9CJtf/EUVVYXV4YI+YYNjvedICyl+cErO9Q5W3mg4HKTvlUYh8r3YtQ/4Y6BU3uVuvuvHxsXsLY= 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=HN1Abj/m; arc=fail smtp.client-ip=52.101.96.122 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="HN1Abj/m" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vTVIAmZ5gGDPuJCz6Q+/0CK4ABpqziMzFa/4InbH88V/zM7Jpxq2NdY0rY+CNJD+UwIjJ7YUW+JppcIctRnBlY9qYnCBIO1mNppHfU+9HeH4sqC3wGDkmH73qrIt9ABq/7Be61OjROLBW1BvSJfDFOR5BXGdeJcmeT7du35YYgBH2eEdLlf3QdVveuPL32y2uGLuoF8TX8KR0M8bRkXR4LcYo+ZHq9iUuhZKX2RzcvXQE/Rkj4aivbxHZy/WRrx3OsMmdhJCyRX/vKXYJClyu83pUpzwOr/cv66czeHxVp65lhtfizdG7vXA/TtFbO3gm0LLiRwGl8FJTDq1rMhZug== 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=EqNSoU/Ele0jA7ni0VEhW0LfdshmnP/44N5SKfvrdQA=; b=oB82y+RrQSOuMF1BrmGmJkLY2+DmmEZf4W9D5dvOydVlFe5H/fmldllEJAmDoDrPt2AlGJNgeVPcaSenjoWr3IwkBg9OBi5JH4AIyOCmqUp8kkCKxp0u2ZngZstr8rAOglud3APtDNs3yTyvAiMY5C9Bk8ujr2KeDBI3vp6fHYPFtundsQ3cPfVv4/nmOGs/PyB9D6DkSYrOYsSzMF9N5qwQ2cCglSSlUviGiMnB93V7Kle9UoCRbrDKVlfvVLy30oFtVRSpw1UgN2GeUp43Tu/DwBDEeCYUYHHHzz4cKI08Zz6RdgkOtdlxbP5ztdH9VCuCDfs8iN6QVKmwutkDxw== 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=EqNSoU/Ele0jA7ni0VEhW0LfdshmnP/44N5SKfvrdQA=; b=HN1Abj/mBMJT82InpOTf2VGDFBqyLnkVXhNHRhxRmUjcvl1zJwa5MQh4fK+nZ56BGBDCNBwv06KJeMZddu/8nI+jZwJ0FvztP3ecDmb0J/ZjFB+ZYAJbyc6ANBdQhGrsOfXCMBWd/IhpHKgQMSCz+Y2VTI0+q7AqwN/rIYNUZLI= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:08 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:08 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:43 +0100 Subject: [PATCH v4 4/9] mlxsw: pci: don't store pci_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-4-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=2901; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=Uq8OGAcHVw6a6nyxNc6mSwt8JEqAoheaziIIndM7prc=; b=gX/Kkw2ll+bV9TpBy+GT8a4PfHVJimt+tYWkAX3H7b+CI4Ipq0dbW4muJF7CbX7W81A0x2X4+ ea14eokWIfZDoSNG5C+3OLhIibwpjdSIEoHPqH/k8fPIhSzQeeHyUE1 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: fac0001a-17ae-43f8-d640-08dee905e6b5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|56012099006|5023799004|10067099003; X-Microsoft-Antispam-Message-Info: Fa+1bOO+nhnSUd3NnxHRimJp9eIREr+OKjqFZyxSWF2PU11aI28hfYsmoZo7p0P9PlkKq9IgWgdR3ehrpFeggvWSNN3KdHvbfL9fb6gb0kydBrtvR/geejOL02pEor07xh7TqBFTG/hDxE5ZB3Kj5wYcbE5r12g/jK2GNuI3qaRhL81MN8e2Ic/gLxoCXUC670mCqKB+WtUcdTSQ+RJB7YTpwsUJHhBsoVAw+q4T4ip5T6iF/8InCJISdNdGJ1CG8gMUUzR+QL7khLGvijuyiZCM1fQ4d3BdPtYUarBfTQxAHKBE+pmB/NARsx8mVCPVV+e5Ct3kcZwX/HoI78ECYSy5bHWgucJYix1MR3PfrAOe3LScxfjwgawQfYr4vEc9f4c64loPmCfWM+tEL9qC9UIyGUEs1azEofjdt9O5NR/1qGnGoTXjfvTbn0yYlYuW/9DaruQ1YQmnIN8Cpg+71r4sLmpY6SM8DexJyixOuR99WZ2SI7rFp8v06nughI4tAShrBmwe0pW8QrEewIL+G+toFsQbKKJRi+kD4IFnLvVcVstyx8xEBAY4ZqntdvecdqFxi2g6ZxlFbiGOTkUGKMW4d/322qbzjE+6OhM+GbgUTlBonEa74hoP/NRnvtWMhdWtG998AH3f7sJR2pghqHj55DSMjn/F2ONElKv5QSNfaq5Dm98T594sZ5hhKViypChs284CoLGT9uCKcUgUjw== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(56012099006)(5023799004)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a29zNU93VWxGbXJoRUxlZkNuNVRhYzFYRk1kcUZyMGZYem9ldVBPSFAwOENv?= =?utf-8?B?c0dYQ3M4cWhkY2g2QkdVR2kzbHFNc0kwOVByb3ZXTzdRbEdzc1lWR0lXTEtZ?= =?utf-8?B?VFZqSXVlQ3ZRVWl4VEdMb05lSHdYREdoLzZTazZZK0Z3d21zci9HMzNQTG5t?= =?utf-8?B?YkxyN1ZEUWUwa1R1YUxiUFQwQ2xNUDhnYzU4R2hid2FDbytyRzE1WEt1SHZI?= =?utf-8?B?SHY5eDRwSUVGZHh6UzlYZGFwZHVmZzFtNk1LSUZVNzRNbmE5SCt1Sk9YL2w4?= =?utf-8?B?dkZldm5JZDhEbWk0eGVvN3BBem1XZE83VklKRHBXcGpYSC9IeE9JTmVSVmNN?= =?utf-8?B?OW9JQm42YXRuOXRUempvWUFnZkt3OS9nT0JYNVdueGpSOWZNWVo0V2hVQkVN?= =?utf-8?B?cVZTMnZXeHZZMGhMbkxKSm9ic2ZLcXdlb0ZIM1RhQkhJN2RTWS9tYlJJMitW?= =?utf-8?B?QmRPZnE1R2RJdFlnQUZGeHFabXdhclhvNzNUSGRFMkJZQUZpVUFpN2FSUExY?= =?utf-8?B?ZEF6QWJMWjB5RXlKVzJJOE5JZGNMMjVaVjRNR2lVOGhVRW5CSGpMVDFlRTg0?= =?utf-8?B?c3FUMkx4RWJaQzFCMjgxaFlPNjVGd3JCb3NxQjg3aTczRkZ0SzI0djR4UEl1?= =?utf-8?B?Q2JrdGdBYnY4OFBxSHh0bUhPNS9pdnFQSURteFdpd1RlQzhCQzZtVEROOS82?= =?utf-8?B?U2ZXU1BDMWd1Q3d4NlRyM09SV0ltZUpIYUpwa1JYejI0aG5lbk5uVjJtT2d2?= =?utf-8?B?bmNKbkdTQmJIOTFPUDlLcUlxenFaNHFpM21ORTdqTm1xcktNc1BPY3pTUE9w?= =?utf-8?B?MDZSOW56Nm8rNkFLSE5HS2w3UDhkL2s4S2xncXdSTWlNWnRBcnVqWkRYVm5o?= =?utf-8?B?ZERWZk5BQVEyTStaY1diVzNXSVRHeEs1dUQvejhPa2h2RjM5aTIwbmtHcTM4?= =?utf-8?B?bnhQZkI3OGFUNTNKZ1grSm9WOUJYNFVrU2VoVlhaVG1VeCtZZTN6aGMvU0d6?= =?utf-8?B?ZmNOS1JWL0pycWhwclFJRGgrdmlaYVBLWGFJNmRqUC92aEZmbFJOeEFsTnRQ?= =?utf-8?B?V1hFSjBDaE5WeTR0Q2tyaUYwR282TFk0S3RwVVJuZDlpZmduK2kvUlU2MUQ1?= =?utf-8?B?WkNMRTRQWmUyeWVTcUxsV1V6TGJqVmR0aUlSQmVtaFVPUWdPaEwwcEc0Mmdk?= =?utf-8?B?QVhRRCtEa1V3Y2NHYUFLRTJCR2Zud0hBMDZXS3UyK3ZOeTNUU1dYUStMUUg3?= =?utf-8?B?S2JqaWt3UzlQSGJmQkkzejB5NnpPVmMxQktmcmlxUDEzenlKMmk0RnFUS2Zr?= =?utf-8?B?RlN0aS95ZWQwa01PZTMrTmliWXN6YXYrWTFSVzVkSDJodENwS0dmdFhKc09h?= =?utf-8?B?OVVwc2YxVmdLV0xYWTVhMlZFOG0zS2JabDBXWFRNOG82aVNjdVFHUUo4N1Qw?= =?utf-8?B?emlPR2N6blNya1c3UVZnQnBEK1RaM25qWnhvTVpOVFlvV1N4aXdtRGpPa3Ja?= =?utf-8?B?bVZKdzVRTVNUZCt5RVFkQ3l3NWhIV01wT3JlQWNHVURTL21Hb2EwOEZxcjE1?= =?utf-8?B?RENXVmNXemFHajFvMktjOS9qbFNtZTBJUExHQmRKYkZiR3dlanpuQ21Ycm03?= =?utf-8?B?enFLc29TQjQycFZkbjFoQk5tcUU1UDFUQ25aUnBtK1NDS2EvZGlrZ29WVkpJ?= =?utf-8?B?d3J2RGxOMTFVQ202a3JIbU4wdUlPK282amtNaXYyV1FSa1cwOEhlSGVOWEtB?= =?utf-8?B?Rjk0TVhZNW93bkJTTm9PSzlFbVhMcEtTdC9KeFJRd0k4SEpFd2REc0treEpE?= =?utf-8?B?MkkvT0RVc0ozWWRtekNKeWFINUs2K2JOVlJxS3d1Z2dDNThxYW5tQXBXTnVH?= =?utf-8?B?b1ZhV0ZPNkZGSjhubWE5Q2Y4MXE1ZEU4NVBTSWNZNVVPLy9KV05KM0ZQZExh?= =?utf-8?B?eTlNc2Q4NWlCZDREVWhOcjRtY2NFd3NoTFpZcWxidDRQNnBlM0NSQ2JNeTNW?= =?utf-8?B?T29RbFRNRTFRYTZpOExNSGlaaHAzbG12RXMvSmh2Ym5wcGozN1lsUndEUE0y?= =?utf-8?B?THE4N3JyZzl1SFlXRmlqNDJqZ082dUorY1ZPR2Q5MWFZMHBtMWlNWnBzS0R3?= =?utf-8?B?Ukp4UEEvd1NqSGhKcU1ka1BkeHM1ejROMEF0LzByWDF1ZGZXVTRnemgwQ0Qx?= =?utf-8?B?ZWNleTM4WjF1RG4xTGNVUjBJWjM5SldUYUFmUnd4T01CK0hDeW1ybmRDNWVz?= =?utf-8?B?UnVWYndIdzROSUJpa0ZWZmEybjYyV1pRRU1Yd3RkQ0JHeXNSTzJZQnYvYVNX?= =?utf-8?B?aGZFZXdQRWVOdG9UeWJZWG9WU05DLytiMDdmUk9yeCtCeHhickhYZz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: fac0001a-17ae-43f8-d640-08dee905e6b5 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:08.8424 (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: R4fnMcfD2oi7v34pw1CZvtwaKqINEp1ouerEumRCSmJ95uquWtK7Km5+dSnNBY3i8eDBms06MyqmG7NpVCB5xQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 pci_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: Danilo Krummrich Reviewed-by: Petr Machata Signed-off-by: Gary Guo --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethern= et/mellanox/mlxsw/pci.c index 0da85d36647d..bfe3268dfdc1 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -130,7 +130,6 @@ struct mlxsw_pci { } comp; } cmd; struct mlxsw_bus_info bus_info; - const struct pci_device_id *id; enum mlxsw_pci_cqe_v max_cqe_ver; /* Maximal supported CQE version */ u8 num_cqs; /* Number of CQs */ u8 num_sdqs; /* Number of SDQs */ @@ -1768,7 +1767,6 @@ static void mlxsw_pci_mbox_free(struct mlxsw_pci *mlx= sw_pci, } =20 static int mlxsw_pci_sys_ready_wait(struct mlxsw_pci *mlxsw_pci, - const struct pci_device_id *id, u32 *p_sys_status) { unsigned long end; @@ -1839,7 +1837,7 @@ static int mlxsw_pci_reset_sw(struct mlxsw_pci *mlxsw= _pci) } =20 static int -mlxsw_pci_reset(struct mlxsw_pci *mlxsw_pci, const struct pci_device_id *i= d) +mlxsw_pci_reset(struct mlxsw_pci *mlxsw_pci) { struct pci_dev *pdev =3D mlxsw_pci->pdev; bool pci_reset_sbr_supported =3D false; @@ -1848,7 +1846,7 @@ mlxsw_pci_reset(struct mlxsw_pci *mlxsw_pci, const st= ruct pci_device_id *id) u32 sys_status; int err; =20 - err =3D mlxsw_pci_sys_ready_wait(mlxsw_pci, id, &sys_status); + err =3D mlxsw_pci_sys_ready_wait(mlxsw_pci, &sys_status); if (err) { dev_err(&pdev->dev, "Failed to reach system ready status before reset. S= tatus is 0x%x\n", sys_status); @@ -1880,7 +1878,7 @@ mlxsw_pci_reset(struct mlxsw_pci *mlxsw_pci, const st= ruct pci_device_id *id) if (err) return err; =20 - err =3D mlxsw_pci_sys_ready_wait(mlxsw_pci, id, &sys_status); + err =3D mlxsw_pci_sys_ready_wait(mlxsw_pci, &sys_status); if (err) { dev_err(&pdev->dev, "Failed to reach system ready status after reset. St= atus is 0x%x\n", sys_status); @@ -1932,7 +1930,7 @@ static int mlxsw_pci_init(void *bus_priv, struct mlxs= w_core *mlxsw_core, if (!mbox) return -ENOMEM; =20 - err =3D mlxsw_pci_reset(mlxsw_pci, mlxsw_pci->id); + err =3D mlxsw_pci_reset(mlxsw_pci); if (err) goto err_reset; =20 @@ -2464,7 +2462,6 @@ static int mlxsw_pci_probe(struct pci_dev *pdev, cons= t struct pci_device_id *id) mlxsw_pci->bus_info.device_name =3D pci_name(mlxsw_pci->pdev); mlxsw_pci->bus_info.dev =3D &pdev->dev; mlxsw_pci->bus_info.read_clock_capable =3D true; - mlxsw_pci->id =3D id; =20 err =3D mlxsw_core_bus_device_register(&mlxsw_pci->bus_info, &mlxsw_pci_bus, mlxsw_pci, false, --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022093.outbound.protection.outlook.com [52.101.96.93]) (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 0413E403EB5; Thu, 23 Jul 2026 22:01:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844108; cv=fail; b=WR3lygaEGu6otdOlqwQNM/8Vh6wnhGku4ubesdck54yHfvq7NPAeV1HwrOuh2ogqkRg4SrOxtJ+ISSDM3WzEDftdI96yL47FzKjshnYf9BPuUZtzBgHrqxh2K/tFMdKLNNbYuVbMF5o4pCZPTQ7TuU9xs0XhBRc835S6l7FHw3Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844108; c=relaxed/simple; bh=O4AeIwouKxfz/v8M6iU/+NbWvDIMsUu6ikPZv3LI3Cg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=WOz0sQ6AgFxJzKdPQKn4waOdLjjoZaaknBRSfIwUkr/fwj7pBJlENZxqDa642BMQqdsDFi3Wj++bjFSGg9PY9/zMcRDSd70IYhP9BP1c9EQhTAaI/QQrfsnnG8e5tWeMlQ26NABqjoi7AJjjOC+bHOZ/CzZi2xAA8oCwAMZDDds= 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=yC4hs8S3; arc=fail smtp.client-ip=52.101.96.93 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="yC4hs8S3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FlAajCSzsN0XCpOidpgxgUssbcDapAeTmZCcjvy/Fq1raDROI3HWPTQw5qATMJqJgv4mJ8qUvxJW9nCeRRspBeOGFOALjPmEeB3YVBgE7KXHHywsD0octQ/8QouZtHinO2aA7tRa2/rbXa/FDO3OS1lf/h/e6KItMGbpkXIiNzshBIu3pYnkbtieBD/1AGwWJ3XA13NJLzp7gW5Zh6wUbPz2QD9nyVWQ5UFFa8IKSrs6ompcnGnv/o8gbaFtvvXkDGtSCrrJc5LgiWaUabluBlMtMXdzADsL6fNtPRQMSNAkYCT7sT1hj9wou3iqXPW9g/sVvih9dnLlVtEw+5dn5g== 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=A0rlONosCECIyzqAGIa7AyjryVFCu/U7s8IpHHskCWg=; b=wG8S2t3uu1hW13XBWK2aZRB2EZHJhcC/VtOJJR6zC/DHZpJTuGepHGiltSmf1nzUfdh/bWtStCvDKSa3oL5AHL59cLKLiVft7YPD1Ug3qA0MDdMxpmpr0Af9FucfyP0iINAVfpPtM4H6c2X0MT1D+AIqngGb0ffWEeqCI1+JPyY2RssvOvNQjYT3GZNrXnLbZ2q4T060gR2gWh5S0xDQq8cp0LmSUnddRvT8bt65pJ9ldyY0NZSwwzN29CMa1gCcuSpABXHJ1ZWsGyq+X/70sU+4yZcvHrVCimGWxEbdAzCKfBqQ21ANcNGahlcaMfQP3Ydle7IlieBxECgwttgt1Q== 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=A0rlONosCECIyzqAGIa7AyjryVFCu/U7s8IpHHskCWg=; b=yC4hs8S3JJO+cycddcAsIl4UnE9+jS2NnG5Kd8B1wyhpbRF4EuknF0lMM95eVxGtpGATCOtXotb1YIi1Eh4OUYzYewYHIOSKzLGGNWLH/YXOwE+beE1j8LWO3hwtIQbcmdshByL7HCL0b7mDF/MJlovt1qyqqVzt+ITc/KzNIWo= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:09 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:09 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:44 +0100 Subject: [PATCH v4 5/9] agp/via: Don't rely on address of pci_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-5-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=9936; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=O4AeIwouKxfz/v8M6iU/+NbWvDIMsUu6ikPZv3LI3Cg=; b=mGneCNVMVv937raqOpRbSiEmWEspoI/PNT5nf0QZ/3QFvKqqgjCEemTBKVWRlJR7er0D1Eq5u mdqkzKu6XcqADbfZv2TttE1PcrN7iNsiyJGohireSrFewNm9h2ddfGC X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: 90111ae4-8a42-47a4-24c8-08dee905e6f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|3023799007|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: na7Z5EdzK4s1RV7B0je3PoJ48vdUhd3OcebZ7Z9OJHYXeNdJNqcHaBd1ScSK9aCI+zuKaE1FaYLu0DtpEb6G0nRwmGAFNBB39+1qrSmV0Q3w+oFEVq/j/jNi/5evwnX+e2fYNKECrCqLv8ANQbsSbpWtVf5wTDiiRX9lTtGTHRg9A/iAV1th6PxdmLmkuVbIyVtjqD2xvewY3iaoDeYVVG9qUOSlo3Dm0YLe8TOBjR+q/bsQotbgmNHAhifwontjboZCA7Il+6XVGfStjaelhn/tTm0eqFTlEj04axLu28JhUb4pi9TiDXj7Prk6U/nRjMCY+9vd4C3nj97SxOnnAYFWPDe5aXkHYefzObXqpmjiDa09neFJRcJXDWUa3RomYZ5qe8tWAJDRWVdyEZ0jymMKyyAhhZQnyv5o0Myy+De+JWPoVqucJy0t+RtdQQPrmUGFowvrDB6wX1HAxzi3+5gch6s4m3xW/yVPLBdilDmwioSPjaYM8EZOOXrH4NlQgcn2L4Le7AJ9fE8FL+FFoNNYqNXjnX43HTkg8tragJAnrYisi0tOS1cK4c8OMfoSOsjvYnF/9Q+hunuaT8M6RRIpN9HiHka/2GT7Fj3sp2xvYUKiFfSyF6tTqC+6OhRqasGCxZ9USZ/BN1meJ+4CWDw3fxXs0zIPptCZER/uK0FO3fF+5uRfGQwOJQUHrIGeBKUnqMtfnukOboyyUxr/fg== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(3023799007)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QVc5K2N1ZWh3OXRERHFlTFJMaE1TdSs3RjBub0hsbWZnZmRCbUEydW4vc0Y3?= =?utf-8?B?bXVINXczQnRXTi9jVEx0NWpWc0p5MWVrTmY1VDJCUmRuV3lGb0xmdWxGM1d0?= =?utf-8?B?TkxESzRYVmdlWkxuNXNVTnhpZzlTaHFvbXRHSjRWQzA2bDdtbWliZGNpOW5L?= =?utf-8?B?bVJNWC9LcTF5bDI4NmFMTVdZRFpsU2Z5dGNRK3RVNktFNWVURlVYbHZjY0Zx?= =?utf-8?B?cFhLNS9qbnVSZmhSd3NQKzQ1Rmg4QU9zRVM0ZDViTEJqNFNZeDd1VGQxcnQy?= =?utf-8?B?b2UwZzM3b0l1dWR3TWRaalNLSmFQaytzSW5NUVJiQWJUTHpwcXVHOUI5Tzln?= =?utf-8?B?TEtIUFRadUpGUndqZnFUM3NFTWlET1EweDMwWStLRmdvUzdRNnNJVEROOFc2?= =?utf-8?B?Mlc3SXRNVUp0YjFJYXBjUkI1Z0xYRDk4UXJ4RjZxQUF5ck5CbkNhZzRhUk1u?= =?utf-8?B?Ym5tc2hVczQ1NUFqYkhtTUlvN2RRcHBsMFZmRHFpQjRrOXYwUUJMeW5kLzZZ?= =?utf-8?B?VS9sMXp0aUFMS2pDUHFqTHYyZVlGeHV5MUdKSEVDeTV1T1pqMTFNdHFleUlx?= =?utf-8?B?TTBDRy9Ta0tubVgvNU0rWUlQQ0RZdklDV3gzUkV0VlVMZDFad05sWGVjTlFh?= =?utf-8?B?RWVxWTNpQTVpanFJOE1mNDdhVkVEY1kvV0k0azNRTzFVZEdEQU4yVmpLOWF5?= =?utf-8?B?YUtvN2hVYTlzcy80NklhUlllWEFmbWY0RmF3SERWRlhUMEtmM09TWk1BcHR2?= =?utf-8?B?R2lITjF1R1JxZWRxWkEwSllTQWhwcHF3Ykl1TVh5aTk0MHNpdFhUZ2ZieUps?= =?utf-8?B?MVlVRXJTOHJweitvYWxIRk9qelNKT3BVa0dMK0ZvbEZBd3p4YmlyT1NQeFZS?= =?utf-8?B?SUQyWVpqSk84UWlreHo2MjRibWpORWRicUFhNDNkYUpiUlpNa1gvZW53V1p3?= =?utf-8?B?NmlaMVZGQWZiYXltelhQNmI4M1BnNGlkZjl1OHNUYmRGL0p4MGpiT3hXeVdB?= =?utf-8?B?TEs5S3JHV2ZYcndnWml6UU10Y2M0d0s4YU5OUXVlVVUyajhMUkhXUTZBNjRB?= =?utf-8?B?cjlVSC9tdEpTd3hZTVcrMHFNSkpzYjliOTZQNXRVWTg2MVQ0UEFUMHBYSDQy?= =?utf-8?B?bDFYWVlJUnZQVkE5TU5QMk0yTTgwdWhXczdGRzJzY25PMTN4SHRSbUQ2UUdL?= =?utf-8?B?QWtnY3EwTTNxbC9COE8yNit6V0ViYWh6SzVHYnN2bklXdzFtenVGdkQ5NHh1?= =?utf-8?B?VCtqcS9FUGFScWIyTUdKZzdLaFAyekhheDBVVFRvdXp2S0NBUjZ5REVjbzhZ?= =?utf-8?B?L2dFRGwrd1RlTElHVkdkNDFMVVJXSjVna2ZtNVpOazNUZFVlUWFtQ0hOaEN1?= =?utf-8?B?TEppRTBzOTFZL2N5N2lRbms2eDJCSHkxRXlNUDNEamxSNENtZWZ6VmdBcE5n?= =?utf-8?B?dEJPLzdCMG5qQUhsNTJLeXRnY0k2SXU0QWh0VStuWUN2K1FVRXpydU9RL2xM?= =?utf-8?B?SHB2RmVzOW1iQ2t0Q1pJTFZxKzZSK1ltTW1lRTdtcUcza0ZsODhmZUN0Lysw?= =?utf-8?B?N0UxTE5UQlBxYy9hNFdGN3JXNWFZZnJHY2Z5M01TRUhaTEI4dFd6WHdhQ2pQ?= =?utf-8?B?ellqT21hdmIwSGNZVFFicWVVakF1NktWVWZDa0xKTUpwRzIvNTcwUUVpc09S?= =?utf-8?B?VEVBZG40MHJMb05rdlNQZUJMUHI3enBWMlZTQmF2UENranJPQUtXcmNBbzB3?= =?utf-8?B?RkFheE5SNXRYaEphL3pPbHByelpMbDBmVmJ1VExRNlZyOFV4SHBxZVBUUGlp?= =?utf-8?B?cVNBZ29MMGdPMmwwbUZ5UFlxT2ZwR3IyNGVQWlRxcmlIK2lmVWZEd1ZZUGpN?= =?utf-8?B?d0FnMVVYRXUxNGhOVWJNaU1tUXdLL0Q1YS9wMzdjODhBTDNJZXR4SVdLMmdR?= =?utf-8?B?RXAvNHJDQXM2dkdoSFlHSXNQQlEvV2lMR1VwSDgzUm1KWjl5a1hhQTIzSDRr?= =?utf-8?B?SmxXRUVJdVJRQ3hhZ2QwaHlJMHg3MGtwQjM3ZlI0QmxhS1BpU2lYNERNWW5Z?= =?utf-8?B?aDAxeUw2dVJUTmVPUFJQSjBlaklMbzQyS0czSXhuQ1B3YTUvYy8rK1JUSjRv?= =?utf-8?B?S2E5a295QW9BU0J0MkwrTjJ1aktMSzRVN2wvQ0RqcGh6QkdscHRtNXRTV2F1?= =?utf-8?B?T1l0cnloSFgyUVJybDUyKzlycDhpS0VTM2kwTnR4N3d2UFZYU1pGSlQyRnhl?= =?utf-8?B?M01OSjBSbmpXbm0wUmVhSG5iT1JaczZHTFh1QS9MaW0rY0YyclhLRUpQcUZw?= =?utf-8?B?ZjBrTmtzaUUvMFFab3ltS1BBY0VsMmVtTVU1ZktTTXA4WlJlTFJEdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 90111ae4-8a42-47a4-24c8-08dee905e6f9 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:09.2891 (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: tepQ8A7WZx1jdSzgd7SIx9ZEh5Mi7EsFYlKjBjtTviz00d41C44VkJU6VUAw7rlJyoPc+dURpafsWlcGIkDaOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 Address of pci_device_id cannot be relied on due to presence of dynamic ID and driver_override. Use driver_data instead. Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/char/agp/via-agp.c | 308 +++++++++++------------------------------= ---- 1 file changed, 72 insertions(+), 236 deletions(-) diff --git a/drivers/char/agp/via-agp.c b/drivers/char/agp/via-agp.c index 8b19a5d1a09b..ab3b73dd080a 100644 --- a/drivers/char/agp/via-agp.c +++ b/drivers/char/agp/via-agp.c @@ -221,204 +221,6 @@ static const struct agp_bridge_driver via_driver =3D { .agp_type_to_mask_type =3D agp_generic_type_to_mask_type, }; =20 -static struct agp_device_ids via_agp_device_ids[] =3D -{ - { - .device_id =3D PCI_DEVICE_ID_VIA_82C597_0, - .chipset_name =3D "Apollo VP3", - }, - - { - .device_id =3D PCI_DEVICE_ID_VIA_82C598_0, - .chipset_name =3D "Apollo MVP3", - }, - - { - .device_id =3D PCI_DEVICE_ID_VIA_8501_0, - .chipset_name =3D "Apollo MVP4", - }, - - /* VT8601 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8601_0, - .chipset_name =3D "Apollo ProMedia/PLE133Ta", - }, - - /* VT82C693A / VT28C694T */ - { - .device_id =3D PCI_DEVICE_ID_VIA_82C691_0, - .chipset_name =3D "Apollo Pro 133", - }, - - { - .device_id =3D PCI_DEVICE_ID_VIA_8371_0, - .chipset_name =3D "KX133", - }, - - /* VT8633 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8633_0, - .chipset_name =3D "Pro 266", - }, - - { - .device_id =3D PCI_DEVICE_ID_VIA_XN266, - .chipset_name =3D "Apollo Pro266", - }, - - /* VT8361 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8361, - .chipset_name =3D "KLE133", - }, - - /* VT8365 / VT8362 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8363_0, - .chipset_name =3D "Twister-K/KT133x/KM133", - }, - - /* VT8753A */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8753_0, - .chipset_name =3D "P4X266", - }, - - /* VT8366 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8367_0, - .chipset_name =3D "KT266/KY266x/KT333", - }, - - /* VT8633 (for CuMine/ Celeron) */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8653_0, - .chipset_name =3D "Pro266T", - }, - - /* KM266 / PM266 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_XM266, - .chipset_name =3D "PM266/KM266", - }, - - /* CLE266 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_862X_0, - .chipset_name =3D "CLE266", - }, - - { - .device_id =3D PCI_DEVICE_ID_VIA_8377_0, - .chipset_name =3D "KT400/KT400A/KT600", - }, - - /* VT8604 / VT8605 / VT8603 - * (Apollo Pro133A chipset with S3 Savage4) */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8605_0, - .chipset_name =3D "ProSavage PM133/PL133/PN133" - }, - - /* P4M266x/P4N266 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8703_51_0, - .chipset_name =3D "P4M266x/P4N266", - }, - - /* VT8754 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8754C_0, - .chipset_name =3D "PT800", - }, - - /* P4X600 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8763_0, - .chipset_name =3D "P4X600" - }, - - /* KM400 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8378_0, - .chipset_name =3D "KM400/KM400A", - }, - - /* PT880 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_PT880, - .chipset_name =3D "PT880", - }, - - /* PT880 Ultra */ - { - .device_id =3D PCI_DEVICE_ID_VIA_PT880ULTRA, - .chipset_name =3D "PT880 Ultra", - }, - - /* PT890 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_8783_0, - .chipset_name =3D "PT890", - }, - - /* PM800/PN800/PM880/PN880 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_PX8X0_0, - .chipset_name =3D "PM800/PN800/PM880/PN880", - }, - /* KT880 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_3269_0, - .chipset_name =3D "KT880", - }, - /* KTxxx/Px8xx */ - { - .device_id =3D PCI_DEVICE_ID_VIA_83_87XX_1, - .chipset_name =3D "VT83xx/VT87xx/KTxxx/Px8xx", - }, - /* P4M800 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_3296_0, - .chipset_name =3D "P4M800", - }, - /* P4M800CE */ - { - .device_id =3D PCI_DEVICE_ID_VIA_P4M800CE, - .chipset_name =3D "VT3314", - }, - /* VT3324 / CX700 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_VT3324, - .chipset_name =3D "CX700", - }, - /* VT3336 - this is a chipset for AMD Athlon/K8 CPU. Due to K8's unique - * architecture, the AGP resource and behavior are different from - * the traditional AGP which resides only in chipset. AGP is used - * by 3D driver which wasn't available for the VT3336 and VT3364 - * generation until now. Unfortunately, by testing, VT3364 works - * but VT3336 doesn't. - explanation from via, just leave this as - * as a placeholder to avoid future patches adding it back in. - */ -#if 0 - { - .device_id =3D PCI_DEVICE_ID_VIA_VT3336, - .chipset_name =3D "VT3336", - }, -#endif - /* P4M890 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_P4M890, - .chipset_name =3D "P4M890", - }, - /* P4M900 */ - { - .device_id =3D PCI_DEVICE_ID_VIA_VT3364, - .chipset_name =3D "P4M900", - }, - { }, /* dummy final entry, always present */ -}; - =20 /* * VIA's AGP3 chipsets do magick to put the AGP bridge compliant @@ -437,17 +239,14 @@ static void check_via_agp3 (struct agp_bridge_data *b= ridge) =20 static int agp_via_probe(struct pci_dev *pdev, const struct pci_device_id = *ent) { - struct agp_device_ids *devs =3D via_agp_device_ids; struct agp_bridge_data *bridge; - int j =3D 0; u8 cap_ptr; =20 cap_ptr =3D pci_find_capability(pdev, PCI_CAP_ID_AGP); if (!cap_ptr) return -ENODEV; =20 - j =3D ent - agp_via_pci_table; - printk (KERN_INFO PFX "Detected VIA %s chipset\n", devs[j].chipset_name); + dev_info(&pdev->dev, "Detected VIA %s chipset\n", (const char *)ent->driv= er_data); =20 bridge =3D agp_alloc_bridge(); if (!bridge) @@ -501,9 +300,8 @@ static int agp_via_resume(struct device *dev) return 0; } =20 -/* must be the same order as name table above */ static const struct pci_device_id agp_via_pci_table[] =3D { -#define ID(x) \ +#define ID(x, name) \ { \ .class =3D (PCI_CLASS_BRIDGE_HOST << 8), \ .class_mask =3D ~0, \ @@ -511,39 +309,77 @@ static const struct pci_device_id agp_via_pci_table[]= =3D { .device =3D x, \ .subvendor =3D PCI_ANY_ID, \ .subdevice =3D PCI_ANY_ID, \ + .driver_data =3D (kernel_ulong_t)name, \ } - ID(PCI_DEVICE_ID_VIA_82C597_0), - ID(PCI_DEVICE_ID_VIA_82C598_0), - ID(PCI_DEVICE_ID_VIA_8501_0), - ID(PCI_DEVICE_ID_VIA_8601_0), - ID(PCI_DEVICE_ID_VIA_82C691_0), - ID(PCI_DEVICE_ID_VIA_8371_0), - ID(PCI_DEVICE_ID_VIA_8633_0), - ID(PCI_DEVICE_ID_VIA_XN266), - ID(PCI_DEVICE_ID_VIA_8361), - ID(PCI_DEVICE_ID_VIA_8363_0), - ID(PCI_DEVICE_ID_VIA_8753_0), - ID(PCI_DEVICE_ID_VIA_8367_0), - ID(PCI_DEVICE_ID_VIA_8653_0), - ID(PCI_DEVICE_ID_VIA_XM266), - ID(PCI_DEVICE_ID_VIA_862X_0), - ID(PCI_DEVICE_ID_VIA_8377_0), - ID(PCI_DEVICE_ID_VIA_8605_0), - ID(PCI_DEVICE_ID_VIA_8703_51_0), - ID(PCI_DEVICE_ID_VIA_8754C_0), - ID(PCI_DEVICE_ID_VIA_8763_0), - ID(PCI_DEVICE_ID_VIA_8378_0), - ID(PCI_DEVICE_ID_VIA_PT880), - ID(PCI_DEVICE_ID_VIA_PT880ULTRA), - ID(PCI_DEVICE_ID_VIA_8783_0), - ID(PCI_DEVICE_ID_VIA_PX8X0_0), - ID(PCI_DEVICE_ID_VIA_3269_0), - ID(PCI_DEVICE_ID_VIA_83_87XX_1), - ID(PCI_DEVICE_ID_VIA_3296_0), - ID(PCI_DEVICE_ID_VIA_P4M800CE), - ID(PCI_DEVICE_ID_VIA_VT3324), - ID(PCI_DEVICE_ID_VIA_P4M890), - ID(PCI_DEVICE_ID_VIA_VT3364), + ID(PCI_DEVICE_ID_VIA_82C597_0, "Apollo VP3"), + ID(PCI_DEVICE_ID_VIA_82C598_0, "Apollo MVP3"), + ID(PCI_DEVICE_ID_VIA_8501_0, "Apollo MVP4"), + /* VT8601 */ + ID(PCI_DEVICE_ID_VIA_8601_0, "Apollo ProMedia/PLE133Ta"), + /* VT82C693A / VT28C694T */ + ID(PCI_DEVICE_ID_VIA_82C691_0, "Apollo Pro 133"), + ID(PCI_DEVICE_ID_VIA_8371_0, "KX133"), + /* VT8633 */ + ID(PCI_DEVICE_ID_VIA_8633_0, "Pro 266"), + ID(PCI_DEVICE_ID_VIA_XN266, "Apollo Pro266"), + /* VT8361 */ + ID(PCI_DEVICE_ID_VIA_8361, "KLE133"), + /* VT8365 / VT8362 */ + ID(PCI_DEVICE_ID_VIA_8363_0, "Twister-K/KT133x/KM133"), + /* VT8753A */ + ID(PCI_DEVICE_ID_VIA_8753_0, "P4X266"), + /* VT8366 */ + ID(PCI_DEVICE_ID_VIA_8367_0, "KT266/KY266x/KT333"), + /* VT8633 (for CuMine/ Celeron) */ + ID(PCI_DEVICE_ID_VIA_8653_0, "Pro266T"), + /* KM266 / PM266 */ + ID(PCI_DEVICE_ID_VIA_XM266, "PM266/KM266"), + /* CLE266 */ + ID(PCI_DEVICE_ID_VIA_862X_0, "CLE266"), + ID(PCI_DEVICE_ID_VIA_8377_0, "KT400/KT400A/KT600"), + /* VT8604 / VT8605 / VT8603 (Apollo Pro133A chipset with S3 Savage4) */ + ID(PCI_DEVICE_ID_VIA_8605_0, "ProSavage PM133/PL133/PN133"), + /* P4M266x/P4N266 */ + ID(PCI_DEVICE_ID_VIA_8703_51_0, "P4M266x/P4N266"), + /* VT8754 */ + ID(PCI_DEVICE_ID_VIA_8754C_0, "PT800"), + /* P4X600 */ + ID(PCI_DEVICE_ID_VIA_8763_0, "P4X600"), + /* KM400 */ + ID(PCI_DEVICE_ID_VIA_8378_0, "KM400/KM400A"), + /* PT880 */ + ID(PCI_DEVICE_ID_VIA_PT880, "PT880"), + /* PT880 Ultra */ + ID(PCI_DEVICE_ID_VIA_PT880ULTRA, "PT880 Ultra"), + /* PT890 */ + ID(PCI_DEVICE_ID_VIA_8783_0, "PT890"), + /* PM800/PN800/PM880/PN880 */ + ID(PCI_DEVICE_ID_VIA_PX8X0_0, "PM800/PN800/PM880/PN880"), + /* KT880 */ + ID(PCI_DEVICE_ID_VIA_3269_0, "KT880"), + /* KTxxx/Px8xx */ + ID(PCI_DEVICE_ID_VIA_83_87XX_1, "VT83xx/VT87xx/KTxxx/Px8xx"), + /* P4M800 */ + ID(PCI_DEVICE_ID_VIA_3296_0, "P4M800"), + /* P4M800CE */ + ID(PCI_DEVICE_ID_VIA_P4M800CE, "VT3314"), + /* VT3324 / CX700 */ + ID(PCI_DEVICE_ID_VIA_VT3324, "CX700"), + /* VT3336 - this is a chipset for AMD Athlon/K8 CPU. Due to K8's unique + * architecture, the AGP resource and behavior are different from + * the traditional AGP which resides only in chipset. AGP is used + * by 3D driver which wasn't available for the VT3336 and VT3364 + * generation until now. Unfortunately, by testing, VT3364 works + * but VT3336 doesn't. - explanation from via, just leave this as + * a placeholder to avoid future patches adding it back in. + */ +#if 0 + ID(PCI_DEVICE_ID_VIA_VT3336, "VT3336"), +#endif + /* P4M890 */ + ID(PCI_DEVICE_ID_VIA_P4M890, "P4M890"), + /* P4M900 */ + ID(PCI_DEVICE_ID_VIA_VT3364, "P4M900"), { } }; =20 --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022122.outbound.protection.outlook.com [52.101.96.122]) (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 8A85A3F6C59; Thu, 23 Jul 2026 22:01:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.122 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844103; cv=fail; b=fOA+xLyr7100S02UFvqG4fyleTV3CUyToWlStWMsDqloZ4+IaiysIS46xisJu61RG/uuH56cju43J6fgb4Qgw1aE0oOPzmm4EHsOeteV8Jp0mbqaOonWtI+omhPhJh3R4+UwzSODP4Y5cs09qexj3Tju92TfSguvIZXxrN/pKhc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844103; c=relaxed/simple; bh=eQg3GQb7w8gWOp8afJfUjssOZdsxhaCSTJfIlKEFm38=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YpSzc3LbEcJSjygnvgjZlosfMpawW8bvLRSfwcUkdeMmow3EOAAQHiojbqd3bips7ZTAPiAGiVUVunzklsil5/zaeitSpLpCh6HYUS4lPoLIMf8RP3glgDJA7VyRCB/7laHSY/frPZdS6C64SyoE/+YVxHLOQYdemq5Z0ZkWV/4= 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=DfXCXQP4; arc=fail smtp.client-ip=52.101.96.122 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="DfXCXQP4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fCYfI6deHfjNdcoSix7XiOUKYTOU85csXpKquM6W8fgDLAFz8cPMMa/GMMc3Zr4RzAW8h05ILsrcRG2VoWokN1toyTtuB+zJcBGL8av6nWnwMusw6pUoHM8rxK1ASSZv6ScXiuzkliRPebDG5Kt4bVi3LTuKVzjsZ6m4lVk33UH9qJ+96PDfNfNnNuoId/iiC0VcnUwJ+/EKlSQPjpuNlqXRPf8XbM0vGcyGOOfmStt2mlwZlaUOC6YAE2POn/aiAju3YmOB6g/zQd50vpk6tpFHQ+EAy3dJInTWKfMqMNdtxna/bRF24kZU1lyC8AH/sb51+uFYPlh1gGBPnEcpfA== 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=PAaHO316p+uUWJPno4GT7gYqby8ATDCVI/Vo5uUOJ3w=; b=JPFHzRvXp+d8r4UDnCgSMVFojijsKp0kdKfcfgvTCppunr9II95n3kKoyEFa6of9IM/BXLwBRFS7+RctxLZNEZMV39w+DJTg8D+FLLigu/wqOfe7yA2cWs0fzNiu5Mu3Hfa9ysUSRh2ADq1mLGhurppVRhFDXKe6c6i6i/AusXiM6usu2j8sJNwq3NXq7D2znWSPPTech5gU2XTPIMuU8hrtn8+B1LladlU5LmMoSnKfCbgheQoVvhTruiJFApPRB6zbB0s4gMkmcHFunvRelufrlQe3K/7LzLHt8RtPJw9K7z0jPBjLJeNa3r+g4hBxkAoSK6dvj7yMZO5NFh44eg== 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=PAaHO316p+uUWJPno4GT7gYqby8ATDCVI/Vo5uUOJ3w=; b=DfXCXQP4jqBNMPCUPo4GXakN/qPRZVAdz7/ccxaXOvjx5fU0sFmaads9JJLzyOVtkESHybaofy0bZnTxlA7Slqgr4zAbuN/y3w524GfgtkBsXVggBBwahlFjtVGhwTFiTTnbKOjNn5bzVY1cm7ZTXve41KFnjdyrm4CxAffY+hI= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:09 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:09 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:45 +0100 Subject: [PATCH v4 6/9] agp/amd-k7: Don't rely on address of pci_device_id Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-6-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=2669; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=eQg3GQb7w8gWOp8afJfUjssOZdsxhaCSTJfIlKEFm38=; b=kJ+lrNRzbyEd1OieZjJ+S0g5e3ptn76WNSF1MnU+h2KexXWHvQSe5FFnlgp7kFXzM496yWTAg o982S37wa0LDn8jaLgE0O1dbJHNoexyHNDTahAMLODIdvWIzWhvsof9 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: 510e2417-5932-4830-e406-08dee905e736 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|3023799007|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: QFIhYywHFganyLUd0VlPh0Xv8E9T65gOri2xrUZ8gss/GClZDxXTZnRXPWLWfr2Q8SgoT4cnAS564aKJCxmCZZm8QtDqju7Ce/P2i0TQ5BFdtWYW8cn2xzTb3RSvQ3kwXipVHmgmYLfrbFiJlEpqGRPFcXyYsLHFIpCprZ8PYKHL+3JfnUEmIvLdz7kpO8kGXMPDCa5csPKx9c00KTVIEQ6wBJntJ8sLpktmFblDNhdY2qizsaFcdygLa6vh8NOLWK1gs5URzmfICkASqOXWxaKNjSabYCLwYaTcNy6ebetQ6EOSP4SYZn9vJyz7GGJgQYNDRy/Dg0Y/ML/hYgqsps3B+xLCTAw0/M7YW4MX+akT7Ze9xe3i9YgUiBQnDEwuAAj7yUZwabBXH91yCS3kP3K0tthbzHKmlnix5qwAp/52wBXjynHrcIBE02lckPwsdsVY9LPHVwY7K58g0IvPBCjO+WU91llKMdR/RJSU5e/5+IEwVFXqcUkXcn+1NV1acLUwCDvPGhGGrmWXFXu/JXmHNdVKgsiLSmbWI05x+QOD8sVp70SFxgO6oH9gwdbBU2uSwharerGKv+gv2vV1kaRQxA8ttBCyszxEpES4DISvRqw9HSegA+uVIXSHkRx8El2o8f9w/fzM9tc74HqEUGcfCpQb1nw9QbgTDPfUiAZMGN5FcZsutSr5igr3cL6DarBWk2xKBmp9e7Eap51yUw== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(3023799007)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SEdmNDRnYU9lMzdxTUpMay9wQUhpR28yellaeEowTDNvMzdaN3JxalV2dEgr?= =?utf-8?B?OXBMWEIyeUp5Qk4xdnJrbkhhUGRtQTZNTGUwRkI1a0V4di94dUZ5eXBZanJF?= =?utf-8?B?TzNuZ1h0NkdxeGtKdjA1eTVpZjV3S201YVpudCtOUEV2WksvN3kwR0JIRVhq?= =?utf-8?B?aGRiOVJIc1NvaWExeFZQa0QvSTdVY3ZYRkE4cEp2WGZvUzNqOENYc2NtMElx?= =?utf-8?B?RTFDK0VtRlVod2JzMm5MaVJvQWY0ODhsa3BBWkIrcGdzTlUySjJ4c0JHeTVO?= =?utf-8?B?YkhHcUxRSFIycUozdXBFUWpQT1Z5WHozVmpsOXozT3hMeU1iV2tTcHNIZVF3?= =?utf-8?B?MDJZZFVtNGE2bFQzT1dqZG00bnpicFdiRFpIektkRllIaTFMUUkrUGhkT0s5?= =?utf-8?B?UHByM3ZPU2lZYlpENVhhR1hxUWd1VGpvcGQzTTJPTkxMV2FzdXJXR0pURGJs?= =?utf-8?B?NTExcTFLekowSUJmMDY3ZjZiVnd5bFgrSWdKYkxweXBJdHJRUFIrbEkrM2RO?= =?utf-8?B?Q2h4aS9WRWN0UlMyWVFGallITEFidVUxZ2hwTkdBZzlZbkk1QXgyTmVXS2xj?= =?utf-8?B?dlpjd3JQVFBiZzR0WEJxQWlGTXlwRkJVUXhLelZ5MTlmQk1xODIwL1l1VXZT?= =?utf-8?B?QnRlOG1Lb285MzRCYzdEVXVkNkZZRzZUcG5nMWJIb3JacVNrbENwcnAzWEw5?= =?utf-8?B?cTBETEtzSTF6Ty9SZlZnenUzVUtGaWNIVk9qUnRoRmovUmhSU09KSXpKbUVv?= =?utf-8?B?c0d2TUFLamNiMUZFc1B6SFJOZmJOejVlOVhWMXExRGpkdGM0aGdwTk1yY1J6?= =?utf-8?B?Wk9wbVRBcFpIQmluZWtZVjFoSUZSZ0VqOEFUM0NBdnVrM3d3bVA3ZkZ5ZEhi?= =?utf-8?B?Rmdnb3JVL0pVQU9CaVFwL0F5TzVWM3Zidlo0bVFrTTVVWktibDVTajFwWU12?= =?utf-8?B?aGE0Ly92WStkMjNQR1ZYbkNHUGNNSW93SGdvVnpZeHhrUW9wNHo5MGVtMDBx?= =?utf-8?B?T3lZVXp0cW5NZkJJZWNOZGNFa2xlbDJ0aUpwSmdMZlV1R0s5eWdHQnlpUlEr?= =?utf-8?B?NlNYTjBsYURHWmkweDBjMTBNakl6dFduNTlKeS9tdFhqTWtJV2t0MGw2Z056?= =?utf-8?B?NHR0V2ErTGZtd01Jd1JvdE81V3crVFNiTUpKc2lBTHRQSkk4YXh1bVFBK1J6?= =?utf-8?B?RFg2YURQTjhNa3FqOVE1aXYrK2FpU0tnQ3M4QWk4MXJ0UDRuS3pMSHhobm5N?= =?utf-8?B?QnBBRUVvSzNuOXJiUGMxSG81U1ZJQ0Z6RDFKTVFuTldDbVdONWJxTTUzcHR0?= =?utf-8?B?SjJ4RWlXU0RYL09YWmtWbENDMGdmdnhvSFZNR3JkV1RGaEhiT2lDUjhSaHdh?= =?utf-8?B?WGYvVGdMeXl4R2pmUXd1M0JtTzl4djBHVnk2YnpTQkRzT1BNVUdQeDNmOFVF?= =?utf-8?B?SFNXRktsVDB5blBXeXAvbzB6VEJqQmNzK29yUXZzQ1VzRnFTamx6UjZPSFkv?= =?utf-8?B?ajJ1SXQ0dFp3OFE4U0YwaENhcVZlR1J3MzVIUkpqVGMwMVpwRi9JdWU0OXFm?= =?utf-8?B?cUx2cENVQ2dWMWxMbDkrOE16Yis4amRvZDFYMlIvdG1DQktHUlc5eG5hNzEz?= =?utf-8?B?ZlNHSFhBUExHemJSMGNvMVZpaHJyUk5VMDVRU2F6bUg4aFUrL2dzZVloSEky?= =?utf-8?B?VnQ4U0g2bHd3LzZXWjRUZG50REhtQXd3RldXMlZuenh2Zm93VHJBMFh5eFMr?= =?utf-8?B?bmZsRWRqVGU0bmRNeHR1bGlFOFlTYmsxb0JzREhNckoxeG9icFRsS1YvQ2xE?= =?utf-8?B?MjU5Qm5sTmUwZmlUTDI4MndDYVRZS09kYWF5dmdwV1NBeDlYblZwUzlNL212?= =?utf-8?B?Y05jaXU4RG5yNmJKaHllZ0tRbTVEemJ3dzRSc25ScjJDbStGRVpCSzkzOEtB?= =?utf-8?B?M1RDOGRqREFKTGlhb2hPOVFlSS9GakduZEdNRE1KK2pXc3BGNjl4Ry9uaXN0?= =?utf-8?B?dkdjeGMwUU5IQS91UkliUnA4Mm43dlBKeFhtQ1Z5anRQUS9zQm5NV1gxMzRK?= =?utf-8?B?UjhMKzZVdUJOemFjUjVWanlTTUVRcnlrdUpVZzlRTjlDOUsvYithNlVPdDNI?= =?utf-8?B?Q2pkaFhYUjFkSHhSaDdJZkhtWWtlNlEzc25VTmVESFVnbWlJNFVPMFJhRm1k?= =?utf-8?B?aXFWQWxZZzdmSzgrRDlUbXEzS2o1bnRpblZVWkFPK2p3OEgzTGVlZVFlbHFI?= =?utf-8?B?enlrc0xDT3J6aCtxcktDSHE3a3gzZG9DbVZ5MkV6czI1cW9OZHY0NGt4U0Uw?= =?utf-8?B?S3NIUWtMMVc0ZkE3cGptbFR4cTdBZFhjbFNwNW5MRHR4WWFCcHl2UT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 510e2417-5932-4830-e406-08dee905e736 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:09.6959 (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: dYSFrQlrPAve+M9XLidq9NlYWkt9GzcEwt2rBCNx+W8LRAyRewFK4RHgQ86U+fMg8Zpf3h8U/jqqUZQLjx//sA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 Address of pci_device_id cannot be relied on due to presence of dynamic ID and driver_override. Use driver_data instead. Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/char/agp/amd-k7-agp.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c index 898ff30ffd46..4d201e71c517 100644 --- a/drivers/char/agp/amd-k7-agp.c +++ b/drivers/char/agp/amd-k7-agp.c @@ -387,37 +387,17 @@ static const struct agp_bridge_driver amd_irongate_dr= iver =3D { .agp_type_to_mask_type =3D agp_generic_type_to_mask_type, }; =20 -static struct agp_device_ids amd_agp_device_ids[] =3D -{ - { - .device_id =3D PCI_DEVICE_ID_AMD_FE_GATE_7006, - .chipset_name =3D "Irongate", - }, - { - .device_id =3D PCI_DEVICE_ID_AMD_FE_GATE_700E, - .chipset_name =3D "761", - }, - { - .device_id =3D PCI_DEVICE_ID_AMD_FE_GATE_700C, - .chipset_name =3D "760MP", - }, - { }, /* dummy final entry, always present */ -}; - static int agp_amdk7_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { struct agp_bridge_data *bridge; u8 cap_ptr; - int j; =20 cap_ptr =3D pci_find_capability(pdev, PCI_CAP_ID_AGP); if (!cap_ptr) return -ENODEV; =20 - j =3D ent - agp_amdk7_pci_table; - dev_info(&pdev->dev, "AMD %s chipset\n", - amd_agp_device_ids[j].chipset_name); + dev_info(&pdev->dev, "AMD %s chipset\n", (const char *)ent->driver_data); =20 bridge =3D agp_alloc_bridge(); if (!bridge) @@ -492,7 +472,6 @@ static int agp_amdk7_resume(struct device *dev) return amd_irongate_driver.configure(); } =20 -/* must be the same order as name table above */ static const struct pci_device_id agp_amdk7_pci_table[] =3D { { .class =3D (PCI_CLASS_BRIDGE_HOST << 8), @@ -501,6 +480,7 @@ static const struct pci_device_id agp_amdk7_pci_table[]= =3D { .device =3D PCI_DEVICE_ID_AMD_FE_GATE_7006, .subvendor =3D PCI_ANY_ID, .subdevice =3D PCI_ANY_ID, + .driver_data =3D (kernel_ulong_t)"Irongate", }, { .class =3D (PCI_CLASS_BRIDGE_HOST << 8), @@ -509,6 +489,7 @@ static const struct pci_device_id agp_amdk7_pci_table[]= =3D { .device =3D PCI_DEVICE_ID_AMD_FE_GATE_700E, .subvendor =3D PCI_ANY_ID, .subdevice =3D PCI_ANY_ID, + .driver_data =3D (kernel_ulong_t)"761", }, { .class =3D (PCI_CLASS_BRIDGE_HOST << 8), @@ -517,6 +498,7 @@ static const struct pci_device_id agp_amdk7_pci_table[]= =3D { .device =3D PCI_DEVICE_ID_AMD_FE_GATE_700C, .subvendor =3D PCI_ANY_ID, .subdevice =3D PCI_ANY_ID, + .driver_data =3D (kernel_ulong_t)"760MP", }, { } }; --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022122.outbound.protection.outlook.com [52.101.96.122]) (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 DD173409637; Thu, 23 Jul 2026 22:01:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.122 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844114; cv=fail; b=SFrqJL1cpypUgwisP3BCvnGavSH+XeyVmqYbC+RWwA5ymNF9XpWCMTXLyPC1/cVe3GFge67HhuMDCJzB85+iAlIh+ecFoWsQJhbjIV6VI+zmOI41WUTDw3cImqv421EFCIiA9vsGtKy1HbKvcfhZ0J+4eTQamjdNjLcU5INyhK0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844114; c=relaxed/simple; bh=pYQgPO5wiRCC5h7KJp/z49CIDNLvmHAQCTa3fZfgvHs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ZP0sq7YQupSUQ7M2sRt4+ZvB2iNQU6WKkY5WqGPnMyc07Q4rLnwvxN9aTKoweOsJvQGHe4UUo70m87Nv50D65mA9N75NhHWKhL4ieRDMVNl0RR6sQJ1VXoTAo6bIPkVpAYNSFbtyq67saPW6CIiBVeptLyjiN1WVTQ1pxX9+AgQ= 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=LxntWCI5; arc=fail smtp.client-ip=52.101.96.122 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="LxntWCI5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R0sbRAdoOEFxnJmRv6aybiRDg7deCketsHfKPEEfCAqgzJCjaKLeQAzNdkprZUDTvEihunva5xXGD9SA/UKUiPe1fEuo60itDrJuDo43eQZdc/ZAk6T9oluYVeTITinZ5624Ncsu5N3r3dpK93C8VjsbZN67zD48Ie9Iwwq8qo0VuzaSERTjbywjlyjWEmnATViv+EU0mqstrUbaMpqBBMFflH0xcNTPN+plLtSldl1ORgCmSdvDaQdJm12GfYSfJbkOHPqMsiFLW29mc9YuaqG+FcZgxm7puAeS/lWdJZ57yPwKbU/EsBuC4GcB0p9MJ87R6pqTv78RAb2WTERyMw== 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=RW4gY9UhdXKHzCxAtkQ7v4/KkEzW742bBR1lTORUrPw=; b=TfXUFI9Za1SYqw511wOAezRqrWdq1WJ/RJ56JNdam/vUUDtMEpHydDG1lrjfuTmxvtcJvPnJHL/vVr4fDHVI8ayBB2cOZ5fYLrl2mREbQ2/02RnXsL+D9wjKVWyNm1YA+ps+3GkzZVpD577fxon7blr1BNjmAebH256hXY/5odwt2IKdsmCna19anDxoXqAf4gF8YH34F4knTrA24oL5mWZ8nm5lWvpnSAAB+sbmbHcnGT1dJ+IDPyVEAp50/DYluAG0xNDK3bwJOXVj3QIhpg/R3Bxs7mh0YHjD/bZZgY5QH3MCFarLgt3qBmEAQcy28RE5X/iv0W1IRRbU1f6BPg== 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=RW4gY9UhdXKHzCxAtkQ7v4/KkEzW742bBR1lTORUrPw=; b=LxntWCI5fv0Iceo5oBnhxvxUjIz+NAk9QDrfDTLTG2XshVgMlmOzCGV2wi3+JU8nAOFKjg8ozfDD8s4HaxCarr+UHVrULmVAV4gFrzY2+tMXhf+GrS7jcIfBwJslgZO0L155pVEhTjWKRo3ck26l+CA4CdBK4Hwgh7dUePWuFCo= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:10 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:10 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:46 +0100 Subject: [PATCH v4 7/9] PCI: Make pci_match_one_device() match on ID instead of device Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-7-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=7173; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=pYQgPO5wiRCC5h7KJp/z49CIDNLvmHAQCTa3fZfgvHs=; b=gMOnapS0Z/YNCmQr6oaIOvmACeaoTbVj3C/risynNl8reo590MNdq/2QVD4m66jFPk2jvfDqH xQm+vCALGYdBG032Jws6tlFVi0QyQ5B56rMN2WfsNs4W5YopIh+FLdy X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: e296a4a3-fb40-462f-9dbb-08dee905e77f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|6133799003|22082099003|18002099003|3023799007|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: 51dCGjYFm2hjRiNFX9dZsHBRNWy906CsBiKKObPqQjtQ8FdcylqO9El0sM7U3DEzDqeu+Tyn5D6Arkeh0hUWIdAMFrey2AdTP3FCDtzhtIeMTVgJ3i3SIG2OZendSsH9FysQ/575+PJwLcfHfASJnZdmL1WvV5DP4jh7rGQEnFe1WBAPXje53ZN0GdCmSnFvXNBWxYNc5zwfKd/LQ8Mg80FaptdzZRHBzks9OzsYTOCt8vEp7ly5IyZ8MvOEQO92zpAqrVBAxrwjKdJ3DHv58IltIfFgkMCDGNniGT5UXNIKHhKMC17VCtQQ7ubhqI76BW+AHW4nB4vJuVF3qU2sLJNwd2HBe54/cHLFKYijpY4aKa8aYv9jgW8Xr7dgnfIInUXS5KAKTaottQIFmVt+C8tOgHcNtn6eaXw0tiloR70LPM6mbKonC5yNwp4067PdqCepVfmjwaKkohYJ91oVX4iSE73ezHiztGyneLyN21mBqt15P89RLD2O+coyBhqApyKEd+sYQejIysrVqUevBRteNARIEUSIxZu6WhqP0s0tUzXTQP3Mif2nFjDhelHkLsOBgWb8esCgoBJxLB65eU5AIWFmVojzGhPI56CbSapHyCrdGQCe8Tp0pdUuvugbGMpMpWYeO4DbZpPS5roNQQai0NQZEyfa1rAhMheYJ1TDKw6FNRR1i8D+X5EIl50VBA9D2Sie2mSM2wx2bOo1PA== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(6133799003)(22082099003)(18002099003)(3023799007)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MWVyZWxkNTliZ1VsQ2tSci9ESnp1V1RQZ0ladXBnLzY2MEdTV0tpOGl5dmhx?= =?utf-8?B?TTB5K2pwQ2w0WTFxTnloTFN4eXB5SHAyeG5uS2twWEN6Y3NHZDkwRE0zUUVj?= =?utf-8?B?Y1k3NmZzaG90MTJucjBpOVlHdExqcEhHUjhTZlBPUFNocm1XZlFkejFYQStj?= =?utf-8?B?c3QwVmg1MVpxUkJYc3NrRUtaL0FmWTFhVU10bWl0b0MxSTNRd1VGbGRXZFpw?= =?utf-8?B?WXB6V0RjVlZmMlhTN21iNEtza1pZbHJtOGw2VDFrR0pmM2NVUXJ1eFBTL24w?= =?utf-8?B?TjJEUFlMZFFnSXFGeE9kcGkzZ01LR011d0djVXprSVVZQkhXb29UREphdEQ1?= =?utf-8?B?ZUxUTWpabnFnNlBOendGTzJRdWNyTm1rRm5HVnFocTBScStSWURraUNHSE1j?= =?utf-8?B?Vng1Q2MvcUs1ak5LWkVLSm5qRXRscTluZWdEaDlQaUNoYm5jNTFuSkFjeU1H?= =?utf-8?B?ejRwZ2hXVmxNdUw1N3hlRGpqR2hJSit6d3hzK2dvSFFIQURhdmdKTjY4KzUz?= =?utf-8?B?Y3cxSTUyYktRbGh4ODhhN05mMFRsRk9vQmoydmRYTXRWWm8rUWY1ckJVQzJo?= =?utf-8?B?MTZ4Yldnc25ZT0ROL2ExaG9TNXFQT1Z0SHFHcG9Ec2FLSU81czFqMkhWTGtM?= =?utf-8?B?RWhSS0FFVEFjTGdCSTNQc3oxcm93SnhXM0J1aVFFUkJUam8vUlFtNUwwU25i?= =?utf-8?B?ZlpzcXkyZ2FhMzdzUC9Xa29kQ3RiTmdETG5TSWZWaS81aC9mVGt2MWcyeHNu?= =?utf-8?B?Y05kS1JTdXVHdFBmV09zT1FvSU9lRCtrWFBEaE16UkxjbExiWkZrd29EbEk0?= =?utf-8?B?bU5qTWttM0RINWFGc3ArMk90Mm1WTXZ0bWJTdVpPNkxPbVF2THNSQ0d3aG5t?= =?utf-8?B?b0pzTDlWdC9SdmhxeTR2ejYycXY5OUMwQ1oyNGVNL0pZL2pxZ3B4N1ZNd3NO?= =?utf-8?B?ZnBObndxT0RKWExxdXlLcjUzYjZnUm9ibVJFY3o1NFFDcVZVZTdJNi95ckxS?= =?utf-8?B?SjRHTWRkMGxSN0F0T05IUlQzNVdUQ1lQdGI5UWRFM1M4S1dGWHRSejFqSUdv?= =?utf-8?B?RVUwUit5SG4vUk5LT1pERk9iSDRYWFZXTWZwcE5iRXpIaDhjRUZZTU9LNkhT?= =?utf-8?B?NThnamRzMldqdG10S09JOU1lS3d1TDUxWGY5QVlMNFRyYzJwaTl3bzJHSi9P?= =?utf-8?B?ZnZOSnpNQUFDTlMwMG1JRVVBcFdaZ2V0TkRsazVTOVczYksvYmRqT3Q1dmU4?= =?utf-8?B?bzVnTlRFcURkL21ZTm5aTTRSaTJIZDBrWlpnWGEwS00wcHJ6bFV0WXp0enZK?= =?utf-8?B?K0pRRE1UcExCdHErUkMwZWpOaFVHSVZITk8zVjR2SGhNaGdma0p2dHQ3SDJ5?= =?utf-8?B?bWJzbW9ENXpDTTBxSnYyUC9DZVlxZWtPUGhNMEdhekJOM3BRQzFYaVo2SDVh?= =?utf-8?B?bTltQTRsMkVWdTBlckFtcG1ZUVVwUnBOYXNLSFZBa05JYlJWUWxnSDl1bjFz?= =?utf-8?B?L3FPNUZzTkRWS0hidzE1bzJBWkRmV0R3Wi90VGJsay9HS08ySWFvTys3RkdT?= =?utf-8?B?OWlvalRwRUlZTTQ1T2QxbGdnUXhoV29zNmMvU0FrUWUvUWNCeTVSeXdadElD?= =?utf-8?B?aU9USUNRUThqdzcwOU83TEJidmR1N21ZTGlqWUw1dXJLekE0cXkvRnY4MWs2?= =?utf-8?B?aXAxSEQrYmREV3hodWhrRXlFOTBySTkwbE9oTXFDZWZEM3JPL0VNQktmVkdM?= =?utf-8?B?RTQrek5ZdmdpUUFnYi85cFJPQmd1U2ZsMkZZNnJoUEd1WGROUEtSdjBZU0k2?= =?utf-8?B?OG9oWjJuSW5vY1ZiWTY3emZrVEpqRFhqNktWcDFXQ2pOWldqUk9aT2IwYzBv?= =?utf-8?B?WkdXSm1QQnV2ZzZDU3EyZXhBUy94aXBkOWdVN01heGkrLzdtdFIzbERxdGRY?= =?utf-8?B?QUZnaC9USVVIOXNtcVlrbUd0T2p0L1pPMWxvdktsK3lTU2JLT3pscDRVQ0ho?= =?utf-8?B?cERRYWN1RWQ3b3J0eFpSOCtFbmR3anBMbll5YjhlcWhEOUpPRjFpaFo1T0pW?= =?utf-8?B?VmdtMUJvcnlJdnROdGhkSnlkanRlaGRZZzcyYXdRa3NrN2F3ckdxN2RsZzlz?= =?utf-8?B?V0ZzVWVsQkJNMEVQMTNHSmdKMGt0aDMzS0ZOWkwwb0JjcjJwT0lPYWdzTElO?= =?utf-8?B?enRIM0E5WTVCV1NIVmZnd2ZESXNodHNWeVlqQnZSRU9VUTBCaDcyTTJZRFkz?= =?utf-8?B?d3B6QTVTWXNTSDl0Ym0yR0l6RDhsWnlWd3VGMm9XcGtMZVBkR2VDWkdMMDVx?= =?utf-8?B?UEdndk1BYU1lN3YyVlQvVkdxanNiNzZWYUpFdnVMbDBDRndLa1hGdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: e296a4a3-fb40-462f-9dbb-08dee905e77f X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:10.1718 (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: GemVT4dC7dDrwKarlVSc3A7BTNSDBkElbQK44xyRO2+e3M+GzafsdlYVxgCiSAiqmswv2NpSXqnx+lQGbXLvzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 PCI dynamic ID needs to match IDs against a new ID to see if it already exists. Existing APIs can only match IDs against devices, causing the dynamic ID insertion code to create a temporary device only for matching purpose. Rename pci_match_one_device() to pci_match_one_id() so it can be used for this purpose instead; add a pci_id_from_device() helper to make it easy to convert users. Similarly, convert pci_match_id() to do_pci_match_id(). But keep the existing API because there are many users. Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/pci/pci-driver.c | 38 ++++++++++++++++++++++++++++---------- drivers/pci/pci.h | 43 +++++++++++++++++++++++++++++++------------ drivers/pci/search.c | 8 +++++--- 3 files changed, 64 insertions(+), 25 deletions(-) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index f36778e62ac1..c9424edb4548 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -90,6 +90,27 @@ static void pci_free_dynids(struct pci_driver *drv) spin_unlock(&drv->dynids.lock); } =20 +/** + * do_pci_match_id - See if a PCI ID matches a given pci_id table + * @ids: array of PCI device ID structures to search in + * @dev_id: the actual PCI device ID structure to match against. + * + * Return: the matching pci_device_id structure or %NULL if there is no ma= tch. + */ +static const struct pci_device_id * +do_pci_match_id(const struct pci_device_id *ids, + const struct pci_device_id *dev_id) +{ + if (ids) { + while (ids->vendor || ids->subvendor || ids->class_mask) { + if (pci_match_one_id(ids, dev_id)) + return ids; + ids++; + } + } + return NULL; +} + /** * pci_match_id - See if a PCI device matches a given pci_id table * @ids: array of PCI device ID structures to search in @@ -105,14 +126,9 @@ static void pci_free_dynids(struct pci_driver *drv) const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, struct pci_dev *dev) { - if (ids) { - while (ids->vendor || ids->subvendor || ids->class_mask) { - if (pci_match_one_device(ids, dev)) - return ids; - ids++; - } - } - return NULL; + struct pci_device_id dev_id =3D pci_id_from_device(dev); + + return do_pci_match_id(ids, &dev_id); } EXPORT_SYMBOL(pci_match_id); =20 @@ -138,6 +154,7 @@ static const struct pci_device_id *pci_match_device(str= uct pci_driver *drv, { struct pci_dynid *dynid; const struct pci_device_id *found_id =3D NULL, *ids; + struct pci_device_id dev_id; int ret; =20 /* When driver_override is set, only bind to the matching driver */ @@ -145,10 +162,11 @@ static const struct pci_device_id *pci_match_device(s= truct pci_driver *drv, if (ret =3D=3D 0) return NULL; =20 + dev_id =3D pci_id_from_device(dev); /* Look at the dynamic ids first, before the static ones */ spin_lock(&drv->dynids.lock); list_for_each_entry(dynid, &drv->dynids.list, node) { - if (pci_match_one_device(&dynid->id, dev)) { + if (pci_match_one_id(&dynid->id, &dev_id)) { found_id =3D &dynid->id; break; } @@ -158,7 +176,7 @@ static const struct pci_device_id *pci_match_device(str= uct pci_driver *drv, if (found_id) return found_id; =20 - for (ids =3D drv->id_table; (found_id =3D pci_match_id(ids, dev)); + for (ids =3D drv->id_table; (found_id =3D do_pci_match_id(ids, &dev_id)); ids =3D found_id + 1) { /* * The match table is split based on driver_override. diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 93731242d314..71cda71f3bc9 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -443,21 +443,40 @@ static inline int pci_setup_cardbus(char *str) { retu= rn -ENOENT; } #endif /* CONFIG_CARDBUS */ =20 /** - * pci_match_one_device - Tell if a PCI device structure has a matching - * PCI device id structure - * @id: single PCI device id structure to match - * @dev: the PCI device structure to match against + * pci_id_from_device - Obtain a pci_device_id from a PCI device + * @dev: the PCI device * - * Returns the matching pci_device_id structure or %NULL if there is no ma= tch. + * Return: a pci_device_id filled. + */ +static inline struct pci_device_id pci_id_from_device(const struct pci_dev= *dev) +{ + return (struct pci_device_id) { + .vendor =3D dev->vendor, + .device =3D dev->device, + .subvendor =3D dev->subsystem_vendor, + .subdevice =3D dev->subsystem_device, + .class =3D dev->class, + }; +} + +/** + * pci_match_one_id - Tell if a PCI device ID matches a needle PCI device = ID + * @id: single PCI device id structure to match against (needle) + * @dev_id: the actual ID from the PCI device + * + * ID can be retrieved from device using pci_id_from_device(). + * + * Return: the matching pci_device_id structure or %NULL if there is no ma= tch. */ static inline const struct pci_device_id * -pci_match_one_device(const struct pci_device_id *id, const struct pci_dev = *dev) -{ - if ((id->vendor =3D=3D PCI_ANY_ID || id->vendor =3D=3D dev->vendor) && - (id->device =3D=3D PCI_ANY_ID || id->device =3D=3D dev->device) && - (id->subvendor =3D=3D PCI_ANY_ID || id->subvendor =3D=3D dev->subsyst= em_vendor) && - (id->subdevice =3D=3D PCI_ANY_ID || id->subdevice =3D=3D dev->subsyst= em_device) && - !((id->class ^ dev->class) & id->class_mask)) +pci_match_one_id(const struct pci_device_id *id, + const struct pci_device_id *dev_id) +{ + if ((id->vendor =3D=3D PCI_ANY_ID || id->vendor =3D=3D dev_id->vendor) && + (id->device =3D=3D PCI_ANY_ID || id->device =3D=3D dev_id->device) && + (id->subvendor =3D=3D PCI_ANY_ID || id->subvendor =3D=3D dev_id->subv= endor) && + (id->subdevice =3D=3D PCI_ANY_ID || id->subdevice =3D=3D dev_id->subd= evice) && + !((id->class ^ dev_id->class) & id->class_mask)) return id; return NULL; } diff --git a/drivers/pci/search.c b/drivers/pci/search.c index e3d3177fce54..34f8de551d58 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c @@ -245,8 +245,10 @@ static int match_pci_dev_by_id(struct device *dev, con= st void *data) { struct pci_dev *pdev =3D to_pci_dev(dev); const struct pci_device_id *id =3D data; + struct pci_device_id dev_id; =20 - if (pci_match_one_device(id, pdev)) + dev_id =3D pci_id_from_device(pdev); + if (pci_match_one_id(id, &dev_id)) return 1; return 0; } @@ -416,9 +418,9 @@ EXPORT_SYMBOL(pci_get_class); * @class: search for a PCI device with this base class code * @from: Previous PCI device found in search, or %NULL for new search. * - * Iterates through the list of known PCI devices. If a PCI device is found + * Iterate through the list of known PCI devices. If a PCI device is found * with a matching base class code, the reference count to the device is - * incremented. See pci_match_one_device() to figure out how does this wor= ks. + * incremented. See pci_match_one_id() to figure out how this works. * A new search is initiated by passing %NULL as the @from argument. * Otherwise if @from is not %NULL, searches continue from next device on = the * global list. The reference count for @from is always decremented if it = is --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022093.outbound.protection.outlook.com [52.101.96.93]) (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 32D0A40DB36; Thu, 23 Jul 2026 22:01:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844118; cv=fail; b=SdqHzU7e4N8wvcrv1sAWdjTjt2NtU9lAEHkb0XwzOZ15KynmoU81RTPbYb4KT9bUN1w3EiIWiHlho4yZQ/Myw4xtvIoGZMc2UFQHikqRjlh435X8gMXenRZjGqCxGCOzLSPWS9Ym5bogij2Bi6eO9hLP1NkFTqpbReNlZAkWz1s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844118; c=relaxed/simple; bh=XiFu9kvrFQK90dvD0aweCU++dyfWZ60ULurPbb9FcZY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rkeGwDbMQzD++0hm/jFAF1SBimoYMSyGy4CMuh2KcprOuLbAjeDAAE0Vp45LR0w41zNtzFjahITdLaNGWBJsLLc8zwlLyzFOHHOFvsfwgTlgsMJiOI/hy411UEdFevWwAU3RunJn0upL6mFWzIKE84LcHaHvmm/RqU4i6ag/JTk= 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=gybejE8q; arc=fail smtp.client-ip=52.101.96.93 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="gybejE8q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H46OO9jxhVNqB+7FAoP5CnodEUwFyk4AK1TZ35Z0otaWxsHdpW8AmaUp8au3uuHUvX9Od3a8QjuaOsf3jUwjs07NiKigv4yTgnJG/FPb80PEdBS8i9LEk07r3qwtAyKko0sTy0Jd8SrOOM4q1Ghql2/++/yzx3cAiWHnicHilfZtoZ/r40ulRCp2RIvakR0v1a6cSEKmRO0dq8+djMLvTeuEdGTXgc9PKBgUw51gbuHU0rtzcNOKZpR9/3gTHQ+mpU2YzVVFj6e5/LTIdt4xcFWHamtR17QrRl7wgUf8/m3vU7o9o6P7UrhuDicL6EBOUucjCjLniO9VPwskRIcPxw== 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=WookShkx7VXJwJSRfOgruHo6ExGvguNel5hk8sj2yNQ=; b=xo98O+Tk2/MUePlUSl6AFOQzIwh8JQDjv6EamjdqFKtJdR0WFJu5PHR6D1Wk/JE73hfYlj03mwQLqZOFZjKALzexHC5n5lo+Mkln49UQzd9OfNe7HjDTy92I+jOm6Lc4642WxoPpOGQFFh6qZfxIYGqvlL7h5QzaTJDSz5UxotsM4QEVFw9ktGL6skkcm8LS/XSMVFgc3EMwWJ3oEaE1i8CnhgNHO7tdqsXeOwUzT8uLtAaa5kI82OzqhudOfaSpumsWq1kaeghyqTnj33gS4oBJ1M4Lqz6B/YelbvdbEnbgdpkCLGJe5KWVh6gRb66GOtL6Jh1vIX2r2BYDhX3kfw== 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=WookShkx7VXJwJSRfOgruHo6ExGvguNel5hk8sj2yNQ=; b=gybejE8qgADSLnmKfyflC3sgcM8lUgZfvBhdj8k9eaTbzufqUwFJjjIsGN/hRp24YufxUInKj+h6UPXMWxFfte1Es4BqEtppdjS+vifttxiIFFQLFERPl++HV9o/gOmJWxB8wgVub3No8ptOUweEsYbburGWrKYiW52bi2MeeSU= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:10 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:10 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:47 +0100 Subject: [PATCH v4 8/9] PCI: Fix dyn_id add TOCTOU Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-8-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=7668; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=XiFu9kvrFQK90dvD0aweCU++dyfWZ60ULurPbb9FcZY=; b=qEXJ3xmlrn1iCu1uPTRZtIY7dBzayXPCWqKIH/apAzlZwmqKztCxdlKW9kLjQQ9d3ZOX++47z G4pCpZ6xKFwBzkAZb79jBhAO7jfY7bHiA9SVn0KwMgt+LtLZBk+aJvU X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: a8ea15f4-b508-4d59-e8bd-08dee905e7bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|3023799007|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: paMPsxkJmAykSFqtiTmP0Xpoe2dyLqMceLrM8K+RL2rDSdP0hWGIzuJd+yYKsJiNjPQoYm6EUdJFWzzwOVOJ3rgd28Su+ovwfAlXKPLJX6FNQs4kj+Pq4m1oPH1ogpS7m4OFGf2fJQinRA1/CHsR42KcUz1+gLOuHCcIVsNaM2t0SPcTTQyz9KuLXhDLW6Bwm3ZZbq7WDmfmzgg4w18wKGoj6XpUIc7y8iUMEO+Fdq+9bX1AzLn2RwKLZTpWboOTeXrVRMbxa2k66XPZcs6KtyH/dAr6z8qgSeCREW2LCX8leWRN2NfpS3DzxiERJ63wEu4vyeGETjPR4HgBKy+K6zRLpjtzGQliqnxk+rKFKPN8e/CMqBLzkR6NVg9Jk4CRburUnf/LfKvB1+rASVef8daWTkg+qhIIzdGVQZ3NKcusQsxLegP9yS7AKMAJy+zwnN2Q1Yuj3gyHvzthb3ik7aC6PCXeRcdwhsQE9OhgBUaL0NtZvg77MQlsa7+wpA++s7MN8ErXC19SQyIbKfvEcCsM0SXdNh5haQAkjIk+Vytrfrj+N7jEgCGmVEdUTfJGppCkKU+q5L4LCwNLtqlsSQodzCYzO/soNkUgQvYmHOIHSXdWKR0fZ7tq6O0Sy1Poanlnp+WJGAnWAR5Dm4MLRN306n49gAAfliy64/gx6a7MZJGEKPlxcWeWiIx+WFin7zwfwi78zJS8TmhOxEqZRw== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(3023799007)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Nkd4bGxOcEY4SHQweDg2TGN6Y3hURHJWNEhucUd6bFZhT250NXdSNGpsYlEx?= =?utf-8?B?SkpkVFRNaFBzcmRiQjI5eWw4bHFaVmRweGZQdVR1S2VselI4bmk1UnBEdUg1?= =?utf-8?B?VWI2cWNDZWdhbVRJY3VTdnVWZlhwaU5PMDlvS3ZVYnhCV3FSNXAvZXlvQUNS?= =?utf-8?B?RzBraXNxaTJWeEdmVmo4Y3dZRmdEZzlmMHJTcVp5cy9GKzg1Sm1PQVVwVHRp?= =?utf-8?B?RFk2NHVwTHdrWS80eVJrL0xpaGxTTk9xeXBIVnVBQlNwSUNkbXlTdThwOVBj?= =?utf-8?B?OTJhYTU0SVNxWFRYd1FuVFVPUmZqcGJHU2ovQWhRYUc1aElJa0dxamNtZys2?= =?utf-8?B?SVhqU1lIaW9tRzU5Zk5pVkd5ZjdMMnBkSWI4QU5XeW10UWdmME5taElTMjV2?= =?utf-8?B?VXFuWjZlZEpmTGJMclMxTkhyMFhucW9VaS95Um5QZWd1eEdLU2hwNFJtS3Fq?= =?utf-8?B?aXVzN3lONkpnWGowSTRXdk5pQnUvSXFqSklOb1MyNDVVeERPekI5bElqRmlL?= =?utf-8?B?elBPZlVBR3VBY1MzSjl5WHlRNnU3enFKb0FPaXBHbG5iVkcxRUZZMGt2WHEr?= =?utf-8?B?V3U3V1phekE0UkRLV1F5M0ZSRzJnNVMvSENhSWlPZ241d2l1T2ZJUW5HZmdD?= =?utf-8?B?Z2Z0eGhzY3N0cnlBaUJkN2VENWVmd0c4Y1p1SldieGYyYVo5WEVnUUhvdmI0?= =?utf-8?B?L3B3cGptTXQwVjQvcjJGVG4xQVM0V0tCV0RQZEw1Mld1V29KQnRqd1RYTE8r?= =?utf-8?B?OUJic1pLY0l0Q09lWHJ6V1g2cGU3TUxDRXAxNUFJT21UTUxaWXMrU1dkZXBi?= =?utf-8?B?cXFPUUFOV1hCWjkvRXlNVlN4bHVBaTFyUVBpeVVFK3JTVElOdlZPRjBkelRJ?= =?utf-8?B?NFowM2tERFFtbEY5cGVudXJwRnlYZ0VYTHJBNis0a1prclduQnA3cjZaQ09V?= =?utf-8?B?YlVCUForbGN4RDJ1bzFMNFF1ZTlYMFVtTUJZdmlwLzl4SjBVdTNzTythUjJU?= =?utf-8?B?NGNBMmZDejNkV0dTQTgwK25EejB4SlFkQVVBZGw0bHJ3c0w2aFNRSDhwZlhq?= =?utf-8?B?Tmhha3ZjaTNzVGZ6Qk05TTJlS29aelg1Y1dWTzNMbzRnd1RQdUJ4MWZxdVBY?= =?utf-8?B?VFVESmhHZ2NldlkremtYckxGcG1mNGZnZHpxSGhtMlRaY2VsVDU3R0FJSXNB?= =?utf-8?B?eU5jeTQvWFpiWmZzT01YalY2Mk9DYUt6aWYxN3hVUjF0aEtmaXRUWllGVVZO?= =?utf-8?B?bFlHcHJaYjMzL1BjSDhnQ1d3dG5tRjZVZlBrK1lYSnFYcFZiVVBIV1FOREph?= =?utf-8?B?eEl4TjRDb0JkZ3lFMVgyS2gzRGtNVVJERzlkU2l3cW1Mc2Z4aVBla241QWNN?= =?utf-8?B?RHJCaVRWYmRLaHlPbkNxYmNsUzZvMlpkZjBSTHUxZXBLbFVmajIwVSt3ZTZZ?= =?utf-8?B?akQyOG1xWlRuRG1HUkxxc29sbFdHVnROT0RtTTcyT2ZhdSsyZU5IdHBNM2pE?= =?utf-8?B?czcyUW82VllQbGZadHVRVjQvcHVoLzdmNDRrbG5Jcyt1bU4zYU8zMVp0WmpV?= =?utf-8?B?TW0zQzRSRFlxeUtndlkzQkYrZTRGUVFpNWNHZTJUVE51QXBuNUdGLzU4MXdk?= =?utf-8?B?UWx5ZG1TcmVnQU5Nb1FFVmFDRndlaW85RFZYdnFqL0lGMnpBdXFZd29WK2Qw?= =?utf-8?B?dFhydHBya0sxQkhjU21pTVo2MmtnYk1lYkJTQjF6M1ErZ3o5dURtSEIzTHc4?= =?utf-8?B?amx0SjFoZTlTSDlPZUhFR25XMitadGRTVkVDTmFpTDBxeWg0ajhheU1UcFFs?= =?utf-8?B?KzlBMGljNFZyeHdhUmxwUzluUGNFUURkVVd4VHRoZmZXZitVeW1LbytaTmlQ?= =?utf-8?B?bmZodzU5SWlBaVZOcVZiYUcwdVIvaFp4Y01jSVRqWHBHa2p2V1lBZmNwRTRX?= =?utf-8?B?emI4Y3oxVmQ0bGszYTUvdnJTL1NUT09QdHIxVjc4cFVncXZTcHg1QTFITzB1?= =?utf-8?B?L0dxN1BCNnd2OTlBUkdZS1dVVytjRy9zVU1ZWHlPRDRaUXdmdnFoWXZpVHh4?= =?utf-8?B?S0hBeTEvbWJ5Ykx1Y2ppZzVWNlRrRmk0QzBlTVEwNDh2YzRVdThsMGNOWm1Y?= =?utf-8?B?K3d1cTJnSHRwV05VTk0xZThMeDJJQURaZ1VuRnNzdzB3N1l1VWw2WjNTYnA2?= =?utf-8?B?aTh4MTdaNEcyOVc3Mm91czlSb2grUXNnK2VQcU8zZGRqcUJFekZlc1Z3SnVI?= =?utf-8?B?NVo2M2xneUczOG85b3psbng4Y05COXA4WDJCenBwV3k5a0JNWDEycEJsa0U3?= =?utf-8?B?Um8wbGpaaFZMSlhHbHBLdXBqVXdOZzdkT3ZuaWVnL1ZKZDdicFMvQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: a8ea15f4-b508-4d59-e8bd-08dee905e7bc X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:10.5755 (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: Xm5KNQ+mnydI33sdFIGbhKMyCdyWrrltzz0k4ooxhYL78VVXngJT61h/CzSHsmns7im5EkFwHM05RcPvk1PTBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 Currently there is a TOCTOU issue in new_id_store() as the dyn ID insertion in pci_add_dynid() and the pci_match_device() are in separate critical sections. Fix this by moving the existing ID check to inside pci_add_dynid() and only check against the static ID table outside the critical section. Fixes: 3853f9123c18 ("PCI: Avoid duplicate IDs in driver dynamic IDs list") Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/pci/pci-driver.c | 140 ++++++++++++++++++++++++-------------------= ---- 1 file changed, 72 insertions(+), 68 deletions(-) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index c9424edb4548..ab3bb756ce89 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -29,6 +29,47 @@ struct pci_dynid { struct pci_device_id id; }; =20 +/** + * do_pci_add_dynid - Add a new PCI device ID to this driver and re-probe + * @drv: target PCI driver + * @id: ID to be added + * @check_dup: whether to check if matching ID is already present + * + * Add a new dynamic PCI device ID to this driver and causes the driver to + * probe for all devices again. @drv must have been registered prior to c= alling + * this function. + * + * Context: Does GFP_KERNEL allocation. + * + * Return: 0 on success, -errno on failure. + */ +static int do_pci_add_dynid(struct pci_driver *drv, + const struct pci_device_id *id, + bool check_dup) +{ + struct pci_dynid *dynid, *existing_dynid; + + dynid =3D kzalloc_obj(*dynid); + if (!dynid) + return -ENOMEM; + + dynid->id =3D *id; + + scoped_guard(spinlock, &drv->dynids.lock) { + if (check_dup) { + list_for_each_entry(existing_dynid, &drv->dynids.list, node) { + if (pci_match_one_id(&existing_dynid->id, id)) { + kfree(dynid); + return -EEXIST; + } + } + } + list_add_tail(&dynid->node, &drv->dynids.list); + } + + return driver_attach(&drv->driver); +} + /** * pci_add_dynid - add a new PCI device ID to this driver and re-probe dev= ices * @drv: target pci driver @@ -56,25 +97,17 @@ int pci_add_dynid(struct pci_driver *drv, unsigned int class, unsigned int class_mask, unsigned long driver_data) { - struct pci_dynid *dynid; - - dynid =3D kzalloc_obj(*dynid); - if (!dynid) - return -ENOMEM; + struct pci_device_id id =3D { + .vendor =3D vendor, + .device =3D device, + .subvendor =3D subvendor, + .subdevice =3D subdevice, + .class =3D class, + .class_mask =3D class_mask, + .driver_data =3D driver_data, + }; =20 - dynid->id.vendor =3D vendor; - dynid->id.device =3D device; - dynid->id.subvendor =3D subvendor; - dynid->id.subdevice =3D subdevice; - dynid->id.class =3D class; - dynid->id.class_mask =3D class_mask; - dynid->id.driver_data =3D driver_data; - - spin_lock(&drv->dynids.lock); - list_add_tail(&dynid->node, &drv->dynids.list); - spin_unlock(&drv->dynids.lock); - - return driver_attach(&drv->driver); + return do_pci_add_dynid(drv, &id, false); } EXPORT_SYMBOL_GPL(pci_add_dynid); =20 @@ -94,16 +127,20 @@ static void pci_free_dynids(struct pci_driver *drv) * do_pci_match_id - See if a PCI ID matches a given pci_id table * @ids: array of PCI device ID structures to search in * @dev_id: the actual PCI device ID structure to match against. + * @include_override_only: also match against device ID entries marked as + * override only. * * Return: the matching pci_device_id structure or %NULL if there is no ma= tch. */ static const struct pci_device_id * do_pci_match_id(const struct pci_device_id *ids, - const struct pci_device_id *dev_id) + const struct pci_device_id *dev_id, + bool include_override_only) { if (ids) { while (ids->vendor || ids->subvendor || ids->class_mask) { - if (pci_match_one_id(ids, dev_id)) + if ((!ids->override_only || include_override_only) && + pci_match_one_id(ids, dev_id)) return ids; ids++; } @@ -128,7 +165,7 @@ const struct pci_device_id *pci_match_id(const struct p= ci_device_id *ids, { struct pci_device_id dev_id =3D pci_id_from_device(dev); =20 - return do_pci_match_id(ids, &dev_id); + return do_pci_match_id(ids, &dev_id, true); } EXPORT_SYMBOL(pci_match_id); =20 @@ -153,7 +190,7 @@ static const struct pci_device_id *pci_match_device(str= uct pci_driver *drv, struct pci_dev *dev) { struct pci_dynid *dynid; - const struct pci_device_id *found_id =3D NULL, *ids; + const struct pci_device_id *found_id =3D NULL; struct pci_device_id dev_id; int ret; =20 @@ -176,20 +213,9 @@ static const struct pci_device_id *pci_match_device(st= ruct pci_driver *drv, if (found_id) return found_id; =20 - for (ids =3D drv->id_table; (found_id =3D do_pci_match_id(ids, &dev_id)); - ids =3D found_id + 1) { - /* - * The match table is split based on driver_override. - * In case override_only was set, enforce driver_override - * matching. - */ - if (found_id->override_only) { - if (ret > 0) - return found_id; - } else { - return found_id; - } - } + found_id =3D do_pci_match_id(drv->id_table, &dev_id, ret > 0); + if (found_id) + return found_id; =20 /* driver_override will always match, send a dummy id */ if (ret > 0) @@ -197,11 +223,6 @@ static const struct pci_device_id *pci_match_device(st= ruct pci_driver *drv, return NULL; } =20 -static void _pci_free_device(struct device *dev) -{ - kfree(to_pci_dev(dev)); -} - /** * new_id_store - sysfs frontend to pci_add_dynid() * @driver: target device driver @@ -215,38 +236,22 @@ static ssize_t new_id_store(struct device_driver *dri= ver, const char *buf, { struct pci_driver *pdrv =3D to_pci_driver(driver); const struct pci_device_id *ids =3D pdrv->id_table; - u32 vendor, device, subvendor =3D PCI_ANY_ID, - subdevice =3D PCI_ANY_ID, class =3D 0, class_mask =3D 0; - unsigned long driver_data =3D 0; + struct pci_device_id id =3D { + .subvendor =3D PCI_ANY_ID, + .subdevice =3D PCI_ANY_ID + }; int fields; int retval =3D 0; =20 fields =3D sscanf(buf, "%x %x %x %x %x %x %lx", - &vendor, &device, &subvendor, &subdevice, - &class, &class_mask, &driver_data); + &id.vendor, &id.device, &id.subvendor, &id.subdevice, + &id.class, &id.class_mask, &id.driver_data); if (fields < 2) return -EINVAL; =20 if (fields !=3D 7) { - struct pci_dev *pdev =3D kzalloc_obj(*pdev); - if (!pdev) - return -ENOMEM; - - pdev->vendor =3D vendor; - pdev->device =3D device; - pdev->subsystem_vendor =3D subvendor; - pdev->subsystem_device =3D subdevice; - pdev->class =3D class; - pdev->dev.release =3D _pci_free_device; - - device_initialize(&pdev->dev); - if (pci_match_device(pdrv, pdev)) - retval =3D -EEXIST; - - put_device(&pdev->dev); - - if (retval) - return retval; + if (do_pci_match_id(pdrv->id_table, &id, false)) + return -EEXIST; } =20 /* Only accept driver_data values that match an existing id_table @@ -254,7 +259,7 @@ static ssize_t new_id_store(struct device_driver *drive= r, const char *buf, if (ids) { retval =3D -EINVAL; while (ids->vendor || ids->subvendor || ids->class_mask) { - if (driver_data =3D=3D ids->driver_data) { + if (id.driver_data =3D=3D ids->driver_data) { retval =3D 0; break; } @@ -264,8 +269,7 @@ static ssize_t new_id_store(struct device_driver *drive= r, const char *buf, return retval; } =20 - retval =3D pci_add_dynid(pdrv, vendor, device, subvendor, subdevice, - class, class_mask, driver_data); + retval =3D do_pci_add_dynid(pdrv, &id, fields !=3D 7); if (retval) return retval; return count; --=20 2.54.0 From nobody Fri Jul 24 21:54:50 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022122.outbound.protection.outlook.com [52.101.96.122]) (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 307ED40F759; Thu, 23 Jul 2026 22:01:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.122 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844128; cv=fail; b=tmQvWBVnqOy492e95AxTEN2G8DlvIZi7vcmhU8Z6lO1SCijBTzHsLDmVKM+XOTMS4c1otSacpWKHZeeHH712CqGNZ9shVb4wx2hPS4nj4nvZQ9sWvfNydUxgpCdS3iOOSyDUZV+kM/DfiL19DRd3OBLLneVJUpwV3vb4mWU7lc4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784844128; c=relaxed/simple; bh=lHva/dma2dhjWQsmx2fGGemN3LY6Pzjje93ttaBGl9s=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=EnVTnXNVFuoP2z+lsIV7TD16qeiYWohgyHsuPIGgjztprlegKK0CQlOynGQMnV/4Vi9VpyzzE1V3jBmAMQhh3j6cko5/KSPO0lKvW4S/zqSGpioPFMBcNAANnT1ptm1+1k5lJSOG6/cyKEWnvc1lM0zI3CVxGQIshVCOtn6aWZQ= 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=ZUXco7VC; arc=fail smtp.client-ip=52.101.96.122 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="ZUXco7VC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ge93VeykG/XhaTosN0XKrunv0anpbiQf0N7L/7DvefbbDNmo7nl/22fMNzE7O8yHvi1W3RdS7WDVsad4kD+ERWey6cA4xVd6a0QI3wVfAWrovDTFBxvQ4yY2kTkk4Zd4HMkJL/3njQxRR8rGIVQUGYV6Kd6kCekrRc6Msi37ikHpgSj+lSkhz+59pOgucMSDnItmHxUo/45tapCwB81fLq4fPLynTqcINL6wsOL9km6wnJeFeODYtaeJP8UcQqqJreJNgKFjjcYMMxXJCrHkvn0hS7BssPK9DOHPSfvQ8Ge9fBEs2stx19sTFYar3dKRZhDWCCYTXOIJwGca2RNgvA== 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=Co5kdjmHbYEl4DCl1tDECg3+TXAiKFmIIs3avtbaJ8Q=; b=kIKMuFf1DWUpUpGe/bYZCk+xtyflV0oZmyb/zFoZuCZLs36vX/1wcDi/en8r9zMIw8S5/VuN6BPb1GZq7qYdkRkgwbIpX/z+e8XJik93pPU6Di5EC6Eo1yNk52Jg4Ucb1HGmz+CUH7RjsHW8Ly4zMsXKdXsLQGOg+U7+dsx8TJIbKMDKnqd2KC1LSK+m8U93e/6iOSftpC03B4oX8X8GnXsTzKmWMgrJQSC80pjsHv8jmdU9FpZvZNrRJ0aS7oAQUVKHVsDVl1d8MSvlYIDvvYiQNZiiZYm0nBBN1ChYjqBOkb/2V4fClkCyxjZkO5SWbla2Uy5zB7vCK3avJB8GPQ== 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=Co5kdjmHbYEl4DCl1tDECg3+TXAiKFmIIs3avtbaJ8Q=; b=ZUXco7VCX+UDmBtei1BtwJ/9nLxUmXBKgz6Np591SMOEzxt7iHHaaKSaazPm3jT9n4xjEbD9JSdUCJ0t5UH8nypgpLQxO/6CPnl1M3iAfhr4nKyhhG1uPkcbJlKT+xrmosootqAaduDZfLGHSR+NxgT2zZflXxhUAWkXNyq/GDA= 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 LO0P265MB2635.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:14c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Thu, 23 Jul 2026 22:01:11 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%2]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 22:01:11 +0000 From: Gary Guo Date: Thu, 23 Jul 2026 23:00:48 +0100 Subject: [PATCH v4 9/9] PCI: Fix UAF when probe runs concurrent to dyn ID removal Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-pci_id_fix-v4-9-3580726844e1@garyguo.net> References: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> In-Reply-To: <20260723-pci_id_fix-v4-0-3580726844e1@garyguo.net> To: Bjorn Helgaas , Zhenzhong Duan , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Damien Le Moal , Niklas Cassel , GOTO Masanori , YOKOTA Hiroshi , "James E.J. Bottomley" , "Martin K. Petersen" , Vaibhav Gupta , Jens Taprogge , Ido Schimmel , Petr Machata , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Airlie Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, industrypack-devel@lists.sourceforge.net, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Sashiko , Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784844066; l=4035; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=lHva/dma2dhjWQsmx2fGGemN3LY6Pzjje93ttaBGl9s=; b=PRpoM33KIVcuLWUlxn8nVZJmx89ogQe/kUyc0oKz9B1+e+FStVQw+oLIXU+fW6nX1Ym14kr31 JqvL8iK2SXIALrn1fyHEzic/O9VRJlsrXDW2sfHe7DORDCEEsZ8XUxA X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0115.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::12) 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_|LO0P265MB2635:EE_ X-MS-Office365-Filtering-Correlation-Id: a7ce7b36-e754-4197-c17e-08dee905e7fc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|10070799003|1800799024|921020|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: fhTG4FoRvy0J0DSORGwc9FqJnQ2lVy/1WKsjhRLUpwf+Th8oVZ8R2ZYK2L5z9Zi02VCGF0N9SCL02t+qw6RXPg7jcPym4t15fSogpqNfKSTq9QFNOHnWSPlyh0zbPnS1AhknYsFEAeXaQGgRgFqsbUnTWbevnkS4Qs8CZH2tFFAKK0YFcZ41OCelELzNlBrzF26nmKNOb37W29VakkfRCp2FBIDmuMZGdp0byCeerzrfz8E5Z45MeF1Y3Uls1F/t4RMrih53cwWsaONLPOSqRYOa97LzU/94hz+cCsnwPdtpuvHes/uH4qxDCKW5fPdD0pp+u6l8PHjO9Hxm0d1LQkB91c0H+2GPWeEyxGl1o31vn85XQnyfaHfclvvjI4f7mbSrpDNUPA24ivo2Je+HbuEMHIejMV6dh/FzfoqHy+FL0OOSoKElCbP+DRV+YY1a4Yqa0JF9EYVxNrxh2JBYMKnxvXxvoDy0VIDwGUZaWUU3Aeiso7ozGP5hAc6qz0XhT9nqZLUGrsdV1u/V9+H6ajyKC004GcLDD/orp0KsEXJxqMt+KpkLajdOU3ZYabFQcry4glWkZzH0okLbTVY9MNDSKI7n4OdZQou4scGHG+OT57Ux/XjhVQL1Kh1sAWVgcopD5CGBPsjH5dgX/TIYxBMifxUZ/XpnW2mk/py8TEUCGKiIWJy2JjUYy7Ri3PEfBG90+hboWV+292Ysec//tA== 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)(366016)(7416014)(376014)(23010399003)(10070799003)(1800799024)(921020)(22082099003)(18002099003)(56012099006)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?clNXUzQ0Rm9BNzlQb0NFdUY2REZFWVBOOUM2UmdZb0k4UitLL0lpVFlHaWgy?= =?utf-8?B?OGRWdkpTa3lZVDl5OVVncHJkQUhVVzNVclhLNDAzV28vSTdLcmx0VE1ydjZ2?= =?utf-8?B?L0JCSkVwTHdkb1JNRDVIbi9QNVBUSWhnb0k2QXUxUkt0VW01NjgrVjNRckJZ?= =?utf-8?B?TXVKdWNTY3o3SEs3SVJFQmdVZE1BZ1RvSm95Y1Bja0cydWExWkhtM1pnT1lC?= =?utf-8?B?eitEMFh3ZHBSc3czekphcFVjRkw0Q1hIL1k5bmx2TEJ2V3IxRFVOaWduNTJk?= =?utf-8?B?NWdEWUVsNnZKMHJOdkFmKzgwVURCOHVwd2UxNXdxY2RPKzVJclpSTnIzV3Ax?= =?utf-8?B?d0lUSGZNbVBnNkFaZFRxUU1IWUtucEZvRWtqV3NEWXF6dk9aMmJwRzhYZGJj?= =?utf-8?B?Zld3TE1mVlhOY1Q0VWhMVTNBTHNLTFlMVkxsWUdPZGZ0VE5GV0dXMmVHRHFq?= =?utf-8?B?NFJHdlZTTlA5WjJZbGVmclBaVnBsV1pwblFJdVNvd2xBTUVEaHFqbGVzTThv?= =?utf-8?B?OFhxSnJWV25EMm94N3FMZ3ZtQ01FcU9rUWFObFJiQm1BTmYrTUZRdWZvejVZ?= =?utf-8?B?WVptUGtZeko1VjA4MytralFrbzZEb2pBeEZmNi9JNkpyVHFsZmdqSUkrUXBi?= =?utf-8?B?djRoaVd1cktVOHVwK0Q5Ykt5MElQL2VoMC9SUE1RYlJqYTMxa09yMnpwd3Ex?= =?utf-8?B?K2tySHFlMy9EaThnSDRWQnZDQ2pBMDNpZ2xRek5MQzRBUEw2VW5HcWx0aWxa?= =?utf-8?B?QjVwWDRRWExHZWNZcGlvTWc1cTg2WjR5YlNObytya3lhb1MyQ0x6UHROSXU5?= =?utf-8?B?MUZCRjIyTzFidSt6RnA2U1JRbnBoaGQ3eXZ6VDYzZGFyR09CYldYb2V6UzB2?= =?utf-8?B?TVlOYk4yZ2N5YWtKb1JQcFhvdk1QRFA5aFVFeUs1R0FXL3h3MzEydFFXMlZq?= =?utf-8?B?TDhubzhBTzQzYVlIVGg0M2RpMFRVTHlQd2NFUXRReW5wQjhWNFRzZWF2ZVd6?= =?utf-8?B?b2poSmEvM0RRUEJLZnpwUEo0eDhDY3FRZUcvL2xVbHYxcUdZSTJwb3I0dm5Z?= =?utf-8?B?YVFrUWlvcDQrTDRkRVNEQVNhSUpYMGlCRXdBTVhNOERhL2RsYWthYzY3TERx?= =?utf-8?B?bUNuekxndFM1SzE4TWlqMGtDQVBaZUFIdUh5VGtPU0tnVUYycmdOTmcwZ21G?= =?utf-8?B?c0hBcThzSkordkhkWTBGUDg4aW5IK3NRZUhSUWVvZy83RXR4NENHVjdCNnY5?= =?utf-8?B?Ri9MNmlPVXhiRGZpRlpWeERUck0xTng2S0c3QU90WnVxTlRZd21ObkJwLzZE?= =?utf-8?B?VG42c3QveFlxUFBWNmtob2hYWVRzcWZpNEM5UVQrVC9GVU9xYXNhZjdNbUpx?= =?utf-8?B?ZG83T2JmNnAzZm9QWTZsbUFwSjdiN2tDcjgwMXhPUDZFRlRtUDBTL2tlZVh3?= =?utf-8?B?QW1pd0RPVW1OZW4vd3FhUGhaRzUrRW44LzVtMGpaNzVmWkx3ekVTbUx2UUhV?= =?utf-8?B?d21zME0rWmw2T1ZjRjZ6NHVjZEJOTmIzR2thL0M2amRDcVE3SDNURGJ5ZHJU?= =?utf-8?B?N2NVVE1LUXZOUWRaWVJZWG8vY0xDN0xjTXMxOEdhbUJMR2lzL1ZiK1VEOGVO?= =?utf-8?B?QlNSTndaWHM1Q3Rtd05iSHIyNlVUek1pbU84d1JXUGlDdjVqUHhqSTJ1b2E1?= =?utf-8?B?T2c0SUhaMTlPWG52MUZGdU1wU1lJR3UzQzZWbG1IdXNSL3pGRTR3QUJTR000?= =?utf-8?B?cERaVjVCc1IyVEFqbklMV1NYOFh1TkM2cGZFMTdEVFJoc0dHWnhUcE84Y1RV?= =?utf-8?B?NkQ1T2FOaDhzS1FrbUNWbVMybVdKQ20zelMvcGM1ZFdLNmZUZ0xzVHRoZUtX?= =?utf-8?B?VTJVOUxRMHNxeTdIeWpxZnJSbFBJRlQ1MkprYjllT2lSTDFrTUZKREFpalQ4?= =?utf-8?B?QUtpR21vQmJ6eXBTUVRlb1hLSEV6NUd2dU4zZ2Y3WXl6QXhMeS83L25ENzhZ?= =?utf-8?B?Y1BXN1FpemUvRldSN3RiNjRtNTZQRi85ZG5VMjBHR3FaN1FRZERqYXFVY0wy?= =?utf-8?B?MEJ3ZWJRVnhlVlYybHhvbSt2b1J6QTQxZnlHeWFlaXUxWlZXN0V4amxKL0tR?= =?utf-8?B?bnIzclJiYlhvZjBFYzBSMklGdzhZcVljR2oybENsa2VZb2tqa0JVNE9PQjZ3?= =?utf-8?B?SjNlTFQ4ZUczTmdPQUFPa2t1WnczKzA1QlhtSlNoT3dQZC9JaGh3akQ2SklS?= =?utf-8?B?c1U3NDEzQVJIV29NMEFPK0pmbDNsN05tS0lCbnB2V0FBTFhBZzJQdFM0Y05r?= =?utf-8?B?dlBnelp5cGRwZ0F5aHk2TENUd1JUUm1KYm5nbXRZT0pGbXdKa051dz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: a7ce7b36-e754-4197-c17e-08dee905e7fc X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 22:01:10.9869 (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: PelTRcD9LODMA2jDHVvb7HoE5dWMXZ2nOOb7zx9LOpLxd5kp/bvUdY+QHw2V2ZC7lgGiFlNrpDZBa1D+/JGSaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB2635 Dynamic IDs are only guaranteed to be valid when dynids.lock is held, as remove_id_store() can free the node. Thus, make a copy in pci_match_device(). Also, clarify that the id parameter is only valid during probe. Reported-by: Sashiko Link: https://lore.kernel.org/all/20260619170503.518F61F00A3A@smtp.kernel.o= rg/ Fixes: 0994375e9614 ("PCI: add remove_id sysfs entry") Reviewed-by: Danilo Krummrich Signed-off-by: Gary Guo --- drivers/pci/pci-driver.c | 28 +++++++++++++++------------- include/linux/pci.h | 1 + 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index ab3bb756ce89..e16aa59dd7ac 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -180,6 +180,7 @@ static const struct pci_device_id pci_device_id_any =3D= { * pci_match_device - See if a device matches a driver's list of IDs * @drv: the PCI driver to match against * @dev: the PCI device structure to match against + * @id_copy: place to store copy of pci_device_id for dynamic ID * * Used by a driver to check whether a PCI device is in its list of * supported devices or in the dynids list, which may have been augmented @@ -187,9 +188,9 @@ static const struct pci_device_id pci_device_id_any =3D= { * structure or %NULL if there is no match. */ static const struct pci_device_id *pci_match_device(struct pci_driver *drv, - struct pci_dev *dev) + struct pci_dev *dev, + struct pci_device_id *id_copy) { - struct pci_dynid *dynid; const struct pci_device_id *found_id =3D NULL; struct pci_device_id dev_id; int ret; @@ -201,17 +202,16 @@ static const struct pci_device_id *pci_match_device(s= truct pci_driver *drv, =20 dev_id =3D pci_id_from_device(dev); /* Look at the dynamic ids first, before the static ones */ - spin_lock(&drv->dynids.lock); - list_for_each_entry(dynid, &drv->dynids.list, node) { - if (pci_match_one_id(&dynid->id, &dev_id)) { - found_id =3D &dynid->id; - break; + scoped_guard(spinlock, &drv->dynids.lock) { + struct pci_dynid *dynid; + + list_for_each_entry(dynid, &drv->dynids.list, node) { + if (pci_match_one_id(&dynid->id, &dev_id)) { + *id_copy =3D dynid->id; + return id_copy; + } } } - spin_unlock(&drv->dynids.lock); - - if (found_id) - return found_id; =20 found_id =3D do_pci_match_id(drv->id_table, &dev_id, ret > 0); if (found_id) @@ -467,12 +467,13 @@ void pci_probe_flush_workqueue(void) static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_= dev) { const struct pci_device_id *id; + struct pci_device_id id_copy; int error =3D 0; =20 if (drv->probe) { error =3D -ENODEV; =20 - id =3D pci_match_device(drv, pci_dev); + id =3D pci_match_device(drv, pci_dev, &id_copy); if (id) error =3D pci_call_probe(drv, pci_dev, id); } @@ -1560,12 +1561,13 @@ static int pci_bus_match(struct device *dev, const = struct device_driver *drv) struct pci_dev *pci_dev =3D to_pci_dev(dev); struct pci_driver *pci_drv; const struct pci_device_id *found_id; + struct pci_device_id id_copy; =20 if (pci_dev_binding_disallowed(pci_dev)) return 0; =20 pci_drv =3D (struct pci_driver *)to_pci_driver(drv); - found_id =3D pci_match_device(pci_drv, pci_dev); + found_id =3D pci_match_device(pci_drv, pci_dev, &id_copy); if (found_id) return 1; =20 diff --git a/include/linux/pci.h b/include/linux/pci.h index 64b308b6e61c..92c17c116de6 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -979,6 +979,7 @@ struct module; * function returns zero when the driver chooses to * take "ownership" of the device or an error code * (negative number) otherwise. + * The pci_device_id parameter is only valid during probe. * The probe function always gets called from process * context, so it can sleep. * @remove: The remove() function gets called whenever a device --=20 2.54.0