On Sun, 26 Jun 2022, Hyunwoo Kim wrote: > diff --git a/drivers/hid/hid-roccat.c b/drivers/hid/hid-roccat.c > index 26373b82fe81..abe23ccd48e8 100644 > --- a/drivers/hid/hid-roccat.c > +++ b/drivers/hid/hid-roccat.c > @@ -260,7 +260,9 @@ int roccat_report_event(int minor, u8 const *data) > report = &device->cbuf[device->cbuf_end]; > > /* passing NULL is safe */ > + mutex_lock(&device->cbuf_lock); > kfree(report->value); > + mutex_unlock(&device->cbuf_lock); > > report->value = new_value; > device->cbuf_end = (device->cbuf_end + 1) % ROCCAT_CBUF_SIZE; Don't we actually need the mutex for much longer period during roccat_report_event()? At minimum it's also manipulating cbuf_end. Thanks, -- Jiri Kosina SUSE Labs