pmem: fix pass miscdevice pointer via file private data
author黄涛 <huangtao@rock-chips.com>
Tue, 13 Dec 2011 04:05:20 +0000 (12:05 +0800)
committer黄涛 <huangtao@rock-chips.com>
Tue, 13 Dec 2011 04:05:44 +0000 (12:05 +0800)
drivers/misc/pmem.c

index b47acd333f350c499d0b7777425f3613bbdf26a9..5b8b6bdbc87dc632679e0ab7479faf889ade59ba 100644 (file)
@@ -337,7 +337,7 @@ static int pmem_open(struct inode *inode, struct file *file)
        DLOG("current %u file %p(%d)\n", current->pid, file, file_count(file));
        /* setup file->private_data to indicate its unmapped */
        /*  you can only open a pmem device one time */
-       if (file->private_data != NULL)
+       if (file->private_data != NULL && file->private_data != &pmem[id].dev)
                return -1;
        data = kmalloc(sizeof(struct pmem_data), GFP_KERNEL);
        if (!data) {