Commit 6d913c3
clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier
Whilst testing cpu hotplug events on kernel configured with
DEBUG_PREEMPT and DEBUG_ATOMIC_SLEEP we get following BUG message,
caused by calling request_irq() and free_irq() in the context of
hotplug notification (which is in this case atomic context).
[ 0.091617] [c0] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[ 0.091828] [c0] Running under secure firmware.
[ 0.091901] [c0] Setting up static identity map for 0xc0618b98 - 0xc0618bf0
[ 0.091962] [c0] Exynos-SnapShot: exynos_ss_init failed
[ 0.112330] [c0] ftrace: Allocated trace_printk buffers
[ 0.134323] [c1] CPU1: Booted secondary processor
[ 0.134354] [c1] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[ 0.134402] [c1] BUG: sleeping function called from invalid context at mm/page_alloc.c:2638
[ 0.134518] [c1] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper/1
[ 0.134560] [c1] no locks held by swapper/1/0.
[ 0.134598] [c1] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.10.82-xu43hk #11
[ 0.134640] [c1] Backtrace:
[ 0.134694] [c1] [<c00132e4>] (dump_backtrace+0x0/0x114) from [<c0013554>] (show_stack+0x20/0x24)
[ 0.134744] [c1] r7:00000000 r6:00000000 r5:df2da000 r4:c098c9c0
[ 0.134826] [c1] [<c0013534>] (show_stack+0x0/0x24) from [<c06124d8>] (dump_stack+0x24/0x28)
[ 0.134887] [c1] [<c06124b4>] (dump_stack+0x0/0x28) from [<c00617f8>] (__might_sleep+0x144/0x148)
[ 0.134952] [c1] [<c00616b4>] (__might_sleep+0x0/0x148) from [<c00f5590>] (__alloc_pages_nodemask+0x2a0/0xaac)
[ 0.135006] [c1] r5:00080008 r4:002012d0
[ 0.135065] [c1] [<c00f52f0>] (__alloc_pages_nodemask+0x0/0xaac) from [<c012875c>] (new_slab+0x7c/0x22c)
[ 0.135132] [c1] [<c01286e0>] (new_slab+0x0/0x22c) from [<c012a92c>] (__slab_alloc.isra.14.constprop.18+0x558/0x61c)
[ 0.135187] [c1] r9:00000000 r8:df001f00 r7:014f7000 r6:00000000 r5:c1dee9e0
[ 0.135187] r4:c08f79e0
[ 0.135295] [c1] [<c012a3d4>] (__slab_alloc.isra.14.constprop.18+0x0/0x61c) from [<c012af3c>] (kmem_cache_alloc_trace+0x194/0x1c8)
[ 0.135367] [c1] [<c012ada8>] (kmem_cache_alloc_trace+0x0/0x1c8) from [<c00b04e0>] (request_threaded_irq+0x78/0x138)
[ 0.135433] [c1] [<c00b0468>] (request_threaded_irq+0x0/0x138) from [<c0610f7c>] (exynos4_local_timer_setup+0x100/0x160)
[ 0.135507] [c1] [<c0610e7c>] (exynos4_local_timer_setup+0x0/0x160) from [<c060de3c>] (percpu_timer_setup+0xa4/0xb0)
[ 0.135562] [c1] r8:4000406a r7:c0968c84 r6:10c0387d r5:c09148c0 r4:c1de9280
[ 0.135655] [c1] [<c060dd98>] (percpu_timer_setup+0x0/0xb0) from [<c060e1e4>] (secondary_start_kernel+0x118/0x134)
[ 0.135710] [c1] r5:c09148c0 r4:00000001
[ 0.135765] [c1] [<c060e0cc>] (secondary_start_kernel+0x0/0x134) from [<4060d784>] (0x4060d784)
[ 0.135815] [c1] r5:00000015 r4:5f13006a
[ 0.144239] [c2] CPU2: Booted secondary processor
[ 0.144267] [c2] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[ 0.154295] [c3] CPU3: Booted secondary processor
Change-Id: I78ee2d3997b2137e3c19432e17b3e3672523cf431 parent 2366f77 commit 6d913c3
1 file changed
Lines changed: 39 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
413 | 413 | | |
414 | 414 | | |
415 | 415 | | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
416 | 432 | | |
417 | 433 | | |
418 | 434 | | |
| |||
433 | 449 | | |
434 | 450 | | |
435 | 451 | | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
436 | 455 | | |
437 | | - | |
438 | | - | |
439 | | - | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | 456 | | |
| 457 | + | |
445 | 458 | | |
446 | 459 | | |
447 | 460 | | |
| |||
456 | 469 | | |
457 | 470 | | |
458 | 471 | | |
459 | | - | |
| 472 | + | |
460 | 473 | | |
461 | 474 | | |
462 | 475 | | |
| |||
465 | 478 | | |
466 | 479 | | |
467 | 480 | | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
468 | 496 | | |
469 | 497 | | |
470 | 498 | | |
| |||
551 | 579 | | |
552 | 580 | | |
553 | 581 | | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
554 | 585 | | |
555 | 586 | | |
556 | 587 | | |
| |||
0 commit comments