> @@ -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

Reply via email to