On Apr 5, 2013, at 2:53 AM, Bhushan Bharat-R65777 wrote: > Hi Kumar/Benh, > > After further looking into the code I think that if we correct the vector range below in DebugDebug handler then we do not need the change I provided in this patch. > > Here is the snapshot for 32 bit (head_booke.h, same will be true for 64 bit): > > #define DEBUG_DEBUG_EXCEPTION \ > START_EXCEPTION(DebugDebug); \ > DEBUG_EXCEPTION_PROLOG; \ > \ > /* \ > * If there is a single step or branch-taken exception in an \ > * exception entry sequence, it was probably meant to apply to \ > * the code where the exception occurred (since exception entry \ > * doesn't turn off DE automatically). We simulate the effect \ > * of turning off DE on entry to an exception handler by turning \ > * off DE in the DSRR1 value and clearing the debug status. \ > */ \ > mfspr r10,SPRN_DBSR; /* check single-step/branch taken */ \ > andis. r10,r10,(DBSR_IC|DBSR_BT)@h; \ > beq+ 2f; \ > \ > lis r10,KERNELBASE@h; /* check if exception in vectors */ \ > ori r10,r10,KERNELBASE@l; \ > cmplw r12,r10; \ > blt+ 2f; /* addr below exception vectors */ \ > \ > lis r10,DebugDebug@h; \ > ori r10,r10,DebugDebug@l; \ > > ^^^^ > Here we assume all exception vector ends at DebugDebug, which is not correct. > We probably should get proper end by using some start_vector and end_vector lebels > or at least use end at Ehvpriv (which is last defined in head_fsl_booke.S for PowerPC. Is that correct? > > > cmplw r12,r10; \ > bgt+ 2f; /* addr above exception vectors */ \ > > Thanks > -Bharat I talked to Stuart and this general approach is good. Just make sure to update both head_44x.S and head_fsl_booke.S. Plus do this for both DEBUG_CRIT_EXCEPTION & DEBUG_DEBUG_EXCEPTION - k-- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html