| From a24cff2f0071faab09b5f4e353ed5db58e85d852 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 9 Jul 2020 03:14:27 +0530 |
| Subject: cxgb4: fix all-mask IP address comparison |
| |
| From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> |
| |
| [ Upstream commit 76c4d85c9260c3d741cbd194c30c61983d0a4303 ] |
| |
| Convert all-mask IP address to Big Endian, instead, for comparison. |
| |
| Fixes: f286dd8eaad5 ("cxgb4: use correct type for all-mask IP address comparison") |
| Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c |
| index 375e1be6a2d8d..f459313357c78 100644 |
| --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c |
| +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c |
| @@ -839,16 +839,16 @@ static bool is_addr_all_mask(u8 *ipmask, int family) |
| struct in_addr *addr; |
| |
| addr = (struct in_addr *)ipmask; |
| - if (ntohl(addr->s_addr) == 0xffffffff) |
| + if (addr->s_addr == htonl(0xffffffff)) |
| return true; |
| } else if (family == AF_INET6) { |
| struct in6_addr *addr6; |
| |
| addr6 = (struct in6_addr *)ipmask; |
| - if (ntohl(addr6->s6_addr32[0]) == 0xffffffff && |
| - ntohl(addr6->s6_addr32[1]) == 0xffffffff && |
| - ntohl(addr6->s6_addr32[2]) == 0xffffffff && |
| - ntohl(addr6->s6_addr32[3]) == 0xffffffff) |
| + if (addr6->s6_addr32[0] == htonl(0xffffffff) && |
| + addr6->s6_addr32[1] == htonl(0xffffffff) && |
| + addr6->s6_addr32[2] == htonl(0xffffffff) && |
| + addr6->s6_addr32[3] == htonl(0xffffffff)) |
| return true; |
| } |
| return false; |
| -- |
| 2.25.1 |
| |