|
@@ -2361,13 +2361,15 @@ static int packet_release(struct socket *sock)
|
|
|
|
|
|
packet_flush_mclist(sk);
|
|
|
|
|
|
- memset(&req_u, 0, sizeof(req_u));
|
|
|
-
|
|
|
- if (po->rx_ring.pg_vec)
|
|
|
+ if (po->rx_ring.pg_vec) {
|
|
|
+ memset(&req_u, 0, sizeof(req_u));
|
|
|
packet_set_ring(sk, &req_u, 1, 0);
|
|
|
+ }
|
|
|
|
|
|
- if (po->tx_ring.pg_vec)
|
|
|
+ if (po->tx_ring.pg_vec) {
|
|
|
+ memset(&req_u, 0, sizeof(req_u));
|
|
|
packet_set_ring(sk, &req_u, 1, 1);
|
|
|
+ }
|
|
|
|
|
|
fanout_release(sk);
|
|
|
|