[linux-next:master 11244/11453] drivers/acpi/acpi_processor.c:354:46: warning: '%X' directive writing between 1 and 8 bytes into a region of size 5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   47d9bb711707d15b19fad18c8e2b4b027a264a3a
commit: 99b9bb7b36a7293603d8410d9228a38c32178d53 [11244/11453] Merge branch 'loongarch-next' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git
config: loongarch-randconfig-r011-20230822 (https://download.01.org/0day-ci/archive/20230822/202308220527.8csCMbMU-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230822/202308220527.8csCMbMU-lkp@xxxxxxxxx/reproduce)

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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308220527.8csCMbMU-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

   drivers/acpi/acpi_processor.c: In function 'acpi_processor_get_info':
>> drivers/acpi/acpi_processor.c:354:46: warning: '%X' directive writing between 1 and 8 bytes into a region of size 5 [-Wformat-overflow=]
     354 |         sprintf(acpi_device_bid(device), "CPU%X", pr->id);
         |                                              ^~
   drivers/acpi/acpi_processor.c:354:42: note: directive argument in the range [0, 2147483647]
     354 |         sprintf(acpi_device_bid(device), "CPU%X", pr->id);
         |                                          ^~~~~~~
   drivers/acpi/acpi_processor.c:354:9: note: 'sprintf' output between 5 and 12 bytes into a destination of size 8
     354 |         sprintf(acpi_device_bid(device), "CPU%X", pr->id);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +354 drivers/acpi/acpi_processor.c

ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  245  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  246  static int acpi_processor_get_info(struct acpi_device *device)
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  247  {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  248  	union acpi_object object = { 0 };
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  249  	struct acpi_buffer buffer = { sizeof(union acpi_object), &object };
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  250  	struct acpi_processor *pr = acpi_driver_data(device);
05eb3cd8b4f2dc Hanjun Guo        2015-05-11  251  	int device_declaration = 0;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  252  	acpi_status status = AE_OK;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  253  	static int cpu0_initialized;
6ebb5bc9e61be4 Zhang Rui         2013-09-03  254  	unsigned long long value;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  255  
082e12a05cf317 Hanjun Guo        2013-09-02  256  	acpi_processor_errata();
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  257  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  258  	/*
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  259  	 * Check to see if we have bus mastering arbitration control.  This
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  260  	 * is required for proper C3 usage (to maintain cache coherency).
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  261  	 */
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  262  	if (acpi_gbl_FADT.pm2_control_block && acpi_gbl_FADT.pm2_control_length) {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  263  		pr->flags.bm_control = 1;
52af99c3f55ff0 Rafael J. Wysocki 2021-02-22  264  		dev_dbg(&device->dev, "Bus mastering arbitration control present\n");
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  265  	} else
52af99c3f55ff0 Rafael J. Wysocki 2021-02-22  266  		dev_dbg(&device->dev, "No bus mastering arbitration control\n");
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  267  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  268  	if (!strcmp(acpi_device_hid(device), ACPI_PROCESSOR_OBJECT_HID)) {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  269  		/* Declared with "Processor" statement; match ProcessorID */
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  270  		status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  271  		if (ACPI_FAILURE(status)) {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  272  			dev_err(&device->dev,
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  273  				"Failed to evaluate processor object (0x%x)\n",
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  274  				status);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  275  			return -ENODEV;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  276  		}
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  277  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  278  		pr->acpi_id = object.processor.proc_id;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  279  	} else {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  280  		/*
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  281  		 * Declared with "Device" statement; match _UID.
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  282  		 */
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  283  		status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID,
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  284  						NULL, &value);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  285  		if (ACPI_FAILURE(status)) {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  286  			dev_err(&device->dev,
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  287  				"Failed to evaluate processor _UID (0x%x)\n",
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  288  				status);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  289  			return -ENODEV;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  290  		}
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  291  		device_declaration = 1;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  292  		pr->acpi_id = value;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  293  	}
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  294  
a77d6cd9684977 Dou Liyang        2017-03-03  295  	if (acpi_duplicate_processor_id(pr->acpi_id)) {
2c2b005f549544 Jiri Slaby        2019-08-07  296  		if (pr->acpi_id == 0xff)
2c2b005f549544 Jiri Slaby        2019-08-07  297  			dev_info_once(&device->dev,
2c2b005f549544 Jiri Slaby        2019-08-07  298  				"Entry not well-defined, consider updating BIOS\n");
2c2b005f549544 Jiri Slaby        2019-08-07  299  		else
a77d6cd9684977 Dou Liyang        2017-03-03  300  			dev_err(&device->dev,
a77d6cd9684977 Dou Liyang        2017-03-03  301  				"Failed to get unique processor _UID (0x%x)\n",
a77d6cd9684977 Dou Liyang        2017-03-03  302  				pr->acpi_id);
a77d6cd9684977 Dou Liyang        2017-03-03  303  		return -ENODEV;
a77d6cd9684977 Dou Liyang        2017-03-03  304  	}
a77d6cd9684977 Dou Liyang        2017-03-03  305  
8416c5bda17c1c Hanjun Guo        2015-05-11  306  	pr->phys_id = acpi_get_phys_id(pr->handle, device_declaration,
8416c5bda17c1c Hanjun Guo        2015-05-11  307  					pr->acpi_id);
ddcc18f5bdd1aa Hanjun Guo        2015-05-13  308  	if (invalid_phys_cpuid(pr->phys_id))
52af99c3f55ff0 Rafael J. Wysocki 2021-02-22  309  		dev_dbg(&device->dev, "Failed to get CPU physical ID.\n");
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  310  
05eb3cd8b4f2dc Hanjun Guo        2015-05-11  311  	pr->id = acpi_map_cpuid(pr->phys_id, pr->acpi_id);
691a637123470b Petr Pavlu        2023-03-16  312  	if (!cpu0_initialized) {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  313  		cpu0_initialized = 1;
af8f3f514d193e Hanjun Guo        2015-01-04  314  		/*
af8f3f514d193e Hanjun Guo        2015-01-04  315  		 * Handle UP system running SMP kernel, with no CPU
af8f3f514d193e Hanjun Guo        2015-01-04  316  		 * entry in MADT
af8f3f514d193e Hanjun Guo        2015-01-04  317  		 */
691a637123470b Petr Pavlu        2023-03-16  318  		if (!acpi_has_cpu_in_madt() && invalid_logical_cpuid(pr->id) &&
691a637123470b Petr Pavlu        2023-03-16  319  		    (num_online_cpus() == 1))
05eb3cd8b4f2dc Hanjun Guo        2015-05-11  320  			pr->id = 0;
691a637123470b Petr Pavlu        2023-03-16  321  		/*
691a637123470b Petr Pavlu        2023-03-16  322  		 * Check availability of Processor Performance Control by
691a637123470b Petr Pavlu        2023-03-16  323  		 * looking at the presence of the _PCT object under the first
691a637123470b Petr Pavlu        2023-03-16  324  		 * processor definition.
691a637123470b Petr Pavlu        2023-03-16  325  		 */
691a637123470b Petr Pavlu        2023-03-16  326  		if (acpi_has_method(pr->handle, "_PCT"))
691a637123470b Petr Pavlu        2023-03-16  327  			cpufreq_add_device("acpi-cpufreq");
b981513f806d26 Jiang Liu         2014-01-09  328  	}
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  329  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  330  	/*
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  331  	 *  Extra Processor objects may be enumerated on MP systems with
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  332  	 *  less than the max # of CPUs. They should be ignored _iff
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  333  	 *  they are physically not present.
8ad893faf2eaed Gu Zheng          2016-08-25  334  	 *
8ad893faf2eaed Gu Zheng          2016-08-25  335  	 *  NOTE: Even if the processor has a cpuid, it may not be present
8ad893faf2eaed Gu Zheng          2016-08-25  336  	 *  because cpuid <-> apicid mapping is persistent now.
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  337  	 */
8ad893faf2eaed Gu Zheng          2016-08-25  338  	if (invalid_logical_cpuid(pr->id) || !cpu_present(pr->id)) {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  339  		int ret = acpi_processor_hotadd_init(pr);
c8deb1c2576237 Xiaofei Tan       2021-03-27  340  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  341  		if (ret)
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  342  			return ret;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  343  	}
b981513f806d26 Jiang Liu         2014-01-09  344  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  345  	/*
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  346  	 * On some boxes several processors use the same processor bus id.
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  347  	 * But they are located in different scope. For example:
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  348  	 * \_SB.SCK0.CPU0
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  349  	 * \_SB.SCK1.CPU0
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  350  	 * Rename the processor device bus id. And the new bus id will be
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  351  	 * generated as the following format:
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  352  	 * CPU+CPU ID.
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  353  	 */
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03 @354  	sprintf(acpi_device_bid(device), "CPU%X", pr->id);
52af99c3f55ff0 Rafael J. Wysocki 2021-02-22  355  	dev_dbg(&device->dev, "Processor [%d:%d]\n", pr->id, pr->acpi_id);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  356  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  357  	if (!object.processor.pblk_address)
52af99c3f55ff0 Rafael J. Wysocki 2021-02-22  358  		dev_dbg(&device->dev, "No PBLK (NULL address)\n");
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  359  	else if (object.processor.pblk_length != 6)
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  360  		dev_err(&device->dev, "Invalid PBLK length [%d]\n",
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  361  			    object.processor.pblk_length);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  362  	else {
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  363  		pr->throttling.address = object.processor.pblk_address;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  364  		pr->throttling.duty_offset = acpi_gbl_FADT.duty_offset;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  365  		pr->throttling.duty_width = acpi_gbl_FADT.duty_width;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  366  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  367  		pr->pblk = object.processor.pblk_address;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  368  	}
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  369  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  370  	/*
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  371  	 * If ACPI describes a slot number for this CPU, we can use it to
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  372  	 * ensure we get the right value in the "physical id" field
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  373  	 * of /proc/cpuinfo
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  374  	 */
6ebb5bc9e61be4 Zhang Rui         2013-09-03  375  	status = acpi_evaluate_integer(pr->handle, "_SUN", NULL, &value);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  376  	if (ACPI_SUCCESS(status))
6ebb5bc9e61be4 Zhang Rui         2013-09-03  377  		arch_fix_phys_package_id(pr->id, value);
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  378  
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  379  	return 0;
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  380  }
ac212b6980d8d5 Rafael J. Wysocki 2013-05-03  381  

:::::: The code at line 354 was first introduced by commit
:::::: ac212b6980d8d5eda705864fc5a8ecddc6d6eacc ACPI / processor: Use common hotplug infrastructure

:::::: TO: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux