drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
if registration succeeds without a bound driver, it breaks out without
unregistering the device.
dev->platform_device_sdr is assigned only after a driver is bound, so
rtl28xxu_tuner_detach() cannot unregister the unbound device later.
This leaves the registered platform device and its associated resources
allocated.
Split the registration failure and driver binding checks. Unregister
the successfully registered platform device when no driver is bound
before leaving the switch.
The issue was identified by a static analysis tool I developed and
confirmed by manual review.
Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
---
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 487c6ab784ab..3603d0cf638b 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1391,8 +1391,12 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
"rtl2832_sdr",
PLATFORM_DEVID_AUTO,
&pdata, sizeof(pdata));
- if (IS_ERR(pdev) || pdev->dev.driver == NULL)
+ if (IS_ERR(pdev))
break;
+ if (!pdev->dev.driver) {
+ platform_device_unregister(pdev);
+ break;
+ }
dev->platform_device_sdr = pdev;
break;
default:
--
2.43.0
On 21/09/2026 10:15, Guangshuo Li wrote:
> rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
> if registration succeeds without a bound driver, it breaks out without
> unregistering the device.
>
> dev->platform_device_sdr is assigned only after a driver is bound, so
> rtl28xxu_tuner_detach() cannot unregister the unbound device later.
> This leaves the registered platform device and its associated resources
> allocated.
>
> Split the registration failure and driver binding checks. Unregister
> the successfully registered platform device when no driver is bound
> before leaving the switch.
>
> The issue was identified by a static analysis tool I developed and
> confirmed by manual review.
>
> Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
> ---
> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> index 487c6ab784ab..3603d0cf638b 100644
> --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> @@ -1391,8 +1391,12 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
> "rtl2832_sdr",
> PLATFORM_DEVID_AUTO,
> &pdata, sizeof(pdata));
> - if (IS_ERR(pdev) || pdev->dev.driver == NULL)
> + if (IS_ERR(pdev))
> break;
> + if (!pdev->dev.driver) {
> + platform_device_unregister(pdev);
> + break;
> + }
Looking at other drivers, I think this is incomplete.
drivers/media/usb/dvb-usb-v2/zd1301.c, line 142, does it correct. Note the
try_module_get() call that is missing in rtl28xxu.c.
Regards,
Hans
> dev->platform_device_sdr = pdev;
> break;
> default:
Hi Hans,
On Wed, 23 Sept 2026 at 16:49, Hans Verkuil <hverkuil+cisco@kernel.org> wrote:
>
> On 21/09/2026 10:15, Guangshuo Li wrote:
> > rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
> > if registration succeeds without a bound driver, it breaks out without
> > unregistering the device.
> >
> > dev->platform_device_sdr is assigned only after a driver is bound, so
> > rtl28xxu_tuner_detach() cannot unregister the unbound device later.
> > This leaves the registered platform device and its associated resources
> > allocated.
> >
> > Split the registration failure and driver binding checks. Unregister
> > the successfully registered platform device when no driver is bound
> > before leaving the switch.
> >
> > The issue was identified by a static analysis tool I developed and
> > confirmed by manual review.
> >
> > Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
> > ---
> > drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> > index 487c6ab784ab..3603d0cf638b 100644
> > --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> > +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> > @@ -1391,8 +1391,12 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
> > "rtl2832_sdr",
> > PLATFORM_DEVID_AUTO,
> > &pdata, sizeof(pdata));
> > - if (IS_ERR(pdev) || pdev->dev.driver == NULL)
> > + if (IS_ERR(pdev))
> > break;
> > + if (!pdev->dev.driver) {
> > + platform_device_unregister(pdev);
> > + break;
> > + }
>
> Looking at other drivers, I think this is incomplete.
>
> drivers/media/usb/dvb-usb-v2/zd1301.c, line 142, does it correct. Note the
> try_module_get() call that is missing in rtl28xxu.c.
>
> Regards,
>
> Hans
>
> > dev->platform_device_sdr = pdev;
> > break;
> > default:
>
Thanks for pointing that out. I'll follow the zd1301.c pattern, add the
missing try_module_get()/module_put() pair, and include it in v2.
Thanks,
Guangshuo
On Mon, 21 Sep 2026 16:15:42 +0800, Guangshuo Li wrote:
> rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
> if registration succeeds without a bound driver, it breaks out without
> unregistering the device.
>
> dev->platform_device_sdr is assigned only after a driver is bound, so
> rtl28xxu_tuner_detach() cannot unregister the unbound device later.
> This leaves the registered platform device and its associated resources
> allocated.
>
> Split the registration failure and driver binding checks. Unregister
> the successfully registered platform device when no driver is bound
> before leaving the switch.
>
> The issue was identified by a static analysis tool I developed and
> confirmed by manual review.
>
> Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
> ---
> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
You sent multiple independent patches, to multiple independent
subsystems. The amount of these patches clearly suggest this was
AI generated and most likely not tested.
More importantly, you sent all this work without properly organizing
relevant patches into patchsets. This makes reviewing difficult
and might cause multiple reviewers to address the same issue.
Replying to the entire set is impossible and requires handling each
patch independently, instead of applying or discarding the set.
Maintainers also won't see the bigger picture of your work. Quite
worrying.
This is on the verge of hostile patch: bomb us with so many
contributions, we won't be able to handle them in efficient manner,
like responding ONCE to ask you to slow down. Considering all this
is untested and LLM generated, I have even more doubts whether this
should be considered for review.
Please read kernel documentation BEFORE posting more work. It will
explain you how to identify subsystems, how to organize your work per
subsystem, how to document usage of LLM and how what you should not
do if this was posted in a good faith.
Best regards,
Krzysztof
On 21/09/2026 17:17, krzk@kernel.org wrote:
>
> On Mon, 21 Sep 2026 16:15:42 +0800, Guangshuo Li wrote:
>> rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
>> if registration succeeds without a bound driver, it breaks out without
>> unregistering the device.
>>
>> dev->platform_device_sdr is assigned only after a driver is bound, so
>> rtl28xxu_tuner_detach() cannot unregister the unbound device later.
>> This leaves the registered platform device and its associated resources
>> allocated.
>>
>> Split the registration failure and driver binding checks. Unregister
>> the successfully registered platform device when no driver is bound
>> before leaving the switch.
>>
>> The issue was identified by a static analysis tool I developed and
>> confirmed by manual review.
>>
>> Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
>> ---
>> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>
>
> You sent multiple independent patches, to multiple independent
> subsystems. The amount of these patches clearly suggest this was
> AI generated and most likely not tested.
>
> More importantly, you sent all this work without properly organizing
> relevant patches into patchsets. This makes reviewing difficult
> and might cause multiple reviewers to address the same issue.
> Replying to the entire set is impossible and requires handling each
> patch independently, instead of applying or discarding the set.
> Maintainers also won't see the bigger picture of your work. Quite
> worrying.
>
> This is on the verge of hostile patch: bomb us with so many
> contributions, we won't be able to handle them in efficient manner,
> like responding ONCE to ask you to slow down. Considering all this
> is untested and LLM generated, I have even more doubts whether this
> should be considered for review.
>
> Please read kernel documentation BEFORE posting more work. It will
> explain you how to identify subsystems, how to organize your work per
> subsystem, how to document usage of LLM and how what you should not
> do if this was posted in a good faith.
>
Apologies for spamming here, mistake on my side.
I guess the OpenClaw on the other side did not even notice...
Best regards,
Krzysztof
On Mon, 21 Sep 2026 16:15:42 +0800, Guangshuo Li wrote:
> rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
> if registration succeeds without a bound driver, it breaks out without
> unregistering the device.
>
> dev->platform_device_sdr is assigned only after a driver is bound, so
> rtl28xxu_tuner_detach() cannot unregister the unbound device later.
> This leaves the registered platform device and its associated resources
> allocated.
>
> Split the registration failure and driver binding checks. Unregister
> the successfully registered platform device when no driver is bound
> before leaving the switch.
>
> The issue was identified by a static analysis tool I developed and
> confirmed by manual review.
>
> Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
> ---
> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
You sent multiple independent patches, to multiple independent
subsystems. The amount of these patches clearly suggest this was
AI generated and most likely not tested.
More importantly, you sent all this work without properly organizing
relevant patches into patchsets. This makes reviewing difficult
and might cause multiple reviewers to address the same issue.
Replying to the entire set is impossible and requires handling each
patch independently, instead of applying or discarding the set.
Maintainers also won't see the bigger picture of your work. Quite
worrying.
This is on the verge of hostile patch: bomb us with so many
contributions, we won't be able to handle them in efficient manner,
like responding ONCE to ask you to slow down. Considering all this
is untested and LLM generated, I have even more doubts whether this
should be considered for review.
Please read kernel documentation BEFORE posting more work. It will
explain you how to identify subsystems, how to organize your work per
subsystem, how to document usage of LLM and how what you should not
do if this was posted in a good faith.
Best regards,
Krzysztof
On Mon, 21 Sep 2026 16:15:42 +0800, Guangshuo Li wrote:
> rtl2832u_tuner_attach() registers an rtl2832_sdr platform device, but
> if registration succeeds without a bound driver, it breaks out without
> unregistering the device.
>
> dev->platform_device_sdr is assigned only after a driver is bound, so
> rtl28xxu_tuner_detach() cannot unregister the unbound device later.
> This leaves the registered platform device and its associated resources
> allocated.
>
> Split the registration failure and driver binding checks. Unregister
> the successfully registered platform device when no driver is bound
> before leaving the switch.
>
> The issue was identified by a static analysis tool I developed and
> confirmed by manual review.
>
> Fixes: a2f7f220df5e ("[media] rtl28xxu: switch SDR module to platform driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
> ---
> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
You sent multiple independent patches, to multiple independent
subsystems. The amount of these patches clearly suggest this was
AI generated and most likely not tested.
More importantly, you sent all this work without properly organizing
relevant patches into patchsets. This makes reviewing difficult
and might cause multiple reviewers to address the same issue.
Replying to the entire set is impossible and requires handling each
patch independently, instead of applying or discarding the set.
Maintainers also won't see the bigger picture of your work. Quite
worrying.
This is on the verge of hostile patch: bomb us with so many
contributions, we won't be able to handle them in efficient manner,
like responding ONCE to ask you to slow down. Considering all this
is untested and LLM generated, I have even more doubts whether this
should be considered for review.
Please read kernel documentation BEFORE posting more work. It will
explain you how to identify subsystems, how to organize your work per
subsystem, how to document usage of LLM and how what you should not
do if this was posted in a good faith.
Best regards,
Krzysztof
© 2016 - 2026 Red Hat, Inc.