Re: [syzbot] Discardable change

From: syzbot
Date: Fri Nov 10 2023 - 13:48:56 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx, syzkaller-bugs@xxxxxxxxxxxxxxxx.

***

Subject: Discardable change
Author: yuran.pereira@xxxxxxxxxxx

#syz test: https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git master

---
drivers/usb/core/devio.c | 2 ++
mm/page_table_check.c | 2 ++
2 files changed, 4 insertions(+)

diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index 3beb6a862e80..22ae7babf46b 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -276,12 +276,14 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma)
if (remap_pfn_range(vma, vma->vm_start,
virt_to_phys(usbm->mem) >> PAGE_SHIFT,
size, vma->vm_page_prot) < 0) {
+ pr_info("==> if* vma_use_count %d\n", usbm->vma_use_count);
dec_usb_memory_use_count(usbm, &usbm->vma_use_count);
return -EAGAIN;
}
} else {
if (dma_mmap_coherent(hcd->self.sysdev, vma, mem, dma_handle,
size)) {
+ pr_info("==> else* vma_use_count %d\n", usbm->vma_use_count);
dec_usb_memory_use_count(usbm, &usbm->vma_use_count);
return -EAGAIN;
}
diff --git a/mm/page_table_check.c b/mm/page_table_check.c
index af69c3c8f7c2..ef0fb410cf10 100644
--- a/mm/page_table_check.c
+++ b/mm/page_table_check.c
@@ -142,6 +142,8 @@ void __page_table_check_zero(struct page *page, unsigned int order)
for (i = 0; i < (1ul << order); i++) {
struct page_table_check *ptc = get_page_table_check(page_ext);

+ pr_info("===> anon check_zero %d\n", atomic_read(&ptc->anon_map_count));
+ pr_info("===> fmap check_zero %d\n", atomic_read(&ptc->file_map_count));
BUG_ON(atomic_read(&ptc->anon_map_count));
BUG_ON(atomic_read(&ptc->file_map_count));
page_ext = page_ext_next(page_ext);
--
2.25.1