net: calxedaxgmac: read correct field in xgmac_desc_get_buf_len
authorRob Herring <rob.herring@calxeda.com>
Fri, 30 Aug 2013 21:49:20 +0000 (16:49 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Sep 2013 02:21:15 +0000 (22:21 -0400)
xgmac_desc_get_buf_len appears to have a copy/paste error. flags is the
wrong field to read. We should be reading buf_size field. cpu_to_le32
should also be le32_to_cpu. This never really mattered as this function
is only used for DMA mapping calls which happen to be nops with coherent
DMA.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/calxeda/xgmac.c

index 71f67206ba3a764bc4dcae95fc9334970909dccd..d41af68ccb63a19d3b21b75cfdbc2ff3fafbd86a 100644 (file)
@@ -421,7 +421,7 @@ static inline void desc_set_buf_len(struct xgmac_dma_desc *p, u32 buf_sz)
 
 static inline int desc_get_buf_len(struct xgmac_dma_desc *p)
 {
-       u32 len = cpu_to_le32(p->flags);
+       u32 len = le32_to_cpu(p->buf_size);
        return (len & DESC_BUFFER1_SZ_MASK) +
                ((len & DESC_BUFFER2_SZ_MASK) >> DESC_BUFFER2_SZ_OFFSET);
 }