From patchwork Wed Mar 22 00:59:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 741807 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vns4D5GWRz9s1h for ; Wed, 22 Mar 2017 12:07:56 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="fmSRjnky"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758551AbdCVBHz (ORCPT ); Tue, 21 Mar 2017 21:07:55 -0400 Received: from mail-pg0-f41.google.com ([74.125.83.41]:36564 "EHLO mail-pg0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758543AbdCVBHw (ORCPT ); Tue, 21 Mar 2017 21:07:52 -0400 Received: by mail-pg0-f41.google.com with SMTP id g2so100802175pge.3 for ; Tue, 21 Mar 2017 18:07:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XTLfKdjkfja0U46F/dwqPq+Ve6DlPWOAuSoSFzSbi2M=; b=fmSRjnkyvYAEEKB2qLXmdSNvP6F7rr/hInhrZv5Y6xBNkQ713Yv+WQtMF+glm0iLX6 iuYccoqBYHX2o4kcmADSd9duC5PCdhNEC9g1TE/99bGvrqBcvOO/t2PLMK6U+XyFAigR 56n/6vlymtR76jIWbchShml5pmxUuXrI3bnf2WX4xniSEYDcDCg/Q5M1V4HohbmV+OZU TzAZe6cjRBCqdnx0Jt7G+uj70W5AYUsEqwaxUIUy5+H9zTCFNquKnAnedkE4OomlPpNo 65cZJ19Kwohvty+FF2z0TlvWXth4+qCuyxEn9CCKNol2NW0pA20AddCC2KBpjg+Hmo9s jpIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XTLfKdjkfja0U46F/dwqPq+Ve6DlPWOAuSoSFzSbi2M=; b=HIqf9QwUrxzUy0huvhOAM6+sTfE2QADQKqYm7ZDhgpOQ3b/fum2ERvOsYAVRLhpvYv BOB35mbDgLUPta+/ilfVCKsTHtb3z2qs+p+ND2FGFK4UDq7Pl/4s2bxmHtwohEzbR+xu Aoo4kjEMcQpub0UZPhcsyYp0+YHRUaeYaA0nzc92v+v5zjHmHQSvAgjy1Yn91PPAFVxI llF6zZagfQORZfTOAjEtbBrZiLDJza/O75rq1KPwyyYUotP5DIL6Q/Cbv2R0AmOHNy1r SinvQCu8BLAD4puoMjY1u/ff8pCol5UrEoZzwEXdTrC1GEIVXAi3TZUMaXTKXU9KUkIH xzEQ== X-Gm-Message-State: AFeK/H3ZXq30oQTH/QY9os18u4gl6vI2PTE2XjEfMeAVkE+54N4RHTx+iYJSwbp6pbZNOU+g X-Received: by 10.99.56.20 with SMTP id f20mr19985734pga.167.1490144402961; Tue, 21 Mar 2017 18:00:02 -0700 (PDT) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id x10sm41730182pfi.21.2017.03.21.18.00.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 21 Mar 2017 18:00:02 -0700 (PDT) From: Jakub Kicinski To: netdev@vger.kernel.org Cc: oss-drivers@netronome.com, kubakici@wp.pl, Jakub Kicinski Subject: [PATCH net-next 07/15] nfp: correct return codes when msleep gets interrupted Date: Tue, 21 Mar 2017 17:59:13 -0700 Message-Id: <20170322005921.10965-8-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170322005921.10965-1-jakub.kicinski@netronome.com> References: <20170322005921.10965-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org msleep_interruptible() returns time left to wait, not error code. Return ERESTARTSYS when interrupted. While at it correct a comment and make the polling a bit more aggressive. Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c index 34c50987c377..17822ae4a17f 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c @@ -209,9 +209,8 @@ nfp_nsp_wait_reg(struct nfp_cpp *cpp, u64 *reg, if ((*reg & mask) == val) return 0; - err = msleep_interruptible(100); - if (err) - return err; + if (msleep_interruptible(25)) + return -ERESTARTSYS; if (time_after(start_time, wait_until)) return -ETIMEDOUT; @@ -228,7 +227,7 @@ nfp_nsp_wait_reg(struct nfp_cpp *cpp, u64 *reg, * * Return: 0 for success with no result * - * 1..255 for NSP completion with a result code + * positive value for NSP completion with a result code * * -EAGAIN if the NSP is not yet present * -ENODEV if the NSP is not a supported model @@ -380,9 +379,10 @@ int nfp_nsp_wait(struct nfp_nsp *state) if (err != -EAGAIN) break; - err = msleep_interruptible(100); - if (err) + if (msleep_interruptible(25)) { + err = -ERESTARTSYS; break; + } if (time_after(start_time, wait_until)) { err = -ETIMEDOUT;