Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754867AbdIHHNh (ORCPT ); Fri, 8 Sep 2017 03:13:37 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:43798 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754298AbdIHHNg (ORCPT ); Fri, 8 Sep 2017 03:13:36 -0400 Date: Fri, 8 Sep 2017 00:13:35 -0700 From: Christoph Hellwig To: Tycho Andersen Cc: Christoph Hellwig , linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-hardening@lists.openwall.com, Marco Benatto , Juerg Haefliger , Konrad Rzeszutek Wilk Subject: Re: [PATCH v6 04/11] swiotlb: Map the buffer if it was unmapped by XPFO Message-ID: <20170908071334.GA9869@infradead.org> References: <20170907173609.22696-1-tycho@docker.com> <20170907173609.22696-5-tycho@docker.com> <20170907181015.GA9557@infradead.org> <20170907184414.ow7av6wt5vht6pnd@docker> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170907184414.ow7av6wt5vht6pnd@docker> User-Agent: Mutt/1.8.3 (2017-05-23) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 895 Lines: 23 On Thu, Sep 07, 2017 at 12:44:14PM -0600, Tycho Andersen wrote: > On Thu, Sep 07, 2017 at 11:10:15AM -0700, Christoph Hellwig wrote: > > > - if (PageHighMem(pfn_to_page(pfn))) { > > > + if (PageHighMem(page) || xpfo_page_is_unmapped(page)) { > > > > Please don't sprinkle xpfo details over various bits of code. > > > > Just add a helper with a descriptive name, e.g. > > > > page_is_unmapped() > > > > that also includes the highmem case, as that will easily document > > what this check is doing. > > Will do, thanks. > > Patch 7 has a similar feel to this one, I can add a wrapper around > __clean_dcache_area_pou() if that makes sense? That one is in low-level ARM code so I'm not that worried. But in general it seems like we should simply have one interface to check if a page has a kernel mapping or not, nad map/unmap it if not instead of distinguishing between highmem and xpfo.