Messages in this thread | | | Date | Mon, 21 Nov 2011 10:11:00 -0800 | Subject | Re: [PATCH 2/2] ramoops: remove module parameters | From | Kees Cook <> |
| |
On Sat, Nov 19, 2011 at 1:25 AM, Marco Stornelli <marco.stornelli@gmail.com> wrote: > Il 18/11/2011 20:31, Kees Cook ha scritto: >> >> The ramoops driver is intended to be used with platforms that define >> persistent memory regions. If memory regions were configurable with >> module parameters, it would be possible to read some RAM regions via >> the pstore interface without access to /dev/mem (which would result >> in a loss of kernel memory privacy when a system is built with >> STRICT_DEVMEM), so remove this ability completely. >> > > I don't like it very much. The loss of module parameters give us less > flexibility. The main goal of this driver is debug, so I think it should be > fast to use. I mean it's not more possible reserve a memory region and load > the module "on-the-fly", it needs a platform device, it's ok but I think > it's a little bit more complicated, (without talking about platforms without > a device tree source). > I don't understand the problem of strict devmem. We shouldn't use kernel > memory region but only reserved ones and the driver doesn't use the > request_mem_region_exclusive, am I wrong?
Hmmm, maybe I'm reading it backwards, but I think we want it to use ..._exclusive().
int devmem_is_allowed(unsigned long pagenr) { if (pagenr <= 256) return 1; if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) return 0; if (!page_is_ram(pagenr)) return 1; return 0; }
If the region is exclusive, access is not allowed (return 0). ramoops currently uses request_mem_region() instead of request_mem_region_exclusive(). If we made that switch, I think I'd be happy. Would this create some problem I'm not seeing?
-Kees
-- Kees Cook ChromeOS Security
| |