[mel:mm-percpu-local_lock-v4r4 22/29] mm/vmstat.c:1018:13: error: invalid storage class for function 'fill_contig_page_info'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-percpu-local_lock-v4r4
head: 85d43239ceaed47c1a4e646aba1ebc09ad46734e
commit: c1617f38ab5c8401a4d5c6288c59aaf02e2a6788 [22/29] mm/vmstat: Convert NUMA statistics to basic NUMA counters
config: i386-randconfig-r001-20210419 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git/commit/?id=...
git remote add mel https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git
git fetch --no-tags mel mm-percpu-local_lock-v4r4
git checkout c1617f38ab5c8401a4d5c6288c59aaf02e2a6788
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
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 >>):
mm/vmstat.c: In function 'refresh_cpu_vm_stats':
mm/vmstat.c:781:34: warning: unused variable 'pcp' [-Wunused-variable]
781 | struct per_cpu_pages __percpu *pcp = zone->per_cpu_pageset;
| ^~~
mm/vmstat.c: In function 'cpu_vm_stats_fold':
mm/vmstat.c:913:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
913 | void drain_zonestat(struct zone *zone, struct per_cpu_zonestat *pzstats)
| ^~~~
>> mm/vmstat.c:1018:13: error: invalid storage class for function 'fill_contig_page_info'
1018 | static void fill_contig_page_info(struct zone *zone,
| ^~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1052:12: error: invalid storage class for function '__fragmentation_index'
1052 | static int __fragmentation_index(unsigned int order, struct contig_page_info *info)
| ^~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1338:14: error: invalid storage class for function 'frag_start'
1338 | static void *frag_start(struct seq_file *m, loff_t *pos)
| ^~~~~~~~~~
>> mm/vmstat.c:1351:14: error: invalid storage class for function 'frag_next'
1351 | static void *frag_next(struct seq_file *m, void *arg, loff_t *pos)
| ^~~~~~~~~
>> mm/vmstat.c:1359:13: error: invalid storage class for function 'frag_stop'
1359 | static void frag_stop(struct seq_file *m, void *arg)
| ^~~~~~~~~
>> mm/vmstat.c:1367:13: error: invalid storage class for function 'walk_zones_in_node'
1367 | static void walk_zones_in_node(struct seq_file *m, pg_data_t *pgdat,
| ^~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1389:13: error: invalid storage class for function 'frag_show_print'
1389 | static void frag_show_print(struct seq_file *m, pg_data_t *pgdat,
| ^~~~~~~~~~~~~~~
>> mm/vmstat.c:1403:12: error: invalid storage class for function 'frag_show'
1403 | static int frag_show(struct seq_file *m, void *arg)
| ^~~~~~~~~
>> mm/vmstat.c:1410:13: error: invalid storage class for function 'pagetypeinfo_showfree_print'
1410 | static void pagetypeinfo_showfree_print(struct seq_file *m,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1453:12: error: invalid storage class for function 'pagetypeinfo_showfree'
1453 | static int pagetypeinfo_showfree(struct seq_file *m, void *arg)
| ^~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1469:13: error: invalid storage class for function 'pagetypeinfo_showblockcount_print'
1469 | static void pagetypeinfo_showblockcount_print(struct seq_file *m,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1502:12: error: invalid storage class for function 'pagetypeinfo_showblockcount'
1502 | static int pagetypeinfo_showblockcount(struct seq_file *m, void *arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1523:13: error: invalid storage class for function 'pagetypeinfo_showmixedcount'
1523 | static void pagetypeinfo_showmixedcount(struct seq_file *m, pg_data_t *pgdat)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1547:12: error: invalid storage class for function 'pagetypeinfo_show'
1547 | static int pagetypeinfo_show(struct seq_file *m, void *arg)
| ^~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1566:11: error: initializer element is not constant
1566 | .start = frag_start,
| ^~~~~~~~~~
mm/vmstat.c:1566:11: note: (near initialization for 'fragmentation_op.start')
mm/vmstat.c:1567:10: error: initializer element is not constant
1567 | .next = frag_next,
| ^~~~~~~~~
mm/vmstat.c:1567:10: note: (near initialization for 'fragmentation_op.next')
mm/vmstat.c:1568:10: error: initializer element is not constant
1568 | .stop = frag_stop,
| ^~~~~~~~~
mm/vmstat.c:1568:10: note: (near initialization for 'fragmentation_op.stop')
mm/vmstat.c:1569:10: error: initializer element is not constant
1569 | .show = frag_show,
| ^~~~~~~~~
mm/vmstat.c:1569:10: note: (near initialization for 'fragmentation_op.show')
mm/vmstat.c:1573:11: error: initializer element is not constant
1573 | .start = frag_start,
| ^~~~~~~~~~
mm/vmstat.c:1573:11: note: (near initialization for 'pagetypeinfo_op.start')
mm/vmstat.c:1574:10: error: initializer element is not constant
1574 | .next = frag_next,
| ^~~~~~~~~
mm/vmstat.c:1574:10: note: (near initialization for 'pagetypeinfo_op.next')
mm/vmstat.c:1575:10: error: initializer element is not constant
1575 | .stop = frag_stop,
| ^~~~~~~~~
mm/vmstat.c:1575:10: note: (near initialization for 'pagetypeinfo_op.stop')
mm/vmstat.c:1576:10: error: initializer element is not constant
1576 | .show = pagetypeinfo_show,
| ^~~~~~~~~~~~~~~~~
mm/vmstat.c:1576:10: note: (near initialization for 'pagetypeinfo_op.show')
>> mm/vmstat.c:1579:13: error: invalid storage class for function 'is_zone_first_populated'
1579 | static bool is_zone_first_populated(pg_data_t *pgdat, struct zone *zone)
| ^~~~~~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1593:13: error: invalid storage class for function 'zoneinfo_show_print'
1593 | static void zoneinfo_show_print(struct seq_file *m, pg_data_t *pgdat,
| ^~~~~~~~~~~~~~~~~~~
>> mm/vmstat.c:1685:12: error: invalid storage class for function 'zoneinfo_show'
1685 | static int zoneinfo_show(struct seq_file *m, void *arg)
| ^~~~~~~~~~~~~
mm/vmstat.c:1693:11: error: initializer element is not constant
1693 | .start = frag_start, /* iterate over all zones. The same as in
| ^~~~~~~~~~
mm/vmstat.c:1693:11: note: (near initialization for 'zoneinfo_op.start')
mm/vmstat.c:1695:10: error: initializer element is not constant
1695 | .next = frag_next,
| ^~~~~~~~~
mm/vmstat.c:1695:10: note: (near initialization for 'zoneinfo_op.next')
mm/vmstat.c:1696:10: error: initializer element is not constant
1696 | .stop = frag_stop,
| ^~~~~~~~~
mm/vmstat.c:1696:10: note: (near initialization for 'zoneinfo_op.stop')
mm/vmstat.c:1697:10: error: initializer element is not constant
1697 | .show = zoneinfo_show,
| ^~~~~~~~~~~~~
mm/vmstat.c:1697:10: note: (near initialization for 'zoneinfo_op.show')
>> mm/vmstat.c:1707:14: error: invalid storage class for function 'vmstat_start'
1707 | static void *vmstat_start(struct seq_file *m, loff_t *pos)
| ^~~~~~~~~~~~
>> mm/vmstat.c:1750:14: error: invalid storage class for function 'vmstat_next'
1750 | static void *vmstat_next(struct seq_file *m, void *arg, loff_t *pos)
| ^~~~~~~~~~~
mm/vmstat.c:1758:12: error: invalid storage class for function 'vmstat_show'
1758 | static int vmstat_show(struct seq_file *m, void *arg)
| ^~~~~~~~~~~
mm/vmstat.c:1777:13: error: invalid storage class for function 'vmstat_stop'
1777 | static void vmstat_stop(struct seq_file *m, void *arg)
| ^~~~~~~~~~~
mm/vmstat.c:1784:11: error: initializer element is not constant
1784 | .start = vmstat_start,
| ^~~~~~~~~~~~
mm/vmstat.c:1784:11: note: (near initialization for 'vmstat_op.start')
mm/vmstat.c:1785:10: error: initializer element is not constant
1785 | .next = vmstat_next,
| ^~~~~~~~~~~
mm/vmstat.c:1785:10: note: (near initialization for 'vmstat_op.next')
mm/vmstat.c:1786:10: error: initializer element is not constant
1786 | .stop = vmstat_stop,
| ^~~~~~~~~~~
mm/vmstat.c:1786:10: note: (near initialization for 'vmstat_op.stop')
mm/vmstat.c:1787:10: error: initializer element is not constant
1787 | .show = vmstat_show,
| ^~~~~~~~~~~
mm/vmstat.c:1787:10: note: (near initialization for 'vmstat_op.show')
In file included from include/asm-generic/percpu.h:7,
from arch/x86/include/asm/percpu.h:390,
from arch/x86/include/asm/preempt.h:6,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/wait.h:9,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from mm/vmstat.c:13:
include/linux/percpu-defs.h:92:33: error: section attribute cannot be specified for local variables
92 | extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:115:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION'
115 | DEFINE_PER_CPU_SECTION(type, name, "")
| ^~~~~~~~~~~~~~~~~~~~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:93:26: error: section attribute cannot be specified for local variables
93 | __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:115:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION'
115 | DEFINE_PER_CPU_SECTION(type, name, "")
| ^~~~~~~~~~~~~~~~~~~~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:93:26: error: declaration of '__pcpu_unique_vmstat_work' with no linkage follows extern declaration
93 | __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:115:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION'
115 | DEFINE_PER_CPU_SECTION(type, name, "")
| ^~~~~~~~~~~~~~~~~~~~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:92:33: note: previous declaration of '__pcpu_unique_vmstat_work' was here
92 | extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:115:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION'
115 | DEFINE_PER_CPU_SECTION(type, name, "")
| ^~~~~~~~~~~~~~~~~~~~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
mm/vmstat.c:1792:44: error: section attribute cannot be specified for local variables
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~
include/linux/percpu-defs.h:94:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
94 | extern __PCPU_ATTRS(sec) __typeof__(type) name; \
| ^~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
mm/vmstat.c:1792:44: error: section attribute cannot be specified for local variables
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~
include/linux/percpu-defs.h:95:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
95 | __PCPU_ATTRS(sec) __weak __typeof__(type) name
| ^~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
mm/vmstat.c:1792:44: error: weak declaration of 'vmstat_work' must be public
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~
include/linux/percpu-defs.h:95:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
95 | __PCPU_ATTRS(sec) __weak __typeof__(type) name
| ^~~~
mm/vmstat.c:1792:8: note: in expansion of macro 'DEFINE_PER_CPU'
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~~~~
mm/vmstat.c:1792:44: error: declaration of 'vmstat_work' with no linkage follows extern declaration
1792 | static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
| ^~~~~~~~~~~
include/linux/percpu-defs.h:95:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
vim +/fill_contig_page_info +1018 mm/vmstat.c
d7a5752c0c1975 Mel Gorman 2010-05-24 1009
d7a5752c0c1975 Mel Gorman 2010-05-24 1010 /*
d7a5752c0c1975 Mel Gorman 2010-05-24 1011 * Calculate the number of free pages in a zone, how many contiguous
d7a5752c0c1975 Mel Gorman 2010-05-24 1012 * pages are free and how many are large enough to satisfy an allocation of
d7a5752c0c1975 Mel Gorman 2010-05-24 1013 * the target size. Note that this function makes no attempt to estimate
d7a5752c0c1975 Mel Gorman 2010-05-24 1014 * how many suitable free blocks there *might* be if MOVABLE pages were
d7a5752c0c1975 Mel Gorman 2010-05-24 1015 * migrated. Calculating that is possible, but expensive and can be
d7a5752c0c1975 Mel Gorman 2010-05-24 1016 * figured out from userspace
d7a5752c0c1975 Mel Gorman 2010-05-24 1017 */
d7a5752c0c1975 Mel Gorman 2010-05-24 @1018 static void fill_contig_page_info(struct zone *zone,
d7a5752c0c1975 Mel Gorman 2010-05-24 1019 unsigned int suitable_order,
d7a5752c0c1975 Mel Gorman 2010-05-24 1020 struct contig_page_info *info)
d7a5752c0c1975 Mel Gorman 2010-05-24 1021 {
d7a5752c0c1975 Mel Gorman 2010-05-24 1022 unsigned int order;
d7a5752c0c1975 Mel Gorman 2010-05-24 1023
d7a5752c0c1975 Mel Gorman 2010-05-24 1024 info->free_pages = 0;
d7a5752c0c1975 Mel Gorman 2010-05-24 1025 info->free_blocks_total = 0;
d7a5752c0c1975 Mel Gorman 2010-05-24 1026 info->free_blocks_suitable = 0;
d7a5752c0c1975 Mel Gorman 2010-05-24 1027
d7a5752c0c1975 Mel Gorman 2010-05-24 1028 for (order = 0; order < MAX_ORDER; order++) {
d7a5752c0c1975 Mel Gorman 2010-05-24 1029 unsigned long blocks;
d7a5752c0c1975 Mel Gorman 2010-05-24 1030
d7a5752c0c1975 Mel Gorman 2010-05-24 1031 /* Count number of free blocks */
d7a5752c0c1975 Mel Gorman 2010-05-24 1032 blocks = zone->free_area[order].nr_free;
d7a5752c0c1975 Mel Gorman 2010-05-24 1033 info->free_blocks_total += blocks;
d7a5752c0c1975 Mel Gorman 2010-05-24 1034
d7a5752c0c1975 Mel Gorman 2010-05-24 1035 /* Count free base pages */
d7a5752c0c1975 Mel Gorman 2010-05-24 1036 info->free_pages += blocks << order;
d7a5752c0c1975 Mel Gorman 2010-05-24 1037
d7a5752c0c1975 Mel Gorman 2010-05-24 1038 /* Count the suitable free blocks */
d7a5752c0c1975 Mel Gorman 2010-05-24 1039 if (order >= suitable_order)
d7a5752c0c1975 Mel Gorman 2010-05-24 1040 info->free_blocks_suitable += blocks <<
d7a5752c0c1975 Mel Gorman 2010-05-24 1041 (order - suitable_order);
d7a5752c0c1975 Mel Gorman 2010-05-24 1042 }
d7a5752c0c1975 Mel Gorman 2010-05-24 1043 }
f1a5ab1210579e Mel Gorman 2010-05-24 1044
f1a5ab1210579e Mel Gorman 2010-05-24 1045 /*
f1a5ab1210579e Mel Gorman 2010-05-24 1046 * A fragmentation index only makes sense if an allocation of a requested
f1a5ab1210579e Mel Gorman 2010-05-24 1047 * size would fail. If that is true, the fragmentation index indicates
f1a5ab1210579e Mel Gorman 2010-05-24 1048 * whether external fragmentation or a lack of memory was the problem.
f1a5ab1210579e Mel Gorman 2010-05-24 1049 * The value can be used to determine if page reclaim or compaction
f1a5ab1210579e Mel Gorman 2010-05-24 1050 * should be used
f1a5ab1210579e Mel Gorman 2010-05-24 1051 */
56de7263fcf3eb Mel Gorman 2010-05-24 @1052 static int __fragmentation_index(unsigned int order, struct contig_page_info *info)
f1a5ab1210579e Mel Gorman 2010-05-24 1053 {
f1a5ab1210579e Mel Gorman 2010-05-24 1054 unsigned long requested = 1UL << order;
f1a5ab1210579e Mel Gorman 2010-05-24 1055
88d6ac40c1c6b2 Wen Yang 2017-09-06 1056 if (WARN_ON_ONCE(order >= MAX_ORDER))
88d6ac40c1c6b2 Wen Yang 2017-09-06 1057 return 0;
88d6ac40c1c6b2 Wen Yang 2017-09-06 1058
f1a5ab1210579e Mel Gorman 2010-05-24 1059 if (!info->free_blocks_total)
f1a5ab1210579e Mel Gorman 2010-05-24 1060 return 0;
f1a5ab1210579e Mel Gorman 2010-05-24 1061
f1a5ab1210579e Mel Gorman 2010-05-24 1062 /* Fragmentation index only makes sense when a request would fail */
f1a5ab1210579e Mel Gorman 2010-05-24 1063 if (info->free_blocks_suitable)
f1a5ab1210579e Mel Gorman 2010-05-24 1064 return -1000;
f1a5ab1210579e Mel Gorman 2010-05-24 1065
f1a5ab1210579e Mel Gorman 2010-05-24 1066 /*
f1a5ab1210579e Mel Gorman 2010-05-24 1067 * Index is between 0 and 1 so return within 3 decimal places
f1a5ab1210579e Mel Gorman 2010-05-24 1068 *
f1a5ab1210579e Mel Gorman 2010-05-24 1069 * 0 => allocation would fail due to lack of memory
f1a5ab1210579e Mel Gorman 2010-05-24 1070 * 1 => allocation would fail due to fragmentation
f1a5ab1210579e Mel Gorman 2010-05-24 1071 */
f1a5ab1210579e Mel Gorman 2010-05-24 1072 return 1000 - div_u64( (1000+(div_u64(info->free_pages * 1000ULL, requested))), info->free_blocks_total);
f1a5ab1210579e Mel Gorman 2010-05-24 1073 }
56de7263fcf3eb Mel Gorman 2010-05-24 1074
:::::: The code at line 1018 was first introduced by commit
:::::: d7a5752c0c19750312efab3a2a80d350e11fa4a2 mm: export unusable free space index via debugfs
:::::: TO: Mel Gorman <mel(a)csn.ul.ie>
:::::: CC: Linus Torvalds <torvalds(a)linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
Re: [PATCH v3 2/2] xfs: set aside allocation btree blocks from block reservation
by kernel test robot
Hi Brian,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on xfs-linux/for-next]
[also build test ERROR on v5.12-rc7 next-20210412]
[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/Brian-Foster/xfs-set-aside-alloc...
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
config: um-randconfig-r022-20210412 (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/5ffa1f5fa63a4a9c557f90beb5826866f...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Brian-Foster/xfs-set-aside-allocation-btree-blocks-from-block-reservation/20210412-213222
git checkout 5ffa1f5fa63a4a9c557f90beb5826866fa4aefd0
# save the attached .config to linux build tree
make W=1 ARCH=um
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 >>):
syscall.c:(.text+0xa023): undefined reference to `atomic64_inc_386'
/usr/bin/ld: kernel/bpf/syscall.o: in function `bpf_link_put':
syscall.c:(.text+0xa036): undefined reference to `atomic64_dec_return_386'
/usr/bin/ld: kernel/bpf/syscall.o: in function `bpf_tracing_prog_attach':
syscall.c:(.text+0xa423): undefined reference to `atomic64_set_386'
/usr/bin/ld: kernel/bpf/syscall.o: in function `bpf_link_get_from_fd':
syscall.c:(.text+0xa8a7): undefined reference to `atomic64_inc_386'
/usr/bin/ld: kernel/bpf/bpf_iter.o: in function `prepare_seq_file':
bpf_iter.c:(.text+0x1b2): undefined reference to `atomic64_inc_return_386'
/usr/bin/ld: fs/proc/task_mmu.o: in function `task_mem':
task_mmu.c:(.text+0x2bfd): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/balloc.o: in function `ext4_has_free_clusters':
balloc.c:(.text+0x94): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/dir.o: in function `ext4_dir_llseek':
dir.c:(.text+0x2d3): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/dir.o: in function `ext4_readdir':
dir.c:(.text+0x84b): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xc71): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xc9f): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: dir.c:(.text+0xe1b): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xe44): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xe72): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/ialloc.o: in function `get_orlov_stats':
ialloc.c:(.text+0x205): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/inline.o: in function `ext4_add_dirent_to_inline.isra.0':
inline.c:(.text+0x14a9): undefined reference to `atomic64_read_386'
/usr/bin/ld: inline.c:(.text+0x14df): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/inline.o: in function `ext4_read_inline_dir':
inline.c:(.text+0x3dd8): undefined reference to `atomic64_read_386'
/usr/bin/ld: inline.c:(.text+0x3ea7): undefined reference to `atomic64_read_386'
/usr/bin/ld: inline.c:(.text+0x3ed5): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/inode.o: in function `ext4_do_update_inode':
inode.c:(.text+0x3f13): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0x44bb): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/inode.o: in function `__ext4_iget':
inode.c:(.text+0x7c4d): undefined reference to `atomic64_set_386'
/usr/bin/ld: inode.c:(.text+0x8385): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/inode.o: in function `ext4_mark_iloc_dirty':
inode.c:(.text+0x8a69): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0x8aa0): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/inode.o: in function `ext4_setattr':
inode.c:(.text+0xf4ed): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0xf523): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/ioctl.o: in function `swap_inode_boot_loader':
ioctl.c:(.text+0x1794): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/namei.o: in function `ext4_setent':
namei.c:(.text+0x2a0a): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x2a41): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/namei.o: in function `add_dirent_to_buf':
namei.c:(.text+0x498c): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x49c3): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/namei.o: in function `ext4_generic_delete_entry':
namei.c:(.text+0x7452): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x7488): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/namei.o: in function `ext4_rmdir':
namei.c:(.text+0x9f2d): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x9f63): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/resize.o: in function `ext4_update_super.isra.0':
resize.c:(.text+0x2566): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/ext4/xattr.o: in function `ext4_xattr_inode_iget':
xattr.c:(.text+0x6b6): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/xattr.o: in function `ext4_xattr_inode_update_ref':
xattr.c:(.text+0x776): undefined reference to `atomic64_read_386'
/usr/bin/ld: xattr.c:(.text+0x79f): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/xattr.o: in function `ext4_xattr_inode_lookup_create':
xattr.c:(.text+0x2baf): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/fat/dir.o: in function `fat_remove_entries':
dir.c:(.text+0x2cf0): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0x2d27): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/fat/misc.o: in function `fat_update_time':
misc.c:(.text+0x721): undefined reference to `atomic64_read_386'
/usr/bin/ld: misc.c:(.text+0x75e): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ufs/dir.o: in function `ufs_commit_chunk':
dir.c:(.text+0x24): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0x5b): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ufs/dir.o: in function `ufs_readdir':
dir.c:(.text+0x62e): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xa43): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xa71): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ufs/inode.o: in function `ufs_iget':
inode.c:(.text+0x4331): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0x4365): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/affs/dir.o: in function `affs_readdir':
dir.c:(.text+0xf5): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0x480): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0x4ae): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/affs/amigaffs.o: in function `affs_remove_hash':
amigaffs.c:(.text+0x180): undefined reference to `atomic64_read_386'
/usr/bin/ld: amigaffs.c:(.text+0x1b6): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/affs/amigaffs.o: in function `affs_insert_hash':
amigaffs.c:(.text+0x4ec): undefined reference to `atomic64_read_386'
/usr/bin/ld: amigaffs.c:(.text+0x522): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_trace.o: in function `trace_event_raw_event_xfs_log_assign_tail_lsn':
xfs_trace.c:(.text+0xe948): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trace.c:(.text+0xe959): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_trace.o: in function `trace_event_raw_event_xfs_loggrant_class':
xfs_trace.c:(.text+0x1126c): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trace.c:(.text+0x11286): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trace.c:(.text+0x112b2): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_alloc.o: in function `xfs_alloc_read_agf':
>> xfs_alloc.c:(.text+0x63db): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_alloc_btree.o: in function `xfs_allocbt_free_block':
>> xfs_alloc_btree.c:(.text+0x844): undefined reference to `atomic64_dec_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_alloc_btree.o: in function `xfs_allocbt_alloc_block':
>> xfs_alloc_btree.c:(.text+0x8d5): undefined reference to `atomic64_inc_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_inode_buf.o: in function `xfs_inode_to_disk':
xfs_inode_buf.c:(.text+0x5e7): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_inode_buf.o: in function `xfs_inode_from_disk':
xfs_inode_buf.c:(.text+0x1409): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_trans_inode.o: in function `xfs_trans_log_inode':
xfs_trans_inode.c:(.text+0x490): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trans_inode.c:(.text+0x4d8): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_icache.o: in function `xfs_iget_cache_hit':
xfs_icache.c:(.text+0x1d0c): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_icache.c:(.text+0x1d78): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_iops.o: in function `xfs_vn_update_time':
xfs_iops.c:(.text+0xab2): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_iops.c:(.text+0xaf8): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_inode.o: in function `xfs_init_new_inode':
xfs_inode.c:(.text+0x27d): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_mount.o: in function `xfs_mod_fdblocks':
>> xfs_mount.c:(.text+0x24a2): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_sysfs.o: in function `write_grant_head_show':
xfs_sysfs.c:(.text+0x160): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_sysfs.o: in function `reserve_grant_head_show':
xfs_sysfs.c:(.text+0x1a6): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_sysfs.o: in function `log_tail_lsn_show':
xfs_sysfs.c:(.text+0x1ec): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_space_left':
xfs_log.c:(.text+0x2cf): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o:xfs_log.c:(.text+0x2e1): more undefined references to `atomic64_read_386' follow
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_grant_head_init':
xfs_log.c:(.text+0x4e5): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_alloc_log':
xfs_log.c:(.text+0xceb): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log.c:(.text+0xcf6): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_assign_tail_lsn_locked':
xfs_log.c:(.text+0x1951): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log.c:(.text+0x196d): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_grant_push_threshold':
xfs_log.c:(.text+0x1cc5): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x1ceb): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xfs_log_regrant':
xfs_log.c:(.text+0x258d): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x25b2): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_state_do_callback':
xfs_log.c:(.text+0x27ab): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x2820): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_sync':
xfs_log.c:(.text+0x310e): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x3134): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: xfs_log.c:(.text+0x3243): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x3269): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xfs_log_ticket_regrant':
xfs_log.c:(.text+0x5483): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x54be): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: xfs_log.c:(.text+0x54e7): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x5522): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: xfs_log.c:(.text+0x557f): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x559c): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xfs_log_ticket_ungrant':
xfs_log.c:(.text+0x5798): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x57d6): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: xfs_log.c:(.text+0x57f9): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x5834): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xfs_log_reserve':
xfs_log.c:(.text+0x5d14): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x5d39): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: xfs_log.c:(.text+0x5da8): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x5dcd): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_inode_item.o: in function `xfs_inode_item_format':
xfs_inode_item.c:(.text+0x1da9): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log_recover.o: in function `xlog_set_state':
xfs_log_recover.c:(.text+0x1e3): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x1fd): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x21c): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x23b): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log_recover.o: in function `xlog_check_unmount_rec':
xfs_log_recover.c:(.text+0x460e): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log_recover.o:xfs_log_recover.c:(.text+0x461f): more undefined references to `atomic64_set_386' follow
/usr/bin/ld: fs/xfs/xfs_log_recover.o: in function `xlog_find_tail':
xfs_log_recover.c:(.text+0x57be): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x597a): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_inode_add_blocks':
inode.c:(.text+0x5c4): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_inode_sub_blocks':
inode.c:(.text+0x60f): undefined reference to `atomic64_sub_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_new_inode':
inode.c:(.text+0x738): undefined reference to `atomic64_inc_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_evict_inode':
inode.c:(.text+0x1d8e): undefined reference to `atomic64_dec_386'
/usr/bin/ld: fs/nilfs2/the_nilfs.o: in function `nilfs_find_or_create_root':
the_nilfs.c:(.text+0x17f0): undefined reference to `atomic64_set_386'
/usr/bin/ld: the_nilfs.c:(.text+0x17fb): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/nilfs2/segment.o: in function `nilfs_segctor_do_construct':
segment.c:(.text+0x4e4d): undefined reference to `atomic64_read_386'
/usr/bin/ld: segment.c:(.text+0x4e61): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/nilfs2/ifile.o: in function `nilfs_ifile_count_free_inodes':
ifile.c:(.text+0x380): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/btrfs/ctree.o: in function `__tree_mod_log_insert':
ctree.c:(.text+0x2f8): undefined reference to `atomic64_inc_return_386'
/usr/bin/ld: fs/btrfs/ctree.o: in function `btrfs_get_tree_mod_seq':
ctree.c:(.text+0x3f69): undefined reference to `atomic64_inc_return_386'
/usr/bin/ld: fs/btrfs/transaction.o: in function `join_transaction':
transaction.c:(.text+0x1109): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/btrfs/xattr.o: in function `btrfs_xattr_handler_set_prop':
xattr.c:(.text+0xec): undefined reference to `atomic64_read_386'
/usr/bin/ld: xattr.c:(.text+0x122): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/btrfs/xattr.o: in function `btrfs_setxattr_trans':
xattr.c:(.text+0xc24): undefined reference to `atomic64_read_386'
/usr/bin/ld: xattr.c:(.text+0xc5a): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/btrfs/volumes.o: in function `create_chunk':
volumes.c:(.text+0x242c): undefined reference to `atomic64_sub_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `btrfs_remove_chunk':
volumes.c:(.text+0x51e7): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `btrfs_shrink_device':
volumes.c:(.text+0x7977): undefined reference to `atomic64_sub_386'
/usr/bin/ld: volumes.c:(.text+0x7bcc): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `btrfs_init_new_device':
volumes.c:(.text+0xdc15): undefined reference to `atomic64_add_386'
/usr/bin/ld: volumes.c:(.text+0xeb10): undefined reference to `atomic64_sub_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `read_one_dev':
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
Re: [PATCH v4 15/27] drm/bridge: ti-sn65dsi86: Break GPIO and MIPI-to-eDP bridge into sub-drivers
by kernel test robot
Hi Douglas,
I love your patch! Yet something to improve:
[auto build test ERROR on next-20210416]
[cannot apply to wsa/i2c/for-next robh/for-next linus/master v5.12-rc7 v5.12-rc6 v5.12-rc5 v5.12-rc7]
[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/Douglas-Anderson/drm-Fix-EDID-re...
base: 18250b538735142307082e4e99e3ae5c12d44013
config: x86_64-randconfig-a002-20210416 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f549176ad976caa3e19edd036df9a7e12770af7c)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/a870b6e38fac3e5453e4b74fdfe6eb05c...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Douglas-Anderson/drm-Fix-EDID-reading-on-ti-sn65dsi86-solve-some-chicken-and-egg-problems/20210417-064243
git checkout a870b6e38fac3e5453e4b74fdfe6eb05c8be7ea7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
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/gpu/drm/bridge/ti-sn65dsi86.c:1308:1: error: redefinition of '__inittest'
module_auxiliary_driver(ti_sn_bridge_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:262:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:130:42: note: expanded from macro '\
module_init'
static inline initcall_t __maybe_unused __inittest(void) \
^
drivers/gpu/drm/bridge/ti-sn65dsi86.c:1190:1: note: previous definition is here
module_auxiliary_driver(ti_sn_gpio_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:262:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:130:42: note: expanded from macro '\
module_init'
static inline initcall_t __maybe_unused __inittest(void) \
^
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:1308:1: error: redefinition of 'init_module'
module_auxiliary_driver(ti_sn_bridge_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:262:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:132:6: note: expanded from macro '\
module_init'
int init_module(void) __copy(initfn) \
^
drivers/gpu/drm/bridge/ti-sn65dsi86.c:1190:1: note: previous definition is here
module_auxiliary_driver(ti_sn_gpio_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:262:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:132:6: note: expanded from macro '\
module_init'
int init_module(void) __copy(initfn) \
^
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:1308:1: error: redefinition of '__exittest'
module_auxiliary_driver(ti_sn_bridge_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:267:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:138:42: note: expanded from macro '\
module_exit'
static inline exitcall_t __maybe_unused __exittest(void) \
^
drivers/gpu/drm/bridge/ti-sn65dsi86.c:1190:1: note: previous definition is here
module_auxiliary_driver(ti_sn_gpio_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:267:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:138:42: note: expanded from macro '\
module_exit'
static inline exitcall_t __maybe_unused __exittest(void) \
^
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:1308:1: error: redefinition of 'cleanup_module'
module_auxiliary_driver(ti_sn_bridge_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:267:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:140:7: note: expanded from macro '\
module_exit'
void cleanup_module(void) __copy(exitfn) \
^
drivers/gpu/drm/bridge/ti-sn65dsi86.c:1190:1: note: previous definition is here
module_auxiliary_driver(ti_sn_gpio_driver);
^
include/linux/auxiliary_bus.h:71:2: note: expanded from macro 'module_auxiliary_driver'
module_driver(__auxiliary_driver, auxiliary_driver_register, auxiliary_driver_unregister)
^
include/linux/device/driver.h:267:3: note: expanded from macro 'module_driver'
} \
^
include/linux/module.h:140:7: note: expanded from macro '\
module_exit'
void cleanup_module(void) __copy(exitfn) \
^
4 errors generated.
vim +/__inittest +1308 drivers/gpu/drm/bridge/ti-sn65dsi86.c
1307
> 1308 module_auxiliary_driver(ti_sn_bridge_driver);
1309
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
Re: [PATCH] MIPS: Fix cmdline "mem=" parameter parsing
by kernel test robot
Hi Youling,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.12-rc8 next-20210419]
[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/Youling-Tang/MIPS-Fix-cmdline-me...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git bf05bf16c76bb44ab5156223e1e58e26dfe30a88
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.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/c9cec6a7cf36ea04b1d8aca273a27e920...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Youling-Tang/MIPS-Fix-cmdline-mem-parameter-parsing/20210419-185311
git checkout c9cec6a7cf36ea04b1d8aca273a27e92007085e2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 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 >>):
arch/mips/kernel/setup.c: In function 'early_parse_mem':
>> arch/mips/kernel/setup.c:362:33: error: implicit declaration of function 'pa_to_nid'; did you mean 'page_to_nid'? [-Werror=implicit-function-declaration]
362 | memblock_add_node(start, size, pa_to_nid(start));
| ^~~~~~~~~
| page_to_nid
cc1: some warnings being treated as errors
vim +362 arch/mips/kernel/setup.c
342
343 static int __init early_parse_mem(char *p)
344 {
345 phys_addr_t start, size;
346
347 /*
348 * If a user specifies memory size, we
349 * blow away any automatically generated
350 * size.
351 */
352 if (usermem == 0) {
353 usermem = 1;
354 memblock_remove(memblock_start_of_DRAM(),
355 memblock_end_of_DRAM() - memblock_start_of_DRAM());
356 }
357 start = 0;
358 size = memparse(p, &p);
359 if (*p == '@')
360 start = memparse(p + 1, &p);
361
> 362 memblock_add_node(start, size, pa_to_nid(start));
363
364 return 0;
365 }
366 early_param("mem", early_parse_mem);
367
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[PATCH] Remove code for disabling ID protection
by Kelvin Cao
ID protection is a static setting in the Switchtec config file. With
ID protection enabled, only posted requests with requester IDs in the
requester ID table will be allowed to access the NT windows. Otherwise
all posted requests are allowed. ID protect is not applicable to
non-posted requests.
There's no need to disable it in the driver as we have already configured
the requester IDs. The driver works no matter this setting is enabled or
not.
Signed-off-by: Kelvin Cao <kelvin.cao(a)microchip.com>
---
drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 3 ---
include/linux/switchtec.h | 2 --
2 files changed, 5 deletions(-)
diff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
index 4c6eb61a6ac6..700a6218e72e 100644
--- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
+++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
@@ -966,9 +966,6 @@ static int config_req_id_table(struct switchtec_ntb *sndev,
if (rc)
return rc;
- iowrite32(NTB_PART_CTRL_ID_PROT_DIS1,
- &mmio_ctrl->partition_ctrl);
-
for (i = 0; i < count; i++) {
iowrite32(req_ids[i] << 16 | NTB_CTRL_REQ_ID_EN,
&mmio_ctrl->req_id_table[i]);
diff --git a/include/linux/switchtec.h b/include/linux/switchtec.h
index 082f1d51957a..76dc6d2085eb 100644
--- a/include/linux/switchtec.h
+++ b/include/linux/switchtec.h
@@ -336,8 +336,6 @@ enum {
NTB_CTRL_REQ_ID_EN = 1 << 0,
NTB_CTRL_LUT_EN = 1 << 0,
-
- NTB_PART_CTRL_ID_PROT_DIS = 1 << 0,
};
struct ntb_ctrl_regs {
--
2.25.1
1 year, 5 months
[PATCH] Remove code for disabling ID protection
by Kelvin Cao
ID protection is a static setting in the Switchtec config file. With
ID protection enabled, only posted requests with requester IDs in the
requester ID table will be allowed to access the NT windows. Otherwise
all posted requests are allowed. ID protect is not applicable to
non-posted requests.
There's no need to disable it in the driver as we have already configured
the requester IDs. The driver works no matter this setting is enabled or
not.
Signed-off-by: Kelvin Cao <kelvin.cao(a)microchip.com>
---
drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 3 ---
include/linux/switchtec.h | 2 --
2 files changed, 5 deletions(-)
diff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
index 4c6eb61a6ac6..700a6218e72e 100644
--- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
+++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
@@ -966,9 +966,6 @@ static int config_req_id_table(struct switchtec_ntb *sndev,
if (rc)
return rc;
- iowrite32(NTB_PART_CTRL_ID_PROT_DIS,
- &mmio_ctrl->partition_ctrl);
-
for (i = 0; i < count; i++) {
iowrite32(req_ids[i] << 16 | NTB_CTRL_REQ_ID_EN,
&mmio_ctrl->req_id_table[i]);
diff --git a/include/linux/switchtec.h b/include/linux/switchtec.h
index 082f1d51957a..76dc6d2085eb 100644
--- a/include/linux/switchtec.h
+++ b/include/linux/switchtec.h
@@ -336,8 +336,6 @@ enum {
NTB_CTRL_REQ_ID_EN = 1 << 0,
NTB_CTRL_LUT_EN = 1 << 0,
-
- NTB_PART_CTRL_ID_PROT_DIS = 1 << 0,
};
struct ntb_ctrl_regs {
--
2.25.1
1 year, 5 months
[PATCH] Remove code for disabling ID protection
by Kelvin Cao
ID protection is a static setting in the Switchtec config file. With
ID protection enabled, only posted requests with requester IDs in the
requester ID table will be allowed to access the NT windows. Otherwise
all posted requests are allowed. ID protect is not applicable to
non-posted requests.
There's no need to disable it in the driver as we have already configured
the requester IDs. The driver works no matter this setting is enabled or
not.
Signed-off-by: Kelvin Cao <kelvin.cao(a)microchip.com>
---
drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 3 ---
include/linux/switchtec.h | 2 --
2 files changed, 5 deletions(-)
diff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
index 4c6eb61a6ac6..700a6218e72e 100644
--- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
+++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
@@ -966,9 +966,6 @@ static int config_req_id_table(struct switchtec_ntb *sndev,
if (rc)
return rc;
- iowrite32(NTB_PART_CTRL_ID_PROT_DIS,
- &mmio_ctrl->partition_ctrl);
-
for (i = 0; i < count; i++) {
iowrite32(req_ids[i] << 16 | NTB_CTRL_REQ_ID_EN,
&mmio_ctrl->req_id_table[i]);
diff --git a/include/linux/switchtec.h b/include/linux/switchtec.h
index 082f1d51957a..76dc6d2085eb 100644
--- a/include/linux/switchtec.h
+++ b/include/linux/switchtec.h
@@ -336,8 +336,6 @@ enum {
NTB_CTRL_REQ_ID_EN = 1 << 0,
NTB_CTRL_LUT_EN = 1 << 0,
-
- NTB_PART_CTRL_ID_PROT_DIS = 1 << 0,
};
struct ntb_ctrl_regs {
--
2.25.1
1 year, 5 months
[linux-next:master 105/13745] drivers/irqchip/irq-renesas-h8s.c:54:35: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 50b8b1d699ac313c0a07a3c185ffb23aecab8abb
commit: 6b9a5f88e90983c7725ee56437b5f6ae8974152d [105/13745] Merge remote-tracking branch 'origin/master' into h8300-next
config: mips-randconfig-s032-20210419 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-330-g09ec74f6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 6b9a5f88e90983c7725ee56437b5f6ae8974152d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
drivers/irqchip/irq-renesas-h8s.c:48:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:48:14: sparse: expected void [noderef] __iomem *addr
drivers/irqchip/irq-renesas-h8s.c:48:14: sparse: got void *
>> drivers/irqchip/irq-renesas-h8s.c:54:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:54:35: sparse: expected void const volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:54:35: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:56:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:56:35: sparse: expected void volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:56:35: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:71:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:71:14: sparse: expected void [noderef] __iomem *addr
drivers/irqchip/irq-renesas-h8s.c:71:14: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:78:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:78:35: sparse: expected void const volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:78:35: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:80:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:80:35: sparse: expected void volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:80:35: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:91:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:91:35: sparse: expected void const volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:91:35: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:93:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:93:35: sparse: expected void volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:93:35: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:123:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *static [toplevel] ipr_base @@ got void [noderef] __iomem * @@
drivers/irqchip/irq-renesas-h8s.c:123:18: sparse: expected void *static [toplevel] ipr_base
drivers/irqchip/irq-renesas-h8s.c:123:18: sparse: got void [noderef] __iomem *
drivers/irqchip/irq-renesas-h8s.c:124:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *static [toplevel] icr_base @@ got void [noderef] __iomem * @@
drivers/irqchip/irq-renesas-h8s.c:124:18: sparse: expected void *static [toplevel] icr_base
drivers/irqchip/irq-renesas-h8s.c:124:18: sparse: got void [noderef] __iomem *
drivers/irqchip/irq-renesas-h8s.c:130:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:130:43: sparse: expected void volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:130:43: sparse: got void *
drivers/irqchip/irq-renesas-h8s.c:132:30: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
drivers/irqchip/irq-renesas-h8s.c:132:30: sparse: expected void volatile [noderef] __iomem *mem
drivers/irqchip/irq-renesas-h8s.c:132:30: sparse: got void *
vim +54 drivers/irqchip/irq-renesas-h8s.c
8a7644821ae00b Yoshinori Sato 2015-05-10 36
8a7644821ae00b Yoshinori Sato 2015-05-10 37 static void h8s_disable_irq(struct irq_data *data)
8a7644821ae00b Yoshinori Sato 2015-05-10 38 {
8a7644821ae00b Yoshinori Sato 2015-05-10 39 int pos;
558e6694cd4da8 Yoshinori Sato 2018-08-13 40 void __iomem *addr;
8a7644821ae00b Yoshinori Sato 2015-05-10 41 unsigned short pri;
beab3d5cb0e14e Yoshinori Sato 2020-04-15 42 int irq = data->irq - 16;
beab3d5cb0e14e Yoshinori Sato 2020-04-15 43 unsigned short ier;
beab3d5cb0e14e Yoshinori Sato 2020-04-15 44
beab3d5cb0e14e Yoshinori Sato 2020-04-15 45 if (irq < 0)
beab3d5cb0e14e Yoshinori Sato 2020-04-15 46 return;
8a7644821ae00b Yoshinori Sato 2015-05-10 47
beab3d5cb0e14e Yoshinori Sato 2020-04-15 48 addr = IPRA + ((ipr_table[irq] & 0xf0) >> 3);
beab3d5cb0e14e Yoshinori Sato 2020-04-15 49 pos = (ipr_table[irq] & 0x0f) * 4;
8a7644821ae00b Yoshinori Sato 2015-05-10 50 pri = ~(0x000f << pos);
2c496a11304da8 Yoshinori Sato 2019-12-26 51 pri &= __raw_readw(addr);
2c496a11304da8 Yoshinori Sato 2019-12-26 52 __raw_writew(pri, addr);
beab3d5cb0e14e Yoshinori Sato 2020-04-15 53 if (irq < 16) {
beab3d5cb0e14e Yoshinori Sato 2020-04-15 @54 ier = __raw_readw(IER);
beab3d5cb0e14e Yoshinori Sato 2020-04-15 55 ier &= ~(1 << irq);
beab3d5cb0e14e Yoshinori Sato 2020-04-15 56 __raw_writew(ier, IER);
beab3d5cb0e14e Yoshinori Sato 2020-04-15 57 }
8a7644821ae00b Yoshinori Sato 2015-05-10 58 }
8a7644821ae00b Yoshinori Sato 2015-05-10 59
:::::: The code at line 54 was first introduced by commit
:::::: beab3d5cb0e14e6397c4e596b3dbf1d36bf49d06 irq-renesas-h8s: Fix external interrupt control.
:::::: TO: Yoshinori Sato <ysato(a)users.sourceforge.jp>
:::::: CC: Yoshinori Sato <ysato(a)users.sourceforge.jp>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months