x86/smpboot: Init apic mapping before usage
[cascardo/linux.git] / drivers / char / mem.c
index a33163d..5bb1985 100644 (file)
@@ -381,6 +381,9 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
        char *kbuf; /* k-addr because vread() takes vmlist_lock rwlock */
        int err = 0;
 
+       if (!pfn_valid(PFN_DOWN(p)))
+               return -EIO;
+
        read = 0;
        if (p < (unsigned long) high_memory) {
                low_count = count;
@@ -509,6 +512,9 @@ static ssize_t write_kmem(struct file *file, const char __user *buf,
        char *kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */
        int err = 0;
 
+       if (!pfn_valid(PFN_DOWN(p)))
+               return -EIO;
+
        if (p < (unsigned long) high_memory) {
                unsigned long to_write = min_t(unsigned long, count,
                                               (unsigned long)high_memory - p);