From patchwork Mon May 6 16:30:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10931415 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DD82414DB for ; Mon, 6 May 2019 16:31:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CD160287EA for ; Mon, 6 May 2019 16:31:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BFEB528847; Mon, 6 May 2019 16:31:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5552B287EA for ; Mon, 6 May 2019 16:31:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F99A6B026F; Mon, 6 May 2019 12:31:33 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 6D1976B0271; Mon, 6 May 2019 12:31:33 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 599D96B0270; Mon, 6 May 2019 12:31:33 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by kanga.kvack.org (Postfix) with ESMTP id 395BF6B026D for ; Mon, 6 May 2019 12:31:33 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id t67so14998914qkd.15 for ; Mon, 06 May 2019 09:31:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=9noxdAH/DJOJ2FYayyiyYQz8DnKHvszaUU/XpncZrgo=; b=b2f7ojp03t8yJZeN0d47BisPkT0zr5CWPzpb3L1/5tRQunhGQ/kWIHKW44UlMxT1T4 qSMOVEFxdrCUg572ZGvGisc1K7qFd/K2ahc8YD8cIJTpi/3ZhRSvKPTFpyhRjwdqr+EB ehsQZuq5WLGXJhmzu8B1tNNl4sT8TeCyxXS0NhsUCDjnO1QAcaEfyiPQXktBuWaI5Bpv x9ZEPzp7LVRzjA3PCaP8U5ESklkdmCt0hLADGgbnqcPJyRxRK/eynRP+iJSRsaic9VgL fwVpMtLKLzwqxEQZPIV6Z2qF7dwR9uhXwt5DA+Eztl5ezpozBnIlMIvbLs6hopJTvLIJ A4Xg== X-Gm-Message-State: APjAAAW8CSJDV9utfvVtXu9Khfrb+iC3qpfL6t9Ty7btNZ+N787XJSy4 DDlMTUoAbDjjCHJ6Ta4EPK41u37p+5+CWJcDEG/2ske63p8mXH3Qww1E2Kg2O6hXhUpV1DDQBNj 7z+EeZASsgAnuIJ1ZfxgedcZ9Mu8C6oKCTn8MpQs0arvNd9UxF5fc6OqC9PnlTVs+dQ== X-Received: by 2002:a37:495:: with SMTP id 143mr8724456qke.106.1557160293001; Mon, 06 May 2019 09:31:33 -0700 (PDT) X-Received: by 2002:a37:495:: with SMTP id 143mr8724376qke.106.1557160292000; Mon, 06 May 2019 09:31:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557160291; cv=none; d=google.com; s=arc-20160816; b=ZW/V8Bv6Wo6q4/zD+4Ie7GhIie+b9eYUOeMXcRU0zF7BFkb5dI/l93AMrVOAxnbyNY GdFHeC7pNz9+Muh/mqTnyABEahS2cKPMvI+MDZtTxncG+JSWCJvLXhI6RJJJ8FD1jdR4 eR3Sv9jl+Bt4mSZ8HfnRlLrynDH6P2pFBYBRormOprDaU1/KhRlaj2MQWSEhNjm3+Ipm yWSrSDMZ1JGbiZk4M/jSiTOUCaJzWbJj1iNW37Ht2LM7tuAgioOZNPqAIoePCFZEBUkj B0WKhpxDJWwAKbGxv0AbDpTU7jhkMLxLxF3VSD+dSn1KD0inU6mU17PU+xjM71JtfMzC UtVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=9noxdAH/DJOJ2FYayyiyYQz8DnKHvszaUU/XpncZrgo=; b=Ww9NGaqfnWI+88JqnZrmBD3W6a7Ty79pv31U9bKRnvZ7LVAC3eryq3+S0Me6o81GeQ RFPw4F0ZYb8871cDSzi+DwwmGqJV7LfjHdX/8KxsIsk1sqRf0ZHVZFPgSroXn4E5Rtdx 8yKqYscyRsmXUo0J5eba9+JXJZoaOZaABQVOfaAGSN6N7ZBlKwve957ZDnJynvok4R56 FkYdc9PV+qQMSOZhNqvJHakGk02JEKxrDPp5FjeWesbHTp9GdqSy4Ziq6+QQ5L1WC68x 7M8pwpbVPWyeEmFh08FsAfgYDP3rFn9u09Ou1Ribn/uRrtKAdhc9ZyFoBSqthrYxRjdk ckZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Gh9uHUEw; spf=pass (google.com: domain of 3y2hqxaokcfqw9zd0k69h72aa270.ya8749gj-886hwy6.ad2@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3Y2HQXAoKCFQw9zD0K69H72AA270.yA8749GJ-886Hwy6.AD2@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id z6sor8672887qve.15.2019.05.06.09.31.31 for (Google Transport Security); Mon, 06 May 2019 09:31:31 -0700 (PDT) Received-SPF: pass (google.com: domain of 3y2hqxaokcfqw9zd0k69h72aa270.ya8749gj-886hwy6.ad2@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Gh9uHUEw; spf=pass (google.com: domain of 3y2hqxaokcfqw9zd0k69h72aa270.ya8749gj-886hwy6.ad2@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3Y2HQXAoKCFQw9zD0K69H72AA270.yA8749GJ-886Hwy6.AD2@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com 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=9noxdAH/DJOJ2FYayyiyYQz8DnKHvszaUU/XpncZrgo=; b=Gh9uHUEwhI8X3KH3oum4TP3+K5YcLVeFgNxy28sxooe9hD0KxqO+/9bu9ASe+gwO9m +npnzk9MzBx/G95AnHz8npJA2JLqfUYczohkOpf1cDAEGWB/X7jH7ATuoeQyoUMeyaJE M+s2UJpwoXBo6kJQ8MvPZRd/OM9IAl3ZUMX+L/PvePvsqcjFIcb/KoU1n2dvqK/g4dyS WX9LAM4MfJzSphXX3HTjOHZ2WfucwXBSdBhXaGaeltxjREoqu7g25XXVhrt4uPYNQRup Pi925C63hraEJZZpZwP5S6UZPdegfoPkW1yuXxVcy9QEkU3hg9EUu8QmKcerWhcvmd7i pz0w== X-Google-Smtp-Source: APXvYqxoF+XMyoqlEFPsaust8CXG+VIOr8CluDz21rRB5hrxS5C2Phu1lQB5er/vngGdw0Qf3GTM8MJuymHjvFcO X-Received: by 2002:ad4:540b:: with SMTP id f11mr5876305qvt.42.1557160291702; Mon, 06 May 2019 09:31:31 -0700 (PDT) Date: Mon, 6 May 2019 18:30:54 +0200 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.1020.gf2820cf01a-goog Subject: [PATCH v15 08/17] mm, arm64: 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 , Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Robin Murphy , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 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. 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);