From c81fa15bafb1295aaa7d7f09500c3fbdd68b0011 Mon Sep 17 00:00:00 2001 From: "Tsaur, Erwin" Date: Thu, 4 Mar 2021 17:18:04 -0800 Subject: [PATCH 012/217] Expose ndctl_bus_nfit_translate_spa as a public function. The motivation is to allow access to ACPI defined NVDIMM Root Device _DSM Function Index 5(Translate SPA). The rest of the _DSM functions, which are mostly ARS related, are already public. Basically move ndctl_bus_nfit_translate_spa declaration from private.h to libndctl.h. Reviewed-by: Dan Williams Signed-off-by: "Tsaur, Erwin" Signed-off-by: Vishal Verma Link: https://lore.kernel.org/r/20210305011804.3573-1-erwin.tsaur@intel.com --- ndctl/lib/libndctl.sym | 4 ++++ ndctl/lib/nfit.c | 2 +- ndctl/lib/private.h | 2 -- ndctl/libndctl.h | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ndctl/lib/libndctl.sym b/ndctl/lib/libndctl.sym index 0a82616..58afb74 100644 --- a/ndctl/lib/libndctl.sym +++ b/ndctl/lib/libndctl.sym @@ -451,3 +451,7 @@ LIBNDCTL_25 { ndctl_bus_clear_fw_activate_nosuspend; ndctl_bus_activate_firmware; } LIBNDCTL_24; + +LIBNDCTL_26 { + ndctl_bus_nfit_translate_spa; +} LIBNDCTL_25; diff --git a/ndctl/lib/nfit.c b/ndctl/lib/nfit.c index 6f68fcf..d85682f 100644 --- a/ndctl/lib/nfit.c +++ b/ndctl/lib/nfit.c @@ -114,7 +114,7 @@ static int is_valid_spa(struct ndctl_bus *bus, unsigned long long spa) * * If success, returns zero, store dimm's @handle, and @dpa. */ -int ndctl_bus_nfit_translate_spa(struct ndctl_bus *bus, +NDCTL_EXPORT int ndctl_bus_nfit_translate_spa(struct ndctl_bus *bus, unsigned long long address, unsigned int *handle, unsigned long long *dpa) { diff --git a/ndctl/lib/private.h b/ndctl/lib/private.h index ede1300..8f4510e 100644 --- a/ndctl/lib/private.h +++ b/ndctl/lib/private.h @@ -370,8 +370,6 @@ static inline int check_kmod(struct kmod_ctx *kmod_ctx) return kmod_ctx ? 0 : -ENXIO; } -int ndctl_bus_nfit_translate_spa(struct ndctl_bus *bus, unsigned long long addr, - unsigned int *handle, unsigned long long *dpa); struct ndctl_cmd *ndctl_bus_cmd_new_err_inj(struct ndctl_bus *bus); struct ndctl_cmd *ndctl_bus_cmd_new_err_inj_clr(struct ndctl_bus *bus); struct ndctl_cmd *ndctl_bus_cmd_new_err_inj_stat(struct ndctl_bus *bus, diff --git a/ndctl/libndctl.h b/ndctl/libndctl.h index 60e1288..87d07b7 100644 --- a/ndctl/libndctl.h +++ b/ndctl/libndctl.h @@ -152,6 +152,8 @@ int ndctl_bus_clear_fw_activate_noidle(struct ndctl_bus *bus); int ndctl_bus_set_fw_activate_nosuspend(struct ndctl_bus *bus); int ndctl_bus_clear_fw_activate_nosuspend(struct ndctl_bus *bus); int ndctl_bus_activate_firmware(struct ndctl_bus *bus, enum ndctl_fwa_method method); +int ndctl_bus_nfit_translate_spa(struct ndctl_bus *bus, unsigned long long addr, + unsigned int *handle, unsigned long long *dpa); struct ndctl_dimm; struct ndctl_dimm *ndctl_dimm_get_first(struct ndctl_bus *bus); -- 2.27.0