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
tree: 2c2469503d6487399f4a11da976f47ea76e38e69
  1. inc/
  2. .gitignore
  3. AUTHORS
  4. BUILD.gn
  5. LICENSE
  6. main.c
  7. Makefile