Skip to content

Commit ad71305

Browse files
committed
feat: use nvme_show_err() helper function
It introduced to handle the negative error and the postive status codes. Then reduce the duplicated error and status codes output implementation. Signed-off-by: Tokunori Ikegami <[email protected]>
1 parent 9e36c66 commit ad71305

1 file changed

Lines changed: 104 additions & 104 deletions

File tree

plugins/feat/feat-nvme.c

Lines changed: 104 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,22 @@ static const char *power_limit_feat = "power limit feature";
5252
static const char *power_thresh_feat = "power threshold feature";
5353
static const char *power_meas_feat = "power measurement feature";
5454

55+
static void show_error(int err, const char *fmt, ...)
56+
{
57+
va_list ap;
58+
59+
_cleanup_free_ char *msg = NULL;
60+
61+
va_start(ap, fmt);
62+
63+
if (vasprintf(&msg, fmt, ap) < 0)
64+
msg = NULL;
65+
66+
nvme_show_err(msg ? msg : alloc_error, err);
67+
68+
va_end(ap);
69+
}
70+
5571
static int feat_get(struct nvme_transport_handle *hdl, const __u8 fid,
5672
__u32 cdw11, __u8 sel, __u8 uidx, const char *feat)
5773
{
@@ -72,20 +88,18 @@ static int feat_get(struct nvme_transport_handle *hdl, const __u8 fid,
7288

7389
err = nvme_get_features(hdl, 0, fid, sel, cdw11, uidx, buf, len,
7490
&result);
91+
if (err) {
92+
show_error(err, "Get %s", feat);
93+
return err;
94+
}
7595

7696
nvme_show_init();
7797

78-
if (!err) {
79-
nvme_feature_show(fid, sel, result);
80-
if (NVME_CHECK(sel, GET_FEATURES_SEL, SUPPORTED))
81-
nvme_show_select_result(fid, result);
82-
else
83-
nvme_feature_show_fields(fid, result, buf);
84-
} else if (err > 0) {
85-
nvme_show_status(err);
86-
} else {
87-
nvme_show_error("Get %s: %s", feat, nvme_strerror(errno));
88-
}
98+
nvme_feature_show(fid, sel, result);
99+
if (NVME_CHECK(sel, GET_FEATURES_SEL, SUPPORTED))
100+
nvme_show_select_result(fid, result);
101+
else
102+
nvme_feature_show_fields(fid, result, buf);
89103

90104
nvme_show_finish();
91105

@@ -102,17 +116,16 @@ static int power_mgmt_set(struct nvme_transport_handle *hdl, const __u8 fid,
102116
err = nvme_set_features(hdl, 0, fid, sv, cdw11, 0, 0, 0, 0, NULL, 0,
103117
&result);
104118

119+
if (err) {
120+
show_error(err, "Set %s", power_mgmt_feat);
121+
return err;
122+
}
123+
105124
nvme_show_init();
106125

107-
if (err > 0) {
108-
nvme_show_status(err);
109-
} else if (err < 0) {
110-
nvme_show_perror("Set %s", power_mgmt_feat);
111-
} else {
112-
nvme_show_result("Set %s: 0x%04x (%s)", power_mgmt_feat, cdw11,
113-
sv ? "Save" : "Not save");
114-
nvme_feature_show_fields(fid, cdw11, NULL);
115-
}
126+
nvme_show_result("Set %s: 0x%04x (%s)", power_mgmt_feat, cdw11,
127+
sv ? "Save" : "Not save");
128+
nvme_feature_show_fields(fid, cdw11, NULL);
116129

117130
nvme_show_finish();
118131

@@ -194,18 +207,16 @@ static int perfc_set(struct nvme_transport_handle *hdl, __u8 fid, __u32 cdw11,
194207

195208
err = nvme_set_features(hdl, 0, fid, sv, cdw11, 0, 0, 0, 0, &data,
196209
sizeof(data), &result);
210+
if (err) {
211+
show_error(err, "Set %s", perfc_feat);
212+
return err;
213+
}
197214

198215
nvme_show_init();
199216

200-
if (err > 0) {
201-
nvme_show_status(err);
202-
} else if (err < 0) {
203-
nvme_show_perror("Set %s", perfc_feat);
204-
} else {
205-
nvme_show_result("Set %s: 0x%04x (%s)", perfc_feat, cdw11,
206-
sv ? "Save" : "Not save");
207-
nvme_feature_show_fields(fid, cdw11, NULL);
208-
}
217+
nvme_show_result("Set %s: 0x%04x (%s)", perfc_feat, cdw11,
218+
sv ? "Save" : "Not save");
219+
nvme_feature_show_fields(fid, cdw11, NULL);
209220

210221
nvme_show_finish();
211222

@@ -266,18 +277,16 @@ static int hctm_set(struct nvme_transport_handle *hdl, const __u8 fid,
266277

267278
err = nvme_set_features(hdl, 0, fid, sv, cdw11, 0, 0, 0, 0, NULL, 0,
268279
&result);
280+
if (err) {
281+
show_error(err, "Set %s", hctm_feat);
282+
return err;
283+
}
269284

270285
nvme_show_init();
271286

272-
if (err > 0) {
273-
nvme_show_status(err);
274-
} else if (err < 0) {
275-
nvme_show_perror("Set %s", hctm_feat);
276-
} else {
277-
nvme_show_result("Set %s: 0x%04x (%s)", hctm_feat, cdw11,
278-
sv ? "Save" : "Not save");
279-
nvme_feature_show_fields(fid, cdw11, NULL);
280-
}
287+
nvme_show_result("Set %s: 0x%04x (%s)", hctm_feat, cdw11,
288+
sv ? "Save" : "Not save");
289+
nvme_feature_show_fields(fid, cdw11, NULL);
281290

282291
nvme_show_finish();
283292

@@ -330,17 +339,16 @@ static int timestamp_set(struct nvme_transport_handle *hdl, const __u8 fid,
330339

331340
err = nvme_set_features(hdl, 0, fid, sv, 0, 0, 0, 0, 0, &ts, sizeof(ts),
332341
&result);
342+
if (err) {
343+
show_error(err, "Set %s", timestamp_feat);
344+
return err;
345+
}
333346

334347
nvme_show_init();
335348

336-
if (err > 0) {
337-
nvme_show_status(err);
338-
} else if (err < 0) {
339-
nvme_show_perror("Set %s", timestamp_feat);
340-
} else {
341-
nvme_show_result("Set %s: (%s)", timestamp_feat, sv ? "Save" : "Not save");
342-
nvme_feature_show_fields(fid, 0, (unsigned char *)&ts);
343-
}
349+
nvme_show_result("Set %s: (%s)", timestamp_feat,
350+
sv ? "Save" : "Not save");
351+
nvme_feature_show_fields(fid, 0, (unsigned char *)&ts);
344352

345353
nvme_show_finish();
346354

@@ -409,20 +417,19 @@ static int temp_thresh_set(struct nvme_transport_handle *hdl, const __u8 fid,
409417
nvme_init_set_features_temp_thresh(&cmd, sv, cfg->tmpth, cfg->tmpsel,
410418
cfg->thsel, cfg->tmpthh);
411419
err = nvme_submit_admin_passthru(hdl, &cmd);
420+
if (err) {
421+
show_error(err, "Set %s", temp_thresh_feat);
422+
return err;
423+
}
412424

413425
nvme_show_init();
414426

415-
if (err > 0) {
416-
nvme_show_status(err);
417-
} else if (err < 0) {
418-
nvme_show_perror("Set %s", temp_thresh_feat);
419-
} else {
420-
nvme_show_result("Set %s: (%s)", temp_thresh_feat, sv ? "Save" : "Not save");
421-
nvme_feature_show_fields(fid, NVME_SET(cfg->tmpth, FEAT_TT_TMPTH) |
422-
NVME_SET(cfg->tmpsel, FEAT_TT_TMPSEL) |
423-
NVME_SET(cfg->thsel, FEAT_TT_THSEL) |
424-
NVME_SET(cfg->tmpthh, FEAT_TT_TMPTHH), NULL);
425-
}
427+
nvme_show_result("Set %s: (%s)", temp_thresh_feat,
428+
sv ? "Save" : "Not save");
429+
nvme_feature_show_fields(fid, NVME_SET(cfg->tmpth, FEAT_TT_TMPTH) |
430+
NVME_SET(cfg->tmpsel, FEAT_TT_TMPSEL) |
431+
NVME_SET(cfg->thsel, FEAT_TT_THSEL) |
432+
NVME_SET(cfg->tmpthh, FEAT_TT_TMPTHH), NULL);
426433

427434
nvme_show_finish();
428435

@@ -496,20 +503,21 @@ static int arbitration_set(struct nvme_transport_handle *hdl, const __u8 fid,
496503
nvme_init_set_features_arbitration(&cmd, sv, cfg->ab, cfg->lpw,
497504
cfg->mpw, cfg->hpw);
498505
err = nvme_submit_admin_passthru(hdl, &cmd);
506+
if (err) {
507+
show_error(err, "Set %s", arbitration_feat);
508+
return err;
509+
}
499510

500511
nvme_show_init();
501512

502-
if (err > 0) {
503-
nvme_show_status(err);
504-
} else if (err < 0) {
505-
nvme_show_perror("Set %s", arbitration_feat);
506-
} else {
507-
nvme_show_result("Set %s: (%s)", arbitration_feat, sv ? "Save" : "Not save");
508-
nvme_feature_show_fields(fid, NVME_SET(cfg->ab, FEAT_ARBITRATION_BURST) |
509-
NVME_SET(cfg->lpw, FEAT_ARBITRATION_LPW) |
510-
NVME_SET(cfg->mpw, FEAT_ARBITRATION_MPW) |
511-
NVME_SET(cfg->hpw, FEAT_ARBITRATION_HPW), NULL);
512-
}
513+
nvme_show_result("Set %s: (%s)", arbitration_feat,
514+
sv ? "Save" : "Not save");
515+
nvme_feature_show_fields(fid,
516+
NVME_SET(cfg->ab, FEAT_ARBITRATION_BURST) |
517+
NVME_SET(cfg->lpw, FEAT_ARBITRATION_LPW) |
518+
NVME_SET(cfg->mpw, FEAT_ARBITRATION_MPW) |
519+
NVME_SET(cfg->hpw, FEAT_ARBITRATION_HPW),
520+
NULL);
513521

514522
nvme_show_finish();
515523

@@ -555,18 +563,16 @@ static int volatile_wc_set(struct nvme_transport_handle *hdl, const __u8 fid,
555563

556564
err = nvme_set_features(hdl, 0, fid, sv, cdw11, 0, 0, 0, 0, NULL, 0,
557565
&result);
566+
if (err) {
567+
show_error(err, "Set %s", volatile_wc_feat);
568+
return err;
569+
}
558570

559571
nvme_show_init();
560572

561-
if (err > 0) {
562-
nvme_show_status(err);
563-
} else if (err < 0) {
564-
nvme_show_perror("Set %s", volatile_wc_feat);
565-
} else {
566-
nvme_show_result("Set %s: 0x%04x (%s)", volatile_wc_feat, cdw11,
567-
sv ? "Save" : "Not save");
568-
nvme_feature_show_fields(fid, cdw11, NULL);
569-
}
573+
nvme_show_result("Set %s: 0x%04x (%s)", volatile_wc_feat, cdw11,
574+
sv ? "Save" : "Not save");
575+
nvme_feature_show_fields(fid, cdw11, NULL);
570576

571577
nvme_show_finish();
572578

@@ -614,18 +620,16 @@ static int power_limit_set(struct nvme_transport_handle *hdl, const __u8 fid,
614620

615621
err = nvme_set_features(hdl, 0, fid, sv, 0, 0, cdw13, uidx, 0, NULL, 0,
616622
&result);
623+
if (err) {
624+
show_error(err, "Set %s", power_limit_feat);
625+
return err;
626+
}
617627

618628
nvme_show_init();
619629

620-
if (err > 0) {
621-
nvme_show_status(err);
622-
} else if (err < 0) {
623-
nvme_show_perror("Set %s", power_limit_feat);
624-
} else {
625-
nvme_show_result("Set %s: 0x%04x (%s)", power_limit_feat, cdw13,
626-
sv ? "Save" : "Not save");
627-
nvme_feature_show_fields(fid, cdw13, NULL);
628-
}
630+
nvme_show_result("Set %s: 0x%04x (%s)", power_limit_feat, cdw13,
631+
sv ? "Save" : "Not save");
632+
nvme_feature_show_fields(fid, cdw13, NULL);
629633

630634
nvme_show_finish();
631635

@@ -686,18 +690,16 @@ static int power_thresh_set(struct nvme_transport_handle *hdl, const __u8 fid,
686690

687691
err = nvme_set_features(hdl, 0, fid, sv, cdw11, 0, 0, uidx, 0, NULL, 0,
688692
&result);
693+
if (err) {
694+
show_error(err, "Set %s", power_thresh_feat);
695+
return err;
696+
}
689697

690698
nvme_show_init();
691699

692-
if (err > 0) {
693-
nvme_show_status(err);
694-
} else if (err < 0) {
695-
nvme_show_perror("Set %s", power_thresh_feat);
696-
} else {
697-
nvme_show_result("Set %s: 0x%04x (%s)", power_thresh_feat,
698-
cdw11, sv ? "Save" : "Not save");
699-
nvme_feature_show_fields(fid, cdw11, NULL);
700-
}
700+
nvme_show_result("Set %s: 0x%04x (%s)", power_thresh_feat,
701+
cdw11, sv ? "Save" : "Not save");
702+
nvme_feature_show_fields(fid, cdw11, NULL);
701703

702704
nvme_show_finish();
703705

@@ -766,18 +768,16 @@ static int power_meas_set(struct nvme_transport_handle *hdl, const __u8 fid,
766768

767769
err = nvme_set_features(hdl, 0, fid, sv, cdw11, 0, 0, uidx, 0, NULL, 0,
768770
&result);
771+
if (err) {
772+
show_error(err, "Set %s", power_meas_feat);
773+
return err;
774+
}
769775

770776
nvme_show_init();
771777

772-
if (err > 0) {
773-
nvme_show_status(err);
774-
} else if (err < 0) {
775-
nvme_show_perror("Set %s", power_meas_feat);
776-
} else {
777-
nvme_show_result("Set %s: 0x%04x (%s)", power_meas_feat, cdw11,
778-
sv ? "Save" : "Not save");
779-
nvme_feature_show_fields(fid, cdw11, NULL);
780-
}
778+
nvme_show_result("Set %s: 0x%04x (%s)", power_meas_feat, cdw11,
779+
sv ? "Save" : "Not save");
780+
nvme_feature_show_fields(fid, cdw11, NULL);
781781

782782
nvme_show_finish();
783783

0 commit comments

Comments
 (0)