From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: From: David Laight To: 'Catalin Marinas' , Matt Sealey Subject: RE: framebuffer corruption due to overlapping stp instructions on arm64 Date: Wed, 8 Aug 2018 13:02:54 +0000 Message-ID: References: <20180803094129.GB17798@arm.com> <20180808121641.GB24736@iMac.local> In-Reply-To: <20180808121641.GB24736@iMac.local> MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Petazzoni , Joao Pinto , Ard Biesheuvel , linux-pci , Will Deacon , Russell King , Linux Kernel Mailing List , Mikulas Patocka , Jingoo Han , linux-arm-kernel Content-Type: text/plain; charset="us-ascii" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+bjorn=helgaas.com@lists.infradead.org List-ID: From: Catalin Marinas > Sent: 08 August 2018 13:17 ... > I think hazarding is what goes wrong here, especially since with > overlapping unaligned addresses. However, I disagree that it is > impossible to implement this properly on a platform with PCIe so that > Normal NC mappings can be used. I've been trying to follow this discussion... Is the problem just that reads don't snoop/flush the write-combining buffer? Aligned writes that end on an appropriate boundary will leave the write combining buffer empty. But if the buffer isn't emptied the PCIe read gets ahead of the PCIe write. ISTR even x86 requires a fence instruction in some sequence associated with write-combining writes. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel