@@ -189,7 +189,9 @@ static inline void __ublk_complete_rq(struct request *req);
189
189
static void ublk_complete_rq (struct kref * ref );
190
190
191
191
static dev_t ublk_chr_devt ;
192
- static struct class * ublk_chr_class ;
192
+ static const struct class ublk_chr_class = {
193
+ .name = "ublk-char" ,
194
+ };
193
195
194
196
static DEFINE_IDR (ublk_index_idr );
195
197
static DEFINE_SPINLOCK (ublk_idr_lock );
@@ -1755,7 +1757,7 @@ static int ublk_add_chdev(struct ublk_device *ub)
1755
1757
1756
1758
dev -> parent = ublk_misc .this_device ;
1757
1759
dev -> devt = MKDEV (MAJOR (ublk_chr_devt ), minor );
1758
- dev -> class = ublk_chr_class ;
1760
+ dev -> class = & ublk_chr_class ;
1759
1761
dev -> release = ublk_cdev_rel ;
1760
1762
device_initialize (dev );
1761
1763
@@ -2581,11 +2583,10 @@ static int __init ublk_init(void)
2581
2583
if (ret )
2582
2584
goto unregister_mis ;
2583
2585
2584
- ublk_chr_class = class_create ("ublk-char" );
2585
- if (IS_ERR (ublk_chr_class )) {
2586
- ret = PTR_ERR (ublk_chr_class );
2586
+ ret = class_register (& ublk_chr_class );
2587
+ if (ret )
2587
2588
goto free_chrdev_region ;
2588
- }
2589
+
2589
2590
return 0 ;
2590
2591
2591
2592
free_chrdev_region :
@@ -2603,7 +2604,7 @@ static void __exit ublk_exit(void)
2603
2604
idr_for_each_entry (& ublk_index_idr , ub , id )
2604
2605
ublk_remove (ub );
2605
2606
2606
- class_destroy ( ublk_chr_class );
2607
+ class_unregister ( & ublk_chr_class );
2607
2608
misc_deregister (& ublk_misc );
2608
2609
2609
2610
idr_destroy (& ublk_index_idr );
0 commit comments