From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Thu, 17 Jul 2014 17:53:54 +0200 Subject: [PATCH 0/3] ARM: mvebu: disable I/O coherency on !SMP In-Reply-To: <20140717153401.GX21766@n2100.arm.linux.org.uk> References: <1404318070-8503-1-git-send-email-thomas.petazzoni@free-electrons.com> <10673994.kkICTRHJxL@wuerfel> <20140717153401.GX21766@n2100.arm.linux.org.uk> Message-ID: <5105942.b7kcvNdlC8@wuerfel> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thursday 17 July 2014 16:34:01 Russell King - ARM Linux wrote: > On Thu, Jul 17, 2014 at 04:40:21PM +0200, Arnd Bergmann wrote: > > On Thursday 17 July 2014 15:27:20 Will Deacon wrote: > > > Just an FYI, but I've had to check internally to clarify the behaviour > > > around TLB conflict aborts. We're changing live page tables here, but the > > > *only* thing to differ is the output address, which I would hope is ok but > > > need to check to be sure. > > > > The two cases are slightly different: > > > > - The existing keystone code changes the output address but not the flags > > - The hypothetical mvebu code needs to change the flags but not the address. > > Don't base too much confidence in the keystone code: What I meant was that verifying the correctness of one of the two above with the architecture team doesn't mean that the other one is okay too. > map_start = init_mm.start_code; > map_end = init_mm.brk; > > phys = __pa(map_start) & PMD_MASK; > do { > ... > phys += PMD_SIZE; > } while (phys < map_end); > > Consider what happens when map_end is not PMD aligned - it misses the > PMD covering the end of the kernel BSS, which will be quite a common > case. Obviously something that needs fixing... Ouch. Arnd