Thread (8 messages) 8 messages, 3 authors, 2020-10-15

Re: [PATCH v2 20/20] ppc: propagate the calling conventions change down to csum_partial_copy_generic()

flat view

From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2020-10-15 01:40:30
Also in: linux-arch, lkml

On Wed, Oct 14, 2020 at 03:51:00PM -0700, Linus Torvalds wrote:
On Wed, Oct 14, 2020 at 3:27 PM Jason A. Donenfeld [off-list ref] wrote:
quoted
This patch is causing crashes in WireGuard's CI over at
https://www.wireguard.com/build-status/ . Apparently sending a simple
network packet winds up triggering refcount_t's warn-on-saturate code. I
Ouch.

The C parts look fairly straightforward, and I don't see how they
could cause that odd refcount issue.

So I assume it's the low-level asm code conversion that is buggy. And
it's apparently the 32-bit conversion, since your ppc64 status looks
fine.

I think it's this instruction:

        addi    r1,r1,16

that should be removed from the function exit, because Al removed the

-       stwu    r1,-16(r1)

on function entry.

So I think you end up with a corrupt stack pointer and basically
random behavior.
Gyahh...  ACK, and I really wonder how the hell has it managed to avoid
crashing on testing.

Mea culpa, folks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help