int err;
err = ovs_flow_extract(skb, p->port_no, &recirc_key);
- if (err)
+ if (err) {
+ kfree_skb(skb);
return err;
+ }
recirc_key.ovs_flow_hash = hash;
recirc_key.recirc_id = nla_get_u32(a);
err = execute_recirc(dp, recirc_skb, a);
- if (last_action || err)
+ if (recirc_skb == skb)
return err;
break;