| From 3d195d831587ca685940e2ff81071e56dc567284 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 17 May 2021 15:15:43 +0200 |
| Subject: ALSA: usx2y: Don't call free_pages_exact() with NULL address |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| [ Upstream commit cae0cf651adccee2c3f376e78f30fbd788d0829f ] |
| |
| Unlike some other functions, we can't pass NULL pointer to |
| free_pages_exact(). Add a proper NULL check for avoiding possible |
| Oops. |
| |
| Link: https://lore.kernel.org/r/20210517131545.27252-10-tiwai@suse.de |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/usb/usx2y/usb_stream.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| diff --git a/sound/usb/usx2y/usb_stream.c b/sound/usb/usx2y/usb_stream.c |
| index 091c071b270a..cff684942c4f 100644 |
| --- a/sound/usb/usx2y/usb_stream.c |
| +++ b/sound/usb/usx2y/usb_stream.c |
| @@ -142,8 +142,11 @@ void usb_stream_free(struct usb_stream_kernel *sk) |
| if (!s) |
| return; |
| |
| - free_pages_exact(sk->write_page, s->write_size); |
| - sk->write_page = NULL; |
| + if (sk->write_page) { |
| + free_pages_exact(sk->write_page, s->write_size); |
| + sk->write_page = NULL; |
| + } |
| + |
| free_pages_exact(s, s->read_size); |
| sk->s = NULL; |
| } |
| -- |
| 2.30.2 |
| |