Lines Matching refs:cmsg
246 struct cmsghdr *cmsg; in ip_cmsg_send() local
249 for_each_cmsghdr(cmsg, msg) { in ip_cmsg_send()
250 if (!CMSG_OK(msg, cmsg)) in ip_cmsg_send()
254 cmsg->cmsg_level == SOL_IPV6 && in ip_cmsg_send()
255 cmsg->cmsg_type == IPV6_PKTINFO) { in ip_cmsg_send()
258 if (cmsg->cmsg_len < CMSG_LEN(sizeof(*src_info))) in ip_cmsg_send()
260 src_info = (struct in6_pktinfo *)CMSG_DATA(cmsg); in ip_cmsg_send()
269 if (cmsg->cmsg_level == SOL_SOCKET) { in ip_cmsg_send()
270 err = __sock_cmsg_send(sk, cmsg, &ipc->sockc); in ip_cmsg_send()
276 if (cmsg->cmsg_level != SOL_IP) in ip_cmsg_send()
278 switch (cmsg->cmsg_type) { in ip_cmsg_send()
280 err = cmsg->cmsg_len - sizeof(struct cmsghdr); in ip_cmsg_send()
284 KERNEL_SOCKPTR(CMSG_DATA(cmsg)), in ip_cmsg_send()
292 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct in_pktinfo))) in ip_cmsg_send()
294 info = (struct in_pktinfo *)CMSG_DATA(cmsg); in ip_cmsg_send()
301 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) in ip_cmsg_send()
303 val = *(int *)CMSG_DATA(cmsg); in ip_cmsg_send()
309 if (cmsg->cmsg_len == CMSG_LEN(sizeof(int))) in ip_cmsg_send()
310 val = *(int *)CMSG_DATA(cmsg); in ip_cmsg_send()
311 else if (cmsg->cmsg_len == CMSG_LEN(sizeof(u8))) in ip_cmsg_send()
312 val = *(u8 *)CMSG_DATA(cmsg); in ip_cmsg_send()