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/net/dsa/slave.c b/net/dsa/slave.c
index 3fb5210..04ffad3 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -353,7 +353,7 @@
switch (attr->id) {
case SWITCHDEV_ATTR_PORT_STP_STATE:
if (attr->trans == SWITCHDEV_TRANS_COMMIT)
- ret = dsa_slave_stp_update(dev, attr->stp_state);
+ ret = dsa_slave_stp_update(dev, attr->u.stp_state);
break;
default:
ret = -EOPNOTSUPP;
@@ -408,8 +408,8 @@
switch (attr->id) {
case SWITCHDEV_ATTR_PORT_PARENT_ID:
- attr->ppid.id_len = sizeof(ds->index);
- memcpy(&attr->ppid.id, &ds->index, attr->ppid.id_len);
+ attr->u.ppid.id_len = sizeof(ds->index);
+ memcpy(&attr->u.ppid.id, &ds->index, attr->u.ppid.id_len);
break;
default:
return -EOPNOTSUPP;