public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Daniel Borkmann <daniel@iogearbox.net>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Daniel Borkmann <daniel@iogearbox.net>
Subject: [cilium:pr/netkit-iouring7 3/3] net/core/netdev-genl.c:1202:7: warning: address of function 'dst_dev' will always evaluate to 'true'
Date: Thu, 27 Nov 2025 06:48:36 +0100	[thread overview]
Message-ID: <202511270605.lOWxsa6u-lkp@intel.com> (raw)

tree:   https://github.com/cilium/linux.git pr/netkit-iouring7
head:   b0485a3422c57df789879678c6373976fb2bd3e0
commit: b0485a3422c57df789879678c6373976fb2bd3e0 [3/3] foo
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20251127/202511270605.lOWxsa6u-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251127/202511270605.lOWxsa6u-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511270605.lOWxsa6u-lkp@intel.com/

All warnings (new ones prefixed by >>):

   net/core/netdev-genl.c:1143:30: error: use of undeclared identifier 'NETDEV_A_QUEUE_PAIR_QUEUE_TYPE'; did you mean 'NETDEV_A_QSTATS_QUEUE_TYPE'?
    1143 |         if (nla_get_u32(info->attrs[NETDEV_A_QUEUE_PAIR_QUEUE_TYPE]) !=
         |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                     NETDEV_A_QSTATS_QUEUE_TYPE
   include/uapi/linux/netdev.h:170:2: note: 'NETDEV_A_QSTATS_QUEUE_TYPE' declared here
     170 |         NETDEV_A_QSTATS_QUEUE_TYPE,
         |         ^
   net/core/netdev-genl.c:1149:2: error: use of undeclared identifier 'ifindex'
    1149 |         ifindex = nla_get_u32(info->attrs[NETDEV_A_QUEUE_PAIR_SRC_IFINDEX]);
         |         ^
   net/core/netdev-genl.c:1149:36: error: use of undeclared identifier 'NETDEV_A_QUEUE_PAIR_SRC_IFINDEX'; did you mean 'NETDEV_A_QUEUE_IFINDEX'?
    1149 |         ifindex = nla_get_u32(info->attrs[NETDEV_A_QUEUE_PAIR_SRC_IFINDEX]);
         |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                           NETDEV_A_QUEUE_IFINDEX
   include/uapi/linux/netdev.h:156:2: note: 'NETDEV_A_QUEUE_IFINDEX' declared here
     156 |         NETDEV_A_QUEUE_IFINDEX,
         |         ^
   net/core/netdev-genl.c:1151:6: error: array type 'struct nlattr *[4]' is not assignable
    1151 |         ltb = info->attrs[NETDEV_A_QUEUE_LEASE];
         |         ~~~ ^
   net/core/netdev-genl.c:1164:2: error: use of undeclared identifier 'ifindex_lease'
    1164 |         ifindex_lease = nla_get_u32(attr[NETDEV_A_LEASE_IFINDEX]);
         |         ^
   net/core/netdev-genl.c:1164:30: error: passing 'struct nlattr' to parameter of incompatible type 'const struct nlattr *'; take the address with &
    1164 |         ifindex_lease = nla_get_u32(attr[NETDEV_A_LEASE_IFINDEX]);
         |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                     &
   include/net/netlink.h:1732:52: note: passing argument to parameter 'nla' here
    1732 | static inline u32 nla_get_u32(const struct nlattr *nla)
         |                                                    ^
   net/core/netdev-genl.c:1166:6: error: array type 'struct nlattr *[4]' is not assignable
    1166 |         qtb = info->attrs[NETDEV_A_LEASE_QUEUE];
         |         ~~~ ^
   net/core/netdev-genl.c:1174:18: error: use of undeclared identifier 'tb'
    1174 |         if (nla_get_u32(tb[NETDEV_A_QUEUE_TYPE]) != NETDEV_QUEUE_TYPE_RX) {
         |                         ^
   net/core/netdev-genl.c:1181:6: error: use of undeclared identifier 'dst_ifidx'
    1181 |         if (dst_ifidx == src_ifidx) {
         |             ^
   net/core/netdev-genl.c:1181:19: error: use of undeclared identifier 'src_ifidx'
    1181 |         if (dst_ifidx == src_ifidx) {
         |                          ^
   net/core/netdev-genl.c:1201:58: error: use of undeclared identifier 'dst_ifidx'
    1201 |         dst_dev = netdev_get_by_index_lock(genl_info_net(info), dst_ifidx);
         |                                                                 ^
>> net/core/netdev-genl.c:1202:7: warning: address of function 'dst_dev' will always evaluate to 'true' [-Wpointer-bool-conversion]
    1202 |         if (!dst_dev) {
         |             ~^~~~~~~
   net/core/netdev-genl.c:1202:7: note: prefix with the address-of operator to silence this warning
    1202 |         if (!dst_dev) {
         |              ^
         |              &
   net/core/netdev-genl.c:1206:13: error: member reference base type 'struct net_device *(const struct dst_entry *)' is not a structure or union
    1206 |         if (dst_dev->dev.parent) {
         |             ~~~~~~~^ ~~~
   net/core/netdev-genl.c:1212:14: error: member reference base type 'struct net_device *(const struct dst_entry *)' is not a structure or union
    1212 |         if (!dst_dev->queue_mgmt_ops ||
         |              ~~~~~~~^ ~~~~~~~~~~~~~~
   net/core/netdev-genl.c:1213:14: error: member reference base type 'struct net_device *(const struct dst_entry *)' is not a structure or union
    1213 |             !dst_dev->queue_mgmt_ops->ndo_queue_create) {
         |              ~~~~~~~^ ~~~~~~~~~~~~~~
   net/core/netdev-genl.c:1219:13: error: member reference base type 'struct net_device *(const struct dst_entry *)' is not a structure or union
    1219 |         if (dst_dev->real_num_rx_queues < 1) {
         |             ~~~~~~~^ ~~~~~~~~~~~~~~~~~~
   net/core/netdev-genl.c:1226:2: error: use of undeclared identifier 'src_dev'
    1226 |         src_dev = netdev_get_by_index(genl_info_net(info), src_ifidx,
         |         ^
   net/core/netdev-genl.c:1226:53: error: use of undeclared identifier 'src_ifidx'
    1226 |         src_dev = netdev_get_by_index(genl_info_net(info), src_ifidx,
         |                                                            ^
   net/core/netdev-genl.c:1228:7: error: use of undeclared identifier 'src_dev'
    1228 |         if (!src_dev) {
         |              ^
   net/core/netdev-genl.c:1232:7: error: use of undeclared identifier 'src_dev'
    1232 |         if (!src_dev->dev.parent) {
         |              ^
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   1 warning and 20 errors generated.


vim +1202 net/core/netdev-genl.c

8802087d20c0e1 Stanislav Fomichev 2025-05-08  1122  
d7ab39540fa2d0 Daniel Borkmann    2025-10-31  1123  int netdev_nl_queue_create_doit(struct sk_buff *skb, struct genl_info *info)
d7ab39540fa2d0 Daniel Borkmann    2025-10-31  1124  {
b0485a3422c57d Daniel Borkmann    2025-11-26  1125  	//struct netdev_rx_queue *src_rxq, *dst_rxq, *tmp_rxq;
b0485a3422c57d Daniel Borkmann    2025-11-26  1126  	//u32 src_ifidx, src_qid, dst_ifidx, dst_qid, q_type;
b0485a3422c57d Daniel Borkmann    2025-11-26  1127  	//struct net_device *src_dev, *dst_dev;
b0485a3422c57d Daniel Borkmann    2025-11-26  1128  
b0485a3422c57d Daniel Borkmann    2025-11-26  1129  	const int qmaxtype = ARRAY_SIZE(netdev_queue_id_nl_policy) - 1;
b0485a3422c57d Daniel Borkmann    2025-11-26  1130  	const int lmaxtype = ARRAY_SIZE(netdev_lease_nl_policy) - 1;
b0485a3422c57d Daniel Borkmann    2025-11-26  1131  	struct nlattr *qtb[ARRAY_SIZE(netdev_queue_id_nl_policy)];
b0485a3422c57d Daniel Borkmann    2025-11-26  1132  	struct nlattr *ltb[ARRAY_SIZE(netdev_lease_nl_policy)];
6218b42846f66c David Wei          2025-10-31  1133  	netdevice_tracker dev_tracker;
b0485a3422c57d Daniel Borkmann    2025-11-26  1134  	struct nlattr *attr;
6218b42846f66c David Wei          2025-10-31  1135  	struct sk_buff *rsp;
6218b42846f66c David Wei          2025-10-31  1136  	void *hdr;
b0485a3422c57d Daniel Borkmann    2025-11-26  1137  	int err;
6218b42846f66c David Wei          2025-10-31  1138  
b0485a3422c57d Daniel Borkmann    2025-11-26  1139  	if (GENL_REQ_ATTR_CHECK(info, NETDEV_A_QUEUE_IFINDEX) ||
b0485a3422c57d Daniel Borkmann    2025-11-26  1140  	    GENL_REQ_ATTR_CHECK(info, NETDEV_A_QUEUE_TYPE) ||
b0485a3422c57d Daniel Borkmann    2025-11-26  1141  	    GENL_REQ_ATTR_CHECK(info, NETDEV_A_QUEUE_LEASE))
b0485a3422c57d Daniel Borkmann    2025-11-26  1142  		return -EINVAL;
b0485a3422c57d Daniel Borkmann    2025-11-26  1143  	if (nla_get_u32(info->attrs[NETDEV_A_QUEUE_PAIR_QUEUE_TYPE]) !=
b0485a3422c57d Daniel Borkmann    2025-11-26  1144  	    NETDEV_QUEUE_TYPE_RX) {
b0485a3422c57d Daniel Borkmann    2025-11-26  1145  		NL_SET_ERR_MSG(info->extack, "Only creation of RX queue currently supported");
b0485a3422c57d Daniel Borkmann    2025-11-26  1146  		return -EINVAL;
b0485a3422c57d Daniel Borkmann    2025-11-26  1147  	}
b0485a3422c57d Daniel Borkmann    2025-11-26  1148  
b0485a3422c57d Daniel Borkmann    2025-11-26  1149  	ifindex = nla_get_u32(info->attrs[NETDEV_A_QUEUE_PAIR_SRC_IFINDEX]);
b0485a3422c57d Daniel Borkmann    2025-11-26  1150  
b0485a3422c57d Daniel Borkmann    2025-11-26  1151  	ltb = info->attrs[NETDEV_A_QUEUE_LEASE];
b0485a3422c57d Daniel Borkmann    2025-11-26  1152  	err = nla_parse_nested(ltb, lmaxtype, attr,
b0485a3422c57d Daniel Borkmann    2025-11-26  1153  			       netdev_queue_id_nl_policy, info->extack);
b0485a3422c57d Daniel Borkmann    2025-11-26  1154  	if (err < 0)
b0485a3422c57d Daniel Borkmann    2025-11-26  1155  		return err;
b0485a3422c57d Daniel Borkmann    2025-11-26  1156  	if (NL_REQ_ATTR_CHECK(info->extack, attr, ltb, NETDEV_A_LEASE_IFINDEX) ||
b0485a3422c57d Daniel Borkmann    2025-11-26  1157  	    NL_REQ_ATTR_CHECK(info->extack, attr, ltb, NETDEV_A_LEASE_QUEUE))
b0485a3422c57d Daniel Borkmann    2025-11-26  1158  		return -EINVAL;
b0485a3422c57d Daniel Borkmann    2025-11-26  1159  	if (ltb[NETDEV_A_LEASE_NETNS_ID]) {
b0485a3422c57d Daniel Borkmann    2025-11-26  1160  		NL_SET_BAD_ATTR(info->extack, ltb[NETDEV_A_LEASE_NETNS_ID]);
6218b42846f66c David Wei          2025-10-31  1161  		return -EINVAL;
b0485a3422c57d Daniel Borkmann    2025-11-26  1162  	}
6218b42846f66c David Wei          2025-10-31  1163  
b0485a3422c57d Daniel Borkmann    2025-11-26  1164  	ifindex_lease = nla_get_u32(attr[NETDEV_A_LEASE_IFINDEX]);
6218b42846f66c David Wei          2025-10-31  1165  
b0485a3422c57d Daniel Borkmann    2025-11-26  1166  	qtb = info->attrs[NETDEV_A_LEASE_QUEUE];
b0485a3422c57d Daniel Borkmann    2025-11-26  1167  	err = nla_parse_nested(qtb, qmaxtype, attr,
b0485a3422c57d Daniel Borkmann    2025-11-26  1168  			       netdev_queue_id_nl_policy, info->extack);
b0485a3422c57d Daniel Borkmann    2025-11-26  1169  	if (err < 0)
b0485a3422c57d Daniel Borkmann    2025-11-26  1170  		return err;
b0485a3422c57d Daniel Borkmann    2025-11-26  1171  	if (NL_REQ_ATTR_CHECK(info->extack, attr, qtb, NETDEV_A_QUEUE_ID) ||
b0485a3422c57d Daniel Borkmann    2025-11-26  1172  	    NL_REQ_ATTR_CHECK(info->extack, attr, qtb, NETDEV_A_QUEUE_TYPE))
b0485a3422c57d Daniel Borkmann    2025-11-26  1173  		return -EINVAL;
b0485a3422c57d Daniel Borkmann    2025-11-26  1174  	if (nla_get_u32(tb[NETDEV_A_QUEUE_TYPE]) != NETDEV_QUEUE_TYPE_RX) {
b0485a3422c57d Daniel Borkmann    2025-11-26  1175  		NL_SET_BAD_ATTR(info->extack, qtb[NETDEV_A_QUEUE_TYPE]);
6218b42846f66c David Wei          2025-10-31  1176  		return -EINVAL;
6218b42846f66c David Wei          2025-10-31  1177  	}
b0485a3422c57d Daniel Borkmann    2025-11-26  1178  
b0485a3422c57d Daniel Borkmann    2025-11-26  1179  
b0485a3422c57d Daniel Borkmann    2025-11-26  1180  
6218b42846f66c David Wei          2025-10-31 @1181  	if (dst_ifidx == src_ifidx) {
6218b42846f66c David Wei          2025-10-31  1182  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1183  			       "Destination driver cannot be same as source driver");
6218b42846f66c David Wei          2025-10-31  1184  		return -EINVAL;
6218b42846f66c David Wei          2025-10-31  1185  	}
6218b42846f66c David Wei          2025-10-31  1186  
6218b42846f66c David Wei          2025-10-31  1187  	rsp = genlmsg_new(GENLMSG_DEFAULT_SIZE, GFP_KERNEL);
6218b42846f66c David Wei          2025-10-31  1188  	if (!rsp)
6218b42846f66c David Wei          2025-10-31  1189  		return -ENOMEM;
6218b42846f66c David Wei          2025-10-31  1190  
6218b42846f66c David Wei          2025-10-31  1191  	hdr = genlmsg_iput(rsp, info);
6218b42846f66c David Wei          2025-10-31  1192  	if (!hdr) {
6218b42846f66c David Wei          2025-10-31  1193  		err = -EMSGSIZE;
6218b42846f66c David Wei          2025-10-31  1194  		goto err_genlmsg_free;
6218b42846f66c David Wei          2025-10-31  1195  	}
6218b42846f66c David Wei          2025-10-31  1196  
6218b42846f66c David Wei          2025-10-31  1197  	/* Locking order is always from the virtual to the physical device
6218b42846f66c David Wei          2025-10-31  1198  	 * since this is also the same order when applications open the
6218b42846f66c David Wei          2025-10-31  1199  	 * memory provider later on.
6218b42846f66c David Wei          2025-10-31  1200  	 */
6218b42846f66c David Wei          2025-10-31  1201  	dst_dev = netdev_get_by_index_lock(genl_info_net(info), dst_ifidx);
6218b42846f66c David Wei          2025-10-31 @1202  	if (!dst_dev) {
6218b42846f66c David Wei          2025-10-31  1203  		err = -ENODEV;
6218b42846f66c David Wei          2025-10-31  1204  		goto err_genlmsg_free;
6218b42846f66c David Wei          2025-10-31  1205  	}
6218b42846f66c David Wei          2025-10-31  1206  	if (dst_dev->dev.parent) {
6218b42846f66c David Wei          2025-10-31  1207  		err = -EINVAL;
6218b42846f66c David Wei          2025-10-31  1208  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1209  			       "Destination device is not a virtual device");
6218b42846f66c David Wei          2025-10-31  1210  		goto err_unlock_dst_dev;
6218b42846f66c David Wei          2025-10-31  1211  	}
6218b42846f66c David Wei          2025-10-31  1212  	if (!dst_dev->queue_mgmt_ops ||
6218b42846f66c David Wei          2025-10-31  1213  	    !dst_dev->queue_mgmt_ops->ndo_queue_create) {
6218b42846f66c David Wei          2025-10-31  1214  		err = -EOPNOTSUPP;
6218b42846f66c David Wei          2025-10-31  1215  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1216  			       "Destination driver does not support queue management operations");
6218b42846f66c David Wei          2025-10-31  1217  		goto err_unlock_dst_dev;
6218b42846f66c David Wei          2025-10-31  1218  	}
6218b42846f66c David Wei          2025-10-31  1219  	if (dst_dev->real_num_rx_queues < 1) {
6218b42846f66c David Wei          2025-10-31  1220  		err = -EINVAL;
6218b42846f66c David Wei          2025-10-31  1221  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1222  			       "Destination device must have at least one real RX queue");
6218b42846f66c David Wei          2025-10-31  1223  		goto err_unlock_dst_dev;
6218b42846f66c David Wei          2025-10-31  1224  	}
6218b42846f66c David Wei          2025-10-31  1225  
6218b42846f66c David Wei          2025-10-31  1226  	src_dev = netdev_get_by_index(genl_info_net(info), src_ifidx,
6218b42846f66c David Wei          2025-10-31  1227  				      &dev_tracker, GFP_KERNEL);
6218b42846f66c David Wei          2025-10-31  1228  	if (!src_dev) {
6218b42846f66c David Wei          2025-10-31  1229  		err = -ENODEV;
6218b42846f66c David Wei          2025-10-31  1230  		goto err_unlock_dst_dev;
6218b42846f66c David Wei          2025-10-31  1231  	}
6218b42846f66c David Wei          2025-10-31  1232  	if (!src_dev->dev.parent) {
6218b42846f66c David Wei          2025-10-31  1233  		err = -EINVAL;
6218b42846f66c David Wei          2025-10-31  1234  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1235  			       "Source device is a virtual device");
6218b42846f66c David Wei          2025-10-31  1236  		goto err_unlock_dst_dev_src_dev_put;
6218b42846f66c David Wei          2025-10-31  1237  	}
6218b42846f66c David Wei          2025-10-31  1238  	if (!netif_device_present(src_dev)) {
6218b42846f66c David Wei          2025-10-31  1239  		err = -ENODEV;
6218b42846f66c David Wei          2025-10-31  1240  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1241  			       "Source device has been removed from the system");
6218b42846f66c David Wei          2025-10-31  1242  		goto err_unlock_dst_dev_src_dev_put;
6218b42846f66c David Wei          2025-10-31  1243  	}
6218b42846f66c David Wei          2025-10-31  1244  	if (!src_dev->queue_mgmt_ops) {
6218b42846f66c David Wei          2025-10-31  1245  		err = -EOPNOTSUPP;
6218b42846f66c David Wei          2025-10-31  1246  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1247  			       "Source driver does not support queue management operations");
6218b42846f66c David Wei          2025-10-31  1248  		goto err_unlock_dst_dev_src_dev_put;
6218b42846f66c David Wei          2025-10-31  1249  	}
6218b42846f66c David Wei          2025-10-31  1250  
6218b42846f66c David Wei          2025-10-31  1251  	src_dev = netdev_put_lock(src_dev, &dev_tracker);
6218b42846f66c David Wei          2025-10-31  1252  	if (!src_dev) {
6218b42846f66c David Wei          2025-10-31  1253  		err = -ENODEV;
6218b42846f66c David Wei          2025-10-31  1254  		goto err_unlock_dst_dev;
6218b42846f66c David Wei          2025-10-31  1255  	}
6218b42846f66c David Wei          2025-10-31  1256  	if (src_qid >= src_dev->real_num_rx_queues) {
6218b42846f66c David Wei          2025-10-31  1257  		err = -ERANGE;
6218b42846f66c David Wei          2025-10-31  1258  		NL_SET_BAD_ATTR(info->extack,
6218b42846f66c David Wei          2025-10-31  1259  				info->attrs[NETDEV_A_QUEUE_PAIR_SRC_QUEUE_ID]);
6218b42846f66c David Wei          2025-10-31  1260  		goto err_unlock_src_dev;
6218b42846f66c David Wei          2025-10-31  1261  	}
6218b42846f66c David Wei          2025-10-31  1262  
6218b42846f66c David Wei          2025-10-31  1263  	src_rxq = __netif_get_rx_queue(src_dev, src_qid);
6218b42846f66c David Wei          2025-10-31  1264  	if (src_rxq->peer) {
6218b42846f66c David Wei          2025-10-31  1265  		err = -EBUSY;
6218b42846f66c David Wei          2025-10-31  1266  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1267  			       "Source device queue is already bound");
6218b42846f66c David Wei          2025-10-31  1268  		goto err_unlock_src_dev;
6218b42846f66c David Wei          2025-10-31  1269  	}
6218b42846f66c David Wei          2025-10-31  1270  
6218b42846f66c David Wei          2025-10-31  1271  	tmp_rxq = __netif_get_rx_queue(dst_dev, dst_dev->real_num_rx_queues - 1);
6218b42846f66c David Wei          2025-10-31  1272  	if (tmp_rxq->peer && tmp_rxq->peer->dev != src_dev) {
6218b42846f66c David Wei          2025-10-31  1273  		err = -EOPNOTSUPP;
6218b42846f66c David Wei          2025-10-31  1274  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1275  			       "Binding multiple queues from different source devices not supported");
6218b42846f66c David Wei          2025-10-31  1276  		goto err_unlock_src_dev;
6218b42846f66c David Wei          2025-10-31  1277  	}
6218b42846f66c David Wei          2025-10-31  1278  
6218b42846f66c David Wei          2025-10-31  1279  	err = dst_dev->queue_mgmt_ops->ndo_queue_create(dst_dev, &dst_qid);
6218b42846f66c David Wei          2025-10-31  1280  	if (err) {
6218b42846f66c David Wei          2025-10-31  1281  		NL_SET_ERR_MSG(info->extack,
6218b42846f66c David Wei          2025-10-31  1282  			       "Destination device is unable to create a new queue");
6218b42846f66c David Wei          2025-10-31  1283  		goto err_unlock_src_dev;
6218b42846f66c David Wei          2025-10-31  1284  	}
6218b42846f66c David Wei          2025-10-31  1285  
6218b42846f66c David Wei          2025-10-31  1286  	dst_rxq = __netif_get_rx_queue(dst_dev, dst_qid);
6218b42846f66c David Wei          2025-10-31  1287  	netdev_rx_queue_peer(src_dev, src_rxq, dst_rxq);
6218b42846f66c David Wei          2025-10-31  1288  
6218b42846f66c David Wei          2025-10-31  1289  	nla_put_u32(rsp, NETDEV_A_QUEUE_PAIR_DST_QUEUE_ID, dst_qid);
6218b42846f66c David Wei          2025-10-31  1290  	genlmsg_end(rsp, hdr);
6218b42846f66c David Wei          2025-10-31  1291  
6218b42846f66c David Wei          2025-10-31  1292  	netdev_unlock(src_dev);
6218b42846f66c David Wei          2025-10-31  1293  	netdev_unlock(dst_dev);
6218b42846f66c David Wei          2025-10-31  1294  
6218b42846f66c David Wei          2025-10-31  1295  	return genlmsg_reply(rsp, info);
6218b42846f66c David Wei          2025-10-31  1296  
6218b42846f66c David Wei          2025-10-31  1297  err_unlock_dst_dev_src_dev_put:
6218b42846f66c David Wei          2025-10-31  1298  	netdev_put(src_dev, &dev_tracker);
6218b42846f66c David Wei          2025-10-31  1299  	goto err_unlock_dst_dev;
6218b42846f66c David Wei          2025-10-31  1300  err_unlock_src_dev:
6218b42846f66c David Wei          2025-10-31  1301  	netdev_unlock(src_dev);
6218b42846f66c David Wei          2025-10-31  1302  err_unlock_dst_dev:
6218b42846f66c David Wei          2025-10-31  1303  	netdev_unlock(dst_dev);
6218b42846f66c David Wei          2025-10-31  1304  err_genlmsg_free:
6218b42846f66c David Wei          2025-10-31  1305  	nlmsg_free(rsp);
6218b42846f66c David Wei          2025-10-31  1306  	return err;
d7ab39540fa2d0 Daniel Borkmann    2025-10-31  1307  }
d7ab39540fa2d0 Daniel Borkmann    2025-10-31  1308  

:::::: The code at line 1202 was first introduced by commit
:::::: 6218b42846f66ccd2de5a208da7fc61390e7d15c net: Implement netdev_nl_queue_create_doit

:::::: TO: David Wei <dw@davidwei.uk>
:::::: CC: Daniel Borkmann <daniel@iogearbox.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2025-11-27  5:49 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202511270605.lOWxsa6u-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=daniel@iogearbox.net \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox