From patchwork Thu Dec 6 12:24:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10715731 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 B14531731 for ; Thu, 6 Dec 2018 12:24:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A08542D17C for ; Thu, 6 Dec 2018 12:24:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 93A242D325; Thu, 6 Dec 2018 12:24:58 +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=unavailable 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 6F9612D17C for ; Thu, 6 Dec 2018 12:24:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA8B16B79EF; Thu, 6 Dec 2018 07:24:52 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CE18D6B79F0; Thu, 6 Dec 2018 07:24:52 -0500 (EST) 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 BA9396B79F1; Thu, 6 Dec 2018 07:24:52 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by kanga.kvack.org (Postfix) with ESMTP id 5ADF96B79EF for ; Thu, 6 Dec 2018 07:24:52 -0500 (EST) Received: by mail-wm1-f69.google.com with SMTP id y74so8559364wmc.0 for ; Thu, 06 Dec 2018 04:24:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QE+Q4nZZeBuS5Au8e+/piROKf4cgt6sP42L8SlWJEXM=; b=RtqzrS7grH/GF9dX8SI2rtiekkhDZ+4WRCQi/vvYxPXUqh12i+8xpbY2kzoYNCZA4Y srGXfORSG7B7efSte6HQCRmZr5vdb+Ff0aCl0ZLkHEFS+vfVT/7FaIB3GdzxKPmAGQfe 2VcMSYlYqFTzqzU9unj8Ppqr0augw9LwNE8lsitLC7JhZ3GDhMgPjgAxaTcUD4SsQIhJ Mk3F96ap+xdk7+4c80UDQoNPdT1AjR8+hdvDG/0N/ceofm0bO2jEXlBQ3HpBRa/v8VSh 1IACaoVY3ZhLiJbgUByTOgGST6gg4J1sOTFgpv2eBnvmgXhkPoH/7WpNrwp/ZLdloviG EYAQ== X-Gm-Message-State: AA+aEWZei1/vJesHzim1evJDcpNRCVJT7A8gdcqLqUNXDIgcuRxGH5Tz chk7td7kHJhnm5qzBV2QEcHJzjtgWVX7wGZt6wC2V/Ej5xW9UmyrdRcYPIRcvFi8D1xWXTRW3VX 20zVXM7fcUxgpUN20kdrFIqQ+IE3/SbtWg7ljNiutr9xUm7OFhri4fgNN+LbbA6AfDEZKa6yksK SOglUeonSSdOHJOrR3dckyZBvuhkS5NlplfYFep0VVkvU5CBnHkxZ3+6xYCgLETaw0FXFZtNGdK pSJkbK2rwJ+R0+PgEobzy7atnfyMZdTANvPJQrzKn6HhInCB1B+ACG9TQq0UBms60TwAunnP9Cx nSNtmaSEg5Yxsy5Xk42wh9NldbFiAgVqCLMbwAppNkvbGYiK6wX5uKPyI7ZvLHfXy9TJbijnULM 1 X-Received: by 2002:adf:9521:: with SMTP id 30mr23779125wrs.192.1544099091717; Thu, 06 Dec 2018 04:24:51 -0800 (PST) X-Received: by 2002:adf:9521:: with SMTP id 30mr23779091wrs.192.1544099090904; Thu, 06 Dec 2018 04:24:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544099090; cv=none; d=google.com; s=arc-20160816; b=cPgKkg+69Muep8Ft00gRanrIgPSA4BKuNBKq3hsN/H4jfBNDRwpbb8fZ05/jIGtw5U 7YXTDWIx8ABch67eDYFTlSenuiH1BZUqbHzOOVay0sy7wQg3FnvXzW2GK05EWyZwgZdJ bVxBSLuym0l/HK/x8PkluhW3uL6QO0nsJmotr+nGpMkBXeOP3xLw0PV03/yGeY4OCVLV fBssnw5iz0yL6LHn23DbSY2JMW90z2ltDICv2tJXHdHHvfbudl0QwsfW17qbidOl522l ckr66v+YCp513PrqtylE+K0CrEM0I4Uz12NErMCKm39TfNJRrvppis6U9K15VQGCAT9m caog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=QE+Q4nZZeBuS5Au8e+/piROKf4cgt6sP42L8SlWJEXM=; b=sW8+rFohrbXJoh7Mxn6A+O/3GeQdh9C0FlIpO2VSrma1kC1Clzqo0fFHK/8VONTh8c 8SX7jFTEPnJrnzlBZiIPWKgP4TfVU5wyk3SGO9ydGTCajOCe4cIMiOvMQN7seXzQEhQw jLlVo3K5NMnh1qUw6Xh0sSQDG6EmI+a0uKBHDxgorzwdrWgYsaMo/uT6iX0Pe0BSWhQs L020q/b7OPNK04SZ9nQgydPMSPmPGK0PQLz+b+jKQJpQCFhJXOM94fxoBnCMI3uHjYj8 vO7iN47Tg7+PhdwO1ALaJbiREhMcMCAqIo5U6CuQGtJzLbPM6QjGrUMAuJC3XY7nj4A2 /xRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=wVfJoDn2; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id y15sor177318wrd.35.2018.12.06.04.24.50 for (Google Transport Security); Thu, 06 Dec 2018 04:24:50 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=wVfJoDn2; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QE+Q4nZZeBuS5Au8e+/piROKf4cgt6sP42L8SlWJEXM=; b=wVfJoDn2JNGToLJ7T1uR10yBYoDyUvZHDPfnc33migagJxNgK+X3SnnMPkKaXVWcF5 v6DU0pyjTpUKWwu0GEPHwrHDIrKhpC24bXdBcz+YJcAfaB/02+ok4ph+SNNgl1+MJDM4 2PaoZbYfH88/GrmDHUvLd2wPovhStnou6VwHZqIxFuXbq1dEWnuoMs68mCqn/3V8dT/m r/FsTY+w6qZiGf1nry8kOTCuRubMXKayBenfsABcza7lF8t6/ApNTC0pVXwtJVEzfn/w 2gGTTyhI6k4TX6dIeS1j4PSmYrg9rFHuvrEsBSU5NzDgCEnyQyIViFt+X8uGtgGXYdIf dcIw== X-Google-Smtp-Source: AFSGD/UAxL1TxZ6RYc2RrvhCYipZjB8cIoKC8RPAEZ0NrTXPhYFAwqyGlH1xcwr5wkyHaLQL8hqwWw== X-Received: by 2002:adf:f091:: with SMTP id n17mr9677058wro.292.1544099090436; Thu, 06 Dec 2018 04:24:50 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:3180:41f8:3010:ff61]) by smtp.gmail.com with ESMTPSA id j8sm339988wrt.40.2018.12.06.04.24.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Dec 2018 04:24:49 -0800 (PST) From: Andrey Konovalov To: Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Christoph Lameter , Andrew Morton , Mark Rutland , Nick Desaulniers , Marc Zyngier , Dave Martin , Ard Biesheuvel , "Eric W . Biederman" , Ingo Molnar , Paul Lawrence , Geert Uytterhoeven , Arnd Bergmann , "Kirill A . Shutemov" , Greg Kroah-Hartman , Kate Stewart , Mike Rapoport , kasan-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sparse@vger.kernel.org, linux-mm@kvack.org, linux-kbuild@vger.kernel.org Cc: Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Jann Horn , Mark Brand , Chintan Pandya , Vishwath Mohan , Andrey Konovalov Subject: [PATCH v13 02/25] kasan, slub: handle pointer tags in early_kmem_cache_node_alloc Date: Thu, 6 Dec 2018 13:24:20 +0100 Message-Id: X-Mailer: git-send-email 2.20.0.rc1.387.gf8505762e3-goog In-Reply-To: References: MIME-Version: 1.0 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 The previous patch updated KASAN hooks signatures and their usage in SLAB and SLUB code, except for the early_kmem_cache_node_alloc function. This patch handles that function separately, as it requires to reorder some of the initialization code to correctly propagate a tagged pointer in case a tag is assigned by kasan_kmalloc. Signed-off-by: Andrey Konovalov --- mm/slub.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index fdd4a86aa882..8561a32910dd 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -3364,16 +3364,16 @@ static void early_kmem_cache_node_alloc(int node) n = page->freelist; BUG_ON(!n); - page->freelist = get_freepointer(kmem_cache_node, n); - page->inuse = 1; - page->frozen = 0; - kmem_cache_node->node[node] = n; #ifdef CONFIG_SLUB_DEBUG init_object(kmem_cache_node, n, SLUB_RED_ACTIVE); init_tracking(kmem_cache_node, n); #endif - kasan_kmalloc(kmem_cache_node, n, sizeof(struct kmem_cache_node), + n = kasan_kmalloc(kmem_cache_node, n, sizeof(struct kmem_cache_node), GFP_KERNEL); + page->freelist = get_freepointer(kmem_cache_node, n); + page->inuse = 1; + page->frozen = 0; + kmem_cache_node->node[node] = n; init_kmem_cache_node(n); inc_slabs_node(kmem_cache_node, node, page->objects);