[Precise][PATCH 3/5] be2net: Fix Endian

Jesse Sung jesse.sung at canonical.com
Mon Aug 20 03:54:42 UTC 2012

From: Li RongQing <roy.qing.li at gmail.com>

BugLink: https://launchpad.net/bugs/1035348

ETH_P_IP is host Endian, skb->protocol is big Endian, when
compare them, we should change ETH_P_IP from host endian
to big endian, htons, not ntohs.

CC: Somnath Kotur <somnath.kotur at emulex.com>
Signed-off-by: Li RongQing <roy.qing.li at gmail.com>
Acked-by: Somnath Kotur <somnath.kotur at emulex.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit e8efcec5394cbf7ae67ccb137cb1a45ae3e6f6c8)
Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
 drivers/net/ethernet/emulex/benet/be.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index a244f2f..2a64de3 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -518,7 +518,7 @@ static inline void be_check_sriov_fn_type(struct be_adapter *adapter)
 static inline bool is_ipv4_pkt(struct sk_buff *skb)
-	return skb->protocol == ntohs(ETH_P_IP) && ip_hdr(skb)->version == 4;
+	return skb->protocol == htons(ETH_P_IP) && ip_hdr(skb)->version == 4;
 static inline void be_vf_eth_addr_generate(struct be_adapter *adapter, u8 *mac)

More information about the kernel-team mailing list