From: Jakub Kicinski <kuba@kernel.org>
To: Ivan Vecera <ivecera@redhat.com>
Cc: netdev@vger.kernel.org, Jiri Pirko <jiri@resnulli.us>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Prathosh Satish <Prathosh.Satish@microchip.com>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
Michal Schmidt <mschmidt@redhat.com>,
Petr Oros <poros@redhat.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>
Subject: Re: [PATCH net-next v3 5/5] dpll: zl3073x: Implement devlink flash callback
Date: Mon, 18 Aug 2025 19:29:43 -0700 [thread overview]
Message-ID: <20250818192943.342ad511@kernel.org> (raw)
In-Reply-To: <20250813174408.1146717-6-ivecera@redhat.com>
On Wed, 13 Aug 2025 19:44:08 +0200 Ivan Vecera wrote:
> + struct zl3073x_dev *zldev = devlink_priv(devlink);
> + struct zl3073x_fw_component *util;
> + struct zl3073x_fw *zlfw;
> + int rc = 0;
> +
> + /* Load firmware */
Please drop the comments which more or less repeat the name
of the function called.
> + zlfw = zl3073x_fw_load(zldev, params->fw->data, params->fw->size,
> + extack);
> + if (IS_ERR(zlfw))
> + return PTR_ERR(zlfw);
> +
> + util = zlfw->component[ZL_FW_COMPONENT_UTIL];
> + if (!util) {
> + zl3073x_devlink_flash_notify(zldev,
> + "Utility is missing in firmware",
> + NULL, 0, 0);
> + rc = -EOPNOTSUPP;
I'd think -EINVAL would be more appropriate.
If you want to be fancy maybe ENOEXEC ?
> + goto error;
> + }
> +
> + /* Stop normal operation during flash */
> + zl3073x_dev_stop(zldev);
> +
> + /* Enter flashing mode */
> + rc = zl3073x_flash_mode_enter(zldev, util->data, util->size, extack);
> + if (!rc) {
> + /* Flash the firmware */
> + rc = zl3073x_fw_flash(zldev, zlfw, extack);
this error code seems to be completely ignored, no?
> + /* Leave flashing mode */
> + zl3073x_flash_mode_leave(zldev, extack);
> + }
> +
> + /* Restart normal operation */
> + rc = zl3073x_dev_start(zldev, true);
> + if (rc)
> + dev_warn(zldev->dev, "Failed to re-start normal operation\n");
And also we can't really cleanly handle the failure case.
This is why I was speculating about implementing the down/up portion
in the devlink core. Add a flag that the driver requires reload_down
to be called before the flashing operation, and reload_up after.
This way not only core handles some of the error handling, but also
it can mark the device as reload_failed if things go sideways, which
is a nicer way to surface this sort of permanent error state.
Not feeling strongly about it, but I think it'd be cleaner, so bringing
it up in case my previous comment from a while back wasn't clear.
> +error:
> + /* Free flash context */
> + zl3073x_fw_free(zlfw);
> +
> + zl3073x_devlink_flash_notify(zldev,
> + rc ? "Flashing failed" : "Flashing done",
> + NULL, 0, 0);
next prev parent reply other threads:[~2025-08-19 2:29 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-13 17:44 [PATCH net-next v3 0/5] dpll: zl3073x: Add support for devlink flash Ivan Vecera
2025-08-13 17:44 ` [PATCH net-next v3 1/5] dpll: zl3073x: Add functions to access hardware registers Ivan Vecera
2025-08-13 17:44 ` [PATCH net-next v3 2/5] dpll: zl3073x: Add low-level flash functions Ivan Vecera
2025-08-13 17:44 ` [PATCH net-next v3 3/5] dpll: zl3073x: Add firmware loading functionality Ivan Vecera
2025-08-19 2:22 ` Jakub Kicinski
2025-08-29 10:39 ` Ivan Vecera
2025-08-29 23:52 ` Jakub Kicinski
2025-08-13 17:44 ` [PATCH net-next v3 4/5] dpll: zl3073x: Refactor DPLL initialization Ivan Vecera
2025-08-13 17:44 ` [PATCH net-next v3 5/5] dpll: zl3073x: Implement devlink flash callback Ivan Vecera
2025-08-19 2:29 ` Jakub Kicinski [this message]
2025-08-29 14:49 ` Ivan Vecera
2025-08-29 23:56 ` Jakub Kicinski
2025-09-01 16:34 ` Ivan Vecera
2025-09-01 17:05 ` Jakub Kicinski
2025-08-14 9:30 ` [PATCH net-next v3 0/5] dpll: zl3073x: Add support for devlink flash Przemek Kitszel
-- strict thread matches above, loose matches on Subject: below --
2025-08-20 2:24 [PATCH net-next v3 3/5] dpll: zl3073x: Add firmware loading functionality kernel test robot
2025-08-20 6:40 ` Dan Carpenter
2025-08-29 10:31 ` Ivan Vecera
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250818192943.342ad511@kernel.org \
--to=kuba@kernel.org \
--cc=Prathosh.Satish@microchip.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=ivecera@redhat.com \
--cc=jiri@resnulli.us \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=poros@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.