Report only the valid slots in the firmware log page.

Printing the entire log page is causing confusion over available
slots. Report only those slots that are valid. In the case where the
firmware download isn't supported, assume that only the first slot is
valid (I have no hardware to test this assumption though)

Sponsored by: Netflix
This commit is contained in:
Warner Losh 2017-10-25 15:26:03 +00:00
parent 8ce85adf7d
commit 24e99dabf7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=324978

View File

@ -234,14 +234,19 @@ print_log_health(const struct nvme_controller_data *cdata __unused, void *buf, u
static void
print_log_firmware(const struct nvme_controller_data *cdata __unused, void *buf, uint32_t size __unused)
{
int i;
int i, slots;
const char *status;
struct nvme_firmware_page *fw = buf;
printf("Firmware Slot Log\n");
printf("=================\n");
for (i = 0; i < MAX_FW_SLOTS; i++) {
if (cdata->oacs.firmware == 0)
slots = 1;
else
slots = MIN(cdata->frmw.num_slots, MAX_FW_SLOTS);
for (i = 0; i < slots; i++) {
printf("Slot %d: ", i + 1);
if (fw->afi.slot == i + 1)
status = " Active";