diff --git a/net/ieee802154/socket.c b/net/ieee802154/socket.c
index a45a0401adc5..3e59ae57cb5a 100644
--- a/net/ieee802154/socket.c
+++ b/net/ieee802154/socket.c
@@ -191,6 +191,7 @@ static void raw_unhash(struct sock *sk)
 
 static void raw_close(struct sock *sk, long timeout)
 {
+	skb_queue_purge(&sk->sk_receive_queue);
 	sk_common_release(sk);
 }
 
@@ -479,6 +480,7 @@ static int dgram_init(struct sock *sk)
 
 static void dgram_close(struct sock *sk, long timeout)
 {
+	skb_queue_purge(&sk->sk_receive_queue);
 	sk_common_release(sk);
 }