Re: [PATCH 2/3] e1000e: Useset_memory_ro()/set_memory_rw() toprotect flash memory

From: David Miller
Date: Tue Sep 23 2008 - 19:30:30 EST


From: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
Date: Tue, 23 Sep 2008 15:45:54 -0700

> From: Bruce Allan <bruce.w.allan@xxxxxxxxx>
>
> A number of users have reported NVM corruption on various ICHx platform
> LOMs. One possible reasons for this could be unexpected and/or malicious
> writes to the flash memory area mapped into kernel memory. Once the
> interface is up, there should be very few reads/writes of the mapped flash
> memory. This patch makes use of the x86 set_memory_*() functions to set
> the mapped memory read-only and temporarily set it writable only when the
> driver needs to write to it. With the memory set read-only, any unexpected
> write will be logged with a stack dump indicating the offending code.
>
> Since these LOMs are only on x86 ICHx platforms, it does not matter that
> this API is not yet available on other architectures, however it is
> dependent on a previous patch that exports these function name symbols.
>
> Signed-off-by: Bruce Allan <bruce.w.allan@xxxxxxxxx>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>

If the X server or similar is causing this problem, this patch won't help.

The X server maps MMIO space using mmap() in userspace, and you're only
protecting the kernel side mapping.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/