On Fri, May 4, 2012 at 3:55 AM, John Crispin <blogic@xxxxxxxxxxx> wrote: > Hi David, > >> The problem is when you start declaring function pointers in various >> ops vectors. >> >> Consider: >> >> void (*foo)(const struct pci_dev *) >> void (*bar)(struct pci_dev *) >> >> foo and bar are not type compatible, and you will get compiler >> warnings if you use one where the other is expected. Oh, right. I vaguely remember tripping over this a few years ago when I refactored pci_swizzle_interrupt_pin(). Thanks for enhancing my simple understanding. >> So the question is: Are we ever going to the address of any of the >> functions that are being modified? If so, we have created a problem. > > i could not find any place in the code where this happens, which does > not mean that there are none. I compiled alpha, ia64, mips, parisc, powerpc, sh, sparc, and x86 and didn't see any issues related to this patch. There might still be something, but I'm willing to help work through them or revert this if it turns out to be a problem. I'm still assuming that Grant will handle this. Bjorn