From: Zihuan Zhang Date: Fri, 9 May 2025 02:25:54 +0000 (+0800) Subject: HID: debug: Use the __set_current_state() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3db1ce9bf8f4a8e03d3bd19000b32290bca7d74;p=thirdparty%2Flinux.git HID: debug: Use the __set_current_state() When detecting an invalid list->hdev, the process needs to manually set its state to TASK_RUNNING and exit. In the original code, set_current_state() (which includes a memory barrier) is used here, but it is immediately followed by a mutex_unlock() call. Since mutex_unlock() internally includes a memory barrier, this ensures that all modifications within the critical section (including the process state) are visible to other CPUs. Therefore, replacing it with __set_current_state() (without an implicit barrier) avoids redundant memory barriers. Signed-off-by: Zihuan Zhang Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c index 8433306148d57..00a73983ef19b 100644 --- a/drivers/hid/hid-debug.c +++ b/drivers/hid/hid-debug.c @@ -3726,7 +3726,7 @@ static ssize_t hid_debug_events_read(struct file *file, char __user *buffer, */ if (!list->hdev || !list->hdev->debug) { ret = -EIO; - set_current_state(TASK_RUNNING); + __set_current_state(TASK_RUNNING); goto out; }