port_unref(struct dp_netdev_port *port)
{
if (port && ovs_refcount_unref(&port->ref_cnt) == 1) {
- int n_rxq;
+ int n_rxq = netdev_n_rxq(port->netdev);
int i;
netdev_close(port->netdev);
netdev_restore_flags(port->sf);
- n_rxq = netdev_n_rxq(port->netdev);
for (i = 0; i < n_rxq; i++) {
netdev_rxq_close(port->rxq[i]);
}
}
}
ovs_mutex_unlock(&dp->flow_mutex);
+ miniflow_destroy(&miniflow);
return error;
}
p = dp_netdev_lookup_port(aux->dp, u32_to_odp(nl_attr_get_u32(a)));
if (p) {
netdev_send(p->netdev, packet, may_steal);
+ } else if (may_steal) {
+ ofpbuf_delete(packet);
}
+
break;
case OVS_ACTION_ATTR_USERSPACE: {
break;
} else {
+ if (may_steal) {
+ ofpbuf_delete(packet);
+ }
VLOG_WARN("Packet dropped. Max recirculation depth exceeded.");
}
break;