@@ -108,6 +131,12 @@ static int linkstate_reply_size(const struct ethnl_req_info *req_base, if (data->sqi_max != -EOPNOTSUPP) len += nla_total_size(sizeof(u32));
- if (data->ext_state_provided)
len += sizeof(u8); /* LINKSTATE_EXT_STATE */
- if (data->ethtool_ext_state_info.__ext_substate)
len += sizeof(u8); /* LINKSTATE_EXT_SUBSTATE */
This looks wrong. A u8 attribute takes up a lot more space than sizeof(u8) because of the TLV overheads. That is what the nla_total_size() is for.
Andrew