Hi Cai, Quoting Cai Huoqing (2021-10-21 09:41:42) > Repalce kthread_create/wake_up_process() with kthread_run() > to simplify the code. > > Signed-off-by: Cai Huoqing <caihuoqing@xxxxxxxxx> kthread_run does look appropriate here, and is simpler. Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > --- > drivers/media/usb/gspca/m5602/m5602_s5k83a.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/usb/gspca/m5602/m5602_s5k83a.c b/drivers/media/usb/gspca/m5602/m5602_s5k83a.c > index bc4008d5d116..4504d615b1e4 100644 > --- a/drivers/media/usb/gspca/m5602/m5602_s5k83a.c > +++ b/drivers/media/usb/gspca/m5602/m5602_s5k83a.c > @@ -339,14 +339,13 @@ int s5k83a_start(struct sd *sd) > /* Create another thread, polling the GPIO ports of the camera to check > if it got rotated. This is how the windows driver does it so we have > to assume that there is no better way of accomplishing this */ > - sd->rotation_thread = kthread_create(rotation_thread_function, > - sd, "rotation thread"); > + sd->rotation_thread = kthread_run(rotation_thread_function, > + sd, "rotation thread"); > if (IS_ERR(sd->rotation_thread)) { > err = PTR_ERR(sd->rotation_thread); > sd->rotation_thread = NULL; > return err; > } > - wake_up_process(sd->rotation_thread); > > /* Preinit the sensor */ > for (i = 0; i < ARRAY_SIZE(start_s5k83a) && !err; i++) { > -- > 2.25.1 >