* [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.