Skip to contentSkip to conversation

pci: Remove pci_enable_device_bars()

PATCH Applied Benjamin Herrenschmidt 3 participants 8 messages Dec 20, 2007 – Dec 21, 2007

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 3/3 pci: Remove pci_enable_device_bars()

Now that all in-tree users are gone, this removes pci_enable_device_bars() completely.

---

 drivers/pci/pci.c   |   24 ------------------------
 include/linux/pci.h |    1 -
 2 files changed, 25 deletions(-)
drivers/pci/pci.c +0 -24
@@ -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);
include/linux/pci.h +0 -1
Index: linux-work/include/linux/pci.h
===================================================================
@@ -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 *);
#1 lore raw

patch pci-remove-pci_enable_device_bars.patch added to gregkh-2.6 tree

This is a note to let you know that I've just added the patch titled

Subject: PCI: Remove pci_enable_device_bars()

to my gregkh-2.6 tree. Its filename is

pci-remove-pci_enable_device_bars.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Wed Dec 19 20:30:57 2007

From: Benjamin Herrenschmidt <[email protected]>
Date: Thu, 20 Dec 2007 15:28:10 +1100
Subject: PCI: Remove pci_enable_device_bars()
To: Greg Kroah-Hartman <[email protected]>
Cc: [email protected], <[email protected]>, <[email protected]>, Alan Cox <[email protected]>, <[email protected]>, <[email protected]>, Bartlomiej Zolnierkiewicz <[email protected]>
Message-ID: <[email protected]>

Now that all in-tree users are gone, this removes pci_enable_device_bars() completely.

---
 drivers/pci/pci.c   |   24 ------------------------
 include/linux/pci.h |    1 -
 2 files changed, 25 deletions(-)
drivers/pci/pci.c +0 -24
@@ -741,29 +741,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)
 {
@@ -1695,7 +1672,6 @@ early_param("pci", pci_setup);
 device_initcall(pci_init);
 
 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);
include/linux/pci.h +0 -1
@@ -543,7 +543,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 *);

Patches currently in gregkh-2.6 which might be from [email protected] are

bad/battery-class-driver.patch driver/adb-convert-from-class_device-to-device.patch driver/kobject-convert-hvc_console-to-use-kref-not-kobject.patch driver/kobject-convert-hvcs-to-use-kref-not-kobject.patch driver/kobject-convert-icom-to-use-kref-not-kobject.patch pci/pci-fix-bus-resource-assignment-on-32-bits-with-64b-resources.patch pci/pci-fix-warning-in-setup-res.c-on-32-bit-platforms-with-64-bit-resources.patch pci/pci-add-pci_enable_device_-io-mem-intefaces.patch pci/pci-remove-pci_enable_device_bars.patch pci/pci-remove-users-of-pci_enable_device_bars.patch usb/usb-remove-ohci-useless-masking-unmasking-of-wdh-interrupt.patch

#2 lore raw
In reply to Benjamin Herrenschmidt
Quoted 2 lines · Benjamin Herrenschmidt

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

#3 lore raw
Quoted 8 lines · Greg KH
Quoted 2 lines · Benjamin Herrenschmidt

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.

#4 lore raw
In reply to Greg KH

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.

---

drivers/scsi/qla2xxx/qla_def.h +1 -0
Index: linux-merge/drivers/scsi/qla2xxx/qla_def.h
===================================================================
@@ -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;
drivers/scsi/qla2xxx/qla_os.c +8 -1
Index: linux-merge/drivers/scsi/qla2xxx/qla_os.c
===================================================================
@@ -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");
 
#5 lore raw
Quoted 4 lines · Benjamin Herrenschmidt

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

#6 lore raw
Quoted 7 lines · Greg KH
Quoted 4 lines · Benjamin Herrenschmidt

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.

#7 lore raw
Quoted 11 lines · Benjamin Herrenschmidt
Quoted 7 lines · Greg KH
Quoted 4 lines · Benjamin Herrenschmidt

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