um: sigio: Return error from add_sigio_fd()
authorJohannes Berg <johannes.berg@intel.com>
Mon, 23 Nov 2020 19:44:02 +0000 (20:44 +0100)
committerRichard Weinberger <richard@nod.at>
Sun, 13 Dec 2020 21:22:01 +0000 (22:22 +0100)
If we run out of space, return an error instead of 0.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/os-Linux/sigio.c

index 7555808..f91fd16 100644 (file)
@@ -167,15 +167,17 @@ static void update_thread(void)
 int add_sigio_fd(int fd)
 {
        struct pollfd *p;
-       int err = 0, i, n;
+       int err, i, n;
 
        sigio_lock();
        for (i = 0; i < all_sigio_fds.used; i++) {
                if (all_sigio_fds.poll[i].fd == fd)
                        break;
        }
-       if (i == all_sigio_fds.used)
+       if (i == all_sigio_fds.used) {
+               err = -ENOSPC;
                goto out;
+       }
 
        p = &all_sigio_fds.poll[i];