Re: [PATCH v2 5.4 regression fix] x86/boot: Provide memzero_explicit

From: Hans de Goede
Date: Mon Oct 07 2019 - 15:36:31 EST


Hi,

On 07-10-2019 20:42, Arvind Sankar wrote:
On Mon, Oct 07, 2019 at 05:40:07PM +0200, Ingo Molnar wrote:

* Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote:

With the barrier in there, is there any reason to *not* inline the
function? barrier_data() is an asm statement that tells the compiler
that the asm uses the memory that was set to zero, thus preventing it
from removing the memset even if nothing else uses that memory later. A
more detailed comment is there in compiler-gcc.h. I can't see why it
wouldn't work even if it were inlined.

If the function can indeed be inlined, we could just make the common
implementation a macro and avoid duplicating it? As mentioned in another
mail, we otherwise will likely need another duplicate implementation for
arch/s390/purgatory as well.

I suspect macro would be justified in this case. Mind sending a v3 patch
to demonstrate how it would all look like?

I'll zap v2 if the macro solution looks better.

Thanks,

Ingo

Patch attached to turn memzero_explicit into inline function.

Hehe, I had prepared and have just tested the exact same patch
(only the commit msg was different).

I've just booted a kernel build with that patch and that works
fine (as expected).

So your patch is:

Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Tested-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Since this is a bit of a core change though, I think it is
best if you send it to the linux-kernel list (with my tags from above
added) as is normally done for kernel patches. Then others, who may
not be following this thread, will get a chance to give feedback on it.

Regards,

Hans