powerpc/64s: Fold update_current_thread_[i]amr() into their only callers
[linux-2.6-microblaze.git] / drivers / char / mem.c
index 887ffca..869b9f5 100644 (file)
@@ -31,9 +31,6 @@
 #include <linux/uio.h>
 #include <linux/uaccess.h>
 #include <linux/security.h>
-#include <linux/pseudo_fs.h>
-#include <uapi/linux/magic.h>
-#include <linux/mount.h>
 
 #ifdef CONFIG_IA64
 # include <linux/efi.h>
@@ -829,42 +826,6 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
        return ret;
 }
 
-static struct inode *devmem_inode;
-
-#ifdef CONFIG_IO_STRICT_DEVMEM
-void revoke_devmem(struct resource *res)
-{
-       /* pairs with smp_store_release() in devmem_init_inode() */
-       struct inode *inode = smp_load_acquire(&devmem_inode);
-
-       /*
-        * Check that the initialization has completed. Losing the race
-        * is ok because it means drivers are claiming resources before
-        * the fs_initcall level of init and prevent /dev/mem from
-        * establishing mappings.
-        */
-       if (!inode)
-               return;
-
-       /*
-        * The expectation is that the driver has successfully marked
-        * the resource busy by this point, so devmem_is_allowed()
-        * should start returning false, however for performance this
-        * does not iterate the entire resource range.
-        */
-       if (devmem_is_allowed(PHYS_PFN(res->start)) &&
-           devmem_is_allowed(PHYS_PFN(res->end))) {
-               /*
-                * *cringe* iomem=relaxed says "go ahead, what's the
-                * worst that can happen?"
-                */
-               return;
-       }
-
-       unmap_mapping_range(inode->i_mapping, res->start, resource_size(res), 1);
-}
-#endif
-
 static int open_port(struct inode *inode, struct file *filp)
 {
        int rc;
@@ -884,8 +845,7 @@ static int open_port(struct inode *inode, struct file *filp)
         * revocations when drivers want to take over a /dev/mem mapped
         * range.
         */
-       inode->i_mapping = devmem_inode->i_mapping;
-       filp->f_mapping = inode->i_mapping;
+       filp->f_mapping = iomem_get_mapping();
 
        return 0;
 }
@@ -1017,48 +977,6 @@ static char *mem_devnode(struct device *dev, umode_t *mode)
 
 static struct class *mem_class;
 
-static int devmem_fs_init_fs_context(struct fs_context *fc)
-{
-       return init_pseudo(fc, DEVMEM_MAGIC) ? 0 : -ENOMEM;
-}
-
-static struct file_system_type devmem_fs_type = {
-       .name           = "devmem",
-       .owner          = THIS_MODULE,
-       .init_fs_context = devmem_fs_init_fs_context,
-       .kill_sb        = kill_anon_super,
-};
-
-static int devmem_init_inode(void)
-{
-       static struct vfsmount *devmem_vfs_mount;
-       static int devmem_fs_cnt;
-       struct inode *inode;
-       int rc;
-
-       rc = simple_pin_fs(&devmem_fs_type, &devmem_vfs_mount, &devmem_fs_cnt);
-       if (rc < 0) {
-               pr_err("Cannot mount /dev/mem pseudo filesystem: %d\n", rc);
-               return rc;
-       }
-
-       inode = alloc_anon_inode(devmem_vfs_mount->mnt_sb);
-       if (IS_ERR(inode)) {
-               rc = PTR_ERR(inode);
-               pr_err("Cannot allocate inode for /dev/mem: %d\n", rc);
-               simple_release_fs(&devmem_vfs_mount, &devmem_fs_cnt);
-               return rc;
-       }
-
-       /*
-        * Publish /dev/mem initialized.
-        * Pairs with smp_load_acquire() in revoke_devmem().
-        */
-       smp_store_release(&devmem_inode, inode);
-
-       return 0;
-}
-
 static int __init chr_dev_init(void)
 {
        int minor;
@@ -1080,8 +998,6 @@ static int __init chr_dev_init(void)
                 */
                if ((minor == DEVPORT_MINOR) && !arch_has_dev_port())
                        continue;
-               if ((minor == DEVMEM_MINOR) && devmem_init_inode() != 0)
-                       continue;
 
                device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
                              NULL, devlist[minor].name);