Messages in this thread | | | Date | Fri, 4 Feb 2005 19:43:11 -0500 | Subject | Re: [patch] ns558 bug | From | (Adam Belay) |
| |
On Fri, Feb 04, 2005 at 09:00:54PM +0100, matthieu castet wrote: > 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
I remember writing a version of this patch a while ago. The current behavior is broken because it shouldn't be considered a failure if the driver doesn't find any devices.
Thanks, Adam
> 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);
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |