On 09/15/2017, 11:45 AM, nixiaoming wrote: > After rmmod 8250.ko > tty_kref_put starts kwork (release_one_tty) to release proc interface I believe you wanted to add a period here. > oops when accessing driver->driver_name in proc_tty_unregister_driver "The kernel oopses when"... ? > Use jprobe, found driver->driver_name point to 8250.ko > static static struct uart_driver serial8250_reg > .driver_name= serial, > > Use name in proc_dir_entry instead of driver->driver_name to fix oops > > test on linux 4.1.12: ... > @@ -164,7 +165,7 @@ void proc_tty_unregister_driver(struct tty_driver *driver) > if (!ent) > return; > > - remove_proc_entry(driver->driver_name, proc_tty_driver); > + remove_proc_entry(ent->name, proc_tty_driver); Yes, that makes sense. Using possibly stale driver_name cannot really work out. I only wonder why nobody noticed until now... So, can you reproduce also on 4.13 or something newer like that? thanks, -- js suse labs