All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Fix type confusion in page_table_check
@ 2023-05-15 13:09 Ruihan Li
  2023-05-15 13:09 ` [PATCH v2 1/4] usb: usbfs: Enforce page requirements for mmap Ruihan Li
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Ruihan Li @ 2023-05-15 13:09 UTC (permalink / raw)
  To: linux-mm, linux-usb
  Cc: linux-kernel, Pasha Tatashin, David Hildenbrand, Matthew Wilcox,
	Andrew Morton, Christoph Hellwig, Alan Stern, Greg Kroah-Hartman,
	Ruihan Li

Recently, syzbot reported [1] ("kernel BUG in page_table_check_clear").
The root cause is that usbdev_mmap calls remap_pfn_range on kmalloc'ed
memory, which leads to type confusion between struct page and slab in
page_table_check. This series of patches fixes the usb side by avoiding
mapping slab pages into userspace, and fixes the mm side by enforcing
that all user-accessible pages are not slab pages. A more detailed
analysis and some discussion of how to fix the problem can also be found
in [1].

 [1] https://lore.kernel.org/lkml/20230507135844.1231056-1-lrh2000@pku.edu.cn/T/

Changes since v1:
  * Fix inconsistent coding styles. (Alan Stern)
  * Relax !DEVMEM requirements to EXCLUSIVE_SYSTEM_RAM, which is
    equivalent to !DEVMEM || STRICT_DEVMEM. (David Hildenbrand)
  * A few random tweaks in commit messages and code comments, none of
    them major.
Link to v1:
  https://lore.kernel.org/lkml/20230510085527.57953-1-lrh2000@pku.edu.cn/T/

Cc: Matthew Wilcox <willy@infradead.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Ruihan Li (4):
  usb: usbfs: Enforce page requirements for mmap
  usb: usbfs: Use consistent mmap functions
  mm: page_table_check: Make it dependent on EXCLUSIVE_SYSTEM_RAM
  mm: page_table_check: Ensure user pages are not slab pages

 Documentation/mm/page_table_check.rst | 18 ++++++++++++
 drivers/usb/core/buffer.c             | 41 +++++++++++++++++++++++++++
 drivers/usb/core/devio.c              | 20 +++++++++----
 include/linux/page-flags.h            |  6 ++++
 include/linux/usb/hcd.h               |  5 ++++
 mm/Kconfig.debug                      |  2 +-
 mm/page_table_check.c                 |  6 ++++
 7 files changed, 91 insertions(+), 7 deletions(-)

-- 
2.40.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-05-17  6:23 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-15 13:09 [PATCH v2 0/4] Fix type confusion in page_table_check Ruihan Li
2023-05-15 13:09 ` [PATCH v2 1/4] usb: usbfs: Enforce page requirements for mmap Ruihan Li
2023-05-15 14:07   ` Alan Stern
2023-05-17  6:22   ` Christoph Hellwig
2023-05-15 13:09 ` [PATCH v2 2/4] usb: usbfs: Use consistent mmap functions Ruihan Li
2023-05-15 16:07   ` David Laight
2023-05-16 11:42     ` Ruihan Li
2023-05-15 13:09 ` [PATCH v2 3/4] mm: page_table_check: Make it dependent on EXCLUSIVE_SYSTEM_RAM Ruihan Li
2023-05-15 16:36   ` Pasha Tatashin
2023-05-16 12:55   ` David Hildenbrand
2023-05-15 13:09 ` [PATCH v2 4/4] mm: page_table_check: Ensure user pages are not slab pages Ruihan Li
2023-05-15 16:28   ` Pasha Tatashin
2023-05-16 11:51     ` Ruihan Li
2023-05-16 12:54       ` David Hildenbrand
2023-05-16 14:14         ` Pasha Tatashin
2023-05-16 14:17         ` Ruihan Li

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.