提交 12413197 编写于 作者: C Christoph Hellwig 提交者: James Bottomley

[SCSI] remove scsi_set_device

scsi_add_host is the proper place to set the device, but people copy
the scsi_set_device usage from older drivers again and again.

note that this leaves some legacy drivers like qlogicisp/qlogicfc
without pci association in sysfs, but they're scheduled to go away soon
anyway.
Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
上级 117e4b27
...@@ -388,7 +388,6 @@ Summary: ...@@ -388,7 +388,6 @@ Summary:
scsi_remove_device - detach and remove a SCSI device scsi_remove_device - detach and remove a SCSI device
scsi_remove_host - detach and remove all SCSI devices owned by host scsi_remove_host - detach and remove all SCSI devices owned by host
scsi_report_bus_reset - report scsi _bus_ reset observed scsi_report_bus_reset - report scsi _bus_ reset observed
scsi_set_device - place device reference in host structure
scsi_track_queue_full - track successive QUEUE_FULL events scsi_track_queue_full - track successive QUEUE_FULL events
scsi_unblock_requests - allow further commands to be queued to given host scsi_unblock_requests - allow further commands to be queued to given host
scsi_unregister - [calls scsi_host_put()] scsi_unregister - [calls scsi_host_put()]
...@@ -740,20 +739,6 @@ int scsi_remove_host(struct Scsi_Host *shost) ...@@ -740,20 +739,6 @@ int scsi_remove_host(struct Scsi_Host *shost)
void scsi_report_bus_reset(struct Scsi_Host * shost, int channel) void scsi_report_bus_reset(struct Scsi_Host * shost, int channel)
/**
* scsi_set_device - place device reference in host structure
* @shost: a pointer to a scsi host instance
* @pdev: pointer to device instance to assign
*
* Returns nothing
*
* Might block: no
*
* Defined in: include/scsi/scsi_host.h .
**/
void scsi_set_device(struct Scsi_Host * shost, struct device * dev)
/** /**
* scsi_track_queue_full - track successive QUEUE_FULL events on given * scsi_track_queue_full - track successive QUEUE_FULL events on given
* device to determine if and when there is a need * device to determine if and when there is a need
......
...@@ -267,10 +267,6 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) ...@@ -267,10 +267,6 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)
sh->sg_tablesize = numSGE; sh->sg_tablesize = numSGE;
} }
/* Set the pci device pointer in Scsi_Host structure.
*/
scsi_set_device(sh, &ioc->pcidev->dev);
spin_unlock_irqrestore(&ioc->FreeQlock, flags); spin_unlock_irqrestore(&ioc->FreeQlock, flags);
hd = (MPT_SCSI_HOST *) sh->hostdata; hd = (MPT_SCSI_HOST *) sh->hostdata;
......
...@@ -287,10 +287,6 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) ...@@ -287,10 +287,6 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
sh->sg_tablesize = numSGE; sh->sg_tablesize = numSGE;
} }
/* Set the pci device pointer in Scsi_Host structure.
*/
scsi_set_device(sh, &ioc->pcidev->dev);
spin_unlock_irqrestore(&ioc->FreeQlock, flags); spin_unlock_irqrestore(&ioc->FreeQlock, flags);
hd = (MPT_SCSI_HOST *) sh->hostdata; hd = (MPT_SCSI_HOST *) sh->hostdata;
......
...@@ -4556,8 +4556,6 @@ advansys_detect(struct scsi_host_template *tpnt) ...@@ -4556,8 +4556,6 @@ advansys_detect(struct scsi_host_template *tpnt)
continue; continue;
} }
scsi_set_device(shp, dev);
/* Save a pointer to the Scsi_Host of each board found. */ /* Save a pointer to the Scsi_Host of each board found. */
asc_host[asc_board_count++] = shp; asc_host[asc_board_count++] = shp;
......
...@@ -8448,7 +8448,6 @@ aic7xxx_alloc(Scsi_Host_Template *sht, struct aic7xxx_host *temp) ...@@ -8448,7 +8448,6 @@ aic7xxx_alloc(Scsi_Host_Template *sht, struct aic7xxx_host *temp)
} }
p->host_no = host->host_no; p->host_no = host->host_no;
} }
scsi_set_device(host, &p->pdev->dev);
return (p); return (p);
} }
......
...@@ -336,7 +336,6 @@ int cpqfcTS_detect(Scsi_Host_Template *ScsiHostTemplate) ...@@ -336,7 +336,6 @@ int cpqfcTS_detect(Scsi_Host_Template *ScsiHostTemplate)
DEBUG_PCI(printk(" PciDev->baseaddress[3]= %lx\n", DEBUG_PCI(printk(" PciDev->baseaddress[3]= %lx\n",
PciDev->resource[3].start)); PciDev->resource[3].start));
scsi_set_device(HostAdapter, &PciDev->dev);
HostAdapter->irq = PciDev->irq; // copy for Scsi layers HostAdapter->irq = PciDev->irq; // copy for Scsi layers
// HP Tachlite uses two (255-byte) ranges of Port I/O (lower & upper), // HP Tachlite uses two (255-byte) ranges of Port I/O (lower & upper),
......
...@@ -938,7 +938,6 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) ...@@ -938,7 +938,6 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
} }
shpnt->irq = interrupt_level; shpnt->irq = interrupt_level;
shpnt->io_port = port_base; shpnt->io_port = port_base;
scsi_set_device(shpnt, &pdev->dev);
shpnt->n_io_port = 0x10; shpnt->n_io_port = 0x10;
print_banner( shpnt ); print_banner( shpnt );
......
...@@ -4521,9 +4521,7 @@ static int __init gdth_detect(Scsi_Host_Template *shtp) ...@@ -4521,9 +4521,7 @@ static int __init gdth_detect(Scsi_Host_Template *shtp)
ha->virt_bus = hdr_channel; ha->virt_bus = hdr_channel;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
scsi_set_device(shp, &pcistr[ctr].pdev->dev);
#else
scsi_set_pci_device(shp, pcistr[ctr].pdev); scsi_set_pci_device(shp, pcistr[ctr].pdev);
#endif #endif
if (!(ha->cache_feat & ha->raw_feat & ha->screen_feat &GDT_64BIT)|| if (!(ha->cache_feat & ha->raw_feat & ha->screen_feat &GDT_64BIT)||
......
...@@ -180,11 +180,6 @@ static void scsi_host_dev_release(struct device *dev) ...@@ -180,11 +180,6 @@ static void scsi_host_dev_release(struct device *dev)
scsi_destroy_command_freelist(shost); scsi_destroy_command_freelist(shost);
kfree(shost->shost_data); kfree(shost->shost_data);
/*
* Some drivers (eg aha1542) do scsi_register()/scsi_unregister()
* during probing without performing a scsi_set_device() in between.
* In this case dev->parent is NULL.
*/
if (parent) if (parent)
put_device(parent); put_device(parent);
kfree(shost); kfree(shost);
......
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
#define IPS_UNREGISTER_HOSTS(SHT) #define IPS_UNREGISTER_HOSTS(SHT)
#define IPS_ADD_HOST(shost,device) do { scsi_add_host(shost,device); scsi_scan_host(shost); } while (0) #define IPS_ADD_HOST(shost,device) do { scsi_add_host(shost,device); scsi_scan_host(shost); } while (0)
#define IPS_REMOVE_HOST(shost) scsi_remove_host(shost) #define IPS_REMOVE_HOST(shost) scsi_remove_host(shost)
#define IPS_SCSI_SET_DEVICE(sh,ha) scsi_set_device(sh, &(ha)->pcidev->dev) #define IPS_SCSI_SET_DEVICE(sh,ha) do { } while (0)
#define IPS_PRINTK(level, pcidev, format, arg...) \ #define IPS_PRINTK(level, pcidev, format, arg...) \
dev_printk(level , &((pcidev)->dev) , format , ## arg) dev_printk(level , &((pcidev)->dev) , format , ## arg)
#endif #endif
......
...@@ -3748,7 +3748,7 @@ static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host, ...@@ -3748,7 +3748,7 @@ static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
host->max_channel = 1; host->max_channel = 1;
host->unique_id = ata_unique_id++; host->unique_id = ata_unique_id++;
host->max_cmd_len = 12; host->max_cmd_len = 12;
scsi_set_device(host, ent->dev);
scsi_assign_lock(host, &host_set->lock); scsi_assign_lock(host, &host_set->lock);
ap->flags = ATA_FLAG_PORT_DISABLED; ap->flags = ATA_FLAG_PORT_DISABLED;
......
...@@ -719,7 +719,6 @@ megaraid_io_attach(adapter_t *adapter) ...@@ -719,7 +719,6 @@ megaraid_io_attach(adapter_t *adapter)
// export the parameters required by the mid-layer // export the parameters required by the mid-layer
scsi_assign_lock(host, adapter->host_lock); scsi_assign_lock(host, adapter->host_lock);
scsi_set_device(host, &adapter->pdev->dev);
host->irq = adapter->irq; host->irq = adapter->irq;
host->unique_id = adapter->unique_id; host->unique_id = adapter->unique_id;
......
...@@ -7756,7 +7756,6 @@ struct Scsi_Host * __init ncr_attach(struct scsi_host_template *tpnt, ...@@ -7756,7 +7756,6 @@ struct Scsi_Host * __init ncr_attach(struct scsi_host_template *tpnt,
* your module_init */ * your module_init */
BUG_ON(!ncr53c8xx_transport_template); BUG_ON(!ncr53c8xx_transport_template);
instance->transportt = ncr53c8xx_transport_template; instance->transportt = ncr53c8xx_transport_template;
scsi_set_device(instance, device->dev);
/* Patch script to physical addresses */ /* Patch script to physical addresses */
ncr_script_fill(&script0, &scripth0); ncr_script_fill(&script0, &scripth0);
......
...@@ -2719,9 +2719,7 @@ static int nsp32_detect(Scsi_Host_Template *sht) ...@@ -2719,9 +2719,7 @@ static int nsp32_detect(Scsi_Host_Template *sht)
host->unique_id = data->BaseAddress; host->unique_id = data->BaseAddress;
host->n_io_port = data->NumAddress; host->n_io_port = data->NumAddress;
host->base = (unsigned long)data->MmioAddress; host->base = (unsigned long)data->MmioAddress;
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,63)) #if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,63))
scsi_set_device(host, &PCIDEV->dev);
#else
scsi_set_pci_device(host, PCIDEV); scsi_set_pci_device(host, PCIDEV);
#endif #endif
......
...@@ -746,7 +746,6 @@ static int isp2x00_detect(Scsi_Host_Template * tmpt) ...@@ -746,7 +746,6 @@ static int isp2x00_detect(Scsi_Host_Template * tmpt)
printk("qlogicfc%d : could not register host.\n", hosts); printk("qlogicfc%d : could not register host.\n", hosts);
continue; continue;
} }
scsi_set_device(host, &pdev->dev);
host->max_id = QLOGICFC_MAX_ID + 1; host->max_id = QLOGICFC_MAX_ID + 1;
host->max_lun = QLOGICFC_MAX_LUN; host->max_lun = QLOGICFC_MAX_LUN;
hostdata = (struct isp2x00_hostdata *) host->hostdata; hostdata = (struct isp2x00_hostdata *) host->hostdata;
......
...@@ -694,7 +694,6 @@ static int isp1020_detect(Scsi_Host_Template *tmpt) ...@@ -694,7 +694,6 @@ static int isp1020_detect(Scsi_Host_Template *tmpt)
memset(hostdata, 0, sizeof(struct isp1020_hostdata)); memset(hostdata, 0, sizeof(struct isp1020_hostdata));
hostdata->pci_dev = pdev; hostdata->pci_dev = pdev;
scsi_set_device(host, &pdev->dev);
if (isp1020_init(host)) if (isp1020_init(host))
goto fail_and_unregister; goto fail_and_unregister;
......
...@@ -641,12 +641,6 @@ static inline void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock) ...@@ -641,12 +641,6 @@ static inline void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock)
shost->host_lock = lock; shost->host_lock = lock;
} }
static inline void scsi_set_device(struct Scsi_Host *shost,
struct device *dev)
{
shost->shost_gendev.parent = dev;
}
static inline struct device *scsi_get_device(struct Scsi_Host *shost) static inline struct device *scsi_get_device(struct Scsi_Host *shost)
{ {
return shost->shost_gendev.parent; return shost->shost_gendev.parent;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册