HID: roccat: Fixing race condition on initialization
Subsystems (2)
Stefan Achatz
maintainerPATCH 1/1 HID: roccat: Fixing race condition on initialization
Fixed raced condition where event occurs before drvdata is set.
--- drivers/hid/hid-roccat-kone.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
drivers/hid/hid-roccat-kone.c +4 -0
@@ -966,6 +966,10 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,struct kone_device *kone =hid_get_drvdata (hdev);struct kone_mouse_event *event = (struct kone_mouse_event *)data; +/* possible race condition on initialization */ +if (!kone) +return 0 ; +/* keyboard events are always processed by default handler */ if (size !=sizeof (struct kone_mouse_event ))return 0 ;
Signature · 1 line
1.7.2.2
Quoted 12 lines · Stefan Achatz
Fixed raced condition where event occurs before drvdata is set.
Signed-off-by Stefan Achatz <[email protected]>--- drivers/hid/hid-roccat-kone.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)drivers/hid/hid-roccat-kone.c +0
-0
drivers/hid/hid-roccat-kone.c static int kone_raw_event(struct hid_device *hdev, struct hid_report *report, · line 971
Quoted 6 lines
drivers/hid/hid-roccat-kone.c +3
-0@@ -966,6 +966,10 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,struct kone_device *kone =hid_get_drvdata (hdev);struct kone_mouse_event *event = (struct kone_mouse_event *)data; +/* possible race condition on initialization */ +if (!kone) +return 0 ;
This kind of "protection" caused much headache in the tty layer in the past. If there is such a problem, please fix the initialization code instead.
What sort of problems you are seeing?
thanks,
Signature · 1 line
js
Stefan Achatz
maintainerAm Samstag, den 28.08.2010, 20:18 +0200 schrieb Jiri Slaby:
Quoted 24 lines · Stefan Achatz
Quoted 12 lines
Fixed raced condition where event occurs before drvdata is set.
Signed-off-by Stefan Achatz <[email protected]>--- drivers/hid/hid-roccat-kone.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)drivers/hid/hid-roccat-kone.c +0
-0drivers/hid/hid-roccat-kone.c static int kone_raw_event(struct hid_device *hdev, struct hid_report *report, · line 971
Quoted 6 lines
drivers/hid/hid-roccat-kone.c +3
-0@@ -966,6 +966,10 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,struct kone_device *kone =hid_get_drvdata (hdev);struct kone_mouse_event *event = (struct kone_mouse_event *)data; +/* possible race condition on initialization */ +if (!kone) +return 0 ;This kind of "protection" caused much headache in the tty layer in the past. If there is such a problem, please fix the initialization code instead.
Quoted 3 lines
What sort of problems you are seeing?
thanks,
After investigating and now fully understanding the issue I want to draw back this patch.
The issue was no race condition in the first place, but an erroneous code I wrote for another mouse. This is a injudicious crossport of a half baked fix for code that didn't suffer from the problem because the next 3 lines already do the right thing for this case. Sorry.