|
@@ -962,7 +962,17 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
tx_desc->ctrl.owner_opcode = op_own;
|
|
|
if (send_doorbell) {
|
|
|
wmb();
|
|
|
- iowrite32(ring->doorbell_qpn,
|
|
|
+ /* Since there is no iowrite*_native() that writes the
|
|
|
+ * value as is, without byteswapping - using the one
|
|
|
+ * the doesn't do byteswapping in the relevant arch
|
|
|
+ * endianness.
|
|
|
+ */
|
|
|
+#if defined(__LITTLE_ENDIAN)
|
|
|
+ iowrite32(
|
|
|
+#else
|
|
|
+ iowrite32be(
|
|
|
+#endif
|
|
|
+ ring->doorbell_qpn,
|
|
|
ring->bf.uar->map + MLX4_SEND_DOORBELL);
|
|
|
} else {
|
|
|
ring->xmit_more++;
|