From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
robh+dt@kernel.org, gregkh@linuxfoundation.org
Cc: lkp@intel.com, kbuild-all@lists.01.org,
devicetree@vger.kernel.org, ekangupt@qti.qualcomm.com,
bkumar@qti.qualcomm.com, linux-kernel@vger.kernel.org,
srini@kernel.org, bjorn.andersson@linaro.org,
linux-arm-msm@vger.kernel.org,
Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
Subject: Re: [PATCH v3 11/12] misc: fastrpc: Add dma handle implementation
Date: Fri, 28 Jan 2022 10:09:55 +0300 [thread overview]
Message-ID: <202201272146.Ci8W6Th6-lkp@intel.com> (raw)
In-Reply-To: <20220126135304.16340-12-srinivas.kandagatla@linaro.org>
Hi Srinivas,
url: https://github.com/0day-ci/linux/commits/Srinivas-Kandagatla/misc-fastrpc-Add-missing-DSP-FastRPC-features/20220126-215705
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 515a2f507491e7c3818e74ef4f4e088c1fecb190
config: openrisc-randconfig-m031-20220124 (https://download.01.org/0day-ci/archive/20220127/202201272146.Ci8W6Th6-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/misc/fastrpc.c:1856 fastrpc_req_mem_map() warn: variable dereferenced before check 'map' (see line 1834)
vim +/map +1856 drivers/misc/fastrpc.c
b1c0b7969aa491 Jeya R 2022-01-26 1784 static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp)
b1c0b7969aa491 Jeya R 2022-01-26 1785 {
b1c0b7969aa491 Jeya R 2022-01-26 1786 struct fastrpc_invoke_args args[4] = { [0 ... 3] = { 0 } };
b1c0b7969aa491 Jeya R 2022-01-26 1787 struct fastrpc_mem_map_req_msg req_msg = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1788 struct fastrpc_mmap_rsp_msg rsp_msg = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1789 struct fastrpc_mem_unmap req_unmap = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1790 struct fastrpc_phy_page pages = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1791 struct fastrpc_mem_map req;
b1c0b7969aa491 Jeya R 2022-01-26 1792 struct device *dev = fl->sctx->dev;
b1c0b7969aa491 Jeya R 2022-01-26 1793 struct fastrpc_map *map = NULL;
b1c0b7969aa491 Jeya R 2022-01-26 1794 int err;
b1c0b7969aa491 Jeya R 2022-01-26 1795 u32 sc;
b1c0b7969aa491 Jeya R 2022-01-26 1796
b1c0b7969aa491 Jeya R 2022-01-26 1797 if (copy_from_user(&req, argp, sizeof(req)))
b1c0b7969aa491 Jeya R 2022-01-26 1798 return -EFAULT;
b1c0b7969aa491 Jeya R 2022-01-26 1799
b1c0b7969aa491 Jeya R 2022-01-26 1800 /* create SMMU mapping */
e52e7cb4a5a6f3 Srinivas Kandagatla 2022-01-26 1801 err = fastrpc_map_create(fl, req.fd, req.length, 0, &map);
b1c0b7969aa491 Jeya R 2022-01-26 1802 if (err) {
b1c0b7969aa491 Jeya R 2022-01-26 1803 dev_err(dev, "failed to map buffer, fd = %d\n", req.fd);
b1c0b7969aa491 Jeya R 2022-01-26 1804 return err;
b1c0b7969aa491 Jeya R 2022-01-26 1805 }
b1c0b7969aa491 Jeya R 2022-01-26 1806
b1c0b7969aa491 Jeya R 2022-01-26 1807 req_msg.pgid = fl->tgid;
b1c0b7969aa491 Jeya R 2022-01-26 1808 req_msg.fd = req.fd;
b1c0b7969aa491 Jeya R 2022-01-26 1809 req_msg.offset = req.offset;
b1c0b7969aa491 Jeya R 2022-01-26 1810 req_msg.vaddrin = req.vaddrin;
b1c0b7969aa491 Jeya R 2022-01-26 1811 map->va = (void *) req.vaddrin;
b1c0b7969aa491 Jeya R 2022-01-26 1812 req_msg.flags = req.flags;
b1c0b7969aa491 Jeya R 2022-01-26 1813 req_msg.num = sizeof(pages);
b1c0b7969aa491 Jeya R 2022-01-26 1814 req_msg.data_len = 0;
b1c0b7969aa491 Jeya R 2022-01-26 1815
b1c0b7969aa491 Jeya R 2022-01-26 1816 args[0].ptr = (u64) &req_msg;
b1c0b7969aa491 Jeya R 2022-01-26 1817 args[0].length = sizeof(req_msg);
b1c0b7969aa491 Jeya R 2022-01-26 1818
b1c0b7969aa491 Jeya R 2022-01-26 1819 pages.addr = map->phys;
b1c0b7969aa491 Jeya R 2022-01-26 1820 pages.size = map->size;
b1c0b7969aa491 Jeya R 2022-01-26 1821
b1c0b7969aa491 Jeya R 2022-01-26 1822 args[1].ptr = (u64) &pages;
b1c0b7969aa491 Jeya R 2022-01-26 1823 args[1].length = sizeof(pages);
b1c0b7969aa491 Jeya R 2022-01-26 1824
b1c0b7969aa491 Jeya R 2022-01-26 1825 args[2].ptr = (u64) &pages;
b1c0b7969aa491 Jeya R 2022-01-26 1826 args[2].length = 0;
b1c0b7969aa491 Jeya R 2022-01-26 1827
b1c0b7969aa491 Jeya R 2022-01-26 1828 args[3].ptr = (u64) &rsp_msg;
b1c0b7969aa491 Jeya R 2022-01-26 1829 args[3].length = sizeof(rsp_msg);
b1c0b7969aa491 Jeya R 2022-01-26 1830
b1c0b7969aa491 Jeya R 2022-01-26 1831 sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_MAP, 3, 1);
b1c0b7969aa491 Jeya R 2022-01-26 1832 err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc, &args[0]);
b1c0b7969aa491 Jeya R 2022-01-26 1833 if (err) {
b1c0b7969aa491 Jeya R 2022-01-26 @1834 dev_err(dev, "mem mmap error, fd %d, vaddr %llx, size %lld\n",
b1c0b7969aa491 Jeya R 2022-01-26 1835 req.fd, req.vaddrin, map->size);
b1c0b7969aa491 Jeya R 2022-01-26 1836 goto err_invoke;
b1c0b7969aa491 Jeya R 2022-01-26 1837 }
b1c0b7969aa491 Jeya R 2022-01-26 1838
b1c0b7969aa491 Jeya R 2022-01-26 1839 /* update the buffer to be able to deallocate the memory on the DSP */
b1c0b7969aa491 Jeya R 2022-01-26 1840 map->raddr = rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1841
b1c0b7969aa491 Jeya R 2022-01-26 1842 /* let the client know the address to use */
b1c0b7969aa491 Jeya R 2022-01-26 1843 req.vaddrout = rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1844
b1c0b7969aa491 Jeya R 2022-01-26 1845 if (copy_to_user((void __user *)argp, &req, sizeof(req))) {
b1c0b7969aa491 Jeya R 2022-01-26 1846 /* unmap the memory and release the buffer */
b1c0b7969aa491 Jeya R 2022-01-26 1847 req_unmap.vaddr = (uintptr_t) rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1848 req_unmap.length = map->size;
b1c0b7969aa491 Jeya R 2022-01-26 1849 fastrpc_req_mem_unmap_impl(fl, &req_unmap);
b1c0b7969aa491 Jeya R 2022-01-26 1850 return -EFAULT;
b1c0b7969aa491 Jeya R 2022-01-26 1851 }
b1c0b7969aa491 Jeya R 2022-01-26 1852
b1c0b7969aa491 Jeya R 2022-01-26 1853 return 0;
b1c0b7969aa491 Jeya R 2022-01-26 1854
b1c0b7969aa491 Jeya R 2022-01-26 1855 err_invoke:
b1c0b7969aa491 Jeya R 2022-01-26 @1856 if (map)
b1c0b7969aa491 Jeya R 2022-01-26 1857 fastrpc_map_put(map);
"map" can't be NULL.
b1c0b7969aa491 Jeya R 2022-01-26 1858
b1c0b7969aa491 Jeya R 2022-01-26 1859 return err;
b1c0b7969aa491 Jeya R 2022-01-26 1860 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v3 11/12] misc: fastrpc: Add dma handle implementation
Date: Thu, 27 Jan 2022 21:09:26 +0800 [thread overview]
Message-ID: <202201272146.Ci8W6Th6-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 8439 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220126135304.16340-12-srinivas.kandagatla@linaro.org>
References: <20220126135304.16340-12-srinivas.kandagatla@linaro.org>
TO: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
TO: robh+dt(a)kernel.org
TO: gregkh(a)linuxfoundation.org
CC: devicetree(a)vger.kernel.org
CC: ekangupt(a)qti.qualcomm.com
CC: bkumar(a)qti.qualcomm.com
CC: linux-kernel(a)vger.kernel.org
CC: srini(a)kernel.org
CC: bjorn.andersson(a)linaro.org
CC: linux-arm-msm(a)vger.kernel.org
CC: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
Hi Srinivas,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on robh/for-next linux/master linus/master v5.17-rc1 next-20220127]
[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]
url: https://github.com/0day-ci/linux/commits/Srinivas-Kandagatla/misc-fastrpc-Add-missing-DSP-FastRPC-features/20220126-215705
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 515a2f507491e7c3818e74ef4f4e088c1fecb190
:::::: branch date: 23 hours ago
:::::: commit date: 23 hours ago
config: openrisc-randconfig-m031-20220124 (https://download.01.org/0day-ci/archive/20220127/202201272146.Ci8W6Th6-lkp(a)intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/misc/fastrpc.c:1856 fastrpc_req_mem_map() warn: variable dereferenced before check 'map' (see line 1834)
Old smatch warnings:
drivers/misc/fastrpc.c:578 fastrpc_context_alloc() warn: should 'ret << 4' be a 64 bit type?
drivers/misc/fastrpc.c:2013 fastrpc_device_register() warn: passing devm_ allocated variable to kfree. 'fdev'
vim +/map +1856 drivers/misc/fastrpc.c
b1c0b7969aa491 Jeya R 2022-01-26 1783
b1c0b7969aa491 Jeya R 2022-01-26 1784 static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp)
b1c0b7969aa491 Jeya R 2022-01-26 1785 {
b1c0b7969aa491 Jeya R 2022-01-26 1786 struct fastrpc_invoke_args args[4] = { [0 ... 3] = { 0 } };
b1c0b7969aa491 Jeya R 2022-01-26 1787 struct fastrpc_mem_map_req_msg req_msg = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1788 struct fastrpc_mmap_rsp_msg rsp_msg = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1789 struct fastrpc_mem_unmap req_unmap = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1790 struct fastrpc_phy_page pages = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1791 struct fastrpc_mem_map req;
b1c0b7969aa491 Jeya R 2022-01-26 1792 struct device *dev = fl->sctx->dev;
b1c0b7969aa491 Jeya R 2022-01-26 1793 struct fastrpc_map *map = NULL;
b1c0b7969aa491 Jeya R 2022-01-26 1794 int err;
b1c0b7969aa491 Jeya R 2022-01-26 1795 u32 sc;
b1c0b7969aa491 Jeya R 2022-01-26 1796
b1c0b7969aa491 Jeya R 2022-01-26 1797 if (copy_from_user(&req, argp, sizeof(req)))
b1c0b7969aa491 Jeya R 2022-01-26 1798 return -EFAULT;
b1c0b7969aa491 Jeya R 2022-01-26 1799
b1c0b7969aa491 Jeya R 2022-01-26 1800 /* create SMMU mapping */
e52e7cb4a5a6f3 Srinivas Kandagatla 2022-01-26 1801 err = fastrpc_map_create(fl, req.fd, req.length, 0, &map);
b1c0b7969aa491 Jeya R 2022-01-26 1802 if (err) {
b1c0b7969aa491 Jeya R 2022-01-26 1803 dev_err(dev, "failed to map buffer, fd = %d\n", req.fd);
b1c0b7969aa491 Jeya R 2022-01-26 1804 return err;
b1c0b7969aa491 Jeya R 2022-01-26 1805 }
b1c0b7969aa491 Jeya R 2022-01-26 1806
b1c0b7969aa491 Jeya R 2022-01-26 1807 req_msg.pgid = fl->tgid;
b1c0b7969aa491 Jeya R 2022-01-26 1808 req_msg.fd = req.fd;
b1c0b7969aa491 Jeya R 2022-01-26 1809 req_msg.offset = req.offset;
b1c0b7969aa491 Jeya R 2022-01-26 1810 req_msg.vaddrin = req.vaddrin;
b1c0b7969aa491 Jeya R 2022-01-26 1811 map->va = (void *) req.vaddrin;
b1c0b7969aa491 Jeya R 2022-01-26 1812 req_msg.flags = req.flags;
b1c0b7969aa491 Jeya R 2022-01-26 1813 req_msg.num = sizeof(pages);
b1c0b7969aa491 Jeya R 2022-01-26 1814 req_msg.data_len = 0;
b1c0b7969aa491 Jeya R 2022-01-26 1815
b1c0b7969aa491 Jeya R 2022-01-26 1816 args[0].ptr = (u64) &req_msg;
b1c0b7969aa491 Jeya R 2022-01-26 1817 args[0].length = sizeof(req_msg);
b1c0b7969aa491 Jeya R 2022-01-26 1818
b1c0b7969aa491 Jeya R 2022-01-26 1819 pages.addr = map->phys;
b1c0b7969aa491 Jeya R 2022-01-26 1820 pages.size = map->size;
b1c0b7969aa491 Jeya R 2022-01-26 1821
b1c0b7969aa491 Jeya R 2022-01-26 1822 args[1].ptr = (u64) &pages;
b1c0b7969aa491 Jeya R 2022-01-26 1823 args[1].length = sizeof(pages);
b1c0b7969aa491 Jeya R 2022-01-26 1824
b1c0b7969aa491 Jeya R 2022-01-26 1825 args[2].ptr = (u64) &pages;
b1c0b7969aa491 Jeya R 2022-01-26 1826 args[2].length = 0;
b1c0b7969aa491 Jeya R 2022-01-26 1827
b1c0b7969aa491 Jeya R 2022-01-26 1828 args[3].ptr = (u64) &rsp_msg;
b1c0b7969aa491 Jeya R 2022-01-26 1829 args[3].length = sizeof(rsp_msg);
b1c0b7969aa491 Jeya R 2022-01-26 1830
b1c0b7969aa491 Jeya R 2022-01-26 1831 sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_MAP, 3, 1);
b1c0b7969aa491 Jeya R 2022-01-26 1832 err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc, &args[0]);
b1c0b7969aa491 Jeya R 2022-01-26 1833 if (err) {
b1c0b7969aa491 Jeya R 2022-01-26 @1834 dev_err(dev, "mem mmap error, fd %d, vaddr %llx, size %lld\n",
b1c0b7969aa491 Jeya R 2022-01-26 1835 req.fd, req.vaddrin, map->size);
b1c0b7969aa491 Jeya R 2022-01-26 1836 goto err_invoke;
b1c0b7969aa491 Jeya R 2022-01-26 1837 }
b1c0b7969aa491 Jeya R 2022-01-26 1838
b1c0b7969aa491 Jeya R 2022-01-26 1839 /* update the buffer to be able to deallocate the memory on the DSP */
b1c0b7969aa491 Jeya R 2022-01-26 1840 map->raddr = rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1841
b1c0b7969aa491 Jeya R 2022-01-26 1842 /* let the client know the address to use */
b1c0b7969aa491 Jeya R 2022-01-26 1843 req.vaddrout = rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1844
b1c0b7969aa491 Jeya R 2022-01-26 1845 if (copy_to_user((void __user *)argp, &req, sizeof(req))) {
b1c0b7969aa491 Jeya R 2022-01-26 1846 /* unmap the memory and release the buffer */
b1c0b7969aa491 Jeya R 2022-01-26 1847 req_unmap.vaddr = (uintptr_t) rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1848 req_unmap.length = map->size;
b1c0b7969aa491 Jeya R 2022-01-26 1849 fastrpc_req_mem_unmap_impl(fl, &req_unmap);
b1c0b7969aa491 Jeya R 2022-01-26 1850 return -EFAULT;
b1c0b7969aa491 Jeya R 2022-01-26 1851 }
b1c0b7969aa491 Jeya R 2022-01-26 1852
b1c0b7969aa491 Jeya R 2022-01-26 1853 return 0;
b1c0b7969aa491 Jeya R 2022-01-26 1854
b1c0b7969aa491 Jeya R 2022-01-26 1855 err_invoke:
b1c0b7969aa491 Jeya R 2022-01-26 @1856 if (map)
b1c0b7969aa491 Jeya R 2022-01-26 1857 fastrpc_map_put(map);
b1c0b7969aa491 Jeya R 2022-01-26 1858
b1c0b7969aa491 Jeya R 2022-01-26 1859 return err;
b1c0b7969aa491 Jeya R 2022-01-26 1860 }
b1c0b7969aa491 Jeya R 2022-01-26 1861
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v3 11/12] misc: fastrpc: Add dma handle implementation
Date: Fri, 28 Jan 2022 10:09:55 +0300 [thread overview]
Message-ID: <202201272146.Ci8W6Th6-lkp@intel.com> (raw)
In-Reply-To: <20220126135304.16340-12-srinivas.kandagatla@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 7080 bytes --]
Hi Srinivas,
url: https://github.com/0day-ci/linux/commits/Srinivas-Kandagatla/misc-fastrpc-Add-missing-DSP-FastRPC-features/20220126-215705
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 515a2f507491e7c3818e74ef4f4e088c1fecb190
config: openrisc-randconfig-m031-20220124 (https://download.01.org/0day-ci/archive/20220127/202201272146.Ci8W6Th6-lkp(a)intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/misc/fastrpc.c:1856 fastrpc_req_mem_map() warn: variable dereferenced before check 'map' (see line 1834)
vim +/map +1856 drivers/misc/fastrpc.c
b1c0b7969aa491 Jeya R 2022-01-26 1784 static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp)
b1c0b7969aa491 Jeya R 2022-01-26 1785 {
b1c0b7969aa491 Jeya R 2022-01-26 1786 struct fastrpc_invoke_args args[4] = { [0 ... 3] = { 0 } };
b1c0b7969aa491 Jeya R 2022-01-26 1787 struct fastrpc_mem_map_req_msg req_msg = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1788 struct fastrpc_mmap_rsp_msg rsp_msg = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1789 struct fastrpc_mem_unmap req_unmap = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1790 struct fastrpc_phy_page pages = { 0 };
b1c0b7969aa491 Jeya R 2022-01-26 1791 struct fastrpc_mem_map req;
b1c0b7969aa491 Jeya R 2022-01-26 1792 struct device *dev = fl->sctx->dev;
b1c0b7969aa491 Jeya R 2022-01-26 1793 struct fastrpc_map *map = NULL;
b1c0b7969aa491 Jeya R 2022-01-26 1794 int err;
b1c0b7969aa491 Jeya R 2022-01-26 1795 u32 sc;
b1c0b7969aa491 Jeya R 2022-01-26 1796
b1c0b7969aa491 Jeya R 2022-01-26 1797 if (copy_from_user(&req, argp, sizeof(req)))
b1c0b7969aa491 Jeya R 2022-01-26 1798 return -EFAULT;
b1c0b7969aa491 Jeya R 2022-01-26 1799
b1c0b7969aa491 Jeya R 2022-01-26 1800 /* create SMMU mapping */
e52e7cb4a5a6f3 Srinivas Kandagatla 2022-01-26 1801 err = fastrpc_map_create(fl, req.fd, req.length, 0, &map);
b1c0b7969aa491 Jeya R 2022-01-26 1802 if (err) {
b1c0b7969aa491 Jeya R 2022-01-26 1803 dev_err(dev, "failed to map buffer, fd = %d\n", req.fd);
b1c0b7969aa491 Jeya R 2022-01-26 1804 return err;
b1c0b7969aa491 Jeya R 2022-01-26 1805 }
b1c0b7969aa491 Jeya R 2022-01-26 1806
b1c0b7969aa491 Jeya R 2022-01-26 1807 req_msg.pgid = fl->tgid;
b1c0b7969aa491 Jeya R 2022-01-26 1808 req_msg.fd = req.fd;
b1c0b7969aa491 Jeya R 2022-01-26 1809 req_msg.offset = req.offset;
b1c0b7969aa491 Jeya R 2022-01-26 1810 req_msg.vaddrin = req.vaddrin;
b1c0b7969aa491 Jeya R 2022-01-26 1811 map->va = (void *) req.vaddrin;
b1c0b7969aa491 Jeya R 2022-01-26 1812 req_msg.flags = req.flags;
b1c0b7969aa491 Jeya R 2022-01-26 1813 req_msg.num = sizeof(pages);
b1c0b7969aa491 Jeya R 2022-01-26 1814 req_msg.data_len = 0;
b1c0b7969aa491 Jeya R 2022-01-26 1815
b1c0b7969aa491 Jeya R 2022-01-26 1816 args[0].ptr = (u64) &req_msg;
b1c0b7969aa491 Jeya R 2022-01-26 1817 args[0].length = sizeof(req_msg);
b1c0b7969aa491 Jeya R 2022-01-26 1818
b1c0b7969aa491 Jeya R 2022-01-26 1819 pages.addr = map->phys;
b1c0b7969aa491 Jeya R 2022-01-26 1820 pages.size = map->size;
b1c0b7969aa491 Jeya R 2022-01-26 1821
b1c0b7969aa491 Jeya R 2022-01-26 1822 args[1].ptr = (u64) &pages;
b1c0b7969aa491 Jeya R 2022-01-26 1823 args[1].length = sizeof(pages);
b1c0b7969aa491 Jeya R 2022-01-26 1824
b1c0b7969aa491 Jeya R 2022-01-26 1825 args[2].ptr = (u64) &pages;
b1c0b7969aa491 Jeya R 2022-01-26 1826 args[2].length = 0;
b1c0b7969aa491 Jeya R 2022-01-26 1827
b1c0b7969aa491 Jeya R 2022-01-26 1828 args[3].ptr = (u64) &rsp_msg;
b1c0b7969aa491 Jeya R 2022-01-26 1829 args[3].length = sizeof(rsp_msg);
b1c0b7969aa491 Jeya R 2022-01-26 1830
b1c0b7969aa491 Jeya R 2022-01-26 1831 sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_MAP, 3, 1);
b1c0b7969aa491 Jeya R 2022-01-26 1832 err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc, &args[0]);
b1c0b7969aa491 Jeya R 2022-01-26 1833 if (err) {
b1c0b7969aa491 Jeya R 2022-01-26 @1834 dev_err(dev, "mem mmap error, fd %d, vaddr %llx, size %lld\n",
b1c0b7969aa491 Jeya R 2022-01-26 1835 req.fd, req.vaddrin, map->size);
b1c0b7969aa491 Jeya R 2022-01-26 1836 goto err_invoke;
b1c0b7969aa491 Jeya R 2022-01-26 1837 }
b1c0b7969aa491 Jeya R 2022-01-26 1838
b1c0b7969aa491 Jeya R 2022-01-26 1839 /* update the buffer to be able to deallocate the memory on the DSP */
b1c0b7969aa491 Jeya R 2022-01-26 1840 map->raddr = rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1841
b1c0b7969aa491 Jeya R 2022-01-26 1842 /* let the client know the address to use */
b1c0b7969aa491 Jeya R 2022-01-26 1843 req.vaddrout = rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1844
b1c0b7969aa491 Jeya R 2022-01-26 1845 if (copy_to_user((void __user *)argp, &req, sizeof(req))) {
b1c0b7969aa491 Jeya R 2022-01-26 1846 /* unmap the memory and release the buffer */
b1c0b7969aa491 Jeya R 2022-01-26 1847 req_unmap.vaddr = (uintptr_t) rsp_msg.vaddr;
b1c0b7969aa491 Jeya R 2022-01-26 1848 req_unmap.length = map->size;
b1c0b7969aa491 Jeya R 2022-01-26 1849 fastrpc_req_mem_unmap_impl(fl, &req_unmap);
b1c0b7969aa491 Jeya R 2022-01-26 1850 return -EFAULT;
b1c0b7969aa491 Jeya R 2022-01-26 1851 }
b1c0b7969aa491 Jeya R 2022-01-26 1852
b1c0b7969aa491 Jeya R 2022-01-26 1853 return 0;
b1c0b7969aa491 Jeya R 2022-01-26 1854
b1c0b7969aa491 Jeya R 2022-01-26 1855 err_invoke:
b1c0b7969aa491 Jeya R 2022-01-26 @1856 if (map)
b1c0b7969aa491 Jeya R 2022-01-26 1857 fastrpc_map_put(map);
"map" can't be NULL.
b1c0b7969aa491 Jeya R 2022-01-26 1858
b1c0b7969aa491 Jeya R 2022-01-26 1859 return err;
b1c0b7969aa491 Jeya R 2022-01-26 1860 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next parent reply other threads:[~2022-01-28 7:10 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-27 13:09 kernel test robot [this message]
2022-01-28 7:09 ` [PATCH v3 11/12] misc: fastrpc: Add dma handle implementation Dan Carpenter
2022-01-28 7:09 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2022-01-27 10:15 [PATCH v3 01/12] misc: fastrpc: separate fastrpc device from channel context kernel test robot
2022-01-27 11:33 ` Dan Carpenter
2022-01-27 11:33 ` Dan Carpenter
2022-01-26 13:52 [PATCH v3 00/12] misc: fastrpc: Add missing DSP FastRPC features Srinivas Kandagatla
2022-01-26 13:52 ` [PATCH v3 01/12] misc: fastrpc: separate fastrpc device from channel context Srinivas Kandagatla
2022-01-26 13:52 ` [PATCH v3 02/12] misc: fastrpc: add support for FASTRPC_IOCTL_MEM_MAP/UNMAP Srinivas Kandagatla
2022-01-26 18:00 ` kernel test robot
2022-01-26 18:00 ` kernel test robot
2022-01-27 4:48 ` kernel test robot
2022-01-27 4:48 ` kernel test robot
2022-01-26 13:52 ` [PATCH v3 03/12] misc: fastrpc: Add support to get DSP capabilities Srinivas Kandagatla
2022-01-26 21:04 ` kernel test robot
2022-01-26 21:04 ` kernel test robot
2022-01-26 13:52 ` [PATCH v3 04/12] dt-bindings: misc: add property to support non-secure DSP Srinivas Kandagatla
2022-02-07 20:44 ` Rob Herring
2022-01-26 13:52 ` [PATCH v3 05/12] misc: fastrpc: add secure domain support Srinivas Kandagatla
2022-01-26 13:52 ` [PATCH v3 06/12] misc: fastrpc: check before loading process to the DSP Srinivas Kandagatla
2022-01-26 13:52 ` [PATCH v3 07/12] dt-bindings: misc: add fastrpc domain vmid property Srinivas Kandagatla
2022-02-07 20:45 ` Rob Herring
2022-01-26 13:53 ` [PATCH v3 08/12] misc: fastrpc: Add support to secure memory map Srinivas Kandagatla
2022-01-26 13:53 ` [PATCH v3 09/12] misc: fastrpc: Add helper function to get list and page Srinivas Kandagatla
2022-01-26 13:53 ` [PATCH v3 10/12] misc: fastrpc: Add fdlist implementation Srinivas Kandagatla
2022-01-26 13:53 ` [PATCH v3 11/12] misc: fastrpc: Add dma handle implementation Srinivas Kandagatla
2022-01-26 20:13 ` kernel test robot
2022-01-26 20:13 ` kernel test robot
2022-01-26 20:14 ` kernel test robot
2022-01-26 20:14 ` kernel test robot
2022-01-26 13:53 ` [PATCH v3 12/12] arm64: dts: qcom: add non-secure domain property to fastrpc nodes Srinivas Kandagatla
2022-04-08 13:37 ` [PATCH v3 00/12] misc: fastrpc: Add missing DSP FastRPC features patchwork-bot+linux-arm-msm
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=202201272146.Ci8W6Th6-lkp@intel.com \
--to=dan.carpenter@oracle.com \
--cc=bjorn.andersson@linaro.org \
--cc=bkumar@qti.qualcomm.com \
--cc=devicetree@vger.kernel.org \
--cc=ekangupt@qti.qualcomm.com \
--cc=gregkh@linuxfoundation.org \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=quic_vgattupa@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=srini@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.