@@ -39,7 +39,7 @@ static inline struct bsg_device *to_bsg_device(struct inode *inode)
3939#define BSG_MAX_DEVS 32768
4040
4141static DEFINE_IDA (bsg_minor_ida );
42- static struct class * bsg_class ;
42+ static const struct class bsg_class ;
4343static int bsg_major ;
4444
4545static unsigned int bsg_timeout (struct bsg_device * bd , struct sg_io_v4 * hdr )
@@ -208,7 +208,7 @@ struct bsg_device *bsg_register_queue(struct request_queue *q,
208208 return ERR_PTR (ret );
209209 }
210210 bd -> device .devt = MKDEV (bsg_major , ret );
211- bd -> device .class = bsg_class ;
211+ bd -> device .class = & bsg_class ;
212212 bd -> device .parent = parent ;
213213 bd -> device .release = bsg_device_release ;
214214 dev_set_name (& bd -> device , "%s" , name );
@@ -242,15 +242,19 @@ static char *bsg_devnode(const struct device *dev, umode_t *mode)
242242 return kasprintf (GFP_KERNEL , "bsg/%s" , dev_name (dev ));
243243}
244244
245+ static const struct class bsg_class = {
246+ .name = "bsg" ,
247+ .devnode = bsg_devnode ,
248+ };
249+
245250static int __init bsg_init (void )
246251{
247252 dev_t devid ;
248253 int ret ;
249254
250- bsg_class = class_create ("bsg" );
251- if (IS_ERR (bsg_class ))
252- return PTR_ERR (bsg_class );
253- bsg_class -> devnode = bsg_devnode ;
255+ ret = class_register (& bsg_class );
256+ if (ret )
257+ return ret ;
254258
255259 ret = alloc_chrdev_region (& devid , 0 , BSG_MAX_DEVS , "bsg" );
256260 if (ret )
@@ -262,7 +266,7 @@ static int __init bsg_init(void)
262266 return 0 ;
263267
264268destroy_bsg_class :
265- class_destroy ( bsg_class );
269+ class_unregister ( & bsg_class );
266270 return ret ;
267271}
268272
0 commit comments