mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
PCI: Add support for relative addressing in quirk tables
Allow the PCI quirk tables to be emitted in a way that avoids absolute references to the hook functions. This reduces the size of the entries, and, more importantly, makes them invariant under runtime relocation (e.g., for KASLR) Link: http://lkml.kernel.org/r/[email protected] Acked-by: Bjorn Helgaas <[email protected]> Acked-by: Michael Ellerman <[email protected]> Acked-by: Ingo Molnar <[email protected]> Signed-off-by: Ard Biesheuvel <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: James Morris <[email protected]> Cc: James Morris <[email protected]> Cc: Jessica Yu <[email protected]> Cc: Josh Poimboeuf <[email protected]> Cc: Kees Cook <[email protected]> Cc: Nicolas Pitre <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Petr Mladek <[email protected]> Cc: Russell King <[email protected]> Cc: "Serge E. Hallyn" <[email protected]> Cc: Sergey Senozhatsky <[email protected]> Cc: Steven Rostedt <[email protected]> Cc: Thomas Garnier <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
1b1eeca7e4
commit
c9d8b55fa0
2 changed files with 29 additions and 3 deletions
|
|
@ -66,9 +66,15 @@ static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
|
|||
f->vendor == (u16) PCI_ANY_ID) &&
|
||||
(f->device == dev->device ||
|
||||
f->device == (u16) PCI_ANY_ID)) {
|
||||
calltime = fixup_debug_start(dev, f->hook);
|
||||
f->hook(dev);
|
||||
fixup_debug_report(dev, calltime, f->hook);
|
||||
void (*hook)(struct pci_dev *dev);
|
||||
#ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
|
||||
hook = offset_to_ptr(&f->hook_offset);
|
||||
#else
|
||||
hook = f->hook;
|
||||
#endif
|
||||
calltime = fixup_debug_start(dev, hook);
|
||||
hook(dev);
|
||||
fixup_debug_report(dev, calltime, hook);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue