Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp8982355ybi; Tue, 23 Jul 2019 19:25:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqwnb4uMwjpJMIs6rXhN3uuLx3X4vPDvaJ15M3o/9VJwGzqMW8IwZUYxW6gaqtlbJpJa7Mje X-Received: by 2002:a63:8ac3:: with SMTP id y186mr78752095pgd.13.1563935144893; Tue, 23 Jul 2019 19:25:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563935144; cv=none; d=google.com; s=arc-20160816; b=kt6wBzuG9lqkqXgTwDkzG6OwyLeGlU17yyFJLaP1JTLTkxpkS9Ty6diqTMm2TCGteO 3F9PvuGxyLryiQvLQjasr0q8LviBQcKD1X8cX8Zr3s/nl3DHVoWukzXXxw7N6YpPLLt0 zt+dghTie9pce2fWnL7OwBSR0xyDpQqklxMlcpYscSrnkgS6XwwCRS7FRqXZ6gXy5VM5 syrBzCEKb4kcsxzUY0POisSdVOW89PsLf7tJvNlxjG3R5adzTkV0e1/B97QgdYDbP7g/ iOkHQGWmIhJYbhGpFUXbf8ZULOcLMsXy6/ugiUaRaLjKYaltpkv98niiFq/nbUgm3YXJ AoLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=/huzVrn6iDinNK3gESNF6fMWuVj1J0a8E8YliY+JUMI=; b=ovKZMw1dw/nYAquZKBOvDB7cwau0PxUWvmFOu7N5KW0rbYWuvydMV93iTscWb+Xe3V EMeYGmAfn0UPWkdfXaob69rEf6o2SWQeg3P1vt5sxFu0b2EKB+UJbSKdz7hUz0BAz7jh dR6xQEhaLlpox1mZHk/ptUW+Kb/ryjevU3kkEYCGj3EbTyhg+caayWkA5rs89U63cQzb lTJIsK56SfJDhrcK9H6FuQ06PBCAFlL/PFlICwGNP3fnV3GX7nNvlUEJCTKReSvK2GCJ TCFZHoR/zef3U/eu9mujRlgchsHp9lZN1J0E2vMpWuIFLf1frZHCIGw7/oEpwvWJMMEh IqSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Y7zAf+Eq; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o19si13152776pgj.120.2019.07.23.19.25.28; Tue, 23 Jul 2019 19:25:44 -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=@google.com header.s=20161025 header.b=Y7zAf+Eq; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388656AbfGWSAi (ORCPT + 99 others); Tue, 23 Jul 2019 14:00:38 -0400 Received: from mail-ua1-f74.google.com ([209.85.222.74]:52809 "EHLO mail-ua1-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391294AbfGWR71 (ORCPT ); Tue, 23 Jul 2019 13:59:27 -0400 Received: by mail-ua1-f74.google.com with SMTP id u24so4327781uah.19 for ; Tue, 23 Jul 2019 10:59:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=/huzVrn6iDinNK3gESNF6fMWuVj1J0a8E8YliY+JUMI=; b=Y7zAf+EqSsPzgFlPRtHiU2eaf3uvF3mBfxNqtK2dkyuo3VTBYXjjpviaGnsQe0yYUQ RZjdFooS3ZC7uUt58aVI/4cdpsAs60vswb3AsNKQ+PFZtVBvzHw5kY0TqkqeCmyj7riF mtQh5FnaNVG9iaAtW+G98/NdplTTfZ9IkSgAzb8usp7NHgKVNq41drkIZNhCHbFrZwbP oh8Z0GVIBTZb34XQapQJ/Cc8NMSc6thxgEsgQUYNQcR1lgRqwCY4KcosdJFpWo+DlmgQ eRBAMO05IGodFWFysR4D+7FGT50746wIbh4QySN2wsOGOenRi1KIej0OqRFaxZbG5kzF UnOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=/huzVrn6iDinNK3gESNF6fMWuVj1J0a8E8YliY+JUMI=; b=X3A+koqHf6+cf3B/uLM6DqimjTjcixplc7CDckgpo+0gaEYU9SjSwz+6r98g48t2Iv xX0aQ5Y3M8ktM+vZtB+VyEUj9IWCa4kmkn6uZVsqexrRrMDJNOP2VUL9CVpM8QZjPD38 wenjdB2hkvjg49/lDEThRUf+pBv7rcycIMbi5/QVMjEKduCQtK6dJmRtq8PDtcz8R7x3 r2h+o9pi892szg1z2YU4AWOTfOk9MqRZ2uSCSp2HrMhAXE+jmBHIY5FkRgQjbZiJn+Xa mIafSOvQJK4gp9MtFu3BHI9zyXNEcntquHJLLm3SMSstmREF5dj4AtTAaY22Mr19kK8S F1ag== X-Gm-Message-State: APjAAAVr1HMkzBgdvEbk398BpbGY0KfOBcbDloCI7iai2IGQ3UGtydlc 3mbhJ2p99lMKVFBwg/Ppo/kPq/6R7FRfEGeX X-Received: by 2002:ab0:1c2:: with SMTP id 60mr34283049ual.78.1563904765450; Tue, 23 Jul 2019 10:59:25 -0700 (PDT) Date: Tue, 23 Jul 2019 19:58:43 +0200 In-Reply-To: Message-Id: <28f05e49c92b2a69c4703323d6c12208f3d881fe.1563904656.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.22.0.709.g102302147b-goog Subject: [PATCH v19 06/15] mm: untag user pointers in get_vaddr_frames From: Andrey Konovalov To: linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: Catalin Marinas , Vincenzo Frascino , Will Deacon , Mark Rutland , Andrew Morton , Greg Kroah-Hartman , Kees Cook , Yishai Hadas , Felix Kuehling , Alexander Deucher , Christian Koenig , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , Leon Romanovsky , Luc Van Oostenryck , Dave Martin , Khalid Aziz , enh , Jason Gunthorpe , Christoph Hellwig , Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Robin Murphy , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov 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 This patch is a part of a series that extends kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. get_vaddr_frames uses provided user pointers for vma lookups, which can only by done with untagged pointers. Instead of locating and changing all callers of this function, perform untagging in it. Reviewed-by: Khalid Aziz Reviewed-by: Vincenzo Frascino Acked-by: Catalin Marinas Reviewed-by: Kees Cook Signed-off-by: Andrey Konovalov --- mm/frame_vector.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/frame_vector.c b/mm/frame_vector.c index c64dca6e27c2..c431ca81dad5 100644 --- a/mm/frame_vector.c +++ b/mm/frame_vector.c @@ -46,6 +46,8 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, if (WARN_ON_ONCE(nr_frames > vec->nr_allocated)) nr_frames = vec->nr_allocated; + start = untagged_addr(start); + down_read(&mm->mmap_sem); locked = 1; vma = find_vma_intersection(mm, start, start + 1); -- 2.22.0.709.g102302147b-goog