[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tkrat.e12859f4e3703b6b@s5r6.in-berlin.de>
Date: Tue, 6 Feb 2007 02:20:06 +0100 (CET)
From: Stefan Richter <stefanr@...6.in-berlin.de>
To: Robert Crocombe <rcrocomb@...il.com>
cc: linux1394-devel <linux1394-devel@...ts.sourceforge.net>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: [PATCH update] 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.
Signed-off-by: Stefan Richter <stefanr@...6.in-berlin.de>
---
Update: - work without extern variables,
- better error checks,
- add missing driver_unregister.
drivers/ieee1394/nodemgr.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
Index: linux-2.6.20-rc5/drivers/ieee1394/nodemgr.c
===================================================================
--- linux-2.6.20-rc5.orig/drivers/ieee1394/nodemgr.c
+++ linux-2.6.20-rc5/drivers/ieee1394/nodemgr.c
@@ -258,7 +258,6 @@ static struct device_driver nodemgr_mid_
struct device nodemgr_dev_template_host = {
.bus = &ieee1394_bus_type,
.release = nodemgr_release_host,
- .driver = &nodemgr_mid_layer_driver,
};
@@ -1850,22 +1849,33 @@ 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;
+
+ /* don't show this driver if nodemgr is off (disable_nodmgr=1) */
+ nodemgr_dev_template_host.driver = &nodemgr_mid_layer_driver;
+
error = driver_register(&nodemgr_mid_layer_driver);
+ if (error)
+ goto fail_ml;
+
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);
}
--
Stefan Richter
-=====-=-=== --=- --==-
http://arcgraph.de/sr/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists