aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mod/modpost.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mod/modpost.c')
-rw-r--r--scripts/mod/modpost.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 4ab36de45aa2..480e18b00aa6 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -642,6 +642,16 @@ static int strrcmp(const char *s, const char *sub)
642 * tosec = .init.text 642 * tosec = .init.text
643 * fromsec = .paravirtprobe 643 * fromsec = .paravirtprobe
644 * 644 *
645 * Pattern 9:
646 * Some of functions are common code between boot time and hotplug
647 * time. The bootmem allocater is called only boot time in its
648 * functions. So it's ok to reference.
649 * tosec = .init.text
650 *
651 * Pattern 10:
652 * ia64 has machvec table for each platform. It is mixture of function
653 * pointer of .init.text and .text.
654 * fromsec = .machvec
645 **/ 655 **/
646static int secref_whitelist(const char *modname, const char *tosec, 656static int secref_whitelist(const char *modname, const char *tosec,
647 const char *fromsec, const char *atsym, 657 const char *fromsec, const char *atsym,
@@ -668,6 +678,12 @@ static int secref_whitelist(const char *modname, const char *tosec,
668 NULL 678 NULL
669 }; 679 };
670 680
681 const char *pat4sym[] = {
682 "sparse_index_alloc",
683 "zone_wait_table_init",
684 NULL
685 };
686
671 /* Check for pattern 1 */ 687 /* Check for pattern 1 */
672 if (strcmp(tosec, ".init.data") != 0) 688 if (strcmp(tosec, ".init.data") != 0)
673 f1 = 0; 689 f1 = 0;
@@ -726,6 +742,17 @@ static int secref_whitelist(const char *modname, const char *tosec,
726 (strcmp(fromsec, ".paravirtprobe") == 0)) 742 (strcmp(fromsec, ".paravirtprobe") == 0))
727 return 1; 743 return 1;
728 744
745 /* Check for pattern 9 */
746 if ((strcmp(tosec, ".init.text") == 0) &&
747 (strcmp(fromsec, ".text") == 0))
748 for (s = pat4sym; *s; s++)
749 if (strcmp(atsym, *s) == 0)
750 return 1;
751
752 /* Check for pattern 10 */
753 if (strcmp(fromsec, ".machvec") == 0)
754 return 1;
755
729 return 0; 756 return 0;
730} 757}
731 758