Re: [RFC PATCH v4 net-next 17/23] pinctrl: microchip-sgpio: expose microchip_sgpio_core_probe interface
by kernel test robot
Hi Colin,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Colin-Foster/add-support-for-VSC...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 3ad4b7c81a992463c29ae130332c217607fe4452
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/687241afbab24f5d57bb22b23b4a7c3ad...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Colin-Foster/add-support-for-VSC75XX-control-over-SPI/20211116-143245
git checkout 687241afbab24f5d57bb22b23b4a7c3ad941702e
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_io.o: in function `ocelot_pinctrl_core_probe':
ocelot_io.c:(.text+0x384): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_io.o: in function `microchip_sgpio_core_probe':
>> ocelot_io.c:(.text+0x3a0): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_police.o: in function `ocelot_pinctrl_core_probe':
ocelot_police.c:(.text+0x0): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_police.o: in function `microchip_sgpio_core_probe':
ocelot_police.c:(.text+0x14): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_vcap.o: in function `ocelot_pinctrl_core_probe':
ocelot_vcap.c:(.text+0x28a4): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_vcap.o: in function `microchip_sgpio_core_probe':
ocelot_vcap.c:(.text+0x28c0): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_flower.o: in function `ocelot_pinctrl_core_probe':
ocelot_flower.c:(.text+0x15e4): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_flower.o: in function `microchip_sgpio_core_probe':
ocelot_flower.c:(.text+0x1600): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_ptp.o: in function `ocelot_pinctrl_core_probe':
ocelot_ptp.c:(.text+0xc70): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_ptp.o: in function `microchip_sgpio_core_probe':
ocelot_ptp.c:(.text+0xc84): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_devlink.o: in function `ocelot_pinctrl_core_probe':
ocelot_devlink.c:(.text+0x1534): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/ocelot_devlink.o: in function `microchip_sgpio_core_probe':
ocelot_devlink.c:(.text+0x1550): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/vsc7514_regs.o: in function `ocelot_pinctrl_core_probe':
vsc7514_regs.c:(.text+0x0): multiple definition of `ocelot_pinctrl_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4540): first defined here
aarch64-linux-ld: drivers/net/ethernet/mscc/vsc7514_regs.o: in function `microchip_sgpio_core_probe':
vsc7514_regs.c:(.text+0x14): multiple definition of `microchip_sgpio_core_probe'; drivers/net/ethernet/mscc/ocelot.o:ocelot.c:(.text+0x4554): first defined here
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
arch/mips/kernel/relocate.c:41:12: warning: no previous prototype for 'plat_post_relocation'
by kernel test robot
Hi Jinyang,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 42eb8fdac2fc5d62392dcfcf0253753e821a97b0
commit: a307a4ce9ecd2e23c71318201330d9d648b3f818 MIPS: Loongson64: Add KASLR support
date: 12 months ago
config: mips-randconfig-r033-20211116 (attached as .config)
compiler: mips64el-linux-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout a307a4ce9ecd2e23c71318201330d9d648b3f818
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/mips/kernel/relocate.c:41:12: warning: no previous prototype for 'plat_post_relocation' [-Wmissing-prototypes]
41 | int __weak plat_post_relocation(long offset)
| ^~~~~~~~~~~~~~~~~~~~
arch/mips/kernel/relocate.c:135:12: warning: no previous prototype for 'do_relocations' [-Wmissing-prototypes]
135 | int __init do_relocations(void *kbase_old, void *kbase_new, long offset)
| ^~~~~~~~~~~~~~
>> arch/mips/kernel/relocate.c:304:14: warning: no previous prototype for 'relocate_kernel' [-Wmissing-prototypes]
304 | void *__init relocate_kernel(void)
| ^~~~~~~~~~~~~~~
arch/mips/kernel/relocate.c:415:6: warning: no previous prototype for 'show_kernel_relocation' [-Wmissing-prototypes]
415 | void show_kernel_relocation(const char *level)
| ^~~~~~~~~~~~~~~~~~~~~~
vim +/plat_post_relocation +41 arch/mips/kernel/relocate.c
4c9fff362261d6 Marcin Nowakowski 2016-11-23 35
8cc709d7d4f013 Steven J. Hill 2016-12-09 36 /*
8cc709d7d4f013 Steven J. Hill 2016-12-09 37 * This function may be defined for a platform to perform any post-relocation
8cc709d7d4f013 Steven J. Hill 2016-12-09 38 * fixup necessary.
8cc709d7d4f013 Steven J. Hill 2016-12-09 39 * Return non-zero to abort relocation
8cc709d7d4f013 Steven J. Hill 2016-12-09 40 */
8cc709d7d4f013 Steven J. Hill 2016-12-09 @41 int __weak plat_post_relocation(long offset)
8cc709d7d4f013 Steven J. Hill 2016-12-09 42 {
8cc709d7d4f013 Steven J. Hill 2016-12-09 43 return 0;
8cc709d7d4f013 Steven J. Hill 2016-12-09 44 }
8cc709d7d4f013 Steven J. Hill 2016-12-09 45
:::::: The code at line 41 was first introduced by commit
:::::: 8cc709d7d4f013f51d38ceb2e3c8c82d230cf457 MIPS: Relocatable: Provide plat_post_relocation hook
:::::: TO: Steven J. Hill <Steven.Hill(a)cavium.com>
:::::: CC: Ralf Baechle <ralf(a)linux-mips.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH 03/13] MM: reclaim mustn't enter FS for swap-over-NFS
by kernel test robot
Hi NeilBrown,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on v5.16-rc1]
[also build test ERROR on next-20211117]
[cannot apply to trondmy-nfs/linux-next hnaz-mm/master rostedt-trace/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/NeilBrown/Repair-SWAP-over-NFS/2...
base: fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf
config: mips-randconfig-r031-20211116 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/b2f1d12df57f816d09ef57fa73758fec8...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review NeilBrown/Repair-SWAP-over-NFS/20211116-104822
git checkout b2f1d12df57f816d09ef57fa73758fec820a23f1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from <command-line>:
mm/vmscan.c: In function 'shrink_page_list':
>> mm/vmscan.c:1522:37: error: implicit declaration of function 'page_swap_info'; did you mean 'swp_swap_info'? [-Werror=implicit-function-declaration]
1522 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS) &&
| ^~~~~~~~~~~~~~
include/linux/compiler_types.h:291:27: note: in definition of macro '__unqual_scalar_typeof'
291 | _Generic((x), \
| ^
mm/vmscan.c:1522:27: note: in expansion of macro 'data_race'
1522 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS) &&
| ^~~~~~~~~
>> mm/vmscan.c:1522:57: error: invalid type argument of '->' (have 'int')
1522 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS) &&
| ^~
include/linux/compiler_types.h:291:27: note: in definition of macro '__unqual_scalar_typeof'
291 | _Generic((x), \
| ^
mm/vmscan.c:1522:27: note: in expansion of macro 'data_race'
1522 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS) &&
| ^~~~~~~~~
In file included from arch/mips/include/asm/bug.h:5,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/mm.h:9,
from mm/vmscan.c:15:
>> mm/vmscan.c:1522:57: error: invalid type argument of '->' (have 'int')
1522 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS) &&
| ^~
include/linux/compiler.h:218:17: note: in definition of macro 'data_race'
218 | expr; \
| ^~~~
In file included from <command-line>:
mm/vmscan.c:1692:68: error: invalid type argument of '->' (have 'int')
1692 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS))
| ^~
include/linux/compiler_types.h:291:27: note: in definition of macro '__unqual_scalar_typeof'
291 | _Generic((x), \
| ^
mm/vmscan.c:1692:38: note: in expansion of macro 'data_race'
1692 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS))
| ^~~~~~~~~
In file included from arch/mips/include/asm/bug.h:5,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/mm.h:9,
from mm/vmscan.c:15:
mm/vmscan.c:1692:68: error: invalid type argument of '->' (have 'int')
1692 | !data_race(page_swap_info(page)->flags & SWP_FS_OPS))
| ^~
include/linux/compiler.h:218:17: note: in definition of macro 'data_race'
218 | expr; \
| ^~~~
cc1: some warnings being treated as errors
vim +1522 mm/vmscan.c
1466
1467 /*
1468 * shrink_page_list() returns the number of reclaimed pages
1469 */
1470 static unsigned int shrink_page_list(struct list_head *page_list,
1471 struct pglist_data *pgdat,
1472 struct scan_control *sc,
1473 struct reclaim_stat *stat,
1474 bool ignore_references)
1475 {
1476 LIST_HEAD(ret_pages);
1477 LIST_HEAD(free_pages);
1478 LIST_HEAD(demote_pages);
1479 unsigned int nr_reclaimed = 0;
1480 unsigned int pgactivate = 0;
1481 bool do_demote_pass;
1482
1483 memset(stat, 0, sizeof(*stat));
1484 cond_resched();
1485 do_demote_pass = can_demote(pgdat->node_id, sc);
1486
1487 retry:
1488 while (!list_empty(page_list)) {
1489 struct address_space *mapping;
1490 struct page *page;
1491 enum page_references references = PAGEREF_RECLAIM;
1492 bool dirty, writeback, may_enter_fs;
1493 unsigned int nr_pages;
1494
1495 cond_resched();
1496
1497 page = lru_to_page(page_list);
1498 list_del(&page->lru);
1499
1500 if (!trylock_page(page))
1501 goto keep;
1502
1503 VM_BUG_ON_PAGE(PageActive(page), page);
1504
1505 nr_pages = compound_nr(page);
1506
1507 /* Account the number of base pages even though THP */
1508 sc->nr_scanned += nr_pages;
1509
1510 if (unlikely(!page_evictable(page)))
1511 goto activate_locked;
1512
1513 if (!sc->may_unmap && page_mapped(page))
1514 goto keep_locked;
1515
1516 /* ->flags can be updated non-atomicially (scan_swap_map_slots),
1517 * but that will never affect SWP_FS_OPS, so the data_race
1518 * is safe.
1519 */
1520 may_enter_fs = (sc->gfp_mask & __GFP_FS) ||
1521 (PageSwapCache(page) &&
> 1522 !data_race(page_swap_info(page)->flags & SWP_FS_OPS) &&
1523 (sc->gfp_mask & __GFP_IO));
1524
1525 /*
1526 * The number of dirty pages determines if a node is marked
1527 * reclaim_congested. kswapd will stall and start writing
1528 * pages if the tail of the LRU is all dirty unqueued pages.
1529 */
1530 page_check_dirty_writeback(page, &dirty, &writeback);
1531 if (dirty || writeback)
1532 stat->nr_dirty++;
1533
1534 if (dirty && !writeback)
1535 stat->nr_unqueued_dirty++;
1536
1537 /*
1538 * Treat this page as congested if the underlying BDI is or if
1539 * pages are cycling through the LRU so quickly that the
1540 * pages marked for immediate reclaim are making it to the
1541 * end of the LRU a second time.
1542 */
1543 mapping = page_mapping(page);
1544 if (((dirty || writeback) && mapping &&
1545 inode_write_congested(mapping->host)) ||
1546 (writeback && PageReclaim(page)))
1547 stat->nr_congested++;
1548
1549 /*
1550 * If a page at the tail of the LRU is under writeback, there
1551 * are three cases to consider.
1552 *
1553 * 1) If reclaim is encountering an excessive number of pages
1554 * under writeback and this page is both under writeback and
1555 * PageReclaim then it indicates that pages are being queued
1556 * for IO but are being recycled through the LRU before the
1557 * IO can complete. Waiting on the page itself risks an
1558 * indefinite stall if it is impossible to writeback the
1559 * page due to IO error or disconnected storage so instead
1560 * note that the LRU is being scanned too quickly and the
1561 * caller can stall after page list has been processed.
1562 *
1563 * 2) Global or new memcg reclaim encounters a page that is
1564 * not marked for immediate reclaim, or the caller does not
1565 * have __GFP_FS (or __GFP_IO if it's simply going to swap,
1566 * not to fs). In this case mark the page for immediate
1567 * reclaim and continue scanning.
1568 *
1569 * Require may_enter_fs because we would wait on fs, which
1570 * may not have submitted IO yet. And the loop driver might
1571 * enter reclaim, and deadlock if it waits on a page for
1572 * which it is needed to do the write (loop masks off
1573 * __GFP_IO|__GFP_FS for this reason); but more thought
1574 * would probably show more reasons.
1575 *
1576 * 3) Legacy memcg encounters a page that is already marked
1577 * PageReclaim. memcg does not have any dirty pages
1578 * throttling so we could easily OOM just because too many
1579 * pages are in writeback and there is nothing else to
1580 * reclaim. Wait for the writeback to complete.
1581 *
1582 * In cases 1) and 2) we activate the pages to get them out of
1583 * the way while we continue scanning for clean pages on the
1584 * inactive list and refilling from the active list. The
1585 * observation here is that waiting for disk writes is more
1586 * expensive than potentially causing reloads down the line.
1587 * Since they're marked for immediate reclaim, they won't put
1588 * memory pressure on the cache working set any longer than it
1589 * takes to write them to disk.
1590 */
1591 if (PageWriteback(page)) {
1592 /* Case 1 above */
1593 if (current_is_kswapd() &&
1594 PageReclaim(page) &&
1595 test_bit(PGDAT_WRITEBACK, &pgdat->flags)) {
1596 stat->nr_immediate++;
1597 goto activate_locked;
1598
1599 /* Case 2 above */
1600 } else if (writeback_throttling_sane(sc) ||
1601 !PageReclaim(page) || !may_enter_fs) {
1602 /*
1603 * This is slightly racy - end_page_writeback()
1604 * might have just cleared PageReclaim, then
1605 * setting PageReclaim here end up interpreted
1606 * as PageReadahead - but that does not matter
1607 * enough to care. What we do want is for this
1608 * page to have PageReclaim set next time memcg
1609 * reclaim reaches the tests above, so it will
1610 * then wait_on_page_writeback() to avoid OOM;
1611 * and it's also appropriate in global reclaim.
1612 */
1613 SetPageReclaim(page);
1614 stat->nr_writeback++;
1615 goto activate_locked;
1616
1617 /* Case 3 above */
1618 } else {
1619 unlock_page(page);
1620 wait_on_page_writeback(page);
1621 /* then go back and try same page again */
1622 list_add_tail(&page->lru, page_list);
1623 continue;
1624 }
1625 }
1626
1627 if (!ignore_references)
1628 references = page_check_references(page, sc);
1629
1630 switch (references) {
1631 case PAGEREF_ACTIVATE:
1632 goto activate_locked;
1633 case PAGEREF_KEEP:
1634 stat->nr_ref_keep += nr_pages;
1635 goto keep_locked;
1636 case PAGEREF_RECLAIM:
1637 case PAGEREF_RECLAIM_CLEAN:
1638 ; /* try to reclaim the page below */
1639 }
1640
1641 /*
1642 * Before reclaiming the page, try to relocate
1643 * its contents to another node.
1644 */
1645 if (do_demote_pass &&
1646 (thp_migration_supported() || !PageTransHuge(page))) {
1647 list_add(&page->lru, &demote_pages);
1648 unlock_page(page);
1649 continue;
1650 }
1651
1652 /*
1653 * Anonymous process memory has backing store?
1654 * Try to allocate it some swap space here.
1655 * Lazyfree page could be freed directly
1656 */
1657 if (PageAnon(page) && PageSwapBacked(page)) {
1658 if (!PageSwapCache(page)) {
1659 if (!(sc->gfp_mask & __GFP_IO))
1660 goto keep_locked;
1661 if (page_maybe_dma_pinned(page))
1662 goto keep_locked;
1663 if (PageTransHuge(page)) {
1664 /* cannot split THP, skip it */
1665 if (!can_split_huge_page(page, NULL))
1666 goto activate_locked;
1667 /*
1668 * Split pages without a PMD map right
1669 * away. Chances are some or all of the
1670 * tail pages can be freed without IO.
1671 */
1672 if (!compound_mapcount(page) &&
1673 split_huge_page_to_list(page,
1674 page_list))
1675 goto activate_locked;
1676 }
1677 if (!add_to_swap(page)) {
1678 if (!PageTransHuge(page))
1679 goto activate_locked_split;
1680 /* Fallback to swap normal pages */
1681 if (split_huge_page_to_list(page,
1682 page_list))
1683 goto activate_locked;
1684 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
1685 count_vm_event(THP_SWPOUT_FALLBACK);
1686 #endif
1687 if (!add_to_swap(page))
1688 goto activate_locked_split;
1689 }
1690
1691 if ((sc->gfp_mask & __GFP_FS) ||
1692 !data_race(page_swap_info(page)->flags & SWP_FS_OPS))
1693 may_enter_fs = true;
1694
1695 /* Adding to swap updated mapping */
1696 mapping = page_mapping(page);
1697 }
1698 } else if (unlikely(PageTransHuge(page))) {
1699 /* Split file THP */
1700 if (split_huge_page_to_list(page, page_list))
1701 goto keep_locked;
1702 }
1703
1704 /*
1705 * THP may get split above, need minus tail pages and update
1706 * nr_pages to avoid accounting tail pages twice.
1707 *
1708 * The tail pages that are added into swap cache successfully
1709 * reach here.
1710 */
1711 if ((nr_pages > 1) && !PageTransHuge(page)) {
1712 sc->nr_scanned -= (nr_pages - 1);
1713 nr_pages = 1;
1714 }
1715
1716 /*
1717 * The page is mapped into the page tables of one or more
1718 * processes. Try to unmap it here.
1719 */
1720 if (page_mapped(page)) {
1721 enum ttu_flags flags = TTU_BATCH_FLUSH;
1722 bool was_swapbacked = PageSwapBacked(page);
1723
1724 if (unlikely(PageTransHuge(page)))
1725 flags |= TTU_SPLIT_HUGE_PMD;
1726
1727 try_to_unmap(page, flags);
1728 if (page_mapped(page)) {
1729 stat->nr_unmap_fail += nr_pages;
1730 if (!was_swapbacked && PageSwapBacked(page))
1731 stat->nr_lazyfree_fail += nr_pages;
1732 goto activate_locked;
1733 }
1734 }
1735
1736 if (PageDirty(page)) {
1737 /*
1738 * Only kswapd can writeback filesystem pages
1739 * to avoid risk of stack overflow. But avoid
1740 * injecting inefficient single-page IO into
1741 * flusher writeback as much as possible: only
1742 * write pages when we've encountered many
1743 * dirty pages, and when we've already scanned
1744 * the rest of the LRU for clean pages and see
1745 * the same dirty pages again (PageReclaim).
1746 */
1747 if (page_is_file_lru(page) &&
1748 (!current_is_kswapd() || !PageReclaim(page) ||
1749 !test_bit(PGDAT_DIRTY, &pgdat->flags))) {
1750 /*
1751 * Immediately reclaim when written back.
1752 * Similar in principal to deactivate_page()
1753 * except we already have the page isolated
1754 * and know it's dirty
1755 */
1756 inc_node_page_state(page, NR_VMSCAN_IMMEDIATE);
1757 SetPageReclaim(page);
1758
1759 goto activate_locked;
1760 }
1761
1762 if (references == PAGEREF_RECLAIM_CLEAN)
1763 goto keep_locked;
1764 if (!may_enter_fs)
1765 goto keep_locked;
1766 if (!sc->may_writepage)
1767 goto keep_locked;
1768
1769 /*
1770 * Page is dirty. Flush the TLB if a writable entry
1771 * potentially exists to avoid CPU writes after IO
1772 * starts and then write it out here.
1773 */
1774 try_to_unmap_flush_dirty();
1775 switch (pageout(page, mapping)) {
1776 case PAGE_KEEP:
1777 goto keep_locked;
1778 case PAGE_ACTIVATE:
1779 goto activate_locked;
1780 case PAGE_SUCCESS:
1781 stat->nr_pageout += thp_nr_pages(page);
1782
1783 if (PageWriteback(page))
1784 goto keep;
1785 if (PageDirty(page))
1786 goto keep;
1787
1788 /*
1789 * A synchronous write - probably a ramdisk. Go
1790 * ahead and try to reclaim the page.
1791 */
1792 if (!trylock_page(page))
1793 goto keep;
1794 if (PageDirty(page) || PageWriteback(page))
1795 goto keep_locked;
1796 mapping = page_mapping(page);
1797 fallthrough;
1798 case PAGE_CLEAN:
1799 ; /* try to free the page below */
1800 }
1801 }
1802
1803 /*
1804 * If the page has buffers, try to free the buffer mappings
1805 * associated with this page. If we succeed we try to free
1806 * the page as well.
1807 *
1808 * We do this even if the page is PageDirty().
1809 * try_to_release_page() does not perform I/O, but it is
1810 * possible for a page to have PageDirty set, but it is actually
1811 * clean (all its buffers are clean). This happens if the
1812 * buffers were written out directly, with submit_bh(). ext3
1813 * will do this, as well as the blockdev mapping.
1814 * try_to_release_page() will discover that cleanness and will
1815 * drop the buffers and mark the page clean - it can be freed.
1816 *
1817 * Rarely, pages can have buffers and no ->mapping. These are
1818 * the pages which were not successfully invalidated in
1819 * truncate_cleanup_page(). We try to drop those buffers here
1820 * and if that worked, and the page is no longer mapped into
1821 * process address space (page_count == 1) it can be freed.
1822 * Otherwise, leave the page on the LRU so it is swappable.
1823 */
1824 if (page_has_private(page)) {
1825 if (!try_to_release_page(page, sc->gfp_mask))
1826 goto activate_locked;
1827 if (!mapping && page_count(page) == 1) {
1828 unlock_page(page);
1829 if (put_page_testzero(page))
1830 goto free_it;
1831 else {
1832 /*
1833 * rare race with speculative reference.
1834 * the speculative reference will free
1835 * this page shortly, so we may
1836 * increment nr_reclaimed here (and
1837 * leave it off the LRU).
1838 */
1839 nr_reclaimed++;
1840 continue;
1841 }
1842 }
1843 }
1844
1845 if (PageAnon(page) && !PageSwapBacked(page)) {
1846 /* follow __remove_mapping for reference */
1847 if (!page_ref_freeze(page, 1))
1848 goto keep_locked;
1849 /*
1850 * The page has only one reference left, which is
1851 * from the isolation. After the caller puts the
1852 * page back on lru and drops the reference, the
1853 * page will be freed anyway. It doesn't matter
1854 * which lru it goes. So we don't bother checking
1855 * PageDirty here.
1856 */
1857 count_vm_event(PGLAZYFREED);
1858 count_memcg_page_event(page, PGLAZYFREED);
1859 } else if (!mapping || !__remove_mapping(mapping, page, true,
1860 sc->target_mem_cgroup))
1861 goto keep_locked;
1862
1863 unlock_page(page);
1864 free_it:
1865 /*
1866 * THP may get swapped out in a whole, need account
1867 * all base pages.
1868 */
1869 nr_reclaimed += nr_pages;
1870
1871 /*
1872 * Is there need to periodically free_page_list? It would
1873 * appear not as the counts should be low
1874 */
1875 if (unlikely(PageTransHuge(page)))
1876 destroy_compound_page(page);
1877 else
1878 list_add(&page->lru, &free_pages);
1879 continue;
1880
1881 activate_locked_split:
1882 /*
1883 * The tail pages that are failed to add into swap cache
1884 * reach here. Fixup nr_scanned and nr_pages.
1885 */
1886 if (nr_pages > 1) {
1887 sc->nr_scanned -= (nr_pages - 1);
1888 nr_pages = 1;
1889 }
1890 activate_locked:
1891 /* Not a candidate for swapping, so reclaim swap space. */
1892 if (PageSwapCache(page) && (mem_cgroup_swap_full(page) ||
1893 PageMlocked(page)))
1894 try_to_free_swap(page);
1895 VM_BUG_ON_PAGE(PageActive(page), page);
1896 if (!PageMlocked(page)) {
1897 int type = page_is_file_lru(page);
1898 SetPageActive(page);
1899 stat->nr_activate[type] += nr_pages;
1900 count_memcg_page_event(page, PGACTIVATE);
1901 }
1902 keep_locked:
1903 unlock_page(page);
1904 keep:
1905 list_add(&page->lru, &ret_pages);
1906 VM_BUG_ON_PAGE(PageLRU(page) || PageUnevictable(page), page);
1907 }
1908 /* 'page_list' is always empty here */
1909
1910 /* Migrate pages selected for demotion */
1911 nr_reclaimed += demote_page_list(&demote_pages, pgdat);
1912 /* Pages that could not be demoted are still in @demote_pages */
1913 if (!list_empty(&demote_pages)) {
1914 /* Pages which failed to demoted go back on @page_list for retry: */
1915 list_splice_init(&demote_pages, page_list);
1916 do_demote_pass = false;
1917 goto retry;
1918 }
1919
1920 pgactivate = stat->nr_activate[0] + stat->nr_activate[1];
1921
1922 mem_cgroup_uncharge_list(&free_pages);
1923 try_to_unmap_flush();
1924 free_unref_page_list(&free_pages);
1925
1926 list_splice(&ret_pages, page_list);
1927 count_vm_events(PGACTIVATE, pgactivate);
1928
1929 return nr_reclaimed;
1930 }
1931
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[helgaas-pci:pci/driver 17/24] drivers/misc/cxl/pci.c:1816:29: error: assignment discards 'const' qualifier from pointer target type
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/driver
head: 0508b6f72f055b88df518db4f3811bda9bb35da4
commit: 115c9d41e58388415f4956d0a988c90fb48663b9 [17/24] cxl: Factor out common dev->driver expressions
config: powerpc64-allnoconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/commit/?i...
git remote add helgaas-pci https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
git fetch --no-tags helgaas-pci pci/driver
git checkout 115c9d41e58388415f4956d0a988c90fb48663b9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/misc/cxl/pci.c: In function 'cxl_vphb_error_detected':
>> drivers/misc/cxl/pci.c:1816:29: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
1816 | err_handler = afu_drv->err_handler;
| ^
drivers/misc/cxl/pci.c: In function 'cxl_pci_slot_reset':
drivers/misc/cxl/pci.c:2041:37: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
2041 | err_handler = afu_drv->err_handler;
| ^
drivers/misc/cxl/pci.c: In function 'cxl_pci_resume':
drivers/misc/cxl/pci.c:2090:37: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
2090 | err_handler = afu_drv->err_handler;
| ^
cc1: all warnings being treated as errors
--
drivers/misc/cxl/guest.c: In function 'pci_error_handlers':
>> drivers/misc/cxl/guest.c:34:29: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
34 | err_handler = afu_drv->err_handler;
| ^
cc1: all warnings being treated as errors
vim +/const +1816 drivers/misc/cxl/pci.c
1793
1794 static pci_ers_result_t cxl_vphb_error_detected(struct cxl_afu *afu,
1795 pci_channel_state_t state)
1796 {
1797 struct pci_dev *afu_dev;
1798 struct pci_driver *afu_drv;
1799 struct pci_error_handlers *err_handler;
1800 pci_ers_result_t result = PCI_ERS_RESULT_NEED_RESET;
1801 pci_ers_result_t afu_result = PCI_ERS_RESULT_NEED_RESET;
1802
1803 /* There should only be one entry, but go through the list
1804 * anyway
1805 */
1806 if (afu == NULL || afu->phb == NULL)
1807 return result;
1808
1809 list_for_each_entry(afu_dev, &afu->phb->bus->devices, bus_list) {
1810 afu_drv = afu_dev->driver;
1811 if (!afu_drv)
1812 continue;
1813
1814 afu_dev->error_state = state;
1815
> 1816 err_handler = afu_drv->err_handler;
1817 if (err_handler)
1818 afu_result = err_handler->error_detected(afu_dev,
1819 state);
1820 /* Disconnect trumps all, NONE trumps NEED_RESET */
1821 if (afu_result == PCI_ERS_RESULT_DISCONNECT)
1822 result = PCI_ERS_RESULT_DISCONNECT;
1823 else if ((afu_result == PCI_ERS_RESULT_NONE) &&
1824 (result == PCI_ERS_RESULT_NEED_RESET))
1825 result = PCI_ERS_RESULT_NONE;
1826 }
1827 return result;
1828 }
1829
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[pali:pci-mvebu 10/63] drivers/pci/pci-bridge-emul.c:216:23: warning: conversion from 'long unsigned int' to 'unsigned int' changes value from '18446744073700900863' to '4286316543'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/pali/linux.git pci-mvebu
head: 1da84421034ff2bd51f34e0508485bac6d0f8b48
commit: ac831422ea1706cf7c354ae5d9a1cb1fe4ca45b2 [10/63] PCI: pci-bridge-emul: Fix definitions of reserved bits
config: ia64-randconfig-r011-20211117 (attached as .config)
compiler: ia64-linux-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/pali/linux.git/commit/?id...
git remote add pali https://git.kernel.org/pub/scm/linux/kernel/git/pali/linux.git
git fetch --no-tags pali pci-mvebu
git checkout ac831422ea1706cf7c354ae5d9a1cb1fe4ca45b2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/pci/pci-bridge-emul.c:216:23: warning: conversion from 'long unsigned int' to 'unsigned int' changes value from '18446744073700900863' to '4286316543' [-Woverflow]
216 | .ro = ~(BIT(23) | PCI_EXP_LNKCAP_CLKPM),
| ^
vim +216 drivers/pci/pci-bridge-emul.c
173
174 static const
175 struct pci_bridge_reg_behavior pcie_cap_regs_behavior[PCI_CAP_PCIE_SIZEOF / 4] = {
176 [PCI_CAP_LIST_ID / 4] = {
177 /*
178 * Capability ID, Next Capability Pointer and
179 * bits [14:0] of Capabilities register are all read-only.
180 * Bit 15 of Capabilities register is reserved.
181 */
182 .ro = GENMASK(30, 0),
183 },
184
185 [PCI_EXP_DEVCAP / 4] = {
186 /*
187 * Bits [31:29] and [17:16] are reserved.
188 * Bits [27:18] are reserved for non-Upstream ports.
189 * Bits 28 and [14:6] are reserved for non-Endpoint devices.
190 * Other bits are read-only.
191 */
192 .ro = BIT(15) | GENMASK(5, 0),
193 },
194
195 [PCI_EXP_DEVCTL / 4] = {
196 /*
197 * Device control register is RW, except bit 15 which is
198 * reserved for non-Endpoints or non-PCIe-to-PCI/X bridges.
199 */
200 .rw = GENMASK(14, 0),
201
202 /*
203 * Device status register has bits 6 and [3:0] W1C, [5:4] RO,
204 * the rest is reserved. Also bit 6 is reserved for non-upstream
205 * ports.
206 */
207 .w1c = GENMASK(3, 0) << 16,
208 .ro = GENMASK(5, 4) << 16,
209 },
210
211 [PCI_EXP_LNKCAP / 4] = {
212 /*
213 * All bits are RO, except bit 23 which is reserved and
214 * bit 18 which is reserved for non-Upstream ports.
215 */
> 216 .ro = ~(BIT(23) | PCI_EXP_LNKCAP_CLKPM),
217 },
218
219 [PCI_EXP_LNKCTL / 4] = {
220 /*
221 * Link control has bits [15:14], [11:3] and [1:0] RW, the
222 * rest is reserved. Bit 8 is reserved for non-upstream ports.
223 *
224 * Link status has bits [13:0] RO, and bits [15:14]
225 * W1C.
226 */
227 .rw = GENMASK(15, 14) | GENMASK(11, 9) | GENMASK(7, 3) | GENMASK(1, 0),
228 .ro = GENMASK(13, 0) << 16,
229 .w1c = GENMASK(15, 14) << 16,
230 },
231
232 [PCI_EXP_SLTCAP / 4] = {
233 .ro = ~0,
234 },
235
236 [PCI_EXP_SLTCTL / 4] = {
237 /*
238 * Slot control has bits [14:0] RW, the rest is
239 * reserved.
240 *
241 * Slot status has bits 8 and [4:0] W1C, bits [7:5] RO, the
242 * rest is reserved.
243 */
244 .rw = GENMASK(14, 0),
245 .w1c = (PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD |
246 PCI_EXP_SLTSTA_MRLSC | PCI_EXP_SLTSTA_PDC |
247 PCI_EXP_SLTSTA_CC | PCI_EXP_SLTSTA_DLLSC) << 16,
248 .ro = (PCI_EXP_SLTSTA_MRLSS | PCI_EXP_SLTSTA_PDS |
249 PCI_EXP_SLTSTA_EIS) << 16,
250 },
251
252 [PCI_EXP_RTCTL / 4] = {
253 /*
254 * Root control has bits [4:0] RW, the rest is
255 * reserved.
256 *
257 * Root capabilities has bit 0 RO, the rest is reserved.
258 */
259 .rw = (PCI_EXP_RTCTL_SECEE | PCI_EXP_RTCTL_SENFEE |
260 PCI_EXP_RTCTL_SEFEE | PCI_EXP_RTCTL_PMEIE |
261 PCI_EXP_RTCTL_CRSSVE),
262 .ro = PCI_EXP_RTCAP_CRSVIS << 16,
263 },
264
265 [PCI_EXP_RTSTA / 4] = {
266 /*
267 * Root status has bits 17 and [15:0] RO, bit 16 W1C, the rest
268 * is reserved.
269 */
270 .ro = GENMASK(15, 0) | PCI_EXP_RTSTA_PENDING,
271 .w1c = PCI_EXP_RTSTA_PME,
272 },
273
274 [PCI_EXP_DEVCAP2 / 4] = {
275 /*
276 * Device capabilities 2 register has reserved bits [30:27].
277 * Also bits [26:24] are reserved for non-upstream ports.
278 */
279 .ro = BIT(31) | GENMASK(23, 0),
280 },
281
282 [PCI_EXP_DEVCTL2 / 4] = {
283 /*
284 * Device control 2 register is RW. Bit 11 is reserved for
285 * non-upstream ports.
286 *
287 * Device status 2 register is reserved.
288 */
289 .rw = GENMASK(15, 12) | GENMASK(10, 0),
290 },
291
292 [PCI_EXP_LNKCAP2 / 4] = {
293 /* Link capabilities 2 register has reserved bits [30:25] and 0. */
294 .ro = BIT(31) | GENMASK(24, 1),
295 },
296
297 [PCI_EXP_LNKCTL2 / 4] = {
298 /*
299 * Link control 2 register is RW.
300 *
301 * Link status 2 register has bits 5, 15 W1C;
302 * bits 10, 11 reserved and others are RO.
303 */
304 .rw = GENMASK(15, 0),
305 .w1c = (BIT(15) | BIT(5)) << 16,
306 .ro = (GENMASK(14, 12) | GENMASK(9, 6) | GENMASK(4, 0)) << 16,
307 },
308
309 [PCI_EXP_SLTCAP2 / 4] = {
310 /* Slot capabilities 2 register is reserved. */
311 },
312
313 [PCI_EXP_SLTCTL2 / 4] = {
314 /* Both Slot control 2 and Slot status 2 registers are reserved. */
315 },
316 };
317
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH v2 1/1] PCI: Add KUnit tests for __pci_read_base()
by kernel test robot
Hi Naveen,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on helgaas-pci/next]
[also build test ERROR on v5.16-rc1 next-20211117]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Naveen-Naidu/PCI-Initial-KUnit-t...
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
config: um-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/b8f5b94d52de6904d367ff34aa924593d...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Naveen-Naidu/PCI-Initial-KUnit-test-fixture-for-resource-assignment/20211115-142802
git checkout b8f5b94d52de6904d367ff34aa924593d931a853
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=um SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/pci/pci-read-base-test.c:355:13: error: conflicting types for 'init_registers'
355 | static void init_registers(void)
| ^~~~~~~~~~~~~~
In file included from arch/um/include/asm/processor-generic.h:14,
from arch/x86/um/asm/processor.h:41,
from include/linux/spinlock_up.h:8,
from include/linux/spinlock.h:96,
from include/linux/mm_types.h:9,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from include/kunit/test.h:15,
from drivers/pci/pci-read-base-test.c:7:
arch/um/include/shared/registers.h:20:12: note: previous declaration of 'init_registers' was here
20 | extern int init_registers(int pid);
| ^~~~~~~~~~~~~~
vim +/init_registers +355 drivers/pci/pci-read-base-test.c
348
349 /*
350 * -----------------------------------------------------------------------
351 * Functions for managing test values
352 * -----------------------------------------------------------------------
353 */
354
> 355 static void init_registers(void)
356 {
357 unsigned int i, array_size;
358 struct config_space_bitfield *type_hdr;
359
360 if (type_header_test_case == PCI_HEADER_TYPE_NORMAL) {
361 type_hdr = type_0_header;
362 array_size = ARRAY_SIZE(type_0_header);
363 } else {
364 type_hdr = type_1_header;
365 array_size = ARRAY_SIZE(type_1_header);
366 }
367
368 for (i = 0; i < array_size; i++, type_hdr++)
369 set_register(type_hdr->offset, type_hdr->value, type_hdr->size);
370 }
371
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
m68k-linux-ld: undefined reference to `drm_gem_fb_begin_cpu_access'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ee1703cda8dc777e937dec172da55beaf1a74919
commit: 08971eea06db3377ea1f9ff4f95a5df5f6c9aeb7 drm/mipi-dbi: Use framebuffer dma-buf helpers
date: 4 months ago
config: m68k-randconfig-r026-20211018 (attached as .config)
compiler: m68k-linux-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 08971eea06db3377ea1f9ff4f95a5df5f6c9aeb7
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=m68k SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
m68k-linux-ld: section .rodata VMA [0000000000002000,00000000000f513f] overlaps section .text VMA [0000000000000400,0000000000576bbf]
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o: in function `mipi_dbi_buf_copy':
(.text+0x106): undefined reference to `drm_gem_fb_get_obj'
>> m68k-linux-ld: (.text+0x118): undefined reference to `drm_gem_fb_begin_cpu_access'
m68k-linux-ld: (.text+0x15c): undefined reference to `drm_fb_swab'
m68k-linux-ld: (.text+0x174): undefined reference to `drm_fb_memcpy'
m68k-linux-ld: (.text+0x194): undefined reference to `drm_fb_xrgb8888_to_rgb565'
>> m68k-linux-ld: (.text+0x1a4): undefined reference to `drm_gem_fb_end_cpu_access'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o: in function `mipi_dbi_dev_init_with_formats':
(.text+0x2de): undefined reference to `drm_simple_display_pipe_init'
m68k-linux-ld: (.text+0x2f6): undefined reference to `drm_plane_enable_fb_damage_clips'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o: in function `mipi_dbi_fb_dirty':
drm_mipi_dbi.c:(.text+0x14f8): undefined reference to `drm_gem_fb_get_obj'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o: in function `mipi_dbi_pipe_update':
(.text+0x1652): undefined reference to `drm_atomic_helper_damage_merged'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0xdc): undefined reference to `drm_gem_fb_create_with_dirty'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0xec): undefined reference to `drm_atomic_helper_check'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0xf0): undefined reference to `drm_atomic_helper_commit'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0x104): undefined reference to `drm_atomic_helper_connector_reset'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0x110): undefined reference to `drm_helper_probe_single_connector_modes'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0x124): undefined reference to `drm_atomic_helper_connector_duplicate_state'
m68k-linux-ld: drivers/gpu/drm/drm_mipi_dbi.o:(.rodata+0x128): undefined reference to `drm_atomic_helper_connector_destroy_state'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
fs/btrfs/zoned.c:1697: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 42eb8fdac2fc5d62392dcfcf0253753e821a97b0
commit: afba2bc036b0ed983bef6bd7c00c827e97d1ba31 btrfs: zoned: implement active zone tracking
date: 3 weeks ago
config: m68k-randconfig-r004-20211109 (attached as .config)
compiler: m68k-linux-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout afba2bc036b0ed983bef6bd7c00c827e97d1ba31
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/btrfs/zoned.c:1697: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Activate block group and underlying device zones
vim +1697 fs/btrfs/zoned.c
1695
1696 /**
> 1697 * Activate block group and underlying device zones
1698 *
1699 * @block_group: the block group to activate
1700 *
1701 * Return: true on success, false otherwise
1702 */
1703 bool btrfs_zone_activate(struct btrfs_block_group *block_group)
1704 {
1705 struct btrfs_fs_info *fs_info = block_group->fs_info;
1706 struct map_lookup *map;
1707 struct btrfs_device *device;
1708 u64 physical;
1709 bool ret;
1710
1711 if (!btrfs_is_zoned(block_group->fs_info))
1712 return true;
1713
1714 map = block_group->physical_map;
1715 /* Currently support SINGLE profile only */
1716 ASSERT(map->num_stripes == 1);
1717 device = map->stripes[0].dev;
1718 physical = map->stripes[0].physical;
1719
1720 if (device->zone_info->max_active_zones == 0)
1721 return true;
1722
1723 spin_lock(&block_group->lock);
1724
1725 if (block_group->zone_is_active) {
1726 ret = true;
1727 goto out_unlock;
1728 }
1729
1730 /* No space left */
1731 if (block_group->alloc_offset == block_group->zone_capacity) {
1732 ret = false;
1733 goto out_unlock;
1734 }
1735
1736 if (!btrfs_dev_set_active_zone(device, physical)) {
1737 /* Cannot activate the zone */
1738 ret = false;
1739 goto out_unlock;
1740 }
1741
1742 /* Successfully activated all the zones */
1743 block_group->zone_is_active = 1;
1744
1745 spin_unlock(&block_group->lock);
1746
1747 /* For the active block group list */
1748 btrfs_get_block_group(block_group);
1749
1750 spin_lock(&fs_info->zone_active_bgs_lock);
1751 ASSERT(list_empty(&block_group->active_bg_list));
1752 list_add_tail(&block_group->active_bg_list, &fs_info->zone_active_bgs);
1753 spin_unlock(&fs_info->zone_active_bgs_lock);
1754
1755 return true;
1756
1757 out_unlock:
1758 spin_unlock(&block_group->lock);
1759 return ret;
1760 }
1761
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
net/smc/smc_llc.c:40:1: warning: alignment 1 of 'struct smc_llc_hdr' is less than 4
by kernel test robot
Hi Karsten,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ee1703cda8dc777e937dec172da55beaf1a74919
commit: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 net/smc: extend LLC layer for SMC-Rv2
date: 5 weeks ago
config: arm-randconfig-c002-20211117 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> net/smc/smc_llc.c:40:1: warning: alignment 1 of 'struct smc_llc_hdr' is less than 4 [-Wpacked-not-aligned]
40 | } __packed; /* format defined in
| ^
In file included from <command-line>:
In function 'smc_llc_add_pending_send',
inlined from 'smc_llc_send_test_link' at net/smc/smc_llc.c:736:7,
inlined from 'smc_llc_testlink_work' at net/smc/smc_llc.c:2094:2:
include/linux/compiler_types.h:322:45: error: call to '__compiletime_assert_576' declared with attribute error: must increase SMC_WR_BUF_SIZE to at least sizeof(struct smc_llc_msg)
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:303:25: note: in definition of macro '__compiletime_assert'
303 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
net/smc/smc_llc.c:409:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
409 | BUILD_BUG_ON_MSG(
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:322:45: error: call to '__compiletime_assert_577' declared with attribute error: must adapt SMC_WR_TX_SIZE to sizeof(struct smc_llc_msg); if not all smc_wr upper layer protocols use the same message size any more, must start to set link->wr_tx_sges[i].length on each individual smc_wr_tx_send()
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:303:25: note: in definition of macro '__compiletime_assert'
303 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
net/smc/smc_llc.c:412:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
412 | BUILD_BUG_ON_MSG(
| ^~~~~~~~~~~~~~~~
In function 'smc_llc_add_pending_send',
inlined from 'smc_llc_send_message' at net/smc/smc_llc.c:760:7:
include/linux/compiler_types.h:322:45: error: call to '__compiletime_assert_576' declared with attribute error: must increase SMC_WR_BUF_SIZE to at least sizeof(struct smc_llc_msg)
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:303:25: note: in definition of macro '__compiletime_assert'
303 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
net/smc/smc_llc.c:409:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
409 | BUILD_BUG_ON_MSG(
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:322:45: error: call to '__compiletime_assert_577' declared with attribute error: must adapt SMC_WR_TX_SIZE to sizeof(struct smc_llc_msg); if not all smc_wr upper layer protocols use the same message size any more, must start to set link->wr_tx_sges[i].length on each individual smc_wr_tx_send()
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:303:25: note: in definition of macro '__compiletime_assert'
303 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
net/smc/smc_llc.c:412:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
412 | BUILD_BUG_ON_MSG(
| ^~~~~~~~~~~~~~~~
In function 'smc_llc_add_pending_send',
inlined from 'smc_llc_send_confirm_rkey' at net/smc/smc_llc.c:492:7:
include/linux/compiler_types.h:322:45: error: call to '__compiletime_assert_576' declared with attribute error: must increase SMC_WR_BUF_SIZE to at least sizeof(struct smc_llc_msg)
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:303:25: note: in definition of macro '__compiletime_assert'
303 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
net/smc/smc_llc.c:409:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
409 | BUILD_BUG_ON_MSG(
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:322:45: error: call to '__compiletime_assert_577' declared with attribute error: must adapt SMC_WR_TX_SIZE to sizeof(struct smc_llc_msg); if not all smc_wr upper layer protocols use the same message size any more, must start to set link->wr_tx_sges[i].length on each individual smc_wr_tx_send()
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:303:25: note: in definition of macro '__compiletime_assert'
303 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
net/smc/smc_llc.c:412:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
412 | BUILD_BUG_ON_MSG(
| ^~~~~~~~~~~~~~~~
vim +40 net/smc/smc_llc.c
23
24 struct smc_llc_hdr {
25 struct smc_wr_rx_hdr common;
26 union {
27 struct {
28 u8 length; /* 44 */
29 #if defined(__BIG_ENDIAN_BITFIELD)
30 u8 reserved:4,
31 add_link_rej_rsn:4;
32 #elif defined(__LITTLE_ENDIAN_BITFIELD)
33 u8 add_link_rej_rsn:4,
34 reserved:4;
35 #endif
36 };
37 u16 length_v2; /* 44 - 8192*/
38 };
39 u8 flags;
> 40 } __packed; /* format defined in
41 * IBM Shared Memory Communications Version 2
42 * (https://www.ibm.com/support/pages/node/6326337)
43 */
44
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months