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

Toshi Kani
2015-05-07T14:04:14Z

On Thu, 2015-05-07 at 09:52 +0200, Borislav Petkov wrote:
> 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 for the clarification! Will change accordingly.
-Toshi