# HG changeset patch # User Paul Boddie # Date 1655494230 -7200 # Node ID da7cfb64d1897cf66566e0a2a24fd254fd3766e7 # Parent 65230d933d16b59b210834dd91823819531ddd1d Introduced support for omitting optional flexpage results from messages. This is useful for the system-level page fault handler which may not explicitly return a flexpage to resolve a page fault because it may have arranged a mapping through interactions with other components. diff -r 65230d933d16 -r da7cfb64d189 libipc/lib/src/message.c --- a/libipc/lib/src/message.c Mon Jun 13 17:32:24 2022 +0200 +++ b/libipc/lib/src/message.c Fri Jun 17 21:30:30 2022 +0200 @@ -254,7 +254,11 @@ void ipc_message_add_fpage(ipc_message_t *msg, l4_snd_fpage_t fpage) { - ipc_message_export_fpage(msg, msg->items++, fpage); + /* Test for {0, l4_fpage_invalid()} as the flexpage to avoid setting an + optional flexpage result, useful for the page fault handler. */ + + if (fpage.snd_base || fpage.fpage.raw) + ipc_message_export_fpage(msg, msg->items++, fpage); } /* Add a receive window flexpage item to the message. */