Re: [PATCH] MIPS: Squash pci_fixup_irqs() compiler warning

From: David Daney
Date: Mon Apr 18 2011 - 13:28:11 EST


On 04/17/2011 12:01 PM, Kevin Cernekee wrote:
MIPS Linux is unique in that it uses a "const struct pci_dev *" argument
to discourage bad coding practices in pcibios_map_irq(). Add a cast so
that this warning goes away:

arch/mips/pci/pci.c: In function 'pcibios_init':
arch/mips/pci/pci.c:165:45: warning: passing argument 2 of 'pci_fixup_irqs' from incompatible pointer type
include/linux/pci.h:856:6: note: expected 'int (*)(struct pci_dev *, u8, u8)' but argument is of type 'struct pci_dev *'

Signed-off-by: Kevin Cernekee<cernekee@xxxxxxxxx>
---

Reference:

http://www.mail-archive.com/gnewsense-dev@xxxxxxxxxx/msg00706.html

It's been two years since the original discussion, and the warning is
still there. It is now the only warning left in my kernel build.

I was hoping we could get this resolved for good (one way or another).

arch/mips/pci/pci.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index 33bba7b..9a35cd6 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -157,7 +157,8 @@ static int __init pcibios_init(void)
for (hose = hose_head; hose; hose = hose->next)
pcibios_scanbus(hose);

- pci_fixup_irqs(pci_common_swizzle, pcibios_map_irq);
+ pci_fixup_irqs(pci_common_swizzle,
+ (int (*)(struct pci_dev *, u8, u8))pcibios_map_irq);


NAK.

I think Ralf's idea in the e-mail you referenced is the proper approach.

Change pci_fixup_irqs(...) to take a 'const struct pci_dev *' instead. There is a lot of work going on in the kernel to constify things. This should be fairly easy to get accepted.

The alternative is to change all the pcibios_map_irq to match what is expected by pci_fixup_irqs().

David Daney


pci_initialized = 1;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/