===== include/linux/netlink.h 1.19 vs edited ===== --- 1.19/include/linux/netlink.h Sat Aug 28 02:13:43 2004 +++ edited/include/linux/netlink.h Fri Sep 24 02:02:05 2004 @@ -119,7 +119,7 @@ extern void netlink_detach(int unit); extern int netlink_post(int unit, struct sk_buff *skb); extern struct sock *netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len)); -extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); +extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err, int gfp_mask); extern int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 pid, int nonblock); extern int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 pid, __u32 group, int allocation); ===== net/netlink/af_netlink.c 1.56 vs edited ===== --- 1.56/net/netlink/af_netlink.c Fri Sep 24 02:01:00 2004 +++ edited/net/netlink/af_netlink.c Fri Sep 24 02:02:06 2004 @@ -957,7 +957,8 @@ return 0; } -void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err) +void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err, + int gfp_mask) { struct sk_buff *skb; struct nlmsghdr *rep; @@ -969,7 +970,7 @@ else size = NLMSG_SPACE(4 + NLMSG_ALIGN(nlh->nlmsg_len)); - skb = alloc_skb(size, GFP_KERNEL); + skb = alloc_skb(size, gfp_mask); if (!skb) { struct sock *sk;