Re: [PATCH v4 6/7] mtrr, x86: Clean up mtrr_type_lookup()

Borislav Petkov
2015-05-07T07:52:18Z

On Wed, May 06, 2015 at 05:42:10PM -0600, Toshi Kani wrote:
> Well, creating mtrr_type_lookup_fixed() is one of the comments I had in
> the previous code review. Anyway, let me make sure if I understand your
> comment correctly. Do the following changes look right to you?
>
> 1) Change the caller responsible for the condition checks.
>
> if ((start < 0x100000) &&
> (mtrr_state.have_fixed) &&
> (mtrr_state.enabled & MTRR_STATE_MTRR_FIXED_ENABLED))
> return mtrr_type_lookup_fixed(start, end);
>
> 2) Delete the checks with mtrr_state in mtrr_type_lookup_fixed() as they
> are done by the caller. Keep the check with '(start >= 0x100000)' to
> assure that the code handles the range [0xC0000 - 0xFFFFF] correctly.

That is a good defensive measure.

> static u8 mtrr_type_lookup_fixed(u64 start, u64 end)
> {
> int idx;
>
> if (start >= 0x100000)
> return MTRR_TYPE_INVALID;
>
> - if (!(mtrr_state.have_fixed) ||
> - !(mtrr_state.enabled & MTRR_STATE_MTRR_FIXED_ENABLED))
> - return MTRR_TYPE_INVALID;

Yeah, that's what I mean.

Thanks.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--