if (error == ENXIO) {
free(netdev->kernel_name);
cache_notifier_unref();
+ ovs_mutex_destroy(&netdev->mutex);
return error;
}
dp_packet_delete(packet);
} else {
dp_packet_pad(packet);
- dp_packet_set_rss_hash(packet, 0);
+ dp_packet_rss_invalidate(packet);
packets[0] = packet;
*c = 1;
}
if (error) {
return error;
}
- if (!memcmp(&sdl->sdl_data[sdl->sdl_nlen], mac, hwaddr_len)) {
+ if (!memcmp(&sdl->sdl_data[sdl->sdl_nlen], &mac, hwaddr_len)) {
return 0;
}
oldaddr = req.addr;
sdl->sdl_len = offsetof(struct sockaddr_dl, sdl_data) + hwaddr_len;
sdl->sdl_alen = hwaddr_len;
sdl->sdl_family = hwaddr_family;
- memcpy(sdl->sdl_data, mac, hwaddr_len);
+ memcpy(sdl->sdl_data, &mac, hwaddr_len);
error = af_link_ioctl(SIOCALIFADDR, &req);
if (error) {
return error;