|
|
@@ -226,8 +226,13 @@ void isa207_get_mem_weight(u64 *weight)
|
|
|
u64 mmcra = mfspr(SPRN_MMCRA);
|
|
|
u64 exp = MMCRA_THR_CTR_EXP(mmcra);
|
|
|
u64 mantissa = MMCRA_THR_CTR_MANT(mmcra);
|
|
|
+ u64 sier = mfspr(SPRN_SIER);
|
|
|
+ u64 val = (sier & ISA207_SIER_TYPE_MASK) >> ISA207_SIER_TYPE_SHIFT;
|
|
|
|
|
|
- *weight = mantissa << (2 * exp);
|
|
|
+ if (val == 0 || val == 7)
|
|
|
+ *weight = 0;
|
|
|
+ else
|
|
|
+ *weight = mantissa << (2 * exp);
|
|
|
}
|
|
|
|
|
|
int isa207_get_constraint(u64 event, unsigned long *maskp, unsigned long *valp)
|