--- zzzz-none-000/linux-4.4.60/net/netlink/af_netlink.c 2017-04-08 07:53:53.000000000 +0000 +++ scorpion-7490-727/linux-4.4.60/net/netlink/af_netlink.c 2021-02-04 17:41:59.000000000 +0000 @@ -1187,24 +1187,7 @@ static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) { - int delta; - WARN_ON(skb->sk != NULL); - delta = skb->end - skb->tail; - if (is_vmalloc_addr(skb->head) || delta * 2 < skb->truesize) - return skb; - - if (skb_shared(skb)) { - struct sk_buff *nskb = skb_clone(skb, allocation); - if (!nskb) - return skb; - consume_skb(skb); - skb = nskb; - } - - if (!pskb_expand_head(skb, 0, -delta, allocation)) - skb->truesize -= delta; - return skb; } @@ -2362,7 +2345,8 @@ { int err; - err = rhashtable_walk_init(&nl_table[iter->link].hash, &iter->hti); + err = rhashtable_walk_init(&nl_table[iter->link].hash, + &iter->hti, GFP_KERNEL); if (err) { iter->link = MAX_LINKS; return err;