{"push_id":882740591,"size":16,"distinct_size":16,"ref":"refs/heads/cm-13.0","head":"bdc6a523ffdc5b4edddcdc5519f959f2be8f4e08","before":"72e3a7567087bc13a546b16e7c65e5cd1fb92917","commits":[{"sha":"e22b99022277351b9c58d18370660859c7ddfa56","author":{"email":"60b625ffba6d56fc54c3d38fda999479aca5a893@gmail.com","name":"Aaahh Ahh"},"message":"merge_config.sh: Add option to specify output dir\n\nProvide a -O option to specify dir to put generated .config\nThen merge_config.sh does not need to be copied to target dir,\nfor easy re-usage in other script\n\nChange-Id: If503991f483f84eb52b4fffb85dc842dba46e8d1\nSigned-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>\nTested-by: Jon Medhurst (Tixy) <tixy@linaro.org>\nAcked-by: John Stultz <john.stultz@linaro.org>\nSigned-off-by: Michal Marek <mmarek@suse.cz>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/e22b99022277351b9c58d18370660859c7ddfa56"},{"sha":"32c64773530658b3b905bda7abdb64fdbc65a9b7","author":{"email":"60b625ffba6d56fc54c3d38fda999479aca5a893@gmail.com","name":"Aaahh Ahh"},"message":"merge_config.sh: Avoid creating unnessary source softlinks\n\nViresh noticed when using merge_config.sh that a source softlink\nwas being created even when he didn't specify the -O option.\n\nThe problem arises due to the previous commit 409f117\nwhich added the -O option. Basically if -O is not specified,\nwe still pass '-O=.' to the make command, which then generates\na source softlink to ./\n\nThis patch adds an extra check so if there is no -O specified\nto merge_config.sh, we don't pass one on to make.\n\nChange-Id: I69a7a46e82591c3d73ca1df0bb69258cfd176948\nCc: Zhangfei Gao <zhangfei.gao@linaro.org>\nCc: Bruce Ashfield <bruce.ashfield@windriver.com>\nAcked-by: Darren Hart <dvhart@linux.intel.com>\nReported-and-tested-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: John Stultz <john.stultz@linaro.org>\nSigned-off-by: Michal Marek <mmarek@suse.cz>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/32c64773530658b3b905bda7abdb64fdbc65a9b7"},{"sha":"027acf426de7e0c9a0e21a110a8237b6ce549516","author":{"email":"86995a091f8a1385082bd10715048b52ee386a6a@google.com","name":"Lorenzo Colitti"},"message":"net: ping: Return EAFNOSUPPORT when appropriate.\n\n1. For an IPv4 ping socket, ping_check_bind_addr does not check\n   the family of the socket address that's passed in. Instead,\n   make it behave like inet_bind, which enforces either that the\n   address family is AF_INET, or that the family is AF_UNSPEC and\n   the address is 0.0.0.0.\n2. For an IPv6 ping socket, ping_check_bind_addr returns EINVAL\n   if the socket family is not AF_INET6. Return EAFNOSUPPORT\n   instead, for consistency with inet6_bind.\n3. Make ping_v4_sendmsg and ping_v6_sendmsg return EAFNOSUPPORT\n   instead of EINVAL if an incorrect socket address structure is\n   passed in.\n4. Make IPv6 ping sockets be IPv6-only. The code does not support\n   IPv4, and it cannot easily be made to support IPv4 because\n   the protocol numbers for ICMP and ICMPv6 are different. This\n   makes connect(::ffff:192.0.2.1) fail with EAFNOSUPPORT instead\n   of making the socket unusable\n\nAmong other things, this fixes an oops that can be triggered by:\n\n    int s = socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP);\n    struct sockaddr_in6 sin6 = {\n        .sin6_family = AF_INET6,\n        .sin6_addr = in6addr_any,\n    };\n    bind(s, (struct sockaddr *) &sin6, sizeof(sin6));\n\n[backport of net 9145736d4862145684009d6a72a6e61324a9439e]\n\nChange-Id: If06ca86d9f1e4593c0d6df174caca3487c57a241\nSigned-off-by: Lorenzo Colitti <lorenzo@google.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nGit-commit: 428e6d675d83323d05649d901cc0fa0069f8e825\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund <imaund@codeaurora.org>\nSigned-off-by: Srinivasarao P <spathi@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/027acf426de7e0c9a0e21a110a8237b6ce549516"},{"sha":"4a9e45bec5c241273b9725b455f371eed180cea9","author":{"email":"320bca71fc381a4a025636043ca86e734e31cf8b@nod.at","name":"Richard Weinberger"},"message":"um: siginfo cleanup\n\nCurrently we use both struct siginfo and siginfo_t.\nLet's use struct siginfo internally to avoid ongoing\ncompiler warning. We are allowed to do so because\nstruct siginfo and siginfo_t are equivalent\n\n[cherry-pick of upstream 9a8c1359571c5d5e2fbc43cf457a6486b70a70cb]\n\nChange-Id: I564775c9ed515c39ffff7d7d600a85d50291f31d\nSigned-off-by: Richard Weinberger <richard@nod.at>\nSigned-off-by: Lorenzo Colitti <lorenzo@google.com>\nGit-commit: dfca41467fa4570189f76e0fb9e0f911bc88ceb8\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund <imaund@codeaurora.org>\nSigned-off-by: Srinivasarao P <spathi@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/4a9e45bec5c241273b9725b455f371eed180cea9"},{"sha":"0a9e8a37e8f9f5e85436cc7535786ff2323e395f","author":{"email":"88afc91f328efe99323a5ebca4c79dc6956ce2de@codeaurora.org","name":"Harout Hedeshian"},"message":"net: ipv6: Add sysctl entry to disable MTU updates from RA\n\nThe kernel forcefully applies MTU values received in router\nadvertisements provided the new MTU is less than the current. This\nbehavior is undesirable when the user space is managing the MTU. Instead\na sysctl flag 'accept_ra_mtu' is introduced such that the user space\ncan control whether or not RA provided MTU updates should be applied.\nThe default behavior is unchanged; user space must explicitly set this flag\nto 0 for RA MTUs to be ignored.\n\nChange-Id: I9b2672d7c7804b6d5394516f451888d3ac8d7803\nSigned-off-by: Harout Hedeshian <harouth@codeaurora.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Srinivasarao P <spathi@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/0a9e8a37e8f9f5e85436cc7535786ff2323e395f"},{"sha":"2aa28c505bcef67d06ea65c8199b08e50ff73d94","author":{"email":"2b3b59efb30d692c772b2f93c636eba69bba4f54@twopensource.com","name":"Cong Wang"},"message":"ipv4, fib: pass LOOPBACK_IFINDEX instead of 0 to flowi4_iif\n\nAs suggested by Julian:\n\n\tSimply, flowi4_iif must not contain 0, it does not\n\tlook logical to ignore all ip rules with specified iif.\n\nbecause in fib_rule_match() we do:\n\n        if (rule->iifindex && (rule->iifindex != fl->flowi_iif))\n                goto out;\n\nflowi4_iif should be LOOPBACK_IFINDEX by default .\n\nWe need to move LOOPBACK_IFINDEX to include/net/flow.h:\n\n1) It is mostly used by flowi_iif\n\n2) Fix the following compile error if we use it in flow.h\nby the patches latter:\n\nIn file included from include/linux/netfilter.h:277:0,\n                 from include/net/netns/netfilter.h:5,\n                 from include/net/net_namespace.h:21,\n                 from include/linux/netdevice.h:43,\n                 from include/linux/icmpv6.h:12,\n                 from include/linux/ipv6.h:61,\n                 from include/net/ipv6.h:16,\n                 from include/linux/sunrpc/clnt.h:27,\n                 from include/linux/nfs_fs.h:30,\n                 from init/do_mounts.c:32:\ninclude/net/flow.h: In function ‘flowi4_init_output’:\ninclude/net/flow.h:84:32: error: ‘LOOPBACK_IFINDEX’ undeclared (first use in this function)\n\n[Backport of net-next 6a662719c9868b3d6c7d26b3a085f0cd3cc15e64]\n\nChange-Id: Ib7a0a08d78c03800488afa1b2c170cb70e34cfd9\nCc: Eric Biederman <ebiederm@xmission.com>\nCc: Julian Anastasov <ja@ssi.bg>\nCc: David S. Miller <davem@davemloft.net>\nSigned-off-by: Cong Wang <xiyou.wangcong@gmail.com>\nSigned-off-by: Cong Wang <cwang@twopensource.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Lorenzo Colitti <lorenzo@google.com>\nGit-commit: 9c086b4cf266e9ac1afabb86ff9ef54407b344e2\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund <imaund@codeaurora.org>\nSigned-off-by: Srinivasarao P <spathi@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/2aa28c505bcef67d06ea65c8199b08e50ff73d94"},{"sha":"8808e9af927ebf6d343eb1faaddc30078373d5ae","author":{"email":"4452d71687b6bc2c9389c3349fdc17fbd73b833b@queasysnail.net","name":"Sabrina Dubroca"},"message":"ipv6: clean up anycast when an interface is destroyed\n\nIf we try to rmmod the driver for an interface while sockets with\nsetsockopt(JOIN_ANYCAST) are alive, some refcounts aren't cleaned up\nand we get stuck on :\n\n  unregister_netdevice: waiting for ens3 to become free. Usage count = 1\n\nIf we LEAVE_ANYCAST/close everything before rmmod'ing, there is no\nproblem.\n\nWe need to perform a cleanup similar to the one for multicast in\naddrconf_ifdown(how == 1).\n\nBUG: 18902601\nChange-Id: I6d51aed5755eb5738fcba91950e7773a1c985d2e\nSigned-off-by: Sabrina Dubroca <sd@queasysnail.net>\nAcked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nGit-commit: 86a47ad60de5221c3869821d3552dcd1c89199f5\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund <imaund@codeaurora.org>\nSigned-off-by: Srinivasarao P <spathi@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/8808e9af927ebf6d343eb1faaddc30078373d5ae"},{"sha":"4ab30eb15894085723d930c3bafe8cd96fdbd1ed","author":{"email":"563e52a359628987e3ec3a43d116ebecc87e39bc@codeaurora.org","name":"Balamurugan Alagarsamy"},"message":"msm: vidc: fix null pointer crash in sys error handler\n\nWhen the iteration pointer of list_for_each_entry is\nused to evaluate, it can have a garbage value. So,instead,\nusing a inst pointer, using core to get the hdev.\n\nAlso, flushing the core work queue in unload firmware\nleads to deadlock, when there is a SYS error is received\nfrom core, because handle_sys_error is also a part of core\nwork handler, so flushing itself by its own execution,\nwill lead to wait indefinitely, i.e, a deadlock. So,\nskipping it when there is a error condition.\n\nChange-Id: Ic4e2df0db2341c974cbba19ddd55ecdc5c832124\nSigned-off-by: Balamurugan Alagarsamy <balaga@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/4ab30eb15894085723d930c3bafe8cd96fdbd1ed"},{"sha":"8842db4255bef8d7627d477c41847304dff5cbc9","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"Revert \"msm: mdss: Acquire lock for source format b/w line and block mode\"\n\n * Top suspect for random system freeze + reboot. Revert for now, will\n   revisit later.\n\nThis reverts commit a86f46d1643274ce02bbd81b2218d8c0269bbdf8.\n\nChange-Id: Icb64ce289704ff13b73b40889bcd96e309fbb7e7","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/8842db4255bef8d7627d477c41847304dff5cbc9"},{"sha":"cf3d7f4e1a32757d96ff388e29e997cf4bedf3b1","author":{"email":"a73297c7c0b3c17accd96cab9822645aa8274dbb@codeaurora.org","name":"Atish Kumar Patra"},"message":"net: ipc_router: Fix socket reference in IPC Router\n\nThe socket associated with an IPC Router port can be released before\nthe port is released. This leads to an use after free bug in cases\nwhere the socket is closed while a packet is in flight.\n\nFix the use after free scenario by holding a sock reference during\ncreation of the port and releasing that in release port function.\n\nCRs-Fixed: 811335\nChange-Id: I638cc59e3b4e2347107e5ac19f233b0f7b9dd7b0\nSigned-off-by: Atish Kumar Patra <apatra@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/cf3d7f4e1a32757d96ff388e29e997cf4bedf3b1"},{"sha":"1ca6e9c0292a1113a9c04708595efe1368d21169","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"Revert \"msm: rpm_smd: Use spin_lock_irqsave in work function\"\n\nThis reverts commit 18420b26003c2899d6d68ae9a1173194129284e6.\n\nChange-Id: I19e6c7b459f768fa3b8f1863a6ede1419e815b47","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/1ca6e9c0292a1113a9c04708595efe1368d21169"},{"sha":"f2d5418c76d4fe26f20508b118c1200359ad7f4c","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"Revert \"msm: Fix high load average from uninterruptible waits\"\n\nThis reverts commit 7deb4ffabcb42a1970300d75b72bc9c5f997b337.\n\nChange-Id: I64b1dfeb46beda374dca0e34dc83568eec61735d","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/f2d5418c76d4fe26f20508b118c1200359ad7f4c"},{"sha":"bd94fc33a2c09276d4cd39ac30e5a481cb1b850d","author":{"email":"6550883a1a6727083a7f532b897352c430bfbacf@codeaurora.org","name":"Murali Nalajala"},"message":"qcom: rpm-smd: Use arch_init and implement deferred probe mechanism\n\nDriver init calls are serialized using a BoardFile on current targets.\nThis will not be the case with newer targets. Use arch_init to initialize\nrpm-smd driver early in the boot process.\nNot having a BoardFile to serialize the driver init calls, leaves open the\npossibility of another driver being initialized and calling into rpm-smd\ndriver before the rpm-smd driver is initialized. Provide a mechanism to\ndefer calls into rpm-smd until it is probed. Return -EPROBE_DEFER if any\nof the rpm-smd APIs get called before it is probed.\n\nChange-Id: Ieaff88549ecac25bd940ae934a6eb608c0a29c72\nSigned-off-by: Murali Nalajala <mnalajal@codeaurora.org>\nSigned-off-by: Karthik Parsha <kparsha@codeaurora.org>\n\nrpm-smd: Initialize the completion before smd_open call\n\nCurrently smd_open call happens before the completion event\ninitializations. We could run into spinlock bad magic issue if the\ndriver receives smd notification before initialization completes.\nTherefore, initialize this during msm_rpm_data declaration.\n\nChange-Id: Ia9b01a5717416d659b1308a693b1a3667a5a11b3\nSigned-off-by: Archana Sathyakumar <asathyak@codeaurora.org>\n\nqcom: rpm-smd: Fix the storage variable data type\n\nThe data that returned from smd API smd_cur_packet_size() is of the type\nint. The returned value is stored in a variable pkt_sz. Declare the\nvariable to be of type int.\n\nChange-Id: I1aecd007f97ed151af1b9bb9ef246e9786b3fb31\nSigned-off-by: Karthik Parsha <kparsha@codeaurora.org>\n\nmsm: rpm-smd: skip the smd initialization for standalone\n\nwhen standalone flag is set we should skip initializations\nrelated to SMD channel.\n\nChange-Id: I1b499ddee61d46ad5c254f68a1e74e2e4c3dcb05\nSigned-off-by: Venkat Devarasetty <vdevaras@codeaurora.org>\n\nrpm-smd: Fix rpm-smd-regulator probe deferral issue\n\nThe of_platform_populate of rpm-smd-regulator gets called before\nprobe_status is set. Fix the probe_status before the function call.\n\nChange-Id: Ie614e856852c6f5b7403af26b06b46d1c4738ff8\nSigned-off-by: Archana Sathyakumar <asathyak@codeaurora.org>\n\nrpm-smd: Raise priority of thread waiting for ack using RT mutex\n\nLower priority threads making rpm requests could block higher priority\nthreads attempting rpm communication. Raise the priority of the thread\nwaiting for ack by acquiring a RT Mutex.\n\nSigned-off-by: Karthik Parsha <kparsha@codeaurora.org>\nChange-Id: I9e970fc7733775728100dede3406df8814a20a55\n\nrpm-smd: Raise priority of thread waiting for SMD buffer\n\nLow priority thread that wait for SMD buffer to become available could\nblock higher priority thread. Raise the priority of the thread waiting for\nack by converting existing Mutex to an RT mutex.\n\nChange-Id: I8cc5e4fea93b0482bb06e14bb8601c36557356ee\nSigned-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>\n\nmsm: rpm-smd: return probe success when standalone flag is defined\n\nrpm-smd driver returning -EPROBE_DEFER when \"standalone\" flag is\ndefined in DT. Due to this rpm-smd driver keeps probe defer and\nwill never succeed. It makes clients of rpm-smd drivers to defer\ntheir probe when clients call the rpm-smd exported APIs. To avoid\nthis return success when \"standalone\" flag is defined.\n\nChange-Id: I9aefb33902bfff36c038a3d7a35d7fe6bf64799a\nSigned-off-by: Murali Nalajala <mnalajal@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/bd94fc33a2c09276d4cd39ac30e5a481cb1b850d"},{"sha":"407face1d1aab741089692ed0ad98ea840e1e33d","author":{"email":"97e9f912dcaf959dacc8581e6cbca14c5ea17a57@cyngn.com","name":"Khalid Zubair"},"message":"Revert \"bacon: Disable PIC1503_FASTCG\"\n\nEven though there is no PIC16F1503 on bacon, the qpnp-charger driver\nis affected by CONFIG_PIC1503_FASTCG. Disabling it leads to worse\npower consumption.\n\nRe-enable the driver to workaround the issue in qpnp-charger.\n\nThis reverts commit f0e59941ac7c41a1242d585048aadf73a7c7cf50.\n\nOPO-240\n\nChange-Id: I9695d02514184ab7ccc403b229cd323fde31c45d\nSigned-off-by: Khalid Zubair <kzubair@cyngn.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/407face1d1aab741089692ed0ad98ea840e1e33d"},{"sha":"c1fff03187b3dcb8cf54e40b94b6c5a7442b3a08","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"tick: Upstream fixes (reapply)\n\n * Addresses the issue of timers being scheduled on offline CPUs.\n\ntick: Don't invoke tick_nohz_stop_sched_tick() if the cpu is offline\n\ncommit 5b39939a4 (nohz: Move ts->idle_calls incrementation into strict\nidle logic) moved code out of tick_nohz_stop_sched_tick() and missed\nto bail out when the cpu is offline. That's causing subsequent\nfailures as an offline CPU is supposed to die and not to fiddle with\nnohz magic.\n\nReturn false in can_stop_idle_tick() if the cpu is offline.\n\nReported-and-tested-by: Jiri Kosina <jkosina@suse.cz>\nReported-and-tested-by: Prarit Bhargava <prarit@redhat.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Tony Luck <tony.luck@intel.com>\nCc: x86@kernel.org\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305132138160.2863@ionos\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\ntimers: Consolidate base->next_timer update\n\nAnother bunch of mindlessly copied code. All callers of\ninternal_add_timer() except the recascading code updates\nbase->next_timer.\n\nMove this into internal_add_timer() and let the cascading code call\n__internal_add_timer().\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Gilad Ben-Yossef <gilad@benyossef.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.189946224@linutronix.de\n\ntimers: Create detach_if_pending() and use it\n\nMost callers of detach_timer() have the same pattern around\nthem. Check whether the timer is pending and eventually updating\nbase->next_timer.\n\nCreate detach_if_pending() and replace the duplicated code.\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Gilad Ben-Yossef <gilad@benyossef.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.131246037@linutronix.de\n\ntimers: Add accounting of non deferrable timers\n\nThe code in get_next_timer_interrupt() is suboptimal as it has to run\nthrough the cascade to find the next expiring timer. On a completely\nidle core we should only do that when there is an active timer\nenqueued and base->next_timer does not give us a fast answer.\n\nAdd accounting of the active timers to the now consolidated\nattach/detach code. I deliberately avoided sanity checks because the\ncode is fully symetric and any fiddling with timers w/o using the API\nfunctions will lead to cute explosions anyway. ulong is big enough\neven on 32bit and if we really run into the situation to have more\nthan 1<<32 timers enqueued there, then we are definitely not in a\nstate to go idle and run through that code.\n\nThis allows us to fix another shortcoming of get_next_timer_interrupt().\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Gilad Ben-Yossef <gilad@benyossef.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.236377028@linutronix.de\n\ntimers: Improve get_next_timer_interrupt()\n\nGilad reported at\n\n http://lkml.kernel.org/r/1336056962-10465-2-git-send-email-gilad@benyossef.com\n\n\"Current timer code fails to correctly return a value meaning that\n there is no future timer event, with the result that the timer keeps\n getting re-armed in HZ one shot mode even when we could turn it off,\n generating unneeded interrupts.\n\n What is happening is that when __next_timer_interrupt() wishes\n to return a value that signifies \"there is no future timer\n event\", it returns (base->timer_jiffies + NEXT_TIMER_MAX_DELTA).\n\n However, the code in tick_nohz_stop_sched_tick(), which called\n __next_timer_interrupt() via get_next_timer_interrupt(),\n compares the return value to (last_jiffies + NEXT_TIMER_MAX_DELTA)\n to see if the timer needs to be re-armed.\n\n base->timer_jiffies != last_jiffies and so tick_nohz_stop_sched_tick()\n interperts the return value as indication that there is a distant\n future event 12 days from now and programs the timer to fire next\n after KTIME_MAX nsecs instead of avoiding to arm it. This ends up\n causing a needless interrupt once every KTIME_MAX nsecs.\"\n\nFix this by using the new active timer accounting. This avoids scans\nwhen no active timer is enqueued completely, so we don't have to rely\non base->timer_next and base->timer_jiffies anymore.\n\nChange-Id: I874ee5e5f837a228cebf5e6a084baf520d33cd0f\nReported-by: Gilad Ben-Yossef <gilad@benyossef.com>\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.317535385@linutronix.de","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/c1fff03187b3dcb8cf54e40b94b6c5a7442b3a08"},{"sha":"bdc6a523ffdc5b4edddcdc5519f959f2be8f4e08","author":{"email":"9defb1d2166fe02be9724618510318ef57e74e91@gmail.com","name":"Michael Bestas"},"message":"Merge branch 'cm-13.0' of git://github.com/CyanogenMod/android_kernel_oneplus_msm8974 into HEAD","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_oppo_msm8974/commits/bdc6a523ffdc5b4edddcdc5519f959f2be8f4e08"}]}