[LTP] [PATCH] device-drivers/acpi/ltp_acpi_cmds: Fix build errors

Tiezhu Yang yangtiezhu@loongson.cn
Fri Jul 18 05:59:59 CEST 2025


On 2025/7/17 下午10:09, Petr Vorel wrote:
> Hi Tiezhu, all,

...

> Due the above could you please take the approach Ricardo did in 82e38a1f24
> ("block_dev: Convert to new API") - wrap with ifndef?
> 
> #ifndef DISK_NAME_LEN
> # include <linux/genhd.h>
> #endif
> 
> BTW I would personally use #ifndef HAVE_LINUX_BLKDEV_H than checking for
> DISK_NAME_LEN as we already check for linux/blkdev.h in configure.ac, but that's
> a minor detail.

I think use "#ifndef DISK_NAME_LEN" is proper.

Because both genhd.h and blkdev.h are exist before the kernel
commit 322cbb50de71 ("block: remove genhd.h"), HAVE_LINUX_BLKDEV_H
seems always define as 1 for the new and old kernel versions.

But the definition DISK_NAME_LEN was moved from genhd.h into blkdev.h
after that commit, because blkdev.h is included first, so we can check
DISK_NAME_LEN, it should include genhd.h ifndef DISK_NAME_LEN.

> Yes we need to #if #else macros for acpi_bus_get_device() vs.
> acpi_fetch_acpi_dev().

Here is a draft change, I will post a formal v2 patch if you are OK.

----->8-----
diff --git a/configure.ac b/configure.ac
index 11e599a81..1f6e2b1b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -100,6 +100,7 @@ AC_SUBST(HAVE_FTS_H, $have_fts)
  AC_CHECK_HEADERS(linux/vm_sockets.h, [], [], [#include <sys/socket.h>])

  AC_CHECK_FUNCS_ONCE([ \
+    acpi_bus_get_device \
      cachestat \
      clone3 \
      close_range \
diff --git a/testcases/kernel/device-drivers/acpi/ltp_acpi_cmds.c 
b/testcases/kernel/device-drivers/acpi/ltp_acpi_cmds.c
index d12dd6b94..f68014732 100644
--- a/testcases/kernel/device-drivers/acpi/ltp_acpi_cmds.c
+++ b/testcases/kernel/device-drivers/acpi/ltp_acpi_cmds.c
@@ -36,7 +36,9 @@
  #include <linux/ioctl.h>
  #include <linux/pm.h>
  #include <linux/acpi.h>
+#ifndef DISK_NAME_LEN
  #include <linux/genhd.h>
+#endif
  #include <linux/dmi.h>
  #include <linux/nls.h>

@@ -123,14 +125,20 @@ static void get_crs_object(acpi_handle handle)

  static void get_sysfs_path(acpi_handle handle)
  {
-       acpi_status status;
         struct acpi_device *device;

         kfree(sysfs_path);
         sysfs_path = NULL;

+#ifdef HAVE_ACPI_BUS_GET_DEVICE
+       acpi_status status;
+
         status = acpi_bus_get_device(handle, &device);
         if (ACPI_SUCCESS(status))
+#else
+       device = acpi_fetch_acpi_dev(handle);
+       if (device)
+#endif
                 sysfs_path = kobject_get_path(&device->dev.kobj, 
GFP_KERNEL);
  }

@@ -398,9 +406,15 @@ static int acpi_test_bus(void)
         if (acpi_failure(status, "acpi_get_handle"))
                 return 1;

+#ifdef HAVE_ACPI_BUS_GET_DEVICE
         prk_alert("TEST -- acpi_bus_get_device");
         status = acpi_bus_get_device(bus_handle, &device);
         if (acpi_failure(status, "acpi_bus_get_device"))
+#else
+       prk_alert("TEST -- acpi_fetch_acpi_dev");
+       device = acpi_fetch_acpi_dev(bus_handle);
+       if (!device)
+#endif
                 return 1;

         prk_alert("TEST -- acpi_bus_update_power ");

Thanks,
Tiezhu



More information about the ltp mailing list