Received: by 10.223.185.116 with SMTP id b49csp1074776wrg; Fri, 23 Feb 2018 11:27:47 -0800 (PST) X-Google-Smtp-Source: AH8x227h8pRN2BsYVYmJx0NUuXzg4sLQKhdwHP6NSNIJE+qU3yYydEy6DA7tHlKyQ3FWiotsgUUp X-Received: by 10.98.83.6 with SMTP id h6mr2793287pfb.174.1519414067534; Fri, 23 Feb 2018 11:27:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519414067; cv=none; d=google.com; s=arc-20160816; b=d0peqMFLXgmuBolRc3xBgV7+AFSVjvdHjyG/Yg4TDtjvbftekxCYSzR/W4827RHRC1 Ju3cNkRHzJ5n9+612xdYdFogaEFE1zJp0eb603Q7HjO7ZlfmeXiP15+ObbeIh6MN0vqT P7nSLeM7CO7xCFuVGZop8OVxvLsf26xgfXrVRYEQmVES6L+moPs+wAyRaAB+plQ0IKQt 19e6Sfb0eIi21ZmgWmz00SDYo/4OyyxzB2ESRRO1dyoeW2QZE/iwNVDNwCLTTTGsKf9O HLwKCfXffzrPg52JDSdRdpbzZ/U7pcYFkvxmvP6lj8Ze+FT6mLRGBb0d9ECYn/ULQ4MM rC+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=aJpB0hDRdSdp0UtnlvXA4fdCXbus8Rt1kz2QhzYIaEM=; b=adbQ/kECqGyNmiiLC3aZ9PIyJtxJAQduxYPQ65UHD/SH3RpEKDbKtlqshUPVIL6jqS W8gk8qP4hKAPt4cC8IwIw0ewOYMfMzHyAG7it4XY74C2L87aa87wfBMIAvnGUe41hgVi nWOdTHiUyzhS+TmP3yYVd3pxkfLPIqBJSQl429GABfHDU53oRLDaKQtFK7Fru3sK1XTW gJc7ewqGkFUS86q5SUw9CmR+Oc7swEln2egmGVLaPpBmUBkZHfAA3lrTTMz2g5pYcdrq wlzQRT0tBnsw8r4CXMjOKEWUa0bZfJJCI20590Xr6NuYWKyA83Q9D103TwSZm1ONsODM pwow== ARC-Authentication-Results: i=1; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h12-v6si2163064pls.265.2018.02.23.11.27.33; Fri, 23 Feb 2018 11:27:47 -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 S935226AbeBWSwv (ORCPT + 99 others); Fri, 23 Feb 2018 13:52:51 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:47098 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935166AbeBWSwt (ORCPT ); Fri, 23 Feb 2018 13:52:49 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 466AC1005; Fri, 23 Feb 2018 18:52:48 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Douglas Gilbert , Jens Axboe Subject: [PATCH 4.14 032/159] blk_rq_map_user_iov: fix error override Date: Fri, 23 Feb 2018 19:25:40 +0100 Message-Id: <20180223170747.146310231@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180223170743.086611315@linuxfoundation.org> References: <20180223170743.086611315@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Douglas Gilbert commit 69e0927b3774563c19b5fb32e91d75edc147fb62 upstream. During stress tests by syzkaller on the sg driver the block layer infrequently returns EINVAL. Closer inspection shows the block layer was trying to return ENOMEM (which is much more understandable) but for some reason overroad that useful error. Patch below does not show this (unchanged) line: ret =__blk_rq_map_user_iov(rq, map_data, &i, gfp_mask, copy); That 'ret' was being overridden when that function failed. Signed-off-by: Douglas Gilbert Signed-off-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- block/blk-map.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/block/blk-map.c +++ b/block/blk-map.c @@ -126,7 +126,7 @@ int blk_rq_map_user_iov(struct request_q unsigned long align = q->dma_pad_mask | queue_dma_alignment(q); struct bio *bio = NULL; struct iov_iter i; - int ret; + int ret = -EINVAL; if (!iter_is_iovec(iter)) goto fail; @@ -155,7 +155,7 @@ unmap_rq: __blk_rq_unmap_user(bio); fail: rq->bio = NULL; - return -EINVAL; + return ret; } EXPORT_SYMBOL(blk_rq_map_user_iov);