Vasiliy Kulikov wrote: > kmalloc() may fail, if so drop current packet. Thanks for your patch. The indention is right, but it adds just another bug (locking related). > Signed-off-by: Vasiliy Kulikov <segooon@xxxxxxxxx> > --- > Compile tested. > > drivers/staging/batman-adv/routing.c | 6 ++++-- > drivers/staging/batman-adv/unicast.c | 8 ++++++-- > drivers/staging/batman-adv/unicast.h | 2 +- > 3 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/batman-adv/routing.c > b/drivers/staging/batman-adv/routing.c index e12fd99..e545260 100644 > --- a/drivers/staging/batman-adv/routing.c > +++ b/drivers/staging/batman-adv/routing.c > @@ -1232,8 +1232,10 @@ int recv_ucast_frag_packet(struct sk_buff *skb, > struct batman_if *recv_if) > > orig_node->last_frag_packet = jiffies; > > - if (list_empty(&orig_node->frag_list)) > - create_frag_buffer(&orig_node->frag_list); > + if (list_empty(&orig_node->frag_list)) { > + if (create_frag_buffer(&orig_node->frag_list)) > + return NET_RX_DROP; > + } > > tmp_frag_entry = > search_frag_packet(&orig_node->frag_list, You must spin_unlock_irqrestore before you return from that function. Best regards, Sven
Attachment:
signature.asc
Description: This is a digitally signed message part.