{"push_id":705080070,"size":1,"distinct_size":1,"ref":"refs/heads/lollipop-caf","head":"ca745544241654d40cc375d1491fc7bf3ee3ca47","before":"5749ccb665e7a0247ddccae661d92f44dd3f25e6","commits":[{"sha":"ca745544241654d40cc375d1491fc7bf3ee3ca47","author":{"email":"a73a03e3b44aa05185cea6823d080c09a7808534@candelatech.com","name":"Ben Greear"},"message":"Fix lockup related to stop_machine being stuck in __do_softirq.\n\ncommit 34376a50fb1fa095b9d0636fa41ed2e73125f214 upstream.\n\nThe stop machine logic can lock up if all but one of the migration\nthreads make it through the disable-irq step and the one remaining\nthread gets stuck in __do_softirq.  The reason __do_softirq can hang is\nthat it has a bail-out based on jiffies timeout, but in the lockup case,\njiffies itself is not incremented.\n\nTo work around this, re-add the max_restart counter in __do_irq and stop\nprocessing irqs after 10 restarts.\n\nThanks to Tejun Heo and Rusty Russell and others for helping me track\nthis down.\n\nThis was introduced in 3.9 by commit c10d73671ad3 (\"softirq: reduce\nlatencies\").\n\nIt may be worth looking into ath9k to see if it has issues with its irq\nhandler at a later date.\n\nThe hang stack traces look something like this:\n\n    ------------[ cut here ]------------\n    WARNING: at kernel/watchdog.c:245 watchdog_overflow_callback+0x9c/0xa7()\n    Watchdog detected hard LOCKUP on cpu 2\n    Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 nfsv4 auth_rpcgss nfs fscache nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc pktgen lockd sunrpc]\n    Pid: 23, comm: migration/2 Tainted: G         C   3.9.4+ #11\n    Call Trace:\n     <NMI>   warn_slowpath_common+0x85/0x9f\n      warn_slowpath_fmt+0x46/0x48\n      watchdog_overflow_callback+0x9c/0xa7\n      __perf_event_overflow+0x137/0x1cb\n      perf_event_overflow+0x14/0x16\n      intel_pmu_handle_irq+0x2dc/0x359\n      perf_event_nmi_handler+0x19/0x1b\n      nmi_handle+0x7f/0xc2\n      do_nmi+0xbc/0x304\n      end_repeat_nmi+0x1e/0x2e\n     <<EOE>>\n      cpu_stopper_thread+0xae/0x162\n      smpboot_thread_fn+0x258/0x260\n      kthread+0xc7/0xcf\n      ret_from_fork+0x7c/0xb0\n    ---[ end trace 4947dfa9b0a4cec3 ]---\n    BUG: soft lockup - CPU#1 stuck for 22s! [migration/1:17]\n    Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 nfsv4 auth_rpcgss nfs fscache nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc pktgen lockd sunrpc]\n    irq event stamp: 835637905\n    hardirqs last  enabled at (835637904): __do_softirq+0x9f/0x257\n    hardirqs last disabled at (835637905): apic_timer_interrupt+0x6d/0x80\n    softirqs last  enabled at (5654720): __do_softirq+0x1ff/0x257\n    softirqs last disabled at (5654725): irq_exit+0x5f/0xbb\n    CPU 1\n    Pid: 17, comm: migration/1 Tainted: G        WC   3.9.4+ #11 To be filled by O.E.M. To be filled by O.E.M./To be filled by O.E.M.\n    RIP: tasklet_hi_action+0xf0/0xf0\n    Process migration/1\n    Call Trace:\n     <IRQ>\n      __do_softirq+0x117/0x257\n      irq_exit+0x5f/0xbb\n      smp_apic_timer_interrupt+0x8a/0x98\n      apic_timer_interrupt+0x72/0x80\n     <EOI>\n      printk+0x4d/0x4f\n      stop_machine_cpu_stop+0x22c/0x274\n      cpu_stopper_thread+0xae/0x162\n      smpboot_thread_fn+0x258/0x260\n      kthread+0xc7/0xcf\n      ret_from_fork+0x7c/0xb0\n\nChange-Id: I10fc70d8220d86fac01b30cd1a2a8f6a4a361728\nSigned-off-by: Ben Greear <greearb@candelatech.com>\nAcked-by: Tejun Heo <tj@kernel.org>\nAcked-by: Pekka Riikonen <priikone@iki.fi>\nCc: Eric Dumazet <eric.dumazet@gmail.com>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n[xr: Backported to 3.4: Adjust context]\nSigned-off-by: Rui Xiang <rui.xiang@huawei.com>\nSigned-off-by: Zefan Li <lizefan@huawei.com>","distinct":true,"url":"https://api.github.com/repos/DirtyUnicorns/android_kernel_samsung_hlte/commits/ca745544241654d40cc375d1491fc7bf3ee3ca47"}]}