File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -315,14 +315,19 @@ void flush_icache_range(unsigned long kvaddr, unsigned long kvend)
315315{
316316 unsigned int tot_sz = kvend - kvaddr ;
317317
318- BUG_ON ((kvaddr < VMALLOC_START ) || (kvend > VMALLOC_END ));
318+ BUG_ON (is_vmalloc_addr ((void * )kvaddr ) && !is_vmalloc_addr ((void * )kvend ));
319+ BUG_ON (!is_vmalloc_addr ((void * )kvaddr ) && is_vmalloc_addr ((void * )kvend ));
320+ BUG_ON (kvaddr < TASK_SIZE );
319321
320322 while (tot_sz > 0 ) {
321323 unsigned int off , sz ;
322324 unsigned long paddr , pfn ;
323325
324326 off = kvaddr % PAGE_SIZE ;
325- pfn = vmalloc_to_pfn ((void * )kvaddr );
327+ if (is_vmalloc_addr ((void * )kvaddr ))
328+ pfn = vmalloc_to_pfn ((void * )kvaddr );
329+ else
330+ pfn = virt_to_pfn ((void * )kvaddr );
326331 paddr = (pfn << PAGE_SHIFT ) + off ;
327332 sz = min_t (unsigned int , tot_sz , PAGE_SIZE - off );
328333 __sync_icache_dcache (paddr , kvaddr , sz );
You can’t perform that action at this time.
0 commit comments