@ -590,7 +590,8 @@ emc2103_probe(struct i2c_client *client, const struct i2c_device_id *id)
if ( ! i2c_check_functionality ( client - > adapter , I2C_FUNC_SMBUS_BYTE_DATA ) )
return - EIO ;
data = kzalloc ( sizeof ( struct emc2103_data ) , GFP_KERNEL ) ;
data = devm_kzalloc ( & client - > dev , sizeof ( struct emc2103_data ) ,
GFP_KERNEL ) ;
if ( ! data )
return - ENOMEM ;
@ -608,7 +609,7 @@ emc2103_probe(struct i2c_client *client, const struct i2c_device_id *id)
if ( status < 0 ) {
dev_dbg ( & client - > dev , " reg 0x%02x, err %d \n " , REG_CONF1 ,
status ) ;
goto exit_free ;
return status ;
}
/* detect current state of hardware */
@ -631,7 +632,7 @@ emc2103_probe(struct i2c_client *client, const struct i2c_device_id *id)
/* Register sysfs hooks */
status = sysfs_create_group ( & client - > dev . kobj , & emc2103_group ) ;
if ( status )
goto exit_free ;
return status ;
if ( data - > temp_count > = 3 ) {
status = sysfs_create_group ( & client - > dev . kobj ,
@ -666,8 +667,6 @@ exit_remove_temp3:
sysfs_remove_group ( & client - > dev . kobj , & emc2103_temp3_group ) ;
exit_remove :
sysfs_remove_group ( & client - > dev . kobj , & emc2103_group ) ;
exit_free :
kfree ( data ) ;
return status ;
}
@ -685,7 +684,6 @@ static int emc2103_remove(struct i2c_client *client)
sysfs_remove_group ( & client - > dev . kobj , & emc2103_group ) ;
kfree ( data ) ;
return 0 ;
}