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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to