Re: [PATCH 3/3] serial: Add kserial_rs485 to avoid wasted space due to .padding

From: Andy Shevchenko
Date: Mon Aug 29 2022 - 08:31:57 EST


On Mon, Aug 29, 2022 at 3:09 PM Ilpo Järvinen
<ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote:
> On Fri, 26 Aug 2022, Andy Shevchenko wrote:
> > On Fri, Aug 26, 2022 at 5:51 PM Ilpo Järvinen
> > <ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote:

...

> > > + *rs485 = *((struct kserial_rs485 *)&rs485_uapi);
> >
> > So with all assets we have we can be sure that on BE64 / BE32 machines
> > this will be flawless. Is this assumption correct?
>
> I think so. At worst it could trigger a build fail assuming the kernel
> would do some really odd struct layout reordering (which, according to
> the build bot, doesn't occur for any currently tested arch).
>
> Now that you highlighted this line though, I started to wonder if it would
> be just better to use memcpy() instead as it would avoid those casts.

Actually the current version might be better since the compiler will
be aware of the types, but it still requires a proper layout of the
fields. That said, I leave it for you.

--
With Best Regards,
Andy Shevchenko