|
@@ -108,12 +108,14 @@ void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq,
|
|
unsigned char *prev_tail;
|
|
unsigned char *prev_tail;
|
|
|
|
|
|
prev_tail = skb_tail_pointer(skb);
|
|
prev_tail = skb_tail_pointer(skb);
|
|
- *nlh = NLMSG_NEW(skb, 0, seq, RDMA_NL_GET_TYPE(client, op),
|
|
|
|
- len, NLM_F_MULTI);
|
|
|
|
|
|
+ *nlh = nlmsg_put(skb, 0, seq, RDMA_NL_GET_TYPE(client, op),
|
|
|
|
+ len, NLM_F_MULTI);
|
|
|
|
+ if (!*nlh)
|
|
|
|
+ goto out_nlmsg_trim;
|
|
(*nlh)->nlmsg_len = skb_tail_pointer(skb) - prev_tail;
|
|
(*nlh)->nlmsg_len = skb_tail_pointer(skb) - prev_tail;
|
|
- return NLMSG_DATA(*nlh);
|
|
|
|
|
|
+ return nlmsg_data(*nlh);
|
|
|
|
|
|
-nlmsg_failure:
|
|
|
|
|
|
+out_nlmsg_trim:
|
|
nlmsg_trim(skb, prev_tail);
|
|
nlmsg_trim(skb, prev_tail);
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|