linux/drivers/net/mlx4
Thadeu Lima de Souza Cascardo c5d6136e10 mlx4_en: fix endianness with blue frame support
The doorbell register was being unconditionally swapped. In x86, that
meant it was being swapped to BE and written to the descriptor and to
memory, depending on the case of blue frame support or writing to
doorbell register. On PPC, this meant it was being swapped to LE and
then swapped back to BE while writing to the register. But in the blue
frame case, it was being written as LE to the descriptor.

The fix is not to swap doorbell unconditionally, write it to the
register as BE and convert it to BE when writing it to the descriptor.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Reported-by: Richard Hendrickson <richhend@us.ibm.com>
Cc: Eli Cohen <eli@dev.mellanox.co.il>
Cc: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-10-10 14:10:37 -04:00
..
Makefile mlx4_en: Added self diagnostics test implementation 2010-08-24 14:54:51 -07:00
alloc.c mlx4_core: maintain available field in bitmap allocator 2011-03-23 12:24:24 -07:00
catas.c mlx4_{core, ib, en}: Fix driver when sizeof (phys_addr_t) > sizeof (long) 2011-01-12 09:50:36 -08:00
cmd.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cq.c mlx4: Changing interrupt scheme 2011-03-23 12:24:18 -07:00
en_cq.c mlx4_en: using new mlx4 interrupt scheme 2011-03-23 12:24:18 -07:00
en_ethtool.c mlx4_core: Read extended capabilities into the flags field 2011-07-18 21:04:32 -07:00
en_main.c mlx4_core: Read extended capabilities into the flags field 2011-07-18 21:04:32 -07:00
en_netdev.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-07-22 14:50:12 -07:00
en_port.c mlx4: Fixing Ethernet unicast packet steering 2011-08-03 16:38:59 -07:00
en_port.h mlx4_en: Enabling new steering 2011-03-23 12:24:22 -07:00
en_resources.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
en_rx.c mlx4: do vlan cleanup 2011-07-21 13:47:55 -07:00
en_selftest.c mlx4_core: Read extended capabilities into the flags field 2011-07-18 21:04:32 -07:00
en_tx.c mlx4_en: fix endianness with blue frame support 2011-10-10 14:10:37 -04:00
eq.c mlx4: Fixing bad size of event queue buffer 2011-03-31 02:52:18 -07:00
fw.c mlx4_core: Add network flow counters 2011-07-18 21:04:34 -07:00
fw.h mlx4_core: Add network flow counters 2011-07-18 21:04:34 -07:00
icm.c mlx4: make functions local and remove dead code. 2010-10-24 14:55:47 -07:00
icm.h mlx4: make functions local and remove dead code. 2010-10-24 14:55:47 -07:00
intf.c mlx4_core: Allow protocol drivers to find corresponding interfaces 2010-10-25 10:20:39 -07:00
main.c mlx4: Fixing Ethernet unicast packet steering 2011-08-03 16:38:59 -07:00
mcg.c mlx4_core: Read extended capabilities into the flags field 2011-07-18 21:04:32 -07:00
mlx4.h mlx4_core: Bump the driver version to 1.0 2011-07-21 22:55:02 -07:00
mlx4_en.h mlx4: do vlan cleanup 2011-07-21 13:47:55 -07:00
mr.c drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
pd.c mlx4_core: reserve UARs for userspace consumers 2011-03-23 12:24:24 -07:00
port.c mlx4: decreasing ref count when removing mac 2011-08-05 03:36:07 -07:00
profile.c mlx4: Changing interrupt scheme 2011-03-23 12:24:18 -07:00
qp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
reset.c mlx4: remove unnecessary read of PCI_CAP_ID_EXP 2011-06-27 21:40:44 -07:00
sense.c mlx4: Sensing link type at device initialization 2011-04-07 20:36:12 -07:00
srq.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00