OSDN Git Service

net: dsa: bcm_sf2: Check egress tagging of CFP rule with proper accessor
authorVladimir Oltean <olteanv@gmail.com>
Wed, 3 Feb 2021 19:39:18 +0000 (21:39 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 5 Feb 2021 03:08:52 +0000 (19:08 -0800)
The flow steering struct ethtool_flow_ext::data field is __be32, so when
the CFP code needs to check the VLAN egress tagging attribute in bit 0,
it does this in CPU native endianness. So logically, the endianness
conversion is set up the other way around, although in practice the same
result is produced.

Gets rid of build warning:

warning: cast from restricted __be32
warning: incorrect type in argument 1 (different base types)
   expected unsigned int [usertype] val
   got restricted __be32
warning: cast from restricted __be32
warning: cast from restricted __be32
warning: cast from restricted __be32
warning: cast from restricted __be32
warning: restricted __be32 degrades to integer

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20210203193918.2236994-1-olteanv@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/bcm_sf2_cfp.c

index ed45d16..178218c 100644 (file)
@@ -886,7 +886,7 @@ static int bcm_sf2_cfp_rule_insert(struct dsa_switch *ds, int port,
 
                vid = be16_to_cpu(fs->h_ext.vlan_tci) & VLAN_VID_MASK;
                vlan.vid = vid;
-               if (cpu_to_be32(fs->h_ext.data[1]) & 1)
+               if (be32_to_cpu(fs->h_ext.data[1]) & 1)
                        vlan.flags = BRIDGE_VLAN_INFO_UNTAGGED;
                else
                        vlan.flags = 0;