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(a)gmail.com>
---
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