Message ID | 1414466730-15591-4-git-send-email-imunsie@au.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 03f54397976581e71a3294ac0e6dfcf4aa36e539 |
Delegated to: | Michael Ellerman |
Headers | show |
Ian Munsie <imunsie@au1.ibm.com> writes: > From: Ian Munsie <imunsie@au1.ibm.com> > > This patch makes copro_calculate_slb mask the ESID by the correct mask > for 1T vs 256M segments. > > This has no effect by itself as the extra bits were ignored, but it > makes debugging the segment table entries easier and means that we can > directly compare the ESID values for duplicates without needing to worry > about masking in the comparison. > > This will be used to simplify a comparison in the following patch. > > Signed-off-by: Ian Munsie <imunsie@au1.ibm.com> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> > --- > arch/powerpc/mm/copro_fault.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c > index 0f9939e..5a236f0 100644 > --- a/arch/powerpc/mm/copro_fault.c > +++ b/arch/powerpc/mm/copro_fault.c > @@ -99,8 +99,6 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) > u64 vsid; > int psize, ssize; > > - slb->esid = (ea & ESID_MASK) | SLB_ESID_V; > - > switch (REGION_ID(ea)) { > case USER_REGION_ID: > pr_devel("%s: 0x%llx -- USER_REGION_ID\n", __func__, ea); > @@ -133,6 +131,7 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) > vsid |= mmu_psize_defs[psize].sllp | > ((ssize == MMU_SEGSIZE_1T) ? SLB_VSID_B_1T : 0); > > + slb->esid = (ea & (ssize == MMU_SEGSIZE_1T ? ESID_MASK_1T : ESID_MASK)) | SLB_ESID_V; > slb->vsid = vsid; > > return 0; > -- > 2.1.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c index 0f9939e..5a236f0 100644 --- a/arch/powerpc/mm/copro_fault.c +++ b/arch/powerpc/mm/copro_fault.c @@ -99,8 +99,6 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) u64 vsid; int psize, ssize; - slb->esid = (ea & ESID_MASK) | SLB_ESID_V; - switch (REGION_ID(ea)) { case USER_REGION_ID: pr_devel("%s: 0x%llx -- USER_REGION_ID\n", __func__, ea); @@ -133,6 +131,7 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) vsid |= mmu_psize_defs[psize].sllp | ((ssize == MMU_SEGSIZE_1T) ? SLB_VSID_B_1T : 0); + slb->esid = (ea & (ssize == MMU_SEGSIZE_1T ? ESID_MASK_1T : ESID_MASK)) | SLB_ESID_V; slb->vsid = vsid; return 0;