- if (output) {
- output(dp, packet, key, u32_to_odp(nl_attr_get_u32(a)));
+ case OVS_ACTION_ATTR_USERSPACE:
+ case OVS_ACTION_ATTR_RECIRC:
+ case OVS_ACTION_ATTR_HASH:
+ if (dp_execute_action) {
+ /* Allow 'dp_execute_action' to steal the packet data if we do
+ * not need it any more. */
+ bool may_steal = steal && (!more_actions
+ && left <= NLA_ALIGN(a->nla_len)
+ && type != OVS_ACTION_ATTR_RECIRC);
+ dp_execute_action(dp, packet, md, a, may_steal);