Re: [PATCH v5 1/4] firmware_loader: expand firmware error codes with up-to-date error
From: Russ Weight
Date: Fri Feb 27 2026 - 17:08:53 EST
On Mon, Feb 23, 2026 at 11:39:02AM +0100, Marco Felsch wrote:
> Hi Russ,
>
> On 26-02-19, Russ Weight wrote:
> > On Sun, Jan 11, 2026 at 04:05:44PM +0100, Marco Felsch wrote:
> > > Add FW_UPLOAD_ERR_DUPLICATE to allow drivers to inform the firmware_loader
> > > framework that the update is not required. This can be the case if the
> > > user provided firmware matches the current running firmware.
> > >
> > > Sync lib/test_firmware.c accordingly.
> > >
> > > Reviewed-by: Russ Weight <russ.weight@xxxxxxxxx>
> > > Reviewed-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
> > > Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> > > ---
> > > drivers/base/firmware_loader/sysfs_upload.c | 1 +
> > > include/linux/firmware.h | 2 ++
> > > lib/test_firmware.c | 1 +
> > > 3 files changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/base/firmware_loader/sysfs_upload.c b/drivers/base/firmware_loader/sysfs_upload.c
> > > index c3797b93c5f5a2ecf2ae34707893c89eb7773154..9e93070b2c24179986b868a24b09cf051776c644 100644
> > > --- a/drivers/base/firmware_loader/sysfs_upload.c
> > > +++ b/drivers/base/firmware_loader/sysfs_upload.c
> > > @@ -28,6 +28,7 @@ static const char * const fw_upload_err_str[] = {
> > > [FW_UPLOAD_ERR_RW_ERROR] = "read-write-error",
> > > [FW_UPLOAD_ERR_WEAROUT] = "flash-wearout",
> > > [FW_UPLOAD_ERR_FW_INVALID] = "firmware-invalid",
> > > + [FW_UPLOAD_ERR_DUPLICATE] = "firmware-duplicate",
> > > };
> >
> > Hi Marco,
> >
> > There is a corresponding change that should be made to
> > lib/test_firmware.c. You can look at the recent change for
> > FW_UPLOAD_ERR_FW_INVALID as an example.
>
> Can you elaborate a bit more please? I've added the
> FW_UPLOAD_ERR_DUPLICATE to lib/test_firmware.c with this patchset and I
> don't know what you want me todo.
Hi Marco,
Please disregard. I didn't remember that test_firmware.c was updated
in the same patch as sysfs_upload.c. It looks good as is.
- Russ
>
> Regards,
> Marco
>
>
> >
> > - Russ
> >
> > >
> > > static const char *fw_upload_progress(struct device *dev,
> > > diff --git a/include/linux/firmware.h b/include/linux/firmware.h
> > > index aae1b85ffc10e20e9c3c9b6009d26b83efd8cb24..fe7797be4c08cd62cdad9617b8f70095d5e0af2f 100644
> > > --- a/include/linux/firmware.h
> > > +++ b/include/linux/firmware.h
> > > @@ -29,6 +29,7 @@ struct firmware {
> > > * @FW_UPLOAD_ERR_RW_ERROR: read or write to HW failed, see kernel log
> > > * @FW_UPLOAD_ERR_WEAROUT: FLASH device is approaching wear-out, wait & retry
> > > * @FW_UPLOAD_ERR_FW_INVALID: invalid firmware file
> > > + * @FW_UPLOAD_ERR_DUPLICATE: firmware is already up to date (duplicate)
> > > * @FW_UPLOAD_ERR_MAX: Maximum error code marker
> > > */
> > > enum fw_upload_err {
> > > @@ -41,6 +42,7 @@ enum fw_upload_err {
> > > FW_UPLOAD_ERR_RW_ERROR,
> > > FW_UPLOAD_ERR_WEAROUT,
> > > FW_UPLOAD_ERR_FW_INVALID,
> > > + FW_UPLOAD_ERR_DUPLICATE,
> > > FW_UPLOAD_ERR_MAX
> > > };
> > >
> > > diff --git a/lib/test_firmware.c b/lib/test_firmware.c
> > > index be4f93124901e5faac41f48a66dabe6da56be0ca..952ec1cb03102911dbea9abd648ab9d9e0112a46 100644
> > > --- a/lib/test_firmware.c
> > > +++ b/lib/test_firmware.c
> > > @@ -1134,6 +1134,7 @@ static const char * const fw_upload_err_str[] = {
> > > [FW_UPLOAD_ERR_RW_ERROR] = "read-write-error",
> > > [FW_UPLOAD_ERR_WEAROUT] = "flash-wearout",
> > > [FW_UPLOAD_ERR_FW_INVALID] = "firmware-invalid",
> > > + [FW_UPLOAD_ERR_DUPLICATE] = "firmware-duplicate",
> > > };
> > >
> > > static void upload_err_inject_error(struct test_firmware_upload *tst,
> > >
> > > --
> > > 2.47.3
> > >
> >
>
> --
> #gernperDu
> #CallMeByMyFirstName
>
> Pengutronix e.K. | |
> Steuerwalder Str. 21 | https://www.pengutronix.de/ |
> 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |