* Re: [PATCH net v2] net: devmem: fix kernel panic when socket close after module unload
[not found] <20250506140858.2660441-1-ap420073@gmail.com>
@ 2025-05-07 13:08 ` kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-05-07 13:08 UTC (permalink / raw)
To: Taehee Yoo, davem, kuba, pabeni, edumazet, andrew+netdev, horms,
almasrymina, sdf, netdev
Cc: llvm, oe-kbuild-all, asml.silence, dw, skhawaja, willemb, jdamato,
ap420073
Hi Taehee,
kernel test robot noticed the following build errors:
[auto build test ERROR on net/main]
url: https://github.com/intel-lab-lkp/linux/commits/Taehee-Yoo/net-devmem-fix-kernel-panic-when-socket-close-after-module-unload/20250506-221010
base: net/main
patch link: https://lore.kernel.org/r/20250506140858.2660441-1-ap420073%40gmail.com
patch subject: [PATCH net v2] net: devmem: fix kernel panic when socket close after module unload
config: i386-defconfig (https://download.01.org/0day-ci/archive/20250507/202505072001.RHUTj8Jo-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250507/202505072001.RHUTj8Jo-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/202505072001.RHUTj8Jo-lkp@intel.com/
All errors (new ones prefixed by >>):
>> net/core/netdev-genl.c:879:60: error: too many arguments to function call, expected 3, have 4
879 | binding = net_devmem_bind_dmabuf(netdev, dmabuf_fd, priv, info->extack);
| ~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~
net/core/devmem.h:132:1: note: 'net_devmem_bind_dmabuf' declared here
132 | net_devmem_bind_dmabuf(struct net_device *dev, unsigned int dmabuf_fd,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
133 | struct netlink_ext_ack *extack)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
vim +879 net/core/netdev-genl.c
827
828 int netdev_nl_bind_rx_doit(struct sk_buff *skb, struct genl_info *info)
829 {
830 struct nlattr *tb[ARRAY_SIZE(netdev_queue_id_nl_policy)];
831 struct net_devmem_dmabuf_binding *binding;
832 u32 ifindex, dmabuf_fd, rxq_idx;
833 struct netdev_nl_sock *priv;
834 struct net_device *netdev;
835 struct sk_buff *rsp;
836 struct nlattr *attr;
837 int rem, err = 0;
838 void *hdr;
839
840 if (GENL_REQ_ATTR_CHECK(info, NETDEV_A_DEV_IFINDEX) ||
841 GENL_REQ_ATTR_CHECK(info, NETDEV_A_DMABUF_FD) ||
842 GENL_REQ_ATTR_CHECK(info, NETDEV_A_DMABUF_QUEUES))
843 return -EINVAL;
844
845 ifindex = nla_get_u32(info->attrs[NETDEV_A_DEV_IFINDEX]);
846 dmabuf_fd = nla_get_u32(info->attrs[NETDEV_A_DMABUF_FD]);
847
848 priv = genl_sk_priv_get(&netdev_nl_family, NETLINK_CB(skb).sk);
849 if (IS_ERR(priv))
850 return PTR_ERR(priv);
851
852 rsp = genlmsg_new(GENLMSG_DEFAULT_SIZE, GFP_KERNEL);
853 if (!rsp)
854 return -ENOMEM;
855
856 hdr = genlmsg_iput(rsp, info);
857 if (!hdr) {
858 err = -EMSGSIZE;
859 goto err_genlmsg_free;
860 }
861
862 err = 0;
863 netdev = netdev_get_by_index_lock(genl_info_net(info), ifindex);
864 if (!netdev) {
865 err = -ENODEV;
866 goto err_genlmsg_free;
867 }
868 if (!netif_device_present(netdev))
869 err = -ENODEV;
870 else if (!netdev_need_ops_lock(netdev))
871 err = -EOPNOTSUPP;
872 if (err) {
873 NL_SET_BAD_ATTR(info->extack,
874 info->attrs[NETDEV_A_DEV_IFINDEX]);
875 goto err_unlock;
876 }
877
878 mutex_lock(&priv->lock);
> 879 binding = net_devmem_bind_dmabuf(netdev, dmabuf_fd, priv, info->extack);
880 if (IS_ERR(binding)) {
881 err = PTR_ERR(binding);
882 goto err_unlock_sock;
883 }
884
885 nla_for_each_attr_type(attr, NETDEV_A_DMABUF_QUEUES,
886 genlmsg_data(info->genlhdr),
887 genlmsg_len(info->genlhdr), rem) {
888 err = nla_parse_nested(
889 tb, ARRAY_SIZE(netdev_queue_id_nl_policy) - 1, attr,
890 netdev_queue_id_nl_policy, info->extack);
891 if (err < 0)
892 goto err_unbind;
893
894 if (NL_REQ_ATTR_CHECK(info->extack, attr, tb, NETDEV_A_QUEUE_ID) ||
895 NL_REQ_ATTR_CHECK(info->extack, attr, tb, NETDEV_A_QUEUE_TYPE)) {
896 err = -EINVAL;
897 goto err_unbind;
898 }
899
900 if (nla_get_u32(tb[NETDEV_A_QUEUE_TYPE]) != NETDEV_QUEUE_TYPE_RX) {
901 NL_SET_BAD_ATTR(info->extack, tb[NETDEV_A_QUEUE_TYPE]);
902 err = -EINVAL;
903 goto err_unbind;
904 }
905
906 rxq_idx = nla_get_u32(tb[NETDEV_A_QUEUE_ID]);
907
908 err = net_devmem_bind_dmabuf_to_queue(netdev, rxq_idx, binding,
909 info->extack);
910 if (err)
911 goto err_unbind;
912 }
913
914 list_add(&binding->list, &priv->bindings);
915
916 nla_put_u32(rsp, NETDEV_A_DMABUF_ID, binding->id);
917 genlmsg_end(rsp, hdr);
918
919 err = genlmsg_reply(rsp, info);
920 if (err)
921 goto err_unbind;
922
923 mutex_unlock(&priv->lock);
924 netdev_unlock(netdev);
925
926 return 0;
927
928 err_unbind:
929 net_devmem_unbind_dmabuf(binding);
930 err_unlock_sock:
931 mutex_unlock(&priv->lock);
932 err_unlock:
933 netdev_unlock(netdev);
934 err_genlmsg_free:
935 nlmsg_free(rsp);
936 return err;
937 }
938
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-05-07 13:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250506140858.2660441-1-ap420073@gmail.com>
2025-05-07 13:08 ` [PATCH net v2] net: devmem: fix kernel panic when socket close after module unload kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox