void cleanup_module(void)
{
undefined4 *puVar1;
undefined4 *puVar2;
undefined4 *puVar3;
local_bh_disable();
puVar3 = &sw_turbo_hash;
puVar2 = sw_turbo_hash;
while( true ) {
while (puVar2 != (undefined4 *)0x0) {
puVar1 = (undefined4 *)*puVar2;
*(undefined4 *)(puVar2[3] + 0x88) = 0;
kmem_cache_free(sw_turbo_net_cache,puVar2);
puVar2 = puVar1;
}
puVar3 = puVar3 + 1;
if (puVar3 == &need_sync) break;
puVar2 = (undefined4 *)*puVar3;
}
local_bh_enable();
unregister_hw_tcpip(sw_tcpip);
kmem_cache_destroy(sw_turbo_net_cache);
proc_cleanup_forskip();
proc_cleanup_foraqos();
proc_cleanup_formqos();
proc_cleanup_system() //possible issue identified - semgrep
remove_proc_entry("fastnat",0);
printk("Unregister REDSonic turbo net\n");
return;
}