diff options
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c index 2877647f347b..e62b4f055071 100644 --- a/net/socket.c +++ b/net/socket.c | |||
| @@ -538,6 +538,8 @@ int sock_tx_timestamp(struct sock *sk, __u8 *tx_flags) | |||
| 538 | *tx_flags |= SKBTX_HW_TSTAMP; | 538 | *tx_flags |= SKBTX_HW_TSTAMP; |
| 539 | if (sock_flag(sk, SOCK_TIMESTAMPING_TX_SOFTWARE)) | 539 | if (sock_flag(sk, SOCK_TIMESTAMPING_TX_SOFTWARE)) |
| 540 | *tx_flags |= SKBTX_SW_TSTAMP; | 540 | *tx_flags |= SKBTX_SW_TSTAMP; |
| 541 | if (sock_flag(sk, SOCK_WIFI_STATUS)) | ||
| 542 | *tx_flags |= SKBTX_WIFI_STATUS; | ||
| 541 | return 0; | 543 | return 0; |
| 542 | } | 544 | } |
| 543 | EXPORT_SYMBOL(sock_tx_timestamp); | 545 | EXPORT_SYMBOL(sock_tx_timestamp); |
| @@ -549,6 +551,8 @@ static inline int __sock_sendmsg_nosec(struct kiocb *iocb, struct socket *sock, | |||
| 549 | 551 | ||
| 550 | sock_update_classid(sock->sk); | 552 | sock_update_classid(sock->sk); |
| 551 | 553 | ||
| 554 | sock_update_netprioidx(sock->sk); | ||
| 555 | |||
| 552 | si->sock = sock; | 556 | si->sock = sock; |
| 553 | si->scm = NULL; | 557 | si->scm = NULL; |
| 554 | si->msg = msg; | 558 | si->msg = msg; |
| @@ -674,6 +678,22 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk, | |||
| 674 | } | 678 | } |
| 675 | EXPORT_SYMBOL_GPL(__sock_recv_timestamp); | 679 | EXPORT_SYMBOL_GPL(__sock_recv_timestamp); |
| 676 | 680 | ||
| 681 | void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk, | ||
| 682 | struct sk_buff *skb) | ||
| 683 | { | ||
| 684 | int ack; | ||
| 685 | |||
| 686 | if (!sock_flag(sk, SOCK_WIFI_STATUS)) | ||
| 687 | return; | ||
| 688 | if (!skb->wifi_acked_valid) | ||
| 689 | return; | ||
| 690 | |||
| 691 | ack = skb->wifi_acked; | ||
| 692 | |||
| 693 | put_cmsg(msg, SOL_SOCKET, SCM_WIFI_STATUS, sizeof(ack), &ack); | ||
| 694 | } | ||
| 695 | EXPORT_SYMBOL_GPL(__sock_recv_wifi_status); | ||
| 696 | |||
| 677 | static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk, | 697 | static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk, |
| 678 | struct sk_buff *skb) | 698 | struct sk_buff *skb) |
| 679 | { | 699 | { |
