riscv: Fixup static_obj() fail
When enable LOCKDEP, static_obj() will cause error. Because some
__initdata static variables is before _stext:
static int static_obj(const void *obj)
{
unsigned long start = (unsigned long) &_stext,
end = (unsigned long) &_end,
addr = (unsigned long) obj;
/*
* static variable?
*/
if ((addr >= start) && (addr < end))
return 1;
[ 0.067192] INFO: trying to register non-static key.
[ 0.067325] the code is fine but needs lockdep annotation.
[ 0.067449] turning off the locking correctness validator.
[ 0.067718] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.7.0-rc7-dirty #44
[ 0.067945] Call Trace:
[ 0.068369] [<
ffffffe00020323c>] walk_stackframe+0x0/0xa4
[ 0.068506] [<
ffffffe000203422>] show_stack+0x2a/0x34
[ 0.068631] [<
ffffffe000521e4e>] dump_stack+0x94/0xca
[ 0.068757] [<
ffffffe000255a4e>] register_lock_class+0x5b8/0x5bc
[ 0.068969] [<
ffffffe000255abe>] __lock_acquire+0x6c/0x1d5c
[ 0.069101] [<
ffffffe0002550fe>] lock_acquire+0xae/0x312
[ 0.069228] [<
ffffffe000989a8e>] _raw_spin_lock_irqsave+0x40/0x5a
[ 0.069357] [<
ffffffe000247c64>] complete+0x1e/0x50
[ 0.069479] [<
ffffffe000984c38>] rest_init+0x1b0/0x28a
[ 0.069660] [<
ffffffe0000016a2>] 0xffffffe0000016a2
[ 0.069779] [<
ffffffe000001b84>] 0xffffffe000001b84
[ 0.069953] [<
ffffffe000001092>] 0xffffffe000001092
static __initdata DECLARE_COMPLETION(kthreadd_done);
noinline void __ref rest_init(void)
{
...
complete(&kthreadd_done);
Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>