Re: [tip:x86/urgent] x86, cpu, amd: Add workaround for family 16h,erratum 793

From: H. Peter Anvin
Date: Tue Jan 14 2014 - 19:55:14 EST


On 01/14/2014 04:45 PM, tip-bot for Borislav Petkov wrote:
> + rdmsrl(MSR_AMD64_LS_CFG, val);
> + if (!(val & BIT(15)))
> + wrmsrl(MSR_AMD64_LS_CFG, val | BIT(15));

Incidentally, I'm wondering if we shouldn't have a
set_in_msr()/clear_in_msr() set of functions which would incorporate the
above construct:

void set_in_msr(u32 msr, u64 mask)
{
u64 old, new;

old = rdmsrl(msr);
new = old | mask;
if (old != new)
wrmsrl(msr, new);
}

... and the obvious equivalent for clear_in_msr().

The perhaps only question is if it should be "set/clear_bit_in_msr()"
rather than having to haul a full 64-bit mask in the common case.

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/