OSDN Git Service

powerpc/papr_scm: Implement support for H_SCM_FLUSH hcall
authorShivaprasad G Bhat <sbhat@linux.ibm.com>
Mon, 29 Mar 2021 17:36:43 +0000 (13:36 -0400)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 14 Apr 2021 13:04:07 +0000 (23:04 +1000)
commit75b7c05ebf902632f7f540c3eb0a8945c2d74aab
treed3150b2c37b1363fc329a406c9988c25e5eef728
parentaf072b1a9d4d9edc24da84a071b0671e147026cb
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 <sbhat@linux.ibm.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
[mpe: Use unsigned long / long instead of uint64_t/int64_t]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/161703936121.36.7260632399582101498.stgit@e1fbed493c87
Documentation/powerpc/papr_hcalls.rst
arch/powerpc/include/asm/hvcall.h
arch/powerpc/platforms/pseries/papr_scm.c