[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240315233429.2554-1-hdanton@sina.com>
Date: Sat, 16 Mar 2024 07:34:29 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+28c1a5a5b041a754b947@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [sound?] possible deadlock in snd_pcm_period_elapsed (4)
#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
--- x/sound/core/timer.c
+++ y/sound/core/timer.c
@@ -409,8 +409,9 @@ static void snd_timer_close_locked(struc
struct snd_timer *timer = timeri->timer;
if (timer) {
- guard(spinlock)(&timer->lock);
+ spin_lock_irq(&timer->lock);
timeri->flags |= SNDRV_TIMER_IFLG_DEAD;
+ spin_unlock_irq(&timer->lock);
}
if (!list_empty(&timeri->open_list)) {
--- x/mm/page_alloc.c
+++ y/mm/page_alloc.c
@@ -4816,8 +4816,9 @@ static void *make_alloc_exact(unsigned l
{
if (addr) {
unsigned long nr = DIV_ROUND_UP(size, PAGE_SIZE);
+ unsigned long pgs = (1UL << order);
struct page *page = virt_to_page((void *)addr);
- struct page *last = page + nr;
+ struct page *last = page + max(nr, pgs);
split_page_owner(page, order, 0);
split_page_memcg(page, order, 0);
--
Powered by blists - more mailing lists