ATHEROS-ALX: Use dma_set_mask_and_coherent and fix a bug
Subsystems (4)
PATCH v2 1/1 ATHEROS-ALX: Use dma_set_mask_and_coherent and fix a bug
1. For the 64 bits dma mask use dma_set_mask_and_coherent instead of dma_set_mask and dma_set_coherent_mask.
2. For the 32 bits dma mask dma_set_coherent_mask is only called if dma_set_mask fails, which is unusual. Assuming this as a bug, fixes it by replacing calls to dma_set_mask and dma_set_coherent_mask by a call to dma_set_mask_and_coherent.
---
Tested by compilation only.
Change from V1: Updated commit message.
drivers/net/ethernet/atheros/alx/main.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)
drivers/net/ethernet/atheros/alx/main.c +4 -10
@@ -1248,19 +1248,13 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)* shared register for the high 32 bits, so only a single, aligned, * 4 GB physical address range can be used for descriptors. */ -if (!dma_set_mask (&pdev->dev,DMA_BIT_MASK (64 )) && - !dma_set_coherent_mask (&pdev->dev,DMA_BIT_MASK (64 ))) { +if (!dma_set_mask_and_coherent (&pdev->dev,DMA_BIT_MASK (64 ))) {dev_dbg (&pdev->dev,"DMA to 64-BIT addresses\n" ); }else { - err =dma_set_mask (&pdev->dev,DMA_BIT_MASK (32 )); + err =dma_set_mask_and_coherent (&pdev->dev,DMA_BIT_MASK (32 ));if (err) { - err =dma_set_coherent_mask (&pdev->dev, -DMA_BIT_MASK (32 )); -if (err) { -dev_err (&pdev->dev, -"No usable DMA config, aborting\n" ); - goto out_pci_disable; - } +dev_err (&pdev->dev,"No usable DMA config, aborting\n" ); + goto out_pci_disable; } }
Signature · 1 line
1.8.3.1
Am Sonntag, den 16.03.2014, 00:30 +0100 schrieb Peter Senna Tschudin:
Quoted 8 lines
1. For the 64 bits dma mask use
dma_set_mask_and_coherentinstead ofdma_set_maskanddma_set_coherent_mask.2. For the 32 bits dma mask
dma_set_coherent_maskis only called ifdma_set_maskfails, which is unusual. Assuming this as a bug, fixes it by replacing calls todma_set_maskanddma_set_coherent_maskby a call todma_set_mask_and_coherent.
Quoted 28 lines
Signed-off-by Peter Senna Tschudin <[email protected]>---
Tested by compilation only.
Change from V1: Updated commit message.
drivers/net/ethernet/atheros/alx/main.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)drivers/net/ethernet/atheros/alx/main.c +2
-5@@ -1248,19 +1248,13 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)* shared register for the high 32 bits, so only a single, aligned, * 4 GB physical address range can be used for descriptors. */ -if (!dma_set_mask (&pdev->dev,DMA_BIT_MASK (64 )) && - !dma_set_coherent_mask (&pdev->dev,DMA_BIT_MASK (64 ))) { +if (!dma_set_mask_and_coherent (&pdev->dev,DMA_BIT_MASK (64 ))) {dev_dbg (&pdev->dev,"DMA to 64-BIT addresses\n" ); }else { - err =dma_set_mask (&pdev->dev,DMA_BIT_MASK (32 )); + err =dma_set_mask_and_coherent (&pdev->dev,DMA_BIT_MASK (32 ));if (err) { - err =dma_set_coherent_mask (&pdev->dev, -DMA_BIT_MASK (32 ));
drivers/net/ethernet/atheros/alx/main.c static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) · line 1260
Quoted 10 lines
drivers/net/ethernet/atheros/alx/main.c +2
-5-if (err) { -dev_err (&pdev->dev, -"No usable DMA config, aborting\n" ); - goto out_pci_disable; - } +dev_err (&pdev->dev,"No usable DMA config, aborting\n" ); + goto out_pci_disable; } }
No obvious problems noticed on my ASUS N56VZ.
From: Peter Senna Tschudin <[email protected]>
Date: Sun, 16 Mar 2014 00:30:52 +0100
Quoted 9 lines
1. For the 64 bits dma mask use
dma_set_mask_and_coherentinstead ofdma_set_maskanddma_set_coherent_mask.2. For the 32 bits dma mask
dma_set_coherent_maskis only called ifdma_set_maskfails, which is unusual. Assuming this as a bug, fixes it by replacing calls todma_set_maskanddma_set_coherent_maskby a call todma_set_mask_and_coherent.Signed-off-by Peter Senna Tschudin <[email protected]>
Applied, thanks.