git: 25a5bb731805 - main - net: bandaid for plugging a fw_com leak in fwip_detach()

From: Tai-hwa Liang <avatar_at_FreeBSD.org>
Date: Thu, 15 Feb 2024 01:03:57 UTC
The branch main has been updated by avatar:

URL: https://cgit.FreeBSD.org/src/commit/?id=25a5bb7318052322190a2880e0e7ef18e06d54bd

commit 25a5bb7318052322190a2880e0e7ef18e06d54bd
Author:     Tai-hwa Liang <avatar@FreeBSD.org>
AuthorDate: 2024-02-15 01:00:49 +0000
Commit:     Tai-hwa Liang <avatar@FreeBSD.org>
CommitDate: 2024-02-15 01:00:49 +0000

    net: bandaid for plugging a fw_com leak in fwip_detach()
    
    Adding a temporary workaround for plugging a fw_com upon if_fwip unloading.
    
    Steps to reproduce(needs two hosts connected with firewire):
    
      while true; do
        ifconfig fwip0 10.0.0.5 up
        fwcontrol -r
        ping -c 10.0.0.3
        kldunload if_fwip
      done
    
    There's a chance that the unloading of if_fwip.ko triggers following warning:
    
            Warning: memory type fw_com leaked memory on destroy (1 allocations, 64 bytes leaked).
    
    commit d79b6b8ec267e7eef6e07cf4245159705e24acd5 (origin/main, origin/HEAD)
---
 sys/net/if_fwsubr.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/net/if_fwsubr.c b/sys/net/if_fwsubr.c
index 2349ac35fc16..bf3362fc975c 100644
--- a/sys/net/if_fwsubr.c
+++ b/sys/net/if_fwsubr.c
@@ -802,6 +802,7 @@ firewire_ifdetach(struct ifnet *ifp)
 {
 	bpfdetach(ifp);
 	if_detach(ifp);
+	NET_EPOCH_DRAIN_CALLBACKS();
 }
 
 void