diff options
Diffstat (limited to 'drivers/comedi/drivers/comedi_test.c')
| -rw-r--r-- | drivers/comedi/drivers/comedi_test.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/comedi/drivers/comedi_test.c b/drivers/comedi/drivers/comedi_test.c index c02dc19a679b..30ea8b53ebf8 100644 --- a/drivers/comedi/drivers/comedi_test.c +++ b/drivers/comedi/drivers/comedi_test.c @@ -60,7 +60,9 @@ static bool config_mode; static unsigned int set_amplitude; static unsigned int set_period; -static struct class *ctcls; +static const struct class ctcls = { + .name = CLASS_NAME, +}; static struct device *ctdev; module_param_named(noauto, config_mode, bool, 0444); @@ -795,13 +797,13 @@ static int __init comedi_test_init(void) } if (!config_mode) { - ctcls = class_create(CLASS_NAME); - if (IS_ERR(ctcls)) { + ret = class_register(&ctcls); + if (ret) { pr_warn("comedi_test: unable to create class\n"); goto clean3; } - ctdev = device_create(ctcls, NULL, MKDEV(0, 0), NULL, DEV_NAME); + ctdev = device_create(&ctcls, NULL, MKDEV(0, 0), NULL, DEV_NAME); if (IS_ERR(ctdev)) { pr_warn("comedi_test: unable to create device\n"); goto clean2; @@ -817,13 +819,10 @@ static int __init comedi_test_init(void) return 0; clean: - device_destroy(ctcls, MKDEV(0, 0)); + device_destroy(&ctcls, MKDEV(0, 0)); clean2: - class_destroy(ctcls); - ctdev = NULL; + class_unregister(&ctcls); clean3: - ctcls = NULL; - return 0; } module_init(comedi_test_init); @@ -833,9 +832,9 @@ static void __exit comedi_test_exit(void) if (ctdev) comedi_auto_unconfig(ctdev); - if (ctcls) { - device_destroy(ctcls, MKDEV(0, 0)); - class_destroy(ctcls); + if (class_is_registered(&ctcls)) { + device_destroy(&ctcls, MKDEV(0, 0)); + class_unregister(&ctcls); } comedi_driver_unregister(&waveform_driver); |
