Jason A. Donenfeld <ja...@zx2c4.com> wrote:

> Hey Klemens,
> 
> On Tue, May 26, 2020 at 9:13 AM Klemens Nanni <k...@openbsd.org> wrote:
> > I worked with the patches from the wireguard-openbsd repository after
> > version one of this diff on tech@ became a bit old.
> >
> > That was until yesterday;  the kernel would panic due to memory
> > alignment issues in various spots, `amd64# ping6 tunnel-ip.sparc64'
> > would receive a single ICMP6 echo reply from the sparc64 peer before
> > panicing its kernel very early in noise init code.
> >
> > I've had fixed a few bugs and ran into different panics during later
> > code paths.
> >
> > Fortunately, using "rev. 2" of your diff on top of a clean checkout just
> > works so far on sparc64 without any additional patches required - this
> > is a very pleasnt suprise and I can start looking at it under production
> > use cases more thoroughly now.
> 
> That's good news that it's working for you now, but I didn't change
> anything within the last 24 hours (you mentioned "yesterday") that
> would seem related to this. So perhaps don't get too excited just yet.
> I've got a decent MIPS setup here and a hacked up qemu for having a
> bit more detail on alignment traps. I'll see if I can reproduce any
> issues.

I suspect problems around forcing __packed.

__packed is very dangerous.

If you know the sizes of the objects are correctly sized and placed to
not have gap-pads, then not using __packed might be better.

__packed won't sae you from leaking gap bytes, either.

We only run on ILP32 and I32LP64 ABIs, and all of them pack in the classic
way...

Reply via email to