@@ -1921,6 +1921,7 @@ static __u64 wdc_get_drive_capabilities(nvme_root_t r, struct nvme_dev *dev)
1921
1921
WDC_DRIVE_CAP_INFO |
1922
1922
WDC_DRIVE_CAP_CLOUD_SSD_VERSION |
1923
1923
WDC_DRIVE_CAP_LOG_PAGE_DIR |
1924
+ WDC_DRIVE_CAP_DRIVE_STATUS |
1924
1925
WDC_DRIVE_CAP_SET_LATENCY_MONITOR );
1925
1926
break ;
1926
1927
@@ -2450,23 +2451,32 @@ static bool get_dev_mgment_cbs_data(nvme_root_t r, struct nvme_dev *dev,
2450
2451
uuid_index = index + 1 ;
2451
2452
}
2452
2453
2453
- if (!uuid_index && needs_c2_log_page_check (device_id )) {
2454
- /* In certain devices that don't support UUID lists, there are multiple
2455
- * definitions of the C2 logpage. In those cases, the code
2456
- * needs to try two UUID indexes and use an identification algorithm
2457
- * to determine which is returning the correct log page data.
2458
- */
2459
- uuid_ix = 1 ;
2460
- }
2454
+ if (uuid_present ) {
2455
+ /* use the uuid index found above */
2456
+ found = get_dev_mgmt_log_page_lid_data (dev , cbs_data , lid , log_id , uuid_index );
2457
+ } else if (device_id == WDC_NVME_ZN350_DEV_ID || device_id == WDC_NVME_ZN350_DEV_ID_1 ) {
2458
+ uuid_index = 0 ;
2459
+ found = get_dev_mgmt_log_page_lid_data (dev , cbs_data , lid , log_id , uuid_index );
2460
+ } else {
2461
+ if (!uuid_index && needs_c2_log_page_check (device_id )) {
2462
+ /* In certain devices that don't support UUID lists, there are multiple
2463
+ * definitions of the C2 logpage. In those cases, the code
2464
+ * needs to try two UUID indexes and use an identification algorithm
2465
+ * to determine which is returning the correct log page data.
2466
+ */
2467
+ uuid_ix = 1 ;
2468
+ }
2461
2469
2462
- found = get_dev_mgmt_log_page_lid_data (dev , cbs_data , lid , log_id , uuid_ix );
2470
+ found = get_dev_mgmt_log_page_lid_data (dev , cbs_data , lid , log_id , uuid_ix );
2463
2471
2464
- if (!found ) {
2465
- /* not found with uuid = 1 try with uuid = 0 */
2466
- uuid_ix = 0 ;
2467
- fprintf (stderr , "Not found, requesting log page with uuid_index %d\n" , uuid_index );
2472
+ if (!found ) {
2473
+ /* not found with uuid = 1 try with uuid = 0 */
2474
+ uuid_ix = 0 ;
2475
+ fprintf (stderr , "Not found, requesting log page with uuid_index %d\n" ,
2476
+ uuid_index );
2468
2477
2469
- found = get_dev_mgmt_log_page_lid_data (dev , cbs_data , lid , log_id , uuid_ix );
2478
+ found = get_dev_mgmt_log_page_lid_data (dev , cbs_data , lid , log_id , uuid_ix );
2479
+ }
2470
2480
}
2471
2481
2472
2482
return found ;
0 commit comments