From: Christoph Hellwig PPP leaves the chardev registered even if we're going to fail the modprobe. 25-akpm/drivers/net/ppp_generic.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN drivers/net/ppp_generic.c~ppp-oops-fix drivers/net/ppp_generic.c --- 25/drivers/net/ppp_generic.c~ppp-oops-fix Fri Sep 5 08:00:49 2003 +++ 25-akpm/drivers/net/ppp_generic.c Fri Sep 5 08:00:49 2003 @@ -792,7 +792,7 @@ static struct file_operations ppp_device /* Called at boot time if ppp is compiled into the kernel, or at module load time (from init_module) if compiled as a module. */ -int __init ppp_init(void) +static int __init ppp_init(void) { int err; @@ -801,6 +801,8 @@ int __init ppp_init(void) if (!err) { err = devfs_mk_cdev(MKDEV(PPP_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "ppp"); + if (err) + unregister_chrdev(PPP_MAJOR, "ppp"); } if (err) _