From de3872cd1863dcd077e966dd467f8e50876302aa Mon Sep 17 00:00:00 2001 From: Yotam Gigi Date: Tue, 24 Oct 2017 11:17:15 +0200 Subject: [PATCH 1/3] mlxsw: spectrum: mr: Fix various endianness issues Fix various endianness issues in comparisons and assignments. The fix is entirely cosmetic as all the values fixed are endianness-agnostic. Cleans up sparse warnings: spectrum_mr.c:156:49: warning: restricted __be32 degrades to integer spectrum_mr.c:206:26: warning: restricted __be32 degrades to integer spectrum_mr.c:212:31: warning: incorrect type in assignment (different base types) spectrum_mr.c:212:31: expected restricted __be32 [usertype] addr4 spectrum_mr.c:212:31: got unsigned int spectrum_mr.c:214:32: warning: incorrect type in assignment (different base types) spectrum_mr.c:214:32: expected restricted __be32 [usertype] addr4 spectrum_mr.c:214:32: got unsigned int spectrum_mr.c:461:16: warning: restricted __be32 degrades to integer spectrum_mr.c:461:49: warning: restricted __be32 degrades to integer Fixes: c011ec1bbfd6 ("mlxsw: spectrum: Add the multicast routing offloading logic") Signed-off-by: Yotam Gigi Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller --- drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c index 1f84bb8e91352..3f7d2d1282b2a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c @@ -153,7 +153,7 @@ static bool mlxsw_sp_mr_route_starg(const struct mlxsw_sp_mr_route *mr_route) { switch (mr_route->mr_table->proto) { case MLXSW_SP_L3_PROTO_IPV4: - return mr_route->key.source_mask.addr4 == INADDR_ANY; + return mr_route->key.source_mask.addr4 == htonl(INADDR_ANY); case MLXSW_SP_L3_PROTO_IPV6: /* fall through */ default: @@ -203,15 +203,15 @@ static void mlxsw_sp_mr_route4_key(struct mlxsw_sp_mr_table *mr_table, struct mlxsw_sp_mr_route_key *key, const struct mfc_cache *mfc) { - bool starg = (mfc->mfc_origin == INADDR_ANY); + bool starg = (mfc->mfc_origin == htonl(INADDR_ANY)); memset(key, 0, sizeof(*key)); key->vrid = mr_table->vr_id; key->proto = mr_table->proto; key->group.addr4 = mfc->mfc_mcastgrp; - key->group_mask.addr4 = 0xffffffff; + key->group_mask.addr4 = htonl(0xffffffff); key->source.addr4 = mfc->mfc_origin; - key->source_mask.addr4 = starg ? 0 : 0xffffffff; + key->source_mask.addr4 = htonl(starg ? 0 : 0xffffffff); } static int mlxsw_sp_mr_route_evif_link(struct mlxsw_sp_mr_route *mr_route, @@ -458,7 +458,8 @@ int mlxsw_sp_mr_route4_add(struct mlxsw_sp_mr_table *mr_table, /* If the route is a (*,*) route, abort, as these kind of routes are * used for proxy routes. */ - if (mfc->mfc_origin == INADDR_ANY && mfc->mfc_mcastgrp == INADDR_ANY) { + if (mfc->mfc_origin == htonl(INADDR_ANY) && + mfc->mfc_mcastgrp == htonl(INADDR_ANY)) { dev_warn(mr_table->mlxsw_sp->bus_info->dev, "Offloading proxy routes is not supported.\n"); return -EINVAL; From 6a30dc29a450566e9c8e07dd16c05b11cb41be20 Mon Sep 17 00:00:00 2001 From: Yotam Gigi Date: Tue, 24 Oct 2017 11:17:16 +0200 Subject: [PATCH 2/3] mlxsw: spectrum: mr: Make the function mlxsw_sp_mr_dev_vif_lookup static The function is only used internally in spectrum_mr.c and is not declared in the header file, thus make it static. Cleans up sparse warning: symbol 'mlxsw_sp_mr_dev_vif_lookup' was not declared. Should it be static? Fixes: c011ec1bbfd6 ("mlxsw: spectrum: Add the multicast routing offloading logic") Signed-off-by: Yotam Gigi Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller --- drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c index 3f7d2d1282b2a..d20b143de3b47 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c @@ -768,7 +768,7 @@ void mlxsw_sp_mr_vif_del(struct mlxsw_sp_mr_table *mr_table, vifi_t vif_index) mlxsw_sp_mr_vif_unresolve(mr_table, NULL, mr_vif); } -struct mlxsw_sp_mr_vif * +static struct mlxsw_sp_mr_vif * mlxsw_sp_mr_dev_vif_lookup(struct mlxsw_sp_mr_table *mr_table, const struct net_device *dev) { From ea00aa3a27c3a52c5d2a1444a90e690d55b6c221 Mon Sep 17 00:00:00 2001 From: Yotam Gigi Date: Tue, 24 Oct 2017 11:17:17 +0200 Subject: [PATCH 3/3] mlxsw: spectrum: mr_tcam: Include the mr_tcam header file Make the spectrum_mr_tcam.c include the spectrum_mr_tcam.h header file. Cleans up sparse warning: symbol 'mlxsw_sp_mr_tcam_ops' was not declared. Should it be static? Fixes: 0e14c7777acb6 ("mlxsw: spectrum: Add the multicast routing hardware logic") Signed-off-by: Yotam Gigi Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller --- drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c index 39c21c70ac323..34a0b632e5dd3 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c @@ -37,6 +37,7 @@ #include #include +#include "spectrum_mr_tcam.h" #include "reg.h" #include "spectrum.h" #include "core_acl_flex_actions.h"