Re: [Bug report] __arch_hweight32/64 x86

From: Borislav Petkov
Date: Mon Jun 26 2023 - 17:06:35 EST


Hello,

On Mon, Jun 26, 2023 at 10:49:44PM +0200, Sebastian Sumpf wrote:
> The 'ALTERNATIVE' macro checks for the popcnt feature. In case this fails
> the '__sw_hweight' C-function is called from inline assembly with rax and
> rdi as intput/output operands. However, the code does not contain a clobber
> list of any callee safe registers that might be touched by the
> '__sw_height64' C-function.

Which registers are those? Can you be more specific?

> Therefore, these registers will not be restored
> upon function return by the compiler. This leads to varying
> exceptions/bad behavior caused by the thus corrupted registers later
> on.

How do I reproduce what you're observing so that I can take a look?

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette