[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202204221808.8QMBRC91-lkp@intel.com>
Date: Fri, 22 Apr 2022 18:16:49 +0800
From: kernel test robot <lkp@...el.com>
To: "Rafael J. Wysocki" <rjw@...ysocki.net>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/acpi/x86/s2idle.c:395:13: sparse: sparse: restricted
suspend_state_t degrades to integer
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d569e86915b7f2f9795588591c8d5ea0b66481cb
commit: fef98671194be005853cbbf51b164a3927589b64 ACPI: PM: s2idle: Move x86-specific code to the x86 directory
date: 1 year, 4 months ago
config: x86_64-randconfig-s022 (https://download.01.org/0day-ci/archive/20220422/202204221808.8QMBRC91-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fef98671194be005853cbbf51b164a3927589b64
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout fef98671194be005853cbbf51b164a3927589b64
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/ drivers/ kernel// net/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/acpi/x86/s2idle.c:395:13: sparse: sparse: restricted suspend_state_t degrades to integer
drivers/acpi/x86/s2idle.c:395:33: sparse: sparse: restricted suspend_state_t degrades to integer
vim +395 drivers/acpi/x86/s2idle.c
348
349 static int lps0_device_attach(struct acpi_device *adev,
350 const struct acpi_device_id *not_used)
351 {
352 union acpi_object *out_obj;
353
354 if (lps0_device_handle)
355 return 0;
356
357 if (!(acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0))
358 return 0;
359
360 if (acpi_s2idle_vendor_amd()) {
361 guid_parse(ACPI_LPS0_DSM_UUID_AMD, &lps0_dsm_guid);
362 out_obj = acpi_evaluate_dsm(adev->handle, &lps0_dsm_guid, 0, 0, NULL);
363 rev_id = 0;
364 } else {
365 guid_parse(ACPI_LPS0_DSM_UUID, &lps0_dsm_guid);
366 out_obj = acpi_evaluate_dsm(adev->handle, &lps0_dsm_guid, 1, 0, NULL);
367 rev_id = 1;
368 }
369
370 /* Check if the _DSM is present and as expected. */
371 if (!out_obj || out_obj->type != ACPI_TYPE_BUFFER) {
372 acpi_handle_debug(adev->handle,
373 "_DSM function 0 evaluation failed\n");
374 return 0;
375 }
376
377 lps0_dsm_func_mask = *(char *)out_obj->buffer.pointer;
378
379 ACPI_FREE(out_obj);
380
381 acpi_handle_debug(adev->handle, "_DSM function mask: 0x%x\n",
382 lps0_dsm_func_mask);
383
384 lps0_device_handle = adev->handle;
385
386 if (acpi_s2idle_vendor_amd())
387 lpi_device_get_constraints_amd();
388 else
389 lpi_device_get_constraints();
390
391 /*
392 * Use suspend-to-idle by default if the default suspend mode was not
393 * set from the command line.
394 */
> 395 if (mem_sleep_default > PM_SUSPEND_MEM && !acpi_sleep_default_s3)
396 mem_sleep_current = PM_SUSPEND_TO_IDLE;
397
398 /*
399 * Some LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U, require the
400 * EC GPE to be enabled while suspended for certain wakeup devices to
401 * work, so mark it as wakeup-capable.
402 */
403 acpi_ec_mark_gpe_for_wake();
404
405 return 0;
406 }
407
--
0-DAY CI Kernel Test Service
https://01.org/lkp
Powered by blists - more mailing lists