Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Fri, Dec 21, 2007 at 04:32:11PM +1100, Benjamin Herrenschmidt wrote: > > On Thu, 2007-12-20 at 21:11 -0800, Greg KH wrote: > > On Fri, Dec 21, 2007 at 03:47:28PM +1100, Benjamin Herrenschmidt wrote: > > > pci: Remove pci_enable_device_bars() fix for qla > > > > > > The previous patch missed one occurence of pci_enable_device_bars() > > > in the qla2xxx driver. This fixes it. > > > > Should I just merge this with your 2/3 patch so everything is sane? > > Sure. Ok, now merged and pushed out, thanks. greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Fri, Dec 21, 2007 at 04:32:11PM +1100, Benjamin Herrenschmidt wrote: On Thu, 2007-12-20 at 21:11 -0800, Greg KH wrote: On Fri, Dec 21, 2007 at 03:47:28PM +1100, Benjamin Herrenschmidt wrote: pci: Remove pci_enable_device_bars() fix for qla The previous patch missed one occurence of pci_enable_device_bars() in the qla2xxx driver. This fixes it. Should I just merge this with your 2/3 patch so everything is sane? Sure. Ok, now merged and pushed out, thanks. greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Thu, 2007-12-20 at 21:11 -0800, Greg KH wrote: > On Fri, Dec 21, 2007 at 03:47:28PM +1100, Benjamin Herrenschmidt wrote: > > pci: Remove pci_enable_device_bars() fix for qla > > > > The previous patch missed one occurence of pci_enable_device_bars() > > in the qla2xxx driver. This fixes it. > > Should I just merge this with your 2/3 patch so everything is sane? Sure. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Fri, Dec 21, 2007 at 03:47:28PM +1100, Benjamin Herrenschmidt wrote: > pci: Remove pci_enable_device_bars() fix for qla > > The previous patch missed one occurence of pci_enable_device_bars() > in the qla2xxx driver. This fixes it. Should I just merge this with your 2/3 patch so everything is sane? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
pci: Remove pci_enable_device_bars() fix for qla The previous patch missed one occurence of pci_enable_device_bars() in the qla2xxx driver. This fixes it. Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> --- Index: linux-merge/drivers/scsi/qla2xxx/qla_def.h === --- linux-merge.orig/drivers/scsi/qla2xxx/qla_def.h 2007-12-21 15:45:41.0 +1100 +++ linux-merge/drivers/scsi/qla2xxx/qla_def.h 2007-12-21 15:46:12.0 +1100 @@ -2272,6 +2272,7 @@ typedef struct scsi_qla_host { spinlock_t hardware_lock cacheline_aligned; int bars; + int mem_only; device_reg_t __iomem *iobase; /* Base I/O address */ unsigned long pio_address; unsigned long pio_length; Index: linux-merge/drivers/scsi/qla2xxx/qla_os.c === --- linux-merge.orig/drivers/scsi/qla2xxx/qla_os.c 2007-12-21 15:46:10.0 +1100 +++ linux-merge/drivers/scsi/qla2xxx/qla_os.c 2007-12-21 15:46:12.0 +1100 @@ -1626,6 +1626,7 @@ qla2x00_probe_one(struct pci_dev *pdev, sprintf(ha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, ha->host_no); ha->parent = NULL; ha->bars = bars; + ha->mem_only = mem_only; /* Set ISP-type information. */ qla2x00_set_isp_flags(ha); @@ -2905,8 +2906,14 @@ qla2xxx_pci_slot_reset(struct pci_dev *p { pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT; scsi_qla_host_t *ha = pci_get_drvdata(pdev); + int rc; - if (pci_enable_device_bars(pdev, ha->bars)) { + if (ha->mem_only) + rc = pci_enable_device_mem(pdev); + else + rc = pci_enable_device(pdev); + + if (rc) { qla_printk(KERN_WARNING, ha, "Can't re-enable PCI device after reset.\n"); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Thu, 2007-12-20 at 20:28 -0800, Greg KH wrote: > On Thu, Dec 20, 2007 at 03:28:10PM +1100, Benjamin Herrenschmidt wrote: > > Now that all in-tree users are gone, this removes pci_enable_device_bars() > > completely. > > Hm, looks like you missed drivers/scsi/qla2xxx/qla_os.c > > Quick, before akpm gets mad at you for breaking the build, send me a > patch! :) Argh... there was 2 users in that file and I fixed only one... Followup patch in a blink. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Thu, Dec 20, 2007 at 03:28:10PM +1100, Benjamin Herrenschmidt wrote: > Now that all in-tree users are gone, this removes pci_enable_device_bars() > completely. Hm, looks like you missed drivers/scsi/qla2xxx/qla_os.c Quick, before akpm gets mad at you for breaking the build, send me a patch! :) thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Thu, Dec 20, 2007 at 03:28:10PM +1100, Benjamin Herrenschmidt wrote: Now that all in-tree users are gone, this removes pci_enable_device_bars() completely. Hm, looks like you missed drivers/scsi/qla2xxx/qla_os.c Quick, before akpm gets mad at you for breaking the build, send me a patch! :) thanks, greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Thu, 2007-12-20 at 20:28 -0800, Greg KH wrote: On Thu, Dec 20, 2007 at 03:28:10PM +1100, Benjamin Herrenschmidt wrote: Now that all in-tree users are gone, this removes pci_enable_device_bars() completely. Hm, looks like you missed drivers/scsi/qla2xxx/qla_os.c Quick, before akpm gets mad at you for breaking the build, send me a patch! :) Argh... there was 2 users in that file and I fixed only one... Followup patch in a blink. Cheers, Ben. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
pci: Remove pci_enable_device_bars() fix for qla The previous patch missed one occurence of pci_enable_device_bars() in the qla2xxx driver. This fixes it. Signed-off-by: Benjamin Herrenschmidt [EMAIL PROTECTED] --- Index: linux-merge/drivers/scsi/qla2xxx/qla_def.h === --- linux-merge.orig/drivers/scsi/qla2xxx/qla_def.h 2007-12-21 15:45:41.0 +1100 +++ linux-merge/drivers/scsi/qla2xxx/qla_def.h 2007-12-21 15:46:12.0 +1100 @@ -2272,6 +2272,7 @@ typedef struct scsi_qla_host { spinlock_t hardware_lock cacheline_aligned; int bars; + int mem_only; device_reg_t __iomem *iobase; /* Base I/O address */ unsigned long pio_address; unsigned long pio_length; Index: linux-merge/drivers/scsi/qla2xxx/qla_os.c === --- linux-merge.orig/drivers/scsi/qla2xxx/qla_os.c 2007-12-21 15:46:10.0 +1100 +++ linux-merge/drivers/scsi/qla2xxx/qla_os.c 2007-12-21 15:46:12.0 +1100 @@ -1626,6 +1626,7 @@ qla2x00_probe_one(struct pci_dev *pdev, sprintf(ha-host_str, %s_%ld, QLA2XXX_DRIVER_NAME, ha-host_no); ha-parent = NULL; ha-bars = bars; + ha-mem_only = mem_only; /* Set ISP-type information. */ qla2x00_set_isp_flags(ha); @@ -2905,8 +2906,14 @@ qla2xxx_pci_slot_reset(struct pci_dev *p { pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT; scsi_qla_host_t *ha = pci_get_drvdata(pdev); + int rc; - if (pci_enable_device_bars(pdev, ha-bars)) { + if (ha-mem_only) + rc = pci_enable_device_mem(pdev); + else + rc = pci_enable_device(pdev); + + if (rc) { qla_printk(KERN_WARNING, ha, Can't re-enable PCI device after reset.\n); -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Fri, Dec 21, 2007 at 03:47:28PM +1100, Benjamin Herrenschmidt wrote: pci: Remove pci_enable_device_bars() fix for qla The previous patch missed one occurence of pci_enable_device_bars() in the qla2xxx driver. This fixes it. Should I just merge this with your 2/3 patch so everything is sane? thanks, greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] pci: Remove pci_enable_device_bars()
On Thu, 2007-12-20 at 21:11 -0800, Greg KH wrote: On Fri, Dec 21, 2007 at 03:47:28PM +1100, Benjamin Herrenschmidt wrote: pci: Remove pci_enable_device_bars() fix for qla The previous patch missed one occurence of pci_enable_device_bars() in the qla2xxx driver. This fixes it. Should I just merge this with your 2/3 patch so everything is sane? Sure. Cheers, Ben. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 3/3] pci: Remove pci_enable_device_bars()
Now that all in-tree users are gone, this removes pci_enable_device_bars() completely. Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> --- drivers/pci/pci.c | 24 include/linux/pci.h |1 - 2 files changed, 25 deletions(-) --- linux-work.orig/drivers/pci/pci.c 2007-12-18 11:01:20.0 +1100 +++ linux-work/drivers/pci/pci.c2007-12-18 11:01:28.0 +1100 @@ -713,29 +713,6 @@ int pci_reenable_device(struct pci_dev * return 0; } -/** - * pci_enable_device_bars - Initialize some of a device for use - * @dev: PCI device to be initialized - * @bars: bitmask of BAR's that must be configured - * - * Initialize device before it's used by a driver. Ask low-level code - * to enable selected I/O and memory resources. Wake up the device if it - * was suspended. Beware, this function can fail. - */ -int -pci_enable_device_bars(struct pci_dev *dev, int bars) -{ - int err; - - if (atomic_add_return(1, >enable_cnt) > 1) - return 0; /* already enabled */ - - err = do_pci_enable_device(dev, bars); - if (err < 0) - atomic_dec(>enable_cnt); - return err; -} - static int __pci_enable_device_flags(struct pci_dev *dev, resource_size_t flags) { @@ -1665,7 +1642,6 @@ device_initcall(pci_init); EXPORT_SYMBOL_GPL(pci_restore_bars); EXPORT_SYMBOL(pci_reenable_device); -EXPORT_SYMBOL(pci_enable_device_bars); EXPORT_SYMBOL(pci_enable_device_io); EXPORT_SYMBOL(pci_enable_device_mem); EXPORT_SYMBOL(pci_enable_device); Index: linux-work/include/linux/pci.h === --- linux-work.orig/include/linux/pci.h 2007-12-18 11:00:33.0 +1100 +++ linux-work/include/linux/pci.h 2007-12-18 11:01:28.0 +1100 @@ -547,7 +547,6 @@ static inline int pci_write_config_dword } int __must_check pci_enable_device(struct pci_dev *dev); -int __must_check pci_enable_device_bars(struct pci_dev *dev, int mask); int __must_check pci_enable_device_io(struct pci_dev *dev); int __must_check pci_enable_device_mem(struct pci_dev *dev); int __must_check pci_reenable_device(struct pci_dev *); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 3/3] pci: Remove pci_enable_device_bars()
Now that all in-tree users are gone, this removes pci_enable_device_bars() completely. Signed-off-by: Benjamin Herrenschmidt [EMAIL PROTECTED] --- drivers/pci/pci.c | 24 include/linux/pci.h |1 - 2 files changed, 25 deletions(-) --- linux-work.orig/drivers/pci/pci.c 2007-12-18 11:01:20.0 +1100 +++ linux-work/drivers/pci/pci.c2007-12-18 11:01:28.0 +1100 @@ -713,29 +713,6 @@ int pci_reenable_device(struct pci_dev * return 0; } -/** - * pci_enable_device_bars - Initialize some of a device for use - * @dev: PCI device to be initialized - * @bars: bitmask of BAR's that must be configured - * - * Initialize device before it's used by a driver. Ask low-level code - * to enable selected I/O and memory resources. Wake up the device if it - * was suspended. Beware, this function can fail. - */ -int -pci_enable_device_bars(struct pci_dev *dev, int bars) -{ - int err; - - if (atomic_add_return(1, dev-enable_cnt) 1) - return 0; /* already enabled */ - - err = do_pci_enable_device(dev, bars); - if (err 0) - atomic_dec(dev-enable_cnt); - return err; -} - static int __pci_enable_device_flags(struct pci_dev *dev, resource_size_t flags) { @@ -1665,7 +1642,6 @@ device_initcall(pci_init); EXPORT_SYMBOL_GPL(pci_restore_bars); EXPORT_SYMBOL(pci_reenable_device); -EXPORT_SYMBOL(pci_enable_device_bars); EXPORT_SYMBOL(pci_enable_device_io); EXPORT_SYMBOL(pci_enable_device_mem); EXPORT_SYMBOL(pci_enable_device); Index: linux-work/include/linux/pci.h === --- linux-work.orig/include/linux/pci.h 2007-12-18 11:00:33.0 +1100 +++ linux-work/include/linux/pci.h 2007-12-18 11:01:28.0 +1100 @@ -547,7 +547,6 @@ static inline int pci_write_config_dword } int __must_check pci_enable_device(struct pci_dev *dev); -int __must_check pci_enable_device_bars(struct pci_dev *dev, int mask); int __must_check pci_enable_device_io(struct pci_dev *dev); int __must_check pci_enable_device_mem(struct pci_dev *dev); int __must_check pci_reenable_device(struct pci_dev *); -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/