Masami Hiramatsu (Google) <[email protected]> writes:

> On Wed, 16 Oct 2024 14:07:31 +0200
> Sven Schnelle <[email protected]> wrote:
>> "Masami Hiramatsu (Google)" <[email protected]> writes:
>> I think that still has the issue that the size is encoded in the
>> leftmost fields of the pointer, which doesn't work on all
>> architectures. I reported this already in v15
>> (https://lore.kernel.org/all/[email protected]/)
>
> Oops, thanks for reporting. I should missed that.
>
>> I haven't yet fully understood why this logic is needed, but the
>> WARN_ON_ONCE triggers on s390. I'm assuming this fails because fp always
>> has the upper bits of the address set on x86 (and likely others). As an
>> example, in my test setup, fp is 0x8feec218 on s390, while it is
>> 0xffff888100add118 in x86-kvm.
>
> Ah, so s390 kernel/user memory layout is something like 4G/4G?
> Hmm, this encode expects the leftmost 4bit is filled. For the
> architecture which has 32bit address space, we may be possible to
> use "unsigned long long" for 'val' on shadow stack (and use the
> first 32bit for fp and another 32bit for size).
>
> Anyway, I need to redesign it depending on architecture.

Could you explain a bit more what redesign means? Thanks!

Reply via email to