lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202305040742.9ZtlciO9-lkp@intel.com>
Date:   Thu, 4 May 2023 07:11:21 +0800
From:   kernel test robot <lkp@...el.com>
To:     Tushar Nimkar <quic_tnimkar@...cinc.com>
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        Bjorn Andersson <andersson@...nel.org>
Subject: drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true
 condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fa31fc82fb775445c176e576304c4098222f47f2
commit: 88704a0cd71909c3107561261412a5d5beb23358 soc: qcom: rpmh-rsc: Support RSC v3 minor versions
date:   4 weeks ago
config: nios2-randconfig-m031-20230503 (https://download.01.org/0day-ci/archive/20230504/202305040742.9ZtlciO9-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202305040742.9ZtlciO9-lkp@intel.com/

New smatch warnings:
drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'

Old smatch warnings:
arch/nios2/include/asm/thread_info.h:62 current_thread_info() error: uninitialized symbol 'sp'.

vim +1076 drivers/soc/qcom/rpmh-rsc.c

  1031	
  1032	static int rpmh_rsc_probe(struct platform_device *pdev)
  1033	{
  1034		struct device_node *dn = pdev->dev.of_node;
  1035		struct rsc_drv *drv;
  1036		char drv_id[10] = {0};
  1037		int ret, irq;
  1038		u32 solver_config;
  1039		u32 rsc_id;
  1040	
  1041		/*
  1042		 * Even though RPMh doesn't directly use cmd-db, all of its children
  1043		 * do. To avoid adding this check to our children we'll do it now.
  1044		 */
  1045		ret = cmd_db_ready();
  1046		if (ret) {
  1047			if (ret != -EPROBE_DEFER)
  1048				dev_err(&pdev->dev, "Command DB not available (%d)\n",
  1049										ret);
  1050			return ret;
  1051		}
  1052	
  1053		drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL);
  1054		if (!drv)
  1055			return -ENOMEM;
  1056	
  1057		ret = of_property_read_u32(dn, "qcom,drv-id", &drv->id);
  1058		if (ret)
  1059			return ret;
  1060	
  1061		drv->name = of_get_property(dn, "label", NULL);
  1062		if (!drv->name)
  1063			drv->name = dev_name(&pdev->dev);
  1064	
  1065		snprintf(drv_id, ARRAY_SIZE(drv_id), "drv-%d", drv->id);
  1066		drv->base = devm_platform_ioremap_resource_byname(pdev, drv_id);
  1067		if (IS_ERR(drv->base))
  1068			return PTR_ERR(drv->base);
  1069	
  1070		rsc_id = readl_relaxed(drv->base + RSC_DRV_ID);
  1071		drv->ver.major = rsc_id & (MAJOR_VER_MASK << MAJOR_VER_SHIFT);
  1072		drv->ver.major >>= MAJOR_VER_SHIFT;
  1073		drv->ver.minor = rsc_id & (MINOR_VER_MASK << MINOR_VER_SHIFT);
  1074		drv->ver.minor >>= MINOR_VER_SHIFT;
  1075	
> 1076		if (drv->ver.major == 3 && drv->ver.minor >= 0)
  1077			drv->regs = rpmh_rsc_reg_offset_ver_3_0;
  1078		else
  1079			drv->regs = rpmh_rsc_reg_offset_ver_2_7;
  1080	
  1081		ret = rpmh_probe_tcs_config(pdev, drv);
  1082		if (ret)
  1083			return ret;
  1084	
  1085		spin_lock_init(&drv->lock);
  1086		init_waitqueue_head(&drv->tcs_wait);
  1087		bitmap_zero(drv->tcs_in_use, MAX_TCS_NR);
  1088	
  1089		irq = platform_get_irq(pdev, drv->id);
  1090		if (irq < 0)
  1091			return irq;
  1092	
  1093		ret = devm_request_irq(&pdev->dev, irq, tcs_tx_done,
  1094				       IRQF_TRIGGER_HIGH | IRQF_NO_SUSPEND,
  1095				       drv->name, drv);
  1096		if (ret)
  1097			return ret;
  1098	
  1099		/*
  1100		 * CPU PM/genpd notification are not required for controllers that support
  1101		 * 'HW solver' mode where they can be in autonomous mode executing low
  1102		 * power mode to power down.
  1103		 */
  1104		solver_config = readl_relaxed(drv->base + drv->regs[DRV_SOLVER_CONFIG]);
  1105		solver_config &= DRV_HW_SOLVER_MASK << DRV_HW_SOLVER_SHIFT;
  1106		solver_config = solver_config >> DRV_HW_SOLVER_SHIFT;
  1107		if (!solver_config) {
  1108			if (pdev->dev.pm_domain) {
  1109				ret = rpmh_rsc_pd_attach(drv, &pdev->dev);
  1110				if (ret)
  1111					return ret;
  1112			} else {
  1113				drv->rsc_pm.notifier_call = rpmh_rsc_cpu_pm_callback;
  1114				cpu_pm_register_notifier(&drv->rsc_pm);
  1115			}
  1116		}
  1117	
  1118		/* Enable the active TCS to send requests immediately */
  1119		writel_relaxed(drv->tcs[ACTIVE_TCS].mask,
  1120			       drv->tcs_base + drv->regs[RSC_DRV_IRQ_ENABLE]);
  1121	
  1122		spin_lock_init(&drv->client.cache_lock);
  1123		INIT_LIST_HEAD(&drv->client.cache);
  1124		INIT_LIST_HEAD(&drv->client.batch_cache);
  1125	
  1126		dev_set_drvdata(&pdev->dev, drv);
  1127		drv->dev = &pdev->dev;
  1128	
  1129		ret = devm_of_platform_populate(&pdev->dev);
  1130		if (ret && pdev->dev.pm_domain) {
  1131			dev_pm_genpd_remove_notifier(&pdev->dev);
  1132			pm_runtime_disable(&pdev->dev);
  1133		}
  1134	
  1135		return ret;
  1136	}
  1137	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ