1.1 --- a/libmem/lib/src/ipc.cc Sun Mar 03 00:12:41 2024 +0100
1.2 +++ b/libmem/lib/src/ipc.cc Sun Mar 03 00:16:05 2024 +0100
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * Interprocess communication utilities.
1.6 *
1.7 - * Copyright (C) 2021, 2022 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2021, 2022, 2024 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or
1.11 * modify it under the terms of the GNU General Public License as
1.12 @@ -21,6 +21,7 @@
1.13
1.14 #include <l4/re/c/dataspace.h>
1.15 #include <l4/re/consts.h>
1.16 +#include <l4/sys/cache.h>
1.17 #include <l4/sys/task.h>
1.18
1.19 #include <mem/send_flexpage.h>
1.20 @@ -55,6 +56,12 @@
1.21 if (!send_flexpage.order)
1.22 return -L4_ERANGE;
1.23
1.24 + /* Make sure that the instruction cache is updated if the content is going
1.25 + to be executed. */
1.26 +
1.27 + l4_cache_coherent(send_flexpage.base_addr,
1.28 + send_flexpage.base_addr + (1UL << send_flexpage.order));
1.29 +
1.30 region->fpage = ipc_get_fpage(&send_flexpage);
1.31 region->snd_base = hot_spot;
1.32