>-----Original Message----- >From: Mike Frysinger [mailto:[email protected]] >Sent: Friday, November 27, 2009 5:28 PM >To: [email protected] >Cc: [email protected] >Subject: Re: [Linux-kernel-commits] [7887] >trunk/arch/blackfin/kernel/traps.c: bug [#5662], workaround >ANOMALY_05000310 > >On Fri, Nov 27, 2009 at 04:18, <[email protected]> wrote: >> --- trunk/arch/blackfin/kernel/traps.c 2009-11-27 >07:32:25 UTC (rev 7886) >> +++ trunk/arch/blackfin/kernel/traps.c 2009-11-27 >09:18:21 UTC (rev 7887) >> @@ -524,6 +524,12 @@ >> break; >> /* External Memory Addressing Error */ >> case (SEQSTAT_HWERRCAUSE_EXTERN_ADDR): >> + if (ANOMALY_05000310) { >> + unsigned int erraddr = fp->pc; >> + if ((erraddr >= (L1_CODE_START >+ L1_CODE_LENGTH - 512)) && >> + (erraddr < >(L1_CODE_START + L1_CODE_LENGTH))) >> + goto traps_done; >> + } > >addresses should always be "unsigned long". there should also be a Ok >short comment explaining things so people dont have to lookup the >anomaly sheet for a quick summary. also note that while the check ok >isnt exact (since system notifications can never be exact wrt the >pipeline), it should be realistically close enough. > >since you've managed to reproduce the issue with L1, why not add the >external memory check as well ? We don't need to check external memory. 1. revsered memory behind physical memory has no valid cplb entry to cover in my kernel setting, it can't trigger anomaly. 2. even after I give a valid cplb entry covering 0x04000000 forcely, the anomaly doesn't happen too. So I suspect the description is not exact.
>-mike > _______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
