diff options
Diffstat (limited to 'scripts/mod/modpost.c')
| -rw-r--r-- | scripts/mod/modpost.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 2aa47623f5f8..569e68410d7a 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c | |||
| @@ -641,12 +641,20 @@ static int secref_whitelist(const char *modname, const char *tosec, | |||
| 641 | if (f1 && f2) | 641 | if (f1 && f2) |
| 642 | return 1; | 642 | return 1; |
| 643 | 643 | ||
| 644 | /* Whitelist all references from .pci_fixup section if vmlinux */ | 644 | /* Whitelist all references from .pci_fixup section if vmlinux |
| 645 | * Whitelist all refereces from .text.head to .init.data if vmlinux | ||
| 646 | * Whitelist all refereces from .text.head to .init.text if vmlinux | ||
| 647 | */ | ||
| 645 | if (is_vmlinux(modname)) { | 648 | if (is_vmlinux(modname)) { |
| 646 | if ((strcmp(fromsec, ".pci_fixup") == 0) && | 649 | if ((strcmp(fromsec, ".pci_fixup") == 0) && |
| 647 | (strcmp(tosec, ".init.text") == 0)) | 650 | (strcmp(tosec, ".init.text") == 0)) |
| 648 | return 1; | 651 | return 1; |
| 649 | 652 | ||
| 653 | if ((strcmp(fromsec, ".text.head") == 0) && | ||
| 654 | ((strcmp(tosec, ".init.data") == 0) || | ||
| 655 | (strcmp(tosec, ".init.text") == 0))) | ||
| 656 | return 1; | ||
| 657 | |||
| 650 | /* Check for pattern 3 */ | 658 | /* Check for pattern 3 */ |
| 651 | for (s = pat3refsym; *s; s++) | 659 | for (s = pat3refsym; *s; s++) |
| 652 | if (strcmp(refsymname, *s) == 0) | 660 | if (strcmp(refsymname, *s) == 0) |
