The `user_specified' variable is used in cleanup_module() and hence cannot be dropped from memory after module initialisation. drivers/parport/parport_pc.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/parport/parport_pc.c~parport_pc-rmmod-oops-fix drivers/parport/parport_pc.c --- 25/drivers/parport/parport_pc.c~parport_pc-rmmod-oops-fix 2003-08-26 01:32:59.000000000 -0700 +++ 25-akpm/drivers/parport/parport_pc.c 2003-08-26 01:33:08.000000000 -0700 @@ -93,7 +93,7 @@ static struct superio_struct { /* For Su int dma; } superios[NR_SUPERIOS] __devinitdata = { {0,},}; -static int user_specified __devinitdata = 0; +static int user_specified; #if defined(CONFIG_PARPORT_PC_SUPERIO) || \ (defined(CONFIG_PARPORT_1284) && defined(CONFIG_PARPORT_PC_FIFO)) static int verbose_probing; _