--- /dev/null
+From 68d5948436c2f782ebb5ddf25a6588ee452e8c30 Mon Sep 17 00:00:00 2001
+From: Eilon Greenstein <eilong@broadcom.com>
+Date: Wed, 14 Jan 2009 21:27:36 -0800
+Subject: bnx2x: Endianness issues
+Acked-by: Karsten Keil <kkeil@novell.com>
+Reference: bnc#472500
+
+Adding missing le_to_cpu and disabling wrong HW endianity flag (the
+two complete each other)
+
+Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/bnx2x_main.c | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+Index: linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c
+===================================================================
+--- linux-2.6.27-bnx2x_2.orig/drivers/net/bnx2x_main.c
++++ linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c
+@@ -1439,7 +1439,7 @@ static int bnx2x_rx_int(struct bnx2x_fas
+ DP(NETIF_MSG_RX_STATUS, "CQE type %x err %x status %x"
+ " queue %x vlan %x len %u\n", CQE_TYPE(cqe_fp_flags),
+ cqe_fp_flags, cqe->fast_path_cqe.status_flags,
+- cqe->fast_path_cqe.rss_hash_result,
++ le32_to_cpu(cqe->fast_path_cqe.rss_hash_result),
+ le16_to_cpu(cqe->fast_path_cqe.vlan_tag),
+ le16_to_cpu(cqe->fast_path_cqe.pkt_len));
+
+@@ -2824,8 +2824,10 @@ static void bnx2x_attn_int_deasserted(st
+ static void bnx2x_attn_int(struct bnx2x *bp)
+ {
+ /* read local copy of bits */
+- u32 attn_bits = bp->def_status_blk->atten_status_block.attn_bits;
+- u32 attn_ack = bp->def_status_blk->atten_status_block.attn_bits_ack;
++ u32 attn_bits = le32_to_cpu(bp->def_status_blk->atten_status_block.
++ attn_bits);
++ u32 attn_ack = le32_to_cpu(bp->def_status_blk->atten_status_block.
++ attn_bits_ack);
+ u32 attn_state = bp->attn_state;
+
+ /* look for changed bits */
+@@ -2873,7 +2875,7 @@ static void bnx2x_sp_task(struct work_st
+ if (status & 0x2)
+ bp->stats_pending = 0;
+
+- bnx2x_ack_sb(bp, DEF_SB_ID, ATTENTION_ID, bp->def_att_idx,
++ bnx2x_ack_sb(bp, DEF_SB_ID, ATTENTION_ID, le16_to_cpu(bp->def_att_idx),
+ IGU_INT_NOP, 1);
+ bnx2x_ack_sb(bp, DEF_SB_ID, USTORM_ID, le16_to_cpu(bp->def_u_idx),
+ IGU_INT_NOP, 1);
+@@ -5164,7 +5166,6 @@ static int bnx2x_init_common(struct bnx2
+ REG_WR(bp, PXP2_REG_RQ_SRC_ENDIAN_M, 1);
+ REG_WR(bp, PXP2_REG_RQ_CDU_ENDIAN_M, 1);
+ REG_WR(bp, PXP2_REG_RQ_DBG_ENDIAN_M, 1);
+- REG_WR(bp, PXP2_REG_RQ_HC_ENDIAN_M, 1);
+
+ /* REG_WR(bp, PXP2_REG_RD_PBF_SWAP_MODE, 1); */
+ REG_WR(bp, PXP2_REG_RD_QM_SWAP_MODE, 1);