{"push_id":1989473055,"size":11,"distinct_size":11,"ref":"refs/heads/master","head":"e8b82f8d7f092ce1bc7617c513ecd8f42d34342d","before":"ce1264200db89c6174c6c761a79daea0ad4e9aeb","commits":[{"sha":"ed1f247054b2f69dde122bdf3e146b93e0113c3b","author":{"name":"AntonioMartitos","email":"ec1019fed712ef00c9eca3b062c0ae5fd0a37fd5@gmail.com"},"message":"Revert \"Squash: Upstream CPUidle\"\n\nThis reverts commit 05521417fedaa0f42da05f69cf14129d6d4245b3.","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/ed1f247054b2f69dde122bdf3e146b93e0113c3b"},{"sha":"92df20ac5553624cb25521d3761226792d13316a","author":{"name":"AntonioMartitos","email":"ec1019fed712ef00c9eca3b062c0ae5fd0a37fd5@gmail.com"},"message":"Revert \"Drivers: CPU Governors\"\n\nThis reverts commit 264aa2dd7e56170ee0a73e8f69f1c64fd774a955.","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/92df20ac5553624cb25521d3761226792d13316a"},{"sha":"56fb90febedb138821f6bb265c1858830d85c74f","author":{"name":"Noxxx","email":"f1d9dce37f258e1f51cd12aa10899fab40433275@hotmail.com"},"message":"Squash: Upstream CPUidle\n\ncpuidle / menu: Return (-1) if there are no suitable states\n\ncommit 3836785a1bdcd6706c68ad46bf53adc0b057b310 upstream.\n\nIf there is a PM QoS latency limit and all of the sufficiently shallow\nC-states are disabled, the cpuidle menu governor returns 0 which on\nsome systems is CPUIDLE_DRIVER_STATE_START and shouldn't be returned\nif that C-state has been disabled.\n\nFix the issue by modifying the menu governor to return (-1) in such\nsituations.\n\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n[shilpab: Backport to 3.10.y\n - adjust context\n - add a check if 'next_state' is less than 0 in 'cpuidle_idle_call()',\n   this ensures that we exit 'cpuidle_idle_call()' if governor->select()\n   returns  negative value]\nSigned-off-by: Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ncpuidle: Add need_resched() check\n\nThe cpuidle framework is disabled as part of suspend. In this scenario,\nthe cpu may enter wfi without checking the need_resched() flag.\nPrevent this from occuring.\n\nCRs-fixed: 920501\nChange-Id: Ib2077833279d84b2aea25c61198dfbdcf4566ea4\nSigned-off-by: Patrick Daly <pdaly@codeaurora.org>\n\ncpuidle: kick all cpu after idle handler installed\n\nKick all the cpus out of idle and recalculate a new suitable\nC-state.\n\nSigned-off-by: Lianwei Wang <a22439@motorola.com>\nReviewed-on: http://gerrit.mot.com/792799\nSLTApproved: Slta Waiver <sltawvr@motorola.com>\nSME-Granted: SME Approvals Granted\nTested-by: Jira Key <jirakey@motorola.com>\nReviewed-by: Zhi-Ming Yuan <a14194@motorola.com>\nSubmit-Approved: Jira Key <jirakey@motorola.com>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>\n\ncpuidle: fix improper return value on error\n\nIn function cpuidle_add_state_sysfs(), variable ret takes the return\nvalue. Its value should be negative on errors. Because ret is reset in\nthe loop, its value will be 0 during the second and after repeat of the\nloop. If kzalloc() returns a NULL pointer then, it will return 0. It may\nbe better to explicitly assign \"-ENOMEM\" when the call to kzalloc()\nfails.\n\nLink: https://bugzilla.kernel.org/show_bug.cgi?id=188901\nSigned-off-by: Pan Bian <bianpan2016@163.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Ignore interval prediction result when timer is shorter\n\nThis patch prevents cpuidle menu governor from using repeating interval\nprediction result if the idle period predicted is longer than the one\nallowed by shortest running timer.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Rearrange code and comments in get_typical_interval()\n\nThis patch rearranges a if-return-elsif-goto-fi-return sequence into\nif-return-fi-if-return-fi-goto sequence. The functionality remains the\nsame. Also, a lengthy comment that did not describe the functionality\nin the order it occurs is split into half and top half is moved closer\nto actual implementation it describes.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Check called function parameter in get_typical_interval()\n\nget_typical_interval() uses int_sqrt() in calculation of standard\ndeviation. The formal parameter of int_sqrt() is unsigned long, which\nmay on some platforms be smaller than the 64 bit unsigned integer used\nas the actual parameter. The overflow can occur frequently when actual\nidle period lengths are in hundreds of milliseconds.\n\nThis patch adds a check for such overflow and rejects the candidate\naverage when an overflow would occur.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: CodingStyle: Break up multiple assignments on single line\n\nThe function get_typical_interval() initializes a number of variables\nthat are immediately after declarations assigned constant values.\nIn addition, there are multiple assignments on a single line, which\nis explicitly forbidden by Documentation/CodingStyle.\n\nThis patch removes redundant initial values for the variables and\nbreaks up the multiple assignment line.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Fix menu_device->intervals type\n\nStruct menu_device member intervals is declared as u32, but the value\nstored is (unsigned) int. The type is changed to match the value being\nstored.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Fix variable domains in get_typical_interval()\n\nThe menu governor uses a static function get_typical_interval() to\ntry to detect a repeating pattern of wakeups. The previous interval\ndurations are stored as an array of unsigned ints, but the arithmetic\nin the function is performed exclusively as 64 bit values, even when\nthe value stored in a variable is known not to exceed unsigned int,\nwhich may be smaller and more efficient on some platforms.\n\nThis patch changes the types of varibles used to store some\nintermediates, the maximum and and the cutoff threshold to unsigned\nints. Average and standard deviation are still treated as 64 bit values,\neven when the values are known to be within the domain of unsigned int,\nto avoid casts to ensure correct integer promotion for arithmetic\noperations.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Add a comment warning about possible overflow\n\nThe menu governor has a number of tunable constants that may be changed\nin the source. If certain combination of values are chosen, an overflow\nis possible when the correction_factor is being recalculated.\n\nThis patch adds a warning regarding this possibility and describes the\nchange needed for fixing the issue. The change should not be permanently\nenabled, as it will hurt performance when it is not needed.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Change struct menu_device field types\n\nField predicted_us value can never exceed expected_us value, but it has\na potentially larger type. As there is no need for additional 32 bits of\nzeroes on 32 bit plaforms, change the type of predicted_us to match the\ntype of expected_us.\n\nField correction_factor is used to store a value that cannot exceed the\nproduct of RESOLUTION and DECAY (default 1024*8 = 8192). The constants\ncannot in practice be incremented to such values, that they'd overflow\nunsigned int even on 32 bit systems, so the type is changed to avoid\nunnecessary 64 bit arithmetic on 32 bit systems.\n\nOne multiplication of (now) 32 bit values needs an added cast to avoid\ntruncation of the result and has been added.\n\nIn order to avoid another multiplication from 32 bit domain to 64 bit\ndomain, the new correction_factor calculation has been changed from\nnew = old * (DECAY-1) / DECAY\nto\nnew = old - old / DECAY,\nwhich with infinite precision would yeild exactly the same result, but\nnow changes the direction of rounding. The impact is not significant as\nthe maximum accumulated difference cannot exceed the value of DECAY,\nwhich is relatively small compared to product of RESOLUTION and DECAY\n(8 / 8192).\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: coupled: disable interrupts after entering safe state\n\nCalling cpuidle_enter_state is expected to return with interrupts\nenabled, but interrupts must be disabled before starting the\nready loop synchronization stage.  Call local_irq_disable after\neach call to cpuidle_enter_state for the safe state.\n\nTested-by: Stephen Warren <swarren@nvidia.com>\nSigned-off-by: Colin Cross <ccross@android.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Check cpuidle_enable_device() return value\n\nWe previously changed the ordering of the cpuidle framework\ninitialization so that the governors are registered before the\ndrivers which can register their devices right from the start.\n\nNow, we can safely remove the __cpuidle_register_device() call hack\nin cpuidle_enable_device() and check if the driver has been\nregistered before enabling it.  Then, cpuidle_register_device() can\nconsistently check the cpuidle_enable_device() return value when\nenabling the device.\n\n[rjw: Changelog]\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Introduce __cpuidle_unregister_device()\n\nTo reduce code duplication related to the unregistration of cpuidle\ndevices, introduce __cpuidle_unregister_device() and move all of the\nunregistration code to that function.\n\n[rjw: Changelog]\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Introduce __cpuidle_device_init()\n\nAdd __cpuidle_device_init() for initializing the cpuidle_device\nstructure.\n\n[rjw: Changelog]\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Check if device is already registered\n\nMake __cpuidle_register_device() check whether or not the device has\nbeen registered already and return -EBUSY immediately if that's the\ncase.\n\n[rjw: Changelog]\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: make __cpuidle_device_init() return void\n\nThe only value returned by __cpuidle_device_init() is 0, so it very\nwell may be a void function.  Make that happen.\n\n[rjw: Changelog]\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: make __cpuidle_driver_init() return void\n\nThe only value returned by __cpuidle_driver_init() is 0, so it\nvery well may be a void function.\n\n[rjw: Changelog]\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: rearrange code in __cpuidle_driver_init()\n\nThis is trivial patch that just reorders a few statements in\n__cpuidle_driver_init() routine so that we don't need both 'continue'\nand 'break' in the for loop. Functionally it shouldn't change anything.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: rearrange __cpuidle_register_device() to keep minimal exit points\n\nThis patch rearranges __cpuidle_register_device() a bit in order to\nreduce the number of exit points in that function.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: merge two if() statements for checking error cases\n\nTwo checks cpuidle_idle_call() cause the same error code to be\nreturned if they fail, so merge them for clarity.\n\n[rjw: Changelog]\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: reduce code duplication inside cpuidle_idle_call()\n\nWe are doing this twice in cpuidle_idle_call() routine:\n\tdrv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP\n\nWould be better if we actually store this in a local variable and\nuse that. That reduces code duplication and likely makes this piece\nof code run faster (in case the compiler wasn't able to optimize it\nearlier)\n\n[rjw: Cast the result of bitwise AND to bool explicitly using !!]\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: replace multiline statements with single line in cpuidle_idle_call()\n\nFew statements in cpuidle_idle_call() are broken into multiple lines,\nalthough that isn't really necessary. Convert those to single line.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: call cpuidle_get_driver() from after taking cpuidle_driver_lock\n\nThere are a few cpuidle_get_driver() calls that aren't made under\ncpuidle_driver_lock which is incorrect.\n\nFix them by calling cpuidle_get_driver() after taking cpuidle_driver_lock.\n\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: use drv instead of cpuidle_driver in show_current_driver()\n\nInstances of \"struct cpuidle_driver *\" are consistently named as \"drv\"\nin the cpuidle core except in show_current_driver().\n\nMake that function use variable naming consistent with the rest of the\ncode.\n\n[rjw: Changelog]\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: don't call poll_idle_init() for every cpu\n\npoll_idle_init() just initializes drv->states[0] and so that is\nrequired to be done only once for each driver.  Currently, it is\ncalled from cpuidle_enable_device() which is called for every CPU\nthat the driver supports.  That is not required, so move it to a\nbetter place and call it from __cpuidle_register_driver() so that\nthe initialization is carried out only once.\n\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: remove cpuidle_unregister_governor()\n\ncpuidle_unregister_governor() and cpuidle_replace_governor() aren't\nused anymore and can be removed. They were used by cpufreq governors\nearlier, but since the governors can't be compiled as modules any\nmore, these two functions aren't necessary.\n\nSuggested-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Make it clear that governors cannot be modules\n\ncpufreq governors are defined as modules in the code, but the Kconfig\noptions do not allow them to be built as modules.  This is not really\na problem, but the cpuidle init ordering is: the cpuidle init\nfunctions (framework and driver) and then the governors.  That leads\nto some weirdness in the cpuidle framework.\n\nNamely,  cpuidle_register_device() calls cpuidle_enable_device() which\nfails at the first attempt, because governors have not been registered\nyet.  When a governor is registered, the framework calls\ncpuidle_enable_device() again which runs __cpuidle_register_device()\nonly then.  Of course, for that to work, the cpuidle_enable_device()\nreturn value has to be ignored by cpuidle_register_device().\n\nInstead of having this cyclic call graph and relying on a positive\nside effects of the hackish back and forth cpuidle_enable_device()\ncalls it is better to fix the cpuidle init ordering.\n\nTo that end, replace the module init code with postcore_initcall()\nso we have:\n\n * cpuidle framework : core_initcall\n * cpuidle governors : postcore_initcall\n * cpuidle drivers   : device_initcall\n\nand remove the corresponding module exit code as it is dead anyway\n(governors can't be built as modules).\n\n[rjw: Changelog]\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Check for dev before deregistering it.\n\nIf not, we could end up in the unfortunate situation where\nwe dereference a NULL pointer b/c we have cpuidle disabled.\n\nThis is the case when booting under Xen (which uses the\nACPI P/C states but disables the CPU idle driver) - and can\nbe easily reproduced when booting with cpuidle.off=1.\n\nBUG: unable to handle kernel NULL pointer dereference at           (null)\nIP: [<ffffffff8156db4a>] cpuidle_unregister_device+0x2a/0x90\n.. snip..\nCall Trace:\n [<ffffffff813b15b4>] acpi_processor_power_exit+0x3c/0x5c\n [<ffffffff813af0a9>] acpi_processor_stop+0x61/0xb6\n [<ffffffff814215bf>] __device_release_driver+0fffff81421653>] device_release_driver+0x23/0x30\n [<ffffffff81420ed8>] bus_remove_device+0x108/0x180\n [<ffffffff8141d9d9>] device_del+0x129/0x1c0\n [<ffffffff813cb4b0>] ? unregister_xenbus_watch+0x1f0/0x1f0\n [<ffffffff8141da8e>] device_unregister+0x1e/0x60\n [<ffffffff814243e9>] unregister_cpu+0x39/0x60\n [<ffffffff81019e03>] arch_unregister_cpu+0x23/0x30\n [<ffffffff813c3c51>] handle_vcpu_hotplug_event+0xc1/0xe0\n [<ffffffff813cb4f5>] xenwatch_thread+0x45/0x120\n [<ffffffff810af010>] ? abort_exclusive_wait+0xb0/0xb0\n [<ffffffff8108ec42>] kthread+0xd2/0xf0\n [<ffffffff8108eb70>] ? kthread_create_on_node+0x180/0x180\n [<ffffffff816ce17c>] ret_from_fork+0x7c/0xb0\n [<ffffffff8108eb70>] ? kthread_create_on_node+0x180/0x180\n\nThis problem also appears in 3.12 and could be a candidate for backport.\n\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>\nCc: All applicable <stable@vger.kernel.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: rename expected_us to next_timer_us in menu governor\n\nThe field expected_us is used to store the time remaining until next\ntimer expiry. The name is inaccurate, as we really do not expect all\nwakeups to be caused by timers. In addition, another field with a very\nsimilar name (predicted_us) is used to store the predicted time\nremaining until any wakeup source being active.\n\nThis patch renames expected_us to next_timer_us in order to better\nreflect the contained information.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nAcked-by: Nicolas Pitre <nico@linaro.org>\nAcked-by: Len Brown <len.brown@intel.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Use actual state latency in menu governor\n\nCurrently menu governor records the exit latency of the state it has\nchosen for the idle period. The stored latency value is then later\nused to calculate the actual length of the idle period. This value\nmay however be incorrect, as the entered state may not be the one\nchosen by the governor. The entered state information is available,\nso we can use that to obtain the real exit latency.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Ensure menu coefficients stay within domain\n\nThe menu governor uses coefficients as one method of actual idle\nperiod length estimation. The coefficients are, as detailed below,\nmultipliers giving expected idle period length from time until next\ntimer expiry. The multipliers are supposed to have domain of (0..1].\n\nThe coefficients are fractions where only the numerators are stored\nand denominators are a shared constant RESOLUTION*DECAY. Since the\nvalue of the coefficient should always be greater than 0 and less\nthan or equal to 1, the numerator must have a value greater than\n0 and less than or equal to RESOLUTION*DECAY.\n\nIf the coefficients are updated with measured idle durations exceeding\ntimer length, the multiplier may reach values exceeding unity (i.e.\nthe stored numerator exceeds RESOLUTION*DECAY). This patch ensures that\nthe multipliers are updated with durations capped to timer length.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nAcked-by: Nicolas Pitre <nico@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Do not substract exit latency from assumed sleep length\n\nThe menu governor statistics update function tries to determine the\namount of time between entry to low power state and the occurrence\nof the wakeup event. However, the time measured by the framework\nincludes exit latency on top of the desired value. This exit latency\nis substracted from the measured value to obtain the desired value.\n\nWhen measured value is not available, the menu governor assumes\nthe wakeup was caused by the timer and the time is equal to remaining\ntimer length. No exit latency should be substracted from this value.\n\nThis patch prevents the erroneous substraction and clarifies the\nassociated comment. It also removes one intermediate variable that\nserves no purpose.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Move perf multiplier calculation out of the selection loop\n\nThe menu governor performance multiplier defines a minimum predicted\nidle duration to latency ratio. Instead of checking this separately\nin every iteration of the state selection loop, adjust the overall\nlatency restriction for the whole loop if this restriction is tighter\nthan what is set by the QoS subsystem.\n\nThe original test\ns->exit_latency * multiplier > data->predicted_us\nbecomes\ns->exit_latency > data->predicted_us / multiplier\nby dividing both sides of the comparison by \"multiplier\".\n\nWhile division is likely to be several times slower than multiplication,\nthe minor performance hit allows making a generic sleep state selection\nfunction based on (sleep duration, maximum latency) tuple.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: poll state can measure residency\n\nFor some platforms, a poll state is inserted in the cpuidle driver states.\nThe flags for the state do not indicate that timekeeping is not affected.\nAs the state does not do anything apart from calling cpu_relax(), the\ntimes returned by ktime_get should remain valid. Add the missing flag.\n\nSigned-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\nidle/cpuidle: Split cpuidle_idle_call main function into smaller functions\n\nIn order to allow better integration between the cpuidle framework and the\nscheduler, reducing the distance between these two sub-components will\nfacilitate this integration by moving part of the cpuidle code in the idle\ntask file and, because idle.c is in the sched directory, we have access to\nthe scheduler's private structures.\n\nThis patch splits the cpuidle_idle_call main entry function into 3 calls\nto a newly added API:\n\n 1. select the idle state\n 2. enter the idle state\n 3. reflect the idle state\n\nThe cpuidle_idle_call calls these three functions to implement the main\nidle entry function.\n\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nAcked-by: Nicolas Pitre <nico@linaro.org>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: rjw@rjwysocki.net\nCc: preeti@linux.vnet.ibm.com\nLink: http://lkml.kernel.org/r/1393832934-11625-1-git-send-email-daniel.lezcano@linaro.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\ncpuidle / menu: move repeated correction factor check to init\n\nIn menu_select function we check for correction factor every time.\nIf it is zero we are initializing to unity. Hence move it to init function\nand initialise by unity, hence avoid repeated comparisons.\n\nSigned-off-by: Chander Kashyap <chander.kashyap@linaro.org>\nReviewed-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Set polling in poll_idle\n\npoll_idle is the archetypal polling idle loop; tell the core idle\ncode about it.\n\nThis avoids pointless IPIs when all of the other cpuidle states are\ndisabled.\n\nSigned-off-by: Andy Lutomirski <luto@amacapital.net>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: nicolas.pitre@linaro.org\nCc: umgwanakikbuti@gmail.com\nCc: Daniel Lezcano <daniel.lezcano@linaro.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Rafael J. Wysocki <rjw@rjwysocki.net>\nCc: linux-kernel@vger.kernel.org\nCc: linux-pm@vger.kernel.org\nLink: http://lkml.kernel.org/r/c65ce49615d338bae8fb79df5daffab19353c900.1401902905.git.luto@amacapital.net\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\ncpuidle: fix comment\n\nSigned-off-by: Antonio Ospite <ao2@ao2.it>\nCc: \"Rafael J. Wysocki\" <rafael.j.wysocki@intel.com>\nCc: \"tuukka.tikkanen@linaro.org\" <tuukka.tikkanen@linaro.org>\nSigned-off-by: Jiri Kosina <jkosina@suse.cz>\n\ncpuidle: fix permission for driver name sysfs node\n\ncpuidle driver name sysfs node is read-only, so permissions should be 0444.\n\nSigned-off-by: Mohammad Merajul Islam Molla <meraj.enigma@gmail.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu governor - remove unused macro STDDEV_THRESH\n\nSTDDEV_THRESH was once defined and used in menu governor. But now its no longer\nused anywhere. So removing the define.\n\nSigned-off-by: Mohammad Merajul Islam Molla <meraj.enigma@gmail.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: ladder governor - use macro instead of hardcoded value\n\nuse CPUIDLE_DRIVER_STATE_START, instead of hardcoded value 0. As,\nCPUIDLE_DRIVER_STATE_START can be 1/0 based on\nCONFIG_ARCH_HAS_CPU_RELAX is defined or not.\n\nSigned-off-by: Mohammad Merajul Islam Molla <meraj.enigma@gmail.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Remove manual selection of the multiple driver support\n\nLike the coupled idle state, it is not up to the user to set this option\nbut the driver to select it.\n\nRemove the interactive selection of this option.\n\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Remove time measurement in poll state\n\nThe time measurement is already done in the cpuidle framework in the\n'cpuidle_enter_state' function.\n\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: Use shifts when calculating averages where possible\n\nWe use do_div even though the divisor will usually be a power-of-two\nunless there are unusual outliers. Use shifts where possible\n\nSigned-off-by: Mel Gorman <mgorman@suse.de>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: Use ktime_to_us instead of reinventing the wheel\n\nThe ktime_to_us implementation is slightly better than the one implemented\nin menu.c. Use it\n\nSigned-off-by: Mel Gorman <mgorman@suse.de>\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: Call nr_iowait_cpu less times\n\nmenu_select() via inline functions calls nr_iowait_cpu() twice as much\nas necessary.\n\nSigned-off-by: Mel Gorman <mgorman@suse.de>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ndrivers/cpuidle: Replace __get_cpu_var uses for address calculation\n\nAll of these are for address calculation. Replace with\nthis_cpu_ptr().\n\nCc: Daniel Lezcano <daniel.lezcano@linaro.org>\nCc: linux-pm@vger.kernel.org\nAcked-by: Rafael J. Wysocki <rjw@sisk.pl>\n[cpufreq changes]\nSigned-off-by: Christoph Lameter <cl@linux.com>\nSigned-off-by: Tejun Heo <tj@kernel.org>\n\ncpuidle: Check the sign of index in cpuidle_reflect()\n\nAvoid calling the governor's ->reflect method if the state index\npassed to cpuidle_reflect() is negative.\n\nThis allows the analogous check to be dropped from menu_reflect(),\nso do that too, and ensures that arbitrary error codes can be\npassed to cpuidle_reflect() as the index with no adverse\nconsequences.\n\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\nReviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nAcked-by: Peter Zijlstra (Intel) <peterz@infradead.org>\n\ncpuidle: Fix the kerneldoc comment for cpuidle_enter_state()\n\nThe kerneldoc comment for cpuidle_enter_state() doesn't match the\nfunction's header any more, so fix it.\n\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: Do not use CPUIDLE_DRIVER_STATE_START in cpuidle.c\n\nThe CPUIDLE_DRIVER_STATE_START symbol is defined as 1 only if\nCONFIG_ARCH_HAS_CPU_RELAX is set, otherwise it is defined as 0.\nHowever, if CONFIG_ARCH_HAS_CPU_RELAX is set, the first (index 0)\nentry in the cpuidle driver's table of states is overwritten with\nthe default \"poll\" entry by the core.  The \"state\" defined by the\n\"poll\" entry doesn't provide ->enter_dead and ->enter_freeze\ncallbacks and its exit_latency is 0.\n\nFor this reason, it is not necessary to use CPUIDLE_DRIVER_STATE_START\nin cpuidle_play_dead() (->enter_dead is NULL, so the \"poll state\"\nwill be skipped by the loop).\n\nIt also is arguably unuseful to return states with exit_latency\nequal to 0 from find_deepest_state(), so the function can be modified\nto start the loop from index 0 and the \"poll state\" will be skipped by\nit as a result of the check against latency_req.\n\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\nReviewed-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>\n\ncpuidle,x86: increase forced cut-off for polling to 20us\n\nThe cpuidle menu governor has a forced cut-off for polling at 5us,\nin order to deal with firmware that gives the OS bad information\non cpuidle states, leading to the system spending way too much time\nin polling.\n\nHowever, at least one x86 CPU family (Atom) has chips that have\na 20us break-even point for C1. Forcing the polling cut-off to\nless than that wastes performance and power.\n\nIncrease the polling cut-off to 20us.\n\nSystems with a lower C1 latency will be found in the states table by\nthe menu governor, which will pick those states as appropriate.\n\nSigned-off-by: Rik van Riel <riel@redhat.com>\nAcked-by: Arjan van de Ven <arjan@linux.intel.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle,menu: use interactivity_req to disable polling\n\nThe menu governor carefully figures out how much time we typically\nsleep for an estimated sleep interval, or whether there is a repeating\npattern going on, and corrects that estimate for the CPU load.\n\nThen it proceeds to ignore that information when determining whether\nor not to consider polling. This is not a big deal on most x86 CPUs,\nwhich have very low C1 latencies, and the patch should not have any\neffect on those CPUs.\n\nHowever, certain CPUs (eg. Atom) have much higher C1 latencies, and\nit would be good to not waste performance and power on those CPUs if\nwe are expecting a very low wakeup latency.\n\nDisable polling based on the estimated interactivity requirement, not\non the time to the next timer interrupt.\n\nSigned-off-by: Rik van Riel <riel@redhat.com>\nAcked-by: Arjan van de Ven <arjan@linux.intel.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle,menu: smooth out measured_us calculation\n\nThe cpuidle state tables contain the maximum exit latency for each\ncpuidle state. On x86, that is the exit latency for when the entire\npackage goes into that same idle state.\n\nHowever, a lot of the time we only go into the core idle state,\nnot the package idle state. This means we see a much smaller exit\nlatency.\n\nWe have no way to detect whether we went into the core or package\nidle state while idle, and that is ok.\n\nHowever, the current menu_update logic does have the potential to\ntrip up the repeating pattern detection in get_typical_interval.\nIf the system is experiencing an exit latency near the idle state's\nexit latency, some of the samples will have exit_us subtracted,\nwhile others will not. This turns a repeating pattern into mush,\npotentially breaking get_typical_interval.\n\nFurthermore, for smaller sleep intervals, we know the chance that\nall the cores in the package went to the same idle state are fairly\nsmall. Dividing the measured_us by two, instead of subtracting the\nfull exit latency when hitting a small measured_us, will reduce the\nerror.\n\nSigned-off-by: Rik van Riel <riel@redhat.com>\nAcked-by: Arjan van de Ven <arjan@linux.intel.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0\n\nCommit a9ceb78bc75c (cpuidle,menu: use interactivity_req to disable\npolling) exposed a bug in menu_select() causing it to return -1\non systems with CPUIDLE_DRIVER_STATE_START equal to zero, although\nit should have returned 0.  As a result, idle states are not entered\nby CPUs on those systems.\n\nNamely, on the systems in question data->last_state_idx is initially\nequal to -1 and the above commit modified the condition that would\nhave caused it to be changed to 0 to be less likely to trigger which\nexposed the problem.  However, setting data->last_state_idx initially\nto -1 doesn't make sense at all and on the affected systems it should\nalways be set to CPUIDLE_DRIVER_STATE_START (ie. 0) unconditionally,\nso make that happen.\n\nFixes: a9ceb78bc75c (cpuidle,menu: use interactivity_req to disable polling)\nReported-and-tested-by: Sudeep Holla <sudeep.holla@arm.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: avoid expensive square root computation\n\nComputing the integer square root is a rather expensive operation, at\nleast compared to doing a 64x64 -> 64 multiply (avg*avg) and, on 64\nbit platforms, doing an extra comparison to a constant (variance <=\nU64_MAX/36).\n\nOn 64 bit platforms, this does mean that we add a restriction on the\nrange of the variance where we end up using the estimate (since\npreviously the stddev <= ULONG_MAX was a tautology), but on the other\nhand, we extend the range quite substantially on 32 bit platforms - in\nboth cases, we now allow standard deviations up to 715 seconds, which\nis for example guaranteed if all observations are less than 1430\nseconds.\n\nSigned-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: help gcc generate slightly better code\n\nWe know that the avg variable actually ends up holding a 32 bit\nquantity, since it's an average of such numbers. It is only a u64\nbecause it is temporarily used to hold the sum. Making it an actual\nu32 allows gcc to generate slightly better code, e.g. when computing\nthe square, it can do a 32x32->64 multiply.\n\nSigned-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: use high confidence factors only when considering polling\n\nThe menu governor uses five different factors to pick the\nidle state:\n - the user configured latency_req\n - the time until the next timer (next_timer_us)\n - the typical sleep interval, as measured recently\n - an estimate of sleep time by dividing next_timer_us by an observed factor\n - a load corrected version of the above, divided again by load\n\nOnly the first three items are known with enough confidence that\nwe can use them to consider polling, instead of an actual CPU\nidle state, because the cost of being wrong about polling can be\nexcessive power use.\n\nThe latter two are used in the menu governor's main selection\nloop, and can result in choosing a shallower idle state when\nthe system is expected to be busy again soon.\n\nThis pushes a busy system in the \"performance\" direction of\nthe performance<>power tradeoff, when choosing between idle\nstates, but stays more strictly on the \"power\" state when\ndeciding between polling and C1.\n\nSigned-off-by: Rik van Riel <riel@redhat.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: Fall back to polling if next timer event is near\n\nCommit a9ceb78bc75c (cpuidle,menu: use interactivity_req to disable\npolling) changed the behavior of the fallback state selection part\nof menu_select() so it looks at interactivity_req instead of\ndata->next_timer_us when it makes its decision.  That effectively\ncaused polling to be used more often as fallback idle which led to\nsignificant increases of energy consumption in some cases.\n\nCommit e132b9b3bc7f (cpuidle: menu: use high confidence factors\nonly when considering polling) changed that logic again to be more\npredictable, but that didn't help with the increased energy\nconsumption problem.\n\nFor this reason, go back to making decisions on which state to fall\nback to based on data->next_timer_us which is the time we know for\nsure something will happen rather than a prediction (which may be\ninaccurate and turns out to be so often enough to be problematic).\nHowever, take the target residency of the first proper idle state\n(C1) into account, so that state is not used as the fallback one\nif its target residency is greater than data->next_timer_us.\n\nFixes: a9ceb78bc75c (cpuidle,menu: use interactivity_req to disable polling)\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\nReported-and-tested-by: Doug Smythies <dsmythies@telus.net>\n\ncpuidle: Indicate when a device has been unregistered\n\nCurrently the 'registered' member of the cpuidle_device struct is set\nto 1 during cpuidle_register_device. In this same function there are\nchecks to see if the device is already registered to prevent duplicate\ncalls to register the device, but this value is never set to 0 even on\nunregister of the device. Because of this, any attempt to call\ncpuidle_register_device after a call to cpuidle_unregister_device will\nfail which shouldn't be the case.\n\nTo prevent this, set registered to 0 when the device is unregistered.\n\nFixes: c878a52d3c7c (cpuidle: Check if device is already registered)\nSigned-off-by: Dave Gerlach <d-gerlach@ti.com>\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nCc: All applicable <stable@vger.kernel.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: ladder: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID\n\nWhen the ladder governor sees the CPUIDLE_FLAG_TIME_INVALID flag,\nit unconditionally causes a state promotion by setting last_residency\nto a number higher than the state's promotion_time:\n\nlast_residency = last_state->threshold.promotion_time + 1\n\nIt does this for fear that cpuidle_get_last_residency()\nwill be in-accurate, because cpuidle_enter_state() invoked\na state with CPUIDLE_FLAG_TIME_INVALID.\n\nBut the only state with CPUIDLE_FLAG_TIME_INVALID is\nacpi_safe_halt(), which may return well after its actual\nidle duration because it enables interrupts, so cpuidle_enter_state()\nalso measures interrupt service time.\n\nSo what?  In ladder, a huge invalid last_residency has exactly\nthe same effect as the current code -- it unconditionally\ncauses a state promotion.\n\nIn the case where the idle residency plus measured interrupt\nhandling time is less than the state's demotion_time -- we should\nuse that timestamp to give ladder a chance to demote, rather than\nunconditionally promoting.\n\nThis can be done by simply ignoring the CPUIDLE_FLAG_TIME_INVALID,\nand using the \"invalid\" time, as it is either equal to what we are\ndoing today, or better.\n\nSigned-off-by: Len Brown <len.brown@intel.com>\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\ncpuidle: menu: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID\n\nWhen menu sees CPUIDLE_FLAG_TIME_INVALID, it ignores its timestamps,\nand assumes that idle lasted as long as the time till next predicted\ntimer expiration.\n\nBut if an interrupt was seen and serviced before that duration,\nit would actually be more accurate to use the measured time\nrather than rounding up to the next predicted timer expiration.\n\nAnd if an interrupt is seen and serviced such that the mesured time\nexceeds the time till next predicted timer expiration, then\ntruncating to that expiration is the right thing to do --\nsince we can never stay idle past that timer expiration.\n\nSo the code can do a better job without\nchecking for CPUIDLE_FLAG_TIME_INVALID.\n\nSigned-off-by: Len Brown <len.brown@intel.com>\nAcked-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nReviewed-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/56fb90febedb138821f6bb265c1858830d85c74f"},{"sha":"31a9bdb720b9a3d3b964d5f97a3065d53c231908","author":{"name":"Viresh Kumar","email":"4ca49bc1dcfdfc376d29da1eb07a3e0b3cd46daa@linaro.org"},"message":"cpufreq: Optimize cpufreq_frequency_table_verify()\n\ncpufreq_frequency_table_verify() is rewritten here to make it more logical\nand efficient.\n - merge multiple lines for variable declarations together.\n - quit early if any frequency between min/max is found.\n - don't call cpufreq_verify_within_limits() in case any valid freq is\n   found as it is of no use.\n - rename the count variable as found and change its type to boolean.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/31a9bdb720b9a3d3b964d5f97a3065d53c231908"},{"sha":"8d5312a0801b8062549a37255436490ae990cac8","author":{"name":"Stratos Karafotis","email":"06525debe962626424a3d9e0fbdc3c01714b569b@semaphore.gr"},"message":"cpufreq: Break out early when frequency equals target_freq\n\nMany drivers keep frequencies in frequency table in ascending\nor descending order. When governor tries to change to policy->min\nor policy->max respectively then the cpufreq_frequency_table_target\ncould return on first iteration. This will save some iteration cycles.\n\nSo, break out early when a frequency in cpufreq_frequency_table\nequals to target one.\n\nTesting this during kernel compilation using ondemand governor\nwith a frequency table in ascending order, the\ncpufreq_frequency_table_target returned early on the first\niteration at about 30% of times called.\n\nSigned-off-by: Stratos Karafotis <stratosk@semaphore.gr>\nAcked-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/8d5312a0801b8062549a37255436490ae990cac8"},{"sha":"b079a08d4b2db829e6a456411a9c378405ebe88b","author":{"name":"palaych","email":"23a5352a8f44f3592be0cf9bff70c342efcc256f@yandex.ru"},"message":"staging: binder: some patch\n\nstaging: binder: add vm_fault handler\n\nAn issue was observed when a userspace task exits.\nThe page which hits error here is the zero page.\nIn binder mmap, the whole of vma is not mapped.\nOn a task crash, when debuggerd reads the binder regions,\nthe unmapped areas fall to do_anonymous_page in handle_pte_fault,\ndue to the absence of a vm_fault handler. This results in\nzero page being mapped. Later in zap_pte_range, vm_normal_page\nreturns zero page in the case of VM_MIXEDMAP and it results in the\nerror.\n\nBUG: Bad page map in process mediaserver  pte:9dff379f pmd:9bfbd831\npage:c0ed8e60 count:1 mapcount:-1 mapping:  (null) index:0x0\npage flags: 0x404(referenced|reserved)\naddr:40c3f000 vm_flags:10220051 anon_vma:  (null) mapping:d9fe0764 index:fd\nvma->vm_ops->fault:   (null)\nvma->vm_file->f_op->mmap: binder_mmap+0x0/0x274\nCPU: 0 PID: 1463 Comm: mediaserver Tainted: G        W    3.10.17+ #1\n[<c001549c>] (unwind_backtrace+0x0/0x11c) from [<c001200c>] (show_stack+0x10/0x14)\n[<c001200c>] (show_stack+0x10/0x14) from [<c0103d78>] (print_bad_pte+0x158/0x190)\n[<c0103d78>] (print_bad_pte+0x158/0x190) from [<c01055f0>] (unmap_single_vma+0x2e4/0x598)\n[<c01055f0>] (unmap_single_vma+0x2e4/0x598) from [<c010618c>] (unmap_vmas+0x34/0x50)\n[<c010618c>] (unmap_vmas+0x34/0x50) from [<c010a9e4>] (exit_mmap+0xc8/0x1e8)\n[<c010a9e4>] (exit_mmap+0xc8/0x1e8) from [<c00520f0>] (mmput+0x54/0xd0)\n[<c00520f0>] (mmput+0x54/0xd0) from [<c005972c>] (do_exit+0x360/0x990)\n[<c005972c>] (do_exit+0x360/0x990) from [<c0059ef0>] (do_group_exit+0x84/0xc0)\n[<c0059ef0>] (do_group_exit+0x84/0xc0) from [<c0066de0>] (get_signal_to_deliver+0x4d4/0x548)\n[<c0066de0>] (get_signal_to_deliver+0x4d4/0x548) from [<c0011500>] (do_signal+0xa8/0x3b8)\n\nAdd a vm_fault handler which returns VM_FAULT_SIGBUS, and prevents the\nwrong fallback to do_anonymous_page.\n\nCRs-Fixed: 673147\nChange-Id: I43730a51b6c819538b46c5e4dc5c96c8a384098d\nSigned-off-by: Vinayak Menon <vinayakm.list@gmail.com>\nPatch-mainline: linux-arm-kernel @ 06/02/14, 18:17\nSigned-off-by: Vignesh Radhakrishnan <vigneshr@codeaurora.org>\n\nandroid: binder: Use wake up hint for synchronous transactions.\n\nUse wake_up_interruptible_sync() to hint to the scheduler binder\ntransactions are synchronous wakeups. Disable premption while waking\nto avoid ping-ponging on the binder lock.\n\nChange-Id: Ic406a232d0873662f80148e37acefe5243d912a0","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/b079a08d4b2db829e6a456411a9c378405ebe88b"},{"sha":"236e94fc3621ba6311d9312ca52597242fe0e766","author":{"name":"palaych","email":"23a5352a8f44f3592be0cf9bff70c342efcc256f@yandex.ru"},"message":"sd: Deep Sleep fix","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/236e94fc3621ba6311d9312ca52597242fe0e766"},{"sha":"9b2f9a6fd8df1138825a23b3bc607c4f49450309","author":{"name":"HRTKernel","email":"e03213df9529d0363e2d70c9da0e4f63730010b6@hacker-kernel.com"},"message":"kernel/power: add powersuspend driver","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/9b2f9a6fd8df1138825a23b3bc607c4f49450309"},{"sha":"8b6880b636f563843a972131c122752d4c7c29f8","author":{"name":"HRTKernel","email":"e03213df9529d0363e2d70c9da0e4f63730010b6@hacker-kernel.com"},"message":"sched: Reduce overestimating rq->avg_idle\nWhen updating avg_idle, if the delta exceeds some max value, then\navg_idle\ngets set to the max, regardless of what the previous avg was. This can\ncause\navg_idle to often be overestimated.\n\nThis patch modifies the way we update avg_idle by always updating it\nwith the\nfunction call to update_avg() first. Then, if avg_idle exceeds the max,\nwe set\nit to the max.\n\nSigned-off-by: Jason Low <jason.low2@hp.com>\nReviewed-by: Rik van Riel <riel@redhat.com>\n\nSigned-off-by: Paul Reioux <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/8b6880b636f563843a972131c122752d4c7c29f8"},{"sha":"60aeff21f5b996d2887990aaaf873c323c7e903c","author":{"name":"AntonioMartitos","email":"ec1019fed712ef00c9eca3b062c0ae5fd0a37fd5@gmail.com"},"message":"Revert \"Crypto : boost performance\"\n\nThis reverts commit 4b8a68e90484dbf46ed9fd1a5908959db983e186.","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/60aeff21f5b996d2887990aaaf873c323c7e903c"},{"sha":"e8b82f8d7f092ce1bc7617c513ecd8f42d34342d","author":{"name":"Lukas0610","email":"3b8e10480754ba93523db5dc4626a5f001e54bb7@lukasberger.at"},"message":"battery: added upper, tunable maximal charging-limit","distinct":true,"url":"https://api.github.com/repos/AntonioMartitos/MartitosEstable/commits/e8b82f8d7f092ce1bc7617c513ecd8f42d34342d"}]}
{"actor":{"display_login":"AntonioMartitos"}}