On Wed, Apr 09, 2025 at 04:56:29PM +0200, Andrey Ryabinin wrote: Hi Andrey,
... > >>> - page = __get_free_page(GFP_KERNEL); > >>> + page = __get_free_page(GFP_ATOMIC); > >>> if (!page) > >> I think a better way to fix this would be moving out allocation from > >> atomic context. Allocate page prior > >> to apply_to_page_range() call and pass it down to > >> kasan_populate_vmalloc_pte(). > > I think the page address could be passed as the parameter to > > kasan_populate_vmalloc_pte(). > > We'll need to pass it as 'struct page **page' or maybe as pointer to some > struct, e.g.: > struct page_data { > struct page *page; > }; ... Thanks for the hint! I will try to implement that, but will likely start in two weeks, after I am back from vacation. Not sure wether this version needs to be dropped. Thanks!