int br_mrp_set_port_state(struct net_bridge_port *p,
                          enum br_mrp_port_state_type state)
 {
+       u32 port_state;
+
        if (!p || !(p->flags & BR_MRP_AWARE))
                return -EINVAL;
 
        spin_lock_bh(&p->br->lock);
 
        if (state == BR_MRP_PORT_STATE_FORWARDING)
-               p->state = BR_STATE_FORWARDING;
+               port_state = BR_STATE_FORWARDING;
        else
-               p->state = BR_STATE_BLOCKING;
+               port_state = BR_STATE_BLOCKING;
 
+       p->state = port_state;
        spin_unlock_bh(&p->br->lock);
 
-       br_mrp_port_switchdev_set_state(p, state);
+       br_mrp_port_switchdev_set_state(p, port_state);
 
        return 0;
 }
 
        return err;
 }
 
-int br_mrp_port_switchdev_set_state(struct net_bridge_port *p,
-                                   enum br_mrp_port_state_type state)
+int br_mrp_port_switchdev_set_state(struct net_bridge_port *p, u32 state)
 {
        struct switchdev_attr attr = {
                .orig_dev = p->dev,
-               .id = SWITCHDEV_ATTR_ID_MRP_PORT_STATE,
-               .u.mrp_port_state = state,
+               .id = SWITCHDEV_ATTR_ID_PORT_STP_STATE,
+               .u.stp_state = state,
        };
        int err;
 
 
 int br_mrp_switchdev_send_ring_test(struct net_bridge *br, struct br_mrp *mrp,
                                    u32 interval, u8 max_miss, u32 period,
                                    bool monitor);
-int br_mrp_port_switchdev_set_state(struct net_bridge_port *p,
-                                   enum br_mrp_port_state_type state);
+int br_mrp_port_switchdev_set_state(struct net_bridge_port *p, u32 state);
 int br_mrp_port_switchdev_set_role(struct net_bridge_port *p,
                                   enum br_mrp_port_role_type role);
 int br_mrp_switchdev_set_in_role(struct net_bridge *br, struct br_mrp *mrp,