generic: fix build failure in MIPS kexec code if SMP is enabled
authorGabor Juhos <juhosg@openwrt.org>
Tue, 29 Jan 2013 09:44:58 +0000 (09:44 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Tue, 29 Jan 2013 09:44:58 +0000 (09:44 +0000)
Fix it for older kernels as well.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35366

target/linux/generic/patches-3.3/331-mips-kexec-enhanche-the-support.patch
target/linux/generic/patches-3.3/332-mips-kexec-init-the-arguments-for-the-new-kernel-image.patch
target/linux/generic/patches-3.3/333-mips-kexec-get-kernel-parameters-from-kexec-tools.patch
target/linux/generic/patches-3.3/335-mips-kexec-cleanup-kexec-tools-parameter-handling.patch
target/linux/generic/patches-3.6/331-mips-kexec-enhanche-the-support.patch
target/linux/generic/patches-3.6/332-mips-kexec-init-the-arguments-for-the-new-kernel-image.patch
target/linux/generic/patches-3.6/333-mips-kexec-get-kernel-parameters-from-kexec-tools.patch
target/linux/generic/patches-3.6/335-mips-kexec-cleanup-kexec-tools-parameter-handling.patch

index 5ffc2e29bdbdafbea5bab39b7cef3ef7a18aad2a..21bbeed5547af8308fbdeadd866953de4d714b8e 100644 (file)
@@ -57,20 +57,18 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  extern int (*_machine_kexec_prepare)(struct kimage *);
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
-@@ -13,12 +13,6 @@
- #include <asm/cacheflush.h>
+@@ -14,10 +14,6 @@
  #include <asm/page.h>
  
--extern const unsigned char relocate_new_kernel[];
+ extern const unsigned char relocate_new_kernel[];
 -extern const size_t relocate_new_kernel_size;
 -
 -extern unsigned long kexec_start_address;
 -extern unsigned long kexec_indirection_page;
--
  int (*_machine_kexec_prepare)(struct kimage *) = NULL;
  void (*_machine_kexec_shutdown)(void) = NULL;
- void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL;
-@@ -61,21 +55,34 @@ typedef void (*noretfun_t)(void) __attri
+@@ -61,21 +57,34 @@ typedef void (*noretfun_t)(void) __attri
  void
  machine_kexec(struct kimage *image)
  {
@@ -107,7 +105,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  
        /*
         * The generic kexec code builds a page list with physical
-@@ -96,8 +103,8 @@ machine_kexec(struct kimage *image)
+@@ -96,8 +105,8 @@ machine_kexec(struct kimage *image)
         */
        local_irq_disable();
  
@@ -118,7 +116,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
        __flush_cache_all();
  #ifdef CONFIG_SMP
        /* All secondary cpus now may jump to kexec_wait cycle */
-@@ -108,4 +115,3 @@ machine_kexec(struct kimage *image)
+@@ -108,4 +117,3 @@ machine_kexec(struct kimage *image)
  #endif
        ((noretfun_t) reboot_code_buffer)();
  }
index 5507dde64d21fb6dd33feb42e12b992620c5f6e3..07d0af9e71e44889939157e01ed53e04c543fadd 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  #include <asm/cacheflush.h>
  #include <asm/page.h>
  
-@@ -21,9 +22,30 @@ void (*relocated_kexec_smp_wait) (void *
+@@ -23,9 +24,30 @@ void (*relocated_kexec_smp_wait) (void *
  atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0);
  #endif
  
index 9da936314c327e8ada83cf0e88d2b89fd9f24beb..44380dae6f0ec2e082d24ed49ab723005a3a5f54 100644 (file)
@@ -19,9 +19,9 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  #include <asm/page.h>
 +#include <asm/uaccess.h>
  
int (*_machine_kexec_prepare)(struct kimage *) = NULL;
- void (*_machine_kexec_shutdown)(void) = NULL;
-@@ -35,6 +36,56 @@ static void machine_kexec_init_args(void
extern const unsigned char relocate_new_kernel[];
+@@ -37,6 +38,56 @@ static void machine_kexec_init_args(void
        pr_info("kexec_args[3] (desc): %p\n", (void *)kexec_args[3]);
  }
  
@@ -78,7 +78,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  int
  machine_kexec_prepare(struct kimage *kimage)
  {
-@@ -45,6 +96,7 @@ machine_kexec_prepare(struct kimage *kim
+@@ -47,6 +98,7 @@ machine_kexec_prepare(struct kimage *kim
         * This can be overrided by _machine_kexec_prepare().
         */
        machine_kexec_init_args();
index f7a8eed00029ef455579262a13fda9ec6fd82cd3..e0a1103eb60f0bf077b7c3c85b10a859eb78bd05 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
-@@ -23,67 +23,104 @@ void (*relocated_kexec_smp_wait) (void *
+@@ -25,67 +25,104 @@ void (*relocated_kexec_smp_wait) (void *
  atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0);
  #endif
  
  }
  
  int
-@@ -95,8 +132,14 @@ machine_kexec_prepare(struct kimage *kim
+@@ -97,8 +134,14 @@ machine_kexec_prepare(struct kimage *kim
         *
         * This can be overrided by _machine_kexec_prepare().
         */
  
        if (_machine_kexec_prepare)
                return _machine_kexec_prepare(kimage);
-@@ -152,11 +195,13 @@ machine_kexec(struct kimage *image)
+@@ -154,11 +197,13 @@ machine_kexec(struct kimage *image)
        pr_info("kexec_indirection_page = %p\n",
                        (void *)kexec_indirection_page);
  
index c98fc24a4731a3ba42226bcd76c46f376368b072..eff28f3103568e66ec279f42e694a2de063a742a 100644 (file)
@@ -57,20 +57,18 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  extern int (*_machine_kexec_prepare)(struct kimage *);
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
-@@ -13,12 +13,6 @@
- #include <asm/cacheflush.h>
+@@ -14,10 +14,6 @@
  #include <asm/page.h>
  
--extern const unsigned char relocate_new_kernel[];
+ extern const unsigned char relocate_new_kernel[];
 -extern const size_t relocate_new_kernel_size;
 -
 -extern unsigned long kexec_start_address;
 -extern unsigned long kexec_indirection_page;
--
  int (*_machine_kexec_prepare)(struct kimage *) = NULL;
  void (*_machine_kexec_shutdown)(void) = NULL;
- void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL;
-@@ -61,21 +55,34 @@ typedef void (*noretfun_t)(void) __attri
+@@ -61,21 +57,34 @@ typedef void (*noretfun_t)(void) __attri
  void
  machine_kexec(struct kimage *image)
  {
@@ -107,7 +105,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  
        /*
         * The generic kexec code builds a page list with physical
-@@ -96,8 +103,8 @@ machine_kexec(struct kimage *image)
+@@ -96,8 +105,8 @@ machine_kexec(struct kimage *image)
         */
        local_irq_disable();
  
@@ -118,7 +116,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
        __flush_cache_all();
  #ifdef CONFIG_SMP
        /* All secondary cpus now may jump to kexec_wait cycle */
-@@ -108,4 +115,3 @@ machine_kexec(struct kimage *image)
+@@ -108,4 +117,3 @@ machine_kexec(struct kimage *image)
  #endif
        ((noretfun_t) reboot_code_buffer)();
  }
index 5507dde64d21fb6dd33feb42e12b992620c5f6e3..07d0af9e71e44889939157e01ed53e04c543fadd 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  #include <asm/cacheflush.h>
  #include <asm/page.h>
  
-@@ -21,9 +22,30 @@ void (*relocated_kexec_smp_wait) (void *
+@@ -23,9 +24,30 @@ void (*relocated_kexec_smp_wait) (void *
  atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0);
  #endif
  
index 9da936314c327e8ada83cf0e88d2b89fd9f24beb..44380dae6f0ec2e082d24ed49ab723005a3a5f54 100644 (file)
@@ -19,9 +19,9 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  #include <asm/page.h>
 +#include <asm/uaccess.h>
  
int (*_machine_kexec_prepare)(struct kimage *) = NULL;
- void (*_machine_kexec_shutdown)(void) = NULL;
-@@ -35,6 +36,56 @@ static void machine_kexec_init_args(void
extern const unsigned char relocate_new_kernel[];
+@@ -37,6 +38,56 @@ static void machine_kexec_init_args(void
        pr_info("kexec_args[3] (desc): %p\n", (void *)kexec_args[3]);
  }
  
@@ -78,7 +78,7 @@ Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
  int
  machine_kexec_prepare(struct kimage *kimage)
  {
-@@ -45,6 +96,7 @@ machine_kexec_prepare(struct kimage *kim
+@@ -47,6 +98,7 @@ machine_kexec_prepare(struct kimage *kim
         * This can be overrided by _machine_kexec_prepare().
         */
        machine_kexec_init_args();
index f7a8eed00029ef455579262a13fda9ec6fd82cd3..e0a1103eb60f0bf077b7c3c85b10a859eb78bd05 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
-@@ -23,67 +23,104 @@ void (*relocated_kexec_smp_wait) (void *
+@@ -25,67 +25,104 @@ void (*relocated_kexec_smp_wait) (void *
  atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0);
  #endif
  
  }
  
  int
-@@ -95,8 +132,14 @@ machine_kexec_prepare(struct kimage *kim
+@@ -97,8 +134,14 @@ machine_kexec_prepare(struct kimage *kim
         *
         * This can be overrided by _machine_kexec_prepare().
         */
  
        if (_machine_kexec_prepare)
                return _machine_kexec_prepare(kimage);
-@@ -152,11 +195,13 @@ machine_kexec(struct kimage *image)
+@@ -154,11 +197,13 @@ machine_kexec(struct kimage *image)
        pr_info("kexec_indirection_page = %p\n",
                        (void *)kexec_indirection_page);