From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934385AbdC3QUD (ORCPT ); Thu, 30 Mar 2017 12:20:03 -0400 Received: from foss.arm.com ([217.140.101.70]:49674 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933794AbdC3QUB (ORCPT ); Thu, 30 Mar 2017 12:20:01 -0400 Date: Thu, 30 Mar 2017 17:20:16 +0100 From: Will Deacon To: Lorenzo Pieralisi Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Bjorn Helgaas , Arnd Bergmann , Catalin Marinas , Russell King , Pratyush Anand , Jingoo Han , Mingkai Hu , John Garry , Tanmay Inamdar , Murali Karicheri , Bharat Kumar Gogada , Ray Jui , Wenrui Li , Shawn Lin , Minghuan Lian , Jon Mason , Gabriele Paoloni , Thomas Petazzoni , Joao Pinto , Thierry Reding , Michal Simek , Stanimir Varbanov , Zhou Wang , Roy Zang , "Luis R. Rodriguez" Subject: Re: [PATCH v2 07/22] PCI: ECAM: use ioremap_nopost() to map config region Message-ID: <20170330162015.GB5623@arm.com> References: <20170327094954.7162-1-lorenzo.pieralisi@arm.com> <20170327094954.7162-8-lorenzo.pieralisi@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170327094954.7162-8-lorenzo.pieralisi@arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 27, 2017 at 10:49:35AM +0100, Lorenzo Pieralisi wrote: > Current ECAM kernel implementation uses ioremap() to map the ECAM > configuration space memory region; this is not safe in that on some > architectures the ioremap interface provides mappings that allow posted > write transactions. This, as highlighted in the PCIe specifications > (4.0 - Rev0.3, "Ordering Considerations for the Enhanced Configuration > Address Mechanism"), can create ordering issues for software because > posted writes transactions on the CPU host bus are non posted in the > PCI express fabric. > > Update the ioremap() interface to use ioremap_nopost() whose > mapping attributes guarantee that non-posted writes transactions > are issued for memory writes within the ECAM memory mapped address > region. > > Signed-off-by: Lorenzo Pieralisi > Cc: Bjorn Helgaas > --- > drivers/pci/ecam.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Acked-by: Will Deacon Will