Re: [PATCH] net: ethernet: fs-enet: remove casting dma_alloc_coherent

From: Christophe Leroy
Date: Fri Dec 11 2020 - 11:44:40 EST




Le 11/12/2020 à 17:07, David Laight a écrit :
From: Christophe Leroy
Sent: 11 December 2020 15:22

Le 11/12/2020 à 09:52, Xu Wang a écrit :
Remove casting the values returned by dma_alloc_coherent.

Can you explain more in the commit log ?

As far as I can see, dma_alloc_coherent() doesn't return __iomem, and ring_base member is __iomem

Which is probably wrong - that is the kernel address of kernel memory.
So it shouldn't have the __iomem marker.

That's where the buffer descriptors are, the driver accesses to the content of the buffer descriptors using the IO accessors in_be16()/out_be16(). Is it not correct ?

Christophe


I wonder what else is wrong....

David


Christophe


Signed-off-by: Xu Wang <vulab@xxxxxxxxxxx>
---
drivers/net/ethernet/freescale/fs_enet/mac-fec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
b/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
index 99fe2c210d0f..3ae345676e50 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mac-fec.c
@@ -131,7 +131,7 @@ static int allocate_bd(struct net_device *dev)
struct fs_enet_private *fep = netdev_priv(dev);
const struct fs_platform_info *fpi = fep->fpi;

- fep->ring_base = (void __force __iomem *)dma_alloc_coherent(fep->dev,
+ fep->ring_base = dma_alloc_coherent(fep->dev,
(fpi->tx_ring + fpi->rx_ring) *
sizeof(cbd_t), &fep->ring_mem_addr,
GFP_KERNEL);


-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)