[PATCH] um: fix errno usage

Avoid reusing userspace errno twice - it can be cleared by libc code
everywhere (in particular printk() does clear it in my setup).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Paolo 'Blaisorblade' Giarrusso and committed by
Linus Torvalds
de7b37cd 0f97869d

+9 -8
+9 -8
arch/um/drivers/daemon_user.c
··· 56 56 57 57 pri->control = socket(AF_UNIX, SOCK_STREAM, 0); 58 58 if(pri->control < 0){ 59 + err = -errno; 59 60 printk("daemon_open : control socket failed, errno = %d\n", 60 - errno); 61 - return(-errno); 61 + -err); 62 + return err; 62 63 } 63 64 64 65 if(connect(pri->control, (struct sockaddr *) ctl_addr, 65 66 sizeof(*ctl_addr)) < 0){ 66 - printk("daemon_open : control connect failed, errno = %d\n", 67 - errno); 68 67 err = -errno; 68 + printk("daemon_open : control connect failed, errno = %d\n", 69 + -err); 69 70 goto out; 70 71 } 71 72 72 73 fd = socket(AF_UNIX, SOCK_DGRAM, 0); 73 74 if(fd < 0){ 74 - printk("daemon_open : data socket failed, errno = %d\n", 75 - errno); 76 75 err = -errno; 76 + printk("daemon_open : data socket failed, errno = %d\n", 77 + -err); 77 78 goto out; 78 79 } 79 80 if(bind(fd, (struct sockaddr *) local_addr, sizeof(*local_addr)) < 0){ 80 - printk("daemon_open : data bind failed, errno = %d\n", 81 - errno); 82 81 err = -errno; 82 + printk("daemon_open : data bind failed, errno = %d\n", 83 + -err); 83 84 goto out_close; 84 85 } 85 86