UML - Miscellaneous code cleanups
PATCH 4/6 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
--- 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(-)
arch/um/include/irq_user.h +0 -1
@@ -14,7 +14,6 @@ struct irq_fd {int fd;int type;int irq; -int pid;int events;int current_events; };
arch/um/kernel/irq.c +2 -4
@@ -107,10 +107,9 @@ int activate_fd(int irq, int fd, int typstruct 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 typ .fd = fd, .type = type, .irq = irq, - .pid = pid, .events = events, .current_events = 0 } );
arch/um/kernel/smp.c +2 -4
@@ -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 maxcpif (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);
arch/um/os-Linux/file.c +11 -27
@@ -328,19 +328,6 @@ int os_file_modtime(const char *file, unreturn 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 clreturn 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; }
arch/um/include/os.h +1 -2
@@ -127,7 +127,6 @@ static inline struct openflags of_cloexeextern 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 vextern 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);
arch/um/kernel/ksyms.c +0 -1
@@ -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);
arch/um/os-Linux/start_up.c +2 -1
@@ -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)
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel