switchdev: don't use anonymous union on switchdev attr/obj structs
Older gcc versions (e.g. gcc version 4.4.6) don't like anonymous unions
which was causing build issues on the newly added switchdev attr/obj
structs. Fix this by using named union on structs.
Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Reported-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c
index ca53393..f0a9cb4 100644
--- a/drivers/net/ethernet/rocker/rocker.c
+++ b/drivers/net/ethernet/rocker/rocker.c
@@ -4339,11 +4339,11 @@
switch (attr->id) {
case SWITCHDEV_ATTR_PORT_PARENT_ID:
- attr->ppid.id_len = sizeof(rocker->hw.id);
- memcpy(&attr->ppid.id, &rocker->hw.id, attr->ppid.id_len);
+ attr->u.ppid.id_len = sizeof(rocker->hw.id);
+ memcpy(&attr->u.ppid.id, &rocker->hw.id, attr->u.ppid.id_len);
break;
case SWITCHDEV_ATTR_PORT_BRIDGE_FLAGS:
- attr->brport_flags = rocker_port->brport_flags;
+ attr->u.brport_flags = rocker_port->brport_flags;
break;
default:
return -EOPNOTSUPP;
@@ -4400,11 +4400,11 @@
switch (attr->id) {
case SWITCHDEV_ATTR_PORT_STP_STATE:
err = rocker_port_stp_update(rocker_port, attr->trans,
- attr->stp_state);
+ attr->u.stp_state);
break;
case SWITCHDEV_ATTR_PORT_BRIDGE_FLAGS:
err = rocker_port_brport_flags_set(rocker_port, attr->trans,
- attr->brport_flags);
+ attr->u.brport_flags);
break;
default:
err = -EOPNOTSUPP;
@@ -4466,10 +4466,10 @@
switch (obj->id) {
case SWITCHDEV_OBJ_PORT_VLAN:
err = rocker_port_vlans_add(rocker_port, obj->trans,
- &obj->vlan);
+ &obj->u.vlan);
break;
case SWITCHDEV_OBJ_IPV4_FIB:
- fib4 = &obj->ipv4_fib;
+ fib4 = &obj->u.ipv4_fib;
err = rocker_port_fib_ipv4(rocker_port, obj->trans,
htonl(fib4->dst), fib4->dst_len,
fib4->fi, fib4->tb_id, 0);
@@ -4520,10 +4520,10 @@
switch (obj->id) {
case SWITCHDEV_OBJ_PORT_VLAN:
- err = rocker_port_vlans_del(rocker_port, &obj->vlan);
+ err = rocker_port_vlans_del(rocker_port, &obj->u.vlan);
break;
case SWITCHDEV_OBJ_IPV4_FIB:
- fib4 = &obj->ipv4_fib;
+ fib4 = &obj->u.ipv4_fib;
err = rocker_port_fib_ipv4(rocker_port, SWITCHDEV_TRANS_NONE,
htonl(fib4->dst), fib4->dst_len,
fib4->fi, fib4->tb_id,