Lines Matching refs:skb
113 void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq, in ibnl_put_msg() argument
118 prev_tail = skb_tail_pointer(skb); in ibnl_put_msg()
119 *nlh = nlmsg_put(skb, 0, seq, RDMA_NL_GET_TYPE(client, op), in ibnl_put_msg()
123 (*nlh)->nlmsg_len = skb_tail_pointer(skb) - prev_tail; in ibnl_put_msg()
127 nlmsg_trim(skb, prev_tail); in ibnl_put_msg()
132 int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh, in ibnl_put_attr() argument
137 prev_tail = skb_tail_pointer(skb); in ibnl_put_attr()
138 if (nla_put(skb, type, len, data)) in ibnl_put_attr()
140 nlh->nlmsg_len += skb_tail_pointer(skb) - prev_tail; in ibnl_put_attr()
144 nlmsg_trim(skb, prev_tail - nlh->nlmsg_len); in ibnl_put_attr()
149 static int ibnl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) in ibnl_rcv_msg() argument
170 .skb = skb, in ibnl_rcv_msg()
176 return cb.dump(skb, &cb); in ibnl_rcv_msg()
184 return netlink_dump_start(nls, skb, nlh, &c); in ibnl_rcv_msg()
193 static void ibnl_rcv_reply_skb(struct sk_buff *skb) in ibnl_rcv_reply_skb() argument
203 while (skb->len >= nlmsg_total_size(0)) { in ibnl_rcv_reply_skb()
204 nlh = nlmsg_hdr(skb); in ibnl_rcv_reply_skb()
206 if (nlh->nlmsg_len < NLMSG_HDRLEN || skb->len < nlh->nlmsg_len) in ibnl_rcv_reply_skb()
213 ibnl_rcv_msg(skb, nlh); in ibnl_rcv_reply_skb()
216 if (msglen > skb->len) in ibnl_rcv_reply_skb()
217 msglen = skb->len; in ibnl_rcv_reply_skb()
218 skb_pull(skb, msglen); in ibnl_rcv_reply_skb()
222 static void ibnl_rcv(struct sk_buff *skb) in ibnl_rcv() argument
225 ibnl_rcv_reply_skb(skb); in ibnl_rcv()
226 netlink_rcv_skb(skb, &ibnl_rcv_msg); in ibnl_rcv()
230 int ibnl_unicast(struct sk_buff *skb, struct nlmsghdr *nlh, in ibnl_unicast() argument
233 return nlmsg_unicast(nls, skb, pid); in ibnl_unicast()
237 int ibnl_multicast(struct sk_buff *skb, struct nlmsghdr *nlh, in ibnl_multicast() argument
240 return nlmsg_multicast(nls, skb, 0, group, flags); in ibnl_multicast()