Re: [GIT PULL] s390 fixes for 6.2-rc7

From: Linus Torvalds
Date: Thu Feb 02 2023 - 16:01:47 EST


On Thu, Feb 2, 2023 at 12:08 PM Heiko Carstens <hca@xxxxxxxxxxxxx> wrote:
>
> - With CONFIG_VMAP_STACK enabled it is not possible to load the s390
> specific diag288_wdt watchdog module. Reason is that a pointer to a
> string is passed to an inline assembly; this string however is located on
> the stack, while the instruction within the inline assembly expects a
> physicial address. Fix this by copying the string to a kmalloc'ed buffer.

Ugh. I have pulled this, but I think that fix is disgusting.

I think the kmalloc/kfree should have been done inside __diag288_vm()
itself, where it actually does that whole "virt_to_phys()" too.

Now there are three callers of __diag288_vm(), and they all do that
ugly kmalloc game with no comment about why it's needed.

If __diag288_vm() just did it itself, and had a comment right next to
the virt_to_phys() about why, that would look a lot better, I think.

That said, I don't know the code, and maybe there was some reason to
do it this way. As mentioned, I've pulled it, I just don't
particularly love the patch.

Linus