Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf8fde785b872282e7e86d9ea8a9c4e543985bb3
Commit:     bf8fde785b872282e7e86d9ea8a9c4e543985bb3
Parent:     7b5cc6ee6cf9001775c348bac09814a45f1276b7
Author:     Jeff Dike <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 4 22:31:04 2008 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Feb 5 09:44:29 2008 -0800

    uml: miscellaneous code cleanups
    
    Code tidying -
        the pid field of struct irq_fd isn't used, so it is removed
                os_set_fd_async needed to read flags before changing them, it
    doesn't need a pid passed in because it can call getpid itself, and a
    block of unused code needed deleting
        os_get_exec_close was unused, so it is removed
        ptrace_child called _exit for historical reasons which are no
    longer valid, so just calls exit instead
    
    Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/um/include/irq_user.h  |    1 -
 arch/um/include/os.h        |    3 +--
 arch/um/kernel/irq.c        |    6 ++----
 arch/um/kernel/ksyms.c      |    1 -
 arch/um/kernel/smp.c        |    6 ++----
 arch/um/os-Linux/file.c     |   38 +++++++++++---------------------------
 arch/um/os-Linux/start_up.c |    3 ++-
 7 files changed, 18 insertions(+), 40 deletions(-)

diff --git a/arch/um/include/irq_user.h b/arch/um/include/irq_user.h
index 884a9c1..e60b318 100644
--- a/arch/um/include/irq_user.h
+++ b/arch/um/include/irq_user.h
@@ -14,7 +14,6 @@ struct irq_fd {
        int fd;
        int type;
        int irq;
-       int pid;
        int events;
        int current_events;
 };
diff --git a/arch/um/include/os.h b/arch/um/include/os.h
index 9428d34..fdac1a5 100644
--- a/arch/um/include/os.h
+++ b/arch/um/include/os.h
@@ -127,7 +127,6 @@ static inline struct openflags of_cloexec(struct openflags 
flags)
 extern int os_stat_file(const char *file_name, struct uml_stat *buf);
 extern int os_stat_fd(const int fd, struct uml_stat *buf);
 extern int os_access(const char *file, int mode);
-extern int os_get_exec_close(int fd, int *close_on_exec);
 extern int os_set_exec_close(int fd);
 extern int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg);
 extern int os_get_ifname(int fd, char *namebuf);
@@ -142,7 +141,7 @@ extern int os_write_file(int fd, const void *buf, int 
count);
 extern int os_file_size(const char *file, unsigned long long *size_out);
 extern int os_file_modtime(const char *file, unsigned long *modtime);
 extern int os_pipe(int *fd, int stream, int close_on_exec);
-extern int os_set_fd_async(int fd, int owner);
+extern int os_set_fd_async(int fd);
 extern int os_clear_fd_async(int fd);
 extern int os_set_fd_block(int fd, int blocking);
 extern int os_accept_connection(int fd);
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c
index ba11ccd..91587f8 100644
--- a/arch/um/kernel/irq.c
+++ b/arch/um/kernel/irq.c
@@ -107,10 +107,9 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
        struct pollfd *tmp_pfd;
        struct irq_fd *new_fd, *irq_fd;
        unsigned long flags;
-       int pid, events, err, n;
+       int events, err, n;
 
-       pid = os_getpid();
-       err = os_set_fd_async(fd, pid);
+       err = os_set_fd_async(fd);
        if (err < 0)
                goto out;
 
@@ -127,7 +126,6 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
                                     .fd                = fd,
                                     .type              = type,
                                     .irq               = irq,
-                                    .pid               = pid,
                                     .events            = events,
                                     .current_events    = 0 } );
 
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c
index 187a756..5311ee9 100644
--- a/arch/um/kernel/ksyms.c
+++ b/arch/um/kernel/ksyms.c
@@ -36,7 +36,6 @@ EXPORT_SYMBOL(uml_strdup);
 EXPORT_SYMBOL(os_stat_fd);
 EXPORT_SYMBOL(os_stat_file);
 EXPORT_SYMBOL(os_access);
-EXPORT_SYMBOL(os_get_exec_close);
 EXPORT_SYMBOL(os_set_exec_close);
 EXPORT_SYMBOL(os_getpid);
 EXPORT_SYMBOL(os_open_file);
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c
index a12e5bd..869ac68 100644
--- a/arch/um/kernel/smp.c
+++ b/arch/um/kernel/smp.c
@@ -74,8 +74,7 @@ static int idle_proc(void *cpup)
        if (err < 0)
                panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err);
 
-       os_set_fd_async(cpu_data[cpu].ipi_pipe[0],
-                    current->thread.mode.tt.extern_pid);
+       os_set_fd_async(cpu_data[cpu].ipi_pipe[0]);
 
        wmb();
        if (cpu_test_and_set(cpu, cpu_callin_map)) {
@@ -128,8 +127,7 @@ void smp_prepare_cpus(unsigned int maxcpus)
        if (err < 0)
                panic("CPU#0 failed to create IPI pipe, errno = %d", -err);
 
-       os_set_fd_async(cpu_data[me].ipi_pipe[0],
-                    current->thread.mode.tt.extern_pid);
+       os_set_fd_async(cpu_data[me].ipi_pipe[0]);
 
        for (cpu = 1; cpu < ncpus; cpu++) {
                printk(KERN_INFO "Booting processor %d...\n", cpu);
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
index 9387cb1..4f547d7 100644
--- a/arch/um/os-Linux/file.c
+++ b/arch/um/os-Linux/file.c
@@ -328,19 +328,6 @@ int os_file_modtime(const char *file, unsigned long 
*modtime)
        return 0;
 }
 
-int os_get_exec_close(int fd, int *close_on_exec)
-{
-       int ret;
-
-       CATCH_EINTR(ret = fcntl(fd, F_GETFD));
-
-       if(ret < 0)
-               return -errno;
-
-       *close_on_exec = (ret & FD_CLOEXEC) ? 1 : 0;
-       return ret;
-}
-
 int os_set_exec_close(int fd)
 {
        int err;
@@ -380,30 +367,27 @@ int os_pipe(int *fds, int stream, int close_on_exec)
        return err;
 }
 
-int os_set_fd_async(int fd, int owner)
+int os_set_fd_async(int fd)
 {
-       int err;
+       int err, flags;
+
+       flags = fcntl(fd, F_GETFL);
+       if (flags < 0)
+               return -errno;
 
-       /* XXX This should do F_GETFL first */
-       if(fcntl(fd, F_SETFL, O_ASYNC | O_NONBLOCK) < 0){
+       flags |= O_ASYNC | O_NONBLOCK;
+       if (fcntl(fd, F_SETFL, flags) < 0) {
                err = -errno;
                printk("os_set_fd_async : failed to set O_ASYNC and "
                       "O_NONBLOCK on fd # %d, errno = %d\n", fd, errno);
                return err;
        }
-#ifdef notdef
-       if(fcntl(fd, F_SETFD, 1) < 0){
-               printk("os_set_fd_async : Setting FD_CLOEXEC failed, "
-                      "errno = %d\n", errno);
-       }
-#endif
 
-       if((fcntl(fd, F_SETSIG, SIGIO) < 0) ||
-          (fcntl(fd, F_SETOWN, owner) < 0)){
+       if ((fcntl(fd, F_SETSIG, SIGIO) < 0) ||
+           (fcntl(fd, F_SETOWN, os_getpid()) < 0)) {
                err = -errno;
                printk("os_set_fd_async : Failed to fcntl F_SETOWN "
-                      "(or F_SETSIG) fd %d to pid %d, errno = %d\n", fd,
-                      owner, errno);
+                      "(or F_SETSIG) fd %d, errno = %d\n", fd, errno);
                return err;
        }
 
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index 6d56d15..bcf0c9b 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -60,7 +60,8 @@ static int ptrace_child(void)
                 * the UML code itself.
                 */
                ret = 2;
-       _exit(ret);
+
+       exit(ret);
 }
 
 static void fatal_perror(const char *str)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to