diff options
Diffstat (limited to 'drivers/platform/x86/intel/tpmi.c')
| -rw-r--r-- | drivers/platform/x86/intel/tpmi.c | 23 | 
1 files changed, 7 insertions, 16 deletions
| diff --git a/drivers/platform/x86/intel/tpmi.c b/drivers/platform/x86/intel/tpmi.c index c999732b0f1e..a5227951decc 100644 --- a/drivers/platform/x86/intel/tpmi.c +++ b/drivers/platform/x86/intel/tpmi.c @@ -203,7 +203,7 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,  	struct intel_vsec_device *feature_vsec_dev;  	struct resource *res, *tmp;  	const char *name; -	int ret, i; +	int i;  	name = intel_tpmi_name(pfs->pfs_header.tpmi_id);  	if (!name) @@ -215,8 +215,8 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,  	feature_vsec_dev = kzalloc(sizeof(*feature_vsec_dev), GFP_KERNEL);  	if (!feature_vsec_dev) { -		ret = -ENOMEM; -		goto free_res; +		kfree(res); +		return -ENOMEM;  	}  	snprintf(feature_id_name, sizeof(feature_id_name), "tpmi-%s", name); @@ -239,20 +239,11 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,  	/*  	 * intel_vsec_add_aux() is resource managed, no explicit  	 * delete is required on error or on module unload. -	 * feature_vsec_dev memory is also freed as part of device -	 * delete. +	 * feature_vsec_dev and res memory are also freed as part of +	 * device deletion.  	 */ -	ret = intel_vsec_add_aux(vsec_dev->pcidev, &vsec_dev->auxdev.dev, -				 feature_vsec_dev, feature_id_name); -	if (ret) -		goto free_res; - -	return 0; - -free_res: -	kfree(res); - -	return ret; +	return intel_vsec_add_aux(vsec_dev->pcidev, &vsec_dev->auxdev.dev, +				  feature_vsec_dev, feature_id_name);  }  static int tpmi_create_devices(struct intel_tpmi_info *tpmi_info) |