| From d88b511177f0e7671a2a0f58d7752a80eeaf0ec8 Mon Sep 17 00:00:00 2001 |
| From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> |
| Date: Wed, 24 Jun 2020 01:51:36 +0530 |
| Subject: [PATCH] cxgb4: use correct type for all-mask IP address comparison |
| |
| commit f286dd8eaad5a2758750f407ab079298e0bcc8a5 upstream. |
| |
| Use correct type to check for all-mask exact match IP addresses. |
| |
| Fixes following sparse warnings due to big endian value checks |
| against 0xffffffff in is_addr_all_mask(): |
| cxgb4_filter.c:977:25: warning: restricted __be32 degrades to integer |
| cxgb4_filter.c:983:37: warning: restricted __be32 degrades to integer |
| cxgb4_filter.c:984:37: warning: restricted __be32 degrades to integer |
| cxgb4_filter.c:985:37: warning: restricted __be32 degrades to integer |
| cxgb4_filter.c:986:37: warning: restricted __be32 degrades to integer |
| |
| Fixes: 3eb8b62d5a26 ("cxgb4: add support to create hash-filters via tc-flower offload") |
| Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c |
| index 7806f965ab0e..337d0209ff2a 100644 |
| --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c |
| +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c |
| @@ -840,16 +840,16 @@ static bool is_addr_all_mask(u8 *ipmask, int family) |
| struct in_addr *addr; |
| |
| addr = (struct in_addr *)ipmask; |
| - if (addr->s_addr == 0xffffffff) |
| + if (ntohl(addr->s_addr) == 0xffffffff) |
| return true; |
| } else if (family == AF_INET6) { |
| struct in6_addr *addr6; |
| |
| addr6 = (struct in6_addr *)ipmask; |
| - if (addr6->s6_addr32[0] == 0xffffffff && |
| - addr6->s6_addr32[1] == 0xffffffff && |
| - addr6->s6_addr32[2] == 0xffffffff && |
| - addr6->s6_addr32[3] == 0xffffffff) |
| + 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) |
| return true; |
| } |
| return false; |
| -- |
| 2.27.0 |
| |