Currently the tc_id code is:
(read_c0_tcbind() >> TCBIND_CURTC_SHIFT) & TCBIND_CURTC;
After processing this becomes:
(read_c0_tcbind() >> 21) & ((0xff) << 21)
But it should be:
(read_c0_tcbind() & ((0xff)<< 21)) >> 21
Signed-off-by: RongQing.Li <roy.qing.li@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/4077/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
c->vpe_id = (read_c0_tcbind() >> TCBIND_CURVPE_SHIFT) & TCBIND_CURVPE;
#endif
#ifdef CONFIG_MIPS_MT_SMTC
- c->tc_id = (read_c0_tcbind() >> TCBIND_CURTC_SHIFT) & TCBIND_CURTC;
+ c->tc_id = (read_c0_tcbind() & TCBIND_CURTC) >> TCBIND_CURTC_SHIFT;
#endif
}