From patchwork Mon Nov 21 11:44:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 83212 Delivered-To: patch@linaro.org Received: by 10.182.1.168 with SMTP id 8csp1477239obn; Mon, 21 Nov 2016 03:44:30 -0800 (PST) X-Received: by 10.37.11.69 with SMTP id 66mr3131388ybl.45.1479728670015; Mon, 21 Nov 2016 03:44:30 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x206si4621513ywa.334.2016.11.21.03.44.29; Mon, 21 Nov 2016 03:44:30 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754069AbcKULo0 (ORCPT + 26 others); Mon, 21 Nov 2016 06:44:26 -0500 Received: from mail.kernel.org ([198.145.29.136]:58552 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753311AbcKULoZ (ORCPT ); Mon, 21 Nov 2016 06:44:25 -0500 Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5420B2012D; Mon, 21 Nov 2016 11:44:22 +0000 (UTC) Received: from localhost (unknown [213.57.247.249]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6794E2011E; Mon, 21 Nov 2016 11:44:20 +0000 (UTC) Date: Mon, 21 Nov 2016 13:44:17 +0200 From: Leon Romanovsky To: Dmitry Vyukov Cc: syzkaller , Jason Gunthorpe , Valdis.Kletnieks@vt.edu, dledford@redhat.com, sean.hefty@intel.com, Hal Rosenstock , linux-rdma@vger.kernel.org, LKML Subject: Re: [PATCH v2] infiniband: remove WARN that is not kernel bug Message-ID: <20161121114417.GA4158@leon.nu> References: <1479723531-17940-1-git-send-email-dvyukov@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 21, 2016 at 11:30:21AM +0100, Dmitry Vyukov wrote: > On Mon, Nov 21, 2016 at 11:25 AM, Miroslav Benes wrote: > > On Mon, 21 Nov 2016, Dmitry Vyukov wrote: > > > >> WARNINGs mean kernel bugs. > >> The one in ucma_write() points to user programming error > >> or a malicious attempt. This is not a kernel bug, remove it. > >> > >> BUG/WARNs that are not kernel bugs hinder automated testing effots. > >> > >> Signed-off-by: Dmitry Vyukov > >> Cc: Doug Ledford > >> Cc: Sean Hefty > >> Cc: Hal Rosenstock > >> Cc: Leon Romanovsky > >> Cc: linux-rdma@vger.kernel.org > >> Cc: linux-kernel@vger.kernel.org > >> Cc: syzkaller@googlegroups.com > >> > >> --- > >> Changes since v1: > >> - added printk_once > >> --- > >> drivers/infiniband/core/ucma.c | 5 ++++- > >> 1 file changed, 4 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c > >> index 9520154..405d0ce 100644 > >> --- a/drivers/infiniband/core/ucma.c > >> +++ b/drivers/infiniband/core/ucma.c > >> @@ -1584,8 +1584,11 @@ static ssize_t ucma_write(struct file *filp, const char __user *buf, > >> struct rdma_ucm_cmd_hdr hdr; > >> ssize_t ret; > >> > >> - if (WARN_ON_ONCE(!ib_safe_file_access(filp))) > >> + if (!ib_safe_file_access(filp)) { > >> + printk_once("ucma_write: process %d (%s) tried to do something hinky\n", > >> + task_tgid_vnr(current), current->comm); > >> return -EACCES; > >> + } > >> > >> if (len < sizeof(hdr)) > >> return -EINVAL; > > > > FWIW, WARN_ON_ONCE came with commit e6bd18f57aad ("IB/security: Restrict > > use of the write() interface"). Would it make sense to change the other > > places as well? > > > I guess so. > Can I ask somebody of infiniband maintainers to take care of this? Please see below, Hope it helps. > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >From e0bfe4771591f9ffbcaa4e66d6257ed95e2d7188 Mon Sep 17 00:00:00 2001 From: Leon Romanovsky Date: Mon, 21 Nov 2016 13:30:59 +0200 Subject: [PATCH] IB/{core, qib}: Remove WARN that is not kernel bug WARNINGs mean kernel bugs, in this case, they are placed to mark programming errors and/or malicious attempts. BUG/WARNs that are not kernel bugs hinder automated testing efforts. Signed-off-by: Dmitry Vyukov Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/ucm.c | 5 ++++- drivers/infiniband/core/ucma.c | 5 ++++- drivers/infiniband/core/uverbs_main.c | 5 ++++- drivers/infiniband/hw/qib/qib_file_ops.c | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c index 7713ef0..0076b55 100644 --- a/drivers/infiniband/core/ucm.c +++ b/drivers/infiniband/core/ucm.c @@ -1104,8 +1104,11 @@ static ssize_t ib_ucm_write(struct file *filp, const char __user *buf, struct ib_ucm_cmd_hdr hdr; ssize_t result; - if (WARN_ON_ONCE(!ib_safe_file_access(filp))) + if (!ib_safe_file_access(filp)) { + pr_err_once("ucm_write: process %d (%s) tried to do something hinky\n", + task_tgid_vnr(current), current->comm); return -EACCES; + } if (len < sizeof(hdr)) return -EINVAL; diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c index 9520154..31fa27f 100644 --- a/drivers/infiniband/core/ucma.c +++ b/drivers/infiniband/core/ucma.c @@ -1584,8 +1584,11 @@ static ssize_t ucma_write(struct file *filp, const char __user *buf, struct rdma_ucm_cmd_hdr hdr; ssize_t ret; - if (WARN_ON_ONCE(!ib_safe_file_access(filp))) + if (!ib_safe_file_access(filp)) { + pr_err_once("ucma_write: process %d (%s) tried to do something hinky\n", + task_tgid_vnr(current), current->comm); return -EACCES; + } if (len < sizeof(hdr)) return -EINVAL; diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index 44b1104..329eb15 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c @@ -746,8 +746,11 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf, int srcu_key; ssize_t ret; - if (WARN_ON_ONCE(!ib_safe_file_access(filp))) + if (!ib_safe_file_access(filp)) { + pr_err_once("uverbs_write: process %d (%s) tried to do something hinky\n", + task_tgid_vnr(current), current->comm); return -EACCES; + } if (count < sizeof hdr) return -EINVAL; diff --git a/drivers/infiniband/hw/qib/qib_file_ops.c b/drivers/infiniband/hw/qib/qib_file_ops.c index 382466a..b43ea52 100644 --- a/drivers/infiniband/hw/qib/qib_file_ops.c +++ b/drivers/infiniband/hw/qib/qib_file_ops.c @@ -2066,8 +2066,11 @@ static ssize_t qib_write(struct file *fp, const char __user *data, ssize_t ret = 0; void *dest; - if (WARN_ON_ONCE(!ib_safe_file_access(fp))) + if (!ib_safe_file_access(fp)) { + pr_err_once("qib_write: process %d (%s) tried to do something hinky\n", + task_tgid_vnr(current), current->comm); return -EACCES; + } if (count < sizeof(cmd.type)) { ret = -EINVAL; -- 2.7.4