Bladeren bron

sh: Update SH-5 flush_cache_sigtramp() for API changes.

Previously this took an explicit range, update this to use the same
behaviour as the rest of the SH parts where we simply flush out a line
from the start address.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 17 jaren geleden
bovenliggende
commit
f1f8926a94
2 gewijzigde bestanden met toevoegingen van 6 en 4 verwijderingen
  1. 5 3
      arch/sh/mm/cache-sh5.c
  2. 1 1
      include/asm-sh/cpu-sh5/cacheflush.h

+ 5 - 3
arch/sh/mm/cache-sh5.c

@@ -1015,15 +1015,17 @@ void flush_icache_user_range(struct vm_area_struct *vma,
 			ARCH/SH64 PRIVATE CALLABLE API.
   ##########################################################################*/
 
-void flush_cache_sigtramp(unsigned long start, unsigned long end)
+void flush_cache_sigtramp(unsigned long vaddr)
 {
+	unsigned long end = vaddr + L1_CACHE_BYTES;
+
 	/* For the address range [start,end), write back the data from the
 	   D-cache and invalidate the corresponding region of the I-cache for
 	   the current process.  Used to flush signal trampolines on the stack
 	   to make them executable. */
 
-	sh64_dcache_wback_current_user_range(start, end);
+	sh64_dcache_wback_current_user_range(vaddr, end);
 	wmb();
-	sh64_icache_inv_current_user_range(start, end);
+	sh64_icache_inv_current_user_range(vaddr, end);
 }
 

+ 1 - 1
include/asm-sh/cpu-sh5/cacheflush.h

@@ -11,7 +11,7 @@ struct mm_struct;
 
 extern void flush_cache_all(void);
 extern void flush_cache_mm(struct mm_struct *mm);
-extern void flush_cache_sigtramp(unsigned long start, unsigned long end);
+extern void flush_cache_sigtramp(unsigned long vaddr);
 extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
 			      unsigned long end);
 extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);