On Tue, 15 Jan 2019 11:15:12 +0100, Jiri Pirko wrote: > Tue, Jan 15, 2019 at 01:50:03AM CET, jakub.kicin...@netronome.com wrote: > >+static int devlink_nl_info_sn_fill(struct sk_buff *msg, struct devlink > >*devlink, > >+ struct netlink_ext_ack *extack) > >+{ > >+ unsigned char sn[32]; > > :/ Not good to have number directly here. > > >+ size_t len = 0; > >+ int err; > >+ > >+ if (!devlink->ops->serial_get) > >+ return 0; > >+ > >+ err = devlink->ops->serial_get(devlink, sn, ARRAY_SIZE(sn), &len, > >+ extack); > > Maybe it would be good to have a helper to fill this as well. That way, > driver could pass buffer of any length and helper would encode it into > skb.
Ack, will do. IMHO it's a bit of an overkill, one could "safely assume" serial number won't be longer than 32 bytes.. :) But no problem, will do! > >+ if (err) > >+ return err; > >+ > >+ return nla_put(msg, DEVLINK_ATTR_INFO_SERIAL_NUMBER, len, sn); > >+}