Messages in this thread | | | From | Sishuai Gong <> | Subject | Racy kb->ledflagstate and kb->default_ledflagstate | Date | Wed, 9 Aug 2023 21:02:52 -0400 |
| |
Hi,
We observed a race over kb->ledflagstate and kb->default_ledflagstate when two threads are running vt_do_kdskled() in parallel:
Thread-1 Thread-2 // holding led_lock // holding kbd_event_lock kb->ledflagstate = (arg & 7); ucval = kb->ledflagstate | (kb->default_ledflagstate << 4); kb->default_ledflagstate = ((arg >> 4) & 7);
Is it better to hold both led_lock and kbd_event_lock under case KDGKBLED? We are happy to submit the patch if it makes sense.
Thanks
| |