lkml.org 
[lkml]   [2018]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.16 009/279] nfp: ignore signals when communicating with management FW
    Date
    4.16-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jakub Kicinski <jakub.kicinski@netronome.com>

    [ Upstream commit 5496295aefe86995e41398b0f76de601308fc3f5 ]

    We currently allow signals to interrupt the wait for management FW
    commands. Exiting the wait should not cause trouble, the FW will
    just finish executing the command in the background and new commands
    will wait for the old one to finish.

    However, this may not be what users expect (Ctrl-C not actually stopping
    the command). Moreover some systems routinely request link information
    with signals pending (Ubuntu 14.04 runs a landscape-sysinfo python tool
    from MOTD) worrying users with errors like these:

    nfp 0000:04:00.0: nfp_nsp: Error -512 waiting for code 0x0007 to start
    nfp 0000:04:00.0: nfp: reading port table failed -512

    Make the wait for management FW responses non-interruptible.

    Fixes: 1a64821c6af7 ("nfp: add support for service processor access")
    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>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
    +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
    @@ -281,8 +281,7 @@ nfp_nsp_wait_reg(struct nfp_cpp *cpp, u6
    if ((*reg & mask) == val)
    return 0;

    - if (msleep_interruptible(25))
    - return -ERESTARTSYS;
    + msleep(25);

    if (time_after(start_time, wait_until))
    return -ETIMEDOUT;

    \
     
     \ /
      Last update: 2018-06-18 12:17    [W:3.116 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site