Re: OOPS on bringing down ppp

From: Andrew Morton (andrewm@uow.edu.au)
Date: Fri Nov 24 2000 - 07:28:44 EST


Mark Ellis wrote:
>
> Hi all, consistently getting the following when pppd is terminated.

When pppd downs the ppp0 device, unregister_netdevice() is
trying to run /sbin/hotplug in a new kernel thread. That
thread's `files' structure is copied from pppd, but it is
NULL. Presumably pppd's files pointer was also NULL.

Try this:

--- linux-2.4.0-test11-ac2/kernel/kmod.c Tue Nov 21 20:11:21 2000
+++ linux-akpm/kernel/kmod.c Fri Nov 24 23:03:34 2000
@@ -99,8 +99,10 @@
         flush_signal_handlers(current);
         spin_unlock_irq(&current->sigmask_lock);
 
- for (i = 0; i < current->files->max_fds; i++ ) {
- if (current->files->fd[i]) close(i);
+ if (current->files) {
+ for (i = 0; i < current->files->max_fds; i++ ) {
+ if (current->files->fd[i]) close(i);
+ }
         }
 
         /* Drop the "current user" thing */

Not my area, but I don't think exec_usermodehelper() should assume
that current->files is always valid.

Al, is this correct? If so, does daemonize() also need this test?
If not, then how did this thread get (current->files == NULL)?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 30 2000 - 21:00:11 EST