nfp: update the old flash error message [Linux 5.3]

This Linux kernel change "nfp: update the old flash error message" is included in the Linux 5.3 release. This change is authored by Jakub Kicinski <jakub.kicinski [at] netronome.com> on Wed Jun 12 16:59:02 2019 -0700. The commit for this change in Linux stable tree is 605fd1c (patch).

nfp: update the old flash error message

Apparently there are still cards in the wild with a very old
management FW.  Let's make the error message in that case
indicate more clearly that management firmware has to be
updated.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

There are 7 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
index 42cf4fd..9a08623 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
@@ -241,11 +241,16 @@ static int nfp_nsp_check(struct nfp_nsp *state)
    state->ver.major = FIELD_GET(NSP_STATUS_MAJOR, reg);
    state->ver.minor = FIELD_GET(NSP_STATUS_MINOR, reg);

-   if (state->ver.major != NSP_MAJOR || state->ver.minor < NSP_MINOR) {
+   if (state->ver.major != NSP_MAJOR) {
        nfp_err(cpp, "Unsupported ABI %hu.%hu\n",
            state->ver.major, state->ver.minor);
        return -EINVAL;
    }
+   if (state->ver.minor < NSP_MINOR) {
+       nfp_err(cpp, "ABI too old to support NIC operation (%u.%hu < %u.%u), please update the management FW on the flash\n",
+           NSP_MAJOR, state->ver.minor, NSP_MAJOR, NSP_MINOR);
+       return -EINVAL;
+   }

    if (reg & NSP_STATUS_BUSY) {
        nfp_err(cpp, "Service processor busy!\n");

Leave a Reply

Your email address will not be published. Required fields are marked *