On Tue, Apr 12, 2011 at 04:16, <[email protected]> wrote: > Revision 9824 Author sonicz Date 2011-04-12 04:16:04 -0400 (Tue, 12 Apr > 2011) > > Log Message > > blackfin: SMP: Mike's commit 9589 causes recursive invoke in SMP icache > flush function. > > The call to blackfin arch icache flush function is on purpose. Mike's commit > "Blackfin: SMP: use standard cache functions" cause recursive invoke. > Roll back and fix. > > Modified: trunk/arch/blackfin/mach-common/smp.c (9823 => 9824) > > struct blackfin_flush_data *fdata = info; > > /* Invalidate the memory holding the bounds of the flushed region. */ > - invalidate_dcache_range((unsigned long)fdata, > - (unsigned long)fdata + sizeof(*fdata)); > + blackfin_dcache_invalidate_range((unsigned long)fdata, > + (unsigned long)fdata + sizeof(*fdata)); > > - flush_icache_range(fdata->start, fdata->end); > + blackfin_icache_flush_range(fdata->start, fdata->end); > }
i guess the problem is that flush_icache_range() calls flush_icache_range_others() which is implemented by ipi_flush_icache() ? the reason i changed this code was two fold: it was missing logic from the common implementation, and it was missing comments. well i guess three fold ... i was dumb. if we need this func to only call the internal one, then there should be a comment to that effect. and this code needs an SSYNC() as that macro only works on the active core. -mike _______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
