Do not assume that pnp_register_driver() returns the number of
devices claimed.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-static int pnp_registered = 0;
-
static int __init ns558_init(void)
{
int i = 0;
static int __init ns558_init(void)
{
int i = 0;
- if (pnp_register_driver(&ns558_pnp_driver) >= 0)
- pnp_registered = 1;
+ error = pnp_register_driver(&ns558_pnp_driver);
+ if (error && error != -ENODEV) /* should be ENOSYS really */
+ return error;
/*
* Probe ISA ports after PnP, so that PnP ports that are already
/*
* Probe ISA ports after PnP, so that PnP ports that are already
while (ns558_isa_portlist[i])
ns558_isa_probe(ns558_isa_portlist[i++]);
while (ns558_isa_portlist[i])
ns558_isa_probe(ns558_isa_portlist[i++]);
- return (list_empty(&ns558_list) && !pnp_registered) ? -ENODEV : 0;
+ return list_empty(&ns558_list) && error ? -ENODEV : 0;
}
static void __exit ns558_exit(void)
}
static void __exit ns558_exit(void)
- if (pnp_registered)
- pnp_unregister_driver(&ns558_pnp_driver);
+ pnp_unregister_driver(&ns558_pnp_driver);
}
module_init(ns558_init);
}
module_init(ns558_init);