dax/hmem: Move HMAT and Soft reservation probe initcall level
authorDan Williams <dan.j.williams@intel.com>
Fri, 10 Feb 2023 09:06:51 +0000 (01:06 -0800)
committerDan Williams <dan.j.williams@intel.com>
Sat, 11 Feb 2023 01:33:18 +0000 (17:33 -0800)
In preparation for moving more filtering of "hmem" ranges into the
dax_hmem.ko module, update the initcall levels. HMAT range registration
moves to subsys_initcall() to be done before Soft Reservation probing,
and Soft Reservation probing is moved to device_initcall() to be done
before dax_hmem.ko initialization if it is built-in.

Tested-by: Fan Ni <fan.ni@samsung.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/167602001107.1924368.11562316181038595611.stgit@dwillia2-xfh.jf.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/acpi/numa/hmat.c
drivers/dax/hmem/Makefile
drivers/dax/hmem/device.c

index 605a0c7..ff24282 100644 (file)
@@ -869,4 +869,4 @@ out_put:
        acpi_put_table(tbl);
        return 0;
 }
-device_initcall(hmat_init);
+subsys_initcall(hmat_init);
index 57377b4..d4c4cd6 100644 (file)
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_DEV_DAX_HMEM) += dax_hmem.o
+# device_hmem.o deliberately precedes dax_hmem.o for initcall ordering
 obj-$(CONFIG_DEV_DAX_HMEM_DEVICES) += device_hmem.o
+obj-$(CONFIG_DEV_DAX_HMEM) += dax_hmem.o
 
 device_hmem-y := device.o
 dax_hmem-y := hmem.o
index 903325a..20749c7 100644 (file)
@@ -104,4 +104,4 @@ static __init int hmem_init(void)
  * As this is a fallback for address ranges unclaimed by the ACPI HMAT
  * parsing it must be at an initcall level greater than hmat_init().
  */
-late_initcall(hmem_init);
+device_initcall(hmem_init);