Messages in this thread | | | Date | Wed, 9 Nov 2011 13:01:18 -0800 (PST) | From | Andrei Warkentin <> | Subject | /dev/mem "unbounded?" |
| |
Dear LKML,
In the previous kernels, valid_phys_addr_range was not defined for x86, and used the static variant which returned 0 if access went above __pa(high_memory).
Current behavior, though, relies on the x86 variant of valid_phys_addr_range, defined in arch/x86/include/asm/io.h, that always returns 1, hence, reading will never end since there won't be any condition (barring an MCE on physical hardware) that would say "Bad Address". Is this supposed to be by design?
How about exposing the "top" allocated resource address from linux/kernel/resource.c? That way /dev/mem will know when all the "interesting" bits end, and can return -EFAULT for everything above that.
Thanks, A
| |