lkml.org 
[lkml]   [2023]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] misc: fastrpc: support complete DMA pool access to the DSP
Hi Dylan,

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Dylan-Van-Assche/dt-bindings-misc-qcom-fastrpc-add-qcom-assign-all-memory-property/20230325-214518
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20230325134410.21092-3-me%40dylanvanassche.be
patch subject: [PATCH 2/2] misc: fastrpc: support complete DMA pool access to the DSP
config: microblaze-randconfig-m041-20230326 (https://download.01.org/0day-ci/archive/20230327/202303270739.ODb2LA29-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303270739.ODb2LA29-lkp@intel.com/

New smatch warnings:
drivers/misc/fastrpc.c:2273 fastrpc_rpmsg_probe() warn: possible memory leak of 'data'

vim +/data +2273 drivers/misc/fastrpc.c

f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2227 static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2228 {
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2229 struct device *rdev = &rpdev->dev;
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2230 struct fastrpc_channel_ctx *data;
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2231 int i, err, domain_id = -1, vmcount;
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2232 const char *domain;
99edd50174e519 Dylan Van Assche 2023-03-25 2233 bool secure_dsp, assign_all_mem;
99edd50174e519 Dylan Van Assche 2023-03-25 2234 struct device_node *rmem_node;
99edd50174e519 Dylan Van Assche 2023-03-25 2235 struct reserved_mem *rmem;
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2236 unsigned int vmids[FASTRPC_MAX_VMIDS];
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2237
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2238 err = of_property_read_string(rdev->of_node, "label", &domain);
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2239 if (err) {
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2240 dev_info(rdev, "FastRPC Domain not specified in DT\n");
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2241 return err;
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2242 }
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2243
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2244 for (i = 0; i <= CDSP_DOMAIN_ID; i++) {
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2245 if (!strcmp(domains[i], domain)) {
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2246 domain_id = i;
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2247 break;
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2248 }
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2249 }
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2250
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2251 if (domain_id < 0) {
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2252 dev_info(rdev, "FastRPC Invalid Domain ID %d\n", domain_id);
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2253 return -EINVAL;
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2254 }
f6f9279f2bf0e3 Srinivas Kandagatla 2019-02-08 2255
1ce91d45ba77a4 Abel Vesa 2022-11-25 2256 if (of_reserved_mem_device_init_by_idx(rdev, rdev->of_node, 0))
1ce91d45ba77a4 Abel Vesa 2022-11-25 2257 dev_info(rdev, "no reserved DMA memory for FASTRPC\n");
1ce91d45ba77a4 Abel Vesa 2022-11-25 2258
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2259 vmcount = of_property_read_variable_u32_array(rdev->of_node,
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2260 "qcom,vmids", &vmids[0], 0, FASTRPC_MAX_VMIDS);
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2261 if (vmcount < 0)
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2262 vmcount = 0;
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2263 else if (!qcom_scm_is_available())
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2264 return -EPROBE_DEFER;
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2265
278d56f970ae6e Bjorn Andersson 2019-08-29 2266 data = kzalloc(sizeof(*data), GFP_KERNEL);
278d56f970ae6e Bjorn Andersson 2019-08-29 2267 if (!data)
278d56f970ae6e Bjorn Andersson 2019-08-29 2268 return -ENOMEM;
278d56f970ae6e Bjorn Andersson 2019-08-29 2269
99edd50174e519 Dylan Van Assche 2023-03-25 2270 assign_all_mem = of_property_read_bool(rdev->of_node, "qcom,assign-all-mem");
99edd50174e519 Dylan Van Assche 2023-03-25 2271
99edd50174e519 Dylan Van Assche 2023-03-25 2272 if (assign_all_mem && !vmcount)
99edd50174e519 Dylan Van Assche 2023-03-25 @2273 return -EINVAL;

Move this code before the data = kzalloc() allocation to avoid a memory
leak.

99edd50174e519 Dylan Van Assche 2023-03-25 2274
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2275 if (vmcount) {
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2276 data->vmcount = vmcount;
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2277 data->perms = BIT(QCOM_SCM_VMID_HLOS);
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2278 for (i = 0; i < data->vmcount; i++) {
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2279 data->vmperms[i].vmid = vmids[i];
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14 2280 data->vmperms[i].perm = QCOM_SCM_PERM_RWX;

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

\
 
 \ /
  Last update: 2023-03-27 06:10    [W:0.741 / U:0.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site