[PATCH 0/2] HID: amd_sfh: Minor DMA mapping bugfixes

STALE1847d

6 messages, 3 authors, 2021-07-28 · open the first message on its own page

[PATCH 0/2] HID: amd_sfh: Minor DMA mapping bugfixes

From: Dylan MacKenzie <hidden>
Date: 2021-06-22 00:15:43

While preparing to investigate
https://bugzilla.kernel.org/show_bug.cgi?id=212615, I read through the amd_sfh
driver and saw two (unrelated) bugs in the logic that sets the DMA mask.
Ultimately these are harmless, but they should probably get fixed.

FYI, this is my first time submitting a kernel patch. If I've done something
wrong in formatting this email, it is likely due to incompetence rather than
malice.

Dylan MacKenzie (2):
  HID: amd_sfh: Set correct DMA mask
  HID: amd_sfh: Continue if fallback DMA mask is accepted

 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--
2.31.1

[PATCH 1/2] HID: amd_sfh: Set correct DMA mask

From: Dylan MacKenzie <hidden>
Date: 2021-06-22 00:15:48

The AMDSFH driver uses coherent DMA allocations, but only sets the
streaming DMA mask. As a result, the kernel can't make use of the full
address space supported by the device.

Signed-off-by: Dylan MacKenzie <redacted>
---
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
index ddecc84fd6f..c2de650cd8e 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
@@ -155,9 +155,9 @@ static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
 
 	privdata->mmio = pcim_iomap_table(pdev)[2];
 	pci_set_master(pdev);
-	rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
+	rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	if (rc) {
-		rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+		rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		return rc;
 	}
 	rc = devm_add_action_or_reset(&pdev->dev, amd_mp2_pci_remove, privdata);
-- 
2.31.1

[PATCH 2/2] HID: amd_sfh: Continue if fallback DMA mask is accepted

From: Dylan MacKenzie <hidden>
Date: 2021-06-22 00:15:56

Currently, if a call to `set_dma_mask(DMA_BIT_MASK(64))` fails, the
driver calls `set_dma_mask(DMA_BIT_MASK(32))` and immediately returns
regardless of the result. If that second call were to succeed, the SFH
would not get initialized (defeating the whole purpose of falling back
to a 32-bit address space) but the driver would remain registered
(since `probe` returned 0).

Signed-off-by: Dylan MacKenzie <redacted>
---
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
index c2de650cd8e..a4f363d082c 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
@@ -155,11 +155,15 @@ static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
 
 	privdata->mmio = pcim_iomap_table(pdev)[2];
 	pci_set_master(pdev);
+
 	rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
-	if (rc) {
+	if (rc)
 		rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
+	if (rc) {
+		pci_err(pdev, "Failed to set DMA mask");
 		return rc;
 	}
+
 	rc = devm_add_action_or_reset(&pdev->dev, amd_mp2_pci_remove, privdata);
 	if (rc)
 		return rc;
-- 
2.31.1

Re: [PATCH 0/2] HID: amd_sfh: Minor DMA mapping bugfixes

From: Jiri Kosina <jikos@kernel.org>
Date: 2021-07-28 09:28:37

On Mon, 21 Jun 2021, Dylan MacKenzie wrote:
While preparing to investigate
https://bugzilla.kernel.org/show_bug.cgi?id=212615, I read through the amd_sfh
driver and saw two (unrelated) bugs in the logic that sets the DMA mask.
Ultimately these are harmless, but they should probably get fixed.

FYI, this is my first time submitting a kernel patch. If I've done something
wrong in formatting this email, it is likely due to incompetence rather than
malice.

Dylan MacKenzie (2):
  HID: amd_sfh: Set correct DMA mask
  HID: amd_sfh: Continue if fallback DMA mask is accepted

 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Nehal, Sandeep, could you please provide your Ack to this series? Thanks,

-- 
Jiri Kosina
SUSE Labs

Re: [PATCH 0/2] HID: amd_sfh: Minor DMA mapping bugfixes

From: Jiri Kosina <jikos@kernel.org>
Date: 2021-07-28 09:33:14

[ dropping Sandeep, CCing Basavaraj ]

On Wed, 28 Jul 2021, Jiri Kosina wrote:
On Mon, 21 Jun 2021, Dylan MacKenzie wrote:
quoted
While preparing to investigate
https://bugzilla.kernel.org/show_bug.cgi?id=212615, I read through the amd_sfh
driver and saw two (unrelated) bugs in the logic that sets the DMA mask.
Ultimately these are harmless, but they should probably get fixed.

FYI, this is my first time submitting a kernel patch. If I've done something
wrong in formatting this email, it is likely due to incompetence rather than
malice.

Dylan MacKenzie (2):
  HID: amd_sfh: Set correct DMA mask
  HID: amd_sfh: Continue if fallback DMA mask is accepted

 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Nehal, Sandeep, could you please provide your Ack to this series? Thanks,

-- 
Jiri Kosina
SUSE Labs
-- 
Jiri Kosina
SUSE Labs

Re: [PATCH 0/2] HID: amd_sfh: Minor DMA mapping bugfixes

From: Basavaraj Natikar <hidden>
Date: 2021-07-28 19:23:08

On 7/28/2021 3:03 PM, Jiri Kosina wrote:
[CAUTION: External Email]

[ dropping Sandeep, CCing Basavaraj ]

On Wed, 28 Jul 2021, Jiri Kosina wrote:
quoted
On Mon, 21 Jun 2021, Dylan MacKenzie wrote:
quoted
While preparing to investigate
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.kernel.org%2Fshow_bug.cgi%3Fid%3D212615&amp;data=04%7C01%7Cbasavaraj.natikar%40amd.com%7C2dff45d8dc964dbc5b1c08d951aab806%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637630615935776199%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=hGpNFpr6BjVg8dvfUTNF8Td1SOdtN5T8c2WACGAZWUo%3D&amp;reserved=0, I read through the amd_sfh
driver and saw two (unrelated) bugs in the logic that sets the DMA mask.
Ultimately these are harmless, but they should probably get fixed.

FYI, this is my first time submitting a kernel patch. If I've done something
wrong in formatting this email, it is likely due to incompetence rather than
malice.

Dylan MacKenzie (2):
  HID: amd_sfh: Set correct DMA mask
  HID: amd_sfh: Continue if fallback DMA mask is accepted

 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Nehal, Sandeep, could you please provide your Ack to this series? Thanks,
I think, you can merge both of them together as it addresses a single problem. 
can you please respin a v2 with the changes something like this?

        privdata->mmio = pcim_iomap_table(pdev)[2];
        pci_set_master(pdev);
-       rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
+
+       rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
        if (rc) {
-               rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
-               return rc;
+               rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
+               if (rc) {
+                       pci_err(pdev, "Failed to set DMA mask");
+                       return rc;
                 }
        }

Thanks,
Basavaraj
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help