Shut off pci_find_device warnings when the deprecated pci functions are enabled.
Subsystems (2)
PATCH 1/1 Shut off pci_find_device warnings when the deprecated pci functions are enabled.
Shut off pci_find_device warnings when the deprecated pci functions are enabled.
Shut off the long standing
linux/drivers/pci/search.c:144: warning: 'pci_find_device' is deprecated (declared at linux/drivers/pci/search.c:136) linux/drivers/pci/search.c:144: warning: 'pci_find_device' is deprecated (declared at linux/drivers/pci/search.c:136)
warnings that appear on every build when CONFIG_PCI_LEGACY is enabled.
gcc warns for the use in EXPORT_SYMBOL
I moved these to a separate file and disabled the warning in the Makefile for that file.
--- drivers/pci/Makefile | 3 +++ drivers/pci/legacy.c | 34 ++++++++++++++++++++++++++++++++++ drivers/pci/search.c | 31 ------------------------------- 3 files changed, 37 insertions(+), 31 deletions(-)
drivers/pci/Makefile +3 -0
@@ -8,6 +8,9 @@ obj-y += access.o bus.o probe.o remove. obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_SYSFS) += slot.o +obj-$(CONFIG_PCI_LEGACY) += legacy.o +CFLAGS_legacy.o += -Wno-deprecated-declarations + # Build PCI Express stuff if needed obj-$(CONFIG_PCIEPORTBUS) += pcie/
drivers/pci/legacy.c new file +34 -0
@@ -0,0 +1,34 @@ +#include <linux/init.h> +#include <linux/pci.h> +#include <linux/module.h> +#include <linux/interrupt.h> +#include "pci.h" + +/** +* pci_find_device - begin or continue searching for a PCI device by vendor/device id +* @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids +* @device: PCI device id to match, or %PCI_ANY_ID to match all device ids +* @from: Previous PCI device found in search, or %NULL for new search. +* +* Iterates through the list of known PCI devices. If a PCI device is found +* with a matching @vendor and @device, a pointer to its device structure is +* returned. Otherwise, %NULL is returned. +* A new search is initiated by passing %NULL as the @from argument. +* Otherwise if @from is not %NULL, searches continue from next device +* on the global list. +* +* NOTE: Do not use this function any more; use pci_get_device() instead, as +* the PCI device returned by this function can disappear at any moment in +* time. +*/ +struct pci_dev *pci_find_device (unsigned int vendor,unsigned int device, +struct pci_dev *from) +{ +struct pci_dev *pdev; + +pci_dev_get (from); + pdev =pci_get_subsys (vendor, device,PCI_ANY_ID ,PCI_ANY_ID , from); +pci_dev_put (pdev); +return pdev; +} +EXPORT_SYMBOL (pci_find_device);
drivers/pci/search.c +0 -31
@@ -113,37 +113,6 @@ pci_find_next_bus(const struct pci_bus *return b; } -#ifdef CONFIG_PCI_LEGACY -/** -* pci_find_device - begin or continue searching for a PCI device by vendor/device id -* @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids -* @device: PCI device id to match, or %PCI_ANY_ID to match all device ids -* @from: Previous PCI device found in search, or %NULL for new search. -* -* Iterates through the list of known PCI devices. If a PCI device is found -* with a matching @vendor and @device, a pointer to its device structure is -* returned. Otherwise, %NULL is returned. -* A new search is initiated by passing %NULL as the @from argument. -* Otherwise if @from is not %NULL, searches continue from next device -* on the global list. -* -* NOTE: Do not use this function any more; use pci_get_device() instead, as -* the PCI device returned by this function can disappear at any moment in -* time. -*/ -struct pci_dev *pci_find_device (unsigned int vendor,unsigned int device, -struct pci_dev *from) -{ -struct pci_dev *pdev; - -pci_dev_get (from); - pdev =pci_get_subsys (vendor, device,PCI_ANY_ID ,PCI_ANY_ID , from); -pci_dev_put (pdev); -return pdev; -} -EXPORT_SYMBOL (pci_find_device); -#endif /* CONFIG_PCI_LEGACY */ -/** * pci_get_slot - locate PCI device for a given PCI slot * @bus: PCI bus on which desired PCI device resides
Jesse Barnes
AppliedQuoted 10 lines · On Fri, 24 Jul 2009 11:41:15 +0200 Andi Kleen <[email protected]> wrote:
Shut off
pci_find_devicewarnings when the deprecated pci functions are enabled.Shut off the long standing
linux/drivers/pci/search.c:144: warning: 'pci_find_device' is deprecated (declared atlinux/drivers/pci/search.c:136)linux/drivers/pci/search.c:144: warning: 'pci_find_device' is deprecated (declared atlinux/drivers/pci/search.c:136)
Quoted 8 lines
warnings that appear on every build when
CONFIG_PCI_LEGACYis enabled.gcc warns for the use in
EXPORT_SYMBOLI moved these to a separate file and disabled the warning in the
Makefilefor that file.Signed-off-by Andi Kleen <[email protected]>
Applied to linux-next, thanks.
Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center
* Jesse Barnes <[email protected]>:
Quoted 15 lines
Quoted 12 lines · On Fri, 24 Jul 2009 11:41:15 +0200 Andi Kleen <[email protected]> wrote:
Shut off
pci_find_devicewarnings when the deprecated pci functions are enabled.Shut off the long standing
linux/drivers/pci/search.c:144: warning: 'pci_find_device' is deprecated (declared atlinux/drivers/pci/search.c:136)linux/drivers/pci/search.c:144: warning: 'pci_find_device' is deprecated (declared atlinux/drivers/pci/search.c:136)warnings that appear on every build when
CONFIG_PCI_LEGACYis enabled.
Quoted 8 lines
Quoted 6 lines
gcc warns for the use in
EXPORT_SYMBOLI moved these to a separate file and disabled the warning in the
Makefilefor that file.Signed-off-by Andi Kleen <[email protected]>Applied to linux-next, thanks.
Maybe it's too late now, but I thought those warnings were supposed to motivate people to convert old, buggy drivers to get off the deprecated interface.
That's what finally motivated me to get rid of pci_find_slot() earlier...
By the way, this would also be a perfect kernelnewbies/kernel janitor cleanup, as it would require actually digging into drivers and making real, substantial changes as opposed to whitespace/checkpatch/typo patches.
Just a thought.
/ac
Quoted 3 lines
Maybe it's too late now, but I thought those warnings were supposed to motivate people to convert old, buggy drivers to get off the deprecated interface.
Yes they are, but this warning instance was not for a old driver, but for the EXPORT_SYMBOL defining the legacy function.
If any driver uses it it'll still warn.
-Andi
Signature · 1 line
[email protected] -- Speaking for myself only.
* Andi Kleen <[email protected]>:
Quoted 8 lines
Quoted 3 lines
Maybe it's too late now, but I thought those warnings were supposed to motivate people to convert old, buggy drivers to get off the deprecated interface.
Yes they are, but this warning instance was not for a old driver, but for the
EXPORT_SYMBOLdefining the legacy function.If any driver uses it it'll still warn.
Ok, I've been corrected. :)
I still think it would be a good learning project for someone to audit the tree and see if they can eliminate the usages of pci_find_device().
Thanks,
/ac