#include <linux/miscdevice.h>
#include <linux/vmalloc.h>
#include <linux/random.h>
#include <linux/capability.h>
#include <linux/ptrace.h>
#include <linux/device.h>
#include <linux/highmem.h>
#include <linux/backing-dev.h>
#include <linux/shmem_fs.h>
#include <linux/splice.h>
#include <linux/export.h>
#include <linux/uaccess.h>
static inline unsigned long size_inside_page(unsigned long start,
sz = PAGE_SIZE - (start & (PAGE_SIZE - 1));
#ifndef ARCH_HAS_VALID_PHYS_ADDR_RANGE
static inline int valid_phys_addr_range(phys_addr_t addr, size_t count)
return addr + count <= __pa(high_memory);
static inline int valid_mmap_phys_addr_range(unsigned long pfn, size_t size)
#ifdef CONFIG_STRICT_DEVMEM