aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/drivers/vde_kern.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/drivers/vde_kern.c')
-rw-r--r--arch/um/drivers/vde_kern.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/arch/um/drivers/vde_kern.c b/arch/um/drivers/vde_kern.c
index c5d01685d2b5..add7e722defb 100644
--- a/arch/um/drivers/vde_kern.c
+++ b/arch/um/drivers/vde_kern.c
@@ -36,30 +36,25 @@ static void vde_init(struct net_device *dev, void *data)
36 printk("\n"); 36 printk("\n");
37} 37}
38 38
39static int vde_read(int fd, struct sk_buff **skb, struct uml_net_private *lp) 39static int vde_read(int fd, struct sk_buff *skb, struct uml_net_private *lp)
40{ 40{
41 struct vde_data *pri = (struct vde_data *) &lp->user; 41 struct vde_data *pri = (struct vde_data *) &lp->user;
42 42
43 if (pri->conn != NULL) { 43 if (pri->conn != NULL)
44 *skb = ether_adjust_skb(*skb, ETH_HEADER_OTHER); 44 return vde_user_read(pri->conn, skb_mac_header(skb),
45 if (*skb == NULL) 45 skb->dev->mtu + ETH_HEADER_OTHER);
46 return -ENOMEM;
47
48 return vde_user_read(pri->conn, skb_mac_header(*skb),
49 (*skb)->dev->mtu + ETH_HEADER_OTHER);
50 }
51 46
52 printk(KERN_ERR "vde_read - we have no VDECONN to read from"); 47 printk(KERN_ERR "vde_read - we have no VDECONN to read from");
53 return -EBADF; 48 return -EBADF;
54} 49}
55 50
56static int vde_write(int fd, struct sk_buff **skb, struct uml_net_private *lp) 51static int vde_write(int fd, struct sk_buff *skb, struct uml_net_private *lp)
57{ 52{
58 struct vde_data *pri = (struct vde_data *) &lp->user; 53 struct vde_data *pri = (struct vde_data *) &lp->user;
59 54
60 if (pri->conn != NULL) 55 if (pri->conn != NULL)
61 return vde_user_write((void *)pri->conn, (*skb)->data, 56 return vde_user_write((void *)pri->conn, skb->data,
62 (*skb)->len); 57 skb->len);
63 58
64 printk(KERN_ERR "vde_write - we have no VDECONN to write to"); 59 printk(KERN_ERR "vde_write - we have no VDECONN to write to");
65 return -EBADF; 60 return -EBADF;