drivers/pci/msi.c: move arch hooks to the top
PATCH 1/1 drivers/pci/msi.c: move arch hooks to the top
This patch fixes the following problem present with older gcc versions:
<-- snip -->
...
CC drivers/pci/msi.o/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:692: warning: weak declaration of arch_msi_check_device' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:704: warning: weak declaration of arch_setup_msi_irqs' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:724: warning: weak declaration of `arch_teardown_msi_irqs' after first use results in unspecified behavior
...
<-- snip -->
---
drivers/pci/msi.c | 91 ++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 46 deletions(-)
6b61f9979425bec016aefdddfd415f6fa5240b67
drivers/pci/msi.c +45 -46
@@ -25,6 +25,51 @@static int pci_msi_enable =1 ; +/* Arch hooks */ + +int __attribute__ ((weak)) +arch_msi_check_device (struct pci_dev *dev,int nvec,int type) +{ +return 0 ; +} + +int __attribute__ ((weak)) +arch_setup_msi_irq (struct pci_dev *dev,struct msi_desc *entry) +{ +return 0 ; +} + +int __attribute__ ((weak)) +arch_setup_msi_irqs (struct pci_dev *dev,int nvec,int type) +{ +struct msi_desc *entry; +int ret; + +list_for_each_entry (entry, &dev->msi_list, list) { + ret =arch_setup_msi_irq (dev, entry); +if (ret) +return ret; + } + +return 0 ; +} + +void __attribute__ ((weak))arch_teardown_msi_irq (unsigned int irq) +{ +return ; +} + +void __attribute__ ((weak)) +arch_teardown_msi_irqs (struct pci_dev *dev) +{ +struct msi_desc *entry; + +list_for_each_entry (entry, &dev->msi_list, list) { +if (entry->irq !=0 ) +arch_teardown_msi_irq (entry->irq); + } +} +static void msi_set_enable (struct pci_dev *dev,int enable) {int pos;
@@ -683,49 +728,3 @@ void pci_msi_init_pci_dev(struct pci_dev *dev) {INIT_LIST_HEAD (&dev->msi_list); } - - -/* Arch hooks */ - -int __attribute__ ((weak)) -arch_msi_check_device (struct pci_dev * dev,int nvec,int type) -{ -return 0 ; -} - -int __attribute__ ((weak)) -arch_setup_msi_irq (struct pci_dev *dev,struct msi_desc *entry) -{ -return 0 ; -} - -int __attribute__ ((weak)) -arch_setup_msi_irqs (struct pci_dev *dev,int nvec,int type) -{ -struct msi_desc *entry; -int ret; - -list_for_each_entry (entry, &dev->msi_list, list) { - ret =arch_setup_msi_irq (dev, entry); -if (ret) -return ret; - } - -return 0 ; -} - -void __attribute__ ((weak))arch_teardown_msi_irq (unsigned int irq) -{ -return ; -} - -void __attribute__ ((weak)) -arch_teardown_msi_irqs (struct pci_dev *dev) -{ -struct msi_desc *entry; - -list_for_each_entry (entry, &dev->msi_list, list) { -if (entry->irq !=0 ) -arch_teardown_msi_irq (entry->irq); - } -}
Quoted 4 lines · Adrian Bunk
This patch fixes the following problem present with older gcc versions:
<-- snip -->
Quoted 8 lines
...
CCdrivers/pci/msi.o/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:692: warning: weak declaration ofarch_msi_check_device' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:704: warning: weak declaration ofarch_setup_msi_irqs' after first use results in unspecified behavior/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:724: warning: weak declaration of `arch_teardown_msi_irqs' after first use results in unspecified behavior
...<-- snip -->
They're declared in <linux/msi.h>, I don't see what it's problem is.
cheers
Signature · 8 lines
Michael Ellerman OzLabs, IBM Australia Development Lab wwweb: http://michael.ellerman.id.au phone: +61 2 6212 1183 (tie line 70 21183) We do not inherit the earth from our ancestors, we borrow it from our children. - S.M.A.R.T Person
Quoted 12 lines · Michael Ellerman
Quoted 11 lines · Adrian Bunk
This patch fixes the following problem present with older gcc versions:
<-- snip -->
...
CCdrivers/pci/msi.o/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:692: warning: weak declaration ofarch_msi_check_device' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:704: warning: weak declaration ofarch_setup_msi_irqs' after first use results in unspecified behavior/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:724: warning: weak declaration of `arch_teardown_msi_irqs' after first use results in unspecified behavior
...
Quoted 3 lines
Quoted 1 line
<-- snip -->
They're declared in <
linux/msi.h>, I don't see what it's problem is.
Older gcc versions don't like that they cannot see that they are weak functions at the time when they are used.
I'm not sure whether the generated code does the right thing, but even if it does rearranging the code doesn't do any harm here.
Quoted 1 line
cheers
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedQuoted 15 lines · Adrian Bunk
Quoted 14 lines · Michael Ellerman
Quoted 12 lines · Adrian Bunk
This patch fixes the following problem present with older gcc versions:
<-- snip -->
...
CCdrivers/pci/msi.o/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:692: warning: weak declaration ofarch_msi_check_device' after first use results in unspecified behavior /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:704: warning: weak declaration ofarch_setup_msi_irqs' after first use results in unspecified behavior/home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/pci/msi.c:724: warning: weak declaration of `arch_teardown_msi_irqs' after first use results in unspecified behavior
...<-- snip -->
Quoted 7 lines
Quoted 1 line
They're declared in <
linux/msi.h>, I don't see what it's problem is.Older gcc versions don't like that they cannot see that they are weak functions at the time when they are used.
I'm not sure whether the generated code does the right thing, but even if it does rearranging the code doesn't do any harm here.
Sure.
Signature · 8 lines
Michael Ellerman OzLabs, IBM Australia Development Lab wwweb: http://michael.ellerman.id.au phone: +61 2 6212 1183 (tie line 70 21183) We do not inherit the earth from our ancestors, we borrow it from our children. - S.M.A.R.T Person