From patchwork Tue Nov 5 21:17:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 1189975 X-Patchwork-Delegate: dsahern@gmail.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="kyE2pQ/f"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4772Yg0jm0z9sP3 for ; Wed, 6 Nov 2019 08:17:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729889AbfKEVRZ (ORCPT ); Tue, 5 Nov 2019 16:17:25 -0500 Received: from mail-lf1-f66.google.com ([209.85.167.66]:43975 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729656AbfKEVRY (ORCPT ); Tue, 5 Nov 2019 16:17:24 -0500 Received: by mail-lf1-f66.google.com with SMTP id j5so16242815lfh.10 for ; Tue, 05 Nov 2019 13:17:23 -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=AS0orDHI3+2Aj1n4T3xpW3UEe0kOtpE+/5HDJjkQqdg=; b=kyE2pQ/fswbSs5a61kRTlD+sq+0/sTfH2PscBlRXcuNxR3XSDAB3WuR01YO868qvOF SeCCu7OdhmxgTxz6QyUG8Dap92P4f2CClb3t3k99nHV/5M8WuryrL4V4kHhUgPO+08ur xsDY73Q9YLoSCr14Cm9q3hpd/IHGm+BMBu/FbmcmXQsHG6Zf7YGfNIMH/ppfHGd7vUFx QLuU/eXQYttMkJ1IsMWXeAD9JteY7oidqGAF/56bnE143VcKvclZZUDnrjnKlX3xcWiL jSMiFxiuOPHrk7tQAfSu5CEVqyLpTmyL2h0dpYGjqIXmYxJh6aWYIR0+BNp8HRxOiloc bsug== 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=AS0orDHI3+2Aj1n4T3xpW3UEe0kOtpE+/5HDJjkQqdg=; b=ZZwz8hpWO9pUoCx+y9LSwaWloqvi+bhorCqhcooEKyNvGLHWw2RKFF6RPO5ChhNKkG gSjYWrs3MHI02B6uJ7lR0UKAZ0lxlxJawW7P2KtNAMfiqblfZrGJDc95QaX54RmUKmNb u2Pddmu8/iQk3TYBK89xs+DHqlSJuPtxnH81WF/0GEIbNhP3mJ653xEGODstncMNUdYB CjxpnVUVMZbCx8KsGydgP2pvTgvLIxDVjoa99zxPbFeQ2fPvNA5/NV3ktmMPQzE+ucMl mXrR5qObxmnqdUUwXeIrr61PuZxuCMfeEYSAiToi2YGiRDI/alVZnEh3h437OGQ0H1mb gAwQ== X-Gm-Message-State: APjAAAWyoCBetlSMZdn+iXvGsqlTEiHpjXS+UqTz8gP84CoL/UiNvf3e U3h9J6Or9k2kNHnHC1nJt3zDPw== X-Google-Smtp-Source: APXvYqxWucwznAkePSmY7fvVnrNCjho7Hq5+TOB9e9PtUY5Y0NHgTWSVTPFiFfXLyeOOMcPaRZFR+Q== X-Received: by 2002:ac2:4d10:: with SMTP id r16mr22745781lfi.70.1572988642570; Tue, 05 Nov 2019 13:17:22 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id 81sm9861270lje.70.2019.11.05.13.17.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Nov 2019 13:17:21 -0800 (PST) From: Jakub Kicinski To: dsahern@gmail.com Cc: stephen@networkplumber.org, netdev@vger.kernel.org, oss-drivers@netronome.com, jiri@resnulli.us, Jakub Kicinski Subject: [PATCH iproute2-next 1/3] devlink: fix referencing namespace by PID Date: Tue, 5 Nov 2019 13:17:05 -0800 Message-Id: <20191105211707.10300-2-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191105211707.10300-1-jakub.kicinski@netronome.com> References: <20191105211707.10300-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 netns parameter for devlink reload is supposed to take PID as well as string name. However, the PID parsing has two bugs: - the opts->netns member is unsigned so the < 0 condition is always false; - the parameter list is not rewinded after parsing as a name, so parsing as a pid uses the wrong argument. Fixes: 08e8e1ca3e05 ("devlink: extend reload command to add support for network namespace change") Signed-off-by: Jakub Kicinski Acked-by: Jiri Pirko --- devlink/devlink.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/devlink/devlink.c b/devlink/devlink.c index 9c96d05ea666..682f832a064c 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -345,6 +345,12 @@ static void dl_arg_inc(struct dl *dl) dl->argv++; } +static void dl_arg_dec(struct dl *dl) +{ + dl->argc++; + dl->argv--; +} + static char *dl_argv_next(struct dl *dl) { char *ret; @@ -1460,7 +1466,8 @@ static int dl_argv_parse(struct dl *dl, uint64_t o_required, if (err) return err; opts->netns = netns_get_fd(netns_str); - if (opts->netns < 0) { + if ((int)opts->netns < 0) { + dl_arg_dec(dl); err = dl_argv_uint32_t(dl, &opts->netns); if (err) return err; From patchwork Tue Nov 5 21:17:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 1189976 X-Patchwork-Delegate: dsahern@gmail.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="s6k6a+wG"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4772Yh6SCqz9sNT for ; Wed, 6 Nov 2019 08:17:28 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729954AbfKEVR1 (ORCPT ); Tue, 5 Nov 2019 16:17:27 -0500 Received: from mail-lj1-f193.google.com ([209.85.208.193]:42868 "EHLO mail-lj1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729656AbfKEVR1 (ORCPT ); Tue, 5 Nov 2019 16:17:27 -0500 Received: by mail-lj1-f193.google.com with SMTP id n5so12549734ljc.9 for ; Tue, 05 Nov 2019 13:17:26 -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=dfJZYQDN356gAC3vS5Gc/eKxSf6vQIBkPy62iKe5Kgg=; b=s6k6a+wGp/2mx1uK38oBZ/+jC4tfm8itS8bqFeRxOVirGdP58MSaYRBXzUYZ4V/+L2 COP/NRag+vqtq4Qf51PsURkmvEgsNp+c0CHJVzabvYc38PkIpeSPGo9hb5GOMcESf+HG jRn581sFBenrVWeOqhU9W2Ch1hUvNMvVDDXnMuDp5gUAMfRKEK/7yY1EKJFhHqWm60p+ 0+S/0sba4G327Pfl6ti3o9OjCvtMZYikc43kuOrncy+TPWpK5KWTRO+15OAmQRXIXuCA ogELnd7RTGhEAw60KJn0MBxH4nnA2BGIxyH/fe/xiOOEM7PuQa7BaZvdzZCshQgB3trW EZQg== 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=dfJZYQDN356gAC3vS5Gc/eKxSf6vQIBkPy62iKe5Kgg=; b=k3Q/IaQRkoBKwG3VGDMHnPHKHA4Z81YKo1J2tWMXJ/4d79X7s+Z9N/YtVVXl/OLH2Y AJLqh4qdaDi/vAlVhlhiSxAum4/agqDj53tClMO861abhJVNDtBUvb2d8FPDHbvKI1ez j1f+/Y85+Bt5HYtW3ZSS+HX7nYdWAqCqtjMlJsjtK6szK1IrKRfzZOtsMoQX8u7b5ke+ E+MKRXw8U2Ub4VvfMsKwlZV0D38nKMEUGyndXs+WpTiZK3sRr+I93yYoN7e6DFQCpkAD kfTPL1znt+PbNxj1KtE9nECiFs3XUpDzpb9yVUtzvmzuQ+HKPs5GKC+G8Bi+HCxqffrn CDIQ== X-Gm-Message-State: APjAAAUcB29fruUx5G7lmcRKdxrmOXNOiLlqjoiRDGNNuLmPCZWwaTMa wJgtrPcbUCrehBzRzb3eGoBHEw== X-Google-Smtp-Source: APXvYqxMlAtTmPqzAdjRV49H2CJe19EAZH91Gd8azKQvuz3IynQZt9/hSJbOTwizcl/qot8NUE+mug== X-Received: by 2002:a2e:9a0c:: with SMTP id o12mr12744125lji.141.1572988645433; Tue, 05 Nov 2019 13:17:25 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id 81sm9861270lje.70.2019.11.05.13.17.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Nov 2019 13:17:24 -0800 (PST) From: Jakub Kicinski To: dsahern@gmail.com Cc: stephen@networkplumber.org, netdev@vger.kernel.org, oss-drivers@netronome.com, jiri@resnulli.us, Jakub Kicinski Subject: [PATCH iproute2-next 2/3] devlink: catch missing strings in dl_args_required Date: Tue, 5 Nov 2019 13:17:06 -0800 Message-Id: <20191105211707.10300-3-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191105211707.10300-1-jakub.kicinski@netronome.com> References: <20191105211707.10300-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 Currently if dl_args_required doesn't contain a string for a given option the fact that the option is missing is silently ignored. Add a catch-all case and print a generic error. Signed-off-by: Jakub Kicinski Acked-by: Jiri Pirko --- devlink/devlink.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devlink/devlink.c b/devlink/devlink.c index 682f832a064c..e05a2336787a 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -1157,6 +1157,10 @@ static int dl_args_finding_required_validate(uint64_t o_required, return -EINVAL; } } + if (o_required & ~o_found) { + pr_err("BUG: unknown argument required but not found\n"); + return -EINVAL; + } return 0; } From patchwork Tue Nov 5 21:17:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 1189977 X-Patchwork-Delegate: dsahern@gmail.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="bq/saNFQ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4772Yl52rkz9sNT for ; Wed, 6 Nov 2019 08:17:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729969AbfKEVRb (ORCPT ); Tue, 5 Nov 2019 16:17:31 -0500 Received: from mail-lj1-f194.google.com ([209.85.208.194]:34860 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729656AbfKEVRa (ORCPT ); Tue, 5 Nov 2019 16:17:30 -0500 Received: by mail-lj1-f194.google.com with SMTP id r7so14873882ljg.2 for ; Tue, 05 Nov 2019 13:17:29 -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=mps6/m7zVOPbnuVxZnVmB3Q8JZ0VgpkbzHnUExkJRQk=; b=bq/saNFQnmQxNPZhwHF5kmgrWAcGNNgjwUJy8OIFfi2O0plm1p4hPpFCJ13ZlODr2x vatIA8ouE+yWcApmhpCEz/Hdeui9Ipf4/s/yDChuMzMPtn7U4gKj8DomCpzR48AvGmP8 Et1pjA7Lj7lU/VJ6k+Fc6Nmv+i/J+hommUQPJV5wXYh5myDKEH4RSItDM7iPaWC2Cm9S lw4fvAq/UPtfGZYd/TLYW1lWoE/ehaBivBNDvxEvsGf23U2Md/RAxjYAeLoOymbPUGkY Q/V9Ia7hVgx8MtkLoYudJ0Z/7JQvKALeJ+Bq35pkQQOsGHTSXztmi3bjK0iQYIVQqv0/ bmJQ== 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=mps6/m7zVOPbnuVxZnVmB3Q8JZ0VgpkbzHnUExkJRQk=; b=hCo5jfF4c02ihaHaAFaB2arV+kQFJIiostMDNnMWm09gvITdZC/BIhF2CoprhwVV6o gxY5emhTsysXZ0uJ6kCQNum6n3XtnNCmOu/aTViBNav5kIhANzPeV4+2aa1pNm5G4LAM R+FYSG3JvLKEFtdFu9gyJtbWeVVb6NteGRb2i6GDqQ8Ew+9ro512hJIR5NslI99y5Blo Rac1fWAYUvV6ebHyV3SHw+7zB/dsM9hZKzT7qSk5AabQ+rsMW4PTbrMVA1vkDJ1AOlco 7tp4SJBbo4FKTHbubTdGAB6VZ814mGYbzTUXpdBmV9RNvaLEpyB6nk+73EmUPHZDUSZk 9olQ== X-Gm-Message-State: APjAAAVORLtK0wEMErfCBubIk6Kskp1GBFyQ/KSxWX11+WSTapNBAUhh dFUGuNBfY2yJ9rmXaqHAuGahFQ== X-Google-Smtp-Source: APXvYqzOrhIND9VhXsXCk9Zrj8VlR8D9+gMPcJQfK02i5sZ6481+i5rHdVQgTj6qv/Y8ZkA+N8Swcw== X-Received: by 2002:a2e:9842:: with SMTP id e2mr304289ljj.93.1572988648288; Tue, 05 Nov 2019 13:17:28 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id 81sm9861270lje.70.2019.11.05.13.17.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Nov 2019 13:17:27 -0800 (PST) From: Jakub Kicinski To: dsahern@gmail.com Cc: stephen@networkplumber.org, netdev@vger.kernel.org, oss-drivers@netronome.com, jiri@resnulli.us, Jakub Kicinski Subject: [PATCH iproute2-next 3/3] devlink: allow full range of resource sizes Date: Tue, 5 Nov 2019 13:17:07 -0800 Message-Id: <20191105211707.10300-4-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191105211707.10300-1-jakub.kicinski@netronome.com> References: <20191105211707.10300-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 Resource size is a 64 bit attribute at netlink level. Make the command line argument 64 bit as well. Signed-off-by: Jakub Kicinski Acked-by: Jiri Pirko --- devlink/devlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devlink/devlink.c b/devlink/devlink.c index e05a2336787a..ea3f992ee0d7 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -283,7 +283,7 @@ struct dl_opts { bool dpipe_counters_enable; bool eswitch_encap_mode; const char *resource_path; - uint32_t resource_size; + uint64_t resource_size; uint32_t resource_id; bool resource_id_valid; const char *param_name; @@ -1348,7 +1348,7 @@ static int dl_argv_parse(struct dl *dl, uint64_t o_required, } else if (dl_argv_match(dl, "size") && (o_all & DL_OPT_RESOURCE_SIZE)) { dl_arg_inc(dl); - err = dl_argv_uint32_t(dl, &opts->resource_size); + err = dl_argv_uint64_t(dl, &opts->resource_size); if (err) return err; o_found |= DL_OPT_RESOURCE_SIZE;