On Tue, May 05, 2020 at 03:22:03PM +0200, Andrew Lunn wrote: > > > +int ethnl_cable_test_fault_length(struct phy_device *phydev, u8 pair, > > > u32 cm) > > > +{ > > > + struct nlattr *nest; > > > + int ret = -EMSGSIZE; > > > + > > > + nest = nla_nest_start(phydev->skb, > > > + ETHTOOL_A_CABLE_TEST_NTF_FAULT_LENGTH); > > > + if (!nest) > > > + return -EMSGSIZE; > > > + > > > + if (nla_put_u8(phydev->skb, ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, pair)) > > > + goto err; > > > + if (nla_put_u16(phydev->skb, ETHTOOL_A_CABLE_FAULT_LENGTH_CM, cm)) > > > + goto err; > > > > This should be nla_put_u32(). > > Yes. I think i messed up a rebase merge conflict somewhere. I'm also > surprised user space is not complaining.
There is no difference on little endian architectures as nla_put_*() helpers all call __nla_reserve() which fills the padding with zero bytes. IIRC there was a case where wrong attribute type had been used for quite long without anyone noticing. Michal