* [PATCH 1/2] usb: xhci: fix wild pointers in xhci_mem_cleanup @ 2016-03-25 14:33 Lu Baolu 2016-03-25 14:33 ` [PATCH 2/2] usb: xhci: remove hardcoded gfp_t in xhci_mem_init Lu Baolu 0 siblings, 1 reply; 2+ messages in thread From: Lu Baolu @ 2016-03-25 14:33 UTC (permalink / raw) To: Mathias Nyman Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, Lu Baolu, stable This patch fixes some wild pointers produced by xhci_mem_cleanup. These wild pointers will cause system crash if xhci_mem_cleanup() is called twice. Reported-and-tested-by: Pengcheng Li <lpc.li@hisilicon.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Cc: stable@vger.kernel.org --- drivers/usb/host/xhci-mem.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index 80c1de2..bad0d1f 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -1861,6 +1861,12 @@ no_bw: kfree(xhci->rh_bw); kfree(xhci->ext_caps); + xhci->usb2_ports = NULL; + xhci->usb3_ports = NULL; + xhci->port_array = NULL; + xhci->rh_bw = NULL; + xhci->ext_caps = NULL; + xhci->page_size = 0; xhci->page_shift = 0; xhci->bus_state[0].bus_suspended = 0; -- 2.1.4 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] usb: xhci: remove hardcoded gfp_t in xhci_mem_init 2016-03-25 14:33 [PATCH 1/2] usb: xhci: fix wild pointers in xhci_mem_cleanup Lu Baolu @ 2016-03-25 14:33 ` Lu Baolu 0 siblings, 0 replies; 2+ messages in thread From: Lu Baolu @ 2016-03-25 14:33 UTC (permalink / raw) To: Mathias Nyman; +Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, Lu Baolu xhci_mem_init() should use @flags, instead of hardcode, for DMA memory allocation. Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> --- drivers/usb/host/xhci-mem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index bad0d1f..7c2f884 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -2365,8 +2365,8 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) * Section 5.4.8 - doorbell array must be * "physically contiguous and 64-byte (cache line) aligned". */ - xhci->dcbaa = dma_alloc_coherent(dev, sizeof(*xhci->dcbaa), &dma, - GFP_KERNEL); + xhci->dcbaa = dma_alloc_coherent(dev, sizeof(*xhci->dcbaa), + &dma, flags); if (!xhci->dcbaa) goto fail; memset(xhci->dcbaa, 0, sizeof *(xhci->dcbaa)); @@ -2462,7 +2462,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) xhci->erst.entries = dma_alloc_coherent(dev, sizeof(struct xhci_erst_entry) * ERST_NUM_SEGS, &dma, - GFP_KERNEL); + flags); if (!xhci->erst.entries) goto fail; xhci_dbg_trace(xhci, trace_xhci_dbg_init, -- 2.1.4 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-03-25 14:34 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-25 14:33 [PATCH 1/2] usb: xhci: fix wild pointers in xhci_mem_cleanup Lu Baolu 2016-03-25 14:33 ` [PATCH 2/2] usb: xhci: remove hardcoded gfp_t in xhci_mem_init Lu Baolu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox