Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754532AbdIHO6P (ORCPT ); Fri, 8 Sep 2017 10:58:15 -0400 Received: from mail-it0-f50.google.com ([209.85.214.50]:45176 "EHLO mail-it0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750842AbdIHO6O (ORCPT ); Fri, 8 Sep 2017 10:58:14 -0400 X-Google-Smtp-Source: AOwi7QCllcDnDRxVjS70c9kZ4mm7jx/eE8LlM4m4zVxIxRHtNkfAJ67UFzSkIPSpMb93YI61kAu61Q== Date: Fri, 8 Sep 2017 08:58:11 -0600 From: Tycho Andersen To: Christoph Hellwig Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-hardening@lists.openwall.com, Marco Benatto , Juerg Haefliger , x86@kernel.org Subject: Re: [PATCH v6 03/11] mm, x86: Add support for eXclusive Page Frame Ownership (XPFO) Message-ID: <20170908145811.updwpzx6fj7w2m4x@smitten> References: <20170907173609.22696-1-tycho@docker.com> <20170907173609.22696-4-tycho@docker.com> <20170908075140.GB4957@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170908075140.GB4957@infradead.org> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1329 Lines: 49 On Fri, Sep 08, 2017 at 12:51:40AM -0700, Christoph Hellwig wrote: > > +#include > > > > #include > > > > @@ -55,24 +56,34 @@ static inline struct page *kmap_to_page(void *addr) > > #ifndef ARCH_HAS_KMAP > > static inline void *kmap(struct page *page) > > { > > + void *kaddr; > > + > > might_sleep(); > > - return page_address(page); > > + kaddr = page_address(page); > > + xpfo_kmap(kaddr, page); > > + return kaddr; > > } > > > > static inline void kunmap(struct page *page) > > { > > + xpfo_kunmap(page_address(page), page); > > } > > > > static inline void *kmap_atomic(struct page *page) > > { > > + void *kaddr; > > + > > preempt_disable(); > > pagefault_disable(); > > - return page_address(page); > > + kaddr = page_address(page); > > + xpfo_kmap(kaddr, page); > > + return kaddr; > > } > > It seems to me like we should simply direct to pure xpfo > implementations for the !HIGHMEM && XPFO case. - that is > just have the prototypes for kmap, kunmap and co in > linux/highmem.h and implement them in xpfo under those names. > > Instead of sprinkling them around. Ok, IIUC we'll still need a #ifdef CONFIG_XPFO in this file, but at least the implementations here won't have a diff. I'll make this change, and all the others you've suggested. Thanks! Tycho