[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