David Gibson <da...@gibson.dropbear.id.au> wrote on 06/27/2016 12:32:13 AM:
> From: David Gibson <da...@gibson.dropbear.id.au> > To: alar...@ddci.com > Cc: ag...@suse.de, qemu-devel@nongnu.org, qemu-...@nongnu.org > Date: 06/27/2016 12:30 AM > Subject: Re: [PATCH] target-ppc: Eliminate redundant and incorrect function booke206_page_size_to_tlb > > On Sun, Jun 26, 2016 at 09:38:03PM -0500, alar...@ddci.com wrote: > > David Gibson <da...@gibson.dropbear.id.au> wrote on 06/26/2016 08:36:52 > > PM: > > > > > From: David Gibson <da...@gibson.dropbear.id.au> > > > To: Aaron Larson <alar...@ddci.com> > > > Cc: ag...@suse.de, qemu-devel@nongnu.org, qemu-...@nongnu.org > > > Date: 06/26/2016 08:58 PM > > > Subject: Re: [PATCH] target-ppc: Eliminate redundant and incorrect > > function booke206_page_size_to_tlb > > > > > > On Fri, Jun 24, 2016 at 12:11:00PM -0700, Aaron Larson wrote: > > > > > > > > Eliminate redundant and incorrect booke206_page_size_to_tlb function > > > > from ppce500_spin.c in preference to previously existing but newly > > > > exported definition from e500.c > > > > > > > > Signed-off-by: Aaron Larson <alar...@ddci.com> > > > > > > Uh.. sorry.. can you provide a reference explaining why the removed > > > version is wrong? Doesn't this depend on which MMU Architecture > > > Version we're emulating? > > > > Sure, the code is internally inconsistent (shift assumed didn't match > > shift defined). I will provide an update commit message, similar to the > > original posting I made a few days ago with the "direction" > > corrected. > > Right, I can see that the two old versions were different, which was > clearly wrong. What I'm looking for is an explanation of why the one > you've picked is the right one, not the other one. How's this? Eliminate redundant and incorrect booke206_page_size_to_tlb function from ppce500_spin.c in preference to previously existing but newly exported definition from e500.c The booke206_page_size_to_tlb function in e500.c was updated in commit 2bd9543cd303d9f6cbd37b7466bb03543035156b to reflect a change in the definition of MAS1_TSIZE_SHIFT from 8 (corresponding to a min TLB page size of 4kb) to a value of 7 (TLB page size 2k). The booke206_page_size_to_tlb() function defined in ppce500_spin.c was never updated to reflect the change in MAS1_TSIZE_SHIFT. In http://lists.nongnu.org/archive/html/qemu-ppc/2016-06/msg00533.html, Scott Wood suggested this "root cause" explanation: SW> The patch that changed MAS1_TSIZE_SHIFT from 8 to 7 was around the SW> same time as the patch that added this code, which is probably why SW> adjusting it got missed. Commit 2bd9543cd3 did update the SW> equivalent code in ppce500_mpc8544ds.c, which now resides in SW> hw/ppc/e500.c and has been changed to not assume a power-of-2 SW> size. The ppce500_spin version should be eliminated.