Skip to content
This repository was archived by the owner on Aug 5, 2022. It is now read-only.

Commit c2b8c0c

Browse files
kellycouchJuston Li
authored and
Juston Li
committed
Fix namespace lookup issue when using Windows SCM2 driver.
iset cookie calculation was broken because of incorrect pointer usage. Swapped SCM and Legacy driver check priority. Now SCM2 driver is first check. Signed-off-by: Kelly J couch <[email protected]>
1 parent 8e015a9 commit c2b8c0c

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

src/lib/namespace.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ int nvm_get_namespace_details(const NVM_UID namespace_uid, struct namespace_deta
326326
free(p_pool);
327327
}
328328
// update the context
329-
if (rc)
329+
if (NVM_SUCCESS == rc)
330330
{
331331
set_nvm_context_namespace_details(namespace_uid, p_namespace);
332332
}

src/lib/namespace_labels.c

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -332,11 +332,12 @@ void calculate_iset_cookies(struct ns_data **pp_ns_data)
332332
{
333333
struct nvm_interleave_set *p_set = &(*pp_ns_data)->iset_list[iset_idx];
334334

335-
struct v1_1_cookie_data *data_v1_1 = malloc(p_set->dimm_count * sizeof(struct v1_1_cookie_data));
336-
NVM_SIZE data_v1_1_size = sizeof (struct v1_1_cookie_data) * p_set->dimm_count;
335+
NVM_SIZE data_v1_1_size = sizeof(struct v1_1_cookie_data) * p_set->dimm_count;
336+
struct v1_1_cookie_data *data_v1_1 = malloc(data_v1_1_size);
337337
memset(data_v1_1, 0, data_v1_1_size);
338-
struct v1_2_cookie_data *data_v1_2 = malloc(p_set->dimm_count * sizeof(struct v1_2_cookie_data));
339-
NVM_SIZE data_v1_2_size = sizeof (struct v1_2_cookie_data) * p_set->dimm_count;
338+
339+
NVM_SIZE data_v1_2_size = sizeof(struct v1_2_cookie_data) * p_set->dimm_count;
340+
struct v1_2_cookie_data *data_v1_2 = malloc(data_v1_2_size);
340341
memset(data_v1_2, 0, data_v1_2_size);
341342

342343
for (int dimm_idx = 0; dimm_idx < p_set->dimm_count; dimm_idx++)
@@ -352,11 +353,8 @@ void calculate_iset_cookies(struct ns_data **pp_ns_data)
352353
data_v1_2[dimm_idx].region_offset = p_set->dimm_region_offsets[dimm_idx];
353354
memmove(&data_v1_2[dimm_idx].serial_number,
354355
dimm.serial_number, sizeof (NVM_SERIAL_NUMBER));
355-
data_v1_2[dimm_idx].vendor_id = dimm.vendor_id;
356-
data_v1_2[dimm_idx].vendor_id = SWAP_SHORT(data_v1_2[dimm_idx].vendor_id);
357-
data_v1_2[dimm_idx].manufacturing_date = dimm.manufacturing_date;
358-
data_v1_2[dimm_idx].manufacturing_date =
359-
SWAP_SHORT(data_v1_2[dimm_idx].manufacturing_date);
356+
data_v1_2[dimm_idx].vendor_id = SWAP_SHORT(dimm.vendor_id);
357+
data_v1_2[dimm_idx].manufacturing_date = SWAP_SHORT(dimm.manufacturing_date);
360358
data_v1_2[dimm_idx].manufacturing_location = dimm.manufacturing_location;
361359
}
362360
}
@@ -365,8 +363,8 @@ void calculate_iset_cookies(struct ns_data **pp_ns_data)
365363
sort_cookie_data(data_v1_1, data_v1_2, p_set->dimm_count);
366364

367365
// cookie is the fletcher64 checksum of the cookie data data
368-
checksum_fletcher64((void *)&data_v1_1, data_v1_1_size, &p_set->cookie_v1_1, 1);
369-
checksum_fletcher64((void *)&data_v1_2, data_v1_2_size, &p_set->cookie_v1_2, 1);
366+
checksum_fletcher64((void *)data_v1_1, data_v1_1_size, &p_set->cookie_v1_1, 1);
367+
checksum_fletcher64((void *)data_v1_2, data_v1_2_size, &p_set->cookie_v1_2, 1);
370368

371369
free(data_v1_1);
372370
free(data_v1_2);

src/lib/win_adapter.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ enum DRIVER_TYPE get_driver_type()
6464

6565
NVM_BOOL is_supported_driver_available()
6666
{
67-
NVM_BOOL result = (NVM_BOOL) (win_leg_adp_is_supported_driver_available() ||
68-
win_scm_adp_is_supported_driver_available());
67+
NVM_BOOL result = (NVM_BOOL) (win_scm_adp_is_supported_driver_available() ||
68+
win_leg_adp_is_supported_driver_available());
6969
return result;
7070
}
7171

0 commit comments

Comments
 (0)