From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/platform/x86/asus-armoury.c:358 mini_led_mode_current_value_store() warn: potential spectre issue 'mini_led_mode_map' [r] (local cap)
Date: Tue, 10 Mar 2026 10:55:24 +0800 [thread overview]
Message-ID: <202603101034.DCC8mF48-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: "Luke D. Jones" <luke@ljones.dev>
CC: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
CC: Denis Benato <denis.benato@linux.dev>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
commit: f99eb098090e4c8bfca4190b545e20450fee8250 platform/x86: asus-armoury: move existing tunings to asus-armoury module
date: 4 months ago
:::::: branch date: 27 hours ago
:::::: commit date: 4 months ago
config: x86_64-randconfig-r073-20260310 (https://download.01.org/0day-ci/archive/20260310/202603101034.DCC8mF48-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
smatch: v0.5.0-9004-gb810ac53
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: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603101034.DCC8mF48-lkp@intel.com/
smatch warnings:
drivers/platform/x86/asus-armoury.c:358 mini_led_mode_current_value_store() warn: potential spectre issue 'mini_led_mode_map' [r] (local cap)
drivers/platform/x86/asus-armoury.c:496 egpu_enable_current_value_store() warn: potential spectre issue 'egpu_status_map' [r] (local cap)
drivers/platform/x86/asus-armoury.c:500 egpu_enable_current_value_store() warn: possible spectre second half. 'enable'
vim +/mini_led_mode_map +358 drivers/platform/x86/asus-armoury.c
f99eb098090e4c Luke D. Jones 2025-11-02 322
f99eb098090e4c Luke D. Jones 2025-11-02 323 static ssize_t mini_led_mode_current_value_store(struct kobject *kobj,
f99eb098090e4c Luke D. Jones 2025-11-02 324 struct kobj_attribute *attr,
f99eb098090e4c Luke D. Jones 2025-11-02 325 const char *buf, size_t count)
f99eb098090e4c Luke D. Jones 2025-11-02 326 {
f99eb098090e4c Luke D. Jones 2025-11-02 327 u32 *mini_led_mode_map;
f99eb098090e4c Luke D. Jones 2025-11-02 328 size_t mini_led_mode_map_size;
f99eb098090e4c Luke D. Jones 2025-11-02 329 u32 mode;
f99eb098090e4c Luke D. Jones 2025-11-02 330 int err;
f99eb098090e4c Luke D. Jones 2025-11-02 331
f99eb098090e4c Luke D. Jones 2025-11-02 332 err = kstrtou32(buf, 10, &mode);
f99eb098090e4c Luke D. Jones 2025-11-02 333 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 334 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 335
f99eb098090e4c Luke D. Jones 2025-11-02 336 switch (asus_armoury.mini_led_dev_id) {
f99eb098090e4c Luke D. Jones 2025-11-02 337 case ASUS_WMI_DEVID_MINI_LED_MODE:
f99eb098090e4c Luke D. Jones 2025-11-02 338 mini_led_mode_map = mini_led_mode1_map;
f99eb098090e4c Luke D. Jones 2025-11-02 339 mini_led_mode_map_size = ARRAY_SIZE(mini_led_mode1_map);
f99eb098090e4c Luke D. Jones 2025-11-02 340 break;
f99eb098090e4c Luke D. Jones 2025-11-02 341
f99eb098090e4c Luke D. Jones 2025-11-02 342 case ASUS_WMI_DEVID_MINI_LED_MODE2:
f99eb098090e4c Luke D. Jones 2025-11-02 343 mini_led_mode_map = mini_led_mode2_map;
f99eb098090e4c Luke D. Jones 2025-11-02 344 mini_led_mode_map_size = ARRAY_SIZE(mini_led_mode2_map);
f99eb098090e4c Luke D. Jones 2025-11-02 345 break;
f99eb098090e4c Luke D. Jones 2025-11-02 346
f99eb098090e4c Luke D. Jones 2025-11-02 347 default:
f99eb098090e4c Luke D. Jones 2025-11-02 348 pr_err("Unrecognized mini-LED devid: %u\n", asus_armoury.mini_led_dev_id);
f99eb098090e4c Luke D. Jones 2025-11-02 349 return -EINVAL;
f99eb098090e4c Luke D. Jones 2025-11-02 350 }
f99eb098090e4c Luke D. Jones 2025-11-02 351
f99eb098090e4c Luke D. Jones 2025-11-02 352 if (mode >= mini_led_mode_map_size) {
f99eb098090e4c Luke D. Jones 2025-11-02 353 return pr_warn("mini-LED mode unrecognized device: %u\n", mode);
f99eb098090e4c Luke D. Jones 2025-11-02 354 return -ENODEV;
f99eb098090e4c Luke D. Jones 2025-11-02 355 }
f99eb098090e4c Luke D. Jones 2025-11-02 356
f99eb098090e4c Luke D. Jones 2025-11-02 357 return armoury_attr_uint_store(kobj, attr, buf, count,
f99eb098090e4c Luke D. Jones 2025-11-02 @358 0, mini_led_mode_map[mode],
f99eb098090e4c Luke D. Jones 2025-11-02 359 NULL, asus_armoury.mini_led_dev_id);
f99eb098090e4c Luke D. Jones 2025-11-02 360 }
f99eb098090e4c Luke D. Jones 2025-11-02 361
f99eb098090e4c Luke D. Jones 2025-11-02 362 static ssize_t mini_led_mode_possible_values_show(struct kobject *kobj,
f99eb098090e4c Luke D. Jones 2025-11-02 363 struct kobj_attribute *attr, char *buf)
f99eb098090e4c Luke D. Jones 2025-11-02 364 {
f99eb098090e4c Luke D. Jones 2025-11-02 365 switch (asus_armoury.mini_led_dev_id) {
f99eb098090e4c Luke D. Jones 2025-11-02 366 case ASUS_WMI_DEVID_MINI_LED_MODE:
f99eb098090e4c Luke D. Jones 2025-11-02 367 return armoury_attr_enum_list(buf, ARRAY_SIZE(mini_led_mode1_map));
f99eb098090e4c Luke D. Jones 2025-11-02 368 case ASUS_WMI_DEVID_MINI_LED_MODE2:
f99eb098090e4c Luke D. Jones 2025-11-02 369 return armoury_attr_enum_list(buf, ARRAY_SIZE(mini_led_mode2_map));
f99eb098090e4c Luke D. Jones 2025-11-02 370 default:
f99eb098090e4c Luke D. Jones 2025-11-02 371 return -ENODEV;
f99eb098090e4c Luke D. Jones 2025-11-02 372 }
f99eb098090e4c Luke D. Jones 2025-11-02 373 }
f99eb098090e4c Luke D. Jones 2025-11-02 374 ASUS_ATTR_GROUP_ENUM(mini_led_mode, "mini_led_mode", "Set the mini-LED backlight mode");
f99eb098090e4c Luke D. Jones 2025-11-02 375
f99eb098090e4c Luke D. Jones 2025-11-02 376 static ssize_t gpu_mux_mode_current_value_store(struct kobject *kobj,
f99eb098090e4c Luke D. Jones 2025-11-02 377 struct kobj_attribute *attr,
f99eb098090e4c Luke D. Jones 2025-11-02 378 const char *buf, size_t count)
f99eb098090e4c Luke D. Jones 2025-11-02 379 {
f99eb098090e4c Luke D. Jones 2025-11-02 380 int result, err;
f99eb098090e4c Luke D. Jones 2025-11-02 381 bool optimus;
f99eb098090e4c Luke D. Jones 2025-11-02 382
f99eb098090e4c Luke D. Jones 2025-11-02 383 err = kstrtobool(buf, &optimus);
f99eb098090e4c Luke D. Jones 2025-11-02 384 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 385 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 386
f99eb098090e4c Luke D. Jones 2025-11-02 387 if (armoury_has_devstate(ASUS_WMI_DEVID_DGPU)) {
f99eb098090e4c Luke D. Jones 2025-11-02 388 err = armoury_get_devstate(NULL, &result, ASUS_WMI_DEVID_DGPU);
f99eb098090e4c Luke D. Jones 2025-11-02 389 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 390 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 391 if (result && !optimus) {
f99eb098090e4c Luke D. Jones 2025-11-02 392 pr_warn("Cannot switch MUX to dGPU mode when dGPU is disabled: %02X\n",
f99eb098090e4c Luke D. Jones 2025-11-02 393 result);
f99eb098090e4c Luke D. Jones 2025-11-02 394 return -ENODEV;
f99eb098090e4c Luke D. Jones 2025-11-02 395 }
f99eb098090e4c Luke D. Jones 2025-11-02 396 }
f99eb098090e4c Luke D. Jones 2025-11-02 397
f99eb098090e4c Luke D. Jones 2025-11-02 398 if (armoury_has_devstate(ASUS_WMI_DEVID_EGPU)) {
f99eb098090e4c Luke D. Jones 2025-11-02 399 err = armoury_get_devstate(NULL, &result, ASUS_WMI_DEVID_EGPU);
f99eb098090e4c Luke D. Jones 2025-11-02 400 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 401 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 402 if (result && !optimus) {
f99eb098090e4c Luke D. Jones 2025-11-02 403 pr_warn("Cannot switch MUX to dGPU mode when eGPU is enabled\n");
f99eb098090e4c Luke D. Jones 2025-11-02 404 return -EBUSY;
f99eb098090e4c Luke D. Jones 2025-11-02 405 }
f99eb098090e4c Luke D. Jones 2025-11-02 406 }
f99eb098090e4c Luke D. Jones 2025-11-02 407
f99eb098090e4c Luke D. Jones 2025-11-02 408 err = armoury_set_devstate(attr, optimus ? 1 : 0, NULL, asus_armoury.gpu_mux_dev_id);
f99eb098090e4c Luke D. Jones 2025-11-02 409 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 410 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 411
f99eb098090e4c Luke D. Jones 2025-11-02 412 sysfs_notify(kobj, NULL, attr->attr.name);
f99eb098090e4c Luke D. Jones 2025-11-02 413 asus_set_reboot_and_signal_event();
f99eb098090e4c Luke D. Jones 2025-11-02 414
f99eb098090e4c Luke D. Jones 2025-11-02 415 return count;
f99eb098090e4c Luke D. Jones 2025-11-02 416 }
f99eb098090e4c Luke D. Jones 2025-11-02 417 ASUS_WMI_SHOW_INT(gpu_mux_mode_current_value, asus_armoury.gpu_mux_dev_id);
f99eb098090e4c Luke D. Jones 2025-11-02 418 ASUS_ATTR_GROUP_BOOL(gpu_mux_mode, "gpu_mux_mode", "Set the GPU display MUX mode");
f99eb098090e4c Luke D. Jones 2025-11-02 419
f99eb098090e4c Luke D. Jones 2025-11-02 420 static ssize_t dgpu_disable_current_value_store(struct kobject *kobj,
f99eb098090e4c Luke D. Jones 2025-11-02 421 struct kobj_attribute *attr, const char *buf,
f99eb098090e4c Luke D. Jones 2025-11-02 422 size_t count)
f99eb098090e4c Luke D. Jones 2025-11-02 423 {
f99eb098090e4c Luke D. Jones 2025-11-02 424 int result, err;
f99eb098090e4c Luke D. Jones 2025-11-02 425 bool disable;
f99eb098090e4c Luke D. Jones 2025-11-02 426
f99eb098090e4c Luke D. Jones 2025-11-02 427 err = kstrtobool(buf, &disable);
f99eb098090e4c Luke D. Jones 2025-11-02 428 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 429 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 430
f99eb098090e4c Luke D. Jones 2025-11-02 431 if (asus_armoury.gpu_mux_dev_id) {
f99eb098090e4c Luke D. Jones 2025-11-02 432 err = armoury_get_devstate(NULL, &result, asus_armoury.gpu_mux_dev_id);
f99eb098090e4c Luke D. Jones 2025-11-02 433 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 434 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 435 if (!result && disable) {
f99eb098090e4c Luke D. Jones 2025-11-02 436 pr_warn("Cannot disable dGPU when the MUX is in dGPU mode\n");
f99eb098090e4c Luke D. Jones 2025-11-02 437 return -EBUSY;
f99eb098090e4c Luke D. Jones 2025-11-02 438 }
f99eb098090e4c Luke D. Jones 2025-11-02 439 }
f99eb098090e4c Luke D. Jones 2025-11-02 440
f99eb098090e4c Luke D. Jones 2025-11-02 441 scoped_guard(mutex, &asus_armoury.egpu_mutex) {
f99eb098090e4c Luke D. Jones 2025-11-02 442 err = armoury_set_devstate(attr, disable ? 1 : 0, NULL, ASUS_WMI_DEVID_DGPU);
f99eb098090e4c Luke D. Jones 2025-11-02 443 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 444 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 445 }
f99eb098090e4c Luke D. Jones 2025-11-02 446
f99eb098090e4c Luke D. Jones 2025-11-02 447 sysfs_notify(kobj, NULL, attr->attr.name);
f99eb098090e4c Luke D. Jones 2025-11-02 448
f99eb098090e4c Luke D. Jones 2025-11-02 449 return count;
f99eb098090e4c Luke D. Jones 2025-11-02 450 }
f99eb098090e4c Luke D. Jones 2025-11-02 451 ASUS_WMI_SHOW_INT(dgpu_disable_current_value, ASUS_WMI_DEVID_DGPU);
f99eb098090e4c Luke D. Jones 2025-11-02 452 ASUS_ATTR_GROUP_BOOL(dgpu_disable, "dgpu_disable", "Disable the dGPU");
f99eb098090e4c Luke D. Jones 2025-11-02 453
f99eb098090e4c Luke D. Jones 2025-11-02 454 /* Values map for eGPU activation requests. */
f99eb098090e4c Luke D. Jones 2025-11-02 455 static u32 egpu_status_map[] = {
f99eb098090e4c Luke D. Jones 2025-11-02 456 [0] = 0x00000000U,
f99eb098090e4c Luke D. Jones 2025-11-02 457 [1] = 0x00000001U,
f99eb098090e4c Luke D. Jones 2025-11-02 458 [2] = 0x00000101U,
f99eb098090e4c Luke D. Jones 2025-11-02 459 [3] = 0x00000201U,
f99eb098090e4c Luke D. Jones 2025-11-02 460 };
f99eb098090e4c Luke D. Jones 2025-11-02 461
f99eb098090e4c Luke D. Jones 2025-11-02 462 /*
f99eb098090e4c Luke D. Jones 2025-11-02 463 * armoury_pci_rescan() - Performs a PCI rescan
f99eb098090e4c Luke D. Jones 2025-11-02 464 *
f99eb098090e4c Luke D. Jones 2025-11-02 465 * Bring up any GPU that has been hotplugged in the system.
f99eb098090e4c Luke D. Jones 2025-11-02 466 */
f99eb098090e4c Luke D. Jones 2025-11-02 467 static void armoury_pci_rescan(void)
f99eb098090e4c Luke D. Jones 2025-11-02 468 {
f99eb098090e4c Luke D. Jones 2025-11-02 469 struct pci_bus *b = NULL;
f99eb098090e4c Luke D. Jones 2025-11-02 470
f99eb098090e4c Luke D. Jones 2025-11-02 471 pci_lock_rescan_remove();
f99eb098090e4c Luke D. Jones 2025-11-02 472 while ((b = pci_find_next_bus(b)) != NULL)
f99eb098090e4c Luke D. Jones 2025-11-02 473 pci_rescan_bus(b);
f99eb098090e4c Luke D. Jones 2025-11-02 474 pci_unlock_rescan_remove();
f99eb098090e4c Luke D. Jones 2025-11-02 475 }
f99eb098090e4c Luke D. Jones 2025-11-02 476
f99eb098090e4c Luke D. Jones 2025-11-02 477 /*
f99eb098090e4c Luke D. Jones 2025-11-02 478 * The ACPI call to enable the eGPU might also disable the internal dGPU,
f99eb098090e4c Luke D. Jones 2025-11-02 479 * but this is not always the case and on certain models enabling the eGPU
f99eb098090e4c Luke D. Jones 2025-11-02 480 * when the dGPU is either still active or has been disabled without rebooting
f99eb098090e4c Luke D. Jones 2025-11-02 481 * will make both GPUs malfunction and the kernel will detect many
f99eb098090e4c Luke D. Jones 2025-11-02 482 * PCI AER unrecoverable errors.
f99eb098090e4c Luke D. Jones 2025-11-02 483 */
f99eb098090e4c Luke D. Jones 2025-11-02 484 static ssize_t egpu_enable_current_value_store(struct kobject *kobj, struct kobj_attribute *attr,
f99eb098090e4c Luke D. Jones 2025-11-02 485 const char *buf, size_t count)
f99eb098090e4c Luke D. Jones 2025-11-02 486 {
f99eb098090e4c Luke D. Jones 2025-11-02 487 int err;
f99eb098090e4c Luke D. Jones 2025-11-02 488 u32 requested, enable, result;
f99eb098090e4c Luke D. Jones 2025-11-02 489
f99eb098090e4c Luke D. Jones 2025-11-02 490 err = kstrtou32(buf, 10, &requested);
f99eb098090e4c Luke D. Jones 2025-11-02 491 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 492 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 493
f99eb098090e4c Luke D. Jones 2025-11-02 494 if (requested >= ARRAY_SIZE(egpu_status_map))
f99eb098090e4c Luke D. Jones 2025-11-02 495 return -EINVAL;
f99eb098090e4c Luke D. Jones 2025-11-02 @496 enable = egpu_status_map[requested];
f99eb098090e4c Luke D. Jones 2025-11-02 497
f99eb098090e4c Luke D. Jones 2025-11-02 498 scoped_guard(mutex, &asus_armoury.egpu_mutex) {
f99eb098090e4c Luke D. Jones 2025-11-02 499 /* Ensure the eGPU is connected before attempting to activate it. */
f99eb098090e4c Luke D. Jones 2025-11-02 @500 if (enable) {
f99eb098090e4c Luke D. Jones 2025-11-02 501 err = armoury_get_devstate(NULL, &result, ASUS_WMI_DEVID_EGPU_CONNECTED);
f99eb098090e4c Luke D. Jones 2025-11-02 502 if (err) {
f99eb098090e4c Luke D. Jones 2025-11-02 503 pr_warn("Failed to get eGPU connection status: %d\n", err);
f99eb098090e4c Luke D. Jones 2025-11-02 504 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 505 }
f99eb098090e4c Luke D. Jones 2025-11-02 506 if (!result) {
f99eb098090e4c Luke D. Jones 2025-11-02 507 pr_warn("Cannot activate eGPU while undetected\n");
f99eb098090e4c Luke D. Jones 2025-11-02 508 return -ENOENT;
f99eb098090e4c Luke D. Jones 2025-11-02 509 }
f99eb098090e4c Luke D. Jones 2025-11-02 510 }
f99eb098090e4c Luke D. Jones 2025-11-02 511
f99eb098090e4c Luke D. Jones 2025-11-02 512 if (asus_armoury.gpu_mux_dev_id) {
f99eb098090e4c Luke D. Jones 2025-11-02 513 err = armoury_get_devstate(NULL, &result, asus_armoury.gpu_mux_dev_id);
f99eb098090e4c Luke D. Jones 2025-11-02 514 if (err)
f99eb098090e4c Luke D. Jones 2025-11-02 515 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 516
f99eb098090e4c Luke D. Jones 2025-11-02 517 if (!result && enable) {
f99eb098090e4c Luke D. Jones 2025-11-02 518 pr_warn("Cannot enable eGPU when the MUX is in dGPU mode\n");
f99eb098090e4c Luke D. Jones 2025-11-02 519 return -ENODEV;
f99eb098090e4c Luke D. Jones 2025-11-02 520 }
f99eb098090e4c Luke D. Jones 2025-11-02 521 }
f99eb098090e4c Luke D. Jones 2025-11-02 522
f99eb098090e4c Luke D. Jones 2025-11-02 523 err = armoury_set_devstate(attr, enable, &result, ASUS_WMI_DEVID_EGPU);
f99eb098090e4c Luke D. Jones 2025-11-02 524 if (err) {
f99eb098090e4c Luke D. Jones 2025-11-02 525 pr_err("Failed to set %s: %d\n", attr->attr.name, err);
f99eb098090e4c Luke D. Jones 2025-11-02 526 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 527 }
f99eb098090e4c Luke D. Jones 2025-11-02 528
f99eb098090e4c Luke D. Jones 2025-11-02 529 /*
f99eb098090e4c Luke D. Jones 2025-11-02 530 * ACPI returns value 0x01 on success and 0x02 on a partial activation:
f99eb098090e4c Luke D. Jones 2025-11-02 531 * performing a pci rescan will bring up the device in pci-e 3.0 speed,
f99eb098090e4c Luke D. Jones 2025-11-02 532 * after a reboot the device will work at full speed.
f99eb098090e4c Luke D. Jones 2025-11-02 533 */
f99eb098090e4c Luke D. Jones 2025-11-02 534 switch (result) {
f99eb098090e4c Luke D. Jones 2025-11-02 535 case 0x01:
f99eb098090e4c Luke D. Jones 2025-11-02 536 /*
f99eb098090e4c Luke D. Jones 2025-11-02 537 * When a GPU is in use it does not get disconnected even if
f99eb098090e4c Luke D. Jones 2025-11-02 538 * the ACPI call returns a success.
f99eb098090e4c Luke D. Jones 2025-11-02 539 */
f99eb098090e4c Luke D. Jones 2025-11-02 540 if (!enable) {
f99eb098090e4c Luke D. Jones 2025-11-02 541 err = armoury_get_devstate(attr, &result, ASUS_WMI_DEVID_EGPU);
f99eb098090e4c Luke D. Jones 2025-11-02 542 if (err) {
f99eb098090e4c Luke D. Jones 2025-11-02 543 pr_warn("Failed to ensure eGPU is deactivated: %d\n", err);
f99eb098090e4c Luke D. Jones 2025-11-02 544 return err;
f99eb098090e4c Luke D. Jones 2025-11-02 545 }
f99eb098090e4c Luke D. Jones 2025-11-02 546
f99eb098090e4c Luke D. Jones 2025-11-02 547 if (result != 0)
f99eb098090e4c Luke D. Jones 2025-11-02 548 return -EBUSY;
f99eb098090e4c Luke D. Jones 2025-11-02 549 }
f99eb098090e4c Luke D. Jones 2025-11-02 550
f99eb098090e4c Luke D. Jones 2025-11-02 551 pr_debug("Success changing the eGPU status\n");
f99eb098090e4c Luke D. Jones 2025-11-02 552 break;
f99eb098090e4c Luke D. Jones 2025-11-02 553 case 0x02:
f99eb098090e4c Luke D. Jones 2025-11-02 554 pr_info("Success changing the eGPU status, a reboot is strongly advised\n");
f99eb098090e4c Luke D. Jones 2025-11-02 555 asus_set_reboot_and_signal_event();
f99eb098090e4c Luke D. Jones 2025-11-02 556 break;
f99eb098090e4c Luke D. Jones 2025-11-02 557 default:
f99eb098090e4c Luke D. Jones 2025-11-02 558 pr_err("Failed to change the eGPU status: wmi result is 0x%x\n", result);
f99eb098090e4c Luke D. Jones 2025-11-02 559 return -EIO;
f99eb098090e4c Luke D. Jones 2025-11-02 560 }
f99eb098090e4c Luke D. Jones 2025-11-02 561 }
f99eb098090e4c Luke D. Jones 2025-11-02 562
f99eb098090e4c Luke D. Jones 2025-11-02 563 /*
f99eb098090e4c Luke D. Jones 2025-11-02 564 * Perform a PCI rescan: on every tested model this is necessary
f99eb098090e4c Luke D. Jones 2025-11-02 565 * to make the eGPU visible on the bus without rebooting.
f99eb098090e4c Luke D. Jones 2025-11-02 566 */
f99eb098090e4c Luke D. Jones 2025-11-02 567 armoury_pci_rescan();
f99eb098090e4c Luke D. Jones 2025-11-02 568
f99eb098090e4c Luke D. Jones 2025-11-02 569 sysfs_notify(kobj, NULL, attr->attr.name);
f99eb098090e4c Luke D. Jones 2025-11-02 570
f99eb098090e4c Luke D. Jones 2025-11-02 571 return count;
f99eb098090e4c Luke D. Jones 2025-11-02 572 }
f99eb098090e4c Luke D. Jones 2025-11-02 573
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-03-10 2:55 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202603101034.DCC8mF48-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.