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@xxxxxxxxx/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@xxxxxxxxx> | Reported-by: Dan Carpenter <error27@xxxxxxxxx> | Link: https://lore.kernel.org/r/202303270739.ODb2LA29-lkp@xxxxxxxxx/ 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