lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-id: <1554198011-24342-1-git-send-email-pankaj.dubey@samsung.com>
Date:   Tue, 02 Apr 2019 15:10:11 +0530
From:   Pankaj Dubey <pankaj.dubey@...sung.com>
To:     linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Cc:     mathias.nyman@...el.com, gregkh@...uxfoundation.org,
        jingoohan1@...il.com, krzk@...nel.org, mgautam@...eaurora.org,
        robin.murphy@....com, felipe.balbi@...ux.intel.com,
        Sriram Dash <sriram.dash@...sung.com>,
        Pankaj Dubey <pankaj.dubey@...sung.com>
Subject: [PATCH] usb: xhci: inherit dma_mask from bus if set correctly

From: Sriram Dash <sriram.dash@...sung.com>

The xhci forcefully converts the dma_mask to either 64 or 32 and the
dma-mask set by the bus is somewhat ignored. If the platform  sets the
correct dma_mask, then respect that.

Signed-off-by: Pankaj Dubey <pankaj.dubey@...sung.com>
Signed-off-by: Sriram Dash <sriram.dash@...sung.com>
---
 drivers/usb/host/xhci.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 005e659..55cf89e 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -5119,6 +5119,16 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
 		dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
 	}
 
+	/*
+	 * A platform may require coherent masks other than 64/32 bit, and we
+	 * should respect that. If the firmware has already requested for a
+	 * dma-range, we inherit the dma_mask presuming the platform knows
+	 * what it is doing.
+	 */
+
+	if (dev->bus_dma_mask)
+		dma_set_mask_and_coherent(dev, dev->bus_dma_mask);
+
 	xhci_dbg(xhci, "Calling HCD init\n");
 	/* Initialize HCD and host controller data structures. */
 	retval = xhci_init(hcd);
-- 
2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ