]> git.zerfleddert.de Git - ms2-kexec/blobdiff - machine_kexec.c
A bit of a success :-)
[ms2-kexec] / machine_kexec.c
index e38af78492d4fed325055f3ee0167aed838ec777..9157d4c4ab21bb8bcc33429458dc4855ea17a8c2 100644 (file)
@@ -18,6 +18,8 @@ extern const unsigned int relocate_new_kernel_size;
 
 extern void setup_mm_for_reboot(char mode);
 
 
 extern void setup_mm_for_reboot(char mode);
 
+extern void v7_flush_kern_cache_all(void);
+
 extern unsigned long kexec_start_address;
 extern unsigned long kexec_indirection_page;
 extern unsigned long kexec_mach_type;
 extern unsigned long kexec_start_address;
 extern unsigned long kexec_indirection_page;
 extern unsigned long kexec_mach_type;
@@ -47,7 +49,7 @@ void machine_crash_nonpanic_core(void *unused)
        printk(KERN_DEBUG "CPU %u will stop doing anything useful since another CPU has crashed\n",
               smp_processor_id());
        crash_save_cpu(&regs, smp_processor_id());
        printk(KERN_DEBUG "CPU %u will stop doing anything useful since another CPU has crashed\n",
               smp_processor_id());
        crash_save_cpu(&regs, smp_processor_id());
-       flush_cache_all();
+       v7_flush_kern_cache_all();
 
        atomic_dec(&waiting_for_crash_ipi);
        while (1)
 
        atomic_dec(&waiting_for_crash_ipi);
        while (1)
@@ -86,7 +88,6 @@ void machine_kexec(struct kimage *image)
        unsigned long reboot_code_buffer_phys;
        void *reboot_code_buffer;
 
        unsigned long reboot_code_buffer_phys;
        void *reboot_code_buffer;
 
-
        page_list = image->head & PAGE_MASK;
 
        /* we need both effective and real address here */
        page_list = image->head & PAGE_MASK;
 
        /* we need both effective and real address here */
@@ -114,7 +115,7 @@ void machine_kexec(struct kimage *image)
        local_irq_disable();
        local_fiq_disable();
        setup_mm_for_reboot(0); /* mode is not used, so just pass 0*/
        local_irq_disable();
        local_fiq_disable();
        setup_mm_for_reboot(0); /* mode is not used, so just pass 0*/
-       flush_cache_all();
+       v7_flush_kern_cache_all();
 #ifdef CONFIG_OUTER_CACHE
        outer_flush_all();
        outer_disable();
 #ifdef CONFIG_OUTER_CACHE
        outer_flush_all();
        outer_disable();
@@ -123,6 +124,6 @@ void machine_kexec(struct kimage *image)
 #ifdef CONFIG_OUTER_CACHE
        outer_inv_all();
 #endif
 #ifdef CONFIG_OUTER_CACHE
        outer_inv_all();
 #endif
-       flush_cache_all();
+       //v7_flush_kern_cache_all();
        cpu_reset(reboot_code_buffer_phys);
 }
        cpu_reset(reboot_code_buffer_phys);
 }
Impressum, Datenschutz