I am a bit concerned about this patch:
1. it silently changes existing behavior.
Yes, but who needs the current implementation of 'clearcpuid' which,
in fact, just hides flags in /proc/cpuinfo while userspace apps will
see and consequently use all CPU features?
So, I think it logically extends the existing behavior.
2. even on enabled hardware, only some of the bits are maskable.
The patch makes only words 0, 1, 4, 6 maskable, but words 3, 7, 8 are Linux-defined, words 2 and 5 are Transmeta-, Centaur-, etc- defined, and word 9 contains some bizarre Intel CPU features. Thus, it is words 0, 1, 4, 6 that contain useful information for most hardware models.
If you ask about some Intel CPUs that can't mask CPUID function 0x80000001, this function describes AMD-specific features, and I bet those Intel CPUs just don't have them at all and thus have nothing to mask.