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

Andy Shevchenko andy.shevchenko at gmail.com
Mon Aug 29 05:14:03 PDT 2022


On Mon, Aug 29, 2022 at 3:09 PM Ilpo Järvinen
<ilpo.jarvinen at linux.intel.com> wrote:
> On Fri, 26 Aug 2022, Andy Shevchenko wrote:
> > On Fri, Aug 26, 2022 at 5:51 PM Ilpo Järvinen
> > <ilpo.jarvinen at linux.intel.com> 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



More information about the linux-arm-kernel mailing list