e1000e: fix missing cpu_to_le64 on buffer_addr
authorBen Dooks (Codethink) <ben.dooks@codethink.co.uk>
Wed, 18 Dec 2019 09:53:08 +0000 (09:53 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 19 Feb 2020 22:16:17 +0000 (14:16 -0800)
The following warning suggests there is a missing cpu_to_le64() in
the e1000_flush_tx_ring() function (it is also the behaviour
elsewhere in the driver to do cpu_to_le64() on the buffer_addr
when setting it)

drivers/net/ethernet/intel/e1000e/netdev.c:3813:30: warning: incorrect type in assignment (different base types)
drivers/net/ethernet/intel/e1000e/netdev.c:3813:30:    expected restricted __le64 [usertype] buffer_addr
drivers/net/ethernet/intel/e1000e/netdev.c:3813:30:    got unsigned long long [usertype] dma

Signed-off-by: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/e1000e/netdev.c

index db4ea58..618c218 100644 (file)
@@ -3807,7 +3807,7 @@ static void e1000_flush_tx_ring(struct e1000_adapter *adapter)
        tdt = er32(TDT(0));
        BUG_ON(tdt != tx_ring->next_to_use);
        tx_desc =  E1000_TX_DESC(*tx_ring, tx_ring->next_to_use);
-       tx_desc->buffer_addr = tx_ring->dma;
+       tx_desc->buffer_addr = cpu_to_le64(tx_ring->dma);
 
        tx_desc->lower.data = cpu_to_le32(txd_lower | size);
        tx_desc->upper.data = 0;