From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FAKE_REPLY_C, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 09C22C433DB for ; Thu, 18 Feb 2021 14:24:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 922C364EAF for ; Thu, 18 Feb 2021 14:24:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230465AbhBROXS (ORCPT ); Thu, 18 Feb 2021 09:23:18 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:55954 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232824AbhBRM27 (ORCPT ); Thu, 18 Feb 2021 07:28:59 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 11ICPcPW053030; Thu, 18 Feb 2021 12:27:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : mime-version : content-type : in-reply-to; s=corp-2020-01-29; bh=+L7xFlB4Jg8JQqJWksc18Xt9BgXvXPkLR1og01WH1Zg=; b=zu/eBgUSZ/hxvbw6fq+/jQJVTsbk5+iYy0fUfgUx0Mj5+86ZXnxtm1t+t6Nl/HWluP7W 10x+MgA0wRzxG7B9qN6Ha3O5ViYVnigVl7z1OipY8mfuhqS+xZgIVKVi6mN1UCO1Yf7i Gx/L+H37SHUOOVAYcLbCJh5Hcm0E8K8k5YyO+SAejRcMEhNbLdSthp6AP2vBsxUZQB5Z JEYy9KCmy7KRVPISj81RovXeA1mW+Aihf574coMRgL92BGDp2xB9BsHj+os6281b5AZS ui6GOMWpAjbmu0cJcVc8pyN0iKQnYAfRd4SOU2dnpvejayZVJ0zYy+DQGywyQsO1Eufm 3Q== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2130.oracle.com with ESMTP id 36p49bdwm9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Feb 2021 12:27:32 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 11ICKWUn171270; Thu, 18 Feb 2021 12:27:32 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3030.oracle.com with ESMTP id 36prbqq1ka-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Feb 2021 12:27:32 +0000 Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 11ICRS6W000599; Thu, 18 Feb 2021 12:27:28 GMT Received: from kadam (/102.36.221.92) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 18 Feb 2021 04:27:26 -0800 Date: Thu, 18 Feb 2021 15:27:15 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Arnaud Pouliquen , Bjorn Andersson , Ohad Ben-Cohen , Mathieu Poirier , Andy Gross Cc: lkp@intel.com, kbuild-all@lists.01.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-msm@vger.kernel.org, arnaud.pouliquen@foss.st.com Subject: Re: [PATCH v4 11/16] rpmsg: virtio: register the rpmsg_ctrl device Message-ID: <20210218122715.GJ2087@kadam> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="j13PAD5Nz8dz2ik7" Content-Disposition: inline In-Reply-To: <20210217132905.1485-12-arnaud.pouliquen@foss.st.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9898 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102180110 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9898 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 phishscore=0 clxscore=1011 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102180110 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org --j13PAD5Nz8dz2ik7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Arnaud, url: https://github.com/0day-ci/linux/commits/Arnaud-Pouliquen/introduce-a-generic-IOCTL-interface-for-RPMsg-channels-management/20210217-214044 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git f40ddce88593482919761f74910f42f4b84c004b config: x86_64-randconfig-m001-20210215 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/rpmsg/virtio_rpmsg_bus.c:977 rpmsg_probe() error: uninitialized symbol 'vch'. vim +/vch +977 drivers/rpmsg/virtio_rpmsg_bus.c bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 845 static int rpmsg_probe(struct virtio_device *vdev) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 846 { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 847 vq_callback_t *vq_cbs[] = { rpmsg_recv_done, rpmsg_xmit_done }; f7ad26ff952b3c Stefan Hajnoczi 2015-12-17 848 static const char * const names[] = { "input", "output" }; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 849 struct virtqueue *vqs[2]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 850 struct virtproc_info *vrp; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 851 struct virtio_rpmsg_channel *vch; e3bba4363fe87b Arnaud Pouliquen 2021-02-17 852 struct rpmsg_device *rpdev_ns = NULL, *rpdev_ctrl = NULL; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 853 void *bufs_va; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 854 int err = 0, i; b1b9891441fa33 Suman Anna 2014-09-16 855 size_t total_buf_space; 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 856 bool notify; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 857 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 858 vrp = kzalloc(sizeof(*vrp), GFP_KERNEL); You might want to consider updating this stuff to devm_kzalloc() which is trendy with the kids these days. It's cleaned up automatically when the module is released. bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 859 if (!vrp) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 860 return -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 861 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 862 vrp->vdev = vdev; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 863 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 864 idr_init(&vrp->endpoints); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 865 mutex_init(&vrp->endpoints_lock); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 866 mutex_init(&vrp->tx_lock); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 867 init_waitqueue_head(&vrp->sendq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 868 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 869 /* We expect two virtqueues, rx and tx (and in this order) */ 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 870 err = virtio_find_vqs(vdev, 2, vqs, vq_cbs, names, NULL); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 871 if (err) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 872 goto free_vrp; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 873 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 874 vrp->rvq = vqs[0]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 875 vrp->svq = vqs[1]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 876 b1b9891441fa33 Suman Anna 2014-09-16 877 /* we expect symmetric tx/rx vrings */ b1b9891441fa33 Suman Anna 2014-09-16 878 WARN_ON(virtqueue_get_vring_size(vrp->rvq) != b1b9891441fa33 Suman Anna 2014-09-16 879 virtqueue_get_vring_size(vrp->svq)); b1b9891441fa33 Suman Anna 2014-09-16 880 b1b9891441fa33 Suman Anna 2014-09-16 881 /* we need less buffers if vrings are small */ b1b9891441fa33 Suman Anna 2014-09-16 882 if (virtqueue_get_vring_size(vrp->rvq) < MAX_RPMSG_NUM_BUFS / 2) b1b9891441fa33 Suman Anna 2014-09-16 883 vrp->num_bufs = virtqueue_get_vring_size(vrp->rvq) * 2; b1b9891441fa33 Suman Anna 2014-09-16 884 else b1b9891441fa33 Suman Anna 2014-09-16 885 vrp->num_bufs = MAX_RPMSG_NUM_BUFS; b1b9891441fa33 Suman Anna 2014-09-16 886 f93848f9eeb0f8 Loic Pallardy 2017-03-28 887 vrp->buf_size = MAX_RPMSG_BUF_SIZE; f93848f9eeb0f8 Loic Pallardy 2017-03-28 888 f93848f9eeb0f8 Loic Pallardy 2017-03-28 889 total_buf_space = vrp->num_bufs * vrp->buf_size; b1b9891441fa33 Suman Anna 2014-09-16 890 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 891 /* allocate coherent memory for the buffers */ d999b622fcfb39 Loic Pallardy 2019-01-10 892 bufs_va = dma_alloc_coherent(vdev->dev.parent, b1b9891441fa33 Suman Anna 2014-09-16 893 total_buf_space, &vrp->bufs_dma, b1b9891441fa33 Suman Anna 2014-09-16 894 GFP_KERNEL); 3119b487e03650 Wei Yongjun 2013-04-29 895 if (!bufs_va) { 3119b487e03650 Wei Yongjun 2013-04-29 896 err = -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 897 goto vqs_del; 3119b487e03650 Wei Yongjun 2013-04-29 898 } bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 899 de4064af76537f Suman Anna 2018-10-23 900 dev_dbg(&vdev->dev, "buffers: va %pK, dma %pad\n", 8d95b322ba34b1 Anna, Suman 2016-08-12 901 bufs_va, &vrp->bufs_dma); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 902 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 903 /* half of the buffers is dedicated for RX */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 904 vrp->rbufs = bufs_va; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 905 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 906 /* and half is dedicated for TX */ b1b9891441fa33 Suman Anna 2014-09-16 907 vrp->sbufs = bufs_va + total_buf_space / 2; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 908 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 909 /* set up the receive buffers */ b1b9891441fa33 Suman Anna 2014-09-16 910 for (i = 0; i < vrp->num_bufs / 2; i++) { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 911 struct scatterlist sg; f93848f9eeb0f8 Loic Pallardy 2017-03-28 912 void *cpu_addr = vrp->rbufs + i * vrp->buf_size; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 913 9dd87c2af651b0 Loic Pallardy 2017-03-28 914 rpmsg_sg_init(&sg, cpu_addr, vrp->buf_size); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 915 cee51d69a45b6c Rusty Russell 2013-03-20 916 err = virtqueue_add_inbuf(vrp->rvq, &sg, 1, cpu_addr, bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 917 GFP_KERNEL); 57e1a37347d31c Rusty Russell 2012-10-16 918 WARN_ON(err); /* sanity check; this can't really happen */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 919 } bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 920 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 921 /* suppress "tx-complete" interrupts */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 922 virtqueue_disable_cb(vrp->svq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 923 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 924 vdev->priv = vrp; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 925 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 926 /* if supported by the remote processor, enable the name service */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 927 if (virtio_has_feature(vdev, VIRTIO_RPMSG_F_NS)) { 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 928 vch = kzalloc(sizeof(*vch), GFP_KERNEL); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 929 if (!vch) { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 930 err = -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 931 goto free_coherent; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 932 } 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 933 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 934 /* Link the channel to our vrp */ 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 935 vch->vrp = vrp; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 936 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 937 /* Assign public information to the rpmsg_device */ 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 938 rpdev_ns = &vch->rpdev; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 939 rpdev_ns->ops = &virtio_rpmsg_ops; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 940 rpdev_ns->little_endian = virtio_is_little_endian(vrp->vdev); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 941 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 942 rpdev_ns->dev.parent = &vrp->vdev->dev; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 943 rpdev_ns->dev.release = virtio_rpmsg_release_device; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 944 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 945 err = rpmsg_ns_register_device(rpdev_ns); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 946 if (err) 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 947 goto free_coherent; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 948 } "vch" not initialized on else path. Also keep in mind that "rpdev_ctrl" is NULL at this point. bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 949 e3bba4363fe87b Arnaud Pouliquen 2021-02-17 950 rpdev_ctrl = rpmsg_virtio_add_char_dev(vdev); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ e3bba4363fe87b Arnaud Pouliquen 2021-02-17 951 if (IS_ERR(rpdev_ctrl)) { e3bba4363fe87b Arnaud Pouliquen 2021-02-17 952 err = PTR_ERR(rpdev_ctrl); e3bba4363fe87b Arnaud Pouliquen 2021-02-17 953 goto free_coherent; I should create a Smatch warning for this as well. e3bba4363fe87b Arnaud Pouliquen 2021-02-17 954 } 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 955 /* 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 956 * Prepare to kick but don't notify yet - we can't do this before 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 957 * device is ready. 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 958 */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 959 notify = virtqueue_kick_prepare(vrp->rvq); 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 960 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 961 /* From this point on, we can notify and get callbacks. */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 962 virtio_device_ready(vdev); 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 963 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 964 /* tell the remote processor it can start sending messages */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 965 /* 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 966 * this might be concurrent with callbacks, but we are only 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 967 * doing notify, not a full kick here, so that's ok. 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 968 */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 969 if (notify) 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 970 virtqueue_notify(vrp->rvq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 971 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 972 dev_info(&vdev->dev, "rpmsg host is online\n"); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 973 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 974 return 0; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 975 bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 976 free_coherent: 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 @977 kfree(vch); ^^^^^^^^^^ Uninitalized. e3bba4363fe87b Arnaud Pouliquen 2021-02-17 978 kfree(to_virtio_rpmsg_channel(rpdev_ctrl)); Now, let's say that "rpdev_ctrl" is NULL. That's fine because to_virtio_rpmsg_channel() is a no-op so it becomes kfree(NULL) which is a no-op. But why even have the to_virtio_rpmsg_channel() function if we are going to rely on it being a no-op? If "rpdev_ctrl" is an error pointer this will crash. The problem is we are freeing stuff that was not allocated. The fix for this is: 1) Free the most recent successful allocation. 2) The unwind code should mirror the allocation code. 3) Choose label names which say what the goto does. If the most recent allocation was "vch" the goto should be "goto free_vch;" 4) Every allocation function should have a matching free function. It's a layering violation to have to know that the internals of rpmsg_virtio_add_char_dev(). So create function: void rpmsg_virtio_del_char_dev(struct rpmsg_device *rpdev_ctrl) { if (!rpdev_ctrl) return; kfree(to_virtio_rpmsg_channel(rpdev_ctrl)); } The clean up code looks like this: return 0; free_vch: if (virtio_has_feature(vdev, VIRTIO_RPMSG_F_NS)) kfree(vch); free_ctrl: rpmsg_virtio_del_char_dev(rpdev_ctrl); free_coherent: dma_free_coherent(vdev->dev.parent, total_buf_space, bufs_va, vrp->bufs_dma); vqs_del: vdev->config->del_vqs(vrp->vdev); Then just go through the function and as you read down the code keep track of the most recent successful allocation and goto the correct free label. d999b622fcfb39 Loic Pallardy 2019-01-10 979 dma_free_coherent(vdev->dev.parent, total_buf_space, eeb0074f36d1ab Fernando Guzman Lugo 2012-08-29 980 bufs_va, vrp->bufs_dma); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 981 vqs_del: bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 982 vdev->config->del_vqs(vrp->vdev); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 983 free_vrp: bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 984 kfree(vrp); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 985 return err; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 986 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --j13PAD5Nz8dz2ik7 Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 dhZC5rQAgM8dmQPvAQA= --j13PAD5Nz8dz2ik7-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2292965507101011148==" MIME-Version: 1.0 From: Dan Carpenter Subject: Re: [PATCH v4 11/16] rpmsg: virtio: register the rpmsg_ctrl device Date: Thu, 18 Feb 2021 15:27:15 +0300 Message-ID: <20210218122715.GJ2087@kadam> In-Reply-To: <20210217132905.1485-12-arnaud.pouliquen@foss.st.com> List-Id: To: kbuild@lists.01.org --===============2292965507101011148== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Arnaud, url: https://github.com/0day-ci/linux/commits/Arnaud-Pouliquen/introduce= -a-generic-IOCTL-interface-for-RPMsg-channels-management/20210217-214044 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = f40ddce88593482919761f74910f42f4b84c004b config: x86_64-randconfig-m001-20210215 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/rpmsg/virtio_rpmsg_bus.c:977 rpmsg_probe() error: uninitialized sym= bol 'vch'. vim +/vch +977 drivers/rpmsg/virtio_rpmsg_bus.c bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 845 static int rpmsg_probe= (struct virtio_device *vdev) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 846 { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 847 vq_callback_t *vq_cbs= [] =3D { rpmsg_recv_done, rpmsg_xmit_done }; f7ad26ff952b3c Stefan Hajnoczi 2015-12-17 848 static const char * c= onst names[] =3D { "input", "output" }; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 849 struct virtqueue *vqs= [2]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 850 struct virtproc_info = *vrp; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 851 struct virtio_rpmsg_c= hannel *vch; e3bba4363fe87b Arnaud Pouliquen 2021-02-17 852 struct rpmsg_device *= rpdev_ns =3D NULL, *rpdev_ctrl =3D NULL; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 853 void *bufs_va; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 854 int err =3D 0, i; b1b9891441fa33 Suman Anna 2014-09-16 855 size_t total_buf_spac= e; 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 856 bool notify; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 857 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 858 vrp =3D kzalloc(sizeo= f(*vrp), GFP_KERNEL); You might want to consider updating this stuff to devm_kzalloc() which is trendy with the kids these days. It's cleaned up automatically when the module is released. bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 859 if (!vrp) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 860 return -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 861 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 862 vrp->vdev =3D vdev; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 863 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 864 idr_init(&vrp->endpoi= nts); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 865 mutex_init(&vrp->endp= oints_lock); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 866 mutex_init(&vrp->tx_l= ock); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 867 init_waitqueue_head(&= vrp->sendq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 868 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 869 /* We expect two virt= queues, rx and tx (and in this order) */ 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 870 err =3D virtio_find_v= qs(vdev, 2, vqs, vq_cbs, names, NULL); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 871 if (err) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 872 goto free_vrp; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 873 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 874 vrp->rvq =3D vqs[0]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 875 vrp->svq =3D vqs[1]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 876 = b1b9891441fa33 Suman Anna 2014-09-16 877 /* we expect symmetri= c tx/rx vrings */ b1b9891441fa33 Suman Anna 2014-09-16 878 WARN_ON(virtqueue_get= _vring_size(vrp->rvq) !=3D b1b9891441fa33 Suman Anna 2014-09-16 879 virtqueue_get_vring_= size(vrp->svq)); b1b9891441fa33 Suman Anna 2014-09-16 880 = b1b9891441fa33 Suman Anna 2014-09-16 881 /* we need less buffe= rs if vrings are small */ b1b9891441fa33 Suman Anna 2014-09-16 882 if (virtqueue_get_vri= ng_size(vrp->rvq) < MAX_RPMSG_NUM_BUFS / 2) b1b9891441fa33 Suman Anna 2014-09-16 883 vrp->num_bufs =3D vi= rtqueue_get_vring_size(vrp->rvq) * 2; b1b9891441fa33 Suman Anna 2014-09-16 884 else b1b9891441fa33 Suman Anna 2014-09-16 885 vrp->num_bufs =3D MA= X_RPMSG_NUM_BUFS; b1b9891441fa33 Suman Anna 2014-09-16 886 = f93848f9eeb0f8 Loic Pallardy 2017-03-28 887 vrp->buf_size =3D MAX= _RPMSG_BUF_SIZE; f93848f9eeb0f8 Loic Pallardy 2017-03-28 888 = f93848f9eeb0f8 Loic Pallardy 2017-03-28 889 total_buf_space =3D v= rp->num_bufs * vrp->buf_size; b1b9891441fa33 Suman Anna 2014-09-16 890 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 891 /* allocate coherent = memory for the buffers */ d999b622fcfb39 Loic Pallardy 2019-01-10 892 bufs_va =3D dma_alloc= _coherent(vdev->dev.parent, b1b9891441fa33 Suman Anna 2014-09-16 893 total_buf_spa= ce, &vrp->bufs_dma, b1b9891441fa33 Suman Anna 2014-09-16 894 GFP_KERNEL); 3119b487e03650 Wei Yongjun 2013-04-29 895 if (!bufs_va) { 3119b487e03650 Wei Yongjun 2013-04-29 896 err =3D -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 897 goto vqs_del; 3119b487e03650 Wei Yongjun 2013-04-29 898 } bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 899 = de4064af76537f Suman Anna 2018-10-23 900 dev_dbg(&vdev->dev, "= buffers: va %pK, dma %pad\n", 8d95b322ba34b1 Anna, Suman 2016-08-12 901 bufs_va, &vrp->bufs_= dma); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 902 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 903 /* half of the buffer= s is dedicated for RX */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 904 vrp->rbufs =3D bufs_v= a; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 905 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 906 /* and half is dedica= ted for TX */ b1b9891441fa33 Suman Anna 2014-09-16 907 vrp->sbufs =3D bufs_v= a + total_buf_space / 2; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 908 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 909 /* set up the receive= buffers */ b1b9891441fa33 Suman Anna 2014-09-16 910 for (i =3D 0; i < vrp= ->num_bufs / 2; i++) { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 911 struct scatterlist s= g; f93848f9eeb0f8 Loic Pallardy 2017-03-28 912 void *cpu_addr =3D v= rp->rbufs + i * vrp->buf_size; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 913 = 9dd87c2af651b0 Loic Pallardy 2017-03-28 914 rpmsg_sg_init(&sg, c= pu_addr, vrp->buf_size); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 915 = cee51d69a45b6c Rusty Russell 2013-03-20 916 err =3D virtqueue_ad= d_inbuf(vrp->rvq, &sg, 1, cpu_addr, bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 917 GFP_KERNEL); 57e1a37347d31c Rusty Russell 2012-10-16 918 WARN_ON(err); /* san= ity check; this can't really happen */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 919 } bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 920 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 921 /* suppress "tx-compl= ete" interrupts */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 922 virtqueue_disable_cb(= vrp->svq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 923 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 924 vdev->priv =3D vrp; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 925 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 926 /* if supported by th= e remote processor, enable the name service */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 927 if (virtio_has_featur= e(vdev, VIRTIO_RPMSG_F_NS)) { 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 928 vch =3D kzalloc(size= of(*vch), GFP_KERNEL); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 929 if (!vch) { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 930 err =3D -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 931 goto free_coherent; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 932 } 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 933 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 934 /* Link the channel = to our vrp */ 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 935 vch->vrp =3D vrp; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 936 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 937 /* Assign public inf= ormation to the rpmsg_device */ 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 938 rpdev_ns =3D &vch->r= pdev; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 939 rpdev_ns->ops =3D &v= irtio_rpmsg_ops; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 940 rpdev_ns->little_end= ian =3D virtio_is_little_endian(vrp->vdev); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 941 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 942 rpdev_ns->dev.parent= =3D &vrp->vdev->dev; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 943 rpdev_ns->dev.releas= e =3D virtio_rpmsg_release_device; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 944 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 945 err =3D rpmsg_ns_reg= ister_device(rpdev_ns); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 946 if (err) 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 947 goto free_coherent; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 948 } "vch" not initialized on else path. Also keep in mind that "rpdev_ctrl" is NULL at this point. bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 949 = e3bba4363fe87b Arnaud Pouliquen 2021-02-17 950 rpdev_ctrl =3D rpmsg_= virtio_add_char_dev(vdev); ^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^^^^^^^^^^^^ e3bba4363fe87b Arnaud Pouliquen 2021-02-17 951 if (IS_ERR(rpdev_ctrl= )) { e3bba4363fe87b Arnaud Pouliquen 2021-02-17 952 err =3D PTR_ERR(rpde= v_ctrl); e3bba4363fe87b Arnaud Pouliquen 2021-02-17 953 goto free_coherent; I should create a Smatch warning for this as well. e3bba4363fe87b Arnaud Pouliquen 2021-02-17 954 } 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 955 /* 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 956 * Prepare to kick bu= t don't notify yet - we can't do this before 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 957 * device is ready. 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 958 */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 959 notify =3D virtqueue_= kick_prepare(vrp->rvq); 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 960 = 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 961 /* From this point on= , we can notify and get callbacks. */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 962 virtio_device_ready(v= dev); 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 963 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 964 /* tell the remote pr= ocessor it can start sending messages */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 965 /* 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 966 * this might be conc= urrent with callbacks, but we are only 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 967 * doing notify, not = a full kick here, so that's ok. 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 968 */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 969 if (notify) 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 970 virtqueue_notify(vrp= ->rvq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 971 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 972 dev_info(&vdev->dev, = "rpmsg host is online\n"); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 973 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 974 return 0; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 975 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 976 free_coherent: 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 @977 kfree(vch); ^^^^^^^^^^ Uninitalized. e3bba4363fe87b Arnaud Pouliquen 2021-02-17 978 kfree(to_virtio_rpmsg= _channel(rpdev_ctrl)); Now, let's say that "rpdev_ctrl" is NULL. That's fine because to_virtio_rpmsg_channel() is a no-op so it becomes kfree(NULL) which is a no-op. But why even have the to_virtio_rpmsg_channel() function if we are going to rely on it being a no-op? If "rpdev_ctrl" is an error pointer this will crash. The problem is we are freeing stuff that was not allocated. The fix for this is: 1) Free the most recent successful allocation. 2) The unwind code should mirror the allocation code. 3) Choose label names which say what the goto does. If the most recent allocation was "vch" the goto should be "goto free_vch;" 4) Every allocation function should have a matching free function. It's a layering violation to have to know that the internals of rpmsg_virtio_add_char_dev(). So create function: void rpmsg_virtio_del_char_dev(struct rpmsg_device *rpdev_ctrl) { if (!rpdev_ctrl) return; kfree(to_virtio_rpmsg_channel(rpdev_ctrl)); } The clean up code looks like this: return 0; free_vch: if (virtio_has_feature(vdev, VIRTIO_RPMSG_F_NS)) kfree(vch); free_ctrl: rpmsg_virtio_del_char_dev(rpdev_ctrl); free_coherent: dma_free_coherent(vdev->dev.parent, total_buf_space, bufs_va, vrp->bufs_dma); vqs_del: vdev->config->del_vqs(vrp->vdev); Then just go through the function and as you read down the code keep track of the most recent successful allocation and goto the correct free label. d999b622fcfb39 Loic Pallardy 2019-01-10 979 dma_free_coherent(vde= v->dev.parent, total_buf_space, eeb0074f36d1ab Fernando Guzman Lugo 2012-08-29 980 bufs_va, vrp->buf= s_dma); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 981 vqs_del: bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 982 vdev->config->del_vqs= (vrp->vdev); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 983 free_vrp: bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 984 kfree(vrp); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 985 return err; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 986 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============2292965507101011148== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 AQA= --===============2292965507101011148==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0973449907390787080==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: Re: [PATCH v4 11/16] rpmsg: virtio: register the rpmsg_ctrl device Date: Thu, 18 Feb 2021 15:27:15 +0300 Message-ID: <20210218122715.GJ2087@kadam> In-Reply-To: <20210217132905.1485-12-arnaud.pouliquen@foss.st.com> List-Id: --===============0973449907390787080== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Arnaud, url: https://github.com/0day-ci/linux/commits/Arnaud-Pouliquen/introduce= -a-generic-IOCTL-interface-for-RPMsg-channels-management/20210217-214044 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = f40ddce88593482919761f74910f42f4b84c004b config: x86_64-randconfig-m001-20210215 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/rpmsg/virtio_rpmsg_bus.c:977 rpmsg_probe() error: uninitialized sym= bol 'vch'. vim +/vch +977 drivers/rpmsg/virtio_rpmsg_bus.c bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 845 static int rpmsg_probe= (struct virtio_device *vdev) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 846 { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 847 vq_callback_t *vq_cbs= [] =3D { rpmsg_recv_done, rpmsg_xmit_done }; f7ad26ff952b3c Stefan Hajnoczi 2015-12-17 848 static const char * c= onst names[] =3D { "input", "output" }; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 849 struct virtqueue *vqs= [2]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 850 struct virtproc_info = *vrp; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 851 struct virtio_rpmsg_c= hannel *vch; e3bba4363fe87b Arnaud Pouliquen 2021-02-17 852 struct rpmsg_device *= rpdev_ns =3D NULL, *rpdev_ctrl =3D NULL; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 853 void *bufs_va; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 854 int err =3D 0, i; b1b9891441fa33 Suman Anna 2014-09-16 855 size_t total_buf_spac= e; 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 856 bool notify; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 857 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 858 vrp =3D kzalloc(sizeo= f(*vrp), GFP_KERNEL); You might want to consider updating this stuff to devm_kzalloc() which is trendy with the kids these days. It's cleaned up automatically when the module is released. bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 859 if (!vrp) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 860 return -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 861 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 862 vrp->vdev =3D vdev; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 863 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 864 idr_init(&vrp->endpoi= nts); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 865 mutex_init(&vrp->endp= oints_lock); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 866 mutex_init(&vrp->tx_l= ock); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 867 init_waitqueue_head(&= vrp->sendq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 868 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 869 /* We expect two virt= queues, rx and tx (and in this order) */ 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 870 err =3D virtio_find_v= qs(vdev, 2, vqs, vq_cbs, names, NULL); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 871 if (err) bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 872 goto free_vrp; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 873 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 874 vrp->rvq =3D vqs[0]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 875 vrp->svq =3D vqs[1]; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 876 = b1b9891441fa33 Suman Anna 2014-09-16 877 /* we expect symmetri= c tx/rx vrings */ b1b9891441fa33 Suman Anna 2014-09-16 878 WARN_ON(virtqueue_get= _vring_size(vrp->rvq) !=3D b1b9891441fa33 Suman Anna 2014-09-16 879 virtqueue_get_vring_= size(vrp->svq)); b1b9891441fa33 Suman Anna 2014-09-16 880 = b1b9891441fa33 Suman Anna 2014-09-16 881 /* we need less buffe= rs if vrings are small */ b1b9891441fa33 Suman Anna 2014-09-16 882 if (virtqueue_get_vri= ng_size(vrp->rvq) < MAX_RPMSG_NUM_BUFS / 2) b1b9891441fa33 Suman Anna 2014-09-16 883 vrp->num_bufs =3D vi= rtqueue_get_vring_size(vrp->rvq) * 2; b1b9891441fa33 Suman Anna 2014-09-16 884 else b1b9891441fa33 Suman Anna 2014-09-16 885 vrp->num_bufs =3D MA= X_RPMSG_NUM_BUFS; b1b9891441fa33 Suman Anna 2014-09-16 886 = f93848f9eeb0f8 Loic Pallardy 2017-03-28 887 vrp->buf_size =3D MAX= _RPMSG_BUF_SIZE; f93848f9eeb0f8 Loic Pallardy 2017-03-28 888 = f93848f9eeb0f8 Loic Pallardy 2017-03-28 889 total_buf_space =3D v= rp->num_bufs * vrp->buf_size; b1b9891441fa33 Suman Anna 2014-09-16 890 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 891 /* allocate coherent = memory for the buffers */ d999b622fcfb39 Loic Pallardy 2019-01-10 892 bufs_va =3D dma_alloc= _coherent(vdev->dev.parent, b1b9891441fa33 Suman Anna 2014-09-16 893 total_buf_spa= ce, &vrp->bufs_dma, b1b9891441fa33 Suman Anna 2014-09-16 894 GFP_KERNEL); 3119b487e03650 Wei Yongjun 2013-04-29 895 if (!bufs_va) { 3119b487e03650 Wei Yongjun 2013-04-29 896 err =3D -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 897 goto vqs_del; 3119b487e03650 Wei Yongjun 2013-04-29 898 } bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 899 = de4064af76537f Suman Anna 2018-10-23 900 dev_dbg(&vdev->dev, "= buffers: va %pK, dma %pad\n", 8d95b322ba34b1 Anna, Suman 2016-08-12 901 bufs_va, &vrp->bufs_= dma); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 902 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 903 /* half of the buffer= s is dedicated for RX */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 904 vrp->rbufs =3D bufs_v= a; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 905 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 906 /* and half is dedica= ted for TX */ b1b9891441fa33 Suman Anna 2014-09-16 907 vrp->sbufs =3D bufs_v= a + total_buf_space / 2; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 908 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 909 /* set up the receive= buffers */ b1b9891441fa33 Suman Anna 2014-09-16 910 for (i =3D 0; i < vrp= ->num_bufs / 2; i++) { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 911 struct scatterlist s= g; f93848f9eeb0f8 Loic Pallardy 2017-03-28 912 void *cpu_addr =3D v= rp->rbufs + i * vrp->buf_size; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 913 = 9dd87c2af651b0 Loic Pallardy 2017-03-28 914 rpmsg_sg_init(&sg, c= pu_addr, vrp->buf_size); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 915 = cee51d69a45b6c Rusty Russell 2013-03-20 916 err =3D virtqueue_ad= d_inbuf(vrp->rvq, &sg, 1, cpu_addr, bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 917 GFP_KERNEL); 57e1a37347d31c Rusty Russell 2012-10-16 918 WARN_ON(err); /* san= ity check; this can't really happen */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 919 } bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 920 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 921 /* suppress "tx-compl= ete" interrupts */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 922 virtqueue_disable_cb(= vrp->svq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 923 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 924 vdev->priv =3D vrp; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 925 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 926 /* if supported by th= e remote processor, enable the name service */ bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 927 if (virtio_has_featur= e(vdev, VIRTIO_RPMSG_F_NS)) { 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 928 vch =3D kzalloc(size= of(*vch), GFP_KERNEL); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 929 if (!vch) { bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 930 err =3D -ENOMEM; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 931 goto free_coherent; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 932 } 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 933 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 934 /* Link the channel = to our vrp */ 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 935 vch->vrp =3D vrp; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 936 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 937 /* Assign public inf= ormation to the rpmsg_device */ 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 938 rpdev_ns =3D &vch->r= pdev; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 939 rpdev_ns->ops =3D &v= irtio_rpmsg_ops; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 940 rpdev_ns->little_end= ian =3D virtio_is_little_endian(vrp->vdev); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 941 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 942 rpdev_ns->dev.parent= =3D &vrp->vdev->dev; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 943 rpdev_ns->dev.releas= e =3D virtio_rpmsg_release_device; 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 944 = 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 945 err =3D rpmsg_ns_reg= ister_device(rpdev_ns); 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 946 if (err) 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 947 goto free_coherent; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 948 } "vch" not initialized on else path. Also keep in mind that "rpdev_ctrl" is NULL at this point. bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 949 = e3bba4363fe87b Arnaud Pouliquen 2021-02-17 950 rpdev_ctrl =3D rpmsg_= virtio_add_char_dev(vdev); ^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^^^^^^^^^^^^ e3bba4363fe87b Arnaud Pouliquen 2021-02-17 951 if (IS_ERR(rpdev_ctrl= )) { e3bba4363fe87b Arnaud Pouliquen 2021-02-17 952 err =3D PTR_ERR(rpde= v_ctrl); e3bba4363fe87b Arnaud Pouliquen 2021-02-17 953 goto free_coherent; I should create a Smatch warning for this as well. e3bba4363fe87b Arnaud Pouliquen 2021-02-17 954 } 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 955 /* 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 956 * Prepare to kick bu= t don't notify yet - we can't do this before 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 957 * device is ready. 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 958 */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 959 notify =3D virtqueue_= kick_prepare(vrp->rvq); 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 960 = 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 961 /* From this point on= , we can notify and get callbacks. */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 962 virtio_device_ready(v= dev); 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 963 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 964 /* tell the remote pr= ocessor it can start sending messages */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 965 /* 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 966 * this might be conc= urrent with callbacks, but we are only 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 967 * doing notify, not = a full kick here, so that's ok. 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 968 */ 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 969 if (notify) 71e4b8bf0482fc Michael S. Tsirkin 2015-03-12 970 virtqueue_notify(vrp= ->rvq); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 971 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 972 dev_info(&vdev->dev, = "rpmsg host is online\n"); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 973 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 974 return 0; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 975 = bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 976 free_coherent: 950a7388f02bf7 Arnaud Pouliquen 2020-11-20 @977 kfree(vch); ^^^^^^^^^^ Uninitalized. e3bba4363fe87b Arnaud Pouliquen 2021-02-17 978 kfree(to_virtio_rpmsg= _channel(rpdev_ctrl)); Now, let's say that "rpdev_ctrl" is NULL. That's fine because to_virtio_rpmsg_channel() is a no-op so it becomes kfree(NULL) which is a no-op. But why even have the to_virtio_rpmsg_channel() function if we are going to rely on it being a no-op? If "rpdev_ctrl" is an error pointer this will crash. The problem is we are freeing stuff that was not allocated. The fix for this is: 1) Free the most recent successful allocation. 2) The unwind code should mirror the allocation code. 3) Choose label names which say what the goto does. If the most recent allocation was "vch" the goto should be "goto free_vch;" 4) Every allocation function should have a matching free function. It's a layering violation to have to know that the internals of rpmsg_virtio_add_char_dev(). So create function: void rpmsg_virtio_del_char_dev(struct rpmsg_device *rpdev_ctrl) { if (!rpdev_ctrl) return; kfree(to_virtio_rpmsg_channel(rpdev_ctrl)); } The clean up code looks like this: return 0; free_vch: if (virtio_has_feature(vdev, VIRTIO_RPMSG_F_NS)) kfree(vch); free_ctrl: rpmsg_virtio_del_char_dev(rpdev_ctrl); free_coherent: dma_free_coherent(vdev->dev.parent, total_buf_space, bufs_va, vrp->bufs_dma); vqs_del: vdev->config->del_vqs(vrp->vdev); Then just go through the function and as you read down the code keep track of the most recent successful allocation and goto the correct free label. d999b622fcfb39 Loic Pallardy 2019-01-10 979 dma_free_coherent(vde= v->dev.parent, total_buf_space, eeb0074f36d1ab Fernando Guzman Lugo 2012-08-29 980 bufs_va, vrp->buf= s_dma); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 981 vqs_del: bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 982 vdev->config->del_vqs= (vrp->vdev); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 983 free_vrp: bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 984 kfree(vrp); bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 985 return err; bcabbccabffe73 Ohad Ben-Cohen 2011-10-20 986 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0973449907390787080== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 AQA= --===============0973449907390787080==--