On Tue, Nov 05, 2024 at 04:57:57PM +0100, Phil Dennis-Jordan wrote: > The handling for CPUID function 0xD (supported XSAVE features) was > improved in a recent patch. Unfortunately, this appears to have > introduced undefined behaviour for cases where ecx > 30, as the result > of (1 << idx) is undefined if idx > 30. > > Per Intel SDM section 13.2, the behaviour for ecx values up to and > including 62 are specified. This change therefore specifically sets > all registers returned by the CPUID instruction to 0 for 63 and higher. > Furthermore, the bit shift uses uint64_t, where behaviour for the entire > range of 2..62 is safe and correct. >
Thanks for correcting the regression. Reviewed-by: Roman Bolshakov <rbolsha...@ddn.com>