summaryrefslogtreecommitdiffstats
path: root/drivers/char/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/mem.c')
-rw-r--r--drivers/char/mem.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index a334205cb..873f0a955 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -56,6 +56,9 @@ extern void adbdev_init(void);
#ifdef CONFIG_USB
extern void usb_init(void);
#endif
+#ifdef CONFIG_PPDEV
+extern int pp_init(void);
+#endif
static ssize_t do_write_mem(struct file * file, void *p, unsigned long realp,
const char * buf, size_t count, loff_t *ppos)
@@ -190,10 +193,7 @@ static inline int noncached_address(unsigned long addr)
static int mmap_mem(struct file * file, struct vm_area_struct * vma)
{
- unsigned long offset = vma->vm_offset;
-
- if (offset & ~PAGE_MASK)
- return -ENXIO;
+ unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
/*
* Accessing memory above the top the kernel knows about or
@@ -679,5 +679,8 @@ int __init chr_dev_init(void)
#ifdef CONFIG_VIDEO_DEV
videodev_init();
#endif
+#ifdef CONFIG_PPDEV
+ pp_init();
+#endif
return 0;
}