From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [hch-misc:dax-include-fix 1/1] mm/memory-failure.c:1548:11: error: implicit declaration of function 'dax_lock_page'
Date: Fri, 27 Aug 2021 09:39:50 +0800 [thread overview]
Message-ID: <202108270946.CPHX8eDM-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 9784 bytes --]
tree: git://git.infradead.org/users/hch/misc.git dax-include-fix
head: 87a0d664932cb001488b33263cbd48725871fd77
commit: 87a0d664932cb001488b33263cbd48725871fd77 [1/1] mm: don't include <linux/dax.h> in <linux/mempolicy.h>
config: x86_64-randconfig-a013-20210826 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project ea08c4cd1c0869ec5024a8bb3f5cdf06ab03ae83)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add hch-misc git://git.infradead.org/users/hch/misc.git
git fetch --no-tags hch-misc dax-include-fix
git checkout 87a0d664932cb001488b33263cbd48725871fd77
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
mm/memory-failure.c:1527:2: error: unknown type name 'dax_entry_t'; did you mean 'swp_entry_t'?
dax_entry_t cookie;
^~~~~~~~~~~
swp_entry_t
include/linux/mm_types.h:802:3: note: 'swp_entry_t' declared here
} swp_entry_t;
^
>> mm/memory-failure.c:1548:11: error: implicit declaration of function 'dax_lock_page' [-Werror,-Wimplicit-function-declaration]
cookie = dax_lock_page(page);
^
mm/memory-failure.c:1548:11: note: did you mean '__lock_page'?
include/linux/pagemap.h:603:13: note: '__lock_page' declared here
extern void __lock_page(struct page *page);
^
>> mm/memory-failure.c:1548:9: error: assigning to 'swp_entry_t' from incompatible type 'int'
cookie = dax_lock_page(page);
^ ~~~~~~~~~~~~~~~~~~~
>> mm/memory-failure.c:1549:6: error: invalid argument type 'swp_entry_t' to unary expression
if (!cookie)
^~~~~~~
>> mm/memory-failure.c:1596:2: error: implicit declaration of function 'dax_unlock_page' [-Werror,-Wimplicit-function-declaration]
dax_unlock_page(page, cookie);
^
mm/memory-failure.c:1596:2: note: did you mean 'dax_lock_page'?
mm/memory-failure.c:1548:11: note: 'dax_lock_page' declared here
cookie = dax_lock_page(page);
^
5 errors generated.
vim +/dax_lock_page +1548 mm/memory-failure.c
761ad8d7c7b548 Naoya Horiguchi 2017-07-10 1516
6100e34b2526e1 Dan Williams 2018-07-13 1517 static int memory_failure_dev_pagemap(unsigned long pfn, int flags,
6100e34b2526e1 Dan Williams 2018-07-13 1518 struct dev_pagemap *pgmap)
6100e34b2526e1 Dan Williams 2018-07-13 1519 {
6100e34b2526e1 Dan Williams 2018-07-13 1520 struct page *page = pfn_to_page(pfn);
6100e34b2526e1 Dan Williams 2018-07-13 1521 const bool unmap_success = true;
6100e34b2526e1 Dan Williams 2018-07-13 1522 unsigned long size = 0;
6100e34b2526e1 Dan Williams 2018-07-13 1523 struct to_kill *tk;
6100e34b2526e1 Dan Williams 2018-07-13 1524 LIST_HEAD(tokill);
6100e34b2526e1 Dan Williams 2018-07-13 1525 int rc = -EBUSY;
6100e34b2526e1 Dan Williams 2018-07-13 1526 loff_t start;
27359fd6e5f3c5 Matthew Wilcox 2018-11-30 @1527 dax_entry_t cookie;
6100e34b2526e1 Dan Williams 2018-07-13 1528
1e8aaedb182d6d Oscar Salvador 2020-12-14 1529 if (flags & MF_COUNT_INCREASED)
1e8aaedb182d6d Oscar Salvador 2020-12-14 1530 /*
1e8aaedb182d6d Oscar Salvador 2020-12-14 1531 * Drop the extra refcount in case we come from madvise().
1e8aaedb182d6d Oscar Salvador 2020-12-14 1532 */
1e8aaedb182d6d Oscar Salvador 2020-12-14 1533 put_page(page);
1e8aaedb182d6d Oscar Salvador 2020-12-14 1534
34dc45be4563f3 Dan Williams 2021-02-25 1535 /* device metadata space is not recoverable */
34dc45be4563f3 Dan Williams 2021-02-25 1536 if (!pgmap_pfn_valid(pgmap, pfn)) {
34dc45be4563f3 Dan Williams 2021-02-25 1537 rc = -ENXIO;
34dc45be4563f3 Dan Williams 2021-02-25 1538 goto out;
34dc45be4563f3 Dan Williams 2021-02-25 1539 }
34dc45be4563f3 Dan Williams 2021-02-25 1540
6100e34b2526e1 Dan Williams 2018-07-13 1541 /*
6100e34b2526e1 Dan Williams 2018-07-13 1542 * Prevent the inode from being freed while we are interrogating
6100e34b2526e1 Dan Williams 2018-07-13 1543 * the address_space, typically this would be handled by
6100e34b2526e1 Dan Williams 2018-07-13 1544 * lock_page(), but dax pages do not use the page lock. This
6100e34b2526e1 Dan Williams 2018-07-13 1545 * also prevents changes to the mapping of this pfn until
6100e34b2526e1 Dan Williams 2018-07-13 1546 * poison signaling is complete.
6100e34b2526e1 Dan Williams 2018-07-13 1547 */
27359fd6e5f3c5 Matthew Wilcox 2018-11-30 @1548 cookie = dax_lock_page(page);
27359fd6e5f3c5 Matthew Wilcox 2018-11-30 @1549 if (!cookie)
6100e34b2526e1 Dan Williams 2018-07-13 1550 goto out;
6100e34b2526e1 Dan Williams 2018-07-13 1551
6100e34b2526e1 Dan Williams 2018-07-13 1552 if (hwpoison_filter(page)) {
6100e34b2526e1 Dan Williams 2018-07-13 1553 rc = 0;
6100e34b2526e1 Dan Williams 2018-07-13 1554 goto unlock;
6100e34b2526e1 Dan Williams 2018-07-13 1555 }
6100e34b2526e1 Dan Williams 2018-07-13 1556
25b2995a35b609 Christoph Hellwig 2019-06-13 1557 if (pgmap->type == MEMORY_DEVICE_PRIVATE) {
6100e34b2526e1 Dan Williams 2018-07-13 1558 /*
6100e34b2526e1 Dan Williams 2018-07-13 1559 * TODO: Handle HMM pages which may need coordination
6100e34b2526e1 Dan Williams 2018-07-13 1560 * with device-side memory.
6100e34b2526e1 Dan Williams 2018-07-13 1561 */
6100e34b2526e1 Dan Williams 2018-07-13 1562 goto unlock;
6100e34b2526e1 Dan Williams 2018-07-13 1563 }
6100e34b2526e1 Dan Williams 2018-07-13 1564
6100e34b2526e1 Dan Williams 2018-07-13 1565 /*
6100e34b2526e1 Dan Williams 2018-07-13 1566 * Use this flag as an indication that the dax page has been
6100e34b2526e1 Dan Williams 2018-07-13 1567 * remapped UC to prevent speculative consumption of poison.
6100e34b2526e1 Dan Williams 2018-07-13 1568 */
6100e34b2526e1 Dan Williams 2018-07-13 1569 SetPageHWPoison(page);
6100e34b2526e1 Dan Williams 2018-07-13 1570
6100e34b2526e1 Dan Williams 2018-07-13 1571 /*
6100e34b2526e1 Dan Williams 2018-07-13 1572 * Unlike System-RAM there is no possibility to swap in a
6100e34b2526e1 Dan Williams 2018-07-13 1573 * different physical page at a given virtual address, so all
6100e34b2526e1 Dan Williams 2018-07-13 1574 * userspace consumption of ZONE_DEVICE memory necessitates
6100e34b2526e1 Dan Williams 2018-07-13 1575 * SIGBUS (i.e. MF_MUST_KILL)
6100e34b2526e1 Dan Williams 2018-07-13 1576 */
6100e34b2526e1 Dan Williams 2018-07-13 1577 flags |= MF_ACTION_REQUIRED | MF_MUST_KILL;
6100e34b2526e1 Dan Williams 2018-07-13 1578 collect_procs(page, &tokill, flags & MF_ACTION_REQUIRED);
6100e34b2526e1 Dan Williams 2018-07-13 1579
6100e34b2526e1 Dan Williams 2018-07-13 1580 list_for_each_entry(tk, &tokill, nd)
6100e34b2526e1 Dan Williams 2018-07-13 1581 if (tk->size_shift)
6100e34b2526e1 Dan Williams 2018-07-13 1582 size = max(size, 1UL << tk->size_shift);
6100e34b2526e1 Dan Williams 2018-07-13 1583 if (size) {
6100e34b2526e1 Dan Williams 2018-07-13 1584 /*
6100e34b2526e1 Dan Williams 2018-07-13 1585 * Unmap the largest mapping to avoid breaking up
6100e34b2526e1 Dan Williams 2018-07-13 1586 * device-dax mappings which are constant size. The
6100e34b2526e1 Dan Williams 2018-07-13 1587 * actual size of the mapping being torn down is
6100e34b2526e1 Dan Williams 2018-07-13 1588 * communicated in siginfo, see kill_proc()
6100e34b2526e1 Dan Williams 2018-07-13 1589 */
6100e34b2526e1 Dan Williams 2018-07-13 1590 start = (page->index << PAGE_SHIFT) & ~(size - 1);
4d75136be8bf3a Jane Chu 2021-04-29 1591 unmap_mapping_range(page->mapping, start, size, 0);
6100e34b2526e1 Dan Williams 2018-07-13 1592 }
6100e34b2526e1 Dan Williams 2018-07-13 1593 kill_procs(&tokill, flags & MF_MUST_KILL, !unmap_success, pfn, flags);
6100e34b2526e1 Dan Williams 2018-07-13 1594 rc = 0;
6100e34b2526e1 Dan Williams 2018-07-13 1595 unlock:
27359fd6e5f3c5 Matthew Wilcox 2018-11-30 @1596 dax_unlock_page(page, cookie);
6100e34b2526e1 Dan Williams 2018-07-13 1597 out:
6100e34b2526e1 Dan Williams 2018-07-13 1598 /* drop pgmap ref acquired in caller */
6100e34b2526e1 Dan Williams 2018-07-13 1599 put_dev_pagemap(pgmap);
6100e34b2526e1 Dan Williams 2018-07-13 1600 action_result(pfn, MF_MSG_DAX, rc ? MF_FAILED : MF_RECOVERED);
6100e34b2526e1 Dan Williams 2018-07-13 1601 return rc;
6100e34b2526e1 Dan Williams 2018-07-13 1602 }
6100e34b2526e1 Dan Williams 2018-07-13 1603
:::::: The code at line 1548 was first introduced by commit
:::::: 27359fd6e5f3c5db8fe544b63238b6170e8806d8 dax: Fix unlock mismatch with updated API
:::::: TO: Matthew Wilcox <willy@infradead.org>
:::::: CC: Dan Williams <dan.j.williams@intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39704 bytes --]
reply other threads:[~2021-08-27 1:39 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202108270946.CPHX8eDM-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.