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

From: Heiko Carstens
Date: Fri Feb 03 2023 - 00:59:20 EST


On Thu, Feb 02, 2023 at 01:01:21PM -0800, Linus Torvalds wrote:
> 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.

I really should have mentioned that this is just the minimal fix so it can
be easily backported. We have five patches pending which will cleanup the
whole driver, and which will also address what you complain about.

Patches will be sent out later today to Wim, Guenter, and the watchdog
mailing list, since Guenter already rightfully complained that I bypassed
them.