ppc/spapr: Add support for implement support for H_SCM_HEALTH
commit53d7d7e2b164f97ae36bca3cb3b3cf1ba2abe4c0
authorVaibhav Jain <vaibhav@linux.ibm.com>
Fri, 2 Apr 2021 10:21:28 +0000 (2 15:51 +0530)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 4 May 2021 01:41:25 +0000 (4 11:41 +1000)
treeb0c9486192feade63f1f1269058fe61ca979fd64
parent4b98e72d973f8612d3f65fd1dbcdd232a62bd6d6
ppc/spapr: Add support for implement support for H_SCM_HEALTH

Add support for H_SCM_HEALTH hcall described at [1] for spapr
nvdimms. This enables guest to detect the 'unarmed' status of a
specific spapr nvdimm identified by its DRC and if its unarmed, mark
the region backed by the nvdimm as read-only.

The patch adds h_scm_health() to handle the H_SCM_HEALTH hcall which
returns two 64-bit bitmaps (health bitmap, health bitmap mask) derived
from 'struct nvdimm->unarmed' member.

Linux kernel side changes to enable handling of 'unarmed' nvdimms for
ppc64 are proposed at [2].

References:
[1] "Hypercall Op-codes (hcalls)"
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/powerpc/papr_hcalls.rst#n220
[2] "powerpc/papr_scm: Mark nvdimm as unarmed if needed during probe"
    https://lore.kernel.org/linux-nvdimm/20210329113103.476760-1-vaibhav@linux.ibm.com/

Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com>
Message-Id: <20210402102128.213943-1-vaibhav@linux.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr_nvdimm.c
include/hw/ppc/spapr.h