Hi,
this patch is based on http://bugzilla.kernel.org/show_bug.cgi?id=2962 patch from adam belay.
It solve a oops when pnp_register_driver(&ns558_pnp_driver) failed.
Please apply this patch.
Matthieu
Index: drivers/input/gameport/ns558.c =================================================================== RCS file: /home/mat/dev/linux-cvs-rep/linux-cvs/drivers/input/gameport/ns558.c,v retrieving revision 1.15 diff -u -u -r1.15 ns558.c --- drivers/input/gameport/ns558.c 16 Sep 2004 14:04:04 -0000 1.15 +++ drivers/input/gameport/ns558.c 4 Feb 2005 19:53:20 -0000 @@ -261,6 +261,8 @@ #endif +static int registered = 0; + int __init ns558_init(void) { int i = 0; @@ -272,8 +274,10 @@ while (ns558_isa_portlist[i]) ns558_isa_probe(ns558_isa_portlist[i++]); - pnp_register_driver(&ns558_pnp_driver); - return list_empty(&ns558_list) ? -ENODEV : 0; + if (pnp_register_driver(&ns558_pnp_driver) >= 0) + registered = 1; + + return (list_empty(&ns558_list) && !registered) ? -ENODEV : 0; } void __exit ns558_exit(void) @@ -297,7 +301,8 @@ break; } } - pnp_unregister_driver(&ns558_pnp_driver); + if (registered) + pnp_unregister_driver(&ns558_pnp_driver); } module_init(ns558_init);