arch:unicore32:mm: add devmem_is_allowed() to support STRICT_DEVMEM
unicore32 supports STRICT_DEVMEM, so it needs devmem_is_allowed(), like some of other architectures have done (e.g. arm, powerpc, x86 ...). The related error with allmodconfig: CC drivers/char/mem.o drivers/char/mem.c: In function ârange_is_allowedâ: drivers/char/mem.c:69: error: implicit declaration of function âdevmem_is_allowedâ make[2]: *** [drivers/char/mem.o] Error 1 make[1]: *** [drivers/char] Error 2 make: *** [drivers] Error 2 Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Acked-by: Xuetao Guan <gxt@mprc.pku.edu.cn> Signed-off-by: Xuetao Guan <gxt@mprc.pku.edu.cn>
This commit is contained in:
Родитель
aaad618382
Коммит
8a016596a5
|
@ -48,5 +48,28 @@ extern void __uc32_iounmap(volatile void __iomem *addr);
|
|||
#define PIO_MASK (unsigned int)(IO_SPACE_LIMIT)
|
||||
#define PIO_RESERVED (PIO_OFFSET + PIO_MASK + 1)
|
||||
|
||||
#ifdef CONFIG_STRICT_DEVMEM
|
||||
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
/*
|
||||
* devmem_is_allowed() checks to see if /dev/mem access to a certain
|
||||
* address is valid. The argument is a physical page number.
|
||||
* We mimic x86 here by disallowing access to system RAM as well as
|
||||
* device-exclusive MMIO regions. This effectively disable read()/write()
|
||||
* on /dev/mem.
|
||||
*/
|
||||
static inline int devmem_is_allowed(unsigned long pfn)
|
||||
{
|
||||
if (iomem_is_exclusive(pfn << PAGE_SHIFT))
|
||||
return 0;
|
||||
if (!page_is_ram(pfn))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_STRICT_DEVMEM */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __UNICORE_IO_H__ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче