Lines Matching +full:data +full:- +full:active

1 // SPDX-License-Identifier: GPL-2.0-only
17 u32 active[ETHTOOL_DEV_FEATURE_WORDS]; member
42 struct features_reply_data *data = FEATURES_REPDATA(reply_base); in features_prepare_data() local
43 struct net_device *dev = reply_base->dev; in features_prepare_data()
46 ethnl_features_to_bitmap32(data->hw, dev->hw_features); in features_prepare_data()
47 ethnl_features_to_bitmap32(data->wanted, dev->wanted_features); in features_prepare_data()
48 ethnl_features_to_bitmap32(data->active, dev->features); in features_prepare_data()
49 ethnl_features_to_bitmap32(data->nochange, NETIF_F_NEVER_CHANGE); in features_prepare_data()
50 all_features = GENMASK_ULL(NETDEV_FEATURE_COUNT - 1, 0); in features_prepare_data()
51 ethnl_features_to_bitmap32(data->all, all_features); in features_prepare_data()
59 const struct features_reply_data *data = FEATURES_REPDATA(reply_base); in features_reply_size() local
60 bool compact = req_base->flags & ETHTOOL_FLAG_COMPACT_BITSETS; in features_reply_size()
64 ret = ethnl_bitset32_size(data->hw, data->all, NETDEV_FEATURE_COUNT, in features_reply_size()
69 ret = ethnl_bitset32_size(data->wanted, NULL, NETDEV_FEATURE_COUNT, in features_reply_size()
74 ret = ethnl_bitset32_size(data->active, NULL, NETDEV_FEATURE_COUNT, in features_reply_size()
79 ret = ethnl_bitset32_size(data->nochange, NULL, NETDEV_FEATURE_COUNT, in features_reply_size()
92 const struct features_reply_data *data = FEATURES_REPDATA(reply_base); in features_fill_reply() local
93 bool compact = req_base->flags & ETHTOOL_FLAG_COMPACT_BITSETS; in features_fill_reply()
96 ret = ethnl_put_bitset32(skb, ETHTOOL_A_FEATURES_HW, data->hw, in features_fill_reply()
97 data->all, NETDEV_FEATURE_COUNT, in features_fill_reply()
101 ret = ethnl_put_bitset32(skb, ETHTOOL_A_FEATURES_WANTED, data->wanted, in features_fill_reply()
106 ret = ethnl_put_bitset32(skb, ETHTOOL_A_FEATURES_ACTIVE, data->active, in features_fill_reply()
112 data->nochange, NULL, NETDEV_FEATURE_COUNT, in features_fill_reply()
154 ret &= ~(netdev_features_t)0 >> (nft_bits - NETDEV_FEATURE_COUNT); in ethnl_bitmap_to_features()
161 const unsigned long *active, in features_send_reply() argument
175 ret = ethnl_bitset_size(active, active_mask, NETDEV_FEATURE_COUNT, in features_send_reply()
181 ret = -ENOMEM; in features_send_reply()
193 ret = ethnl_put_bitset(rskb, ETHTOOL_A_FEATURES_ACTIVE, active, in features_send_reply()
223 struct nlattr **tb = info->attrs; in ethnl_set_features()
229 return -EINVAL; in ethnl_set_features()
232 genl_info_net(info), info->extack, in ethnl_set_features()
243 ethnl_features_to_bitmap(old_active, dev->features); in ethnl_set_features()
244 ethnl_features_to_bitmap(old_wanted, dev->wanted_features); in ethnl_set_features()
247 netdev_features_strings, info->extack); in ethnl_set_features()
251 GENL_SET_ERR_MSG(info, "attempt to change non-ethtool features"); in ethnl_set_features()
252 ret = -EINVAL; in ethnl_set_features()
261 dev->wanted_features &= ~dev->hw_features; in ethnl_set_features()
262 dev->wanted_features |= ethnl_bitmap_to_features(req_wanted) & dev->hw_features; in ethnl_set_features()
265 ethnl_features_to_bitmap(new_active, dev->features); in ethnl_set_features()