Re: [PATCH] staging/rt2860: fix bad dma_addr_t conversion

From: FUJITA Tomonori
Date: Wed Aug 04 2010 - 01:12:22 EST


On Wed, 04 Aug 2010 00:45:19 -0400
Javier Martinez Canillas <martinez.javier@xxxxxxxxx> wrote:

> DMA addresses are not pointers and shouldn't be assigned to NULL.
> This patch was generated against today linux-next.
>
> Signed-off-by: Javier Martinez Canillas <martinez.javier@xxxxxxxxx>
> ---
> drivers/staging/rt2860/rt_pci_rbus.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/staging/rt2860/rt_pci_rbus.c b/drivers/staging/rt2860/rt_pci_rbus.c
> index 3004be6..244c754 100644
> --- a/drivers/staging/rt2860/rt_pci_rbus.c
> +++ b/drivers/staging/rt2860/rt_pci_rbus.c
> @@ -218,7 +218,7 @@ void *RTMP_AllocateRxPacketBuffer(struct rt_rtmp_adapter *pAd,
> PCI_DMA_FROMDEVICE);
> } else {
> *VirtualAddress = (void *)NULL;
> - *PhysicalAddress = (dma_addr_t)NULL;
> + *PhysicalAddress = 0;
> }

This doesn't look correct since zero is a valid DMA address on some
architectures.

I recommend removing the else part completely. If you need to mark a
rx buffer invalid, adding a flag to the rx descriptor structure of a
driver is a popular way (see other network drivers, e.g. bnx2).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/