1
0
Fork 0

xhci: Fix ring leak in failure path of xhci_alloc_virt_device()

This is a stable-only fix for the backport of commit 5d9b70f7d5
("xhci: Don't add a virt_dev to the devs array before it's fully
allocated").

In branches that predate commit c5628a2af8 ("xhci: remove endpoint
ring cache") there is an additional failure path in
xhci_alloc_virt_device() where ring cache allocation fails, in
which case we need to free the ring allocated for endpoint 0.

Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Cc: Mathias Nyman <mathias.nyman@intel.com>
steinar/wifi_calib_4_9_kernel
Ben Hutchings 2018-01-11 17:01:36 +00:00 committed by Greg Kroah-Hartman
parent 135f98084e
commit 66bb6c2c44
1 changed files with 2 additions and 1 deletions

View File

@ -1086,7 +1086,8 @@ int xhci_alloc_virt_device(struct xhci_hcd *xhci, int slot_id,
return 1;
fail:
if (dev->eps[0].ring)
xhci_ring_free(xhci, dev->eps[0].ring);
if (dev->in_ctx)
xhci_free_container_ctx(xhci, dev->in_ctx);
if (dev->out_ctx)