fix(linux): unmap rx/tx buffers from PVM
linux tests sometimes show instabilities at module unload:
[ 7.403546] Preparing to unload Hafnium
[ 7.422392] NET: Unregistered protocol family 19
WARNING: Stage-2 page fault: pc=0xffffdfc6d6ea4e30, vmid=0x1, vcpu=1,
vaddr=0xffff363cc121d040, ipaddr=0x4121d040, mode=0x2 0x3078305b00000061
NOTICE: Injecting Data Abort exception into VM 0x1.
[ 7.444236] Unable to handle kernel write to read-only memory at virtual
address ffff363cc121d040
[...]
[ 7.485983] Call trace:
[ 7.486921] allocate_slab+0x1d4/0x4b8
[ 7.487685] ___slab_alloc+0x1b0/0x34c
[ 7.488389] __kmalloc+0x298/0x30c
[ 7.489052] kzalloc+0x14/0x20
[ 7.489834] kobject_get_path+0x54/0xc0
[ 7.491293] kobject_uevent_env+0x108/0x428
[ 7.492150] kobject_uevent+0x14/0x20
[ 7.492851] device_release_driver_internal+0x20c/0x254
[ 7.493757] driver_detach+0x80/0xc0
[ 7.494534] bus_remove_driver+0x78/0xac
[ 7.495278] driver_unregister+0x30/0x54
[ 7.496000] platform_driver_unregister+0x14/0x20
Suspecting a stale access to RX/TX buffers after the pages are freed
from linux. Unmap the RX/TX buffers from hypervisor when module is
unloaded.
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I5c3ed88c7864fbc6ce40cc1e6a4f564ff25e7248
1 file changed