Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754746AbdLFJpR (ORCPT ); Wed, 6 Dec 2017 04:45:17 -0500 Received: from mail-vk0-f67.google.com ([209.85.213.67]:33828 "EHLO mail-vk0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754150AbdLFJpO (ORCPT ); Wed, 6 Dec 2017 04:45:14 -0500 X-Google-Smtp-Source: AGs4zMZYyVfSkoaDRvKTcoVdkZ3laEF/jxHzmsEeyz+NMnugsymtjMDe8izH+0NH8g9My9OCLInSRf5BEzFaAaM2F0Y= MIME-Version: 1.0 In-Reply-To: References: <20171204142553.GA3344@pjb1027-Latitude-E5410> From: Jinbum Park Date: Wed, 6 Dec 2017 18:45:13 +0900 Message-ID: Subject: Re: [kernel-hardening][PATCH v3 1/3] arm: mm: dump: make page table dumping reusable To: Kees Cook Cc: linux-arm-kernel@lists.infradead.org, LKML , kernel-hardening@lists.openwall.com, Afzal Mohammed , Mark Rutland , Laura Abbott , Russell King , Greg KH , Vladimir Murzin , Arnd Bergmann Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1438 Lines: 47 >> +#ifndef __ASM_PTDUMP_H >> +#define __ASM_PTDUMP_H >> + >> +#ifdef CONFIG_ARM_PTDUMP_CORE > > Is this #ifdef needed? I think this file is only included in dump.c > and ptdump_debugfs.c, both of which are only built when > CONFIG_ARM_PTDUMP_CORE is defined. Looking at next patch in this patch-set series ([PATCH v3 3/3] arm: mm: dump: add checking for writable and executable pages), Not only dump.c and ptdump_debugfs.c but also arch/arm/mm/init.c include this file (ptdump.h) to call debug_checkwx(). mm/init.c is not built only when CONFIG_ARM_PTDUMP_CORE is defined. So, This #ifdef seems not be needed for this patch, but is needed for this patch-set series. >> +static int ptdump_init(void) >> +{ >> + ptdump_initialize(); >> + return ptdump_debugfs_register(&kernel_ptdump_info, >> + "kernel_page_tables"); > > This changes the return value of ptdump_init. This should do similar > to what was done before: > > return ptdump_debugfs_register(&kernel_ptdump_info, > "kernel_page_tables") ? 0 : -ENOMEM; ptdump_debugfs_register() already returns what you think. >> +int ptdump_debugfs_register(struct ptdump_info *info, const char *name) >> +{ >> + struct dentry *pe; >> + >> + pe = debugfs_create_file(name, 0400, NULL, info, &ptdump_fops); >> + return pe ? 0 : -ENOMEM; >> + >> +} So "return ptdump_debugfs_register(~~)" is fine. Thanks. Jinbum Park.