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 <[email protected]>
Signed-off-by: Gary Guo <[email protected]>
---
 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);
 
        mode_reg = nsp32_index_read1(base, CHIP_MODE);
-       model    = data->pci_devid->driver_data;
+       model    = data->model;
 
 #ifdef CONFIG_PM
        seq_printf(m, "Power Management:      %s\n",
@@ -2907,8 +2907,8 @@ static int nsp32_eh_host_reset(struct scsi_cmnd *SCpnt)
  */
 static int nsp32_getprom_param(nsp32_hw_data *data)
 {
-       int vendor = data->pci_devid->vendor;
-       int device = data->pci_devid->device;
+       int vendor = data->Pci->vendor;
+       int device = data->Pci->device;
        int ret, i;
        int __maybe_unused val;
 
@@ -3340,7 +3340,7 @@ static int nsp32_probe(struct pci_dev *pdev, const struct 
pci_device_id *id)
        }
 
        data->Pci         = pdev;
-       data->pci_devid   = id;
+       data->model       = id->driver_data;
        data->IrqNumber   = pdev->irq;
        data->BaseAddress = pci_resource_start(pdev, 0);
        data->NumAddress  = 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 {
 
        struct scsi_cmnd *CurrentSC;
 
-       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;
 
        char info_str[100];
 

-- 
2.54.0

Reply via email to