mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-14 17:14:09 +00:00
ieee1394: fix host device registering when nodemgr disabled
Since my commit 8252bbb1363b7fe963a3eb6f8a36da619a6f5a65 in 2.6.20-rc1, host devices have a dummy driver attached. Alas the driver was not registered before use if ieee1394 was loaded with disable_nodemgr=1. This resulted in non-functional FireWire drivers or kernel lockup. http://bugzilla.kernel.org/show_bug.cgi?id=7942 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
a5782010b4
commit
91efa46205
@ -258,7 +258,6 @@ static struct device_driver nodemgr_mid_layer_driver = {
|
||||
struct device nodemgr_dev_template_host = {
|
||||
.bus = &ieee1394_bus_type,
|
||||
.release = nodemgr_release_host,
|
||||
.driver = &nodemgr_mid_layer_driver,
|
||||
};
|
||||
|
||||
|
||||
@ -1850,22 +1849,31 @@ int init_ieee1394_nodemgr(void)
|
||||
|
||||
error = class_register(&nodemgr_ne_class);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
goto fail_ne;
|
||||
error = class_register(&nodemgr_ud_class);
|
||||
if (error) {
|
||||
class_unregister(&nodemgr_ne_class);
|
||||
return error;
|
||||
}
|
||||
if (error)
|
||||
goto fail_ud;
|
||||
error = driver_register(&nodemgr_mid_layer_driver);
|
||||
if (error)
|
||||
goto fail_ml;
|
||||
/* This driver is not used if nodemgr is off (disable_nodemgr=1). */
|
||||
nodemgr_dev_template_host.driver = &nodemgr_mid_layer_driver;
|
||||
|
||||
hpsb_register_highlevel(&nodemgr_highlevel);
|
||||
return 0;
|
||||
|
||||
fail_ml:
|
||||
class_unregister(&nodemgr_ud_class);
|
||||
fail_ud:
|
||||
class_unregister(&nodemgr_ne_class);
|
||||
fail_ne:
|
||||
return error;
|
||||
}
|
||||
|
||||
void cleanup_ieee1394_nodemgr(void)
|
||||
{
|
||||
hpsb_unregister_highlevel(&nodemgr_highlevel);
|
||||
|
||||
driver_unregister(&nodemgr_mid_layer_driver);
|
||||
class_unregister(&nodemgr_ud_class);
|
||||
class_unregister(&nodemgr_ne_class);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user