All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] xhci fixes for usb-linus
@ 2023-03-30 14:30 Mathias Nyman
  2023-03-30 14:30 ` [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu Mathias Nyman
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Mathias Nyman @ 2023-03-30 14:30 UTC (permalink / raw)
  To: gregkh; +Cc: linux-usb, Mathias Nyman

Hi Greg

A few small patches for usb-linus.
Reverting xhci-pci asynchronous probe due to Renesas host regression, and
fixing a memory leak.

Thanks
Mathias

D Scott Phillips (1):
  xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu

Mathias Nyman (2):
  Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS"
  xhci: Free the command allocated for setting LPM if we return early

 drivers/usb/host/xhci-pci.c | 7 +++----
 drivers/usb/host/xhci.c     | 7 ++++++-
 2 files changed, 9 insertions(+), 5 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
  2023-03-30 14:30 [PATCH 0/3] xhci fixes for usb-linus Mathias Nyman
@ 2023-03-30 14:30 ` Mathias Nyman
  2023-03-30 14:40   ` Greg KH
  2023-03-30 14:30 ` [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" Mathias Nyman
  2023-03-30 14:30 ` [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early Mathias Nyman
  2 siblings, 1 reply; 16+ messages in thread
From: Mathias Nyman @ 2023-03-30 14:30 UTC (permalink / raw)
  To: gregkh; +Cc: linux-usb, D Scott Phillips, Marc Zyngier, Mathias Nyman

From: D Scott Phillips <scott@os.amperecomputing.com>

Previously the quirk was skipped when no iommu was present. The same
rationale for skipping the quirk also applies in the iommu.passthrough=1
case.

Skip applying the XHCI_ZERO_64B_REGS quirk if the device's iommu domain is
passthrough.

Fixes: 12de0a35c996 ("xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers")
Signed-off-by: D Scott Phillips <scott@os.amperecomputing.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
---
 drivers/usb/host/xhci.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 6183ce8574b1..bdb6dd819a3b 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -9,6 +9,7 @@
  */
 
 #include <linux/pci.h>
+#include <linux/iommu.h>
 #include <linux/iopoll.h>
 #include <linux/irq.h>
 #include <linux/log2.h>
@@ -228,6 +229,7 @@ int xhci_reset(struct xhci_hcd *xhci, u64 timeout_us)
 static void xhci_zero_64b_regs(struct xhci_hcd *xhci)
 {
 	struct device *dev = xhci_to_hcd(xhci)->self.sysdev;
+	struct iommu_domain *domain;
 	int err, i;
 	u64 val;
 	u32 intrs;
@@ -246,7 +248,9 @@ static void xhci_zero_64b_regs(struct xhci_hcd *xhci)
 	 * an iommu. Doing anything when there is no iommu is definitely
 	 * unsafe...
 	 */
-	if (!(xhci->quirks & XHCI_ZERO_64B_REGS) || !device_iommu_mapped(dev))
+	domain = iommu_get_domain_for_dev(dev);
+	if (!(xhci->quirks & XHCI_ZERO_64B_REGS) || !domain ||
+	    domain->type == IOMMU_DOMAIN_IDENTITY)
 		return;
 
 	xhci_info(xhci, "Zeroing 64bit base registers, expecting fault\n");
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS"
  2023-03-30 14:30 [PATCH 0/3] xhci fixes for usb-linus Mathias Nyman
  2023-03-30 14:30 ` [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu Mathias Nyman
@ 2023-03-30 14:30 ` Mathias Nyman
  2023-03-30 14:40   ` Greg KH
  2023-03-30 14:30 ` [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early Mathias Nyman
  2 siblings, 1 reply; 16+ messages in thread
From: Mathias Nyman @ 2023-03-30 14:30 UTC (permalink / raw)
  To: gregkh; +Cc: linux-usb, Mathias Nyman

This reverts commit 4c2604a9a6899bab195edbee35fc8d64ce1444aa.

Asynch probe caused regression in a setup with both Renesas and Intel xHC
controllers. Devices connected to the Renesas disconnected shortly after
boot. With Asynch probe the busnumbers got interleaved.

xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4

Reason why this commit causes regression is still unknown, but revert it
while debugging the issue.

Link: https://lore.kernel.org/linux-usb/20230307132120.5897c5af@deangelis.fenrir.org.uk
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
---
 drivers/usb/host/xhci-pci.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index fb988e4ea924..6db07ca419c3 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -771,12 +771,11 @@ static struct pci_driver xhci_pci_driver = {
 	/* suspend and resume implemented later */
 
 	.shutdown = 	usb_hcd_pci_shutdown,
-	.driver = {
 #ifdef CONFIG_PM
-		.pm = &usb_hcd_pci_pm_ops,
-#endif
-		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
+	.driver = {
+		.pm = &usb_hcd_pci_pm_ops
 	},
+#endif
 };
 
 static int __init xhci_pci_init(void)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-03-30 14:30 [PATCH 0/3] xhci fixes for usb-linus Mathias Nyman
  2023-03-30 14:30 ` [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu Mathias Nyman
  2023-03-30 14:30 ` [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" Mathias Nyman
@ 2023-03-30 14:30 ` Mathias Nyman
  2023-04-03  7:17   ` Mirsad Goran Todorovac
  2 siblings, 1 reply; 16+ messages in thread
From: Mathias Nyman @ 2023-03-30 14:30 UTC (permalink / raw)
  To: gregkh; +Cc: linux-usb, Mathias Nyman, Mirsad Goran Todorovac, Stable

The command allocated to set exit latency LPM values need to be freed in
case the command is never queued. This would be the case if there is no
change in exit latency values, or device is missing.

Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
---
 drivers/usb/host/xhci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index bdb6dd819a3b..6307bae9cddf 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
 
 	if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
 		spin_unlock_irqrestore(&xhci->lock, flags);
+		xhci_free_command(xhci, command);
 		return 0;
 	}
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS"
  2023-03-30 14:30 ` [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" Mathias Nyman
@ 2023-03-30 14:40   ` Greg KH
  2023-03-31  7:29     ` Mathias Nyman
  0 siblings, 1 reply; 16+ messages in thread
From: Greg KH @ 2023-03-30 14:40 UTC (permalink / raw)
  To: Mathias Nyman; +Cc: linux-usb

On Thu, Mar 30, 2023 at 05:30:55PM +0300, Mathias Nyman wrote:
> This reverts commit 4c2604a9a6899bab195edbee35fc8d64ce1444aa.
> 
> Asynch probe caused regression in a setup with both Renesas and Intel xHC
> controllers. Devices connected to the Renesas disconnected shortly after
> boot. With Asynch probe the busnumbers got interleaved.
> 
> xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
> xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
> xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
> xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4
> 
> Reason why this commit causes regression is still unknown, but revert it
> while debugging the issue.
> 
> Link: https://lore.kernel.org/linux-usb/20230307132120.5897c5af@deangelis.fenrir.org.uk
> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>

I'll add a Fixes: and cc: stable on this, ok?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
  2023-03-30 14:30 ` [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu Mathias Nyman
@ 2023-03-30 14:40   ` Greg KH
  2023-03-31  7:35     ` Mathias Nyman
  0 siblings, 1 reply; 16+ messages in thread
From: Greg KH @ 2023-03-30 14:40 UTC (permalink / raw)
  To: Mathias Nyman; +Cc: linux-usb, D Scott Phillips, Marc Zyngier

On Thu, Mar 30, 2023 at 05:30:54PM +0300, Mathias Nyman wrote:
> From: D Scott Phillips <scott@os.amperecomputing.com>
> 
> Previously the quirk was skipped when no iommu was present. The same
> rationale for skipping the quirk also applies in the iommu.passthrough=1
> case.
> 
> Skip applying the XHCI_ZERO_64B_REGS quirk if the device's iommu domain is
> passthrough.
> 
> Fixes: 12de0a35c996 ("xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers")

Why not also for stable?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS"
  2023-03-30 14:40   ` Greg KH
@ 2023-03-31  7:29     ` Mathias Nyman
  0 siblings, 0 replies; 16+ messages in thread
From: Mathias Nyman @ 2023-03-31  7:29 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-usb

On 30.3.2023 17.40, Greg KH wrote:
> On Thu, Mar 30, 2023 at 05:30:55PM +0300, Mathias Nyman wrote:
>> This reverts commit 4c2604a9a6899bab195edbee35fc8d64ce1444aa.
>>
>> Asynch probe caused regression in a setup with both Renesas and Intel xHC
>> controllers. Devices connected to the Renesas disconnected shortly after
>> boot. With Asynch probe the busnumbers got interleaved.
>>
>> xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
>> xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
>> xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
>> xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4
>>
>> Reason why this commit causes regression is still unknown, but revert it
>> while debugging the issue.
>>
>> Link: https://lore.kernel.org/linux-usb/20230307132120.5897c5af@deangelis.fenrir.org.uk
>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> 
> I'll add a Fixes: and cc: stable on this, ok?

Yes, please.

Thanks
Mathias


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
  2023-03-30 14:40   ` Greg KH
@ 2023-03-31  7:35     ` Mathias Nyman
  2023-03-31  7:40       ` Greg KH
  0 siblings, 1 reply; 16+ messages in thread
From: Mathias Nyman @ 2023-03-31  7:35 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-usb, D Scott Phillips, Marc Zyngier

On 30.3.2023 17.40, Greg KH wrote:
> On Thu, Mar 30, 2023 at 05:30:54PM +0300, Mathias Nyman wrote:
>> From: D Scott Phillips <scott@os.amperecomputing.com>
>>
>> Previously the quirk was skipped when no iommu was present. The same
>> rationale for skipping the quirk also applies in the iommu.passthrough=1
>> case.
>>
>> Skip applying the XHCI_ZERO_64B_REGS quirk if the device's iommu domain is
>> passthrough.
>>
>> Fixes: 12de0a35c996 ("xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers")
> 
> Why not also for stable?

Ah, yes, this should go to stable as well.

Thanks
Mathias


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
  2023-03-31  7:35     ` Mathias Nyman
@ 2023-03-31  7:40       ` Greg KH
  0 siblings, 0 replies; 16+ messages in thread
From: Greg KH @ 2023-03-31  7:40 UTC (permalink / raw)
  To: Mathias Nyman; +Cc: linux-usb, D Scott Phillips, Marc Zyngier

On Fri, Mar 31, 2023 at 10:35:07AM +0300, Mathias Nyman wrote:
> On 30.3.2023 17.40, Greg KH wrote:
> > On Thu, Mar 30, 2023 at 05:30:54PM +0300, Mathias Nyman wrote:
> > > From: D Scott Phillips <scott@os.amperecomputing.com>
> > > 
> > > Previously the quirk was skipped when no iommu was present. The same
> > > rationale for skipping the quirk also applies in the iommu.passthrough=1
> > > case.
> > > 
> > > Skip applying the XHCI_ZERO_64B_REGS quirk if the device's iommu domain is
> > > passthrough.
> > > 
> > > Fixes: 12de0a35c996 ("xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers")
> > 
> > Why not also for stable?
> 
> Ah, yes, this should go to stable as well.

Thanks for confirming these, as you noticed, all are applied to my tree
now.

greg k-h

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-03-30 14:30 ` [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early Mathias Nyman
@ 2023-04-03  7:17   ` Mirsad Goran Todorovac
  2023-04-03  7:24     ` Greg KH
  0 siblings, 1 reply; 16+ messages in thread
From: Mirsad Goran Todorovac @ 2023-04-03  7:17 UTC (permalink / raw)
  To: Mathias Nyman, gregkh; +Cc: linux-usb, Stable

Hi, Mathias!

On 30.3.2023. 16:30, Mathias Nyman wrote:
> The command allocated to set exit latency LPM values need to be freed in
> case the command is never queued. This would be the case if there is no
> change in exit latency values, or device is missing.
> 
> Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
> Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
> Cc: <Stable@vger.kernel.org>
> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> ---
>   drivers/usb/host/xhci.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> index bdb6dd819a3b..6307bae9cddf 100644
> --- a/drivers/usb/host/xhci.c
> +++ b/drivers/usb/host/xhci.c
> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>   
>   	if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>   		spin_unlock_irqrestore(&xhci->lock, flags);
> +		xhci_free_command(xhci, command);
>   		return 0;
>   	}

There seems to be a problem with applying this patch with "git am", as it
gives the following:

commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
Author: @ <@>
Date:   Mon Apr 3 08:42:33 2023 +0200

     The command allocated to set exit latency LPM values need to be freed in
     case the command is never queued. This would be the case if there is no
     change in exit latency values, or device is missing.

     Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
     Cc: <Stable@vger.kernel.org>
     Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>

Thank you.

Best regards,
Mirsad

-- 
Mirsad Todorovac
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb
Republic of Croatia, the European Union

Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-04-03  7:17   ` Mirsad Goran Todorovac
@ 2023-04-03  7:24     ` Greg KH
  2023-04-03  7:57       ` Mirsad Goran Todorovac
  0 siblings, 1 reply; 16+ messages in thread
From: Greg KH @ 2023-04-03  7:24 UTC (permalink / raw)
  To: Mirsad Goran Todorovac; +Cc: Mathias Nyman, linux-usb, Stable

On Mon, Apr 03, 2023 at 09:17:21AM +0200, Mirsad Goran Todorovac wrote:
> Hi, Mathias!
> 
> On 30.3.2023. 16:30, Mathias Nyman wrote:
> > The command allocated to set exit latency LPM values need to be freed in
> > case the command is never queued. This would be the case if there is no
> > change in exit latency values, or device is missing.
> > 
> > Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> > Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
> > Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> > Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
> > Cc: <Stable@vger.kernel.org>
> > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> > ---
> >   drivers/usb/host/xhci.c | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> > index bdb6dd819a3b..6307bae9cddf 100644
> > --- a/drivers/usb/host/xhci.c
> > +++ b/drivers/usb/host/xhci.c
> > @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
> >   	if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
> >   		spin_unlock_irqrestore(&xhci->lock, flags);
> > +		xhci_free_command(xhci, command);
> >   		return 0;
> >   	}
> 
> There seems to be a problem with applying this patch with "git am", as it
> gives the following:
> 
> commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
> Author: @ <@>
> Date:   Mon Apr 3 08:42:33 2023 +0200
> 
>     The command allocated to set exit latency LPM values need to be freed in
>     case the command is never queued. This would be the case if there is no
>     change in exit latency values, or device is missing.
> 
>     Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>     Cc: <Stable@vger.kernel.org>
>     Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>

This is already commit f6caea485555 ("xhci: Free the command allocated
for setting LPM if we return early") in Linus's tree, do you not see it
there?

And how exactly did you save the message to apply it with 'git am'?  It
worked for me.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-04-03  7:24     ` Greg KH
@ 2023-04-03  7:57       ` Mirsad Goran Todorovac
  2023-04-03  8:01         ` Mirsad Goran Todorovac
  0 siblings, 1 reply; 16+ messages in thread
From: Mirsad Goran Todorovac @ 2023-04-03  7:57 UTC (permalink / raw)
  To: Greg KH; +Cc: Mathias Nyman, linux-usb, Stable

On 3.4.2023. 9:24, Greg KH wrote:
> On Mon, Apr 03, 2023 at 09:17:21AM +0200, Mirsad Goran Todorovac wrote:
>> Hi, Mathias!
>>
>> On 30.3.2023. 16:30, Mathias Nyman wrote:
>>> The command allocated to set exit latency LPM values need to be freed in
>>> case the command is never queued. This would be the case if there is no
>>> change in exit latency values, or device is missing.
>>>
>>> Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>> Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
>>> Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>> Cc: <Stable@vger.kernel.org>
>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>> ---
>>>    drivers/usb/host/xhci.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>> index bdb6dd819a3b..6307bae9cddf 100644
>>> --- a/drivers/usb/host/xhci.c
>>> +++ b/drivers/usb/host/xhci.c
>>> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>>>    	if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>>>    		spin_unlock_irqrestore(&xhci->lock, flags);
>>> +		xhci_free_command(xhci, command);
>>>    		return 0;
>>>    	}
>>
>> There seems to be a problem with applying this patch with "git am", as it
>> gives the following:
>>
>> commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
>> Author: @ <@>
>> Date:   Mon Apr 3 08:42:33 2023 +0200
>>
>>      The command allocated to set exit latency LPM values need to be freed in
>>      case the command is never queued. This would be the case if there is no
>>      change in exit latency values, or device is missing.
>>
>>      Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>      Cc: <Stable@vger.kernel.org>
>>      Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> 
> This is already commit f6caea485555 ("xhci: Free the command allocated
> for setting LPM if we return early") in Linus's tree, do you not see it
> there?
> 
> And how exactly did you save the message to apply it with 'git am'?  It
> worked for me.
> 
> thanks,
> 
> greg k-h

git am ../mathias-xhci.mail

mtodorov@domac:~/linux/kernel/linux_torvalds$ cat ../mathias-xhci.mail
From: Mathias Nyman @ 2023-03-27  9:50 UTC (permalink / raw)
   To: mirsad.todorovac, linux-usb, linux-kernel
   Cc: gregkh, ubuntu-devel-discuss, stern, arnd, Mathias Nyman, Stable

The command allocated to set exit latency LPM values need to be freed in
case the command is never queued. This would be the case if there is no
change in exit latency values, or device is missing.

Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
---
  drivers/usb/host/xhci.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index bdb6dd819a3b..6307bae9cddf 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,

         if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
                 spin_unlock_irqrestore(&xhci->lock, flags);
+               xhci_free_command(xhci, command);
                 return 0;
         }

--
2.25.1

Sorry, no commit f6caea485555 in the "git pull":

mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | grep f6caea485555
mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | head -10
10de4cefccf7 memstick: fix memory leak if card device is never registered
feeedf59897c platform/x86: think-lmi: Clean up display of current_value on Thinkstation
86cebdbfb8d2 platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings
ff9de97baa02 The command allocated to set exit latency LPM values need to be freed in case the command is never queued. This would 
be the case if there is no change in exit latency values, or device is missing.
2ac6d07f1a81 platform/x86: think-lmi: Fix memory leak when showing current settings
7e364e56293b Linux 6.3-rc5
6ab608fe852b Merge tag 'for-6.3-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
f95b8ea79c47 Revert "venus: firmware: Correct non-pix start and end addresses"
a10ca0950afe Merge tag 'driver-core-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
95d0b9d89d78 Merge tag 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
You have mail in /var/mail/mtodorov
mtodorov@domac:~/linux/kernel/linux_torvalds$

I don't see it here either. But it is not critical (no security issue).

Have a nice day!

Best regards,
Mirsad

-- 
Mirsad Todorovac
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb
Republic of Croatia, the European Union

Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-04-03  7:57       ` Mirsad Goran Todorovac
@ 2023-04-03  8:01         ` Mirsad Goran Todorovac
  2023-04-03  8:28           ` Greg KH
  0 siblings, 1 reply; 16+ messages in thread
From: Mirsad Goran Todorovac @ 2023-04-03  8:01 UTC (permalink / raw)
  To: Greg KH; +Cc: Mathias Nyman, linux-usb, Stable

On 3.4.2023. 9:57, Mirsad Goran Todorovac wrote:
> On 3.4.2023. 9:24, Greg KH wrote:
>> On Mon, Apr 03, 2023 at 09:17:21AM +0200, Mirsad Goran Todorovac wrote:
>>> Hi, Mathias!
>>>
>>> On 30.3.2023. 16:30, Mathias Nyman wrote:
>>>> The command allocated to set exit latency LPM values need to be freed in
>>>> case the command is never queued. This would be the case if there is no
>>>> change in exit latency values, or device is missing.
>>>>
>>>> Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>>> Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
>>>> Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>>> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>>> Cc: <Stable@vger.kernel.org>
>>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>>> ---
>>>>    drivers/usb/host/xhci.c | 1 +
>>>>    1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>>> index bdb6dd819a3b..6307bae9cddf 100644
>>>> --- a/drivers/usb/host/xhci.c
>>>> +++ b/drivers/usb/host/xhci.c
>>>> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>>>>        if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>>>>            spin_unlock_irqrestore(&xhci->lock, flags);
>>>> +        xhci_free_command(xhci, command);
>>>>            return 0;
>>>>        }
>>>
>>> There seems to be a problem with applying this patch with "git am", as it
>>> gives the following:
>>>
>>> commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
>>> Author: @ <@>
>>> Date:   Mon Apr 3 08:42:33 2023 +0200
>>>
>>>      The command allocated to set exit latency LPM values need to be freed in
>>>      case the command is never queued. This would be the case if there is no
>>>      change in exit latency values, or device is missing.
>>>
>>>      Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>>      Cc: <Stable@vger.kernel.org>
>>>      Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>
>> This is already commit f6caea485555 ("xhci: Free the command allocated
>> for setting LPM if we return early") in Linus's tree, do you not see it
>> there?
>>
>> And how exactly did you save the message to apply it with 'git am'?  It
>> worked for me.
>>
>> thanks,
>>
>> greg k-h
> 
> git am ../mathias-xhci.mail
> 
> mtodorov@domac:~/linux/kernel/linux_torvalds$ cat ../mathias-xhci.mail
> From: Mathias Nyman @ 2023-03-27  9:50 UTC (permalink / raw)
>    To: mirsad.todorovac, linux-usb, linux-kernel
>    Cc: gregkh, ubuntu-devel-discuss, stern, arnd, Mathias Nyman, Stable
> 
> The command allocated to set exit latency LPM values need to be freed in
> case the command is never queued. This would be the case if there is no
> change in exit latency values, or device is missing.
> 
> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
> Cc: <Stable@vger.kernel.org>
> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> ---
>   drivers/usb/host/xhci.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> index bdb6dd819a3b..6307bae9cddf 100644
> --- a/drivers/usb/host/xhci.c
> +++ b/drivers/usb/host/xhci.c
> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
> 
>          if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>                  spin_unlock_irqrestore(&xhci->lock, flags);
> +               xhci_free_command(xhci, command);
>                  return 0;
>          }
> 
> -- 
> 2.25.1
> 
> Sorry, no commit f6caea485555 in the "git pull":
> 
> mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | grep f6caea485555
> mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | head -10
> 10de4cefccf7 memstick: fix memory leak if card device is never registered
> feeedf59897c platform/x86: think-lmi: Clean up display of current_value on Thinkstation
> 86cebdbfb8d2 platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings
> ff9de97baa02 The command allocated to set exit latency LPM values need to be freed in case the command is never queued. This would 
> be the case if there is no change in exit latency values, or device is missing.
> 2ac6d07f1a81 platform/x86: think-lmi: Fix memory leak when showing current settings
> 7e364e56293b Linux 6.3-rc5
> 6ab608fe852b Merge tag 'for-6.3-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
> f95b8ea79c47 Revert "venus: firmware: Correct non-pix start and end addresses"
> a10ca0950afe Merge tag 'driver-core-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
> 95d0b9d89d78 Merge tag 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
> You have mail in /var/mail/mtodorov
> mtodorov@domac:~/linux/kernel/linux_torvalds$
> 
> I don't see it here either. But it is not critical (no security issue).
> 
> Have a nice day!

P.S.

Correction.

Yes, I found it here:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f6caea4855553a8b99ba3ec23ecdb5ed8262f26c

"Notice: this object is not reachable from any branch."

I see Murphy's law in action :-)

Best regards,
Mirsad

-- 
Mirsad Todorovac
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb
Republic of Croatia, the European Union

Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-04-03  8:01         ` Mirsad Goran Todorovac
@ 2023-04-03  8:28           ` Greg KH
  2023-04-03  8:36             ` Mirsad Goran Todorovac
  2023-04-03 12:33             ` Mirsad Goran Todorovac
  0 siblings, 2 replies; 16+ messages in thread
From: Greg KH @ 2023-04-03  8:28 UTC (permalink / raw)
  To: Mirsad Goran Todorovac; +Cc: Mathias Nyman, linux-usb, Stable

On Mon, Apr 03, 2023 at 10:01:22AM +0200, Mirsad Goran Todorovac wrote:
> On 3.4.2023. 9:57, Mirsad Goran Todorovac wrote:
> > On 3.4.2023. 9:24, Greg KH wrote:
> > > On Mon, Apr 03, 2023 at 09:17:21AM +0200, Mirsad Goran Todorovac wrote:
> > > > Hi, Mathias!
> > > > 
> > > > On 30.3.2023. 16:30, Mathias Nyman wrote:
> > > > > The command allocated to set exit latency LPM values need to be freed in
> > > > > case the command is never queued. This would be the case if there is no
> > > > > change in exit latency values, or device is missing.
> > > > > 
> > > > > Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> > > > > Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
> > > > > Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> > > > > Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
> > > > > Cc: <Stable@vger.kernel.org>
> > > > > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> > > > > ---
> > > > >    drivers/usb/host/xhci.c | 1 +
> > > > >    1 file changed, 1 insertion(+)
> > > > > 
> > > > > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> > > > > index bdb6dd819a3b..6307bae9cddf 100644
> > > > > --- a/drivers/usb/host/xhci.c
> > > > > +++ b/drivers/usb/host/xhci.c
> > > > > @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
> > > > >        if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
> > > > >            spin_unlock_irqrestore(&xhci->lock, flags);
> > > > > +        xhci_free_command(xhci, command);
> > > > >            return 0;
> > > > >        }
> > > > 
> > > > There seems to be a problem with applying this patch with "git am", as it
> > > > gives the following:
> > > > 
> > > > commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
> > > > Author: @ <@>
> > > > Date:   Mon Apr 3 08:42:33 2023 +0200
> > > > 
> > > >      The command allocated to set exit latency LPM values need to be freed in
> > > >      case the command is never queued. This would be the case if there is no
> > > >      change in exit latency values, or device is missing.
> > > > 
> > > >      Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
> > > >      Cc: <Stable@vger.kernel.org>
> > > >      Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> > > 
> > > This is already commit f6caea485555 ("xhci: Free the command allocated
> > > for setting LPM if we return early") in Linus's tree, do you not see it
> > > there?
> > > 
> > > And how exactly did you save the message to apply it with 'git am'?  It
> > > worked for me.
> > > 
> > > thanks,
> > > 
> > > greg k-h
> > 
> > git am ../mathias-xhci.mail
> > 
> > mtodorov@domac:~/linux/kernel/linux_torvalds$ cat ../mathias-xhci.mail
> > From: Mathias Nyman @ 2023-03-27  9:50 UTC (permalink / raw)
> >    To: mirsad.todorovac, linux-usb, linux-kernel
> >    Cc: gregkh, ubuntu-devel-discuss, stern, arnd, Mathias Nyman, Stable
> > 
> > The command allocated to set exit latency LPM values need to be freed in
> > case the command is never queued. This would be the case if there is no
> > change in exit latency values, or device is missing.
> > 
> > Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
> > Cc: <Stable@vger.kernel.org>
> > Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>

That is very odd, your mail program is not getting the full mbox
information here at all.  Try downloading it from lore.kernel.org as a
raw message:
	https://lore.kernel.org/all/20230330143056.1390020-4-mathias.nyman@linux.intel.com/raw
and applying that?

> > ---
> >   drivers/usb/host/xhci.c | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> > index bdb6dd819a3b..6307bae9cddf 100644
> > --- a/drivers/usb/host/xhci.c
> > +++ b/drivers/usb/host/xhci.c
> > @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
> > 
> >          if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
> >                  spin_unlock_irqrestore(&xhci->lock, flags);
> > +               xhci_free_command(xhci, command);
> >                  return 0;
> >          }
> > 
> > -- 
> > 2.25.1
> > 
> > Sorry, no commit f6caea485555 in the "git pull":
> > 
> > mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | grep f6caea485555
> > mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | head -10
> > 10de4cefccf7 memstick: fix memory leak if card device is never registered
> > feeedf59897c platform/x86: think-lmi: Clean up display of current_value on Thinkstation
> > 86cebdbfb8d2 platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings
> > ff9de97baa02 The command allocated to set exit latency LPM values need
> > to be freed in case the command is never queued. This would be the case
> > if there is no change in exit latency values, or device is missing.
> > 2ac6d07f1a81 platform/x86: think-lmi: Fix memory leak when showing current settings
> > 7e364e56293b Linux 6.3-rc5
> > 6ab608fe852b Merge tag 'for-6.3-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
> > f95b8ea79c47 Revert "venus: firmware: Correct non-pix start and end addresses"
> > a10ca0950afe Merge tag 'driver-core-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
> > 95d0b9d89d78 Merge tag 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
> > You have mail in /var/mail/mtodorov
> > mtodorov@domac:~/linux/kernel/linux_torvalds$
> > 
> > I don't see it here either. But it is not critical (no security issue).
> > 
> > Have a nice day!
> 
> P.S.
> 
> Correction.
> 
> Yes, I found it here:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f6caea4855553a8b99ba3ec23ecdb5ed8262f26c
> 
> "Notice: this object is not reachable from any branch."
> 
> I see Murphy's law in action :-)

Ah, sorry, no, my fault, it's in my usb.git tree and hasn't been sent to
Linus yet, that will happen later this week.  It is also in the
linux-next tree if you want to look there.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-04-03  8:28           ` Greg KH
@ 2023-04-03  8:36             ` Mirsad Goran Todorovac
  2023-04-03 12:33             ` Mirsad Goran Todorovac
  1 sibling, 0 replies; 16+ messages in thread
From: Mirsad Goran Todorovac @ 2023-04-03  8:36 UTC (permalink / raw)
  To: Greg KH; +Cc: Mathias Nyman, linux-usb, Stable

On 3.4.2023. 10:28, Greg KH wrote:
> On Mon, Apr 03, 2023 at 10:01:22AM +0200, Mirsad Goran Todorovac wrote:
>> On 3.4.2023. 9:57, Mirsad Goran Todorovac wrote:
>>> On 3.4.2023. 9:24, Greg KH wrote:
>>>> On Mon, Apr 03, 2023 at 09:17:21AM +0200, Mirsad Goran Todorovac wrote:
>>>>> Hi, Mathias!
>>>>>
>>>>> On 30.3.2023. 16:30, Mathias Nyman wrote:
>>>>>> The command allocated to set exit latency LPM values need to be freed in
>>>>>> case the command is never queued. This would be the case if there is no
>>>>>> change in exit latency values, or device is missing.
>>>>>>
>>>>>> Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>>>>> Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
>>>>>> Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>>>>> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>>>>> Cc: <Stable@vger.kernel.org>
>>>>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>>>>> ---
>>>>>>     drivers/usb/host/xhci.c | 1 +
>>>>>>     1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>>>>> index bdb6dd819a3b..6307bae9cddf 100644
>>>>>> --- a/drivers/usb/host/xhci.c
>>>>>> +++ b/drivers/usb/host/xhci.c
>>>>>> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>>>>>>         if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>>>>>>             spin_unlock_irqrestore(&xhci->lock, flags);
>>>>>> +        xhci_free_command(xhci, command);
>>>>>>             return 0;
>>>>>>         }
>>>>>
>>>>> There seems to be a problem with applying this patch with "git am", as it
>>>>> gives the following:
>>>>>
>>>>> commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
>>>>> Author: @ <@>
>>>>> Date:   Mon Apr 3 08:42:33 2023 +0200
>>>>>
>>>>>       The command allocated to set exit latency LPM values need to be freed in
>>>>>       case the command is never queued. This would be the case if there is no
>>>>>       change in exit latency values, or device is missing.
>>>>>
>>>>>       Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>>>>       Cc: <Stable@vger.kernel.org>
>>>>>       Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>>>
>>>> This is already commit f6caea485555 ("xhci: Free the command allocated
>>>> for setting LPM if we return early") in Linus's tree, do you not see it
>>>> there?
>>>>
>>>> And how exactly did you save the message to apply it with 'git am'?  It
>>>> worked for me.
>>>>
>>>> thanks,
>>>>
>>>> greg k-h
>>>
>>> git am ../mathias-xhci.mail
>>>
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$ cat ../mathias-xhci.mail
>>> From: Mathias Nyman @ 2023-03-27  9:50 UTC (permalink / raw)
>>>     To: mirsad.todorovac, linux-usb, linux-kernel
>>>     Cc: gregkh, ubuntu-devel-discuss, stern, arnd, Mathias Nyman, Stable
>>>
>>> The command allocated to set exit latency LPM values need to be freed in
>>> case the command is never queued. This would be the case if there is no
>>> change in exit latency values, or device is missing.
>>>
>>> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>> Cc: <Stable@vger.kernel.org>
>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> 
> That is very odd, your mail program is not getting the full mbox
> information here at all.  Try downloading it from lore.kernel.org as a
> raw message:
> 	https://lore.kernel.org/all/20230330143056.1390020-4-mathias.nyman@linux.intel.com/raw
> and applying that?
> 
>>> ---
>>>    drivers/usb/host/xhci.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>> index bdb6dd819a3b..6307bae9cddf 100644
>>> --- a/drivers/usb/host/xhci.c
>>> +++ b/drivers/usb/host/xhci.c
>>> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>>>
>>>           if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>>>                   spin_unlock_irqrestore(&xhci->lock, flags);
>>> +               xhci_free_command(xhci, command);
>>>                   return 0;
>>>           }
>>>
>>> -- 
>>> 2.25.1
>>>
>>> Sorry, no commit f6caea485555 in the "git pull":
>>>
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | grep f6caea485555
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | head -10
>>> 10de4cefccf7 memstick: fix memory leak if card device is never registered
>>> feeedf59897c platform/x86: think-lmi: Clean up display of current_value on Thinkstation
>>> 86cebdbfb8d2 platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings
>>> ff9de97baa02 The command allocated to set exit latency LPM values need
>>> to be freed in case the command is never queued. This would be the case
>>> if there is no change in exit latency values, or device is missing.
>>> 2ac6d07f1a81 platform/x86: think-lmi: Fix memory leak when showing current settings
>>> 7e364e56293b Linux 6.3-rc5
>>> 6ab608fe852b Merge tag 'for-6.3-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
>>> f95b8ea79c47 Revert "venus: firmware: Correct non-pix start and end addresses"
>>> a10ca0950afe Merge tag 'driver-core-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
>>> 95d0b9d89d78 Merge tag 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
>>> You have mail in /var/mail/mtodorov
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$
>>>
>>> I don't see it here either. But it is not critical (no security issue).
>>>
>>> Have a nice day!
>>
>> P.S.
>>
>> Correction.
>>
>> Yes, I found it here:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f6caea4855553a8b99ba3ec23ecdb5ed8262f26c
>>
>> "Notice: this object is not reachable from any branch."
>>
>> I see Murphy's law in action :-)
> 
> Ah, sorry, no, my fault, it's in my usb.git tree and hasn't been sent to
> Linus yet, that will happen later this week.  It is also in the
> linux-next tree if you want to look there.

No problem.

I have applied the patch manually, downloaded from here:
https://lore.kernel.org/lkml/20230327095019.1017159-1-mathias.nyman@linux.intel.com/

It's no big deal, I have somehow made it work.

Eventually it will propagate to the vanilla build Torvalds tree.

It's good that it's closed, I waited five months to fix this, so a day or week is
no big difference ... Great experience assisting your team.

Now I have to make something for my day job.

Regards,
Mirsad

-- 
Mirsad Todorovac
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb
Republic of Croatia, the European Union

Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early
  2023-04-03  8:28           ` Greg KH
  2023-04-03  8:36             ` Mirsad Goran Todorovac
@ 2023-04-03 12:33             ` Mirsad Goran Todorovac
  1 sibling, 0 replies; 16+ messages in thread
From: Mirsad Goran Todorovac @ 2023-04-03 12:33 UTC (permalink / raw)
  To: Greg KH; +Cc: Mathias Nyman, linux-usb, Stable

On 3.4.2023. 10:28, Greg KH wrote:
> On Mon, Apr 03, 2023 at 10:01:22AM +0200, Mirsad Goran Todorovac wrote:
>> On 3.4.2023. 9:57, Mirsad Goran Todorovac wrote:
>>> On 3.4.2023. 9:24, Greg KH wrote:
>>>> On Mon, Apr 03, 2023 at 09:17:21AM +0200, Mirsad Goran Todorovac wrote:
>>>>> Hi, Mathias!
>>>>>
>>>>> On 30.3.2023. 16:30, Mathias Nyman wrote:
>>>>>> The command allocated to set exit latency LPM values need to be freed in
>>>>>> case the command is never queued. This would be the case if there is no
>>>>>> change in exit latency values, or device is missing.
>>>>>>
>>>>>> Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>>>>> Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@alu.unizg.hr
>>>>>> Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
>>>>>> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>>>>> Cc: <Stable@vger.kernel.org>
>>>>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>>>>> ---
>>>>>>     drivers/usb/host/xhci.c | 1 +
>>>>>>     1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>>>>> index bdb6dd819a3b..6307bae9cddf 100644
>>>>>> --- a/drivers/usb/host/xhci.c
>>>>>> +++ b/drivers/usb/host/xhci.c
>>>>>> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>>>>>>         if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>>>>>>             spin_unlock_irqrestore(&xhci->lock, flags);
>>>>>> +        xhci_free_command(xhci, command);
>>>>>>             return 0;
>>>>>>         }
>>>>>
>>>>> There seems to be a problem with applying this patch with "git am", as it
>>>>> gives the following:
>>>>>
>>>>> commit ff9de97baa02cb9362b7cb81e95bc9be424cab89
>>>>> Author: @ <@>
>>>>> Date:   Mon Apr 3 08:42:33 2023 +0200
>>>>>
>>>>>       The command allocated to set exit latency LPM values need to be freed in
>>>>>       case the command is never queued. This would be the case if there is no
>>>>>       change in exit latency values, or device is missing.
>>>>>
>>>>>       Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>>>>       Cc: <Stable@vger.kernel.org>
>>>>>       Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>>>>
>>>> This is already commit f6caea485555 ("xhci: Free the command allocated
>>>> for setting LPM if we return early") in Linus's tree, do you not see it
>>>> there?
>>>>
>>>> And how exactly did you save the message to apply it with 'git am'?  It
>>>> worked for me.
>>>>
>>>> thanks,
>>>>
>>>> greg k-h
>>>
>>> git am ../mathias-xhci.mail
>>>
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$ cat ../mathias-xhci.mail
>>> From: Mathias Nyman @ 2023-03-27  9:50 UTC (permalink / raw)
>>>     To: mirsad.todorovac, linux-usb, linux-kernel
>>>     Cc: gregkh, ubuntu-devel-discuss, stern, arnd, Mathias Nyman, Stable
>>>
>>> The command allocated to set exit latency LPM values need to be freed in
>>> case the command is never queued. This would be the case if there is no
>>> change in exit latency values, or device is missing.
>>>
>>> Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
>>> Cc: <Stable@vger.kernel.org>
>>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> 
> That is very odd, your mail program is not getting the full mbox
> information here at all.  Try downloading it from lore.kernel.org as a
> raw message:
> 	https://lore.kernel.org/all/20230330143056.1390020-4-mathias.nyman@linux.intel.com/raw
> and applying that?
> 
>>> ---
>>>    drivers/usb/host/xhci.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>> index bdb6dd819a3b..6307bae9cddf 100644
>>> --- a/drivers/usb/host/xhci.c
>>> +++ b/drivers/usb/host/xhci.c
>>> @@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
>>>
>>>           if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
>>>                   spin_unlock_irqrestore(&xhci->lock, flags);
>>> +               xhci_free_command(xhci, command);
>>>                   return 0;
>>>           }
>>>
>>> -- 
>>> 2.25.1
>>>
>>> Sorry, no commit f6caea485555 in the "git pull":
>>>
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | grep f6caea485555
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$ git log --oneline | head -10
>>> 10de4cefccf7 memstick: fix memory leak if card device is never registered
>>> feeedf59897c platform/x86: think-lmi: Clean up display of current_value on Thinkstation
>>> 86cebdbfb8d2 platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings
>>> ff9de97baa02 The command allocated to set exit latency LPM values need
>>> to be freed in case the command is never queued. This would be the case
>>> if there is no change in exit latency values, or device is missing.
>>> 2ac6d07f1a81 platform/x86: think-lmi: Fix memory leak when showing current settings
>>> 7e364e56293b Linux 6.3-rc5
>>> 6ab608fe852b Merge tag 'for-6.3-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
>>> f95b8ea79c47 Revert "venus: firmware: Correct non-pix start and end addresses"
>>> a10ca0950afe Merge tag 'driver-core-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
>>> 95d0b9d89d78 Merge tag 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
>>> You have mail in /var/mail/mtodorov
>>> mtodorov@domac:~/linux/kernel/linux_torvalds$
>>>
>>> I don't see it here either. But it is not critical (no security issue).
>>>
>>> Have a nice day!
>>
>> P.S.
>>
>> Correction.
>>
>> Yes, I found it here:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f6caea4855553a8b99ba3ec23ecdb5ed8262f26c
>>
>> "Notice: this object is not reachable from any branch."
>>
>> I see Murphy's law in action :-)
> 
> Ah, sorry, no, my fault, it's in my usb.git tree and hasn't been sent to
> Linus yet, that will happen later this week.  It is also in the
> linux-next tree if you want to look there.
> 
> thanks,

Not at all. Thank you for the hint for the new Lore link.

The new build also compiled w/o problems and the leak appears patched in the
original setting that triggered it in the first place:

[root@pc-mtodorov kernel]# uname -rms
Linux 6.3.0-rc5-mt-20230401-00007-g268a637be362 x86_64
[root@pc-mtodorov kernel]# echo scan > /sys/kernel/debug/kmemleak
[root@pc-mtodorov kernel]# cat /sys/kernel/debug/kmemleak
[root@pc-mtodorov kernel]# echo scan > /sys/kernel/debug/kmemleak
[root@pc-mtodorov kernel]# cat /sys/kernel/debug/kmemleak
[root@pc-mtodorov kernel]# echo scan > /sys/kernel/debug/kmemleak
[root@pc-mtodorov kernel]# cat /sys/kernel/debug/kmemleak
[root@pc-mtodorov kernel]#

However, there is a lot of homework to catch up on the Linux kernel drivers
for me ... This was beginner's luck to find.

Given enough time and at high enough improbability level, a bunch of monkeys
could have found it ;-)

Regards,
Mirsad

-- 
Mirsad Todorovac
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb
Republic of Croatia, the European Union

Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-04-03 12:33 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-30 14:30 [PATCH 0/3] xhci fixes for usb-linus Mathias Nyman
2023-03-30 14:30 ` [PATCH 1/3] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu Mathias Nyman
2023-03-30 14:40   ` Greg KH
2023-03-31  7:35     ` Mathias Nyman
2023-03-31  7:40       ` Greg KH
2023-03-30 14:30 ` [PATCH 2/3] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" Mathias Nyman
2023-03-30 14:40   ` Greg KH
2023-03-31  7:29     ` Mathias Nyman
2023-03-30 14:30 ` [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early Mathias Nyman
2023-04-03  7:17   ` Mirsad Goran Todorovac
2023-04-03  7:24     ` Greg KH
2023-04-03  7:57       ` Mirsad Goran Todorovac
2023-04-03  8:01         ` Mirsad Goran Todorovac
2023-04-03  8:28           ` Greg KH
2023-04-03  8:36             ` Mirsad Goran Todorovac
2023-04-03 12:33             ` Mirsad Goran Todorovac

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.