From patchwork Tue Jan 22 21:40:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 1029548 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="tlMS47AP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43khg25h2Xz9s4s for ; Wed, 23 Jan 2019 08:40:46 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726863AbfAVVkp (ORCPT ); Tue, 22 Jan 2019 16:40:45 -0500 Received: from mail-qt1-f195.google.com ([209.85.160.195]:40823 "EHLO mail-qt1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726225AbfAVVkp (ORCPT ); Tue, 22 Jan 2019 16:40:45 -0500 Received: by mail-qt1-f195.google.com with SMTP id k12so57224qtf.7 for ; Tue, 22 Jan 2019 13:40: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:mime-version :content-transfer-encoding; bh=JyjGi7Pg1c+YFLBUO0lmyOXFCzl/Mh9gLNdRc4v5VHU=; b=tlMS47APjhAZn8a43/73I9X2yQVKCTrIpbudhSRGpusH4OPVCeZKkA8QPUXlN2f9fW +G7RKhPwZDL8Ku6fIsNe1B8xEGsHtciCV7+A57ZqYb7oSfJ+aGT7FaMz4Rbt14jYjkS+ F5iTfLm1eNw62natpMMdLcUDY21ensJe+eHIwXaTEpu5Evh885N5ba0ijljTLPlR0rQ5 o9okxYnPFD46sHUm8tzSVP9h9jh02qY5+5Ww278mDgkr0wqqF5+RKciDctq+HnkLYVHE 2gZl1D4pzvPJxgRsQqCDtjkh4PXWC57N11eU6LkPmdGlfRSctBtaVi1KlsjQgQGQ+1Ll dMyA== 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:mime-version :content-transfer-encoding; bh=JyjGi7Pg1c+YFLBUO0lmyOXFCzl/Mh9gLNdRc4v5VHU=; b=srZJFSJWr9kkHQXvlFtKU+Hg7gQRYRqxMQeryaaDGAsaY0oQ+iP6kvhVDAuJDmW1Z+ rSi1463j1C9KFua1j3CLZMxK0Z0+1PCb5r0wReV/O/xXUzr4y9ORcErDsljmI3cAoAKk PsXKvOEdr8WilF0AItGngS+rjmaTNjtlLIvIsb/ykHjDAuSesissBc+6vJNNpX9mYBm4 k9cNPJ45rAFZ+j6xE42lXZFtBUWjFhZhICPcmKcEg5wDvXMqrByaHCJbbvcnGJE0n4M0 10HNpcr4dPpafIsVPvInTgomq4/LPUhGIioC5yYwkVW45KDCQ5fCxCgjPyvAKzNiDaBA N5TQ== X-Gm-Message-State: AJcUukdQ+XUqZ1OsMdrqI+bV3dJg+Ab8jhOiKXIP1RD++i1kHqdewJfB GMVLpBwkCB82WaLzyl5DRj8ioA== X-Google-Smtp-Source: ALg8bN5LIqEPNmvIZmHslZqrVyISZ8nLRyBAf3bxKbog12jIW35baNSq3joib74udYAhZApXxPB3Jw== X-Received: by 2002:ac8:25d0:: with SMTP id f16mr33660779qtf.129.1548193244079; Tue, 22 Jan 2019 13:40:44 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id j33sm63067383qte.38.2019.01.22.13.40.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Jan 2019 13:40:43 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, dsahern@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, Jakub Kicinski Subject: [PATCH net] net/ipv6: don't return positive numbers when nothing was dumped Date: Tue, 22 Jan 2019 13:40:33 -0800 Message-Id: <20190122214033.3803-1-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org in6_dump_addrs() returns a positive 1 if there was nothing to dump. This return value can not be passed as return from inet6_dump_addr() as is, because it will confuse rtnetlink, resulting in NLMSG_DONE never getting set: $ ip addr list dev lo EOF on netlink Dump terminated Fixes: 7c1e8a3817c5 ("netlink: fixup regression in RTM_GETADDR") Reported-by: Brendan Galloway Signed-off-by: Jakub Kicinski --- net/ipv6/addrconf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 93d5ad2b1a69..87c98f7fe997 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -5120,6 +5120,9 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb, if (idev) { err = in6_dump_addrs(idev, skb, cb, s_ip_idx, &fillargs); + if (err < 0) + goto put_tgt_net; + err = 0; } goto put_tgt_net; }