2022-01-26 22:33:20

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH] PCI: ACPI: Replace acpi_bus_get_device()

From: Rafael J. Wysocki <[email protected]>

Replace acpi_bus_get_device() that is going to be dropped with
acpi_fetch_acpi_dev().

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <[email protected]>
---
drivers/pci/hotplug/acpiphp_glue.c | 7 ++++---
drivers/pci/hotplug/acpiphp_ibm.c | 5 +++--
drivers/pci/pci-acpi.c | 6 +++---
3 files changed, 10 insertions(+), 8 deletions(-)

Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
===================================================================
--- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
+++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
@@ -226,9 +226,9 @@ static void acpiphp_post_dock_fixup(stru
static acpi_status acpiphp_add_context(acpi_handle handle, u32 lvl, void *data,
void **rv)
{
+ struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
struct acpiphp_bridge *bridge = data;
struct acpiphp_context *context;
- struct acpi_device *adev;
struct acpiphp_slot *slot;
struct acpiphp_func *newfunc;
acpi_status status = AE_OK;
@@ -238,6 +238,9 @@ static acpi_status acpiphp_add_context(a
struct pci_dev *pdev = bridge->pci_dev;
u32 val;

+ if (!adev)
+ return AE_OK;
+
status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr);
if (ACPI_FAILURE(status)) {
if (status != AE_NOT_FOUND)
@@ -245,8 +248,6 @@ static acpi_status acpiphp_add_context(a
"can't evaluate _ADR (%#x)\n", status);
return AE_OK;
}
- if (acpi_bus_get_device(handle, &adev))
- return AE_OK;

device = (adr >> 16) & 0xffff;
function = adr & 0xffff;
Index: linux-pm/drivers/pci/hotplug/acpiphp_ibm.c
===================================================================
--- linux-pm.orig/drivers/pci/hotplug/acpiphp_ibm.c
+++ linux-pm/drivers/pci/hotplug/acpiphp_ibm.c
@@ -433,8 +433,9 @@ static int __init ibm_acpiphp_init(void)
goto init_return;
}
pr_debug("%s: found IBM aPCI device\n", __func__);
- if (acpi_bus_get_device(ibm_acpi_handle, &device)) {
- pr_err("%s: acpi_bus_get_device failed\n", __func__);
+ device = acpi_fetch_acpi_dev(ibm_acpi_handle);
+ if (!device)) {
+ pr_err("%s: acpi_fetch_acpi_dev failed\n", __func__);
retval = -ENODEV;
goto init_return;
}
Index: linux-pm/drivers/pci/pci-acpi.c
===================================================================
--- linux-pm.orig/drivers/pci/pci-acpi.c
+++ linux-pm/drivers/pci/pci-acpi.c
@@ -89,9 +89,9 @@ int acpi_get_rc_resources(struct device
return -ENODEV;
}

- ret = acpi_bus_get_device(handle, &adev);
- if (ret)
- return ret;
+ adev = acpi_fetch_acpi_dev(handle);
+ if (!adev)
+ return -ENODEV;

ret = acpi_get_rc_addr(adev, res);
if (ret) {




2022-01-27 02:00:02

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] PCI: ACPI: Replace acpi_bus_get_device()

Hi "Rafael,

I love your patch! Yet something to improve:

[auto build test ERROR on rafael-pm/linux-next]
[also build test ERROR on helgaas-pci/next v5.17-rc1 next-20220125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Rafael-J-Wysocki/PCI-ACPI-Replace-acpi_bus_get_device/20220127-034410
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: ia64-allmodconfig (https://download.01.org/0day-ci/archive/20220127/[email protected]/config)
compiler: ia64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/f04b15e5b428aa6258b15b7e9bd9091cbf175e2f
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Rafael-J-Wysocki/PCI-ACPI-Replace-acpi_bus_get_device/20220127-034410
git checkout f04b15e5b428aa6258b15b7e9bd9091cbf175e2f
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/pci/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All error/warnings (new ones prefixed by >>):

drivers/pci/hotplug/acpiphp_ibm.c: In function 'ibm_acpiphp_init':
>> drivers/pci/hotplug/acpiphp_ibm.c:437:21: error: expected statement before ')' token
437 | if (!device)) {
| ^
>> drivers/pci/hotplug/acpiphp_ibm.c:437:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
437 | if (!device)) {
| ^~
drivers/pci/hotplug/acpiphp_ibm.c:437:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
437 | if (!device)) {
| ^


vim +437 drivers/pci/hotplug/acpiphp_ibm.c

418
419 static int __init ibm_acpiphp_init(void)
420 {
421 int retval = 0;
422 acpi_status status;
423 struct acpi_device *device;
424 struct kobject *sysdir = &pci_slots_kset->kobj;
425
426 pr_debug("%s\n", __func__);
427
428 if (acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
429 ACPI_UINT32_MAX, ibm_find_acpi_device, NULL,
430 &ibm_acpi_handle, NULL) != FOUND_APCI) {
431 pr_err("%s: acpi_walk_namespace failed\n", __func__);
432 retval = -ENODEV;
433 goto init_return;
434 }
435 pr_debug("%s: found IBM aPCI device\n", __func__);
436 device = acpi_fetch_acpi_dev(ibm_acpi_handle);
> 437 if (!device)) {
438 pr_err("%s: acpi_fetch_acpi_dev failed\n", __func__);
439 retval = -ENODEV;
440 goto init_return;
441 }
442 if (acpiphp_register_attention(&ibm_attention_info)) {
443 retval = -ENODEV;
444 goto init_return;
445 }
446
447 ibm_note.device = device;
448 status = acpi_install_notify_handler(ibm_acpi_handle,
449 ACPI_DEVICE_NOTIFY, ibm_handle_events,
450 &ibm_note);
451 if (ACPI_FAILURE(status)) {
452 pr_err("%s: Failed to register notification handler\n",
453 __func__);
454 retval = -EBUSY;
455 goto init_cleanup;
456 }
457
458 ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
459 retval = sysfs_create_bin_file(sysdir, &ibm_apci_table_attr);
460
461 return retval;
462
463 init_cleanup:
464 acpiphp_unregister_attention(&ibm_attention_info);
465 init_return:
466 return retval;
467 }
468

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]