PCI: 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 --> Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6bae1d96c6
commit
6a9e7f2031
@@ -25,6 +25,51 @@
|
|||||||
|
|
||||||
static int pci_msi_enable = 1;
|
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)
|
static void msi_set_enable(struct pci_dev *dev, int enable)
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
@@ -682,49 +727,3 @@ void pci_msi_init_pci_dev(struct pci_dev *dev)
|
|||||||
{
|
{
|
||||||
INIT_LIST_HEAD(&dev->msi_list);
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user