No error code are available to signal an invalid firmware content.
Drivers that can check the firmware content validity can not return this
specific failure to the user-space
Expand the firmware error code with an additional code:
- "firmware invalid" code which can be used when the provided firmware
is invalid
Sync lib/test_firmware.c file accordingly.
Acked-by: Luis Chamberlain <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Kory Maincent <[email protected]>
---
Changes in v3:
- Add the newly introduced error code to test_firmware.c
This patch was initially submitted as part of a net patch series.
Conor expressed interest in using it in a different subsystem.
https://lore.kernel.org/netdev/[email protected]/
Consequently, I extracted it from the series and submitted it separately.
I first tried to send it to driver-core but it seems also not the best
choice:
https://lore.kernel.org/lkml/2023111720-slicer-exes-7d9f@gregkh/
Jakub could you create a stable branch for this patch and share the branch
information? This way other Maintainers can then pull the patch.
---
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 a0af8f5f13d8..829270067d16 100644
--- a/drivers/base/firmware_loader/sysfs_upload.c
+++ b/drivers/base/firmware_loader/sysfs_upload.c
@@ -27,6 +27,7 @@ static const char * const fw_upload_err_str[] = {
[FW_UPLOAD_ERR_INVALID_SIZE] = "invalid-file-size",
[FW_UPLOAD_ERR_RW_ERROR] = "read-write-error",
[FW_UPLOAD_ERR_WEAROUT] = "flash-wearout",
+ [FW_UPLOAD_ERR_FW_INVALID] = "firmware-invalid",
};
static const char *fw_upload_progress(struct device *dev,
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index de7fea3bca51..0311858b46ce 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -27,6 +27,7 @@ struct firmware {
* @FW_UPLOAD_ERR_INVALID_SIZE: invalid firmware image size
* @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_MAX: Maximum error code marker
*/
enum fw_upload_err {
@@ -38,6 +39,7 @@ enum fw_upload_err {
FW_UPLOAD_ERR_INVALID_SIZE,
FW_UPLOAD_ERR_RW_ERROR,
FW_UPLOAD_ERR_WEAROUT,
+ FW_UPLOAD_ERR_FW_INVALID,
FW_UPLOAD_ERR_MAX
};
diff --git a/lib/test_firmware.c b/lib/test_firmware.c
index add4699fc6cd..9cfdcd6d21db 100644
--- a/lib/test_firmware.c
+++ b/lib/test_firmware.c
@@ -1132,6 +1132,7 @@ static const char * const fw_upload_err_str[] = {
[FW_UPLOAD_ERR_INVALID_SIZE] = "invalid-file-size",
[FW_UPLOAD_ERR_RW_ERROR] = "read-write-error",
[FW_UPLOAD_ERR_WEAROUT] = "flash-wearout",
+ [FW_UPLOAD_ERR_FW_INVALID] = "firmware-invalid",
};
static void upload_err_inject_error(struct test_firmware_upload *tst,
---
base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86
change-id: 20231117-feature_firmware_error_code-b8d7af08a8fe
Best regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
On Wed, Nov 22, 2023 at 02:52:43PM +0100, Kory Maincent wrote:
> No error code are available to signal an invalid firmware content.
> Drivers that can check the firmware content validity can not return this
> specific failure to the user-space
>
> Expand the firmware error code with an additional code:
> - "firmware invalid" code which can be used when the provided firmware
> is invalid
>
> Sync lib/test_firmware.c file accordingly.
>
> Acked-by: Luis Chamberlain <[email protected]>
> Acked-by: Greg Kroah-Hartman <[email protected]>
> Signed-off-by: Kory Maincent <[email protected]>
> ---
>
> Changes in v3:
> - Add the newly introduced error code to test_firmware.c
I verified that the error obvserved in v2 when compiling the above
file with clang-16 has been resolved.
Link: https://lore.kernel.org/all/[email protected]/
Reviewed-by: Simon Horman <[email protected]>
...
On Wed, 22 Nov 2023 14:52:43 +0100 Kory Maincent wrote:
> Jakub could you create a stable branch for this patch and share the branch
> information? This way other Maintainers can then pull the patch.
Tagged at:
git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git firmware_loader-add-upload-error
Hello:
This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <[email protected]>:
On Wed, 22 Nov 2023 14:52:43 +0100 you wrote:
> No error code are available to signal an invalid firmware content.
> Drivers that can check the firmware content validity can not return this
> specific failure to the user-space
>
> Expand the firmware error code with an additional code:
> - "firmware invalid" code which can be used when the provided firmware
> is invalid
>
> [...]
Here is the summary with links:
- [net-next,v3] firmware_loader: Expand Firmware upload error codes with firmware invalid error
https://git.kernel.org/netdev/net-next/c/a066f906ba39
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
On Fri, 24 Nov 2023 19:24:07 -0800
Jakub Kicinski <[email protected]> wrote:
> On Wed, 22 Nov 2023 14:52:43 +0100 Kory Maincent wrote:
> > Jakub could you create a stable branch for this patch and share the branch
> > information? This way other Maintainers can then pull the patch.
>
> Tagged at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git
> firmware_loader-add-upload-error
Thank Jakub!
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
On Fri, Nov 24, 2023 at 07:24:07PM -0800, Jakub Kicinski wrote:
> On Wed, 22 Nov 2023 14:52:43 +0100 Kory Maincent wrote:
> > Jakub could you create a stable branch for this patch and share the branch
> > information? This way other Maintainers can then pull the patch.
>
> Tagged at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git firmware_loader-add-upload-error
It's taken me longer than I would like to get back to this, sorry.
I tried pulling the tag today and I think there's been a mistake - the
tagged commit is the merge commit into net, not the commit adding the
firmware loader change:
commit 53775da0b4768cd7e603d7ac1ad706c383c6f61e (tag: firmware_loader-add-upload-error, korg-kuba/firmware_loader)
Merge: 3a767b482cac a066f906ba39
Author: Jakub Kicinski <[email protected]>
Date: Fri Nov 24 18:09:19 2023 -0800
Merge branch 'firmware_loader'
commit a066f906ba396ab00d4af19fc5fad42b2605582a
Author: Kory Maincent <[email protected]>
Date: Wed Nov 22 14:52:43 2023 +0100
firmware_loader: Expand Firmware upload error codes with firmware invalid error
I'm going to merge in a066f906ba39 ("firmware_loader: Expand Firmware
upload error codes with firmware invalid error") so that I don't end
up with a bunch of netdev stuff in my tree.
Have I missed something?
Thanks,
Conor.
On Wed, 6 Dec 2023 12:04:33 +0000 Conor Dooley wrote:
> It's taken me longer than I would like to get back to this, sorry.
> I tried pulling the tag today and I think there's been a mistake - the
> tagged commit is the merge commit into net, not the commit adding the
> firmware loader change:
>
> commit 53775da0b4768cd7e603d7ac1ad706c383c6f61e (tag: firmware_loader-add-upload-error, korg-kuba/firmware_loader)
> Merge: 3a767b482cac a066f906ba39
> Author: Jakub Kicinski <[email protected]>
> Date: Fri Nov 24 18:09:19 2023 -0800
>
> Merge branch 'firmware_loader'
>
> commit a066f906ba396ab00d4af19fc5fad42b2605582a
> Author: Kory Maincent <[email protected]>
> Date: Wed Nov 22 14:52:43 2023 +0100
>
> firmware_loader: Expand Firmware upload error codes with firmware invalid error
>
> I'm going to merge in a066f906ba39 ("firmware_loader: Expand Firmware
> upload error codes with firmware invalid error") so that I don't end
> up with a bunch of netdev stuff in my tree.
>
> Have I missed something?
You're right, looks like I tagged the wrong thing.
Merging a066f906ba39 will work, sorry!