On Mon, Mar 24, 2014 at 01:47:55PM -0700, H. Peter Anvin wrote: > On 03/24/2014 12:52 PM, Neil Horman wrote: > >> > > To add an extra sanity check in rte_get_flag_enabled. If we were moving to > > the > > use of C99 initalizers, I wanted something to catch the possibility that we > > skip > > a flag by accident (i.e. leave a zero initalized hole in the array). > > Except 0 > > from my read is a valid value for all the fields of the array. So I bumped > > up > > the cpuid register enum by one and wrapped it in a macro. That way we can > > test > > for !feat->reg as an indicator that we're requesting feature support for a > > flag > > thats not listed in the array. > > It actually isn't: there aren't any flags in CPUID leaf 0, so since the > code only looks for bits it'd be perfectly okay to reject leaf 0. > > Another thing that I noted is that the code doesn't actually check that > any particular leaf is valid (by checking the maximum leaf number in > CPUID leaf 0xXXXX0000:EAX). Especially for the leaf 7 features this > could result in false positives, which obviously would be disastrous. > Thanks, I'll improve this checking today.
> -hpa > > >