Fix register usage of SPCI_ERROR.
Bug: 141469322
Change-Id: I99557a990db05a72d6eec052abcd8e1508196460
diff --git a/driver/linux b/driver/linux
index cafe017..b040b30 160000
--- a/driver/linux
+++ b/driver/linux
@@ -1 +1 @@
-Subproject commit cafe017d8863e5326c3f1c660ce71d5a82da7b19
+Subproject commit b040b30d6fd98ae62be4cff7950551f0ac98ff53
diff --git a/inc/hf/spci_internal.h b/inc/hf/spci_internal.h
index e046233..c7c0d2e 100644
--- a/inc/hf/spci_internal.h
+++ b/inc/hf/spci_internal.h
@@ -65,7 +65,7 @@
static inline struct spci_value spci_error(uint64_t error_code)
{
- return (struct spci_value){.func = SPCI_ERROR_32, .arg1 = error_code};
+ return (struct spci_value){.func = SPCI_ERROR_32, .arg2 = error_code};
}
struct spci_value spci_msg_handle_architected_message(
diff --git a/test/vmapi/arch/aarch64/gicv3/services/common.c b/test/vmapi/arch/aarch64/gicv3/services/common.c
index 1a10fbd..8bcbfd9 100644
--- a/test/vmapi/arch/aarch64/gicv3/services/common.c
+++ b/test/vmapi/arch/aarch64/gicv3/services/common.c
@@ -31,7 +31,7 @@
do {
received = spci_msg_wait();
} while (received.func == SPCI_ERROR_32 &&
- received.arg1 == SPCI_INTERRUPTED);
+ received.arg2 == SPCI_INTERRUPTED);
return received;
}
diff --git a/test/vmapi/arch/aarch64/gicv3/services/timer.c b/test/vmapi/arch/aarch64/gicv3/services/timer.c
index fc52ab1..063422a 100644
--- a/test/vmapi/arch/aarch64/gicv3/services/timer.c
+++ b/test/vmapi/arch/aarch64/gicv3/services/timer.c
@@ -110,7 +110,7 @@
struct spci_value res = spci_msg_wait();
EXPECT_EQ(res.func, SPCI_ERROR_32);
- EXPECT_EQ(res.arg1, SPCI_INTERRUPTED);
+ EXPECT_EQ(res.arg2, SPCI_INTERRUPTED);
} else {
/* Busy wait until the timer fires. */
while (!timer_fired) {
diff --git a/test/vmapi/primary_with_secondaries/inc/util.h b/test/vmapi/primary_with_secondaries/inc/util.h
index 845a4b4..3ecebf6 100644
--- a/test/vmapi/primary_with_secondaries/inc/util.h
+++ b/test/vmapi/primary_with_secondaries/inc/util.h
@@ -21,7 +21,7 @@
#define EXPECT_SPCI_ERROR(value, spci_error) \
do { \
EXPECT_EQ(value.func, SPCI_ERROR_32); \
- EXPECT_EQ(value.arg1, spci_error); \
+ EXPECT_EQ(value.arg2, spci_error); \
} while (0)
struct mailbox_buffers {
diff --git a/test/vmapi/primary_with_secondaries/mailbox.c b/test/vmapi/primary_with_secondaries/mailbox.c
index d83beaf..7dd47fe 100644
--- a/test/vmapi/primary_with_secondaries/mailbox.c
+++ b/test/vmapi/primary_with_secondaries/mailbox.c
@@ -329,10 +329,9 @@
spci_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM0, sizeof(message), 0)
.func,
SPCI_SUCCESS_32);
- EXPECT_EQ(spci_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM0, sizeof(message),
- SPCI_MSG_SEND_NOTIFY)
- .arg1,
- SPCI_BUSY);
+ EXPECT_SPCI_ERROR(spci_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM0,
+ sizeof(message), SPCI_MSG_SEND_NOTIFY),
+ SPCI_BUSY);
/* Receive a reply for the first message. */
run_res = hf_vcpu_run(SERVICE_VM0, 0);
diff --git a/test/vmapi/primary_with_secondaries/services/interruptible.c b/test/vmapi/primary_with_secondaries/services/interruptible.c
index 04ea783..3b86122 100644
--- a/test/vmapi/primary_with_secondaries/services/interruptible.c
+++ b/test/vmapi/primary_with_secondaries/services/interruptible.c
@@ -55,7 +55,7 @@
do {
received = spci_msg_wait();
} while (received.func == SPCI_ERROR_32 &&
- received.arg1 == SPCI_INTERRUPTED);
+ received.arg2 == SPCI_INTERRUPTED);
return received;
}
diff --git a/test/vmapi/primary_with_secondaries/services/interruptible_echo.c b/test/vmapi/primary_with_secondaries/services/interruptible_echo.c
index 814cce1..e370aea 100644
--- a/test/vmapi/primary_with_secondaries/services/interruptible_echo.c
+++ b/test/vmapi/primary_with_secondaries/services/interruptible_echo.c
@@ -44,7 +44,7 @@
/* Retry if interrupted but made visible with the yield. */
while (res.func == SPCI_ERROR_32 &&
- res.arg1 == SPCI_INTERRUPTED) {
+ res.arg2 == SPCI_INTERRUPTED) {
spci_yield();
res = spci_msg_wait();
}