diff options
Diffstat (limited to 'net/core/skbuff.c')
| -rw-r--r-- | net/core/skbuff.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index ca4db40e75b..2f6babd5a57 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3168,6 +3168,26 @@ void skb_tstamp_tx(struct sk_buff *orig_skb,  }  EXPORT_SYMBOL_GPL(skb_tstamp_tx); +void skb_complete_wifi_ack(struct sk_buff *skb, bool acked) +{ +	struct sock *sk = skb->sk; +	struct sock_exterr_skb *serr; +	int err; + +	skb->wifi_acked_valid = 1; +	skb->wifi_acked = acked; + +	serr = SKB_EXT_ERR(skb); +	memset(serr, 0, sizeof(*serr)); +	serr->ee.ee_errno = ENOMSG; +	serr->ee.ee_origin = SO_EE_ORIGIN_TXSTATUS; + +	err = sock_queue_err_skb(sk, skb); +	if (err) +		kfree_skb(skb); +} +EXPORT_SYMBOL_GPL(skb_complete_wifi_ack); +  /**   * skb_partial_csum_set - set up and verify partial csum values for packet  |