diff options
author | Shivaprasad G Bhat <[email protected]> | 2021-03-29 13:36:43 -0400 |
---|---|---|
committer | Michael Ellerman <[email protected]> | 2021-04-14 23:04:07 +1000 |
commit | 75b7c05ebf902632f7f540c3eb0a8945c2d74aab (patch) | |
tree | d3150b2c37b1363fc329a406c9988c25e5eef728 /arch/powerpc/include/asm/hvcall.h | |
parent | af072b1a9d4d9edc24da84a071b0671e147026cb (diff) |
powerpc/papr_scm: Implement support for H_SCM_FLUSH hcall
Add support for ND_REGION_ASYNC capability if the device tree
indicates 'ibm,hcall-flush-required' property in the NVDIMM node.
Flush is done by issuing H_SCM_FLUSH hcall to the hypervisor.
If the flush request failed, the hypervisor is expected to
to reflect the problem in the subsequent nvdimm H_SCM_HEALTH call.
This patch prevents mmap of namespaces with MAP_SYNC flag if the
nvdimm requires an explicit flush[1].
References:
[1] https://github.com/avocado-framework-tests/avocado-misc-tests/blob/master/memory/ndctl.py.data/map_sync.c
Signed-off-by: Shivaprasad G Bhat <[email protected]>
Reviewed-by: Aneesh Kumar K.V <[email protected]>
[mpe: Use unsigned long / long instead of uint64_t/int64_t]
Signed-off-by: Michael Ellerman <[email protected]>
Link: https://lore.kernel.org/r/161703936121.36.7260632399582101498.stgit@e1fbed493c87
Diffstat (limited to 'arch/powerpc/include/asm/hvcall.h')
-rw-r--r-- | arch/powerpc/include/asm/hvcall.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/hvcall.h b/arch/powerpc/include/asm/hvcall.h index 455e188da26d..443050906018 100644 --- a/arch/powerpc/include/asm/hvcall.h +++ b/arch/powerpc/include/asm/hvcall.h @@ -315,7 +315,8 @@ #define H_SCM_HEALTH 0x400 #define H_SCM_PERFORMANCE_STATS 0x418 #define H_RPT_INVALIDATE 0x448 -#define MAX_HCALL_OPCODE H_RPT_INVALIDATE +#define H_SCM_FLUSH 0x44C +#define MAX_HCALL_OPCODE H_SCM_FLUSH /* Scope args for H_SCM_UNBIND_ALL */ #define H_UNBIND_SCOPE_ALL (0x1) |