|
@@ -1112,7 +1112,7 @@ static void nodemgr_process_root_directory(struct host_info *hi, struct node_ent
|
|
|
{
|
|
|
unsigned int ud_id = 0;
|
|
|
struct csr1212_dentry *dentry;
|
|
|
- struct csr1212_keyval *kv;
|
|
|
+ struct csr1212_keyval *kv, *vendor_name_kv = NULL;
|
|
|
u8 last_key_id = 0;
|
|
|
|
|
|
ne->needs_probe = 0;
|
|
@@ -1139,8 +1139,8 @@ static void nodemgr_process_root_directory(struct host_info *hi, struct node_ent
|
|
|
CSR1212_TEXTUAL_DESCRIPTOR_LEAF_WIDTH(kv) == 0 &&
|
|
|
CSR1212_TEXTUAL_DESCRIPTOR_LEAF_CHAR_SET(kv) == 0 &&
|
|
|
CSR1212_TEXTUAL_DESCRIPTOR_LEAF_LANGUAGE(kv) == 0) {
|
|
|
- ne->vendor_name_kv = kv;
|
|
|
csr1212_keep_keyval(kv);
|
|
|
+ vendor_name_kv = kv;
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -1149,10 +1149,13 @@ static void nodemgr_process_root_directory(struct host_info *hi, struct node_ent
|
|
|
}
|
|
|
|
|
|
if (ne->vendor_name_kv) {
|
|
|
- int error = device_create_file(&ne->device,
|
|
|
- &dev_attr_ne_vendor_name_kv);
|
|
|
-
|
|
|
- if (error && error != -EEXIST)
|
|
|
+ kv = ne->vendor_name_kv;
|
|
|
+ ne->vendor_name_kv = vendor_name_kv;
|
|
|
+ csr1212_release_keyval(kv);
|
|
|
+ } else if (vendor_name_kv) {
|
|
|
+ ne->vendor_name_kv = vendor_name_kv;
|
|
|
+ if (device_create_file(&ne->device,
|
|
|
+ &dev_attr_ne_vendor_name_kv) != 0)
|
|
|
HPSB_ERR("Failed to add sysfs attribute");
|
|
|
}
|
|
|
}
|