Messages in this thread | | | Subject | Re: [RFT PATCH] xhci: Fix memory leak when caching protocol extended capability PSI tables | From | Mathias Nyman <> | Date | Wed, 8 Jan 2020 17:56:50 +0200 |
| |
On 8.1.2020 17.40, Greg KH wrote: > On Wed, Jan 08, 2020 at 05:17:30PM +0200, Mathias Nyman wrote: >> xhci driver assumed that xHC controllers have at most one custom >> supported speed table (PSI) for all usb 3.x ports. >> Memory was allocated for one PSI table under the xhci hub structure. >> >> Turns out this is not the case, some controllers have a separate >> "supported protocol capability" entry with a PSI table for each port. >> This means each usb3 port can in theory support different custom speeds. > > Is there a "max" number of port capabilities that can happen? Or this > this truely dynamic?
Almost truly dynamic, each capability points to the next, last points to 0
But we can't have more "supported protocol capabilities" than xHC ports. (MaxPorts value in xHC HCSPARAMS1 register)
> >> + for (i = 0; i < xhci->num_port_caps; i++) { >> + kfree(xhci->port_caps[i].psi); >> + xhci->port_caps[i].psi = NULL; >> + } > > Nit, no need to set to NULL here :)
Thanks, will remove that
-Mathias
| |