On 9/8/20 4:54 PM, Jakub Kicinski wrote:
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.
Sure, but until that gets worked out, this should suffice.
+ } 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.
Yep, missed it. I'll follow up. sln
