On Tue, 8 Sep 2020 15:48:12 -0700 Shannon Nelson wrote: > + dl = priv_to_devlink(ionic); > + devlink_flash_update_status_notify(dl, label, NULL, 1, timeout); > + start_time = jiffies; > + end_time = start_time + (timeout * HZ); > + do { > + mutex_lock(&ionic->dev_cmd_lock); > + ionic_dev_cmd_go(&ionic->idev, &cmd); > + err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); > + mutex_unlock(&ionic->dev_cmd_lock); > + > + devlink_flash_update_status_notify(dl, label, NULL, > + (jiffies - start_time) / HZ, > + timeout);
That's not what I meant. I think we can plumb proper timeout parameter through devlink all the way to user space. > + } while (time_before(jiffies, end_time) && (err == -EAGAIN || err == > -ETIMEDOUT)); > + > + if (err == -EAGAIN || err == -ETIMEDOUT) { > + NL_SET_ERR_MSG_MOD(extack, "Firmware wait timed out"); > + dev_err(ionic->dev, "DEV_CMD firmware wait %s timed out\n", > label); > + } else if (err) { > + NL_SET_ERR_MSG_MOD(extack, "Firmware wait failed"); > + } else { > + devlink_flash_update_status_notify(dl, label, NULL, timeout, > timeout); > + } > + if (offset > next_interval) { > + devlink_flash_update_status_notify(dl, "Downloading", > + NULL, offset, > fw->size); > + next_interval = offset + (fw->size / > IONIC_FW_INTERVAL_FRACTION); > + } > + } > + devlink_flash_update_status_notify(dl, "Downloading", NULL, 1, 1); This one wasn't updated.