[PATCH] PCI: make drivers use the pci shutdown callback instead of the driver core callback.
Now we can change the pci core to always set this pointer, as pci drivers should use it, not the driver core callback. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
4002307d2b
Коммит
d18c3db58b
|
@ -364,9 +364,7 @@ static struct pci_driver mptfc_driver = {
|
||||||
.id_table = mptfc_pci_table,
|
.id_table = mptfc_pci_table,
|
||||||
.probe = mptfc_probe,
|
.probe = mptfc_probe,
|
||||||
.remove = __devexit_p(mptscsih_remove),
|
.remove = __devexit_p(mptscsih_remove),
|
||||||
.driver = {
|
.shutdown = mptscsih_shutdown,
|
||||||
.shutdown = mptscsih_shutdown,
|
|
||||||
},
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
.suspend = mptscsih_suspend,
|
.suspend = mptscsih_suspend,
|
||||||
.resume = mptscsih_resume,
|
.resume = mptscsih_resume,
|
||||||
|
|
|
@ -170,7 +170,7 @@ static void mptscsih_fillbuf(char *buffer, int size, int index, int width);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void mptscsih_remove(struct pci_dev *);
|
void mptscsih_remove(struct pci_dev *);
|
||||||
void mptscsih_shutdown(struct device *);
|
void mptscsih_shutdown(struct pci_dev *);
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
int mptscsih_suspend(struct pci_dev *pdev, pm_message_t state);
|
int mptscsih_suspend(struct pci_dev *pdev, pm_message_t state);
|
||||||
int mptscsih_resume(struct pci_dev *pdev);
|
int mptscsih_resume(struct pci_dev *pdev);
|
||||||
|
@ -988,7 +988,7 @@ mptscsih_remove(struct pci_dev *pdev)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mptscsih_shutdown(&pdev->dev);
|
mptscsih_shutdown(pdev);
|
||||||
|
|
||||||
sz1=0;
|
sz1=0;
|
||||||
|
|
||||||
|
@ -1026,9 +1026,9 @@ mptscsih_remove(struct pci_dev *pdev)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
mptscsih_shutdown(struct device * dev)
|
mptscsih_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
MPT_ADAPTER *ioc = pci_get_drvdata(to_pci_dev(dev));
|
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
|
||||||
struct Scsi_Host *host = ioc->sh;
|
struct Scsi_Host *host = ioc->sh;
|
||||||
MPT_SCSI_HOST *hd;
|
MPT_SCSI_HOST *hd;
|
||||||
|
|
||||||
|
@ -1054,7 +1054,7 @@ mptscsih_shutdown(struct device * dev)
|
||||||
int
|
int
|
||||||
mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
|
mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||||
{
|
{
|
||||||
mptscsih_shutdown(&pdev->dev);
|
mptscsih_shutdown(pdev);
|
||||||
return mpt_suspend(pdev,state);
|
return mpt_suspend(pdev,state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void mptscsih_remove(struct pci_dev *);
|
extern void mptscsih_remove(struct pci_dev *);
|
||||||
extern void mptscsih_shutdown(struct device *);
|
extern void mptscsih_shutdown(struct pci_dev *);
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
extern int mptscsih_suspend(struct pci_dev *pdev, u32 state);
|
extern int mptscsih_suspend(struct pci_dev *pdev, u32 state);
|
||||||
extern int mptscsih_resume(struct pci_dev *pdev);
|
extern int mptscsih_resume(struct pci_dev *pdev);
|
||||||
|
|
|
@ -419,9 +419,7 @@ static struct pci_driver mptspi_driver = {
|
||||||
.id_table = mptspi_pci_table,
|
.id_table = mptspi_pci_table,
|
||||||
.probe = mptspi_probe,
|
.probe = mptspi_probe,
|
||||||
.remove = __devexit_p(mptscsih_remove),
|
.remove = __devexit_p(mptscsih_remove),
|
||||||
.driver = {
|
.shutdown = mptscsih_shutdown,
|
||||||
.shutdown = mptscsih_shutdown,
|
|
||||||
},
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
.suspend = mptscsih_suspend,
|
.suspend = mptscsih_suspend,
|
||||||
.resume = mptscsih_resume,
|
.resume = mptscsih_resume,
|
||||||
|
|
|
@ -2440,9 +2440,8 @@ static int e100_resume(struct pci_dev *pdev)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void e100_shutdown(struct device *dev)
|
static void e100_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = container_of(dev, struct pci_dev, dev);
|
|
||||||
struct net_device *netdev = pci_get_drvdata(pdev);
|
struct net_device *netdev = pci_get_drvdata(pdev);
|
||||||
struct nic *nic = netdev_priv(netdev);
|
struct nic *nic = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -2463,11 +2462,7 @@ static struct pci_driver e100_driver = {
|
||||||
.suspend = e100_suspend,
|
.suspend = e100_suspend,
|
||||||
.resume = e100_resume,
|
.resume = e100_resume,
|
||||||
#endif
|
#endif
|
||||||
|
.shutdown = e100_shutdown,
|
||||||
.driver = {
|
|
||||||
.shutdown = e100_shutdown,
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init e100_init_module(void)
|
static int __init e100_init_module(void)
|
||||||
|
|
|
@ -507,7 +507,7 @@ static struct net_device_stats *rhine_get_stats(struct net_device *dev);
|
||||||
static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
|
static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
|
||||||
static struct ethtool_ops netdev_ethtool_ops;
|
static struct ethtool_ops netdev_ethtool_ops;
|
||||||
static int rhine_close(struct net_device *dev);
|
static int rhine_close(struct net_device *dev);
|
||||||
static void rhine_shutdown (struct device *gdev);
|
static void rhine_shutdown (struct pci_dev *pdev);
|
||||||
|
|
||||||
#define RHINE_WAIT_FOR(condition) do { \
|
#define RHINE_WAIT_FOR(condition) do { \
|
||||||
int i=1024; \
|
int i=1024; \
|
||||||
|
@ -1895,9 +1895,8 @@ static void __devexit rhine_remove_one(struct pci_dev *pdev)
|
||||||
pci_set_drvdata(pdev, NULL);
|
pci_set_drvdata(pdev, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rhine_shutdown (struct device *gendev)
|
static void rhine_shutdown (struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(gendev);
|
|
||||||
struct net_device *dev = pci_get_drvdata(pdev);
|
struct net_device *dev = pci_get_drvdata(pdev);
|
||||||
struct rhine_private *rp = netdev_priv(dev);
|
struct rhine_private *rp = netdev_priv(dev);
|
||||||
void __iomem *ioaddr = rp->base;
|
void __iomem *ioaddr = rp->base;
|
||||||
|
@ -1956,7 +1955,7 @@ static int rhine_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||||
pci_save_state(pdev);
|
pci_save_state(pdev);
|
||||||
|
|
||||||
spin_lock_irqsave(&rp->lock, flags);
|
spin_lock_irqsave(&rp->lock, flags);
|
||||||
rhine_shutdown(&pdev->dev);
|
rhine_shutdown(pdev);
|
||||||
spin_unlock_irqrestore(&rp->lock, flags);
|
spin_unlock_irqrestore(&rp->lock, flags);
|
||||||
|
|
||||||
free_irq(dev->irq, dev);
|
free_irq(dev->irq, dev);
|
||||||
|
@ -2010,9 +2009,7 @@ static struct pci_driver rhine_driver = {
|
||||||
.suspend = rhine_suspend,
|
.suspend = rhine_suspend,
|
||||||
.resume = rhine_resume,
|
.resume = rhine_resume,
|
||||||
#endif /* CONFIG_PM */
|
#endif /* CONFIG_PM */
|
||||||
.driver = {
|
.shutdown = rhine_shutdown,
|
||||||
.shutdown = rhine_shutdown,
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1916,9 +1916,9 @@ static void __twa_shutdown(TW_Device_Extension *tw_dev)
|
||||||
} /* End __twa_shutdown() */
|
} /* End __twa_shutdown() */
|
||||||
|
|
||||||
/* Wrapper for __twa_shutdown */
|
/* Wrapper for __twa_shutdown */
|
||||||
static void twa_shutdown(struct device *dev)
|
static void twa_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev));
|
struct Scsi_Host *host = pci_get_drvdata(pdev);
|
||||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
|
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
|
||||||
|
|
||||||
__twa_shutdown(tw_dev);
|
__twa_shutdown(tw_dev);
|
||||||
|
@ -2140,9 +2140,7 @@ static struct pci_driver twa_driver = {
|
||||||
.id_table = twa_pci_tbl,
|
.id_table = twa_pci_tbl,
|
||||||
.probe = twa_probe,
|
.probe = twa_probe,
|
||||||
.remove = twa_remove,
|
.remove = twa_remove,
|
||||||
.driver = {
|
.shutdown = twa_shutdown
|
||||||
.shutdown = twa_shutdown
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This function is called on driver initialization */
|
/* This function is called on driver initialization */
|
||||||
|
|
|
@ -2264,9 +2264,9 @@ static void __tw_shutdown(TW_Device_Extension *tw_dev)
|
||||||
} /* End __tw_shutdown() */
|
} /* End __tw_shutdown() */
|
||||||
|
|
||||||
/* Wrapper for __tw_shutdown */
|
/* Wrapper for __tw_shutdown */
|
||||||
static void tw_shutdown(struct device *dev)
|
static void tw_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev));
|
struct Scsi_Host *host = pci_get_drvdata(pdev);
|
||||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
|
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
|
||||||
|
|
||||||
__tw_shutdown(tw_dev);
|
__tw_shutdown(tw_dev);
|
||||||
|
@ -2451,9 +2451,7 @@ static struct pci_driver tw_driver = {
|
||||||
.id_table = tw_pci_tbl,
|
.id_table = tw_pci_tbl,
|
||||||
.probe = tw_probe,
|
.probe = tw_probe,
|
||||||
.remove = tw_remove,
|
.remove = tw_remove,
|
||||||
.driver = {
|
.shutdown = tw_shutdown,
|
||||||
.shutdown = tw_shutdown
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This function is called on driver initialization */
|
/* This function is called on driver initialization */
|
||||||
|
|
|
@ -6012,7 +6012,7 @@ static int __devinit ipr_probe(struct pci_dev *pdev,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ipr_shutdown - Shutdown handler.
|
* ipr_shutdown - Shutdown handler.
|
||||||
* @dev: device struct
|
* @pdev: pci device struct
|
||||||
*
|
*
|
||||||
* This function is invoked upon system shutdown/reboot. It will issue
|
* This function is invoked upon system shutdown/reboot. It will issue
|
||||||
* an adapter shutdown to the adapter to flush the write cache.
|
* an adapter shutdown to the adapter to flush the write cache.
|
||||||
|
@ -6020,9 +6020,9 @@ static int __devinit ipr_probe(struct pci_dev *pdev,
|
||||||
* Return value:
|
* Return value:
|
||||||
* none
|
* none
|
||||||
**/
|
**/
|
||||||
static void ipr_shutdown(struct device *dev)
|
static void ipr_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct ipr_ioa_cfg *ioa_cfg = pci_get_drvdata(to_pci_dev(dev));
|
struct ipr_ioa_cfg *ioa_cfg = pci_get_drvdata(pdev);
|
||||||
unsigned long lock_flags = 0;
|
unsigned long lock_flags = 0;
|
||||||
|
|
||||||
spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
|
spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
|
||||||
|
@ -6068,9 +6068,7 @@ static struct pci_driver ipr_driver = {
|
||||||
.id_table = ipr_pci_table,
|
.id_table = ipr_pci_table,
|
||||||
.probe = ipr_probe,
|
.probe = ipr_probe,
|
||||||
.remove = ipr_remove,
|
.remove = ipr_remove,
|
||||||
.driver = {
|
.shutdown = ipr_shutdown,
|
||||||
.shutdown = ipr_shutdown,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5036,9 +5036,9 @@ megaraid_remove_one(struct pci_dev *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
megaraid_shutdown(struct device *dev)
|
megaraid_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev));
|
struct Scsi_Host *host = pci_get_drvdata(pdev);
|
||||||
adapter_t *adapter = (adapter_t *)host->hostdata;
|
adapter_t *adapter = (adapter_t *)host->hostdata;
|
||||||
|
|
||||||
__megaraid_shutdown(adapter);
|
__megaraid_shutdown(adapter);
|
||||||
|
@ -5070,9 +5070,7 @@ static struct pci_driver megaraid_pci_driver = {
|
||||||
.id_table = megaraid_pci_tbl,
|
.id_table = megaraid_pci_tbl,
|
||||||
.probe = megaraid_probe_one,
|
.probe = megaraid_probe_one,
|
||||||
.remove = __devexit_p(megaraid_remove_one),
|
.remove = __devexit_p(megaraid_remove_one),
|
||||||
.driver = {
|
.shutdown = megaraid_shutdown,
|
||||||
.shutdown = megaraid_shutdown,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init megaraid_init(void)
|
static int __init megaraid_init(void)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче