{"push_id":1387178661,"size":52,"distinct_size":52,"ref":"refs/heads/stockbase","head":"3a65b01d284db19c747cffefa45ab907c353be8f","before":"e09865ba01a573a2c49963ac36ae5e9b42824a61","commits":[{"sha":"b5336b05ad20e0134cc48936044d81c9b88ce697","author":{"name":"kangjie","email":"c6dbead15f805a0881e9469feef97d17b99af2f6@gmail.com"},"message":"fix infoleak in rtnetlink\n\nthe stack object \"map\" has a total size of 32 bytes. Its last 4\nbytes are padding generated by compiler. These padding bytes are\nnot initialized and sent out via \"nla_put\"\n\nBug: 28620102\n\nChange-Id: I13da380c6fe8abca49e3cf9f05293c02b44d2e5e\nSigned-off-by: kangjie <kangjielu@gmail.com>\n(cherry picked from commit d7bd06d4e7f6b8f9019bb993fd41dc361154abc3)","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/b5336b05ad20e0134cc48936044d81c9b88ce697"},{"sha":"3db086e7c32ad6253e632250891e37763db1b0a4","author":{"name":"Naveen Kaje","email":"c29db4a270fa4582ac7d32e1622de0741cf32b39@codeaurora.org"},"message":"BACKPORT: fs: Add TTY PM IOCTLs to compat table\n\nAugment the compat ioctl table with entries for\nPM control of TTY devices. These compat entries\nwere not present since other TTY/serial core drivers\nwere not using them.\n\nBackport from kernel msm-3.18\n\nChange-Id: I96a0e54c001d780a2a427380655f1fbb0091aef7\nSigned-off-by: Naveen Kaje <nkaje@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/3db086e7c32ad6253e632250891e37763db1b0a4"},{"sha":"20fe9e3d62b2fd1549b5402cd4ce4c20f6271bac","author":{"name":"Eric W. Biederman","email":"e4ccc9f9b54eebd6cb8fc7643b8083f628b68ff2@xmission.com"},"message":"mnt: Fail collect_mounts when applied to unmounted mounts\n\nThe only users of collect_mounts are in audit_tree.c\n\nIn audit_trim_trees and audit_add_tree_rule the path passed into\ncollect_mounts is generated from kern_path passed an audit_tree\npathname which is guaranteed to be an absolute path.   In those cases\ncollect_mounts is obviously intended to work on mounted paths and\nif a race results in paths that are unmounted when collect_mounts\nit is reasonable to fail early.\n\nThe paths passed into audit_tag_tree don't have the absolute path\ncheck.  But are used to play with fsnotify and otherwise interact with\nthe audit_trees, so again operating only on mounted paths appears\nreasonable.\n\nAvoid having to worry about what happens when we try and audit\nunmounted filesystems by restricting collect_mounts to mounts\nthat appear in the mount tree.\n\nChange-Id: I2edfee6d6951a2179ce8f53785b65ddb1eb95629\nSigned-off-by: \"Eric W. Biederman\" <ebiederm@xmission.com>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/20fe9e3d62b2fd1549b5402cd4ce4c20f6271bac"},{"sha":"bf17bbca2b21c443d62109200faddaf003cd4611","author":{"name":"Scott Bauer","email":"a10728e41fc05d9185f0a5f8bb2e5c9ed2f31a1b@plzdonthack.me"},"message":"HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands\n\nThis patch validates the num_values parameter from userland during the\nHIDIOCGUSAGES and HIDIOCSUSAGES commands. Previously, if the report id was set\nto HID_REPORT_ID_UNKNOWN, we would fail to validate the num_values parameter\nleading to a heap overflow.\n\nChange-Id: I10866ee01c7ba430eab2b5cc3356c9519c7f9730\nCc: stable@vger.kernel.org\nSigned-off-by: Scott Bauer <sbauer@plzdonthack.me>\nSigned-off-by: Jiri Kosina <jkosina@suse.cz>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/bf17bbca2b21c443d62109200faddaf003cd4611"},{"sha":"333cf81665aa637e80c9413a72beddb8cb331e72","author":{"name":"KOVACS Krisztian","email":"7b293a8814bc8b89d754d8b22a19855149c22275@sch.bme.hu"},"message":"crypto: lz4,lz4hc - fix decompression\n\nThe lz4 library has two functions for decompression, with slightly\ndifferent signatures and behaviour. The lz4_decompress_crypto() function\nseemed to be using the one that assumes that the decompressed length is\nknown in advance.\n\nThis patch switches to the other decompression function and makes sure\nthat the length of the decompressed output is properly returned to the\ncaller.\n\nThe same issue was present in the lz4hc algorithm.\n\nCoincidentally, this change also makes very basic lz4 and lz4hc\ncompression tests in testmgr pass.\n\nChange-Id: I506303398a672aa0cdbc7dc6145edf61c5a68f33\nSigned-off-by: KOVACS Krisztian <hidden@sch.bme.hu>\nSigned-off-by: Herbert Xu <herbert@gondor.apana.org.au>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/333cf81665aa637e80c9413a72beddb8cb331e72"},{"sha":"144c37152173f30b7d0b25d7bfe0d81c1f1c0a35","author":{"name":"Paul E. McKenney","email":"54db74b147e8d38a5646b91b8f7eb5b54f123fc4@linaro.org"},"message":"rcu: Direct algorithmic SRCU implementation\n\nThe current implementation of synchronize_srcu_expedited() can cause\nsevere OS jitter due to its use of synchronize_sched(), which in turn\ninvokes try_stop_cpus(), which causes each CPU to be sent an IPI.\nThis can result in severe performance degradation for real-time workloads\nand especially for short-interation-length HPC workloads.  Furthermore,\nbecause only one instance of try_stop_cpus() can be making forward progress\nat a given time, only one instance of synchronize_srcu_expedited() can\nmake forward progress at a time, even if they are all operating on\ndistinct srcu_struct structures.\n\nThis commit, inspired by an earlier implementation by Peter Zijlstra\n(https://lkml.org/lkml/2012/1/31/211) and by further offline discussions,\ntakes a strictly algorithmic bits-in-memory approach.  This has the\ndisadvantage of requiring one explicit memory-barrier instruction in\neach of srcu_read_lock() and srcu_read_unlock(), but on the other hand\ncompletely dispenses with OS jitter and furthermore allows SRCU to be\nused freely by CPUs that RCU believes to be idle or offline.\n\nThe update-side implementation handles the single read-side memory\nbarrier by rechecking the per-CPU counters after summing them and\nby running through the update-side state machine twice.\n\nThis implementation has passed moderate rcutorture testing on both\nx86 and Power.  Also updated to use this_cpu_ptr() instead of per_cpu_ptr(),\nas suggested by Peter Zijlstra.\n\nReported-by: Peter Zijlstra <peterz@infradead.org>\nSigned-off-by: Paul E. McKenney <paul.mckenney@linaro.org>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nAcked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>\nReviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>\n\nrcu: Remove fast check path from __synchronize_srcu()\n\nThe fastpath in __synchronize_srcu() is designed to handle cases where\nthere are a large number of concurrent calls for the same srcu_struct\nstructure.  However, the Linux kernel currently does not use SRCU in\nthis manner, so remove the fastpath checks for simplicity.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Increment upper bit only for srcu_read_lock()\n\nThe purpose of the upper bit of SRCU's per-CPU counters is to guarantee\nthat no reasonable series of srcu_read_lock() and srcu_read_unlock()\noperations can return the value of the counter to its original value.\nThis guarantee is require only after the index has been switched to\nthe other set of counters, so at most one srcu_read_lock() can affect\na given CPU's counter.  The number of srcu_read_unlock() operations\non a given counter is limited to the number of tasks in the system,\nwhich given the Linux kernel's current structure is limited to far less\nthan 2^30 on 32-bit systems and far less than 2^62 on 64-bit systems.\n(Something about a limited number of bytes in the kernel's address space.)\n\nTherefore, if srcu_read_lock() increments the upper bits, then\nsrcu_read_unlock() need not do so.  In this case, an srcu_read_lock() and\nan srcu_read_unlock() will flip the lower bit of the upper field of the\ncounter.  An unreasonably large additional number of srcu_read_unlock()\noperations would be required to return the counter to its initial value,\nthus preserving the guarantee.\n\nThis commit takes this approach, which further allows it to shrink\nthe size of the upper field to one bit, making the number of\nsrcu_read_unlock() operations required to return the counter to its\ninitial value even more unreasonable than before.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Flip ->completed only once per SRCU grace period\n\nThis is an optimization of the SRCU grace period.  To guard against\npreempted readers with old values of the counter, it suffices to scan the\nold counters once more, then flip ->completed only one time.  The reason\nthis works is that the old readers must have incremented the old set of\ncounters (if they have not yet incremented, then their critical section\nstarts after this grace period, so they may be safely ignored).\n\nThis commit therefore optimizes the second flip out in favor of a simple\nrescan.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Improve SRCU's wait_idx() comments\n\nThe safety of SRCU is provided byy wait_idx() rather than flipping.\nThe flipping actually prevents starvation.\n\nThis commit therefore updates the comments to more accurately and\nprecisely describe what is going on.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Implement a variant of Peter's SRCU algorithm\n\nThis commit implements a variant of Peter's algorithm, which may be found\nat https://lkml.org/lkml/2012/2/1/119.\n\no\tMake the checking lock-free to enable parallel checking.\n\tParallel checking is required when (1) the original checking\n\ttask is preempted for a long time, (2) sychronize_srcu_expedited()\n\tstarts during an ongoing SRCU grace period, or (3) we wish to\n\tavoid acquiring a lock.\n\no\tSince the checking is lock-free, we avoid a mutex in state machine\n\tfor call_srcu().\n\no\tRemove the SRCU_REF_MASK and remove the coupling with the flipping.\n\tThis might allow us to remove the preempt_disable() in future\n\tversions, though such removal will need great care because it\n\trescinds the one-old-reader-per-CPU guarantee.\n\no\tRemove a smp_mb(), simplify the comments and make the smp_mb() pairs\n\tmore intuitive.\n\nInspired-by: Peter Zijlstra <peterz@infradead.org>\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Improve srcu_readers_active_idx()'s cache locality\n\nExpand the calls to srcu_readers_active_idx() from srcu_readers_active()\ninline.  This change improves cache locality by interating over the CPUs\nonce rather than twice.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Use single value to handle expedited SRCU grace periods\n\nThe earlier algorithm used an \"expedited\" flag combined with a \"trycount\"\ncounter to differentiate between normal and expedited SRCU grace periods.\nHowever, the difference can be encoded into a single counter with a cutoff\nvalue and different initial values for expedited and normal SRCU grace\nperiods.  This commit makes that change.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nConflicts:\n\n\tkernel/srcu.c\n\nrcu: Implement per-domain single-threaded call_srcu() state machine\n\nThis commit implements an SRCU state machine in support of call_srcu().\nThe state machine is preemptible, light-weight, and single-threaded,\nminimizing synchronization overhead.  In particular, there is no longer\nany need for synchronize_srcu() to be guarded by a mutex.\n\nExpedited processing is handled, at least in the absence of concurrent\ngrace-period operations on that same srcu_struct structure, by having\nthe synchronize_srcu_expedited() thread take on the role of the\nworkqueue thread for one iteration.\n\nThere is a reasonable probability that a given SRCU callback will\nbe invoked on the same CPU that registered it, however, there is no\nguarantee.  Concurrent SRCU grace-period primitives can cause callbacks\nto be executed elsewhere, even in absence of CPU-hotplug operations.\n\nCallbacks execute in process context, but under the influence of\nlocal_bh_disable(), so it is illegal to sleep in an SRCU callback\nfunction.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nAcked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\n\nrcu: Remove unused srcu_barrier()\n\nThe old srcu_barrier() macro is now unused.  This commit removes it so\nthat it may be used for the SRCU flavor of rcu_barrier(), which will in\nturn be needed to allow the upcoming call_srcu() to be used from within\nmodules.\n\nSigned-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/144c37152173f30b7d0b25d7bfe0d81c1f1c0a35"},{"sha":"140a5305f12b598f6123b1b4ac90c8bb4bdf2d47","author":{"name":"Oleg Nesterov","email":"66df68a59e3b21ba65b9e7f3fee04bb7abd7ddc2@redhat.com"},"message":"sched: fix the theoretical signal_wake_up() vs schedule() race\n\ncommit e0acd0a68ec7dbf6b7a81a87a867ebd7ac9b76c4 upstream.\n\nThis is only theoretical, but after try_to_wake_up(p) was changed\nto check p->state under p->pi_lock the code like\n\n\t__set_current_state(TASK_INTERRUPTIBLE);\n\tschedule();\n\ncan miss a signal. This is the special case of wait-for-condition,\nit relies on try_to_wake_up/schedule interaction and thus it does\nnot need mb() between __set_current_state() and if(signal_pending).\n\nHowever, this __set_current_state() can move into the critical\nsection protected by rq->lock, now that try_to_wake_up() takes\nanother lock we need to ensure that it can't be reordered with\n\"if (signal_pending(current))\" check inside that section.\n\nThe patch is actually one-liner, it simply adds smp_wmb() before\nspin_lock_irq(rq->lock). This is what try_to_wake_up() already\ndoes by the same reason.\n\nWe turn this wmb() into the new helper, smp_mb__before_spinlock(),\nfor better documentation and to allow the architectures to change\nthe default implementation.\n\nWhile at it, kill smp_mb__after_lock(), it has no callers.\n\nPerhaps we can also add smp_mb__before/after_spinunlock() for\nprepare_to_wait().\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nAcked-by: Peter Zijlstra <peterz@infradead.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/140a5305f12b598f6123b1b4ac90c8bb4bdf2d47"},{"sha":"3c28a7cd2ca9de9607c92e12ef7e8b08b8c284cb","author":{"name":"Steve Kondik","email":"5eb4f8ae09d1b5661f1add989b1c3fabe443bd83@cyngn.com"},"message":"sched: Fix race in idle_balance()\n\nThe scheduler main function 'schedule()' checks if there are no more tasks\non the runqueue. Then it checks if a task should be pulled in the current\nrunqueue in idle_balance() assuming it will go to idle otherwise.\n\nBut idle_balance() releases the rq->lock in order to look up the sched\ndomains and takes the lock again right after. That opens a window where\nanother cpu may put a task in our runqueue, so we won't go to idle but\nwe have filled the idle_stamp, thinking we will.\n\nThis patch closes the window by checking if the runqueue has been modified\nbut without pulling a task after taking the lock again, so we won't go to idle\nright after in the __schedule() function.\n\nChange-Id: I1ba126feae6e488509782c63050952ba4e5fc0b8\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nCc: alex.shi@linaro.org\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/1389949444-14821-2-git-send-email-daniel.lezcano@linaro.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/3c28a7cd2ca9de9607c92e12ef7e8b08b8c284cb"},{"sha":"db2c11f4c158f1e78f5b186977999ebe0db59a6b","author":{"name":"Ben Segall","email":"99eb0c7a4f3a18874efff9726ade52c2b7beb2eb@google.com"},"message":"sched: Avoid throttle_cfs_rq() racing with period_timer stopping\n\nthrottle_cfs_rq() doesn't check to make sure that period_timer is running,\nand while update_curr/assign_cfs_runtime does, a concurrently running\nperiod_timer on another cpu could cancel itself between this cpu's\nupdate_curr and throttle_cfs_rq(). If there are no other cfs_rqs running\nin the tg to restart the timer, this causes the cfs_rq to be stranded\nforever.\n\nFix this by calling __start_cfs_bandwidth() in throttle if the timer is\ninactive.\n\n(Also add some sched_debug lines for cfs_bandwidth.)\n\nTested: make a run/sleep task in a cgroup, loop switching the cgroup\nbetween 1ms/100ms quota and unlimited, checking for timer_active=0 and\nthrottled=1 as a failure. With the throttle_cfs_rq() change commented out\nthis fails, with the full patch it passes.\n\nChange-Id: I27ba9f78190ccfc2f50d1c147640d6d2aa31832f\nSigned-off-by: Ben Segall <bsegall@google.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: pjt@google.com\nLink: http://lkml.kernel.org/r/20131016181632.22647.84174.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/db2c11f4c158f1e78f5b186977999ebe0db59a6b"},{"sha":"ba2dd131ee8a1bf70e6ad857f8bca472afec20d4","author":{"name":"Roman Gushchin","email":"f505efce8158e7e50be506e8fb337100eec9e897@yandex-team.ru"},"message":"sched/fair: Fix tg_set_cfs_bandwidth() deadlock on rq->lock\n\ntg_set_cfs_bandwidth() sets cfs_b->timer_active to 0 to\nforce the period timer restart. It's not safe, because\ncan lead to deadlock, described in commit 927b54fccbf0:\n\"__start_cfs_bandwidth calls hrtimer_cancel while holding rq->lock,\nwaiting for the hrtimer to finish. However, if sched_cfs_period_timer\nruns for another loop iteration, the hrtimer can attempt to take\nrq->lock, resulting in deadlock.\"\n\nThree CPUs must be involved:\n\n  CPU0               CPU1                         CPU2\n  take rq->lock      period timer fired\n  ...                take cfs_b lock\n  ...                ...                          tg_set_cfs_bandwidth()\n  throttle_cfs_rq()  release cfs_b lock           take cfs_b lock\n  ...                distribute_cfs_runtime()     timer_active = 0\n  take cfs_b->lock   wait for rq->lock            ...\n  __start_cfs_bandwidth()\n  {wait for timer callback\n   break if timer_active == 1}\n\nSo, CPU0 and CPU1 are deadlocked.\n\nInstead of resetting cfs_b->timer_active, tg_set_cfs_bandwidth can\nwait for period timer callbacks (ignoring cfs_b->timer_active) and\nrestart the timer explicitly.\n\nChange-Id: Ib108546ea8d144fb7d2c2ae59bea6ab3632b51f4\nSigned-off-by: Roman Gushchin <klamm@yandex-team.ru>\nReviewed-by: Ben Segall <bsegall@google.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/87wqdi9g8e.wl\\%klamm@yandex-team.ru\nCc: pjt@google.com\nCc: chris.j.arges@canonical.com\nCc: gregkh@linuxfoundation.org\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/ba2dd131ee8a1bf70e6ad857f8bca472afec20d4"},{"sha":"8e264040975e66296d4c202cf37daf6a5b6d7d23","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"trace, ring-buffer: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the tracing ring-buffer code by using this latter form of callback\nregistration.\n\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Ingo Molnar <mingo@kernel.org>\nAcked-by: Steven Rostedt <rostedt@goodmis.org>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: d39ad278a3001c860da4d7c13e51259b1904bec5\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/8e264040975e66296d4c202cf37daf6a5b6d7d23"},{"sha":"fc5cee7817ee639aef558212537a734e352e5230","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"profile: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the profile code by using this latter form of callback registration.\n\nChange-Id: I43b3b581da418bbce60b9bfbf3e6b0677ad391cf\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Mauro Carvalho Chehab <mchehab@redhat.com>\nCc: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: c270a817196a9374a2dc730624d1501dced40b4d\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/fc5cee7817ee639aef558212537a734e352e5230"},{"sha":"09bb603acdad3ba2bfc3d63befa10d3474afc078","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"Doc/cpu-hotplug: Specify race-free way to register CPU hotplug callbacks\n\nRecommend the usage of the new CPU hotplug callback registration APIs\n(__register_cpu_notifier() etc), when subsystems need to also perform\ninitialization for already online CPUs. Provide examples of correct\nand race-free ways of achieving this, and point out the kinds of code\nthat are error-prone.\n\nCc: Rob Landley <rob@landley.net>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: linux-doc@vger.kernel.org\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: 8489d90b5f32effa402be2a4ee7636ba0c652145\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/09bb603acdad3ba2bfc3d63befa10d3474afc078"},{"sha":"c85fe6805657ab8b1595cf1aa116491336b167ce","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"perf, cpu hotplug: Run CPU_STARTING notifiers with irqs disabled\n\nThe CPU_STARTING notifiers are supposed to be run with irqs\ndisabled. But the perf_cpu_notifier() macro invokes them without\ndoing that. Fix it.\n\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nReviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: peterz@infradead.org\nCc: acme@ghostprotocols.net\nLink: http://lkml.kernel.org/r/20121016075809.3572.47848.stgit@srivatsabhat.in.ibm.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/c85fe6805657ab8b1595cf1aa116491336b167ce"},{"sha":"8cb131c05057ab5f1260eafc954eef4b5f2cbd69","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"perf, cpu hotplug: Use cached value of smp_processor_id()\n\nThe perf_cpu_notifier() macro invokes smp_processor_id()\nmultiple times. Optimize it by using a local variable.\n\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nReviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: peterz@infradead.org\nCc: acme@ghostprotocols.net\nLink: http://lkml.kernel.org/r/20121016075817.3572.76733.stgit@srivatsabhat.in.ibm.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/8cb131c05057ab5f1260eafc954eef4b5f2cbd69"},{"sha":"d7e6f56b4a9c49f5dc408255228a70a9cd7785d9","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"mm, vmstat: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the vmstat code in the MM subsystem by using this latter form of callback\nregistration.\n\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Rik van Riel <riel@redhat.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: Cody P Schafer <cody@linux.vnet.ibm.com>\nCc: Toshi Kani <toshi.kani@hp.com>\nCc: Dave Hansen <dave@sr71.net>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: linux-mm@kvack.org\nAcked-by: Christoph Lameter <cl@linux.com>\nReviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: 0be94bad0b601df94b8558c0cbd28f7e6633c9e8\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[osvaldob@codeaurora.org: resolve trivial context conflicts]\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/d7e6f56b4a9c49f5dc408255228a70a9cd7785d9"},{"sha":"d883d463f57654b2e947ce0c8be653dac3d7df63","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"net/core/flow.c: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the code in net/core/flow.c by using this latter form of callback\nregistration.\n\nCc: Li RongQing <roy.qing.li@gmail.com>\nCc: Sasha Levin <sasha.levin@oracle.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Chris Metcalf <cmetcalf@tilera.com>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: e30a293e8ad7e6048d6d88bcc114094f964bd67b\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[osvaldob@codeaurora.org: remove use of {get,put}_online_cpus()]\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/d883d463f57654b2e947ce0c8be653dac3d7df63"},{"sha":"b20a9530b1047c1c9119b564da3608cc0b734a26","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"CPU hotplug, perf: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the perf subsystem's hotplug notifier by using this latter form of\ncallback registration.\n\nAlso provide a bare-bones version of perf_cpu_notifier() that doesn't\ninvoke the notifiers for the already online CPUs. This would be useful\nfor subsystems that need to perform a different set of initialization\nfor the already online CPUs, or don't need the initialization altogether.\n\nCc: Peter Zijlstra <a.p.zijlstra@chello.nl>\nCc: Paul Mackerras <paulus@samba.org>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: f0bdb5e0c72b7347c867da539367138ad95c6b24\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/b20a9530b1047c1c9119b564da3608cc0b734a26"},{"sha":"878a9fd19a615edee7e260961871b39a455d7d78","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"arm, hw-breakpoint: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the hw-breakpoint code in arm by using this latter form of callback\nregistration.\n\nChange-Id: Ibc9bd8c1194d0411882e33ba91559c17482e0eec\nCc: Russell King <linux@arm.linux.org.uk>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: linux-arm-kernel@lists.infradead.org\nAcked-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: c5929bd3a9920432dfb485253c64163fdfc90faf\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/878a9fd19a615edee7e260961871b39a455d7d78"},{"sha":"76611973f9d0c97aef43f42cfc72e1b3030cd0a4","author":{"name":"Srivatsa S. Bhat","email":"86fcb99d833c6028b7c159db19d83d69bb396a1e@linux.vnet.ibm.com"},"message":"drivers/base/topology.c: Fix CPU hotplug callback registration\n\nSubsystems that want to register CPU hotplug callbacks, as well as perform\ninitialization for the CPUs that are already online, often do it as shown\nbelow:\n\n\tget_online_cpus();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\tregister_cpu_notifier(&foobar_cpu_notifier);\n\n\tput_online_cpus();\n\nThis is wrong, since it is prone to ABBA deadlocks involving the\ncpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently\nwith CPU hotplug operations).\n\nInstead, the correct and race-free way of performing the callback\nregistration is:\n\n\tcpu_notifier_register_begin();\n\n\tfor_each_online_cpu(cpu)\n\t\tinit_cpu(cpu);\n\n\t/* Note the use of the double underscored version of the API */\n\t__register_cpu_notifier(&foobar_cpu_notifier);\n\n\tcpu_notifier_register_done();\n\nFix the topology code by using this latter form of callback registration.\n\nCc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nCc: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nGit-commit: e12b711196a158a475350ee67876a1e9e2601661\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/Gabriel_MM/commits/76611973f9d0c97aef43f42cfc72e1b3030cd0a4"}]}
{"actor":{"display_login":"mostafa-z"}}