diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 9ae854cc04adbcad9b4d5a6b91bcb9031b6c2c95..5589d6cd701fb8f14671af567235ac59f3985e2a 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1899,6 +1899,10 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, if (ret != XDP_PASS) { rcu_read_unlock(); local_bh_enable(); + if (frags) { + tfile->napi.skb = NULL; + mutex_unlock(&tfile->napi_mutex); + } return total_len; } }