All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] enic: Use dma_set_mask_and_coherent()
@ 2022-01-01 14:02 Christophe JAILLET
  2022-01-02 12:30 ` patchwork-bot+netdevbpf
  2022-01-03  8:47 ` Christoph Hellwig
  0 siblings, 2 replies; 4+ messages in thread
From: Christophe JAILLET @ 2022-01-01 14:02 UTC (permalink / raw)
  To: benve, govind, davem, kuba
  Cc: netdev, linux-kernel, kernel-janitors, Christophe JAILLET

Use dma_set_mask_and_coherent() instead of unrolling it with some
dma_set_mask()+dma_set_coherent_mask().

This simplifies code and removes some dead code (dma_set_coherent_mask()
can not fail after a successful dma_set_mask())

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/net/ethernet/cisco/enic/enic_main.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c
index 2faba079b4fb..1c81b161de52 100644
--- a/drivers/net/ethernet/cisco/enic/enic_main.c
+++ b/drivers/net/ethernet/cisco/enic/enic_main.c
@@ -2718,26 +2718,14 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	 * fail to 32-bit.
 	 */
 
-	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(47));
+	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(47));
 	if (err) {
-		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (err) {
 			dev_err(dev, "No usable DMA configuration, aborting\n");
 			goto err_out_release_regions;
 		}
-		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
-		if (err) {
-			dev_err(dev, "Unable to obtain %u-bit DMA "
-				"for consistent allocations, aborting\n", 32);
-			goto err_out_release_regions;
-		}
 	} else {
-		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(47));
-		if (err) {
-			dev_err(dev, "Unable to obtain %u-bit DMA "
-				"for consistent allocations, aborting\n", 47);
-			goto err_out_release_regions;
-		}
 		using_dac = 1;
 	}
 
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] enic: Use dma_set_mask_and_coherent()
  2022-01-01 14:02 [PATCH] enic: Use dma_set_mask_and_coherent() Christophe JAILLET
@ 2022-01-02 12:30 ` patchwork-bot+netdevbpf
  2022-01-03  8:47 ` Christoph Hellwig
  1 sibling, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-01-02 12:30 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: benve, govind, davem, kuba, netdev, linux-kernel, kernel-janitors

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Sat,  1 Jan 2022 15:02:45 +0100 you wrote:
> Use dma_set_mask_and_coherent() instead of unrolling it with some
> dma_set_mask()+dma_set_coherent_mask().
> 
> This simplifies code and removes some dead code (dma_set_coherent_mask()
> can not fail after a successful dma_set_mask())
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> 
> [...]

Here is the summary with links:
  - enic: Use dma_set_mask_and_coherent()
    https://git.kernel.org/netdev/net-next/c/c5180ad0c278

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] enic: Use dma_set_mask_and_coherent()
  2022-01-01 14:02 [PATCH] enic: Use dma_set_mask_and_coherent() Christophe JAILLET
  2022-01-02 12:30 ` patchwork-bot+netdevbpf
@ 2022-01-03  8:47 ` Christoph Hellwig
  2022-01-05 19:51   ` Christophe JAILLET
  1 sibling, 1 reply; 4+ messages in thread
From: Christoph Hellwig @ 2022-01-03  8:47 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: benve, govind, davem, kuba, netdev, linux-kernel, kernel-janitors

On Sat, Jan 01, 2022 at 03:02:45PM +0100, Christophe JAILLET wrote:
> -	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(47));
> +	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(47));
>  	if (err) {
> +		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
>  		if (err) {
>  			dev_err(dev, "No usable DMA configuration, aborting\n");
>  			goto err_out_release_regions;
>  		}
>  	} else {
>  		using_dac = 1;

There is no need for the callback.  All the routines to set a DMA mask
will only fail if the passed in mask is too small, but never if it is
larger than what is supported.  Also the using_dac variable is not
needed, NETIF_F_HIGHDMA can and should be set unconditionally.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] enic: Use dma_set_mask_and_coherent()
  2022-01-03  8:47 ` Christoph Hellwig
@ 2022-01-05 19:51   ` Christophe JAILLET
  0 siblings, 0 replies; 4+ messages in thread
From: Christophe JAILLET @ 2022-01-05 19:51 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: benve, govind, davem, kuba, netdev, linux-kernel, kernel-janitors

Le 03/01/2022 à 09:47, Christoph Hellwig a écrit :
> On Sat, Jan 01, 2022 at 03:02:45PM +0100, Christophe JAILLET wrote:
>> -	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(47));
>> +	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(47));
>>   	if (err) {
>> +		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
>>   		if (err) {
>>   			dev_err(dev, "No usable DMA configuration, aborting\n");
>>   			goto err_out_release_regions;
>>   		}
>>   	} else {
>>   		using_dac = 1;
> 
> There is no need for the callback.  All the routines to set a DMA mask
> will only fail if the passed in mask is too small, but never if it is
> larger than what is supported.  Also the using_dac variable is not
> needed, NETIF_F_HIGHDMA can and should be set unconditionally.
> 

Ok, thanks.
I was only aware of the 64 bits case.
The patch has already reached -next.

I'll send another patch on to of it to go one step further.

CJ

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-01-05 19:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-01 14:02 [PATCH] enic: Use dma_set_mask_and_coherent() Christophe JAILLET
2022-01-02 12:30 ` patchwork-bot+netdevbpf
2022-01-03  8:47 ` Christoph Hellwig
2022-01-05 19:51   ` Christophe JAILLET

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.