ARM: SMP: send IPI in backtrace only for SMP

Bug in backtrace leads to NULL Pointer dereference with CONFIG_SMP_ON_UP
while sending IPI, fix it.
-----------------------------------------------------------------
[  301.992943] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[  302.023626] pgd = c0004000
[  302.033985] [00000000] *pgd=00000000
[  302.048057] Internal error: Oops: 80000007 [#1] PREEMPT SMP ARM
[  302.070273] Modules linked in:
[  302.082206] CPU: 0    Not tainted  (3.4.0+ #12)
[  302.099386] PC is at 0x0
[  302.109251] LR is at smp_send_all_cpu_backtrace+0x88/0xe4
[  302.129993] pc : [<00000000>]    lr : [<c00144f0>]    psr: 20000193
[  302.130522] sp : c02edd80  ip : 00000000  fp : 7fffffff
[  302.173742] r10: 00000000  r9 : c02ee0c0  r8 : 19484bea
[  302.193789] r7 : 00002710  r6 : 00000000  r5 : 00000000  r4 : c031d034
[  302.218816] r3 : c030ad58  r2 : 00010001  r1 : 00000007  r0 : c031d044
[  302.243885] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[  302.272171] Control: 10c5387d  Table: 2f404059  DAC: 00000015
[  302.293986]
[  302.294243] LR: 0xc0014470:
[  302.310233] 4470  e3c20d7f e30d4034 e3c0303f e34c4031 e3a00000 e284101c e5935014 eb05c24f
[  302.341559] 4490  e2503000 18bd80f8 e30567a4 e34c6021 e1a01004 e1a00005 e5962000 e1a06003
[  302.372890] 44b0  e3027710 e592e000 e5a1e010 eb05b841 e1a01005 e30a05bc e34c0027 eb07ed21
[  302.404222] 44d0  eb07ec87 e30a05e0 e34c0027 eb07ed1d e1a00004 e490c010 e3a01007 e12fff3c
[  302.435554] 44f0  ea000008 eb05bcab e594c010 e30605b0 e3400666 e31c000f 0a000009 eb05bca5
[  302.466888] 4510  e1560007 0a000006 e5941010 e2863001 e30605b0 e2836001 e311000f e3400666
[  302.498220] 4530  1affffef e3a00000 e59f1008 eb05b821 f57ff05f e8bd80f8 c031d050 e30537a8
[  302.529555] 4550  e34c3021 e92d4ff0 e5938000 e3067750 e30495c8 e30f6d00 e24dd00c e241b001
[  302.560973]
[  302.561235] SP: 0xc02edd00:
[  302.577222] dd00  392e3130 36353137 00205d36 00000000 c02edd7c c020f974 c02ca964 c02edd2c
[  302.608555] dd20  00000000 00000000 20000193 ffffffff c02edd6c c000eef8 c031d044 00000007
[  302.639897] dd40  00010001 c030ad58 c031d034 00000000 00000000 00002710 19484bea c02ee0c0
[  302.671221] dd60  00000000 7fffffff 00000000 c02edd80 c00144f0 00000000 20000193 ffffffff
[  302.702565] dd80  c030ad58 c05aca98 c0306764 c030dd00 c030dd00 c007c664 295f6000 00001dc6
[  302.733898] dda0  00000017 c0306970 00000000 c0306970 c02e9a98 19484bea 00000046 00000000
[  302.765220] ddc0  7fffffff c007cc58 c02ec000 c0307c80 00000000 00000000 19484bea c0033100
[  302.796555] dde0  c05ac888 c05ac888 c0341c40 c0305f40 19484bea c0060f78 c05ac888 c05ac738
[  302.827969]
[  302.828233] R0: 0xc031cfc4:
[  302.844218] cfc4  006c3776 00000000 c027eb38 00000000 410fc051 00000000 00000000 00000000
[  302.875563] cfe4  00000000 00000000 00000000 00000000 00000000 00000000 00000000 c030cac0
[  302.906895] d004  c0308d90 00000000 003.299225] ad98  00000004 ffffffff 00000000 00000001 00000000 00000000
ffffffff 00000001
[  303.330564] adb8  00000000 00000000 c030adc0 c030adc0 00000000 00000001 c0280068 c028006c
[  303.361958]
[  303.362221] R4: 0xc031cfb4:
[  303.378221] cfb4  00000000 00000000 00000000 c001e658 006c3776 0000ee000)
[  303.936303] dd80: c030ad58 c05aca98 c0306764 c030dd00 c030dd00 c007c664 295f6000 00001dc6
[  303.967588] dda0: 00000017 c0306970 00000000 c0306970 c02e9a98 19484bea 00000046 00000000
[  303.998940] ddc0: 7fffffff c007cc58 c02ec000 c0307c80 00000000 00000000 19484bea c0033100
[  304.030275] 04.500235] dfc0: c02e55ec c02ca964 00000000 00000000 c02ca448 00000000 00000000 c02e55ec
[  304.531597] dfe0: 10c5387d c0305ea0 c02e55bc c0308d04 20204059 20208040 00000000 00000000
[  304.563391] [<c00144f0>] (smp_send_all_cpu_backtrace+0x88/0xe4) from [<c007c664>] (__rcu_pending+0x17c/0x5ac)
[  30406] [<c0010108>] (handle_IRQ+0x5c/0xc0) from [<c0008530>] (gic_handle_irq+0x48/0xe8)
[  305.033405] [<c0008530>] (gic_handle_irq+0x48/0xe8) from [<c000ee00>] (__irq_svc+0x40/0x70)
[  305.064749] Exception stack(0xc02edf48 to 0xc02edf90)
[  305.084483] df40:                   00000000 00000000 a00000c02ee0c0  r8 : 80000007
[  305.544476] r7 : c0307c80  r6 : c02edb7c  r5 : c0305ef8  r4 : 000f4240
[  305.569465] r3 : 00000000  r2 : c031d034  r1 : 00000006  r0 : c02edb7c
[  305.594485] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[  305.622824] Control: 10c5387d  Table: 2f408 00010000 c02ec000 c02ec2f0 0000000b c027bb60 c02edd38 00000000
[  306.414224] dbdc  00000000 80000007 00000000 00000000 c001addc 80000007 00000000 c02edd38
[  306.445623]
[  306.445886] R2: 0xc031cfb4:
[  306.461894] cfb4  00000000 00000000 00000000 c001e658 006c3776 00000000 c027eb38 00000000
[ bc  c02ec008 00010000 c02ec000 c02ec2f0 0000000b c027bb60 c02edd38 00000000
[  307.215227] dbdc  00000000 80000007 00000000 00000000 c001addc 80000007 00000000 c02edd38
[  307.246620]
[  307.246883] R7: 0xc0307c00:
[  307.262891] 7c00  c01b95ac c0213788 c01b95b8 c0213794 c01b9664 c02137a0 c01b966c b80: c031f380 c02edd38
00000000 c020f7ac c02ee0c0 c02edbbc 7fffffff c02ec2f0
[  308.150942] dba0: c02edd38 00000000 c0307c80 80000007 c031d018 c0013394 c027a19c c02ec008
[  308.182258] dbc0: 00010000 c02ec000 c02ec2f0 0000000b c027bb60 c02edd38 00000000 00000000
[  308.213580] dbe0: 80000007 000000004aa54 00000046 c02eff00
[  308.934261] dec0: c02eff54 cfa00540 00000000 d0804010 410fc051 00000027 00000000 c0074a9c
[  308.965605] dee0: c02eff00 c02eff54 00000027 c0077680 c0306970 c02e9f44 00000027 c00743ec
[  308.996956] df00: 00000178 c0010108 c0305ec8 d080400c c02edf48 c0305ec8 d0804010 c00085364>]
(__rcu_pending+0x17c/0x5ac) from [<c007cc58>] (rcu_check_callbacks+0x1c4/0x1e0)
[  309.664887] [<c007cc58>] (rcu_check_callbacks+0x1c4/0x1e0) from [<c0033100>] (update_process_times+0x38/0x68)
[  309.702911] [<c0033100>] (update_process_times+0x38/0x68) from [<c0060f78>]
(tick_sched_timer+0x9c/0xk(0xc02edf48 to 0xc02edf90)

Change-Id: Icfd3585361c88ada6550f22b316af19e1a2b7721
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
1 file changed