diff options
Diffstat (limited to 'drivers/platform/x86/dell/dell-wmi-sysman/sysman.c')
| -rw-r--r-- | drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c index b68dd11cb892..b929b4f82420 100644 --- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c +++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c @@ -393,6 +393,7 @@ static int init_bios_attributes(int attr_type, const char *guid)  	struct kobject *attr_name_kobj; //individual attribute names  	union acpi_object *obj = NULL;  	union acpi_object *elements; +	struct kobject *duplicate;  	struct kset *tmp_set;  	int min_elements; @@ -451,9 +452,11 @@ static int init_bios_attributes(int attr_type, const char *guid)  		else  			tmp_set = wmi_priv.main_dir_kset; -		if (kset_find_obj(tmp_set, elements[ATTR_NAME].string.pointer)) { -			pr_debug("duplicate attribute name found - %s\n", -				elements[ATTR_NAME].string.pointer); +		duplicate = kset_find_obj(tmp_set, elements[ATTR_NAME].string.pointer); +		if (duplicate) { +			pr_debug("Duplicate attribute name found - %s\n", +				 elements[ATTR_NAME].string.pointer); +			kobject_put(duplicate);  			goto nextobj;  		} |