[Skiboot] [PATCH v2 15/16] npu2-opencapi: Handle OPAL_UNMAP_PE operation on set_pe() callback
Frederic Barrat
fbarrat at linux.ibm.com
Thu Oct 10 06:38:10 AEDT 2019
In a hot-unplug scenario, the OS will try to unmap the PE. Skiboot
doesn't do anything with the linux PE for opencapi other than being a
mailbox, but at least let's be consistent.
Signed-off-by: Frederic Barrat <fbarrat at linux.ibm.com>
---
Changelog:
v2:
- catch invalid operands in set_pe (Christophe)
hw/npu2-opencapi.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/npu2-opencapi.c b/hw/npu2-opencapi.c
index f5c821d9..5658ec6b 100644
--- a/hw/npu2-opencapi.c
+++ b/hw/npu2-opencapi.c
@@ -1489,7 +1489,7 @@ static int64_t npu2_opencapi_set_pe(struct phb *phb,
uint8_t __unused bcompare,
uint8_t __unused dcompare,
uint8_t __unused fcompare,
- uint8_t __unused action)
+ uint8_t action)
{
struct npu2_dev *dev = phb_to_npu2_dev_ocapi(phb);
/*
@@ -1501,6 +1501,11 @@ static int64_t npu2_opencapi_set_pe(struct phb *phb,
* functions on the device, the OS can define many PEs, we
* only keep one, the OS will handle it.
*/
+ if (action != OPAL_MAP_PE && action != OPAL_UNMAP_PE)
+ return OPAL_PARAMETER;
+
+ if (action == OPAL_UNMAP_PE)
+ pe_num = -1;
dev->linux_pe = pe_num;
return OPAL_SUCCESS;
}
--
2.21.0
More information about the Skiboot
mailing list