From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4678278089545093811==" MIME-Version: 1.0 From: Dan Carpenter Subject: drivers/hwtracing/coresight/coresight-cti.c:862 cti_probe() error: we previously assumed 'drvdata' could be null (see line 759) Date: Fri, 12 Jun 2020 15:10:47 +0300 Message-ID: <20200612121047.GF4282@kadam> List-Id: To: kbuild@lists.01.org --===============4678278089545093811== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Mike, Here is the buggy line: 861 err_out: 862 cti_pm_release(drvdata); ^^^^^^^ To me it's a red flag any time there is a label called "out:". The label should say what is being released like "goto unregister_notifier;". The style of error handling here is called a "free everything function" and it is the most error prone style of error handling. A better way to write error handling is to track the most recently allocated resource and free it with a well named goto. a =3D alloc(); if (!a) return -ENOMEM; b =3D alloc(); if (!b) { ret =3D -ENOMEM; goto free_a; } c =3D alloc(); if (!c) { ret =3D -ENOMEM; goto free_b; ... return 0; free_b: free(b); free_a: free(a); The advantage of this is that 1) You only have to track the most recent allocation. 2) You can easily verify that the most recent allocation is freed. 3) Now you can create a free function by copy and pasting and adding a free(c); void my_free(struct whatever *p) { free(c); free(b); free(a); } This style uses about the same number of lines of code because although we duplicate the free(b) and free(a), we can remove some if statements so it ends up being about the same. The main problem with free everything function is that they free things which have not been allocated. I have added more explanation at the bottom of this bug report. I am also sending a patch which hopefully is clear but I can't actually compile it. :( tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = master head: b791d1bdf9212d944d749a5c7ff6febdba241771 commit: e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f coresight: cti: Add CPU Ho= tplug handling to CTI driver config: arm-randconfig-m031-20200612 (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 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/hwtracing/coresight/coresight-cti.c:862 cti_probe() error: we previ= ously assumed 'drvdata' could be null (see line 759) # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit= /?id=3De9b880581d555c8f7b58c7d19cc3f8f9016a1b5f git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torval= ds/linux.git git remote update linus git checkout e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f vim +/drvdata +862 drivers/hwtracing/coresight/coresight-cti.c 835d722ba10ac92 Mike Leach 2020-03-20 747 static int cti_probe(struct amb= a_device *adev, const struct amba_id *id) 835d722ba10ac92 Mike Leach 2020-03-20 748 { 835d722ba10ac92 Mike Leach 2020-03-20 749 int ret =3D 0; 835d722ba10ac92 Mike Leach 2020-03-20 750 void __iomem *base; 835d722ba10ac92 Mike Leach 2020-03-20 751 struct device *dev =3D &adev->= dev; 835d722ba10ac92 Mike Leach 2020-03-20 752 struct cti_drvdata *drvdata = =3D NULL; 835d722ba10ac92 Mike Leach 2020-03-20 753 struct coresight_desc cti_desc; 835d722ba10ac92 Mike Leach 2020-03-20 754 struct coresight_platform_data= *pdata =3D NULL; 835d722ba10ac92 Mike Leach 2020-03-20 755 struct resource *res =3D &adev= ->res; 835d722ba10ac92 Mike Leach 2020-03-20 756 = 835d722ba10ac92 Mike Leach 2020-03-20 757 /* driver data*/ 835d722ba10ac92 Mike Leach 2020-03-20 758 drvdata =3D devm_kzalloc(dev, = sizeof(*drvdata), GFP_KERNEL); 835d722ba10ac92 Mike Leach 2020-03-20 @759 if (!drvdata) { 835d722ba10ac92 Mike Leach 2020-03-20 760 ret =3D -ENOMEM; 835d722ba10ac92 Mike Leach 2020-03-20 761 dev_info(dev, "%s, mem err\n"= , __func__); No need to print an error message for kmalloc() failures. It already has a stack trace built in. 835d722ba10ac92 Mike Leach 2020-03-20 762 goto err_out; ^^^^^^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 763 } 835d722ba10ac92 Mike Leach 2020-03-20 764 = 835d722ba10ac92 Mike Leach 2020-03-20 765 /* Validity for the resource i= s already checked by the AMBA core */ 835d722ba10ac92 Mike Leach 2020-03-20 766 base =3D devm_ioremap_resource= (dev, res); 835d722ba10ac92 Mike Leach 2020-03-20 767 if (IS_ERR(base)) { 835d722ba10ac92 Mike Leach 2020-03-20 768 ret =3D PTR_ERR(base); 835d722ba10ac92 Mike Leach 2020-03-20 769 dev_err(dev, "%s, remap err\n= ", __func__); At this point "drvdata->ctidev.cpu" is zero. 835d722ba10ac92 Mike Leach 2020-03-20 770 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 771 } 835d722ba10ac92 Mike Leach 2020-03-20 772 drvdata->base =3D base; 835d722ba10ac92 Mike Leach 2020-03-20 773 = 835d722ba10ac92 Mike Leach 2020-03-20 774 dev_set_drvdata(dev, drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 775 = 835d722ba10ac92 Mike Leach 2020-03-20 776 /* default CTI device info */ 835d722ba10ac92 Mike Leach 2020-03-20 777 drvdata->ctidev.cpu =3D -1; ^^^^^^^^^^^^^^^^^^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 778 drvdata->ctidev.nr_trig_con = =3D 0; 835d722ba10ac92 Mike Leach 2020-03-20 779 drvdata->ctidev.ctm_id =3D 0; 835d722ba10ac92 Mike Leach 2020-03-20 780 INIT_LIST_HEAD(&drvdata->ctide= v.trig_cons); 835d722ba10ac92 Mike Leach 2020-03-20 781 = 835d722ba10ac92 Mike Leach 2020-03-20 782 spin_lock_init(&drvdata->spinl= ock); 835d722ba10ac92 Mike Leach 2020-03-20 783 = 835d722ba10ac92 Mike Leach 2020-03-20 784 /* initialise CTI driver confi= g values */ 835d722ba10ac92 Mike Leach 2020-03-20 785 cti_set_default_config(dev, dr= vdata); 835d722ba10ac92 Mike Leach 2020-03-20 786 = 835d722ba10ac92 Mike Leach 2020-03-20 787 pdata =3D coresight_cti_get_pl= atform_data(dev); ^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^^^^ This function sets drvdata->ctidev.cpu on some success paths and also on certain failure paths. 835d722ba10ac92 Mike Leach 2020-03-20 788 if (IS_ERR(pdata)) { 835d722ba10ac92 Mike Leach 2020-03-20 789 dev_err(dev, "coresight_cti_g= et_platform_data err\n"); 835d722ba10ac92 Mike Leach 2020-03-20 790 ret =3D PTR_ERR(pdata); 835d722ba10ac92 Mike Leach 2020-03-20 791 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 792 } 835d722ba10ac92 Mike Leach 2020-03-20 793 = 835d722ba10ac92 Mike Leach 2020-03-20 794 /* default to powered - could = change on PM notifications */ 835d722ba10ac92 Mike Leach 2020-03-20 795 drvdata->config.hw_powered =3D= true; 835d722ba10ac92 Mike Leach 2020-03-20 796 = 835d722ba10ac92 Mike Leach 2020-03-20 797 /* set up device name - will d= epend if cpu bound or otherwise */ 835d722ba10ac92 Mike Leach 2020-03-20 798 if (drvdata->ctidev.cpu >=3D 0) 835d722ba10ac92 Mike Leach 2020-03-20 799 cti_desc.name =3D devm_kaspri= ntf(dev, GFP_KERNEL, "cti_cpu%d", 835d722ba10ac92 Mike Leach 2020-03-20 800 drvdata->ctidev.cpu= ); 835d722ba10ac92 Mike Leach 2020-03-20 801 else 835d722ba10ac92 Mike Leach 2020-03-20 802 cti_desc.name =3D coresight_a= lloc_device_name(&cti_sys_devs, dev); 835d722ba10ac92 Mike Leach 2020-03-20 803 if (!cti_desc.name) { 835d722ba10ac92 Mike Leach 2020-03-20 804 ret =3D -ENOMEM; 835d722ba10ac92 Mike Leach 2020-03-20 805 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 806 } 835d722ba10ac92 Mike Leach 2020-03-20 807 = e9b880581d555c8 Mike Leach 2020-05-18 808 /* setup CPU power management = handling for CPU bound CTI devices. */ e9b880581d555c8 Mike Leach 2020-05-18 809 if (drvdata->ctidev.cpu >=3D 0= ) { e9b880581d555c8 Mike Leach 2020-05-18 810 cti_cpu_drvdata[drvdata->ctid= ev.cpu] =3D drvdata; e9b880581d555c8 Mike Leach 2020-05-18 811 if (!nr_cti_cpu++) { ^^^^^^^^^^^^ e9b880581d555c8 Mike Leach 2020-05-18 812 cpus_read_lock(); e9b880581d555c8 Mike Leach 2020-05-18 813 ret =3D cpuhp_setup_state_no= calls_cpuslocked( e9b880581d555c8 Mike Leach 2020-05-18 814 CPUHP_AP_ARM_CORESIGHT_CTI_= STARTING, e9b880581d555c8 Mike Leach 2020-05-18 815 "arm/coresight_cti:starting= ", e9b880581d555c8 Mike Leach 2020-05-18 816 cti_starting_cpu, cti_dying= _cpu); e9b880581d555c8 Mike Leach 2020-05-18 817 = e9b880581d555c8 Mike Leach 2020-05-18 818 cpus_read_unlock(); e9b880581d555c8 Mike Leach 2020-05-18 819 if (ret) e9b880581d555c8 Mike Leach 2020-05-18 820 goto err_out; e9b880581d555c8 Mike Leach 2020-05-18 821 } e9b880581d555c8 Mike Leach 2020-05-18 822 } e9b880581d555c8 Mike Leach 2020-05-18 823 = 3c5597e398124e6 Mike Leach 2020-03-20 824 /* create dynamic attributes f= or connections */ 3c5597e398124e6 Mike Leach 2020-03-20 825 ret =3D cti_create_cons_sysfs(= dev, drvdata); 3c5597e398124e6 Mike Leach 2020-03-20 826 if (ret) { 3c5597e398124e6 Mike Leach 2020-03-20 827 dev_err(dev, "%s: create dyna= mic sysfs entries failed\n", 3c5597e398124e6 Mike Leach 2020-03-20 828 cti_desc.name); 3c5597e398124e6 Mike Leach 2020-03-20 829 goto err_out; 3c5597e398124e6 Mike Leach 2020-03-20 830 } 3c5597e398124e6 Mike Leach 2020-03-20 831 = 835d722ba10ac92 Mike Leach 2020-03-20 832 /* set up coresight component = description */ 835d722ba10ac92 Mike Leach 2020-03-20 833 cti_desc.pdata =3D pdata; 835d722ba10ac92 Mike Leach 2020-03-20 834 cti_desc.type =3D CORESIGHT_DE= V_TYPE_ECT; 835d722ba10ac92 Mike Leach 2020-03-20 835 cti_desc.subtype.ect_subtype = =3D CORESIGHT_DEV_SUBTYPE_ECT_CTI; 835d722ba10ac92 Mike Leach 2020-03-20 836 cti_desc.ops =3D &cti_ops; 3c5597e398124e6 Mike Leach 2020-03-20 837 cti_desc.groups =3D drvdata->c= tidev.con_groups; 835d722ba10ac92 Mike Leach 2020-03-20 838 cti_desc.dev =3D dev; 835d722ba10ac92 Mike Leach 2020-03-20 839 drvdata->csdev =3D coresight_r= egister(&cti_desc); 835d722ba10ac92 Mike Leach 2020-03-20 840 if (IS_ERR(drvdata->csdev)) { 835d722ba10ac92 Mike Leach 2020-03-20 841 ret =3D PTR_ERR(drvdata->csde= v); 835d722ba10ac92 Mike Leach 2020-03-20 842 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 843 } 835d722ba10ac92 Mike Leach 2020-03-20 844 = 835d722ba10ac92 Mike Leach 2020-03-20 845 /* add to list of CTI devices = */ 835d722ba10ac92 Mike Leach 2020-03-20 846 mutex_lock(&ect_mutex); 835d722ba10ac92 Mike Leach 2020-03-20 847 list_add(&drvdata->node, &ect_= net); 177af8285b59a38 Mike Leach 2020-03-20 848 /* set any cross references */ 177af8285b59a38 Mike Leach 2020-03-20 849 cti_update_conn_xrefs(drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 850 mutex_unlock(&ect_mutex); 835d722ba10ac92 Mike Leach 2020-03-20 851 = 835d722ba10ac92 Mike Leach 2020-03-20 852 /* set up release chain */ 835d722ba10ac92 Mike Leach 2020-03-20 853 drvdata->csdev_release =3D drv= data->csdev->dev.release; 835d722ba10ac92 Mike Leach 2020-03-20 854 drvdata->csdev->dev.release = =3D cti_device_release; 835d722ba10ac92 Mike Leach 2020-03-20 855 = 835d722ba10ac92 Mike Leach 2020-03-20 856 /* all done - dec pm refcount = */ 835d722ba10ac92 Mike Leach 2020-03-20 857 pm_runtime_put(&adev->dev); 835d722ba10ac92 Mike Leach 2020-03-20 858 dev_info(&drvdata->csdev->dev,= "CTI initialized\n"); 835d722ba10ac92 Mike Leach 2020-03-20 859 return 0; 835d722ba10ac92 Mike Leach 2020-03-20 860 = 835d722ba10ac92 Mike Leach 2020-03-20 861 err_out: e9b880581d555c8 Mike Leach 2020-05-18 @862 cti_pm_release(drvdata); ^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 863 return ret; 835d722ba10ac92 Mike Leach 2020-03-20 864 } 750 /* release PM registrations */ 751 static void cti_pm_release(struct cti_drvdata *drvdata) 752 { 753 if (drvdata->ctidev.cpu >=3D 0) { ^^^^^^^ We are dereferencing this when it wasn't allocated. 754 if (--nr_cti_cpu =3D=3D 0) { ^^^^^^^^^^^^ If devm_kasprintf() fails then we are decrementing this when it wasn't incremented so now it can be negative. 755 cpu_pm_unregister_notifier(&cti_cpu_pm_nb); If the cpu_pm_register_notifier() fails then we are unregistering this when it wasn't registered. It turns out this is harmless but if we only free things which have been allocated then it becomes a lot easier to audit the code. 756 = 757 cpuhp_remove_state_nocalls( 758 CPUHP_AP_ARM_CORESIGHT_CTI_STARTING= ); If cpuhp_setup_state_nocalls_cpuslocked() failed then this wasn't allocated. I believe this is harmless. 759 } 760 cti_cpu_drvdata[drvdata->ctidev.cpu] =3D NULL; 761 } 762 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org _______________________________________________ kbuild mailing list -- kbuild(a)lists.01.org To unsubscribe send an email to kbuild-leave(a)lists.01.org --===============4678278089545093811== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 Zt42WYPwAQA= --===============4678278089545093811==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4307335834952624342==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: [kbuild] drivers/hwtracing/coresight/coresight-cti.c:862 cti_probe() error: we previously assumed 'drvdata' could be null (see line 759) Date: Fri, 12 Jun 2020 15:10:47 +0300 Message-ID: <20200612121047.GF4282@kadam> List-Id: --===============4307335834952624342== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Mike, Here is the buggy line: 861 err_out: 862 cti_pm_release(drvdata); ^^^^^^^ To me it's a red flag any time there is a label called "out:". The label should say what is being released like "goto unregister_notifier;". The style of error handling here is called a "free everything function" and it is the most error prone style of error handling. A better way to write error handling is to track the most recently allocated resource and free it with a well named goto. a =3D alloc(); if (!a) return -ENOMEM; b =3D alloc(); if (!b) { ret =3D -ENOMEM; goto free_a; } c =3D alloc(); if (!c) { ret =3D -ENOMEM; goto free_b; ... return 0; free_b: free(b); free_a: free(a); The advantage of this is that 1) You only have to track the most recent allocation. 2) You can easily verify that the most recent allocation is freed. 3) Now you can create a free function by copy and pasting and adding a free(c); void my_free(struct whatever *p) { free(c); free(b); free(a); } This style uses about the same number of lines of code because although we duplicate the free(b) and free(a), we can remove some if statements so it ends up being about the same. The main problem with free everything function is that they free things which have not been allocated. I have added more explanation at the bottom of this bug report. I am also sending a patch which hopefully is clear but I can't actually compile it. :( tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = master head: b791d1bdf9212d944d749a5c7ff6febdba241771 commit: e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f coresight: cti: Add CPU Ho= tplug handling to CTI driver config: arm-randconfig-m031-20200612 (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 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/hwtracing/coresight/coresight-cti.c:862 cti_probe() error: we previ= ously assumed 'drvdata' could be null (see line 759) # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit= /?id=3De9b880581d555c8f7b58c7d19cc3f8f9016a1b5f git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torval= ds/linux.git git remote update linus git checkout e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f vim +/drvdata +862 drivers/hwtracing/coresight/coresight-cti.c 835d722ba10ac92 Mike Leach 2020-03-20 747 static int cti_probe(struct amb= a_device *adev, const struct amba_id *id) 835d722ba10ac92 Mike Leach 2020-03-20 748 { 835d722ba10ac92 Mike Leach 2020-03-20 749 int ret =3D 0; 835d722ba10ac92 Mike Leach 2020-03-20 750 void __iomem *base; 835d722ba10ac92 Mike Leach 2020-03-20 751 struct device *dev =3D &adev->= dev; 835d722ba10ac92 Mike Leach 2020-03-20 752 struct cti_drvdata *drvdata = =3D NULL; 835d722ba10ac92 Mike Leach 2020-03-20 753 struct coresight_desc cti_desc; 835d722ba10ac92 Mike Leach 2020-03-20 754 struct coresight_platform_data= *pdata =3D NULL; 835d722ba10ac92 Mike Leach 2020-03-20 755 struct resource *res =3D &adev= ->res; 835d722ba10ac92 Mike Leach 2020-03-20 756 = 835d722ba10ac92 Mike Leach 2020-03-20 757 /* driver data*/ 835d722ba10ac92 Mike Leach 2020-03-20 758 drvdata =3D devm_kzalloc(dev, = sizeof(*drvdata), GFP_KERNEL); 835d722ba10ac92 Mike Leach 2020-03-20 @759 if (!drvdata) { 835d722ba10ac92 Mike Leach 2020-03-20 760 ret =3D -ENOMEM; 835d722ba10ac92 Mike Leach 2020-03-20 761 dev_info(dev, "%s, mem err\n"= , __func__); No need to print an error message for kmalloc() failures. It already has a stack trace built in. 835d722ba10ac92 Mike Leach 2020-03-20 762 goto err_out; ^^^^^^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 763 } 835d722ba10ac92 Mike Leach 2020-03-20 764 = 835d722ba10ac92 Mike Leach 2020-03-20 765 /* Validity for the resource i= s already checked by the AMBA core */ 835d722ba10ac92 Mike Leach 2020-03-20 766 base =3D devm_ioremap_resource= (dev, res); 835d722ba10ac92 Mike Leach 2020-03-20 767 if (IS_ERR(base)) { 835d722ba10ac92 Mike Leach 2020-03-20 768 ret =3D PTR_ERR(base); 835d722ba10ac92 Mike Leach 2020-03-20 769 dev_err(dev, "%s, remap err\n= ", __func__); At this point "drvdata->ctidev.cpu" is zero. 835d722ba10ac92 Mike Leach 2020-03-20 770 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 771 } 835d722ba10ac92 Mike Leach 2020-03-20 772 drvdata->base =3D base; 835d722ba10ac92 Mike Leach 2020-03-20 773 = 835d722ba10ac92 Mike Leach 2020-03-20 774 dev_set_drvdata(dev, drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 775 = 835d722ba10ac92 Mike Leach 2020-03-20 776 /* default CTI device info */ 835d722ba10ac92 Mike Leach 2020-03-20 777 drvdata->ctidev.cpu =3D -1; ^^^^^^^^^^^^^^^^^^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 778 drvdata->ctidev.nr_trig_con = =3D 0; 835d722ba10ac92 Mike Leach 2020-03-20 779 drvdata->ctidev.ctm_id =3D 0; 835d722ba10ac92 Mike Leach 2020-03-20 780 INIT_LIST_HEAD(&drvdata->ctide= v.trig_cons); 835d722ba10ac92 Mike Leach 2020-03-20 781 = 835d722ba10ac92 Mike Leach 2020-03-20 782 spin_lock_init(&drvdata->spinl= ock); 835d722ba10ac92 Mike Leach 2020-03-20 783 = 835d722ba10ac92 Mike Leach 2020-03-20 784 /* initialise CTI driver confi= g values */ 835d722ba10ac92 Mike Leach 2020-03-20 785 cti_set_default_config(dev, dr= vdata); 835d722ba10ac92 Mike Leach 2020-03-20 786 = 835d722ba10ac92 Mike Leach 2020-03-20 787 pdata =3D coresight_cti_get_pl= atform_data(dev); ^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^^^^ This function sets drvdata->ctidev.cpu on some success paths and also on certain failure paths. 835d722ba10ac92 Mike Leach 2020-03-20 788 if (IS_ERR(pdata)) { 835d722ba10ac92 Mike Leach 2020-03-20 789 dev_err(dev, "coresight_cti_g= et_platform_data err\n"); 835d722ba10ac92 Mike Leach 2020-03-20 790 ret =3D PTR_ERR(pdata); 835d722ba10ac92 Mike Leach 2020-03-20 791 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 792 } 835d722ba10ac92 Mike Leach 2020-03-20 793 = 835d722ba10ac92 Mike Leach 2020-03-20 794 /* default to powered - could = change on PM notifications */ 835d722ba10ac92 Mike Leach 2020-03-20 795 drvdata->config.hw_powered =3D= true; 835d722ba10ac92 Mike Leach 2020-03-20 796 = 835d722ba10ac92 Mike Leach 2020-03-20 797 /* set up device name - will d= epend if cpu bound or otherwise */ 835d722ba10ac92 Mike Leach 2020-03-20 798 if (drvdata->ctidev.cpu >=3D 0) 835d722ba10ac92 Mike Leach 2020-03-20 799 cti_desc.name =3D devm_kaspri= ntf(dev, GFP_KERNEL, "cti_cpu%d", 835d722ba10ac92 Mike Leach 2020-03-20 800 drvdata->ctidev.cpu= ); 835d722ba10ac92 Mike Leach 2020-03-20 801 else 835d722ba10ac92 Mike Leach 2020-03-20 802 cti_desc.name =3D coresight_a= lloc_device_name(&cti_sys_devs, dev); 835d722ba10ac92 Mike Leach 2020-03-20 803 if (!cti_desc.name) { 835d722ba10ac92 Mike Leach 2020-03-20 804 ret =3D -ENOMEM; 835d722ba10ac92 Mike Leach 2020-03-20 805 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 806 } 835d722ba10ac92 Mike Leach 2020-03-20 807 = e9b880581d555c8 Mike Leach 2020-05-18 808 /* setup CPU power management = handling for CPU bound CTI devices. */ e9b880581d555c8 Mike Leach 2020-05-18 809 if (drvdata->ctidev.cpu >=3D 0= ) { e9b880581d555c8 Mike Leach 2020-05-18 810 cti_cpu_drvdata[drvdata->ctid= ev.cpu] =3D drvdata; e9b880581d555c8 Mike Leach 2020-05-18 811 if (!nr_cti_cpu++) { ^^^^^^^^^^^^ e9b880581d555c8 Mike Leach 2020-05-18 812 cpus_read_lock(); e9b880581d555c8 Mike Leach 2020-05-18 813 ret =3D cpuhp_setup_state_no= calls_cpuslocked( e9b880581d555c8 Mike Leach 2020-05-18 814 CPUHP_AP_ARM_CORESIGHT_CTI_= STARTING, e9b880581d555c8 Mike Leach 2020-05-18 815 "arm/coresight_cti:starting= ", e9b880581d555c8 Mike Leach 2020-05-18 816 cti_starting_cpu, cti_dying= _cpu); e9b880581d555c8 Mike Leach 2020-05-18 817 = e9b880581d555c8 Mike Leach 2020-05-18 818 cpus_read_unlock(); e9b880581d555c8 Mike Leach 2020-05-18 819 if (ret) e9b880581d555c8 Mike Leach 2020-05-18 820 goto err_out; e9b880581d555c8 Mike Leach 2020-05-18 821 } e9b880581d555c8 Mike Leach 2020-05-18 822 } e9b880581d555c8 Mike Leach 2020-05-18 823 = 3c5597e398124e6 Mike Leach 2020-03-20 824 /* create dynamic attributes f= or connections */ 3c5597e398124e6 Mike Leach 2020-03-20 825 ret =3D cti_create_cons_sysfs(= dev, drvdata); 3c5597e398124e6 Mike Leach 2020-03-20 826 if (ret) { 3c5597e398124e6 Mike Leach 2020-03-20 827 dev_err(dev, "%s: create dyna= mic sysfs entries failed\n", 3c5597e398124e6 Mike Leach 2020-03-20 828 cti_desc.name); 3c5597e398124e6 Mike Leach 2020-03-20 829 goto err_out; 3c5597e398124e6 Mike Leach 2020-03-20 830 } 3c5597e398124e6 Mike Leach 2020-03-20 831 = 835d722ba10ac92 Mike Leach 2020-03-20 832 /* set up coresight component = description */ 835d722ba10ac92 Mike Leach 2020-03-20 833 cti_desc.pdata =3D pdata; 835d722ba10ac92 Mike Leach 2020-03-20 834 cti_desc.type =3D CORESIGHT_DE= V_TYPE_ECT; 835d722ba10ac92 Mike Leach 2020-03-20 835 cti_desc.subtype.ect_subtype = =3D CORESIGHT_DEV_SUBTYPE_ECT_CTI; 835d722ba10ac92 Mike Leach 2020-03-20 836 cti_desc.ops =3D &cti_ops; 3c5597e398124e6 Mike Leach 2020-03-20 837 cti_desc.groups =3D drvdata->c= tidev.con_groups; 835d722ba10ac92 Mike Leach 2020-03-20 838 cti_desc.dev =3D dev; 835d722ba10ac92 Mike Leach 2020-03-20 839 drvdata->csdev =3D coresight_r= egister(&cti_desc); 835d722ba10ac92 Mike Leach 2020-03-20 840 if (IS_ERR(drvdata->csdev)) { 835d722ba10ac92 Mike Leach 2020-03-20 841 ret =3D PTR_ERR(drvdata->csde= v); 835d722ba10ac92 Mike Leach 2020-03-20 842 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 843 } 835d722ba10ac92 Mike Leach 2020-03-20 844 = 835d722ba10ac92 Mike Leach 2020-03-20 845 /* add to list of CTI devices = */ 835d722ba10ac92 Mike Leach 2020-03-20 846 mutex_lock(&ect_mutex); 835d722ba10ac92 Mike Leach 2020-03-20 847 list_add(&drvdata->node, &ect_= net); 177af8285b59a38 Mike Leach 2020-03-20 848 /* set any cross references */ 177af8285b59a38 Mike Leach 2020-03-20 849 cti_update_conn_xrefs(drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 850 mutex_unlock(&ect_mutex); 835d722ba10ac92 Mike Leach 2020-03-20 851 = 835d722ba10ac92 Mike Leach 2020-03-20 852 /* set up release chain */ 835d722ba10ac92 Mike Leach 2020-03-20 853 drvdata->csdev_release =3D drv= data->csdev->dev.release; 835d722ba10ac92 Mike Leach 2020-03-20 854 drvdata->csdev->dev.release = =3D cti_device_release; 835d722ba10ac92 Mike Leach 2020-03-20 855 = 835d722ba10ac92 Mike Leach 2020-03-20 856 /* all done - dec pm refcount = */ 835d722ba10ac92 Mike Leach 2020-03-20 857 pm_runtime_put(&adev->dev); 835d722ba10ac92 Mike Leach 2020-03-20 858 dev_info(&drvdata->csdev->dev,= "CTI initialized\n"); 835d722ba10ac92 Mike Leach 2020-03-20 859 return 0; 835d722ba10ac92 Mike Leach 2020-03-20 860 = 835d722ba10ac92 Mike Leach 2020-03-20 861 err_out: e9b880581d555c8 Mike Leach 2020-05-18 @862 cti_pm_release(drvdata); ^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 863 return ret; 835d722ba10ac92 Mike Leach 2020-03-20 864 } 750 /* release PM registrations */ 751 static void cti_pm_release(struct cti_drvdata *drvdata) 752 { 753 if (drvdata->ctidev.cpu >=3D 0) { ^^^^^^^ We are dereferencing this when it wasn't allocated. 754 if (--nr_cti_cpu =3D=3D 0) { ^^^^^^^^^^^^ If devm_kasprintf() fails then we are decrementing this when it wasn't incremented so now it can be negative. 755 cpu_pm_unregister_notifier(&cti_cpu_pm_nb); If the cpu_pm_register_notifier() fails then we are unregistering this when it wasn't registered. It turns out this is harmless but if we only free things which have been allocated then it becomes a lot easier to audit the code. 756 = 757 cpuhp_remove_state_nocalls( 758 CPUHP_AP_ARM_CORESIGHT_CTI_STARTING= ); If cpuhp_setup_state_nocalls_cpuslocked() failed then this wasn't allocated. I believe this is harmless. 759 } 760 cti_cpu_drvdata[drvdata->ctidev.cpu] =3D NULL; 761 } 762 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org _______________________________________________ kbuild mailing list -- kbuild(a)lists.01.org To unsubscribe send an email to kbuild-leave(a)lists.01.org --===============4307335834952624342== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 Zt42WYPwAQA= --===============4307335834952624342==-- 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=-7.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_SANE_1 autolearn=ham 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 68308C433E0 for ; Fri, 12 Jun 2020 13:47:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 155CB20801 for ; Fri, 12 Jun 2020 13:47:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="WA7KQ1wh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726408AbgFLNrP (ORCPT ); Fri, 12 Jun 2020 09:47:15 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:35882 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726257AbgFLNrO (ORCPT ); Fri, 12 Jun 2020 09:47:14 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 05CDkOU7168906; Fri, 12 Jun 2020 13:47:03 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; s=corp-2020-01-29; bh=w9UPnJB+lYLiB5C2zOJDZ2jvpgeHr3BGYIe8oRyhaS4=; b=WA7KQ1whRulwC5CK8WGKS4RKD47T61fdzbzDdXel/ijrbD61OZK6/Elq7uFtna22HxBG tCQdXQt1eoqjxPnoZXsux4WwAaT4dzqHhiAb3vg+IIiWmyJ79CtT/b3EzXP2OlHDwQYl IEo9jLwVtnYGYFzJJXoCG9kbQrZSLCls+XK/2Mquyr67W/m8ynodPttT9rorXQavxuDc Yk4yj5c5bzLfa5BDaNXPCKlbLGOC0msEcI9P4gI8hBQEoOrmlNFbMiUX7WhrPzba/2bl sPrEn2BbnyaMce0wsEJiW8d1pIL1sSsK19HRx0gSg8sRGq/AuSNukUlfPZXwDwv8jMXG Qw== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2130.oracle.com with ESMTP id 31g2jrn61v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 12 Jun 2020 13:47:03 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 05CDebVh089967; Fri, 12 Jun 2020 13:47:02 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3020.oracle.com with ESMTP id 31masr041v-209 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 12 Jun 2020 13:47:01 +0000 Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 05CCAuAM027776; Fri, 12 Jun 2020 12:10:56 GMT Received: from kadam (/41.57.98.10) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 12 Jun 2020 05:10:54 -0700 Date: Fri, 12 Jun 2020 15:10:47 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Mike Leach Cc: lkp@intel.com, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Mathieu Poirier Subject: [kbuild] drivers/hwtracing/coresight/coresight-cti.c:862 cti_probe() error: we previously assumed 'drvdata' could be null (see line 759) Message-ID: <20200612121047.GF4282@kadam> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="jousvV0MzM2p6OtC" Content-Disposition: inline Message-ID-Hash: 23VGN3Q6HWTLVISOFJEPUMOJHCA7DEPE User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9649 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006120101 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9649 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 impostorscore=0 cotscore=-2147483648 priorityscore=1501 spamscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006120102 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --jousvV0MzM2p6OtC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Mike, Here is the buggy line: 861 err_out: 862 cti_pm_release(drvdata); ^^^^^^^ To me it's a red flag any time there is a label called "out:". The label should say what is being released like "goto unregister_notifier;". The style of error handling here is called a "free everything function" and it is the most error prone style of error handling. A better way to write error handling is to track the most recently allocated resource and free it with a well named goto. a = alloc(); if (!a) return -ENOMEM; b = alloc(); if (!b) { ret = -ENOMEM; goto free_a; } c = alloc(); if (!c) { ret = -ENOMEM; goto free_b; ... return 0; free_b: free(b); free_a: free(a); The advantage of this is that 1) You only have to track the most recent allocation. 2) You can easily verify that the most recent allocation is freed. 3) Now you can create a free function by copy and pasting and adding a free(c); void my_free(struct whatever *p) { free(c); free(b); free(a); } This style uses about the same number of lines of code because although we duplicate the free(b) and free(a), we can remove some if statements so it ends up being about the same. The main problem with free everything function is that they free things which have not been allocated. I have added more explanation at the bottom of this bug report. I am also sending a patch which hopefully is clear but I can't actually compile it. :( tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b791d1bdf9212d944d749a5c7ff6febdba241771 commit: e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f coresight: cti: Add CPU Hotplug handling to CTI driver config: arm-randconfig-m031-20200612 (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 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/hwtracing/coresight/coresight-cti.c:862 cti_probe() error: we previously assumed 'drvdata' could be null (see line 759) # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git remote update linus git checkout e9b880581d555c8f7b58c7d19cc3f8f9016a1b5f vim +/drvdata +862 drivers/hwtracing/coresight/coresight-cti.c 835d722ba10ac92 Mike Leach 2020-03-20 747 static int cti_probe(struct amba_device *adev, const struct amba_id *id) 835d722ba10ac92 Mike Leach 2020-03-20 748 { 835d722ba10ac92 Mike Leach 2020-03-20 749 int ret = 0; 835d722ba10ac92 Mike Leach 2020-03-20 750 void __iomem *base; 835d722ba10ac92 Mike Leach 2020-03-20 751 struct device *dev = &adev->dev; 835d722ba10ac92 Mike Leach 2020-03-20 752 struct cti_drvdata *drvdata = NULL; 835d722ba10ac92 Mike Leach 2020-03-20 753 struct coresight_desc cti_desc; 835d722ba10ac92 Mike Leach 2020-03-20 754 struct coresight_platform_data *pdata = NULL; 835d722ba10ac92 Mike Leach 2020-03-20 755 struct resource *res = &adev->res; 835d722ba10ac92 Mike Leach 2020-03-20 756 835d722ba10ac92 Mike Leach 2020-03-20 757 /* driver data*/ 835d722ba10ac92 Mike Leach 2020-03-20 758 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); 835d722ba10ac92 Mike Leach 2020-03-20 @759 if (!drvdata) { 835d722ba10ac92 Mike Leach 2020-03-20 760 ret = -ENOMEM; 835d722ba10ac92 Mike Leach 2020-03-20 761 dev_info(dev, "%s, mem err\n", __func__); No need to print an error message for kmalloc() failures. It already has a stack trace built in. 835d722ba10ac92 Mike Leach 2020-03-20 762 goto err_out; ^^^^^^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 763 } 835d722ba10ac92 Mike Leach 2020-03-20 764 835d722ba10ac92 Mike Leach 2020-03-20 765 /* Validity for the resource is already checked by the AMBA core */ 835d722ba10ac92 Mike Leach 2020-03-20 766 base = devm_ioremap_resource(dev, res); 835d722ba10ac92 Mike Leach 2020-03-20 767 if (IS_ERR(base)) { 835d722ba10ac92 Mike Leach 2020-03-20 768 ret = PTR_ERR(base); 835d722ba10ac92 Mike Leach 2020-03-20 769 dev_err(dev, "%s, remap err\n", __func__); At this point "drvdata->ctidev.cpu" is zero. 835d722ba10ac92 Mike Leach 2020-03-20 770 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 771 } 835d722ba10ac92 Mike Leach 2020-03-20 772 drvdata->base = base; 835d722ba10ac92 Mike Leach 2020-03-20 773 835d722ba10ac92 Mike Leach 2020-03-20 774 dev_set_drvdata(dev, drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 775 835d722ba10ac92 Mike Leach 2020-03-20 776 /* default CTI device info */ 835d722ba10ac92 Mike Leach 2020-03-20 777 drvdata->ctidev.cpu = -1; ^^^^^^^^^^^^^^^^^^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 778 drvdata->ctidev.nr_trig_con = 0; 835d722ba10ac92 Mike Leach 2020-03-20 779 drvdata->ctidev.ctm_id = 0; 835d722ba10ac92 Mike Leach 2020-03-20 780 INIT_LIST_HEAD(&drvdata->ctidev.trig_cons); 835d722ba10ac92 Mike Leach 2020-03-20 781 835d722ba10ac92 Mike Leach 2020-03-20 782 spin_lock_init(&drvdata->spinlock); 835d722ba10ac92 Mike Leach 2020-03-20 783 835d722ba10ac92 Mike Leach 2020-03-20 784 /* initialise CTI driver config values */ 835d722ba10ac92 Mike Leach 2020-03-20 785 cti_set_default_config(dev, drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 786 835d722ba10ac92 Mike Leach 2020-03-20 787 pdata = coresight_cti_get_platform_data(dev); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This function sets drvdata->ctidev.cpu on some success paths and also on certain failure paths. 835d722ba10ac92 Mike Leach 2020-03-20 788 if (IS_ERR(pdata)) { 835d722ba10ac92 Mike Leach 2020-03-20 789 dev_err(dev, "coresight_cti_get_platform_data err\n"); 835d722ba10ac92 Mike Leach 2020-03-20 790 ret = PTR_ERR(pdata); 835d722ba10ac92 Mike Leach 2020-03-20 791 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 792 } 835d722ba10ac92 Mike Leach 2020-03-20 793 835d722ba10ac92 Mike Leach 2020-03-20 794 /* default to powered - could change on PM notifications */ 835d722ba10ac92 Mike Leach 2020-03-20 795 drvdata->config.hw_powered = true; 835d722ba10ac92 Mike Leach 2020-03-20 796 835d722ba10ac92 Mike Leach 2020-03-20 797 /* set up device name - will depend if cpu bound or otherwise */ 835d722ba10ac92 Mike Leach 2020-03-20 798 if (drvdata->ctidev.cpu >= 0) 835d722ba10ac92 Mike Leach 2020-03-20 799 cti_desc.name = devm_kasprintf(dev, GFP_KERNEL, "cti_cpu%d", 835d722ba10ac92 Mike Leach 2020-03-20 800 drvdata->ctidev.cpu); 835d722ba10ac92 Mike Leach 2020-03-20 801 else 835d722ba10ac92 Mike Leach 2020-03-20 802 cti_desc.name = coresight_alloc_device_name(&cti_sys_devs, dev); 835d722ba10ac92 Mike Leach 2020-03-20 803 if (!cti_desc.name) { 835d722ba10ac92 Mike Leach 2020-03-20 804 ret = -ENOMEM; 835d722ba10ac92 Mike Leach 2020-03-20 805 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 806 } 835d722ba10ac92 Mike Leach 2020-03-20 807 e9b880581d555c8 Mike Leach 2020-05-18 808 /* setup CPU power management handling for CPU bound CTI devices. */ e9b880581d555c8 Mike Leach 2020-05-18 809 if (drvdata->ctidev.cpu >= 0) { e9b880581d555c8 Mike Leach 2020-05-18 810 cti_cpu_drvdata[drvdata->ctidev.cpu] = drvdata; e9b880581d555c8 Mike Leach 2020-05-18 811 if (!nr_cti_cpu++) { ^^^^^^^^^^^^ e9b880581d555c8 Mike Leach 2020-05-18 812 cpus_read_lock(); e9b880581d555c8 Mike Leach 2020-05-18 813 ret = cpuhp_setup_state_nocalls_cpuslocked( e9b880581d555c8 Mike Leach 2020-05-18 814 CPUHP_AP_ARM_CORESIGHT_CTI_STARTING, e9b880581d555c8 Mike Leach 2020-05-18 815 "arm/coresight_cti:starting", e9b880581d555c8 Mike Leach 2020-05-18 816 cti_starting_cpu, cti_dying_cpu); e9b880581d555c8 Mike Leach 2020-05-18 817 e9b880581d555c8 Mike Leach 2020-05-18 818 cpus_read_unlock(); e9b880581d555c8 Mike Leach 2020-05-18 819 if (ret) e9b880581d555c8 Mike Leach 2020-05-18 820 goto err_out; e9b880581d555c8 Mike Leach 2020-05-18 821 } e9b880581d555c8 Mike Leach 2020-05-18 822 } e9b880581d555c8 Mike Leach 2020-05-18 823 3c5597e398124e6 Mike Leach 2020-03-20 824 /* create dynamic attributes for connections */ 3c5597e398124e6 Mike Leach 2020-03-20 825 ret = cti_create_cons_sysfs(dev, drvdata); 3c5597e398124e6 Mike Leach 2020-03-20 826 if (ret) { 3c5597e398124e6 Mike Leach 2020-03-20 827 dev_err(dev, "%s: create dynamic sysfs entries failed\n", 3c5597e398124e6 Mike Leach 2020-03-20 828 cti_desc.name); 3c5597e398124e6 Mike Leach 2020-03-20 829 goto err_out; 3c5597e398124e6 Mike Leach 2020-03-20 830 } 3c5597e398124e6 Mike Leach 2020-03-20 831 835d722ba10ac92 Mike Leach 2020-03-20 832 /* set up coresight component description */ 835d722ba10ac92 Mike Leach 2020-03-20 833 cti_desc.pdata = pdata; 835d722ba10ac92 Mike Leach 2020-03-20 834 cti_desc.type = CORESIGHT_DEV_TYPE_ECT; 835d722ba10ac92 Mike Leach 2020-03-20 835 cti_desc.subtype.ect_subtype = CORESIGHT_DEV_SUBTYPE_ECT_CTI; 835d722ba10ac92 Mike Leach 2020-03-20 836 cti_desc.ops = &cti_ops; 3c5597e398124e6 Mike Leach 2020-03-20 837 cti_desc.groups = drvdata->ctidev.con_groups; 835d722ba10ac92 Mike Leach 2020-03-20 838 cti_desc.dev = dev; 835d722ba10ac92 Mike Leach 2020-03-20 839 drvdata->csdev = coresight_register(&cti_desc); 835d722ba10ac92 Mike Leach 2020-03-20 840 if (IS_ERR(drvdata->csdev)) { 835d722ba10ac92 Mike Leach 2020-03-20 841 ret = PTR_ERR(drvdata->csdev); 835d722ba10ac92 Mike Leach 2020-03-20 842 goto err_out; 835d722ba10ac92 Mike Leach 2020-03-20 843 } 835d722ba10ac92 Mike Leach 2020-03-20 844 835d722ba10ac92 Mike Leach 2020-03-20 845 /* add to list of CTI devices */ 835d722ba10ac92 Mike Leach 2020-03-20 846 mutex_lock(&ect_mutex); 835d722ba10ac92 Mike Leach 2020-03-20 847 list_add(&drvdata->node, &ect_net); 177af8285b59a38 Mike Leach 2020-03-20 848 /* set any cross references */ 177af8285b59a38 Mike Leach 2020-03-20 849 cti_update_conn_xrefs(drvdata); 835d722ba10ac92 Mike Leach 2020-03-20 850 mutex_unlock(&ect_mutex); 835d722ba10ac92 Mike Leach 2020-03-20 851 835d722ba10ac92 Mike Leach 2020-03-20 852 /* set up release chain */ 835d722ba10ac92 Mike Leach 2020-03-20 853 drvdata->csdev_release = drvdata->csdev->dev.release; 835d722ba10ac92 Mike Leach 2020-03-20 854 drvdata->csdev->dev.release = cti_device_release; 835d722ba10ac92 Mike Leach 2020-03-20 855 835d722ba10ac92 Mike Leach 2020-03-20 856 /* all done - dec pm refcount */ 835d722ba10ac92 Mike Leach 2020-03-20 857 pm_runtime_put(&adev->dev); 835d722ba10ac92 Mike Leach 2020-03-20 858 dev_info(&drvdata->csdev->dev, "CTI initialized\n"); 835d722ba10ac92 Mike Leach 2020-03-20 859 return 0; 835d722ba10ac92 Mike Leach 2020-03-20 860 835d722ba10ac92 Mike Leach 2020-03-20 861 err_out: e9b880581d555c8 Mike Leach 2020-05-18 @862 cti_pm_release(drvdata); ^^^^^^^ 835d722ba10ac92 Mike Leach 2020-03-20 863 return ret; 835d722ba10ac92 Mike Leach 2020-03-20 864 } 750 /* release PM registrations */ 751 static void cti_pm_release(struct cti_drvdata *drvdata) 752 { 753 if (drvdata->ctidev.cpu >= 0) { ^^^^^^^ We are dereferencing this when it wasn't allocated. 754 if (--nr_cti_cpu == 0) { ^^^^^^^^^^^^ If devm_kasprintf() fails then we are decrementing this when it wasn't incremented so now it can be negative. 755 cpu_pm_unregister_notifier(&cti_cpu_pm_nb); If the cpu_pm_register_notifier() fails then we are unregistering this when it wasn't registered. It turns out this is harmless but if we only free things which have been allocated then it becomes a lot easier to audit the code. 756 757 cpuhp_remove_state_nocalls( 758 CPUHP_AP_ARM_CORESIGHT_CTI_STARTING); If cpuhp_setup_state_nocalls_cpuslocked() failed then this wasn't allocated. I believe this is harmless. 759 } 760 cti_cpu_drvdata[drvdata->ctidev.cpu] = NULL; 761 } 762 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --jousvV0MzM2p6OtC Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 lFVtUn9VYMF/Zt42WYPwAQA= --jousvV0MzM2p6OtC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-leave@lists.01.org --jousvV0MzM2p6OtC--