arch/sh/kernel/dwarf.c:1209:0: error: unterminated argument list invoking macro "WARN_ON"

From: kbuild test robot
Date: Tue Jan 01 2019 - 20:18:54 EST


Hi Steven,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8e143b90e4d45cca3dc53760d3cfab988bc74571
commit: cec8d0e7f06e08b981e9d61bef267c8c36d536f5 sh: ftrace: Use ftrace_graph_get_ret_stack() instead of curr_ret_stack
date: 11 days ago
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout cec8d0e7f06e08b981e9d61bef267c8c36d536f5
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sh

All errors (new ones prefixed by >>):

arch/sh/kernel/dwarf.c: In function 'dwarf_unwind_stack':
>> arch/sh/kernel/dwarf.c:1209:0: error: unterminated argument list invoking macro "WARN_ON"
early_initcall(dwarf_unwinder_init);

>> arch/sh/kernel/dwarf.c:622:3: error: 'WARN_ON' undeclared (first use in this function); did you mean 'WMARK_LOW'?
WARN_ON(ftrace_graph_get_ret_stack(current, 1);
^~~~~~~
WMARK_LOW
arch/sh/kernel/dwarf.c:622:3: note: each undeclared identifier is reported only once for each function it appears in
>> arch/sh/kernel/dwarf.c:622:3: error: expected ';' at end of input
>> arch/sh/kernel/dwarf.c:622:3: error: expected declaration or statement at end of input
>> arch/sh/kernel/dwarf.c:622:3: error: expected declaration or statement at end of input
>> arch/sh/kernel/dwarf.c:584:16: error: unused variable 'addr' [-Werror=unused-variable]
unsigned long addr;
^~~~
>> arch/sh/kernel/dwarf.c:583:20: error: unused variable 'reg' [-Werror=unused-variable]
struct dwarf_reg *reg;
^~~
>> arch/sh/kernel/dwarf.c:582:20: error: unused variable 'fde' [-Werror=unused-variable]
struct dwarf_fde *fde;
^~~
>> arch/sh/kernel/dwarf.c:581:20: error: unused variable 'cie' [-Werror=unused-variable]
struct dwarf_cie *cie;
^~~
>> arch/sh/kernel/dwarf.c:580:22: error: unused variable 'frame' [-Werror=unused-variable]
struct dwarf_frame *frame;
^~~~~
arch/sh/kernel/dwarf.c:622:3: error: control reaches end of non-void function [-Werror=return-type]
WARN_ON(ftrace_graph_get_ret_stack(current, 1);
^~~~~~~
At top level:
>> arch/sh/kernel/dwarf.c:399:12: error: 'dwarf_cfa_execute_insns' defined but not used [-Werror=unused-function]
static int dwarf_cfa_execute_insns(unsigned char *insn_start,
^~~~~~~~~~~~~~~~~~~~~~~
>> arch/sh/kernel/dwarf.c:306:26: error: 'dwarf_lookup_cie' defined but not used [-Werror=unused-function]
static struct dwarf_cie *dwarf_lookup_cie(unsigned long cie_ptr)
^~~~~~~~~~~~~~~~
>> arch/sh/kernel/dwarf.c:226:12: error: 'dwarf_read_encoded_value' defined but not used [-Werror=unused-function]
static int dwarf_read_encoded_value(char *addr, unsigned long *val,
^~~~~~~~~~~~~~~~~~~~~~~~
>> arch/sh/kernel/dwarf.c:107:26: error: 'dwarf_frame_reg' defined but not used [-Werror=unused-function]
static struct dwarf_reg *dwarf_frame_reg(struct dwarf_frame *frame,
^~~~~~~~~~~~~~~
>> arch/sh/kernel/dwarf.c:41:27: error: 'dwarf_reg_cachep' defined but not used [-Werror=unused-variable]
static struct kmem_cache *dwarf_reg_cachep;
^~~~~~~~~~~~~~~~
>> arch/sh/kernel/dwarf.c:38:27: error: 'dwarf_frame_cachep' defined but not used [-Werror=unused-variable]
static struct kmem_cache *dwarf_frame_cachep;
^~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

vim +/WARN_ON +1209 arch/sh/kernel/dwarf.c

a6a2f2ad Matt Fleming 2009-10-09 1160
a6a2f2ad Matt Fleming 2009-10-09 1161 /**
a6a2f2ad Matt Fleming 2009-10-09 1162 * dwarf_unwinder_init - initialise the dwarf unwinder
a6a2f2ad Matt Fleming 2009-10-09 1163 *
a6a2f2ad Matt Fleming 2009-10-09 1164 * Build the data structures describing the .dwarf_frame section to
a6a2f2ad Matt Fleming 2009-10-09 1165 * make it easier to lookup CIE and FDE entries. Because the
a6a2f2ad Matt Fleming 2009-10-09 1166 * .eh_frame section is packed as tightly as possible it is not
a6a2f2ad Matt Fleming 2009-10-09 1167 * easy to lookup the FDE for a given PC, so we build a list of FDE
a6a2f2ad Matt Fleming 2009-10-09 1168 * and CIE entries that make it easier.
a6a2f2ad Matt Fleming 2009-10-09 1169 */
a6a2f2ad Matt Fleming 2009-10-09 1170 static int __init dwarf_unwinder_init(void)
a6a2f2ad Matt Fleming 2009-10-09 1171 {
8a37f520 Paul Mundt 2010-05-25 1172 int err = -ENOMEM;
a6a2f2ad Matt Fleming 2009-10-09 1173
a6a2f2ad Matt Fleming 2009-10-09 1174 dwarf_frame_cachep = kmem_cache_create("dwarf_frames",
8ec006c5 Paul Mundt 2009-10-12 1175 sizeof(struct dwarf_frame), 0,
75f296d9 Levin, Alexander (Sasha Levin 2017-11-15 1176) SLAB_PANIC | SLAB_HWCACHE_ALIGN, NULL);
8ec006c5 Paul Mundt 2009-10-12 1177
a6a2f2ad Matt Fleming 2009-10-09 1178 dwarf_reg_cachep = kmem_cache_create("dwarf_regs",
8ec006c5 Paul Mundt 2009-10-12 1179 sizeof(struct dwarf_reg), 0,
75f296d9 Levin, Alexander (Sasha Levin 2017-11-15 1180) SLAB_PANIC | SLAB_HWCACHE_ALIGN, NULL);
a6a2f2ad Matt Fleming 2009-10-09 1181
1cf370c6 David Rientjes 2015-04-14 1182 dwarf_frame_pool = mempool_create_slab_pool(DWARF_FRAME_MIN_REQ,
a6a2f2ad Matt Fleming 2009-10-09 1183 dwarf_frame_cachep);
8a37f520 Paul Mundt 2010-05-25 1184 if (!dwarf_frame_pool)
8a37f520 Paul Mundt 2010-05-25 1185 goto out;
a6a2f2ad Matt Fleming 2009-10-09 1186
1cf370c6 David Rientjes 2015-04-14 1187 dwarf_reg_pool = mempool_create_slab_pool(DWARF_REG_MIN_REQ,
a6a2f2ad Matt Fleming 2009-10-09 1188 dwarf_reg_cachep);
8a37f520 Paul Mundt 2010-05-25 1189 if (!dwarf_reg_pool)
8a37f520 Paul Mundt 2010-05-25 1190 goto out;
a6a2f2ad Matt Fleming 2009-10-09 1191
a6a2f2ad Matt Fleming 2009-10-09 1192 err = dwarf_parse_section(__start_eh_frame, __stop_eh_frame, NULL);
a6a2f2ad Matt Fleming 2009-10-09 1193 if (err)
a6a2f2ad Matt Fleming 2009-10-09 1194 goto out;
a6a2f2ad Matt Fleming 2009-10-09 1195
bd353861 Matt Fleming 2009-08-14 1196 err = unwinder_register(&dwarf_unwinder);
bd353861 Matt Fleming 2009-08-14 1197 if (err)
bd353861 Matt Fleming 2009-08-14 1198 goto out;
bd353861 Matt Fleming 2009-08-14 1199
8a37f520 Paul Mundt 2010-05-25 1200 dwarf_unwinder_ready = 1;
8a37f520 Paul Mundt 2010-05-25 1201
97f361e2 Paul Mundt 2009-08-17 1202 return 0;
bd353861 Matt Fleming 2009-08-14 1203
bd353861 Matt Fleming 2009-08-14 1204 out:
bd353861 Matt Fleming 2009-08-14 1205 printk(KERN_ERR "Failed to initialise DWARF unwinder: %d\n", err);
bd353861 Matt Fleming 2009-08-14 1206 dwarf_unwinder_cleanup();
8a37f520 Paul Mundt 2010-05-25 1207 return err;
bd353861 Matt Fleming 2009-08-14 1208 }
97f361e2 Paul Mundt 2009-08-17 @1209 early_initcall(dwarf_unwinder_init);

:::::: The code at line 1209 was first introduced by commit
:::::: 97f361e2498ada54b48a235619eaf5af8e46427e sh: unwinder: Move initialization to early_initcall() and tidy up locking.

:::::: TO: Paul Mundt <lethal@xxxxxxxxxxxx>
:::::: CC: Paul Mundt <lethal@xxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip