Skip to content

Commit 231a018

Browse files
MaisenbacherDigaw
authored andcommitted
nvme: nvme_get_features use nvme_passthru_cmd directly
Drop nvme_get_features_args entirely. Signed-off-by: Dennis Maisenbacher <[email protected]>
1 parent 60da334 commit 231a018

14 files changed

Lines changed: 71 additions & 330 deletions

File tree

nvme.c

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4705,19 +4705,8 @@ static int get_feature_id(nvme_link_t l, struct feat_cfg *cfg,
47054705
return -1;
47064706
}
47074707

4708-
struct nvme_get_features_args args = {
4709-
.args_size = sizeof(args),
4710-
.fid = cfg->feature_id,
4711-
.nsid = cfg->namespace_id,
4712-
.sel = cfg->sel,
4713-
.cdw11 = cfg->cdw11,
4714-
.uuidx = cfg->uuid_index,
4715-
.data_len = cfg->data_len,
4716-
.data = *buf,
4717-
.timeout = nvme_cfg.timeout,
4718-
.result = result,
4719-
};
4720-
return nvme_get_features(l, &args);
4708+
return nvme_get_features(l, cfg->namespace_id, cfg->feature_id, cfg->sel,
4709+
cfg->cdw11, cfg->uuid_index, *buf, cfg->data_len, result);
47214710
}
47224711

47234712
static int filter_out_flags(int status)

plugins/fdp/fdp.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -553,22 +553,11 @@ static int fdp_feature(int argc, char **argv, struct command *cmd, struct plugin
553553
}
554554

555555
if (!enabling_conf_idx && !cfg.disable) {
556-
struct nvme_get_features_args getf_args = {
557-
.args_size = sizeof(getf_args),
558-
.fid = NVME_FEAT_FID_FDP,
559-
.nsid = NVME_NSID_ALL,
560-
.sel = NVME_GET_FEATURES_SEL_CURRENT,
561-
.cdw11 = cfg.endgid,
562-
.uuidx = 0,
563-
.data_len = 0,
564-
.data = NULL,
565-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
566-
.result = &result,
567-
};
568-
569556
nvme_show_result("Endurance Group : %d", cfg.endgid);
570557

571-
err = nvme_get_features(l, &getf_args);
558+
err = nvme_get_features(l, NVME_NSID_ALL, NVME_FEAT_FID_FDP,
559+
NVME_GET_FEATURES_SEL_CURRENT, cfg.endgid, 0,
560+
NULL, 0, &result);
572561
if (err) {
573562
nvme_show_status(err);
574563
return err;

plugins/feat/feat-nvme.c

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,7 @@ static int feat_get(nvme_link_t l, const __u8 fid, __u32 cdw11, __u8 sel, const
6666
return -ENOMEM;
6767
}
6868

69-
struct nvme_get_features_args args = {
70-
.args_size = sizeof(args),
71-
.fid = fid,
72-
.sel = sel,
73-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
74-
.result = &result,
75-
.cdw11 = cdw11,
76-
.data = buf,
77-
.data_len = len,
78-
};
79-
80-
err = nvme_get_features(l, &args);
69+
err = nvme_get_features(l, 0, fid, sel, cdw11, 0, buf, len, &result);
8170

8271
nvme_show_init();
8372

plugins/intel/intel-nvme.c

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,19 +1075,10 @@ static int get_lat_stats_log(int argc, char **argv, struct command *cmd, struct
10751075
__u32 thresholds[OPTANE_V1000_BUCKET_LEN] = {0};
10761076
__u32 result;
10771077

1078-
struct nvme_get_features_args args = {
1079-
.args_size = sizeof(args),
1080-
.fid = 0xf7,
1081-
.nsid = 0,
1082-
.sel = 0,
1083-
.cdw11 = cfg.write ? 0x1 : 0x0,
1084-
.uuidx = 0,
1085-
.data_len = sizeof(thresholds),
1086-
.data = thresholds,
1087-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
1088-
.result = &result,
1089-
};
1090-
err = nvme_get_features(l, &args);
1078+
err = nvme_get_features(l, 0, 0xf7,
1079+
0, cfg.write ? 0x1 : 0x0,
1080+
0, thresholds, sizeof(thresholds),
1081+
&result);
10911082
if (err) {
10921083
fprintf(stderr, "Querying thresholds failed. ");
10931084
nvme_show_status(err);
@@ -1581,22 +1572,10 @@ static int enable_lat_stats_tracking(int argc, char **argv,
15811572
if (err)
15821573
return err;
15831574

1584-
struct nvme_get_features_args args_get = {
1585-
.args_size = sizeof(args_get),
1586-
.fid = fid,
1587-
.nsid = nsid,
1588-
.sel = sel,
1589-
.cdw11 = cdw11,
1590-
.uuidx = 0,
1591-
.data_len = data_len,
1592-
.data = buf,
1593-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
1594-
.result = &result,
1595-
};
1596-
15971575
switch (option) {
15981576
case None:
1599-
err = nvme_get_features(l, &args_get);
1577+
err = nvme_get_features(l, nsid, fid, sel, cdw11, 0, buf,
1578+
data_len, &result);
16001579
if (!err) {
16011580
printf(
16021581
"Latency Statistics Tracking (FID 0x%X) is currently (%i).\n",

plugins/lm/lm-nvme.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -602,15 +602,8 @@ static int lm_get_cdq(int argc, char **argv, struct command *command, struct plu
602602

603603
struct nvme_lm_ctrl_data_queue_fid_data data;
604604

605-
struct nvme_get_features_args args = {
606-
.args_size = sizeof(args),
607-
.fid = lm_cdq_feature_id,
608-
.cdw11 = cfg.cdqid,
609-
.data = &data,
610-
.data_len = sizeof(data)
611-
};
612-
613-
err = nvme_get_features(l, &args);
605+
err = nvme_get_features(l, 0, lm_cdq_feature_id, 0, cfg.cdqid, 0,
606+
&data, sizeof(data), NULL);
614607
if (err < 0)
615608
nvme_show_error("ERROR: nvme_get_features() failed %s", nvme_strerror(errno));
616609
else if (err)

plugins/memblaze/memblaze-nvme.c

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -490,19 +490,7 @@ static int mb_get_powermanager_status(int argc, char **argv, struct command *cmd
490490
if (err)
491491
return err;
492492

493-
struct nvme_get_features_args args = {
494-
.args_size = sizeof(args),
495-
.fid = feature_id,
496-
.nsid = 0,
497-
.sel = 0,
498-
.cdw11 = 0,
499-
.uuidx = 0,
500-
.data_len = 0,
501-
.data = NULL,
502-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
503-
.result = &result,
504-
};
505-
err = nvme_get_features(l, &args);
493+
err = nvme_get_features(l, 0, feature_id, 0, 0, 0, NULL, 0, &result);
506494
if (err < 0)
507495
perror("get-feature");
508496
if (!err)
@@ -1101,24 +1089,12 @@ static int mb_set_lat_stats(int argc, char **argv, struct command *command, stru
11011089
else if (cfg.enable || cfg.disable)
11021090
option = cfg.enable;
11031091

1104-
struct nvme_get_features_args args_get = {
1105-
.args_size = sizeof(args_get),
1106-
.fid = fid,
1107-
.nsid = nsid,
1108-
.sel = sel,
1109-
.cdw11 = cdw11,
1110-
.uuidx = 0,
1111-
.data_len = data_len,
1112-
.data = buf,
1113-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
1114-
.result = &result,
1115-
};
1116-
11171092
if (err)
11181093
return err;
11191094
switch (option) {
11201095
case None:
1121-
err = nvme_get_features(l, &args_get);
1096+
err = nvme_get_features(l, nsid, fid, sel, cdw11, 0, buf, data_len,
1097+
&result);
11221098
if (!err) {
11231099
printf("Latency Statistics Tracking (FID 0x%X) is currently (%i).\n", fid,
11241100
result);
@@ -1764,7 +1740,7 @@ static int mb_get_latency_feature(int argc, char **argv, struct command *cmd, st
17641740

17651741
uint32_t result = 0;
17661742

1767-
err = nvme_get_features_simple(l, FID_LATENCY_FEATURE, 0, &result);
1743+
err = nvme_get_features_simple(l, 0, FID_LATENCY_FEATURE, &result);
17681744
if (!err) {
17691745
printf("%s have done successfully. result = %#" PRIx32 ".\n", cmd->name, result);
17701746

plugins/micron/micron-nvme.c

Lines changed: 6 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -731,20 +731,7 @@ static int micron_smbus_option(int argc, char **argv,
731731
else
732732
printf("Failed to enabled SMBus on drive\n");
733733
} else if (!strcmp(opt.option, "status")) {
734-
struct nvme_get_features_args args = {
735-
.args_size = sizeof(args),
736-
.fid = fid,
737-
.nsid = 1,
738-
.sel = opt.value,
739-
.cdw11 = 0,
740-
.uuidx = 0,
741-
.data_len = 0,
742-
.data = NULL,
743-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
744-
.result = &result,
745-
};
746-
747-
err = nvme_get_features(l, &args);
734+
err = nvme_get_features(l, 1, fid, opt.value, 0, 0, NULL, 0, &result);
748735
if (!err)
749736
printf("SMBus status on the drive: %s (returns %s temperature)\n",
750737
(result & 1) ? "enabled" : "disabled",
@@ -2429,20 +2416,8 @@ static int GetFeatureSettings(nvme_link_t l, const char *dir)
24292416
len = 0;
24302417
bufp = NULL;
24312418
}
2432-
2433-
struct nvme_get_features_args args = {
2434-
.args_size = sizeof(args),
2435-
.fid = fmap[i].id,
2436-
.nsid = 1,
2437-
.sel = 0,
2438-
.cdw11 = 0x0,
2439-
.uuidx = 0,
2440-
.data_len = len,
2441-
.data = bufp,
2442-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
2443-
.result = &attrVal,
2444-
};
2445-
err = nvme_get_features(l, &args);
2419+
err = nvme_get_features(l, 1, fmap[i].id, 0, 0x0, 0, bufp, len,
2420+
&attrVal);
24462421
if (!err) {
24472422
sprintf(msg, "feature: 0x%X", fmap[i].id);
24482423
WriteData((__u8 *)&attrVal, sizeof(attrVal), dir, fmap[i].file, msg);
@@ -2937,20 +2912,7 @@ static int micron_latency_stats_track(int argc, char **argv, struct command *cmd
29372912
return -1;
29382913
}
29392914

2940-
struct nvme_get_features_args g_args = {
2941-
.args_size = sizeof(g_args),
2942-
.fid = fid,
2943-
.nsid = 0,
2944-
.sel = 0,
2945-
.cdw11 = 0,
2946-
.uuidx = 0,
2947-
.data_len = 0,
2948-
.data = NULL,
2949-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
2950-
.result = &result,
2951-
};
2952-
2953-
err = nvme_get_features(l, &g_args);
2915+
err = nvme_get_features(l, 0, fid, 0, 0, 0, NULL, 0, &result);
29542916
if (err) {
29552917
printf("Failed to retrieve latency monitoring feature status\n");
29562918
return err;
@@ -3347,20 +3309,8 @@ static int micron_telemetry_cntrl_option(int argc, char **argv,
33473309
else
33483310
printf("Failed to disable controller telemetry option\n");
33493311
} else if (!strcmp(opt.option, "status")) {
3350-
struct nvme_get_features_args args = {
3351-
.args_size = sizeof(args),
3352-
.fid = fid,
3353-
.nsid = 1,
3354-
.sel = opt.select & 0x3,
3355-
.cdw11 = 0,
3356-
.uuidx = 0,
3357-
.data_len = 0,
3358-
.data = NULL,
3359-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
3360-
.result = &result,
3361-
};
3362-
3363-
err = nvme_get_features(l, &args);
3312+
err = nvme_get_features(l, 1, fid, opt.select & 0x3, 0, 0, NULL, 0,
3313+
&result);
33643314
if (!err)
33653315
printf("Controller telemetry option : %s\n",
33663316
(result) ? "enabled" : "disabled");

plugins/ocp/ocp-clear-features.c

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -104,20 +104,8 @@ int get_ocp_error_counters(int argc, char **argv, struct command *cmd,
104104
}
105105
}
106106

107-
struct nvme_get_features_args args = {
108-
.args_size = sizeof(args),
109-
.fid = OCP_FID_CPCIE,
110-
.nsid = cfg.nsid,
111-
.sel = cfg.sel,
112-
.cdw11 = 0,
113-
.uuidx = uuid_index,
114-
.data_len = 0,
115-
.data = NULL,
116-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
117-
.result = &result,
118-
};
119-
120-
err = nvme_get_features(l, &args);
107+
err = nvme_get_features(l, cfg.nsid, OCP_FID_CPCIE, cfg.sel, 0,
108+
uuid_index, NULL, 0, &result);
121109
if (!err) {
122110
printf("get-feature:0xC3 %s value: %#08x\n",
123111
nvme_select_to_string(cfg.sel), result);

0 commit comments

Comments
 (0)