* RE: [EXT] [PATCH] prestera: fix fallback to previous version on same major version
2023-08-02 9:23 [PATCH] prestera: fix fallback to previous version on same major version Jonas Gorski
@ 2023-08-02 10:56 ` Elad Nachman
2023-08-03 1:30 ` Jesse Brandeburg
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Elad Nachman @ 2023-08-02 10:56 UTC (permalink / raw)
To: Jonas Gorski, Taras Chornyi, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Andrew Lunn, Vadym Kochan [C]
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
> -----Original Message-----
> From: Jonas Gorski <jonas.gorski@bisdn.de>
> Sent: Wednesday, August 2, 2023 12:24 PM
> To: Taras Chornyi <taras.chornyi@plvision.eu>; David S. Miller
> <davem@davemloft.net>; Eric Dumazet <edumazet@google.com>; Jakub
> Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>; Andrew
> Lunn <andrew@lunn.ch>; Vadym Kochan [C] <vkochan@marvell.com>
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [EXT] [PATCH] prestera: fix fallback to previous version on same
> major version
>
> External Email
>
> ----------------------------------------------------------------------
> When both supported and previous version have the same major version,
> and the firmwares are missing, the driver ends in a loop requesting the same
> (previous) version over and over again:
>
> [ 76.327413] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.1.img firmware, fall-back to previous
> 4.0 version
> [ 76.339802] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.352162] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.364502] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.376848] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.389183] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.401522] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.413860] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> [ 76.426199] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous
> 4.0 version
> ...
>
> Fix this by inverting the check to that we aren't yet at the previous version,
> and also check the minor version.
>
> This also catches the case where both versions are the same, as it was after
> commit bb5dbf2cc64d ("net: marvell: prestera: add firmware v4.0 support").
>
> With this fix applied:
>
> [ 88.499622] Prestera DX 0000:01:00.0: missing latest
> mrvl/prestera/mvsw_prestera_fw-v4.1.img firmware, fall-back to previous
> 4.0 version
> [ 88.511995] Prestera DX 0000:01:00.0: failed to request previous
> firmware: mrvl/prestera/mvsw_prestera_fw-v4.0.img
> [ 88.522403] Prestera DX: probe of 0000:01:00.0 failed with error -2
>
> Fixes: 47f26018a414 ("net: marvell: prestera: try to load previous fw
> version")
> Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
> ---
> drivers/net/ethernet/marvell/prestera/prestera_pci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> b/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> index f328d957b2db..35857dc19542 100644
> --- a/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> +++ b/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> @@ -727,7 +727,8 @@ static int prestera_fw_get(struct prestera_fw *fw)
>
> err = request_firmware_direct(&fw->bin, fw_path, fw->dev.dev);
> if (err) {
> - if (ver_maj == PRESTERA_SUPP_FW_MAJ_VER) {
> + if (ver_maj != PRESTERA_PREV_FW_MAJ_VER ||
> + ver_min != PRESTERA_PREV_FW_MIN_VER) {
> ver_maj = PRESTERA_PREV_FW_MAJ_VER;
> ver_min = PRESTERA_PREV_FW_MIN_VER;
>
> --
> 2.41.0
>
>
> --
> BISDN GmbH
> Körnerstraße 7-10
> 10785 Berlin
> Germany
>
>
> Phone:
> +49-30-6108-1-6100
>
>
> Managing Directors:
> Dr.-Ing. Hagen Woesner, Andreas
> Köpsel
>
>
> Commercial register:
> Amtsgericht Berlin-Charlottenburg HRB 141569
> B
> VAT ID No: DE283257294
>
Acked-by: Elad Nachman <enachman@marvell.com>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] prestera: fix fallback to previous version on same major version
2023-08-02 9:23 [PATCH] prestera: fix fallback to previous version on same major version Jonas Gorski
2023-08-02 10:56 ` [EXT] " Elad Nachman
@ 2023-08-03 1:30 ` Jesse Brandeburg
2023-08-03 9:28 ` Taras Chornyi
2023-08-03 18:10 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Jesse Brandeburg @ 2023-08-03 1:30 UTC (permalink / raw)
To: Jonas Gorski, Taras Chornyi, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Andrew Lunn, Vadym Kochan
Cc: netdev, linux-kernel
On 8/2/2023 2:23 AM, Jonas Gorski wrote:
> When both supported and previous version have the same major version,
> and the firmwares are missing, the driver ends in a loop requesting the
> same (previous) version over and over again:
>
> [ 76.327413] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.1.img firmware, fall-back to previous 4.0 version
> [ 76.339802] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.352162] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.364502] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.376848] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.389183] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.401522] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.413860] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.426199] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> ...
>
> Fix this by inverting the check to that we aren't yet at the previous
> version, and also check the minor version.
>
> This also catches the case where both versions are the same, as it was
> after commit bb5dbf2cc64d ("net: marvell: prestera: add firmware v4.0
> support").
>
> With this fix applied:
>
> [ 88.499622] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.1.img firmware, fall-back to previous 4.0 version
> [ 88.511995] Prestera DX 0000:01:00.0: failed to request previous firmware: mrvl/prestera/mvsw_prestera_fw-v4.0.img
> [ 88.522403] Prestera DX: probe of 0000:01:00.0 failed with error -2
>
> Fixes: 47f26018a414 ("net: marvell: prestera: try to load previous fw version")
> Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] prestera: fix fallback to previous version on same major version
2023-08-02 9:23 [PATCH] prestera: fix fallback to previous version on same major version Jonas Gorski
2023-08-02 10:56 ` [EXT] " Elad Nachman
2023-08-03 1:30 ` Jesse Brandeburg
@ 2023-08-03 9:28 ` Taras Chornyi
2023-08-03 18:10 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Taras Chornyi @ 2023-08-03 9:28 UTC (permalink / raw)
To: Jonas Gorski, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Andrew Lunn, Vadym Kochan
Cc: netdev, linux-kernel
> Fix this by inverting the check to that we aren't yet at the previous
> version, and also check the minor version.
>
> This also catches the case where both versions are the same, as it was
> after commit bb5dbf2cc64d ("net: marvell: prestera: add firmware v4.0
> support").
>
> With this fix applied:
>
> [ 88.499622] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.1.img firmware, fall-back to previous 4.0 version
> [ 88.511995] Prestera DX 0000:01:00.0: failed to request previous firmware: mrvl/prestera/mvsw_prestera_fw-v4.0.img
> [ 88.522403] Prestera DX: probe of 0000:01:00.0 failed with error -2
>
> Fixes: 47f26018a414 ("net: marvell: prestera: try to load previous fw version")
> Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
> ---
> drivers/net/ethernet/marvell/prestera/prestera_pci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/marvell/prestera/prestera_pci.c b/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> index f328d957b2db..35857dc19542 100644
> --- a/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> +++ b/drivers/net/ethernet/marvell/prestera/prestera_pci.c
> @@ -727,7 +727,8 @@ static int prestera_fw_get(struct prestera_fw *fw)
>
> err = request_firmware_direct(&fw->bin, fw_path, fw->dev.dev);
> if (err) {
> - if (ver_maj == PRESTERA_SUPP_FW_MAJ_VER) {
> + if (ver_maj != PRESTERA_PREV_FW_MAJ_VER ||
> + ver_min != PRESTERA_PREV_FW_MIN_VER) {
> ver_maj = PRESTERA_PREV_FW_MAJ_VER;
> ver_min = PRESTERA_PREV_FW_MIN_VER;
>
Acked-by: Taras Chornyi <taras.chornyi@plvision.eu>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] prestera: fix fallback to previous version on same major version
2023-08-02 9:23 [PATCH] prestera: fix fallback to previous version on same major version Jonas Gorski
` (2 preceding siblings ...)
2023-08-03 9:28 ` Taras Chornyi
@ 2023-08-03 18:10 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-08-03 18:10 UTC (permalink / raw)
To: Jonas Gorski
Cc: taras.chornyi, davem, edumazet, kuba, pabeni, andrew, vkochan,
netdev, linux-kernel
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Wed, 2 Aug 2023 11:23:56 +0200 you wrote:
> When both supported and previous version have the same major version,
> and the firmwares are missing, the driver ends in a loop requesting the
> same (previous) version over and over again:
>
> [ 76.327413] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.1.img firmware, fall-back to previous 4.0 version
> [ 76.339802] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.352162] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.364502] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.376848] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.389183] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.401522] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.413860] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> [ 76.426199] Prestera DX 0000:01:00.0: missing latest mrvl/prestera/mvsw_prestera_fw-v4.0.img firmware, fall-back to previous 4.0 version
> ...
>
> [...]
Here is the summary with links:
- prestera: fix fallback to previous version on same major version
https://git.kernel.org/netdev/net/c/b755c25fbcd5
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread