Uninstall skb debug destructor when skb is passed up
authormtaylor <mtaylor@0192ed92-7a03-0410-a25b-9323aeb14dbd>
Mon, 26 Nov 2007 06:38:21 +0000 (06:38 +0000)
committermtaylor <mtaylor@0192ed92-7a03-0410-a25b-9323aeb14dbd>
Mon, 26 Nov 2007 06:38:21 +0000 (06:38 +0000)
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2970 0192ed92-7a03-0410-a25b-9323aeb14dbd

net80211/ieee80211_skb.c

index 09daef444f474997d2e0c396c2acab9ef86c0cec..ff186f6e704ddf5de57baea44723ef9030d8fcf1 100644 (file)
@@ -332,10 +332,10 @@ untrack_skb(struct sk_buff *skb, int users_adjustment,
        atomic_dec(&skb_total_counter);
        atomic_dec(&skb_refs_counter);
        SKB_CB(skb)->tracked = 0;
-       /* Install our debug destructor, chaining to the original... */
-       if (skb->destructor != skb_destructor) {
-               SKB_CB(skb)->next_destructor = skb->destructor;
-               skb->destructor = skb_destructor;
+       /* Uninstall our debug destructor, restoring any original... */
+       if (skb->destructor == skb_destructor) {
+               skb->destructor = SKB_CB(skb)->next_destructor;
+               SKB_CB(skb)->next_destructor = NULL;
        }
        print_skb_trackchange_message(skb, users_adjustment,
                                      func1, line1, func2, line2,