[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] xen: update pvcalls_front_accept prototype
Hi Stefano, kernel test robot noticed the following build errors: [auto build test ERROR on xen-tip/linux-next] [also build test ERROR on linus/master v6.13-rc5 next-20241220] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stefano-Stabellini/xen-update-pvcalls_front_accept-prototype/20250104-070503 base: https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next patch link: https://lore.kernel.org/r/alpine.DEB.2.22.394.2501031501420.16425%40ubuntu-linux-20-04-desktop patch subject: [PATCH] xen: update pvcalls_front_accept prototype config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20250105/202501050224.Z3WcNxIQ-lkp@xxxxxxxxx/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250105/202501050224.Z3WcNxIQ-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202501050224.Z3WcNxIQ-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> drivers/xen/pvcalls-front.c:772:5: error: conflicting types for >> 'pvcalls_front_accept'; have 'int(struct socket *, struct socket *, int)' 772 | int pvcalls_front_accept(struct socket *sock, struct socket *newsock, int flags) | ^~~~~~~~~~~~~~~~~~~~ In file included from drivers/xen/pvcalls-front.c:18: drivers/xen/pvcalls-front.h:13:5: note: previous declaration of 'pvcalls_front_accept' with type 'int(struct socket *, struct socket *, struct proto_accept_arg *)' 13 | int pvcalls_front_accept(struct socket *sock, | ^~~~~~~~~~~~~~~~~~~~ vim +772 drivers/xen/pvcalls-front.c 1853f11d72ed46 Stefano Stabellini 2017-10-30 771 9774c6cca26610 Stefano Stabellini 2017-10-30 @772 int pvcalls_front_accept(struct socket *sock, struct socket *newsock, int flags) 9774c6cca26610 Stefano Stabellini 2017-10-30 773 { 9774c6cca26610 Stefano Stabellini 2017-10-30 774 struct pvcalls_bedata *bedata; 9774c6cca26610 Stefano Stabellini 2017-10-30 775 struct sock_mapping *map; 9774c6cca26610 Stefano Stabellini 2017-10-30 776 struct sock_mapping *map2 = NULL; 9774c6cca26610 Stefano Stabellini 2017-10-30 777 struct xen_pvcalls_request *req; 0102e4efda76d0 Yan Yankovskyi 2020-03-23 778 int notify, req_id, ret, nonblock; 0102e4efda76d0 Yan Yankovskyi 2020-03-23 779 evtchn_port_t evtchn; 9774c6cca26610 Stefano Stabellini 2017-10-30 780 64d6871827b1e2 Stefano Stabellini 2018-02-14 781 map = pvcalls_enter_sock(sock); 64d6871827b1e2 Stefano Stabellini 2018-02-14 782 if (IS_ERR(map)) 64d6871827b1e2 Stefano Stabellini 2018-02-14 783 return PTR_ERR(map); 9774c6cca26610 Stefano Stabellini 2017-10-30 784 bedata = dev_get_drvdata(&pvcalls_front_dev->dev); 9774c6cca26610 Stefano Stabellini 2017-10-30 785 9774c6cca26610 Stefano Stabellini 2017-10-30 786 if (map->passive.status != PVCALLS_STATUS_LISTEN) { 64d6871827b1e2 Stefano Stabellini 2018-02-14 787 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 788 return -EINVAL; 9774c6cca26610 Stefano Stabellini 2017-10-30 789 } 9774c6cca26610 Stefano Stabellini 2017-10-30 790 9774c6cca26610 Stefano Stabellini 2017-10-30 791 nonblock = flags & SOCK_NONBLOCK; 9774c6cca26610 Stefano Stabellini 2017-10-30 792 /* 9774c6cca26610 Stefano Stabellini 2017-10-30 793 * Backend only supports 1 inflight accept request, will return 9774c6cca26610 Stefano Stabellini 2017-10-30 794 * errors for the others 9774c6cca26610 Stefano Stabellini 2017-10-30 795 */ 9774c6cca26610 Stefano Stabellini 2017-10-30 796 if (test_and_set_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, 9774c6cca26610 Stefano Stabellini 2017-10-30 797 (void *)&map->passive.flags)) { 9774c6cca26610 Stefano Stabellini 2017-10-30 798 req_id = READ_ONCE(map->passive.inflight_req_id); 9774c6cca26610 Stefano Stabellini 2017-10-30 799 if (req_id != PVCALLS_INVALID_ID && 9774c6cca26610 Stefano Stabellini 2017-10-30 800 READ_ONCE(bedata->rsp[req_id].req_id) == req_id) { 9774c6cca26610 Stefano Stabellini 2017-10-30 801 map2 = map->passive.accept_map; 9774c6cca26610 Stefano Stabellini 2017-10-30 802 goto received; 9774c6cca26610 Stefano Stabellini 2017-10-30 803 } 9774c6cca26610 Stefano Stabellini 2017-10-30 804 if (nonblock) { 64d6871827b1e2 Stefano Stabellini 2018-02-14 805 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 806 return -EAGAIN; 9774c6cca26610 Stefano Stabellini 2017-10-30 807 } 9774c6cca26610 Stefano Stabellini 2017-10-30 808 if (wait_event_interruptible(map->passive.inflight_accept_req, 9774c6cca26610 Stefano Stabellini 2017-10-30 809 !test_and_set_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, 9774c6cca26610 Stefano Stabellini 2017-10-30 810 (void *)&map->passive.flags))) { 64d6871827b1e2 Stefano Stabellini 2018-02-14 811 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 812 return -EINTR; 9774c6cca26610 Stefano Stabellini 2017-10-30 813 } 9774c6cca26610 Stefano Stabellini 2017-10-30 814 } 9774c6cca26610 Stefano Stabellini 2017-10-30 815 9f51c05dc41a6d Wen Yang 2018-12-05 816 map2 = kzalloc(sizeof(*map2), GFP_KERNEL); 9f51c05dc41a6d Wen Yang 2018-12-05 817 if (map2 == NULL) { 9f51c05dc41a6d Wen Yang 2018-12-05 818 clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, 9f51c05dc41a6d Wen Yang 2018-12-05 819 (void *)&map->passive.flags); 9f51c05dc41a6d Wen Yang 2018-12-05 820 pvcalls_exit_sock(sock); 9f51c05dc41a6d Wen Yang 2018-12-05 821 return -ENOMEM; 9f51c05dc41a6d Wen Yang 2018-12-05 822 } 9f51c05dc41a6d Wen Yang 2018-12-05 823 ret = alloc_active_ring(map2); 9774c6cca26610 Stefano Stabellini 2017-10-30 824 if (ret < 0) { 9774c6cca26610 Stefano Stabellini 2017-10-30 825 clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, 9774c6cca26610 Stefano Stabellini 2017-10-30 826 (void *)&map->passive.flags); 9f51c05dc41a6d Wen Yang 2018-12-05 827 kfree(map2); 64d6871827b1e2 Stefano Stabellini 2018-02-14 828 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 829 return ret; 9774c6cca26610 Stefano Stabellini 2017-10-30 830 } c66bb48edd58c3 Juergen Gross 2023-04-03 831 ret = create_active(map2, &evtchn); 9f51c05dc41a6d Wen Yang 2018-12-05 832 if (ret < 0) { 9f51c05dc41a6d Wen Yang 2018-12-05 833 free_active_ring(map2); 9f51c05dc41a6d Wen Yang 2018-12-05 834 kfree(map2); c66bb48edd58c3 Juergen Gross 2023-04-03 835 clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, c66bb48edd58c3 Juergen Gross 2023-04-03 836 (void *)&map->passive.flags); 64d6871827b1e2 Stefano Stabellini 2018-02-14 837 pvcalls_exit_sock(sock); 9f51c05dc41a6d Wen Yang 2018-12-05 838 return ret; 9774c6cca26610 Stefano Stabellini 2017-10-30 839 } 9f51c05dc41a6d Wen Yang 2018-12-05 840 c66bb48edd58c3 Juergen Gross 2023-04-03 841 spin_lock(&bedata->socket_lock); c66bb48edd58c3 Juergen Gross 2023-04-03 842 ret = get_request(bedata, &req_id); 9774c6cca26610 Stefano Stabellini 2017-10-30 843 if (ret < 0) { 9774c6cca26610 Stefano Stabellini 2017-10-30 844 clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, 9774c6cca26610 Stefano Stabellini 2017-10-30 845 (void *)&map->passive.flags); 9774c6cca26610 Stefano Stabellini 2017-10-30 846 spin_unlock(&bedata->socket_lock); c66bb48edd58c3 Juergen Gross 2023-04-03 847 pvcalls_front_free_map(bedata, map2); 64d6871827b1e2 Stefano Stabellini 2018-02-14 848 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 849 return ret; 9774c6cca26610 Stefano Stabellini 2017-10-30 850 } c66bb48edd58c3 Juergen Gross 2023-04-03 851 9774c6cca26610 Stefano Stabellini 2017-10-30 852 list_add_tail(&map2->list, &bedata->socket_mappings); 9774c6cca26610 Stefano Stabellini 2017-10-30 853 9774c6cca26610 Stefano Stabellini 2017-10-30 854 req = RING_GET_REQUEST(&bedata->ring, req_id); 9774c6cca26610 Stefano Stabellini 2017-10-30 855 req->req_id = req_id; 9774c6cca26610 Stefano Stabellini 2017-10-30 856 req->cmd = PVCALLS_ACCEPT; 9774c6cca26610 Stefano Stabellini 2017-10-30 857 req->u.accept.id = (uintptr_t) map; 9774c6cca26610 Stefano Stabellini 2017-10-30 858 req->u.accept.ref = map2->active.ref; 9774c6cca26610 Stefano Stabellini 2017-10-30 859 req->u.accept.id_new = (uintptr_t) map2; 9774c6cca26610 Stefano Stabellini 2017-10-30 860 req->u.accept.evtchn = evtchn; 9774c6cca26610 Stefano Stabellini 2017-10-30 861 map->passive.accept_map = map2; 9774c6cca26610 Stefano Stabellini 2017-10-30 862 9774c6cca26610 Stefano Stabellini 2017-10-30 863 bedata->ring.req_prod_pvt++; 9774c6cca26610 Stefano Stabellini 2017-10-30 864 RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(&bedata->ring, notify); 9774c6cca26610 Stefano Stabellini 2017-10-30 865 spin_unlock(&bedata->socket_lock); 9774c6cca26610 Stefano Stabellini 2017-10-30 866 if (notify) 9774c6cca26610 Stefano Stabellini 2017-10-30 867 notify_remote_via_irq(bedata->irq); 9774c6cca26610 Stefano Stabellini 2017-10-30 868 /* We could check if we have received a response before returning. */ 9774c6cca26610 Stefano Stabellini 2017-10-30 869 if (nonblock) { 9774c6cca26610 Stefano Stabellini 2017-10-30 870 WRITE_ONCE(map->passive.inflight_req_id, req_id); 64d6871827b1e2 Stefano Stabellini 2018-02-14 871 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 872 return -EAGAIN; 9774c6cca26610 Stefano Stabellini 2017-10-30 873 } 9774c6cca26610 Stefano Stabellini 2017-10-30 874 9774c6cca26610 Stefano Stabellini 2017-10-30 875 if (wait_event_interruptible(bedata->inflight_req, 9774c6cca26610 Stefano Stabellini 2017-10-30 876 READ_ONCE(bedata->rsp[req_id].req_id) == req_id)) { 64d6871827b1e2 Stefano Stabellini 2018-02-14 877 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 878 return -EINTR; 9774c6cca26610 Stefano Stabellini 2017-10-30 879 } 9774c6cca26610 Stefano Stabellini 2017-10-30 880 /* read req_id, then the content */ 9774c6cca26610 Stefano Stabellini 2017-10-30 881 smp_rmb(); 9774c6cca26610 Stefano Stabellini 2017-10-30 882 9774c6cca26610 Stefano Stabellini 2017-10-30 883 received: 9774c6cca26610 Stefano Stabellini 2017-10-30 884 map2->sock = newsock; beee1fbe8f7d57 Stefano Stabellini 2018-12-21 885 newsock->sk = sk_alloc(sock_net(sock->sk), PF_INET, GFP_KERNEL, &pvcalls_proto, false); 9774c6cca26610 Stefano Stabellini 2017-10-30 886 if (!newsock->sk) { 9774c6cca26610 Stefano Stabellini 2017-10-30 887 bedata->rsp[req_id].req_id = PVCALLS_INVALID_ID; 9774c6cca26610 Stefano Stabellini 2017-10-30 888 map->passive.inflight_req_id = PVCALLS_INVALID_ID; 9774c6cca26610 Stefano Stabellini 2017-10-30 889 clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, 9774c6cca26610 Stefano Stabellini 2017-10-30 890 (void *)&map->passive.flags); 9774c6cca26610 Stefano Stabellini 2017-10-30 891 pvcalls_front_free_map(bedata, map2); 64d6871827b1e2 Stefano Stabellini 2018-02-14 892 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 893 return -ENOMEM; 9774c6cca26610 Stefano Stabellini 2017-10-30 894 } 9774c6cca26610 Stefano Stabellini 2017-10-30 895 newsock->sk->sk_send_head = (void *)map2; 9774c6cca26610 Stefano Stabellini 2017-10-30 896 9774c6cca26610 Stefano Stabellini 2017-10-30 897 ret = bedata->rsp[req_id].ret; 9774c6cca26610 Stefano Stabellini 2017-10-30 898 bedata->rsp[req_id].req_id = PVCALLS_INVALID_ID; 9774c6cca26610 Stefano Stabellini 2017-10-30 899 map->passive.inflight_req_id = PVCALLS_INVALID_ID; 9774c6cca26610 Stefano Stabellini 2017-10-30 900 9774c6cca26610 Stefano Stabellini 2017-10-30 901 clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT, (void *)&map->passive.flags); 9774c6cca26610 Stefano Stabellini 2017-10-30 902 wake_up(&map->passive.inflight_accept_req); 9774c6cca26610 Stefano Stabellini 2017-10-30 903 64d6871827b1e2 Stefano Stabellini 2018-02-14 904 pvcalls_exit_sock(sock); 9774c6cca26610 Stefano Stabellini 2017-10-30 905 return ret; 9774c6cca26610 Stefano Stabellini 2017-10-30 906 } 9774c6cca26610 Stefano Stabellini 2017-10-30 907 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |