From patchwork Wed Feb 27 04:19:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 1048662 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com 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="1ka29gyM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 448MsN5ljzz9s55 for ; Wed, 27 Feb 2019 15:19:52 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729687AbfB0ETq (ORCPT ); Tue, 26 Feb 2019 23:19:46 -0500 Received: from mail-qt1-f193.google.com ([209.85.160.193]:41496 "EHLO mail-qt1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729634AbfB0ETp (ORCPT ); Tue, 26 Feb 2019 23:19:45 -0500 Received: by mail-qt1-f193.google.com with SMTP id v10so17752537qtp.8 for ; Tue, 26 Feb 2019 20:19:44 -0800 (PST) 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 :mime-version:content-transfer-encoding; bh=XhS326aTOFCNsT2lZQDuonzxazqwDYMovhJ3hHZw8QI=; b=1ka29gyM8OBl+F/MKO7Kk+yBbPxrVxpJw2b0IMEVA2MBJZ4G0ZIQzQyQA9jGVwjy5P 92Ar0K55d4L3CeKEfRymHYSXf099/4tVGigR5jOJfysMTfBeYrMO0V8zQyXiRYnrlJC9 Ji7mRNJbMqsxqkfDnr3CUXYaYmtKb/OFjnGZ9zBh2JhVvXMtyYmaIs+wAMqiJan8Btth CMFRWt9YKYA8tuGrLvqrGmvoxZBssEBjV54v1j+67tM8dXyym7U/27nqLCQGt6sPMiuz YZ6vfMbwJ8hWtrOcEJWsfClwaTb4+2H01FFQcE+su9ti792zpFfAh8MQlSKzrUFmNIAi Dkgg== 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:mime-version:content-transfer-encoding; bh=XhS326aTOFCNsT2lZQDuonzxazqwDYMovhJ3hHZw8QI=; b=e+6+tJc1vQCdhFzuNS+PpueAL9krlUj/V5nAGgShZv45Uml6pAdPfAz372GGCpKhyo 0lkGqEZjtZRPEb/BS456KslxRGNRxEk8jmF3KRnd+Ox6bDScxLY5jLBls/bvBIWia7c3 p8RAU/NtSigJ2/cDQunDqt3g8TRQGjTOpiutkbmUmRY05oWxQp9ThC2+VbMWcrLQD8Jv BDmc8rg4KWUw2Zw4us37NrftUr9Vi2zxCDzZLJoJVc7CMkPKggFlLBZ52qCj3q5dOSFD cTtHMIvnK7pvsXFcbZorLZJ9FuocV1jAkiDBc0ZmbPT8XJ/TcwmYqndmYdSIFuMsFVdH Gg+w== X-Gm-Message-State: APjAAAUo/18tgrhJ7AZGP5Xde3rZ0m9wnA1z7f4AizgjQXE0qOGUzj8y OcCNCt4Z06BtJriIrOhO+HTX8w== X-Google-Smtp-Source: APXvYqz22w/Dp1ng4MbDcVe0jj0oKrXCtULrtvn0ZItIJ3I28vJleVZ/qJy8mW/1dKQeNIWBuWe68w== X-Received: by 2002:ac8:234b:: with SMTP id b11mr105576qtb.40.1551241183924; Tue, 26 Feb 2019 20:19:43 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id p64sm1497093qkc.62.2019.02.26.20.19.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Feb 2019 20:19:43 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, Jakub Kicinski Subject: [PATCH net-next 2/5] nfp: nsp: use fractional size of the buffer Date: Tue, 26 Feb 2019 20:19:30 -0800 Message-Id: <20190227041933.15194-3-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190227041933.15194-1-jakub.kicinski@netronome.com> References: <20190227041933.15194-1-jakub.kicinski@netronome.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org NSP expresses the buffer size in MB and 4 kB blocks. For small buffers the kB part may make a difference, so count it in. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe --- .../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 13 +++++++------ 1 file changed, 7 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 a9d53df0070c..22208b03ff49 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c @@ -49,6 +49,7 @@ #define NSP_DFLT_BUFFER_ADDRESS GENMASK_ULL(39, 0) #define NSP_DFLT_BUFFER_CONFIG 0x20 +#define NSP_DFLT_BUFFER_SIZE_4KB GENMASK_ULL(15, 8) #define NSP_DFLT_BUFFER_SIZE_MB GENMASK_ULL(7, 0) #define NSP_MAGIC 0xab10 @@ -413,8 +414,8 @@ static int nfp_nsp_command(struct nfp_nsp *state, u16 code) static int nfp_nsp_command_buf(struct nfp_nsp *nsp, struct nfp_nsp_command_buf_arg *arg) { + unsigned int def_size, max_size; struct nfp_cpp *cpp = nsp->cpp; - unsigned int max_size; u64 reg, cpp_buf; int ret, err; u32 cpp_id; @@ -433,11 +434,11 @@ nfp_nsp_command_buf(struct nfp_nsp *nsp, struct nfp_nsp_command_buf_arg *arg) return err; max_size = max(arg->in_size, arg->out_size); - if (FIELD_GET(NSP_DFLT_BUFFER_SIZE_MB, reg) * SZ_1M < max_size) { - nfp_err(cpp, "NSP: default buffer too small for command 0x%04x (%llu < %u)\n", - arg->arg.code, - FIELD_GET(NSP_DFLT_BUFFER_SIZE_MB, reg) * SZ_1M, - max_size); + def_size = FIELD_GET(NSP_DFLT_BUFFER_SIZE_MB, reg) * SZ_1M + + FIELD_GET(NSP_DFLT_BUFFER_SIZE_4KB, reg) * SZ_4K; + if (def_size < max_size) { + nfp_err(cpp, "NSP: default buffer too small for command 0x%04x (%u < %u)\n", + arg->arg.code, def_size, max_size); return -EINVAL; }