All of lore.kernel.org
 help / color / mirror / Atom feed
* [rafael-pm:bleeding-edge 27/39] drivers/cpufreq/cpufreq.c:1580:4-25: opportunity for str_enable_disable(policy -> boost_enabled)
@ 2025-01-25 19:17 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-01-25 19:17 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Julia Lawall

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-acpi@vger.kernel.org
CC: devel@acpica.org
CC: linux-pm@vger.kernel.org
TO: Lifeng Zheng <zhenglifeng1@huawei.com>
CC: "Rafael J. Wysocki" <rjw@rjwysocki.net>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge
head:   d0fb2a5dea57ea2b654c2e6665a5d101af0b111e
commit: dd016f379ebc2d43a9405742d1a6066577509bd7 [27/39] cpufreq: Introduce a more generic way to set default per-policy boost flag
:::::: branch date: 30 hours ago
:::::: commit date: 2 days ago
config: loongarch-randconfig-r061-20250125 (https://download.01.org/0day-ci/archive/20250126/202501260303.uN2uzbdv-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 14.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202501260303.uN2uzbdv-lkp@intel.com/

cocci warnings: (new ones prefixed by >>)
>> drivers/cpufreq/cpufreq.c:1580:4-25: opportunity for str_enable_disable(policy -> boost_enabled)

vim +1580 drivers/cpufreq/cpufreq.c

e9698cc5d2749c Srivatsa S. Bhat   2013-07-30  1358  
0b275352872b26 Rafael J. Wysocki  2015-07-29  1359  static int cpufreq_online(unsigned int cpu)
^1da177e4c3f41 Linus Torvalds     2005-04-16  1360  {
7f0c020ab6ecb5 Viresh Kumar       2015-01-02  1361  	struct cpufreq_policy *policy;
194d99c7e3ce54 Rafael J. Wysocki  2015-07-29  1362  	bool new_policy;
^1da177e4c3f41 Linus Torvalds     2005-04-16  1363  	unsigned long flags;
0b275352872b26 Rafael J. Wysocki  2015-07-29  1364  	unsigned int j;
0b275352872b26 Rafael J. Wysocki  2015-07-29  1365  	int ret;
87549141d516ae Viresh Kumar       2015-06-10  1366  
0b275352872b26 Rafael J. Wysocki  2015-07-29  1367  	pr_debug("%s: bringing CPU%u online\n", __func__, cpu);
6eed9404ab3c4b Viresh Kumar       2013-08-06  1368  
bb29ae152e3b9d Viresh Kumar       2015-02-19  1369  	/* Check if this CPU already has a policy to manage it */
9104bb26c740cd Viresh Kumar       2015-05-12  1370  	policy = per_cpu(cpufreq_cpu_data, cpu);
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1371  	if (policy) {
9104bb26c740cd Viresh Kumar       2015-05-12  1372  		WARN_ON(!cpumask_test_cpu(cpu, policy->related_cpus));
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1373  		if (!policy_is_inactive(policy))
d9612a495b0bc9 Rafael J. Wysocki  2015-07-27  1374  			return cpufreq_add_policy_cpu(policy, cpu);
^1da177e4c3f41 Linus Torvalds     2005-04-16  1375  
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1376  		/* This is the only online CPU for the policy.  Start over. */
194d99c7e3ce54 Rafael J. Wysocki  2015-07-29  1377  		new_policy = false;
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1378  		down_write(&policy->rwsem);
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1379  		policy->cpu = cpu;
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1380  		policy->governor = NULL;
11ce707e6c2aea Rafael J. Wysocki  2015-07-27  1381  	} else {
194d99c7e3ce54 Rafael J. Wysocki  2015-07-29  1382  		new_policy = true;
a34e63b14486e9 Rafael J. Wysocki  2015-07-27  1383  		policy = cpufreq_policy_alloc(cpu);
059019a3c3353b Dave Jones         2009-07-08  1384  		if (!policy)
d4d854d6c7706e Rafael J. Wysocki  2015-07-27  1385  			return -ENOMEM;
514ff1bcd98d7f Schspa Shi         2022-05-16  1386  		down_write(&policy->rwsem);
72368d122c7479 Rafael J. Wysocki  2013-12-27  1387  	}
0d66b91ebff498 Srivatsa S. Bhat   2013-09-12  1388  
91a12e91dc3913 Viresh Kumar       2019-02-12  1389  	if (!new_policy && cpufreq_driver->online) {
68315f1a5f1333 Pierre Gondois     2022-07-04  1390  		/* Recover policy->cpus using related_cpus */
68315f1a5f1333 Pierre Gondois     2022-07-04  1391  		cpumask_copy(policy->cpus, policy->related_cpus);
68315f1a5f1333 Pierre Gondois     2022-07-04  1392  
91a12e91dc3913 Viresh Kumar       2019-02-12  1393  		ret = cpufreq_driver->online(policy);
91a12e91dc3913 Viresh Kumar       2019-02-12  1394  		if (ret) {
91a12e91dc3913 Viresh Kumar       2019-02-12  1395  			pr_debug("%s: %d: initialization failed\n", __func__,
91a12e91dc3913 Viresh Kumar       2019-02-12  1396  				 __LINE__);
91a12e91dc3913 Viresh Kumar       2019-02-12  1397  			goto out_exit_policy;
91a12e91dc3913 Viresh Kumar       2019-02-12  1398  		}
91a12e91dc3913 Viresh Kumar       2019-02-12  1399  	} else {
835481d9bcd657 Rusty Russell      2009-01-04  1400  		cpumask_copy(policy->cpus, cpumask_of(cpu));
^1da177e4c3f41 Linus Torvalds     2005-04-16  1401  
91a12e91dc3913 Viresh Kumar       2019-02-12  1402  		/*
91a12e91dc3913 Viresh Kumar       2019-02-12  1403  		 * Call driver. From then on the cpufreq must be able
91a12e91dc3913 Viresh Kumar       2019-02-12  1404  		 * to accept all calls to ->verify and ->setpolicy for this CPU.
^1da177e4c3f41 Linus Torvalds     2005-04-16  1405  		 */
1c3d85dd4e21a4 Rafael J. Wysocki  2013-04-29  1406  		ret = cpufreq_driver->init(policy);
^1da177e4c3f41 Linus Torvalds     2005-04-16  1407  		if (ret) {
91a12e91dc3913 Viresh Kumar       2019-02-12  1408  			pr_debug("%s: %d: initialization failed\n", __func__,
91a12e91dc3913 Viresh Kumar       2019-02-12  1409  				 __LINE__);
8101f99703048c Viresh Kumar       2015-07-08  1410  			goto out_free_policy;
^1da177e4c3f41 Linus Torvalds     2005-04-16  1411  		}
643ae6e81dd65b Viresh Kumar       2013-01-12  1412  
3b7180573c250e Rafael J. Wysocki  2021-06-22  1413  		/*
3b7180573c250e Rafael J. Wysocki  2021-06-22  1414  		 * The initialization has succeeded and the policy is online.
3b7180573c250e Rafael J. Wysocki  2021-06-22  1415  		 * If there is a problem with its frequency table, take it
3b7180573c250e Rafael J. Wysocki  2021-06-22  1416  		 * offline and drop it.
3b7180573c250e Rafael J. Wysocki  2021-06-22  1417  		 */
d417e0691ac00d Viresh Kumar       2018-02-22  1418  		ret = cpufreq_table_validate_and_sort(policy);
d417e0691ac00d Viresh Kumar       2018-02-22  1419  		if (ret)
3b7180573c250e Rafael J. Wysocki  2021-06-22  1420  			goto out_offline_policy;
d417e0691ac00d Viresh Kumar       2018-02-22  1421  
4d1f3a5bcb489c Rafael J. Wysocki  2015-07-27  1422  		/* related_cpus should at least include policy->cpus. */
0998a03a3a4d35 Viresh Kumar       2015-10-15  1423  		cpumask_copy(policy->related_cpus, policy->cpus);
4d1f3a5bcb489c Rafael J. Wysocki  2015-07-27  1424  	}
559ed40752dc63 Rafael J. Wysocki  2015-07-26  1425  
5a7e56a5d29071 Viresh Kumar       2014-03-04  1426  	/*
5a7e56a5d29071 Viresh Kumar       2014-03-04  1427  	 * affected cpus must always be the one, which are online. We aren't
5a7e56a5d29071 Viresh Kumar       2014-03-04  1428  	 * managing offline cpus here.
5a7e56a5d29071 Viresh Kumar       2014-03-04  1429  	 */
5a7e56a5d29071 Viresh Kumar       2014-03-04  1430  	cpumask_and(policy->cpus, policy->cpus, cpu_online_mask);
5a7e56a5d29071 Viresh Kumar       2014-03-04  1431  
194d99c7e3ce54 Rafael J. Wysocki  2015-07-29  1432  	if (new_policy) {
2f0ba790df5172 Rafael J. Wysocki  2017-03-27  1433  		for_each_cpu(j, policy->related_cpus) {
652ed95d5fa607 Viresh Kumar       2014-01-09  1434  			per_cpu(cpufreq_cpu_data, j) = policy;
2c1b5a84669d24 Xiongfeng Wang     2021-11-29  1435  			add_cpu_dev_symlink(policy, j, get_cpu_device(j));
2f0ba790df5172 Rafael J. Wysocki  2017-03-27  1436  		}
18c49926c4bf49 Viresh Kumar       2019-07-05  1437  
18c49926c4bf49 Viresh Kumar       2019-07-05  1438  		policy->min_freq_req = kzalloc(2 * sizeof(*policy->min_freq_req),
18c49926c4bf49 Viresh Kumar       2019-07-05  1439  					       GFP_KERNEL);
b96f038432362a Wang ShaoBo        2020-11-26  1440  		if (!policy->min_freq_req) {
b96f038432362a Wang ShaoBo        2020-11-26  1441  			ret = -ENOMEM;
18c49926c4bf49 Viresh Kumar       2019-07-05  1442  			goto out_destroy_policy;
b96f038432362a Wang ShaoBo        2020-11-26  1443  		}
18c49926c4bf49 Viresh Kumar       2019-07-05  1444  
3000ce3c52f8b8 Rafael J. Wysocki  2019-10-16  1445  		ret = freq_qos_add_request(&policy->constraints,
3000ce3c52f8b8 Rafael J. Wysocki  2019-10-16  1446  					   policy->min_freq_req, FREQ_QOS_MIN,
521223d8b3ec07 Rafael J. Wysocki  2021-12-16  1447  					   FREQ_QOS_MIN_DEFAULT_VALUE);
18c49926c4bf49 Viresh Kumar       2019-07-05  1448  		if (ret < 0) {
18c49926c4bf49 Viresh Kumar       2019-07-05  1449  			/*
3000ce3c52f8b8 Rafael J. Wysocki  2019-10-16  1450  			 * So we don't call freq_qos_remove_request() for an
18c49926c4bf49 Viresh Kumar       2019-07-05  1451  			 * uninitialized request.
18c49926c4bf49 Viresh Kumar       2019-07-05  1452  			 */
18c49926c4bf49 Viresh Kumar       2019-07-05  1453  			kfree(policy->min_freq_req);
18c49926c4bf49 Viresh Kumar       2019-07-05  1454  			policy->min_freq_req = NULL;
18c49926c4bf49 Viresh Kumar       2019-07-05  1455  			goto out_destroy_policy;
18c49926c4bf49 Viresh Kumar       2019-07-05  1456  		}
18c49926c4bf49 Viresh Kumar       2019-07-05  1457  
18c49926c4bf49 Viresh Kumar       2019-07-05  1458  		/*
18c49926c4bf49 Viresh Kumar       2019-07-05  1459  		 * This must be initialized right here to avoid calling
3000ce3c52f8b8 Rafael J. Wysocki  2019-10-16  1460  		 * freq_qos_remove_request() on uninitialized request in case
18c49926c4bf49 Viresh Kumar       2019-07-05  1461  		 * of errors.
18c49926c4bf49 Viresh Kumar       2019-07-05  1462  		 */
18c49926c4bf49 Viresh Kumar       2019-07-05  1463  		policy->max_freq_req = policy->min_freq_req + 1;
18c49926c4bf49 Viresh Kumar       2019-07-05  1464  
3000ce3c52f8b8 Rafael J. Wysocki  2019-10-16  1465  		ret = freq_qos_add_request(&policy->constraints,
3000ce3c52f8b8 Rafael J. Wysocki  2019-10-16  1466  					   policy->max_freq_req, FREQ_QOS_MAX,
521223d8b3ec07 Rafael J. Wysocki  2021-12-16  1467  					   FREQ_QOS_MAX_DEFAULT_VALUE);
18c49926c4bf49 Viresh Kumar       2019-07-05  1468  		if (ret < 0) {
18c49926c4bf49 Viresh Kumar       2019-07-05  1469  			policy->max_freq_req = NULL;
18c49926c4bf49 Viresh Kumar       2019-07-05  1470  			goto out_destroy_policy;
18c49926c4bf49 Viresh Kumar       2019-07-05  1471  		}
6a1490367c44f9 Viresh Kumar       2019-07-23  1472  
6a1490367c44f9 Viresh Kumar       2019-07-23  1473  		blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
6a1490367c44f9 Viresh Kumar       2019-07-23  1474  				CPUFREQ_CREATE_POLICY, policy);
1608f023051048 Lifeng Zheng       2025-01-17  1475  	} else {
1608f023051048 Lifeng Zheng       2025-01-17  1476  		ret = freq_qos_update_request(policy->max_freq_req, policy->max);
1608f023051048 Lifeng Zheng       2025-01-17  1477  		if (ret < 0)
1608f023051048 Lifeng Zheng       2025-01-17  1478  			goto out_destroy_policy;
988bed09d35a85 Viresh Kumar       2015-05-08  1479  	}
652ed95d5fa607 Viresh Kumar       2014-01-09  1480  
5ddc6d4e30f4e8 Viresh Kumar       2019-06-20  1481  	if (cpufreq_driver->get && has_target()) {
da60ce9f2faca8 Viresh Kumar       2013-10-03  1482  		policy->cur = cpufreq_driver->get(policy->cpu);
da60ce9f2faca8 Viresh Kumar       2013-10-03  1483  		if (!policy->cur) {
b96f038432362a Wang ShaoBo        2020-11-26  1484  			ret = -EIO;
da60ce9f2faca8 Viresh Kumar       2013-10-03  1485  			pr_err("%s: ->get() failed\n", __func__);
d417e0691ac00d Viresh Kumar       2018-02-22  1486  			goto out_destroy_policy;
da60ce9f2faca8 Viresh Kumar       2013-10-03  1487  		}
da60ce9f2faca8 Viresh Kumar       2013-10-03  1488  	}
da60ce9f2faca8 Viresh Kumar       2013-10-03  1489  
d3916691c90dfc Viresh Kumar       2013-12-03  1490  	/*
d3916691c90dfc Viresh Kumar       2013-12-03  1491  	 * Sometimes boot loaders set CPU frequency to a value outside of
d3916691c90dfc Viresh Kumar       2013-12-03  1492  	 * frequency table present with cpufreq core. In such cases CPU might be
d3916691c90dfc Viresh Kumar       2013-12-03  1493  	 * unstable if it has to run on that frequency for long duration of time
d3916691c90dfc Viresh Kumar       2013-12-03  1494  	 * and so its better to set it to a frequency which is specified in
d3916691c90dfc Viresh Kumar       2013-12-03  1495  	 * freq-table. This also makes cpufreq stats inconsistent as
d3916691c90dfc Viresh Kumar       2013-12-03  1496  	 * cpufreq-stats would fail to register because current frequency of CPU
d3916691c90dfc Viresh Kumar       2013-12-03  1497  	 * isn't found in freq-table.
d3916691c90dfc Viresh Kumar       2013-12-03  1498  	 *
d3916691c90dfc Viresh Kumar       2013-12-03  1499  	 * Because we don't want this change to effect boot process badly, we go
d3916691c90dfc Viresh Kumar       2013-12-03  1500  	 * for the next freq which is >= policy->cur ('cur' must be set by now,
d3916691c90dfc Viresh Kumar       2013-12-03  1501  	 * otherwise we will end up setting freq to lowest of the table as 'cur'
d3916691c90dfc Viresh Kumar       2013-12-03  1502  	 * is initialized to zero).
d3916691c90dfc Viresh Kumar       2013-12-03  1503  	 *
d3916691c90dfc Viresh Kumar       2013-12-03  1504  	 * We are passing target-freq as "policy->cur - 1" otherwise
d3916691c90dfc Viresh Kumar       2013-12-03  1505  	 * __cpufreq_driver_target() would simply fail, as policy->cur will be
d3916691c90dfc Viresh Kumar       2013-12-03  1506  	 * equal to target-freq.
d3916691c90dfc Viresh Kumar       2013-12-03  1507  	 */
d3916691c90dfc Viresh Kumar       2013-12-03  1508  	if ((cpufreq_driver->flags & CPUFREQ_NEED_INITIAL_FREQ_CHECK)
d3916691c90dfc Viresh Kumar       2013-12-03  1509  	    && has_target()) {
97148d0ae5303b Viresh Kumar       2020-10-13  1510  		unsigned int old_freq = policy->cur;
97148d0ae5303b Viresh Kumar       2020-10-13  1511  
d3916691c90dfc Viresh Kumar       2013-12-03  1512  		/* Are we running at unknown frequency ? */
97148d0ae5303b Viresh Kumar       2020-10-13  1513  		ret = cpufreq_frequency_table_get_index(policy, old_freq);
d3916691c90dfc Viresh Kumar       2013-12-03  1514  		if (ret == -EINVAL) {
97148d0ae5303b Viresh Kumar       2020-10-13  1515  			ret = __cpufreq_driver_target(policy, old_freq - 1,
d3916691c90dfc Viresh Kumar       2013-12-03  1516  						      CPUFREQ_RELATION_L);
d3916691c90dfc Viresh Kumar       2013-12-03  1517  
d3916691c90dfc Viresh Kumar       2013-12-03  1518  			/*
d3916691c90dfc Viresh Kumar       2013-12-03  1519  			 * Reaching here after boot in a few seconds may not
d3916691c90dfc Viresh Kumar       2013-12-03  1520  			 * mean that system will remain stable at "unknown"
d3916691c90dfc Viresh Kumar       2013-12-03  1521  			 * frequency for longer duration. Hence, a BUG_ON().
d3916691c90dfc Viresh Kumar       2013-12-03  1522  			 */
d3916691c90dfc Viresh Kumar       2013-12-03  1523  			BUG_ON(ret);
8d5459f1a7f083 Marcin Juszkiewicz 2024-09-09  1524  			pr_info("%s: CPU%d: Running at unlisted initial frequency: %u kHz, changing to: %u kHz\n",
97148d0ae5303b Viresh Kumar       2020-10-13  1525  				__func__, policy->cpu, old_freq, policy->cur);
d3916691c90dfc Viresh Kumar       2013-12-03  1526  		}
d3916691c90dfc Viresh Kumar       2013-12-03  1527  	}
d3916691c90dfc Viresh Kumar       2013-12-03  1528  
194d99c7e3ce54 Rafael J. Wysocki  2015-07-29  1529  	if (new_policy) {
d9612a495b0bc9 Rafael J. Wysocki  2015-07-27  1530  		ret = cpufreq_add_dev_interface(policy);
19d6f7ec3eb165 Dave Jones         2009-07-08  1531  		if (ret)
d417e0691ac00d Viresh Kumar       2018-02-22  1532  			goto out_destroy_policy;
1aefc75b2449eb Rafael J. Wysocki  2016-05-31  1533  
1aefc75b2449eb Rafael J. Wysocki  2016-05-31  1534  		cpufreq_stats_create_table(policy);
c88a1f8b96e738 Lukasz Majewski    2013-08-06  1535  
c88a1f8b96e738 Lukasz Majewski    2013-08-06  1536  		write_lock_irqsave(&cpufreq_driver_lock, flags);
c88a1f8b96e738 Lukasz Majewski    2013-08-06  1537  		list_add(&policy->policy_list, &cpufreq_policy_list);
c88a1f8b96e738 Lukasz Majewski    2013-08-06  1538  		write_unlock_irqrestore(&cpufreq_driver_lock, flags);
c17495b01b72b5 Viresh Kumar       2021-08-10  1539  
c17495b01b72b5 Viresh Kumar       2021-08-10  1540  		/*
c17495b01b72b5 Viresh Kumar       2021-08-10  1541  		 * Register with the energy model before
ebeeee390b6a34 Rafael J. Wysocki  2024-12-12  1542  		 * em_rebuild_sched_domains() is called, which will result
c17495b01b72b5 Viresh Kumar       2021-08-10  1543  		 * in rebuilding of the sched domains, which should only be done
c17495b01b72b5 Viresh Kumar       2021-08-10  1544  		 * once the energy model is properly initialized for the policy
c17495b01b72b5 Viresh Kumar       2021-08-10  1545  		 * first.
c17495b01b72b5 Viresh Kumar       2021-08-10  1546  		 *
c17495b01b72b5 Viresh Kumar       2021-08-10  1547  		 * Also, this should be called before the policy is registered
c17495b01b72b5 Viresh Kumar       2021-08-10  1548  		 * with cooling framework.
c17495b01b72b5 Viresh Kumar       2021-08-10  1549  		 */
c17495b01b72b5 Viresh Kumar       2021-08-10  1550  		if (cpufreq_driver->register_em)
c17495b01b72b5 Viresh Kumar       2021-08-10  1551  			cpufreq_driver->register_em(policy);
988bed09d35a85 Viresh Kumar       2015-05-08  1552  	}
8ff69732d484ea Dave Jones         2006-03-05  1553  
7f0fa40f5a587c Viresh Kumar       2015-07-08  1554  	ret = cpufreq_init_policy(policy);
7f0fa40f5a587c Viresh Kumar       2015-07-08  1555  	if (ret) {
7f0fa40f5a587c Viresh Kumar       2015-07-08  1556  		pr_err("%s: Failed to initialize policy for cpu: %d (%d)\n",
7f0fa40f5a587c Viresh Kumar       2015-07-08  1557  		       __func__, cpu, ret);
d417e0691ac00d Viresh Kumar       2018-02-22  1558  		goto out_destroy_policy;
08fd8c1cf0a99a Viresh Kumar       2013-12-24  1559  	}
e18f1682bce701 Srivatsa S. Bhat   2013-07-30  1560  
4e97b631f24c92 Viresh Kumar       2014-03-04  1561  	up_write(&policy->rwsem);
08fd8c1cf0a99a Viresh Kumar       2013-12-24  1562  
038c5b3e412b0b Greg Kroah-Hartman 2007-12-17  1563  	kobject_uevent(&policy->kobj, KOBJ_ADD);
7c45cf31b3ab9b Viresh Kumar       2014-11-27  1564  
4f774c4a65bf39 Bjorn Andersson    2022-01-27  1565  	/* Callback for handling stuff after policy is ready */
4f774c4a65bf39 Bjorn Andersson    2022-01-27  1566  	if (cpufreq_driver->ready)
4f774c4a65bf39 Bjorn Andersson    2022-01-27  1567  		cpufreq_driver->ready(policy);
4f774c4a65bf39 Bjorn Andersson    2022-01-27  1568  
c4d61a529db788 Viresh Kumar       2024-02-29  1569  	/* Register cpufreq cooling only for a new policy */
c4d61a529db788 Viresh Kumar       2024-02-29  1570  	if (new_policy && cpufreq_thermal_control_enabled(cpufreq_driver))
5c238a8b599f1a Amit Kucheria      2019-01-30  1571  		policy->cdev = of_cpufreq_cooling_register(policy);
5c238a8b599f1a Amit Kucheria      2019-01-30  1572  
dd016f379ebc2d Lifeng Zheng       2025-01-17  1573  	/* Let the per-policy boost flag mirror the cpufreq_driver boost during init */
dd016f379ebc2d Lifeng Zheng       2025-01-17  1574  	if (policy->boost_enabled != cpufreq_boost_enabled()) {
dd016f379ebc2d Lifeng Zheng       2025-01-17  1575  		policy->boost_enabled = cpufreq_boost_enabled();
dd016f379ebc2d Lifeng Zheng       2025-01-17  1576  		ret = cpufreq_driver->set_boost(policy, policy->boost_enabled);
dd016f379ebc2d Lifeng Zheng       2025-01-17  1577  		if (ret) {
dd016f379ebc2d Lifeng Zheng       2025-01-17  1578  			/* If the set_boost fails, the online operation is not affected */
dd016f379ebc2d Lifeng Zheng       2025-01-17  1579  			pr_info("%s: CPU%d: Cannot %s BOOST\n", __func__, policy->cpu,
dd016f379ebc2d Lifeng Zheng       2025-01-17 @1580  				policy->boost_enabled ? "enable" : "disable");
dd016f379ebc2d Lifeng Zheng       2025-01-17  1581  			policy->boost_enabled = !policy->boost_enabled;
dd016f379ebc2d Lifeng Zheng       2025-01-17  1582  		}
dd016f379ebc2d Lifeng Zheng       2025-01-17  1583  	}
dd016f379ebc2d Lifeng Zheng       2025-01-17  1584  
2d06d8c49afdcc Dominik Brodowski  2011-03-27  1585  	pr_debug("initialization complete\n");
^1da177e4c3f41 Linus Torvalds     2005-04-16  1586  
^1da177e4c3f41 Linus Torvalds     2005-04-16  1587  	return 0;
^1da177e4c3f41 Linus Torvalds     2005-04-16  1588  
d417e0691ac00d Viresh Kumar       2018-02-22  1589  out_destroy_policy:
b24b6478e65f14 Viresh Kumar       2018-02-22  1590  	for_each_cpu(j, policy->real_cpus)
5c84c1b84bd80a Viresh Kumar       2022-05-11  1591  		remove_cpu_dev_symlink(policy, j, get_cpu_device(j));
b24b6478e65f14 Viresh Kumar       2018-02-22  1592  
3b7180573c250e Rafael J. Wysocki  2021-06-22  1593  out_offline_policy:
3b7180573c250e Rafael J. Wysocki  2021-06-22  1594  	if (cpufreq_driver->offline)
3b7180573c250e Rafael J. Wysocki  2021-06-22  1595  		cpufreq_driver->offline(policy);
3b7180573c250e Rafael J. Wysocki  2021-06-22  1596  
d417e0691ac00d Viresh Kumar       2018-02-22  1597  out_exit_policy:
da60ce9f2faca8 Viresh Kumar       2013-10-03  1598  	if (cpufreq_driver->exit)
da60ce9f2faca8 Viresh Kumar       2013-10-03  1599  		cpufreq_driver->exit(policy);
2f0ba790df5172 Rafael J. Wysocki  2017-03-27  1600  
8101f99703048c Viresh Kumar       2015-07-08  1601  out_free_policy:
a2f6a7ac60e234 Viresh Kumar       2022-07-07  1602  	cpumask_clear(policy->cpus);
514ff1bcd98d7f Schspa Shi         2022-05-16  1603  	up_write(&policy->rwsem);
514ff1bcd98d7f Schspa Shi         2022-05-16  1604  
f9f41e3ef99ac9 Viresh Kumar       2017-01-05  1605  	cpufreq_policy_free(policy);
^1da177e4c3f41 Linus Torvalds     2005-04-16  1606  	return ret;
^1da177e4c3f41 Linus Torvalds     2005-04-16  1607  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  1608  

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-01-25 19:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-25 19:17 [rafael-pm:bleeding-edge 27/39] drivers/cpufreq/cpufreq.c:1580:4-25: opportunity for str_enable_disable(policy -> boost_enabled) kernel test robot

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.