On Wed 11-01-23 10:30:19, Eric Biggers wrote: > On Wed, Jan 11, 2023 at 03:43:27PM +0100, Jan Kara wrote: > > On Fri 16-12-22 21:02:12, Eric Biggers wrote: > > > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > > > > > To avoid 'sparse' warnings about missing endianness conversions, don't > > > store native endianness values into struct ext4_fc_tl. Instead, use a > > > separate struct type, ext4_fc_tl_mem. > > > > > > Fixes: dcc5827484d6 ("ext4: factor out ext4_fc_get_tl()") > > > Cc: Ye Bin <yebin10@xxxxxxxxxx> > > > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > > > > Looks good to me. Just one nit below: > > > > > -static inline void ext4_fc_get_tl(struct ext4_fc_tl *tl, u8 *val) > > > +static inline void ext4_fc_get_tl(struct ext4_fc_tl_mem *tl, u8 *val) > > > { > > > - memcpy(tl, val, EXT4_FC_TAG_BASE_LEN); > > > - tl->fc_len = le16_to_cpu(tl->fc_len); > > > - tl->fc_tag = le16_to_cpu(tl->fc_tag); > > > + struct ext4_fc_tl tl_disk; > > > + > > > + memcpy(&tl_disk, val, EXT4_FC_TAG_BASE_LEN); > > > + tl->fc_len = le16_to_cpu(tl_disk.fc_len); > > > + tl->fc_tag = le16_to_cpu(tl_disk.fc_tag); > > > } > > > > So why not just: > > > > struct ext4_fc_tl *tl_disk = (struct ext4_fc_tl *)val; > > > > instead of memcpy? > > That would result in unaligned memory accesses. Indeed. Thanks for explanation! Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR