From patchwork Tue Sep 24 09:09:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jason A. Donenfeld" X-Patchwork-Id: 174257 Delivered-To: patch@linaro.org Received: by 2002:ac9:19ad:0:0:0:0:0 with SMTP id d45csp3593867oce; Tue, 24 Sep 2019 02:09:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqwZlist0GQNfYDXb40QB8Zw7+Vh7UPt+Ssmu4fXU+MKJk46KQu5K/jKYLd0BBEYtVcGSiGm X-Received: by 2002:a05:6402:1a4c:: with SMTP id bf12mr1521836edb.277.1569316185707; Tue, 24 Sep 2019 02:09:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569316185; cv=none; d=google.com; s=arc-20160816; b=IWYThed6sydBRA22a97HoZ6cDleB3ZPk4LvgLpkIM028BIrVnyNjZg0lXZgfGFjvwJ tL1kQko7H2HZIqlVUflT3ys2CG5+Amg/eANkkx6Qj9RfSklrMSJ6jMhze7LIJ9SdlzrL apV0epmYckHG7ciemC7Fs62Bu4wrtS2noyyWPLEJ0Rhps84+5hAX2Rgxt5XU3sb4Mk0G prZDZg0OYkeFa5hxBsaM+23M4nF3I5Q1GtidKZE9amqxEHTDlrKWp3dEKvUNeMmfXK0w lyYpBGPZvDV/aK4rR876KxytUmnGQNJ8HhVkdmMtmaY1qjYVldn6ruUehYATdI8A5wih gtYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=OTMwu2+QyB2+kQicWb6iEiXL04Bx6eLaJhRRls1ajBY=; b=zcI+40ACSFa/+HUPXHTVGjLu9ATepkL03+pavEBUsNVKZE9nK1HGVhS0jw8SQKr4O4 i6R4y5L6MRpIx75PQu5ztHONTojMgPJa16KMkue0YFrKzw8D0a0a6IYgsOvlNKj4efLU nmVqpMma877Ju4nQojDhAQT6GPH7uR09li7sSOsPntivpAfO6hBQdGN8Mqcew0ST+tRg RQTq7/48wRpbdxtSqlaFgkJh2hCUwf9hDkd47HHm0OvAkbm2P//KuhE2ZRgXpcFdX6g6 9TiHfwScys5caVTtoy8zay9KuVIgUdLlUZZNBlk+icsQWIxRRUVia5xYpenmCsxgO762 OLHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=mail header.b=D1W13TV9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zx2c4.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v8si516852eju.333.2019.09.24.02.09.45; Tue, 24 Sep 2019 02:09:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@zx2c4.com header.s=mail header.b=D1W13TV9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zx2c4.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2504103AbfIXJJo (ORCPT + 26 others); Tue, 24 Sep 2019 05:09:44 -0400 Received: from frisell.zx2c4.com ([192.95.5.64]:49451 "EHLO frisell.zx2c4.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2504086AbfIXJJo (ORCPT ); Tue, 24 Sep 2019 05:09:44 -0400 Received: by frisell.zx2c4.com (ZX2C4 Mail Server) with ESMTP id dc158a12; Tue, 24 Sep 2019 08:24:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=zx2c4.com; h=from:to:cc :subject:date:message-id:mime-version:content-transfer-encoding; s=mail; bh=u6Qv1urxbVN4KEZOHZSn+suLjNY=; b=D1W13TV9yrrZcXg5+xUO TLD65mmdS+8GAmgtxbY2A3svs4a1lbwwbqqbTb+SluV7MLQF+PQTT9hyY2BI7ua3 3SZ9r9FNPo86bpuI9/hbAvOdjAVVrYRfQMTFc2gQfodNHMyJGNRERb7ylDkY69A3 ghtvyBZyzaEyGBlkiuOL3QNqQIlbyaTAXKd0LA/bYuwG9UrBXkRQnw4riMTcfPOt wQtdTDKKyuWprgOLfrFQSlD/Lk43LoBPpYK8mPkfWDLXDt7nfPSj3lGOXR939n48 bf2xpTAU5F6BYTH+nrcNCRf9nHv0qUfAbrFLUaKp4///x9OvHmRwyREP+8LbBlPK +w== Received: by frisell.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 3b8a643f (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Tue, 24 Sep 2019 08:24:06 +0000 (UTC) From: "Jason A. Donenfeld" To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: "Jason A. Donenfeld" Subject: [PATCH] net: print proper warning on dst underflow Date: Tue, 24 Sep 2019 11:09:37 +0200 Message-Id: <20190924090937.13001-1-Jason@zx2c4.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Proper warnings with stack traces make it much easier to figure out what's doing the double free and create more meaningful bug reports from users. Signed-off-by: Jason A. Donenfeld --- net/core/dst.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.21.0 diff --git a/net/core/dst.c b/net/core/dst.c index 1325316d9eab..193af526e908 100644 --- a/net/core/dst.c +++ b/net/core/dst.c @@ -172,7 +172,7 @@ void dst_release(struct dst_entry *dst) int newrefcnt; newrefcnt = atomic_dec_return(&dst->__refcnt); - if (unlikely(newrefcnt < 0)) + if (WARN_ONCE(newrefcnt < 0, "dst_release underflow")) net_warn_ratelimited("%s: dst:%p refcnt:%d\n", __func__, dst, newrefcnt); if (!newrefcnt) @@ -187,7 +187,7 @@ void dst_release_immediate(struct dst_entry *dst) int newrefcnt; newrefcnt = atomic_dec_return(&dst->__refcnt); - if (unlikely(newrefcnt < 0)) + if (WARN_ONCE(newrefcnt < 0, "dst_release_immediate underflow")) net_warn_ratelimited("%s: dst:%p refcnt:%d\n", __func__, dst, newrefcnt); if (!newrefcnt)