[kernel] fix usage of smp_call_function
[openwrt.git] / target / linux / generic-2.6 / patches-2.6.30 / 028-module_exports.patch
index ec037b3..725f3dc 100644 (file)
@@ -1,25 +1,34 @@
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
-@@ -4,6 +4,18 @@
+@@ -4,6 +4,27 @@
  #define LOAD_OFFSET 0
  #endif
  
 +#ifndef SYMTAB_KEEP_STR
 +#define SYMTAB_KEEP_STR *(__ksymtab_strings.*)
  #define LOAD_OFFSET 0
  #endif
  
 +#ifndef SYMTAB_KEEP_STR
 +#define SYMTAB_KEEP_STR *(__ksymtab_strings.*)
++#define SYMTAB_DISCARD_STR
++#else
++#define SYMTAB_DISCARD_STR *(__ksymtab_strings.*)
 +#endif
 +
 +#ifndef SYMTAB_KEEP
 +#define SYMTAB_KEEP *(__ksymtab.*)
 +#endif
 +
 +#ifndef SYMTAB_KEEP
 +#define SYMTAB_KEEP *(__ksymtab.*)
++#define SYMTAB_DISCARD
++#else
++#define SYMTAB_DISCARD *(__ksymtab.*)
 +#endif
 +
 +#ifndef SYMTAB_KEEP_GPL
 +#define SYMTAB_KEEP_GPL *(__ksymtab_gpl.*)
 +#endif
 +
 +#ifndef SYMTAB_KEEP_GPL
 +#define SYMTAB_KEEP_GPL *(__ksymtab_gpl.*)
++#define SYMTAB_DISCARD_GPL
++#else
++#define SYMTAB_DISCARD_GPL *(__ksymtab_gpl.*)
 +#endif
 +
  #ifndef VMLINUX_SYMBOL
  #define VMLINUX_SYMBOL(_sym_) _sym_
  #endif
 +#endif
 +
  #ifndef VMLINUX_SYMBOL
  #define VMLINUX_SYMBOL(_sym_) _sym_
  #endif
-@@ -176,35 +188,35 @@
+@@ -176,35 +197,35 @@
        /* Kernel symbol table: Normal symbols */                       \
        __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \
                VMLINUX_SYMBOL(__start___ksymtab) = .;                  \
        /* Kernel symbol table: Normal symbols */                       \
        __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \
                VMLINUX_SYMBOL(__start___ksymtab) = .;                  \
@@ -60,7 +69,7 @@
                VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .;        \
        }                                                               \
                                                                        \
                VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .;        \
        }                                                               \
                                                                        \
-@@ -245,7 +257,13 @@
+@@ -245,7 +266,13 @@
                                                                        \
        /* Kernel symbol table: strings */                              \
          __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {       \
                                                                        \
        /* Kernel symbol table: strings */                              \
          __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {       \
@@ -69,9 +78,9 @@
 +      }                                                               \
 +                                                                      \
 +      /DISCARD/ : {                                                   \
 +      }                                                               \
 +                                                                      \
 +      /DISCARD/ : {                                                   \
-+              *(__ksymtab.*)                                          \
-+              *(__ksymtab_gpl.*)                                      \
-+              *(__ksymtab_strings.*)                                  \
++              SYMTAB_DISCARD                                          \
++              SYMTAB_DISCARD_GPL                                      \
++              SYMTAB_DISCARD_STR                                      \
        }                                                               \
                                                                        \
        /* __*init sections */                                          \
        }                                                               \
                                                                        \
        /* __*init sections */                                          \
  
  # The asm symlink changes when $(ARCH) changes.
  # Detect this and ask user to run make mrproper
  
  # The asm symlink changes when $(ARCH) changes.
  # Detect this and ask user to run make mrproper
+--- a/arch/arm/kernel/vmlinux.lds.S
++++ b/arch/arm/kernel/vmlinux.lds.S
+@@ -78,18 +78,6 @@ SECTIONS
+ #endif
+       }
+-      /DISCARD/ : {                   /* Exit code and data           */
+-              EXIT_TEXT
+-              EXIT_DATA
+-              *(.exitcall.exit)
+-              *(.ARM.exidx.exit.text)
+-              *(.ARM.extab.exit.text)
+-#ifndef CONFIG_MMU
+-              *(.fixup)
+-              *(__ex_table)
+-#endif
+-      }
+-
+       .text : {                       /* Real text segment            */
+               _text = .;              /* Text and read-only data      */
+                       __exception_text_start = .;
+@@ -194,6 +182,20 @@ SECTIONS
+               *(COMMON)
+               _end = .;
+       }
++
++      /DISCARD/ : {                   /* Exit code and data           */
++              EXIT_TEXT
++              EXIT_DATA
++              *(.discard)
++              *(.exitcall.exit)
++              *(.ARM.exidx.exit.text)
++              *(.ARM.extab.exit.text)
++#ifndef CONFIG_MMU
++              *(.fixup)
++              *(__ex_table)
++#endif
++      }
++
+                                       /* Stabs debugging sections.    */
+       .stab 0 : { *(.stab) }
+       .stabstr 0 : { *(.stabstr) }
+--- a/arch/powerpc/kernel/vmlinux.lds.S
++++ b/arch/powerpc/kernel/vmlinux.lds.S
+@@ -37,12 +37,6 @@ jiffies = jiffies_64 + 4;
+ #endif
+ SECTIONS
+ {
+-      /* Sections to be discarded. */
+-      /DISCARD/ : {
+-      *(.exitcall.exit)
+-      EXIT_DATA
+-      }
+-
+       . = KERNELBASE;
+ /*
+@@ -295,6 +289,12 @@ SECTIONS
+               __bss_stop = .;
+       }
++      /* Sections to be discarded. */
++      /DISCARD/ : {
++      *(.exitcall.exit)
++      EXIT_DATA
++      }
++
+       . = ALIGN(PAGE_SIZE);
+       _end = . ;
+       PROVIDE32 (end = .);
This page took 0.02449 seconds and 4 git commands to generate.