@@ -39,7 +39,7 @@ static inline struct bsg_device *to_bsg_device(struct inode *inode)
39
39
#define BSG_MAX_DEVS 32768
40
40
41
41
static DEFINE_IDA (bsg_minor_ida );
42
- static struct class * bsg_class ;
42
+ static const struct class bsg_class ;
43
43
static int bsg_major ;
44
44
45
45
static 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,
208
208
return ERR_PTR (ret );
209
209
}
210
210
bd -> device .devt = MKDEV (bsg_major , ret );
211
- bd -> device .class = bsg_class ;
211
+ bd -> device .class = & bsg_class ;
212
212
bd -> device .parent = parent ;
213
213
bd -> device .release = bsg_device_release ;
214
214
dev_set_name (& bd -> device , "%s" , name );
@@ -242,15 +242,19 @@ static char *bsg_devnode(const struct device *dev, umode_t *mode)
242
242
return kasprintf (GFP_KERNEL , "bsg/%s" , dev_name (dev ));
243
243
}
244
244
245
+ static const struct class bsg_class = {
246
+ .name = "bsg" ,
247
+ .devnode = bsg_devnode ,
248
+ };
249
+
245
250
static int __init bsg_init (void )
246
251
{
247
252
dev_t devid ;
248
253
int ret ;
249
254
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 ;
254
258
255
259
ret = alloc_chrdev_region (& devid , 0 , BSG_MAX_DEVS , "bsg" );
256
260
if (ret )
@@ -262,7 +266,7 @@ static int __init bsg_init(void)
262
266
return 0 ;
263
267
264
268
destroy_bsg_class :
265
- class_destroy ( bsg_class );
269
+ class_unregister ( & bsg_class );
266
270
return ret ;
267
271
}
268
272
0 commit comments