[PATCH v2] arm64: enable EDAC on arm64

Catalin Marinas catalin.marinas at arm.com
Thu Dec 5 06:51:42 EST 2013


On Thu, Dec 05, 2013 at 12:53:33AM +0000, Rob Herring wrote:
> On Tue, Nov 26, 2013 at 9:37 AM, Catalin Marinas
> <catalin.marinas at arm.com> wrote:
> > On Fri, Nov 22, 2013 at 09:05:08PM +0000, Rob Herring wrote:
> >> +static inline void atomic_scrub(void *va, u32 size)
> >> +{
> >> +     unsigned int *virt_addr = va;
> >> +     unsigned int i;
> >> +
> >> +     for (i = 0; i < size / sizeof(*virt_addr); i++, virt_addr++) {
> >
> > BTW, maybe the compiler is smart enough to drop the i but why not just
> > use a int *last_addr = va + size - 3; and just compare against this?
> 
> Evidently, the compiler is not that smart. Here's what I ended up
> with. There's no need to subtract 3 that I can see:
> 
> unsigned int *last_addr = va + size;
> for (; virt_addr < last_addr; virt_addr++) {

The 3 thing was for size not multiple of 4. Do we have any guarantees
here?

-- 
Catalin



More information about the linux-arm-kernel mailing list