Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 229f4df1 authored by Chris Metcalf's avatar Chris Metcalf
Browse files

arch/tile: properly flush the I$ when unloading kernel modules



Otherwise, in principle, there could be stale I$ data present
next time the page that previously held the kernel module code was
used to run some new code.

Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
parent 7194988f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include <linux/kernel.h>
#include <asm/opcode-tile.h>
#include <asm/pgtable.h>
#include <asm/homecache.h>

#ifdef __tilegx__
# define Elf_Rela Elf64_Rela
@@ -86,8 +87,13 @@ error:
void module_free(struct module *mod, void *module_region)
{
	vfree(module_region);

	/* Globally flush the L1 icache. */
	flush_remote(0, HV_FLUSH_EVICT_L1I, cpu_online_mask,
		     0, 0, 0, NULL, NULL, 0);

	/*
	 * FIXME: If module_region == mod->init_region, trim exception
	 * FIXME: If module_region == mod->module_init, trim exception
	 * table entries.
	 */
}