--- x/drivers/input/input.c +++ y/drivers/input/input.c @@ -642,17 +642,11 @@ EXPORT_SYMBOL(input_open_device); int input_flush_device(struct input_handle *handle, struct file *file) { struct input_dev *dev = handle->dev; - int retval; - - retval = mutex_lock_interruptible(&dev->mutex); - if (retval) - return retval; if (dev->flush) - retval = dev->flush(dev, file); + return dev->flush(dev, file); - mutex_unlock(&dev->mutex); - return retval; + return 0; } EXPORT_SYMBOL(input_flush_device); --- x/mm/vmstat.c +++ y/mm/vmstat.c @@ -2122,9 +2122,11 @@ static void __init start_shepherd_timer( { int cpu; - for_each_possible_cpu(cpu) + for_each_possible_cpu(cpu) { INIT_DEFERRABLE_WORK(per_cpu_ptr(&vmstat_work, cpu), vmstat_update); + disable_delayed_work(per_cpu_ptr(&vmstat_work, cpu)); + } schedule_delayed_work(&shepherd, round_jiffies_relative(sysctl_stat_interval));