diff options
author | Zheng Da <zhengda1936@gmail.com> | 2010-02-08 06:52:59 +0100 |
---|---|---|
committer | Zheng Da <zhengda1936@gmail.com> | 2010-02-08 06:52:59 +0100 |
commit | aff295710ea0b575c556f10981d1ae740e192969 (patch) | |
tree | cafeb15cef737b7fe26e58f061d25bd30ba25219 /libmachdev | |
parent | b113a39b43277c44bb5af06d784aa834442bd626 (diff) |
return packet transmission error to the client.
Diffstat (limited to 'libmachdev')
-rw-r--r-- | libmachdev/net.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libmachdev/net.c b/libmachdev/net.c index 8e579e58..d80e86ff 100644 --- a/libmachdev/net.c +++ b/libmachdev/net.c @@ -399,6 +399,7 @@ device_write (void *d, mach_port_t reply_port, struct net_data *nd = d; struct net_device *dev = nd->dev; struct skb_reply *skb_reply = malloc (sizeof (*skb_reply)); + error_t err; if (skb_reply == NULL) return D_NO_MEMORY; @@ -407,8 +408,10 @@ device_write (void *d, mach_port_t reply_port, skb_reply->reply = reply_port; skb_reply->reply_type = reply_port_type; - linux_pkg_xmit (data, count, skb_reply, pre_kfree_skb, dev); + err = linux_pkg_xmit (data, count, skb_reply, pre_kfree_skb, dev); vm_deallocate (mach_task_self (), (vm_address_t) data, count); + if (err) + return err; /* Send packet to filters. */ // TODO should I deliver the packet to other network stacks? |