* [PATCHv2 0/2] hid: hid-pl.c update
@ 2026-02-16 13:43 Oliver Neukum
2026-02-16 13:44 ` [PATCHv2 1/2] hid: hid-pl: handle probe errors Oliver Neukum
2026-02-16 13:44 ` [PATCH 2/2] hid: hid-pl: eliminate private debug macro Oliver Neukum
0 siblings, 2 replies; 5+ messages in thread
From: Oliver Neukum @ 2026-02-16 13:43 UTC (permalink / raw)
To: jikos, bentiss, linux-input
This seems to have fallen through the cracks. The first
patch eliminates a failure to properly handle errors
in probe. We have to give up in the error case or
a pointer will remain uninitialized and wil eventually be followed.
Secondly we fix a debug macro by going to dynamic debugging.
V2: resend the full series
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCHv2 1/2] hid: hid-pl: handle probe errors
2026-02-16 13:43 [PATCHv2 0/2] hid: hid-pl.c update Oliver Neukum
@ 2026-02-16 13:44 ` Oliver Neukum
2026-02-26 15:06 ` Jiri Kosina
2026-02-16 13:44 ` [PATCH 2/2] hid: hid-pl: eliminate private debug macro Oliver Neukum
1 sibling, 1 reply; 5+ messages in thread
From: Oliver Neukum @ 2026-02-16 13:44 UTC (permalink / raw)
To: jikos, bentiss, linux-input; +Cc: Oliver Neukum, stable
Errors in init must be reported back or we'll
follow a NULL pointer the first time FF is used,
because plff_init() initializes the private member.
V2: resend full series
Fixes: 20eb127906709 ("hid: force feedback driver for PantherLord USB/PS2 2in1 Adapter")
Cc: <stable@vger.kernel.org>
Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
drivers/hid/hid-pl.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c
index 3c8827081dea..dc11d5322fc0 100644
--- a/drivers/hid/hid-pl.c
+++ b/drivers/hid/hid-pl.c
@@ -194,9 +194,14 @@ static int pl_probe(struct hid_device *hdev, const struct hid_device_id *id)
goto err;
}
- plff_init(hdev);
+ ret = plff_init(hdev);
+ if (ret)
+ goto stop;
return 0;
+
+stop:
+ hid_hw_stop(hdev);
err:
return ret;
}
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] hid: hid-pl: eliminate private debug macro
2026-02-16 13:43 [PATCHv2 0/2] hid: hid-pl.c update Oliver Neukum
2026-02-16 13:44 ` [PATCHv2 1/2] hid: hid-pl: handle probe errors Oliver Neukum
@ 2026-02-16 13:44 ` Oliver Neukum
2026-02-26 15:07 ` Jiri Kosina
1 sibling, 1 reply; 5+ messages in thread
From: Oliver Neukum @ 2026-02-16 13:44 UTC (permalink / raw)
To: jikos, bentiss, linux-input; +Cc: Oliver Neukum
Use proper dynamic debugging.
V2: resend full series
Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
drivers/hid/hid-pl.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c
index dc11d5322fc0..4b6b33597d11 100644
--- a/drivers/hid/hid-pl.c
+++ b/drivers/hid/hid-pl.c
@@ -24,10 +24,6 @@
*/
-/* #define DEBUG */
-
-#define debug(format, arg...) pr_debug("hid-plff: " format "\n" , ## arg)
-
#include <linux/input.h>
#include <linux/slab.h>
#include <linux/module.h>
@@ -53,14 +49,14 @@ static int hid_plff_play(struct input_dev *dev, void *data,
left = effect->u.rumble.strong_magnitude;
right = effect->u.rumble.weak_magnitude;
- debug("called with 0x%04x 0x%04x", left, right);
+ dev_dbg(&dev->dev, "called with 0x%04x 0x%04x", left, right);
left = left * plff->maxval / 0xffff;
right = right * plff->maxval / 0xffff;
*plff->strong = left;
*plff->weak = right;
- debug("running with 0x%02x 0x%02x", left, right);
+ dev_dbg(&dev->dev,"running with 0x%02x 0x%02x", left, right);
hid_hw_request(hid, plff->report, HID_REQ_SET_REPORT);
return 0;
@@ -119,7 +115,7 @@ static int plff_init(struct hid_device *hid)
report->field[0]->value[1] = 0x00;
strong = &report->field[0]->value[2];
weak = &report->field[0]->value[3];
- debug("detected single-field device");
+ dev_dbg(&hid->dev, "detected single-field device");
} else if (report->field[0]->maxusage == 1 &&
report->field[0]->usage[0].hid ==
(HID_UP_LED | 0x43) &&
@@ -134,7 +130,7 @@ static int plff_init(struct hid_device *hid)
weak = &report->field[3]->value[0];
if (hid->vendor == USB_VENDOR_ID_JESS2)
maxval = 0xff;
- debug("detected 4-field device");
+ dev_dbg(&hid->dev, "detected 4-field device");
} else {
hid_err(hid, "not enough fields or values\n");
return -ENODEV;
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCHv2 1/2] hid: hid-pl: handle probe errors
2026-02-16 13:44 ` [PATCHv2 1/2] hid: hid-pl: handle probe errors Oliver Neukum
@ 2026-02-26 15:06 ` Jiri Kosina
0 siblings, 0 replies; 5+ messages in thread
From: Jiri Kosina @ 2026-02-26 15:06 UTC (permalink / raw)
To: Oliver Neukum; +Cc: bentiss, linux-input, stable
On Mon, 16 Feb 2026, Oliver Neukum wrote:
> Errors in init must be reported back or we'll
> follow a NULL pointer the first time FF is used,
> because plff_init() initializes the private member.
>
> V2: resend full series
This one is in Linus' tree as 3756a272d2cf3 already.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] hid: hid-pl: eliminate private debug macro
2026-02-16 13:44 ` [PATCH 2/2] hid: hid-pl: eliminate private debug macro Oliver Neukum
@ 2026-02-26 15:07 ` Jiri Kosina
0 siblings, 0 replies; 5+ messages in thread
From: Jiri Kosina @ 2026-02-26 15:07 UTC (permalink / raw)
To: Oliver Neukum; +Cc: bentiss, linux-input
On Mon, 16 Feb 2026, Oliver Neukum wrote:
> Use proper dynamic debugging.
>
> V2: resend full series
>
> Signed-off-by: Oliver Neukum <oneukum@suse.com>
> ---
> drivers/hid/hid-pl.c | 12 ++++--------
> 1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c
> index dc11d5322fc0..4b6b33597d11 100644
> --- a/drivers/hid/hid-pl.c
> +++ b/drivers/hid/hid-pl.c
> @@ -24,10 +24,6 @@
> */
>
>
> -/* #define DEBUG */
> -
> -#define debug(format, arg...) pr_debug("hid-plff: " format "\n" , ## arg)
> -
> #include <linux/input.h>
> #include <linux/slab.h>
> #include <linux/module.h>
> @@ -53,14 +49,14 @@ static int hid_plff_play(struct input_dev *dev, void *data,
>
> left = effect->u.rumble.strong_magnitude;
> right = effect->u.rumble.weak_magnitude;
> - debug("called with 0x%04x 0x%04x", left, right);
> + dev_dbg(&dev->dev, "called with 0x%04x 0x%04x", left, right);
Can you please use hid_dbg() instead?
Thanks,
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-26 15:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-16 13:43 [PATCHv2 0/2] hid: hid-pl.c update Oliver Neukum
2026-02-16 13:44 ` [PATCHv2 1/2] hid: hid-pl: handle probe errors Oliver Neukum
2026-02-26 15:06 ` Jiri Kosina
2026-02-16 13:44 ` [PATCH 2/2] hid: hid-pl: eliminate private debug macro Oliver Neukum
2026-02-26 15:07 ` Jiri Kosina
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox