tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable head: 6e165f54437931f329d09dca6c19d99af08a36e1 commit: 98a9217fdcb8c8a64670a57180fdfc2f468e4ff0 [170/172] mempolicy.h: remove unnecessary header file inclusions config: arm-randconfig-002-20241207 (https://download.01.org/0day-ci/archive/20241207/202412072000.csqsrSsg-lkp@xxxxxxxxx/config) compiler: arm-linux-gnueabi-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241207/202412072000.csqsrSsg-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202412072000.csqsrSsg-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> fs/aio.c:478:27: error: 'noop_dirty_folio' undeclared here (not in a function) 478 | .dirty_folio = noop_dirty_folio, | ^~~~~~~~~~~~~~~~ fs/aio.c: In function 'aio_setup_ring': >> fs/aio.c:524:25: error: implicit declaration of function '__filemap_get_folio'; did you mean 'filemap_dirty_folio'? [-Wimplicit-function-declaration] 524 | folio = __filemap_get_folio(file->f_mapping, i, | ^~~~~~~~~~~~~~~~~~~ | filemap_dirty_folio >> fs/aio.c:525:45: error: 'FGP_LOCK' undeclared (first use in this function); did you mean 'BPF_F_LOCK'? 525 | FGP_LOCK | FGP_ACCESSED | FGP_CREAT, | ^~~~~~~~ | BPF_F_LOCK fs/aio.c:525:45: note: each undeclared identifier is reported only once for each function it appears in >> fs/aio.c:525:56: error: 'FGP_ACCESSED' undeclared (first use in this function) 525 | FGP_LOCK | FGP_ACCESSED | FGP_CREAT, | ^~~~~~~~~~~~ >> fs/aio.c:525:71: error: 'FGP_CREAT' undeclared (first use in this function); did you mean 'IPC_CREAT'? 525 | FGP_LOCK | FGP_ACCESSED | FGP_CREAT, | ^~~~~~~~~ | IPC_CREAT >> fs/aio.c:532:17: error: implicit declaration of function 'folio_end_read'; did you mean 'folio_test_head'? [-Wimplicit-function-declaration] 532 | folio_end_read(folio, true); | ^~~~~~~~~~~~~~ | folio_test_head vim +/noop_dirty_folio +478 fs/aio.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 476 36bc08cc01709b Gu Zheng 2013-07-16 477 static const struct address_space_operations aio_ctx_aops = { 46de8b979492e1 Matthew Wilcox (Oracle 2022-02-09 @478) .dirty_folio = noop_dirty_folio, 3648951ceb0ad2 Matthew Wilcox (Oracle 2022-06-06 479) .migrate_folio = aio_migrate_folio, 36bc08cc01709b Gu Zheng 2013-07-16 480 }; 36bc08cc01709b Gu Zheng 2013-07-16 481 2a8a98673c13cb Mauricio Faria de Oliveira 2017-07-05 482 static int aio_setup_ring(struct kioctx *ctx, unsigned int nr_events) ^1da177e4c3f41 Linus Torvalds 2005-04-16 483 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 484 struct aio_ring *ring; 41003a7bcfed12 Zach Brown 2013-05-07 485 struct mm_struct *mm = current->mm; 3dc9acb6760039 Linus Torvalds 2013-12-20 486 unsigned long size, unused; ^1da177e4c3f41 Linus Torvalds 2005-04-16 487 int nr_pages; 36bc08cc01709b Gu Zheng 2013-07-16 488 int i; 36bc08cc01709b Gu Zheng 2013-07-16 489 struct file *file; ^1da177e4c3f41 Linus Torvalds 2005-04-16 490 ^1da177e4c3f41 Linus Torvalds 2005-04-16 491 /* Compensate for the ring buffer's head/tail overlap entry */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 492 nr_events += 2; /* 1 is required, 2 for good luck */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 493 ^1da177e4c3f41 Linus Torvalds 2005-04-16 494 size = sizeof(struct aio_ring); ^1da177e4c3f41 Linus Torvalds 2005-04-16 495 size += sizeof(struct io_event) * nr_events; ^1da177e4c3f41 Linus Torvalds 2005-04-16 496 36bc08cc01709b Gu Zheng 2013-07-16 497 nr_pages = PFN_UP(size); ^1da177e4c3f41 Linus Torvalds 2005-04-16 498 if (nr_pages < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 499 return -EINVAL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 500 71ad7490c1f32b Benjamin LaHaise 2013-09-17 501 file = aio_private_file(ctx, nr_pages); 36bc08cc01709b Gu Zheng 2013-07-16 502 if (IS_ERR(file)) { 36bc08cc01709b Gu Zheng 2013-07-16 503 ctx->aio_ring_file = NULL; fa8a53c39f3fdd Benjamin LaHaise 2014-03-28 504 return -ENOMEM; 36bc08cc01709b Gu Zheng 2013-07-16 505 } 36bc08cc01709b Gu Zheng 2013-07-16 506 3dc9acb6760039 Linus Torvalds 2013-12-20 507 ctx->aio_ring_file = file; 3dc9acb6760039 Linus Torvalds 2013-12-20 508 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) 3dc9acb6760039 Linus Torvalds 2013-12-20 509 / sizeof(struct io_event); 3dc9acb6760039 Linus Torvalds 2013-12-20 510 16594e60cd8e6d Kefeng Wang 2024-03-21 511 ctx->ring_folios = ctx->internal_folios; 3dc9acb6760039 Linus Torvalds 2013-12-20 512 if (nr_pages > AIO_RING_PAGES) { 16594e60cd8e6d Kefeng Wang 2024-03-21 513 ctx->ring_folios = kcalloc(nr_pages, sizeof(struct folio *), 3dc9acb6760039 Linus Torvalds 2013-12-20 514 GFP_KERNEL); 16594e60cd8e6d Kefeng Wang 2024-03-21 515 if (!ctx->ring_folios) { 3dc9acb6760039 Linus Torvalds 2013-12-20 516 put_aio_ring_file(ctx); 3dc9acb6760039 Linus Torvalds 2013-12-20 517 return -ENOMEM; 3dc9acb6760039 Linus Torvalds 2013-12-20 518 } 3dc9acb6760039 Linus Torvalds 2013-12-20 519 } 3dc9acb6760039 Linus Torvalds 2013-12-20 520 36bc08cc01709b Gu Zheng 2013-07-16 521 for (i = 0; i < nr_pages; i++) { 75a07b557a11a7 Kefeng Wang 2024-03-21 522 struct folio *folio; 75a07b557a11a7 Kefeng Wang 2024-03-21 523 75a07b557a11a7 Kefeng Wang 2024-03-21 @524 folio = __filemap_get_folio(file->f_mapping, i, 75a07b557a11a7 Kefeng Wang 2024-03-21 @525 FGP_LOCK | FGP_ACCESSED | FGP_CREAT, 75a07b557a11a7 Kefeng Wang 2024-03-21 526 GFP_USER | __GFP_ZERO); 75a07b557a11a7 Kefeng Wang 2024-03-21 527 if (IS_ERR(folio)) 36bc08cc01709b Gu Zheng 2013-07-16 528 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 529 75a07b557a11a7 Kefeng Wang 2024-03-21 530 pr_debug("pid(%d) [%d] folio->count=%d\n", current->pid, i, 75a07b557a11a7 Kefeng Wang 2024-03-21 531 folio_ref_count(folio)); 75a07b557a11a7 Kefeng Wang 2024-03-21 @532 folio_end_read(folio, true); 75a07b557a11a7 Kefeng Wang 2024-03-21 533 16594e60cd8e6d Kefeng Wang 2024-03-21 534 ctx->ring_folios[i] = folio; ^1da177e4c3f41 Linus Torvalds 2005-04-16 535 } 3dc9acb6760039 Linus Torvalds 2013-12-20 536 ctx->nr_pages = i; 3dc9acb6760039 Linus Torvalds 2013-12-20 537 3dc9acb6760039 Linus Torvalds 2013-12-20 538 if (unlikely(i != nr_pages)) { 3dc9acb6760039 Linus Torvalds 2013-12-20 539 aio_free_ring(ctx); fa8a53c39f3fdd Benjamin LaHaise 2014-03-28 540 return -ENOMEM; d1b9432712a25e Gu Zheng 2013-12-04 541 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 542 58c85dc20a2c5b Kent Overstreet 2013-05-07 543 ctx->mmap_size = nr_pages * PAGE_SIZE; 58c85dc20a2c5b Kent Overstreet 2013-05-07 544 pr_debug("attempting mmap of %lu bytes\n", ctx->mmap_size); 36bc08cc01709b Gu Zheng 2013-07-16 545 d8ed45c5dcd455 Michel Lespinasse 2020-06-08 546 if (mmap_write_lock_killable(mm)) { 013373e8b86735 Michal Hocko 2016-05-23 547 ctx->mmap_size = 0; 013373e8b86735 Michal Hocko 2016-05-23 548 aio_free_ring(ctx); 013373e8b86735 Michal Hocko 2016-05-23 549 return -EINTR; 013373e8b86735 Michal Hocko 2016-05-23 550 } 013373e8b86735 Michal Hocko 2016-05-23 551 45e55300f11495 Peter Collingbourne 2020-08-06 552 ctx->mmap_base = do_mmap(ctx->aio_ring_file, 0, ctx->mmap_size, e3fc629d7bb708 Al Viro 2012-05-30 553 PROT_READ | PROT_WRITE, 592b5fad1677aa Yu-cheng Yu 2023-06-12 554 MAP_SHARED, 0, 0, &unused, NULL); d8ed45c5dcd455 Michel Lespinasse 2020-06-08 555 mmap_write_unlock(mm); 3dc9acb6760039 Linus Torvalds 2013-12-20 556 if (IS_ERR((void *)ctx->mmap_base)) { 58c85dc20a2c5b Kent Overstreet 2013-05-07 557 ctx->mmap_size = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 558 aio_free_ring(ctx); fa8a53c39f3fdd Benjamin LaHaise 2014-03-28 559 return -ENOMEM; ^1da177e4c3f41 Linus Torvalds 2005-04-16 560 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 561 58c85dc20a2c5b Kent Overstreet 2013-05-07 562 pr_debug("mmap address: 0x%08lx\n", ctx->mmap_base); d6c355c7dabcd7 Benjamin LaHaise 2013-09-09 563 58c85dc20a2c5b Kent Overstreet 2013-05-07 564 ctx->user_id = ctx->mmap_base; 58c85dc20a2c5b Kent Overstreet 2013-05-07 565 ctx->nr_events = nr_events; /* trusted copy */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 566 16594e60cd8e6d Kefeng Wang 2024-03-21 567 ring = folio_address(ctx->ring_folios[0]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 568 ring->nr = nr_events; /* user copy */ db446a08c23d54 Benjamin LaHaise 2013-07-30 569 ring->id = ~0U; ^1da177e4c3f41 Linus Torvalds 2005-04-16 570 ring->head = ring->tail = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 571 ring->magic = AIO_RING_MAGIC; ^1da177e4c3f41 Linus Torvalds 2005-04-16 572 ring->compat_features = AIO_RING_COMPAT_FEATURES; ^1da177e4c3f41 Linus Torvalds 2005-04-16 573 ring->incompat_features = AIO_RING_INCOMPAT_FEATURES; ^1da177e4c3f41 Linus Torvalds 2005-04-16 574 ring->header_length = sizeof(struct aio_ring); 16594e60cd8e6d Kefeng Wang 2024-03-21 575 flush_dcache_folio(ctx->ring_folios[0]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 576 ^1da177e4c3f41 Linus Torvalds 2005-04-16 577 return 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 578 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 579 :::::: The code at line 478 was first introduced by commit :::::: 46de8b979492e1377947700ecb1e3169088668b2 fs: Convert __set_page_dirty_no_writeback to noop_dirty_folio :::::: TO: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> :::::: CC: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki