Re: [PATCH] HID: sony: Fix work queue issues.
On Wed, 19 Feb 2014, Frank Praznik wrote: > Don't initialize force-feedback for devices that don't support it to avoid > calls > to schedule_work() with an uninitialized work_struct. > > Move the cancel_work_sync() call out of sony_destroy_ff() since the state > worker > is used for the LEDs even when force-feedback is disabled. > > Remove sony_destroy_ff() to avoid a compiler warning since it is no longer > used. > > Signed-off-by: Frank Praznik Queued for 3.14 (without the -stable annotation), thanks. -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] HID: sony: Fix work queue issues.
Hi On Wed, Feb 19, 2014 at 8:21 PM, Frank Praznik wrote: > On Wed, Feb 19, 2014 at 1:41 PM, David Herrmann wrote: >> Hi Frank >> >> On Wed, Feb 19, 2014 at 7:09 PM, Frank Praznik >> wrote: >>> Don't initialize force-feedback for devices that don't support it to avoid >>> calls >>> to schedule_work() with an uninitialized work_struct. >>> >>> Move the cancel_work_sync() call out of sony_destroy_ff() since the state >>> worker >>> is used for the LEDs even when force-feedback is disabled. >>> >>> Remove sony_destroy_ff() to avoid a compiler warning since it is no longer >>> used. >>> >>> Signed-off-by: Frank Praznik >> >> Sorry, my comment might have been misleading. You have to add the "Cc: >> " line underneath/above your "Signed-off-by". >> This will send a notice to the stable guys once the patch is applied >> in Linus' tree. >> >> But that's also described in the file Greg posted. >> >> Cheers >> David >> > Actually, does this even need to go into stable? The issue doesn't > exist below kernel 3.14 since the LED system wasn't added until commit > 0a286ef278529f2bc4f4bb27c4cf99c05999c818 in December. Could this just > go into for-3.14/upstream-fixes and for-linus with the other pending > fixes? Sure. Thanks David -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] HID: sony: Fix work queue issues.
On Wed, Feb 19, 2014 at 1:41 PM, David Herrmann wrote: > Hi Frank > > On Wed, Feb 19, 2014 at 7:09 PM, Frank Praznik > wrote: >> Don't initialize force-feedback for devices that don't support it to avoid >> calls >> to schedule_work() with an uninitialized work_struct. >> >> Move the cancel_work_sync() call out of sony_destroy_ff() since the state >> worker >> is used for the LEDs even when force-feedback is disabled. >> >> Remove sony_destroy_ff() to avoid a compiler warning since it is no longer >> used. >> >> Signed-off-by: Frank Praznik > > Sorry, my comment might have been misleading. You have to add the "Cc: > " line underneath/above your "Signed-off-by". > This will send a notice to the stable guys once the patch is applied > in Linus' tree. > > But that's also described in the file Greg posted. > > Cheers > David > Actually, does this even need to go into stable? The issue doesn't exist below kernel 3.14 since the LED system wasn't added until commit 0a286ef278529f2bc4f4bb27c4cf99c05999c818 in December. Could this just go into for-3.14/upstream-fixes and for-linus with the other pending fixes? -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] HID: sony: Fix work queue issues.
Hi Frank On Wed, Feb 19, 2014 at 7:09 PM, Frank Praznik wrote: > Don't initialize force-feedback for devices that don't support it to avoid > calls > to schedule_work() with an uninitialized work_struct. > > Move the cancel_work_sync() call out of sony_destroy_ff() since the state > worker > is used for the LEDs even when force-feedback is disabled. > > Remove sony_destroy_ff() to avoid a compiler warning since it is no longer > used. > > Signed-off-by: Frank Praznik Sorry, my comment might have been misleading. You have to add the "Cc: " line underneath/above your "Signed-off-by". This will send a notice to the stable guys once the patch is applied in Linus' tree. But that's also described in the file Greg posted. Cheers David > --- > > This is a bugfix for 3.14. > > drivers/hid/hid-sony.c | 27 --- > 1 file changed, 12 insertions(+), 15 deletions(-) > > diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c > index 1235405..2f19b15 100644 > --- a/drivers/hid/hid-sony.c > +++ b/drivers/hid/hid-sony.c > @@ -42,6 +42,7 @@ > #define DUALSHOCK4_CONTROLLER_BT BIT(6) > > #define SONY_LED_SUPPORT (SIXAXIS_CONTROLLER_USB | BUZZ_CONTROLLER | > DUALSHOCK4_CONTROLLER_USB) > +#define SONY_FF_SUPPORT (SIXAXIS_CONTROLLER_USB | DUALSHOCK4_CONTROLLER_USB) > > #define MAX_LEDS 4 > > @@ -499,6 +500,7 @@ struct sony_sc { > __u8 right; > #endif > > + __u8 worker_initialized; > __u8 led_state[MAX_LEDS]; > __u8 led_count; > }; > @@ -993,22 +995,11 @@ static int sony_init_ff(struct hid_device *hdev) > return input_ff_create_memless(input_dev, NULL, sony_play_effect); > } > > -static void sony_destroy_ff(struct hid_device *hdev) > -{ > - struct sony_sc *sc = hid_get_drvdata(hdev); > - > - cancel_work_sync(&sc->state_worker); > -} > - > #else > static int sony_init_ff(struct hid_device *hdev) > { > return 0; > } > - > -static void sony_destroy_ff(struct hid_device *hdev) > -{ > -} > #endif > > static int sony_set_output_report(struct sony_sc *sc, int req_id, int > req_size) > @@ -1077,6 +1068,8 @@ static int sony_probe(struct hid_device *hdev, const > struct hid_device_id *id) > if (sc->quirks & SIXAXIS_CONTROLLER_USB) { > hdev->hid_output_raw_report = sixaxis_usb_output_raw_report; > ret = sixaxis_set_operational_usb(hdev); > + > + sc->worker_initialized = 1; > INIT_WORK(&sc->state_worker, sixaxis_state_worker); > } > else if (sc->quirks & SIXAXIS_CONTROLLER_BT) > @@ -1087,6 +1080,7 @@ static int sony_probe(struct hid_device *hdev, const > struct hid_device_id *id) > if (ret < 0) > goto err_stop; > > + sc->worker_initialized = 1; > INIT_WORK(&sc->state_worker, dualshock4_state_worker); > } else { > ret = 0; > @@ -1101,9 +1095,11 @@ static int sony_probe(struct hid_device *hdev, const > struct hid_device_id *id) > goto err_stop; > } > > - ret = sony_init_ff(hdev); > - if (ret < 0) > - goto err_stop; > + if (sc->quirks & SONY_FF_SUPPORT) { > + ret = sony_init_ff(hdev); > + if (ret < 0) > + goto err_stop; > + } > > return 0; > err_stop: > @@ -1120,7 +1116,8 @@ static void sony_remove(struct hid_device *hdev) > if (sc->quirks & SONY_LED_SUPPORT) > sony_leds_remove(hdev); > > - sony_destroy_ff(hdev); > + if (sc->worker_initialized) > + cancel_work_sync(&sc->state_worker); > > hid_hw_stop(hdev); > } > -- > 1.8.5.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] HID: sony: Fix work queue issues.
On Wed, Feb 19, 2014 at 01:09:22PM -0500, Frank Praznik wrote: > Don't initialize force-feedback for devices that don't support it to avoid > calls > to schedule_work() with an uninitialized work_struct. > > Move the cancel_work_sync() call out of sony_destroy_ff() since the state > worker > is used for the LEDs even when force-feedback is disabled. > > Remove sony_destroy_ff() to avoid a compiler warning since it is no longer > used. > > Signed-off-by: Frank Praznik > --- > > This is a bugfix for 3.14. > > drivers/hid/hid-sony.c | 27 --- > 1 file changed, 12 insertions(+), 15 deletions(-) This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read Documentation/stable_kernel_rules.txt for how to do this properly. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html