Commit 6242b376 authored by James Bottomley's avatar James Bottomley

remove struct pci_dev from scsi

This patch completely removes struct pci_dev from scsi and replaces it with struct device
(actually as host_driverfs_dev.parent)

The old (but now deprecated) scsi_pci primitives are left in.  These should be replaced
by using the new scsi_device primitives.
parent 8ab1bc19
......@@ -467,12 +467,6 @@ struct Scsi_Host
*/
unsigned int max_host_blocked;
/*
* For SCSI hosts which are PCI devices, set pci_dev so that
* we can do BIOS EDD 3.0 mappings
*/
struct pci_dev *pci_dev;
/*
* Support for driverfs filesystem
*/
......@@ -517,11 +511,16 @@ static inline void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock)
shost->host_lock = lock;
}
static inline void scsi_set_device(struct Scsi_Host *shost,
struct device *dev)
{
shost->host_driverfs_dev.parent = dev;
}
static inline void scsi_set_pci_device(struct Scsi_Host *shost,
struct pci_dev *pdev)
{
shost->pci_dev = pdev;
shost->host_driverfs_dev.parent=&pdev->dev;
scsi_set_device(shost, &pdev->dev);
}
......
......@@ -393,12 +393,13 @@ int scsi_ioctl_send_command(Scsi_Device * dev, Scsi_Ioctl_Command * sic)
* any copy_to_user() error on failure there
*/
static int
scsi_ioctl_get_pci(Scsi_Device * dev, void *arg)
scsi_ioctl_get_pci(Scsi_Device * sdev, void *arg)
{
struct device *dev = sdev->host->host_driverfs_dev.parent;
if (!dev->host->pci_dev) return -ENXIO;
return copy_to_user(arg, dev->host->pci_dev->slot_name,
sizeof(dev->host->pci_dev->slot_name));
if (!dev) return -ENXIO;
return copy_to_user(arg, dev->bus_id,
sizeof(dev->bus_id));
}
......
......@@ -433,11 +433,12 @@ static void scsi_initialize_merge_fn(struct scsi_device *sd)
{
request_queue_t *q = &sd->request_queue;
struct Scsi_Host *sh = sd->host;
struct device *dev = sh->host_driverfs_dev.parent;
u64 bounce_limit;
if (sh->highmem_io) {
if (sh->pci_dev && PCI_DMA_BUS_IS_PHYS) {
bounce_limit = sh->pci_dev->dma_mask;
if (dev && dev->dma_mask && PCI_DMA_BUS_IS_PHYS) {
bounce_limit = *dev->dma_mask;
} else {
/*
* Platforms with virtual-DMA translation
......
......@@ -3780,13 +3780,14 @@ static int st_attach(Scsi_Device * SDp)
tpnt->try_dio = try_direct_io && !SDp->host->unchecked_isa_dma;
bounce_limit = BLK_BOUNCE_HIGH; /* Borrowed from scsi_merge.c */
if (SDp->host->highmem_io) {
struct device *dev = SDp->host->host_driverfs_dev.parent;
if (!PCI_DMA_BUS_IS_PHYS)
/* Platforms with virtual-DMA translation
* hardware have no practical limit.
*/
bounce_limit = BLK_BOUNCE_ANY;
else if (SDp->host->pci_dev)
bounce_limit = SDp->host->pci_dev->dma_mask;
else if (dev && dev->dma_mask)
bounce_limit = *dev->dma_mask;
} else if (SDp->host->unchecked_isa_dma)
bounce_limit = BLK_BOUNCE_ISA;
bounce_limit >>= PAGE_SHIFT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment