@@ -695,7 +695,9 @@ static const struct file_operations spidev_fops = {
695
695
* It also simplifies memory management.
696
696
*/
697
697
698
- static struct class * spidev_class ;
698
+ static const struct class spidev_class = {
699
+ .name = "spidev" ,
700
+ };
699
701
700
702
static const struct spi_device_id spidev_spi_ids [] = {
701
703
{ .name = "dh2228fv" },
@@ -798,7 +800,7 @@ static int spidev_probe(struct spi_device *spi)
798
800
struct device * dev ;
799
801
800
802
spidev -> devt = MKDEV (SPIDEV_MAJOR , minor );
801
- dev = device_create (spidev_class , & spi -> dev , spidev -> devt ,
803
+ dev = device_create (& spidev_class , & spi -> dev , spidev -> devt ,
802
804
spidev , "spidev%d.%d" ,
803
805
spi -> master -> bus_num , spi_get_chipselect (spi , 0 ));
804
806
status = PTR_ERR_OR_ZERO (dev );
@@ -834,7 +836,7 @@ static void spidev_remove(struct spi_device *spi)
834
836
mutex_unlock (& spidev -> spi_lock );
835
837
836
838
list_del (& spidev -> device_entry );
837
- device_destroy (spidev_class , spidev -> devt );
839
+ device_destroy (& spidev_class , spidev -> devt );
838
840
clear_bit (MINOR (spidev -> devt ), minors );
839
841
if (spidev -> users == 0 )
840
842
kfree (spidev );
@@ -872,15 +874,15 @@ static int __init spidev_init(void)
872
874
if (status < 0 )
873
875
return status ;
874
876
875
- spidev_class = class_create ( "spidev" );
876
- if (IS_ERR ( spidev_class ) ) {
877
+ status = class_register ( & spidev_class );
878
+ if (status ) {
877
879
unregister_chrdev (SPIDEV_MAJOR , spidev_spi_driver .driver .name );
878
- return PTR_ERR ( spidev_class ) ;
880
+ return status ;
879
881
}
880
882
881
883
status = spi_register_driver (& spidev_spi_driver );
882
884
if (status < 0 ) {
883
- class_destroy ( spidev_class );
885
+ class_unregister ( & spidev_class );
884
886
unregister_chrdev (SPIDEV_MAJOR , spidev_spi_driver .driver .name );
885
887
}
886
888
return status ;
@@ -890,7 +892,7 @@ module_init(spidev_init);
890
892
static void __exit spidev_exit (void )
891
893
{
892
894
spi_unregister_driver (& spidev_spi_driver );
893
- class_destroy ( spidev_class );
895
+ class_unregister ( & spidev_class );
894
896
unregister_chrdev (SPIDEV_MAJOR , spidev_spi_driver .driver .name );
895
897
}
896
898
module_exit (spidev_exit );
0 commit comments