diff options
Diffstat (limited to 'arch/um/os-Linux/drivers/ethertap_user.c')
-rw-r--r-- | arch/um/os-Linux/drivers/ethertap_user.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/um/os-Linux/drivers/ethertap_user.c b/arch/um/os-Linux/drivers/ethertap_user.c index fd6cfa5b4a78..acba30161287 100644 --- a/arch/um/os-Linux/drivers/ethertap_user.c +++ b/arch/um/os-Linux/drivers/ethertap_user.c | |||
@@ -48,9 +48,9 @@ static void etap_change(int op, unsigned char *addr, unsigned char *netmask, | |||
48 | change.what = op; | 48 | change.what = op; |
49 | memcpy(change.addr, addr, sizeof(change.addr)); | 49 | memcpy(change.addr, addr, sizeof(change.addr)); |
50 | memcpy(change.netmask, netmask, sizeof(change.netmask)); | 50 | memcpy(change.netmask, netmask, sizeof(change.netmask)); |
51 | n = os_write_file(fd, &change, sizeof(change)); | 51 | CATCH_EINTR(n = write(fd, &change, sizeof(change))); |
52 | if(n != sizeof(change)){ | 52 | if(n != sizeof(change)){ |
53 | printk("etap_change - request failed, err = %d\n", -n); | 53 | printk("etap_change - request failed, err = %d\n", errno); |
54 | return; | 54 | return; |
55 | } | 55 | } |
56 | 56 | ||
@@ -123,10 +123,11 @@ static int etap_tramp(char *dev, char *gate, int control_me, | |||
123 | err = pid; | 123 | err = pid; |
124 | os_close_file(data_remote); | 124 | os_close_file(data_remote); |
125 | os_close_file(control_remote); | 125 | os_close_file(control_remote); |
126 | n = os_read_file(control_me, &c, sizeof(c)); | 126 | CATCH_EINTR(n = read(control_me, &c, sizeof(c))); |
127 | if(n != sizeof(c)){ | 127 | if(n != sizeof(c)){ |
128 | printk("etap_tramp : read of status failed, err = %d\n", -n); | 128 | err = -errno; |
129 | return -EINVAL; | 129 | printk("etap_tramp : read of status failed, err = %d\n", -err); |
130 | return err; | ||
130 | } | 131 | } |
131 | if(c != 1){ | 132 | if(c != 1){ |
132 | printk("etap_tramp : uml_net failed\n"); | 133 | printk("etap_tramp : uml_net failed\n"); |