diff options
| -rw-r--r-- | drivers/platform/x86/sony-laptop.c | 25 | 
1 files changed, 14 insertions, 11 deletions
| diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index 33c3b8c066ee..33d9555470c3 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -771,11 +771,6 @@ static int sony_nc_handles_setup(struct platform_device *pd)  	if (!handles)  		return -ENOMEM; -	sysfs_attr_init(&handles->devattr.attr); -	handles->devattr.attr.name = "handles"; -	handles->devattr.attr.mode = S_IRUGO; -	handles->devattr.show = sony_nc_handles_show; -  	for (i = 0; i < ARRAY_SIZE(handles->cap); i++) {  		if (!acpi_callsetfunc(sony_nc_acpi_handle,  					"SN00", i + 0x20, &result)) { @@ -785,11 +780,18 @@ static int sony_nc_handles_setup(struct platform_device *pd)  		}  	} -	/* allow reading capabilities via sysfs */ -	if (device_create_file(&pd->dev, &handles->devattr)) { -		kfree(handles); -		handles = NULL; -		return -1; +	if (debug) { +		sysfs_attr_init(&handles->devattr.attr); +		handles->devattr.attr.name = "handles"; +		handles->devattr.attr.mode = S_IRUGO; +		handles->devattr.show = sony_nc_handles_show; + +		/* allow reading capabilities via sysfs */ +		if (device_create_file(&pd->dev, &handles->devattr)) { +			kfree(handles); +			handles = NULL; +			return -1; +		}  	}  	return 0; @@ -798,7 +800,8 @@ static int sony_nc_handles_setup(struct platform_device *pd)  static int sony_nc_handles_cleanup(struct platform_device *pd)  {  	if (handles) { -		device_remove_file(&pd->dev, &handles->devattr); +		if (debug) +			device_remove_file(&pd->dev, &handles->devattr);  		kfree(handles);  		handles = NULL;  	} | 
