Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1243934ybt; Tue, 7 Jul 2020 10:50:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzTPXYmHhRjKpqSNJPSfseb2byF++sxk3Jqp3kyZUFp3gokuA/0o9tg8m4I+H2Mxguh/9X9 X-Received: by 2002:a17:906:c452:: with SMTP id ck18mr50918114ejb.415.1594144244006; Tue, 07 Jul 2020 10:50:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594144243; cv=none; d=google.com; s=arc-20160816; b=B6RiWLCrgjPcUdVEZdipm8f4IO1NfXapbCWAdY5rSzW4uy5Z6Z1u9SR+POWqT7y1wt l0WNl1Em2UL9DrzsRxWI3KQYV0TWT6F0cJbYlmF26kFDpEfio0pAF1U39DJjSmwG4cIC H2L6s8TKj7nZRcmmRFIJRAvknYljutkpD/Mk2qtxwXCmNbTHoFXo1tZyAJN4BXy0epCZ 8/YFYKWnu9hrjeRLdFdpMUixbPXT+FJFUeml1/V8O68WYIFdg/FAbCaPi+tI/h58omsK 1vQkTe+7guSStPyPILRcG8Dxgjz41eHB487X5KisaJPLzpLKoT/IoxuSyBTO/ssSDmS/ 92tQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rF/h+g2aRvM7O684xTgcwq5WjNPNPSLZJBoCztHySj0=; b=GvwX/kpS9vrcAbiNGmTFDX7qqvU9nSPT3IsNVHjJTIQrIOYQJly9MiX3ia4V50rz8x cJGXepPJsqizO8FlWKBJwBJ3B/izhyXR7ZPzpbKolq1xQaklpYIaNlcWB5uL+Ej9Kz2d kAhVW42B3wlnHl7Yk7OGw1CQyNHhKRHigvgs9CWrM9Akg6O3r9wdPhwACg5zierSO6gX PgQiC9fvuDnm/uVT7xsWENehF0eupOHq0pMy93/uWB0CcYYdh2+gvi6SpzU7uQyO8W9f CTd+905Eu5UcnYJ6oIpGAnF0PqLCYRd222QvlaQEuQHbqHTUBWIcoHKxutnayRB0Tilb G12Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=mFGEGHx2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id di16si13676774edb.397.2020.07.07.10.50.21; Tue, 07 Jul 2020 10:50:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=mFGEGHx2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728782AbgGGRtN (ORCPT + 99 others); Tue, 7 Jul 2020 13:49:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728513AbgGGRsY (ORCPT ); Tue, 7 Jul 2020 13:48:24 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3DACC061755; Tue, 7 Jul 2020 10:48:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=rF/h+g2aRvM7O684xTgcwq5WjNPNPSLZJBoCztHySj0=; b=mFGEGHx2eqHf2GAe5IHSpAddv6 AbSrUPzSK75vbu/Zf7WkR6KQ1V4imkhSYcjovGcKVS8O07Yz3yjudqmrdLUJ21wAFNmjLcw0hEO3N VMSRsA61DPftGVp/9S9C0EaTIKdwfsv1kMbr8iJiEB02gFiU3jVeVimem1xvDUJmjc1j+I2AmoWzC H6Yq+UfIr+T0Pms73rNbaQiL50zuj1mp1Iig3W/+4ZWiQWlH4O6s7Ixz5vaSRN2gBPe1ez8xLJZSl MTCfQNc/igRpR1qvppp/9dHeCy5Kn6o/NWJ/xeKRhQH0UakZouzv3kF48NfaYcKsvKCplzRqMIrUO 72NIfuxw==; Received: from [2001:4bb8:18c:3b3b:a49f:8154:a2b7:8b6c] (helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jsrhY-0003Iq-Ee; Tue, 07 Jul 2020 17:48:16 +0000 From: Christoph Hellwig To: Al Viro , Linus Torvalds , Stephen Rothwell Cc: Luis Chamberlain , Matthew Wilcox , Kees Cook , Iurii Zaikin , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH 11/23] fs: implement kernel_read using __kernel_read Date: Tue, 7 Jul 2020 19:47:49 +0200 Message-Id: <20200707174801.4162712-12-hch@lst.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200707174801.4162712-1-hch@lst.de> References: <20200707174801.4162712-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Consolidate the two in-kernel read helpers to make upcoming changes easier. The only difference are the missing call to rw_verify_area in kernel_read, and an access_ok check that doesn't make sense for kernel buffers to start with. Signed-off-by: Christoph Hellwig --- fs/read_write.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/fs/read_write.c b/fs/read_write.c index cc8e0b4f3cd697..a0a0b5d1d9249c 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -455,15 +455,12 @@ ssize_t __kernel_read(struct file *file, void *buf, size_t count, loff_t *pos) ssize_t kernel_read(struct file *file, void *buf, size_t count, loff_t *pos) { - mm_segment_t old_fs; - ssize_t result; + ssize_t ret; - old_fs = get_fs(); - set_fs(KERNEL_DS); - /* The cast to a user pointer is valid due to the set_fs() */ - result = vfs_read(file, (void __user *)buf, count, pos); - set_fs(old_fs); - return result; + ret = rw_verify_area(READ, file, pos, count); + if (ret) + return ret; + return __kernel_read(file, buf, count, pos); } EXPORT_SYMBOL(kernel_read); -- 2.26.2