On Wed, Dec 21, 2022 at 09:42:50PM +0000, Edgecombe, Rick P wrote: > Oh, you mean the whole Kconfig thing. Yea, I mean I see the point about > typical configs. But at least CONFIG_X86_CET seems consistent with > CONFIG_INTEL_TDX_GUEST, CONFIG_IOMMU_SVA, etc. > > What about moving it out of traps.c to a cet.c, like > exc_vmm_communication for CONFIG_AMD_MEM_ENCRT? Then the inclusion > logic lives in the build files, instead of an ifdef. Yeah, that definitely sounds cleaner. Another example would be the #MC handler being in mce code and not in traps.c. So yeah, the reason why I'm even mentioning this is that I get an allergic reaction when I see unwieldy ifdeffery in one screen worth of code. But this is just me. :) > One aspect that has come up a couple of times, is how closely related > all these CET features are (or aren't). Shadow stack and IBT are mostly > separate, but do share an xfeature and an exception type. Similarly for > supervisor and user mode support for either of the CET features. So > maybe that is what is unusual here. There are some aspects that make > them look like separate features, which leads people to think they > should be separate in the code. But actually separating them leads to > excess ifdefery. Yeah, I think you solved that correctly by having the common X86_CET symbol selected by the two. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette