Messages in this thread | | | From | Elad Nachman <> | Subject | RE: [EXT] [PATCH] prestera: fix fallback to previous version on same major version | Date | Wed, 2 Aug 2023 10:56:25 +0000 |
| |
> -----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>
| |