On Tue, 30 Aug 2022, Jiri Slaby wrote: > On 30. 08. 22, 9:29, Ilpo Järvinen wrote: > > --- a/include/linux/serial_core.h > > +++ b/include/linux/serial_core.h > > @@ -31,6 +31,29 @@ struct serial_struct; > ... > > + * Must match with struct serial_rs485 in include/uapi/linux/serial.h > > excluding > > + * the padding. > > Have you considered BUILD_BUG_ON() checks with few offset_of()s to enforce the > above? It's all enforced at the end of serial_core.c already. Would you perhaps prefer I'd put them elsewhere or is it fine as is? /* * Compile-time asserts for struct kserial_rs485 and struct serial_rs485 equality * (except padding). */ static_assert(offsetof(struct kserial_rs485, flags) == offsetof(struct serial_rs485, flags)); static_assert(offsetof(struct kserial_rs485, delay_rts_before_send) == offsetof(struct serial_rs485, delay_rts_before_send)); static_assert(offsetof(struct kserial_rs485, delay_rts_after_send) == offsetof(struct serial_rs485, delay_rts_after_send)); static_assert(offsetof(struct kserial_rs485, addr_recv) == offsetof(struct serial_rs485, addr_recv)); static_assert(offsetof(struct kserial_rs485, addr_dest) == offsetof(struct serial_rs485, addr_dest)); static_assert(sizeof(struct kserial_rs485) <= sizeof(struct serial_rs485)); -- i. > > +struct kserial_rs485 { > > + __u32 flags; > > + __u32 delay_rts_before_send; > > + __u32 delay_rts_after_send; > > + struct { > > + __u8 addr_recv; > > + __u8 addr_dest; > > + }; > > +};