msg.msg_namelen = 0;
msg.msg_control = NULL;
msg.msg_controllen = 0;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
+#else
+ iov_iter_init(&(msg.msg_iter),WRITE,&iov,1,0);
+#endif
msg.msg_control = NULL;
oldfs = get_fs();
struct raw_interface * iface;
unsigned long flags;
- spin_lock_irqsave(&(packet_state.lock), flags);
+ palacios_spinlock_lock_irqsave(&(packet_state.lock), flags);
iface = find_interface(host_nic);
- spin_unlock_irqrestore(&(packet_state.lock),flags);
+ palacios_spinlock_unlock_irqrestore(&(packet_state.lock),flags);
if(iface == NULL){
iface = (struct raw_interface *)palacios_alloc(sizeof(struct raw_interface));
palacios_free(iface);
return -1;
}
- spin_lock_irqsave(&(packet_state.lock), flags);
+ palacios_spinlock_lock_irqsave(&(packet_state.lock), flags);
list_add(&(iface->node), &(packet_state.open_interfaces));
- spin_unlock_irqrestore(&(packet_state.lock),flags);
+ palacios_spinlock_unlock_irqrestore(&(packet_state.lock),flags);
}
packet->host_packet_data = iface;
iov.iov_base = (void *)pkt;
iov.iov_len = (__kernel_size_t)len;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
+#else
+ iov_iter_init(&(msg.msg_iter),WRITE,&iov,1,0);
+#endif
msg.msg_control = NULL;
msg.msg_controllen = 0;
msg.msg_name = NULL;
V3_Init_Packet(&palacios_packet_hooks);
memset(&packet_state, 0, sizeof(struct palacios_packet_state));
- spin_lock_init(&(packet_state.lock));
+ palacios_spinlock_init(&(packet_state.lock));
INIT_LIST_HEAD(&(packet_state.open_interfaces));
// REGISTER GLOBAL CONTROL to add interfaces...
deinit_raw_interface(iface);
palacios_free(iface);
}
+
+ palacios_spinlock_deinit(&(packet_state.lock));
return 0;
}