[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200908165433.08afb9ba@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Tue, 8 Sep 2020 16:54:33 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Shannon Nelson <snelson@...sando.io>
Cc: netdev@...r.kernel.org, davem@...emloft.net
Subject: Re: [PATCH v3 net-next 2/2] ionic: add devlink firmware update
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.
Powered by blists - more mailing lists