Re: [v3 PATCH 8/8] RISC-V: Assign hwcap only according to boot cpu.

From: Andreas Schwab
Date: Mon Feb 11 2019 - 08:23:21 EST


On Feb 07 2019, Atish Patra <atish.patra@xxxxxxx> wrote:

> + while ((node = of_find_node_by_type(node, "cpu"))) {
> + if (!node) {

That can never be true.

> + pr_warn("Unable to find \"cpu\" devicetree entry");
> + return;
> + }
> +
> + hartid = riscv_of_processor_hartid(node);
> + if (hartid < 0)
> + continue;
>
> - if (of_property_read_string(node, "riscv,isa", &isa)) {
> - pr_warning("Unable to find \"riscv,isa\" devicetree entry");
> + if (of_property_read_string(node, "riscv,isa", &isa)) {
> + pr_warn("Unable to find \"riscv,isa\" devicetree entry");
> + of_node_put(node);
> + return;
> + }
> of_node_put(node);

[ 0.000000] OF: ERROR: Bad of_node_put() on /cpus/cpu@1
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.0.0-rc6-00020-g5903f30f1310 #12
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffe001076812>] walk_stackframe+0x0/0xa4
[ 0.000000] [<ffffffe001076a12>] show_stack+0x2a/0x34
[ 0.000000] [<ffffffe0015cf9ea>] dump_stack+0x62/0x7c
[ 0.000000] [<ffffffe00149fed4>] of_node_release+0xbe/0xc0
[ 0.000000] [<ffffffe0015d465a>] kobject_put+0xa6/0x1e8
[ 0.000000] [<ffffffe00149f44e>] of_node_put+0x16/0x20
[ 0.000000] [<ffffffe00149b45e>] of_find_node_by_type+0x66/0xa4
[ 0.000000] [<ffffffe0010755ca>] riscv_fill_hwcap+0x14c/0x1ce
[ 0.000000] [<ffffffe0000026d4>] 0xffffffe0000026d4
[ 0.000000] [<ffffffe0000006ec>] 0xffffffe0000006ec
[ 0.000000] [<ffffffe000000076>] 0xffffffe000000076

Andreas.

--
Andreas Schwab, SUSE Labs, schwab@xxxxxxx
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."