Hi,
I try to trace problems with prom and SMP. I wonder what actually
the restore_current() function does (it restores g6 register, but I do
not understand why).
The restore_current() uses the macro below, which seems to have the first
line redundant unless some magic is involved. The __b_load_current load
is overwritten by the boot_cpu_id4 load in the third line.
/* Blackbox - take care with this... - check smp4m and smp4d before changing
this. */
#define LOAD_CURRENT(dest_reg, idreg) \
sethi %hi(___b_load_current), %idreg; \
sethi %hi(current_set), %dest_reg; \
sethi %hi(boot_cpu_id4), %idreg; \
or %dest_reg, %lo(current_set), %dest_reg; \
ldub [%idreg + %lo(boot_cpu_id4)], %idreg; \
ld [%idreg + %dest_reg], %dest_reg;
Regards,
Krzysztof
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html