Input: evdev - add a schedule point in evdev_write()
diff mbox series

Message ID 20181005005359.GA218372@dtor-ws
State New, archived
Headers show
Series
  • Input: evdev - add a schedule point in evdev_write()
Related show

Commit Message

Dmitry Torokhov Oct. 5, 2018, 12:53 a.m. UTC
Large writes to evdev interface may cause rcu stalls. Let's add
cond_resched() to the loop to avoid this.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/evdev.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Paul E. McKenney Oct. 5, 2018, 4:08 a.m. UTC | #1
On Thu, Oct 04, 2018 at 05:53:59PM -0700, Dmitry Torokhov wrote:
> Large writes to evdev interface may cause rcu stalls. Let's add
> cond_resched() to the loop to avoid this.
> 
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Reviewed-by: Paul E. McKenney <paulmck@linux.ibm.com>

> ---
>  drivers/input/evdev.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
> index 370206f987f9..f48369d6f3a0 100644
> --- a/drivers/input/evdev.c
> +++ b/drivers/input/evdev.c
> @@ -564,6 +564,7 @@ static ssize_t evdev_write(struct file *file, const char __user *buffer,
>  
>  		input_inject_event(&evdev->handle,
>  				   event.type, event.code, event.value);
> +		cond_resched();
>  	}
>  
>   out:
> -- 
> 2.19.0.605.g01d371f741-goog
> 
> 
> -- 
> Dmitry
>

Patch
diff mbox series

diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 370206f987f9..f48369d6f3a0 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -564,6 +564,7 @@  static ssize_t evdev_write(struct file *file, const char __user *buffer,
 
 		input_inject_event(&evdev->handle,
 				   event.type, event.code, event.value);
+		cond_resched();
 	}
 
  out: