Account for SPCI message header in received buffer.
Change-Id: Iaafd7cb7887dbee611152ac1a3ad2a40cd948a60
diff --git a/main.c b/main.c
index 44c782e..6d306fe 100644
--- a/main.c
+++ b/main.c
@@ -279,10 +279,12 @@
* Handles a message delivered to this VM by validating that it's well-formed
* and then queueing it for delivery to the appropriate socket.
*/
-static void hf_handle_message(struct hf_vm *sender, const void *ptr, size_t len)
+static void hf_handle_message(struct hf_vm *sender,
+ const struct spci_message *message)
{
struct hf_sock *hsock;
- const struct hf_msg_hdr *hdr = ptr;
+ const struct hf_msg_hdr *hdr = (struct hf_msg_hdr *)message->payload;
+ size_t len = message->length;
struct sk_buff *skb;
int err;
@@ -409,8 +411,7 @@
case HF_VCPU_RUN_MESSAGE:
if (ret.message.vm_id == HF_PRIMARY_VM_ID) {
hf_handle_message(vcpu->vm,
- page_address(hf_recv_page),
- ret.message.size);
+ page_address(hf_recv_page));
} else {
hf_deliver_message(ret.message.vm_id);
}