@@ -49,7 +49,9 @@ MODULE_LICENSE("GPL");
4949/* -------- driver information -------------------------------------- */
5050
5151static DEFINE_MUTEX (capi_mutex );
52- static struct class * capi_class ;
52+ static const struct class capi_class = {
53+ .name = "capi" ,
54+ };
5355static int capi_major = 68 ; /* allocated */
5456
5557module_param_named (major , capi_major , uint , 0 );
@@ -1393,18 +1395,19 @@ static int __init capi_init(void)
13931395 kcapi_exit ();
13941396 return major_ret ;
13951397 }
1396- capi_class = class_create ("capi" );
1397- if (IS_ERR (capi_class )) {
1398+
1399+ ret = class_register (& capi_class );
1400+ if (ret ) {
13981401 unregister_chrdev (capi_major , "capi20" );
13991402 kcapi_exit ();
1400- return PTR_ERR ( capi_class ) ;
1403+ return ret ;
14011404 }
14021405
1403- device_create (capi_class , NULL , MKDEV (capi_major , 0 ), NULL , "capi20" );
1406+ device_create (& capi_class , NULL , MKDEV (capi_major , 0 ), NULL , "capi20" );
14041407
14051408 if (capinc_tty_init () < 0 ) {
1406- device_destroy (capi_class , MKDEV (capi_major , 0 ));
1407- class_destroy ( capi_class );
1409+ device_destroy (& capi_class , MKDEV (capi_major , 0 ));
1410+ class_unregister ( & capi_class );
14081411 unregister_chrdev (capi_major , "capi20" );
14091412 kcapi_exit ();
14101413 return - ENOMEM ;
@@ -1427,8 +1430,8 @@ static void __exit capi_exit(void)
14271430{
14281431 proc_exit ();
14291432
1430- device_destroy (capi_class , MKDEV (capi_major , 0 ));
1431- class_destroy ( capi_class );
1433+ device_destroy (& capi_class , MKDEV (capi_major , 0 ));
1434+ class_unregister ( & capi_class );
14321435 unregister_chrdev (capi_major , "capi20" );
14331436
14341437 capinc_tty_exit ();
0 commit comments