Hi,

We use linux kernel 2.4.20 on ppc405 and the system hangs once in a while when isync gets called in this function:

_GLOBAL(_nmask_and_or_msr)
    mfmsr   r0      /* Get current msr */
    andc    r0,r0,r3    /* And off the bits set in r3 (first parm) */
    or  r0,r0,r4    /* Or on the bits in r4 (second parm) */
    sync            /* Some chip revs have problems here... */
    isync
    mtmsr   r0      /* Update machine state */
    isync
    blr         /* Done */

 2.5 onwards, I find that "sync; isync" has been replaced by a macro SYNC (defined only for 601). I don't find it in any changelog and reason for the change.

Can someone give some information on this change?

Appreciate any help.
Manoj