From: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>
---

 arch/um/drivers/daemon_user.c |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/arch/um/drivers/daemon_user.c b/arch/um/drivers/daemon_user.c
index 310af0f..021b82c 100644
--- a/arch/um/drivers/daemon_user.c
+++ b/arch/um/drivers/daemon_user.c
@@ -56,30 +56,31 @@ static int connect_to_switch(struct daemon_data *pri)
 
        pri->control = socket(AF_UNIX, SOCK_STREAM, 0);
        if(pri->control < 0){
+               err = -errno;
                printk("daemon_open : control socket failed, errno = %d\n", 
-                      errno);          
-               return(-errno);
+                      -err);
+               return err;
        }
 
        if(connect(pri->control, (struct sockaddr *) ctl_addr, 
                   sizeof(*ctl_addr)) < 0){
-               printk("daemon_open : control connect failed, errno = %d\n",
-                      errno);
                err = -errno;
+               printk("daemon_open : control connect failed, errno = %d\n",
+                      -err);
                goto out;
        }
 
        fd = socket(AF_UNIX, SOCK_DGRAM, 0);
        if(fd < 0){
-               printk("daemon_open : data socket failed, errno = %d\n", 
-                      errno);
                err = -errno;
+               printk("daemon_open : data socket failed, errno = %d\n",
+                      -err);
                goto out;
        }
        if(bind(fd, (struct sockaddr *) local_addr, sizeof(*local_addr)) < 0){
-               printk("daemon_open : data bind failed, errno = %d\n", 
-                      errno);
                err = -errno;
+               printk("daemon_open : data bind failed, errno = %d\n",
+                      -err);
                goto out_close;
        }
 


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to