unsigned int ioctl, unsigned long arg)
 {
        struct kvm *kvm = filp->private_data;
+       void __user *argp = (void __user *)arg;
        int r = -EINVAL;
 
        switch (ioctl) {
                struct kvm_run kvm_run;
 
                r = -EFAULT;
-               if (copy_from_user(&kvm_run, (void *)arg, sizeof kvm_run))
+               if (copy_from_user(&kvm_run, argp, sizeof kvm_run))
                        goto out;
                r = kvm_dev_ioctl_run(kvm, &kvm_run);
                if (r < 0 &&  r != -EINTR)
                        goto out;
-               if (copy_to_user((void *)arg, &kvm_run, sizeof kvm_run)) {
+               if (copy_to_user(argp, &kvm_run, sizeof kvm_run)) {
                        r = -EFAULT;
                        goto out;
                }
                struct kvm_regs kvm_regs;
 
                r = -EFAULT;
-               if (copy_from_user(&kvm_regs, (void *)arg, sizeof kvm_regs))
+               if (copy_from_user(&kvm_regs, argp, sizeof kvm_regs))
                        goto out;
                r = kvm_dev_ioctl_get_regs(kvm, &kvm_regs);
                if (r)
                        goto out;
                r = -EFAULT;
-               if (copy_to_user((void *)arg, &kvm_regs, sizeof kvm_regs))
+               if (copy_to_user(argp, &kvm_regs, sizeof kvm_regs))
                        goto out;
                r = 0;
                break;
                struct kvm_regs kvm_regs;
 
                r = -EFAULT;
-               if (copy_from_user(&kvm_regs, (void *)arg, sizeof kvm_regs))
+               if (copy_from_user(&kvm_regs, argp, sizeof kvm_regs))
                        goto out;
                r = kvm_dev_ioctl_set_regs(kvm, &kvm_regs);
                if (r)
                struct kvm_sregs kvm_sregs;
 
                r = -EFAULT;
-               if (copy_from_user(&kvm_sregs, (void *)arg, sizeof kvm_sregs))
+               if (copy_from_user(&kvm_sregs, argp, sizeof kvm_sregs))
                        goto out;
                r = kvm_dev_ioctl_get_sregs(kvm, &kvm_sregs);
                if (r)
                        goto out;
                r = -EFAULT;
-               if (copy_to_user((void *)arg, &kvm_sregs, sizeof kvm_sregs))
+               if (copy_to_user(argp, &kvm_sregs, sizeof kvm_sregs))
                        goto out;
                r = 0;
                break;
                struct kvm_sregs kvm_sregs;
 
                r = -EFAULT;
-               if (copy_from_user(&kvm_sregs, (void *)arg, sizeof kvm_sregs))
+               if (copy_from_user(&kvm_sregs, argp, sizeof kvm_sregs))
                        goto out;
                r = kvm_dev_ioctl_set_sregs(kvm, &kvm_sregs);
                if (r)
                struct kvm_translation tr;
 
                r = -EFAULT;
-               if (copy_from_user(&tr, (void *)arg, sizeof tr))
+               if (copy_from_user(&tr, argp, sizeof tr))
                        goto out;
                r = kvm_dev_ioctl_translate(kvm, &tr);
                if (r)
                        goto out;
                r = -EFAULT;
-               if (copy_to_user((void *)arg, &tr, sizeof tr))
+               if (copy_to_user(argp, &tr, sizeof tr))
                        goto out;
                r = 0;
                break;
                struct kvm_interrupt irq;
 
                r = -EFAULT;
-               if (copy_from_user(&irq, (void *)arg, sizeof irq))
+               if (copy_from_user(&irq, argp, sizeof irq))
                        goto out;
                r = kvm_dev_ioctl_interrupt(kvm, &irq);
                if (r)
                struct kvm_debug_guest dbg;
 
                r = -EFAULT;
-               if (copy_from_user(&dbg, (void *)arg, sizeof dbg))
+               if (copy_from_user(&dbg, argp, sizeof dbg))
                        goto out;
                r = kvm_dev_ioctl_debug_guest(kvm, &dbg);
                if (r)
                struct kvm_memory_region kvm_mem;
 
                r = -EFAULT;
-               if (copy_from_user(&kvm_mem, (void *)arg, sizeof kvm_mem))
+               if (copy_from_user(&kvm_mem, argp, sizeof kvm_mem))
                        goto out;
                r = kvm_dev_ioctl_set_memory_region(kvm, &kvm_mem);
                if (r)
                struct kvm_dirty_log log;
 
                r = -EFAULT;
-               if (copy_from_user(&log, (void *)arg, sizeof log))
+               if (copy_from_user(&log, argp, sizeof log))
                        goto out;
                r = kvm_dev_ioctl_get_dirty_log(kvm, &log);
                if (r)
                break;
        }
        case KVM_GET_MSRS:
-               r = msr_io(kvm, (void __user *)arg, get_msr, 1);
+               r = msr_io(kvm, argp, get_msr, 1);
                break;
        case KVM_SET_MSRS:
-               r = msr_io(kvm, (void __user *)arg, do_set_msr, 0);
+               r = msr_io(kvm, argp, do_set_msr, 0);
                break;
        case KVM_GET_MSR_INDEX_LIST: {
-               struct kvm_msr_list __user *user_msr_list = (void __user *)arg;
+               struct kvm_msr_list __user *user_msr_list = argp;
                struct kvm_msr_list msr_list;
                unsigned n;