mbox series

[0/3] USB: dwc3: qcom: fix resource leaks on probe deferral

Message ID 20231117173650.21161-1-johan+linaro@kernel.org (mailing list archive)
Headers show
Series USB: dwc3: qcom: fix resource leaks on probe deferral | expand

Message

Johan Hovold Nov. 17, 2023, 5:36 p.m. UTC
When reviewing the recently submitted series which reworks the dwc3 qcom
glue implementation [1], I noticed that the driver's tear down handling
is currently broken, something which can lead to memory leaks and
potentially use-after-free issues on probe deferral and on driver
unbind.

Let's get this sorted before reworking driver.

Note that the last patch has only been compile tested as I don't have
access to a sdm845 device.

Johan

[1] https://lore.kernel.org/lkml/20231016-dwc3-refactor-v1-0-ab4a84165470@quicinc.com/


Johan Hovold (3):
  USB: dwc3: qcom: fix resource leaks on probe deferral
  USB: dwc3: qcom: fix software node leak on probe errors
  USB: dwc3: qcom: fix ACPI platform device leak

 drivers/usb/dwc3/dwc3-qcom.c | 57 +++++++++++++++++++++++++++---------
 1 file changed, 43 insertions(+), 14 deletions(-)

Comments

Konrad Dybcio Nov. 17, 2023, 11:47 p.m. UTC | #1
On 17.11.2023 18:36, Johan Hovold wrote:
> When reviewing the recently submitted series which reworks the dwc3 qcom
> glue implementation [1], I noticed that the driver's tear down handling
> is currently broken, something which can lead to memory leaks and
> potentially use-after-free issues on probe deferral and on driver
> unbind.
> 
> Let's get this sorted before reworking driver.
> 
> Note that the last patch has only been compile tested as I don't have
> access to a sdm845 device.
> 
> Johan
I'll sound like a broken record, but:

is there anyone in the world that is actively benefiting from this failed
experiment of using the ACPI tables that were shipped with these SoCs?

There are so so so many shortcomings associated with it due to how Windows
drivers on these platforms know waaaay too much and largely use ACPI to
"bind driver x" and I simply think it doesn't make sense to continue
carrying this code forward given little use and no testing.

Konrad
Andrew Halaney Nov. 20, 2023, 3:22 p.m. UTC | #2
On Sat, Nov 18, 2023 at 12:47:30AM +0100, Konrad Dybcio wrote:
> On 17.11.2023 18:36, Johan Hovold wrote:
> > When reviewing the recently submitted series which reworks the dwc3 qcom
> > glue implementation [1], I noticed that the driver's tear down handling
> > is currently broken, something which can lead to memory leaks and
> > potentially use-after-free issues on probe deferral and on driver
> > unbind.
> > 
> > Let's get this sorted before reworking driver.
> > 
> > Note that the last patch has only been compile tested as I don't have
> > access to a sdm845 device.
> > 
> > Johan
> I'll sound like a broken record, but:
> 
> is there anyone in the world that is actively benefiting from this failed
> experiment of using the ACPI tables that were shipped with these SoCs?
> 
> There are so so so many shortcomings associated with it due to how Windows
> drivers on these platforms know waaaay too much and largely use ACPI to
> "bind driver x" and I simply think it doesn't make sense to continue
> carrying this code forward given little use and no testing.
> 
> Konrad
> 

For what it is worth, I have agreed with your opinion on this every time
I've read it. I am not the target audience of the question, but I'll at
least give my personal (interpreted: uneducated? undesired?) opinion
that the ACPI support in here adds little value and extra burden.

Of course that topic is a bit independent of this series, but I'd be
curious if a patchset removing the support would be welcomed or not by
maintainers, so I'm stirring the pot by replying here :)

Thanks,
Andrew
Johan Hovold Nov. 20, 2023, 4:53 p.m. UTC | #3
On Mon, Nov 20, 2023 at 09:22:54AM -0600, Andrew Halaney wrote:
> On Sat, Nov 18, 2023 at 12:47:30AM +0100, Konrad Dybcio wrote:
> > On 17.11.2023 18:36, Johan Hovold wrote:
> > > When reviewing the recently submitted series which reworks the dwc3 qcom
> > > glue implementation [1], I noticed that the driver's tear down handling
> > > is currently broken, something which can lead to memory leaks and
> > > potentially use-after-free issues on probe deferral and on driver
> > > unbind.
> > > 
> > > Let's get this sorted before reworking driver.
> > > 
> > > Note that the last patch has only been compile tested as I don't have
> > > access to a sdm845 device.

> > I'll sound like a broken record, but:
> > 
> > is there anyone in the world that is actively benefiting from this failed
> > experiment of using the ACPI tables that were shipped with these SoCs?
> > 
> > There are so so so many shortcomings associated with it due to how Windows
> > drivers on these platforms know waaaay too much and largely use ACPI to
> > "bind driver x" and I simply think it doesn't make sense to continue
> > carrying this code forward given little use and no testing.

> For what it is worth, I have agreed with your opinion on this every time
> I've read it. I am not the target audience of the question, but I'll at
> least give my personal (interpreted: uneducated? undesired?) opinion
> that the ACPI support in here adds little value and extra burden.
> 
> Of course that topic is a bit independent of this series, but I'd be
> curious if a patchset removing the support would be welcomed or not by
> maintainers, so I'm stirring the pot by replying here :)

I agree that if we can remove the ACPI hacks in here, we should try do
so (e.g. given that no one really uses it anymore).

As Andrew already mentioned, that is a separate issue not directly
related to this series, though.

Removing it before reworking the dwc3 binding [1] and adding multiport
support [2] should simplify both of those series quite a bit, however.

Johan

[1] https://lore.kernel.org/all/20231016-dwc3-refactor-v1-0-ab4a84165470@quicinc.com/
[2] https://lore.kernel.org/all/20231007154806.605-1-quic_kriskura@quicinc.com/
Greg Kroah-Hartman Nov. 21, 2023, 2:21 p.m. UTC | #4
On Mon, Nov 20, 2023 at 05:53:10PM +0100, Johan Hovold wrote:
> On Mon, Nov 20, 2023 at 09:22:54AM -0600, Andrew Halaney wrote:
> > On Sat, Nov 18, 2023 at 12:47:30AM +0100, Konrad Dybcio wrote:
> > > On 17.11.2023 18:36, Johan Hovold wrote:
> > > > When reviewing the recently submitted series which reworks the dwc3 qcom
> > > > glue implementation [1], I noticed that the driver's tear down handling
> > > > is currently broken, something which can lead to memory leaks and
> > > > potentially use-after-free issues on probe deferral and on driver
> > > > unbind.
> > > > 
> > > > Let's get this sorted before reworking driver.
> > > > 
> > > > Note that the last patch has only been compile tested as I don't have
> > > > access to a sdm845 device.
> 
> > > I'll sound like a broken record, but:
> > > 
> > > is there anyone in the world that is actively benefiting from this failed
> > > experiment of using the ACPI tables that were shipped with these SoCs?
> > > 
> > > There are so so so many shortcomings associated with it due to how Windows
> > > drivers on these platforms know waaaay too much and largely use ACPI to
> > > "bind driver x" and I simply think it doesn't make sense to continue
> > > carrying this code forward given little use and no testing.
> 
> > For what it is worth, I have agreed with your opinion on this every time
> > I've read it. I am not the target audience of the question, but I'll at
> > least give my personal (interpreted: uneducated? undesired?) opinion
> > that the ACPI support in here adds little value and extra burden.
> > 
> > Of course that topic is a bit independent of this series, but I'd be
> > curious if a patchset removing the support would be welcomed or not by
> > maintainers, so I'm stirring the pot by replying here :)
> 
> I agree that if we can remove the ACPI hacks in here, we should try do
> so (e.g. given that no one really uses it anymore).
> 
> As Andrew already mentioned, that is a separate issue not directly
> related to this series, though.
> 
> Removing it before reworking the dwc3 binding [1] and adding multiport
> support [2] should simplify both of those series quite a bit, however.
> 
> Johan
> 
> [1] https://lore.kernel.org/all/20231016-dwc3-refactor-v1-0-ab4a84165470@quicinc.com/
> [2] https://lore.kernel.org/all/20231007154806.605-1-quic_kriskura@quicinc.com/
> 

So should I apply this series now or not?

confused,

greg k-h
Johan Hovold Nov. 21, 2023, 3:04 p.m. UTC | #5
On Tue, Nov 21, 2023 at 03:21:34PM +0100, Greg Kroah-Hartman wrote:
> On Mon, Nov 20, 2023 at 05:53:10PM +0100, Johan Hovold wrote:
> > On Mon, Nov 20, 2023 at 09:22:54AM -0600, Andrew Halaney wrote:
> > > On Sat, Nov 18, 2023 at 12:47:30AM +0100, Konrad Dybcio wrote:
> > > > On 17.11.2023 18:36, Johan Hovold wrote:
> > > > > When reviewing the recently submitted series which reworks the dwc3 qcom
> > > > > glue implementation [1], I noticed that the driver's tear down handling
> > > > > is currently broken, something which can lead to memory leaks and
> > > > > potentially use-after-free issues on probe deferral and on driver
> > > > > unbind.
> > > > > 
> > > > > Let's get this sorted before reworking driver.
> > > > > 
> > > > > Note that the last patch has only been compile tested as I don't have
> > > > > access to a sdm845 device.
> > 
> > > > I'll sound like a broken record, but:
> > > > 
> > > > is there anyone in the world that is actively benefiting from this failed
> > > > experiment of using the ACPI tables that were shipped with these SoCs?

> > I agree that if we can remove the ACPI hacks in here, we should try do
> > so (e.g. given that no one really uses it anymore).
> > 
> > As Andrew already mentioned, that is a separate issue not directly
> > related to this series, though.
> > 
> > Removing it before reworking the dwc3 binding [1] and adding multiport
> > support [2] should simplify both of those series quite a bit, however.

> > [1] https://lore.kernel.org/all/20231016-dwc3-refactor-v1-0-ab4a84165470@quicinc.com/
> > [2] https://lore.kernel.org/all/20231007154806.605-1-quic_kriskura@quicinc.com/
> > 
> 
> So should I apply this series now or not?

Please do. Removing ACPI support should be done later if that's at all
possible.

Johan
Greg Kroah-Hartman Nov. 21, 2023, 6:03 p.m. UTC | #6
On Tue, Nov 21, 2023 at 04:04:03PM +0100, Johan Hovold wrote:
> On Tue, Nov 21, 2023 at 03:21:34PM +0100, Greg Kroah-Hartman wrote:
> > On Mon, Nov 20, 2023 at 05:53:10PM +0100, Johan Hovold wrote:
> > > On Mon, Nov 20, 2023 at 09:22:54AM -0600, Andrew Halaney wrote:
> > > > On Sat, Nov 18, 2023 at 12:47:30AM +0100, Konrad Dybcio wrote:
> > > > > On 17.11.2023 18:36, Johan Hovold wrote:
> > > > > > When reviewing the recently submitted series which reworks the dwc3 qcom
> > > > > > glue implementation [1], I noticed that the driver's tear down handling
> > > > > > is currently broken, something which can lead to memory leaks and
> > > > > > potentially use-after-free issues on probe deferral and on driver
> > > > > > unbind.
> > > > > > 
> > > > > > Let's get this sorted before reworking driver.
> > > > > > 
> > > > > > Note that the last patch has only been compile tested as I don't have
> > > > > > access to a sdm845 device.
> > > 
> > > > > I'll sound like a broken record, but:
> > > > > 
> > > > > is there anyone in the world that is actively benefiting from this failed
> > > > > experiment of using the ACPI tables that were shipped with these SoCs?
> 
> > > I agree that if we can remove the ACPI hacks in here, we should try do
> > > so (e.g. given that no one really uses it anymore).
> > > 
> > > As Andrew already mentioned, that is a separate issue not directly
> > > related to this series, though.
> > > 
> > > Removing it before reworking the dwc3 binding [1] and adding multiport
> > > support [2] should simplify both of those series quite a bit, however.
> 
> > > [1] https://lore.kernel.org/all/20231016-dwc3-refactor-v1-0-ab4a84165470@quicinc.com/
> > > [2] https://lore.kernel.org/all/20231007154806.605-1-quic_kriskura@quicinc.com/
> > > 
> > 
> > So should I apply this series now or not?
> 
> Please do. Removing ACPI support should be done later if that's at all
> possible.

Great, now queued up, thanks.

greg k-h