Lines Matching refs:nlh
136 void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq, in ibnl_put_msg() argument
139 *nlh = nlmsg_put(skb, 0, seq, RDMA_NL_GET_TYPE(client, op), len, flags); in ibnl_put_msg()
140 if (!*nlh) in ibnl_put_msg()
142 return nlmsg_data(*nlh); in ibnl_put_msg()
146 int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh, in ibnl_put_attr() argument
150 nlmsg_cancel(skb, nlh); in ibnl_put_attr()
157 static int rdma_nl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, in rdma_nl_rcv_msg() argument
160 int type = nlh->nlmsg_type; in rdma_nl_rcv_msg()
180 return cb_table[op].doit(skb, nlh, extack); in rdma_nl_rcv_msg()
184 if ((nlh->nlmsg_flags & NLM_F_DUMP) || index == RDMA_NL_RDMA_CM || in rdma_nl_rcv_msg()
190 return netlink_dump_start(nls, skb, nlh, &c); in rdma_nl_rcv_msg()
195 return cb_table[op].doit(skb, nlh, extack); in rdma_nl_rcv_msg()
211 struct nlmsghdr *nlh; in rdma_nl_rcv_skb() local
217 nlh = nlmsg_hdr(skb); in rdma_nl_rcv_skb()
220 if (nlh->nlmsg_len < NLMSG_HDRLEN || skb->len < nlh->nlmsg_len) in rdma_nl_rcv_skb()
230 if (!(nlh->nlmsg_flags & NLM_F_REQUEST) && in rdma_nl_rcv_skb()
231 (RDMA_NL_GET_CLIENT(nlh->nlmsg_type) != RDMA_NL_LS)) in rdma_nl_rcv_skb()
235 if (nlh->nlmsg_type < NLMSG_MIN_TYPE) in rdma_nl_rcv_skb()
238 err = cb(skb, nlh, &extack); in rdma_nl_rcv_skb()
243 if (nlh->nlmsg_flags & NLM_F_ACK || err) in rdma_nl_rcv_skb()
244 netlink_ack(skb, nlh, err, &extack); in rdma_nl_rcv_skb()
247 msglen = NLMSG_ALIGN(nlh->nlmsg_len); in rdma_nl_rcv_skb()