Re: [PATCH 3/3] xhci: Free the command allocated for setting LPM if we return early

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx>
Link: https://lore.kernel.org/linux-usb/24263902-c9b3-ce29-237b-1c3d6918f4fe@xxxxxxxxxxxx
Tested-by: Mirsad Goran Todorovac <mirsad.todorovac@xxxxxxxxxxxx>
Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
Cc: <Stable@xxxxxxxxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
---
   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@xxxxxxxxxxxxxxx>
     Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>

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@xxxxxxxxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
---
  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




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux