Thread (89 messages) 89 messages, 6 authors, 2012-12-03

Re: [PATCH v2 3/3] pppoatm: protect against freeing of vcc

From: Krzysztof Mazur <hidden>
Date: 2012-11-29 16:28:23
Also in: lkml

On Thu, Nov 29, 2012 at 03:47:57PM +0000, David Woodhouse wrote:
On Thu, 2012-11-29 at 16:09 +0100, Krzysztof Mazur wrote:
quoted
I don't like two thinks about this patch:

        - if allos_skb(sizeof(*header), GFP_ATOMIC) at beginning of
          pclose() fails we will crash

        - if card wakes up after this timeout we will probably crash too

That's why proposed different approach, but it has other problems.
How about this variant on what you suggested. Yes, we can definitely
remove everything that's in the queue... as long as we use
skb_queue_walk_safe() instead of skb_queue_walk().

We can use GFP_KERNEL instead of GFP_ATOMIC, which at least reduces the
likelihood of failing to close the vcc.

We end up waiting *only* if there is a packet which is *currently* being
DMA'd to the card. And if the card doesn't take that within 5 seconds,
it almost certainly never will. So I can live with that.
Yeah, that shouldn't happen.
+				if (!test_bit(ATM_VF_READY, &vcc->flags))
+					wake_up(&card->param_wq);
+			} else
according to CodingStyle:

+ } else {
 				dev_kfree_skb_irq(oldskb);
-			}
+ }

Krzysiek
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help