[PATCH] net: ezchip: fix address space confusion in nps_enet.c

David Miller davem at davemloft.net
Tue Dec 8 19:58:41 PST 2015


From: Arnd Bergmann <arnd at arndb.de>
Date: Tue, 08 Dec 2015 16:28:59 +0100

> The nps_enet driver happily mixes virtual, physical and __iomem
> addresses, which are all different depending on the architecture
> and configuration.  That causes a warning when building the code
> on ARM with LPAE mode enabled:
> 
> drivers/net/ethernet/ezchip/nps_enet.c: In function 'nps_enet_send_frame':
> drivers/net/ethernet/ezchip/nps_enet.c:370:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
> 
> but will also fail to work for other reasons.
> 
> In this patch, I'm trying to change the code to use only normal
> kernel pointers, which I assume is what the author actually meant:
> 
> * For reading or writing a 32-bit word that may be unaligned when
>   an SKB contains unaligned data, I'm using get_unaligned/put_unaligned()
>   rather than memcpy_fromio/toio.
> 
> * For converting a u8 pointer to a u32 pointer, I use a cast rather
>   than the incorrect virt_to_phys.
> 
> * For copying a couple of bytes from one place to another while respecting
>   alignment, I use memcpy instead of memcpy_toio.
> 
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>

Applied, thanks Arnd.



More information about the linux-arm-kernel mailing list