Cause:
For intra BSS relay, the SKBs are allocated with
GFP_KERNEL flag. this is done in atomic context, which can be fatal.
Resolution:
Allocate the SKBs with GFP_ATOMIC flag.
Change-Id: I667ad314c7c1f95b7b2bda73a9d2252668b6efa6
SCSC-Bug-Id: SSB-50805
Signed-off-by: Debabrata Purohit <d.purohit@samsung.com>
struct ethhdr *ehdr = (struct ethhdr *)(rx_skb->data);
if (is_multicast_ether_addr(ehdr->h_dest)) {
+#ifdef CONFIG_SCSC_WLAN_RX_NAPI
+ struct sk_buff *rebroadcast_skb = slsi_skb_copy(rx_skb, GFP_ATOMIC);
+#else
struct sk_buff *rebroadcast_skb = slsi_skb_copy(rx_skb, GFP_KERNEL);
-
+#endif
if (!rebroadcast_skb) {
SLSI_WARN(sdev, "Intra BSS: failed to alloc new SKB for broadcast\n");
} else {