You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the "me" rule is used in ipfw, the ipfw kernel module calls INADDR_TO_IFP which is a macro for ip_dev_find which wraps __ip_dev_find with the "devref" argument set to active. This means that the __ip_dev_find call increments the device reference for the provided net device.
The caller of INADDR_TO_IFP does not call dev_put to release the reference. This means that the net device cannot be released and generates a "waiting for tun0 to become free. Usage count = 3" error.
For kernels greater then 2.6.39, the __ip_dev_find call was added, the attached patch uses this call instead with the "devref" set to false, all the calls for INADDR_TO_IFP just check for non-null return so don't need a device reference.
When the "me" rule is used in ipfw, the ipfw kernel module calls INADDR_TO_IFP which is a macro for ip_dev_find which wraps __ip_dev_find with the "devref" argument set to active. This means that the __ip_dev_find call increments the device reference for the provided net device.
The caller of INADDR_TO_IFP does not call dev_put to release the reference. This means that the net device cannot be released and generates a "waiting for tun0 to become free. Usage count = 3" error.
For kernels greater then 2.6.39, the __ip_dev_find call was added, the attached patch uses this call instead with the "devref" set to false, all the calls for INADDR_TO_IFP just check for non-null return so don't need a device reference.
fix-dev_hold-leak.txt
The text was updated successfully, but these errors were encountered: