summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-03-09bonding: fix release_pcd_mem() calltraceJianhua Xie
Add NULL pointer checking to avoid release_pcd_mem calltrace while release memory. Change-Id: I83a3ed6dcd8fcff22db75dba6670ce03d427c04a Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28616 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-03-09bonding: Replace a micro SLAVE_IS_OK with IS_UPJianhua Xie
At the hot path, use IS_UP() to instead of SLAVE_IS_OK() to reduce unnecessary condition checking. Change-Id: Ib17db501fb214f74e489940912a3c3be3920f633 Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28615 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-03-09bonding: Remove a pair of duplicate readlock()Jianhua Xie
Near the caller, old codes have below read lock: ...... readlock(bond->lock); ...... readlock(bond->lock); readunlock(bond->lock); ... readunlock(bond->unlock); ...... The read lock in middle of above lines is unnecessary, which should be removed. Change-Id: Icbb1b3a15007d413101c8a36151e85dfaedd6e68 Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28614 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-03-09bonding: Refactor public subroutine op_alloc_pool_channelJianhua Xie
Old codes hide alloc_pool_channel in a subroutine, which method can't create multiple pool channels. This patch is abstracting allocation pool channel relative codes to a new subroutine, which can create multiple pool channel for different bonding instances. Change-Id: I428bf4dae0386aeb9557959f641cfd55ad707988 Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28613 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-03-09bonding: Fix klocwork issues.Jianhua Xie
Change-Id: Iedc5272bd1c367fc6944ff277b5207df44a00890 Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28612 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-03-09bonding: Refactor is_dpa_eth_port()Jianhua Xie
Change-Id: Ie5718f4acc69fe8b9990885820727422ee7ae8b7 Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28611 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-03-09bonding: Refactor CEETM QoS APIsJianhua Xie
Old codes parsed node full name to get information which ceetm required. This patch replaces the old method with the standard sys_call of_property_read_u32. Change-Id: I364b3b66837eab2e14a33977a182add3d48a273f Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28610 Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-02-25fsl_qman: add qman_delete_cgr_safe()Madalin Bucur
Add qman_delete_cgr_safe() that can be called from any CPU. This in turn schedules qman_delete_cgr() on the proper CPU. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I762e83108533a4e537a534e90073df26a6b7b09c Reviewed-on: http://git.am.freescale.net:8181/28532 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: fix several typos in mac-apiMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I4974af9d90c0276b47bf46d8fba09d207fc0c3f5 Reviewed-on: http://git.am.freescale.net:8181/28880 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove Rx pool channel on unloadMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I2ca632118579b34a2c88ced0abb274cf20712976 Reviewed-on: http://git.am.freescale.net:8181/28552 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: delete and release used CGRsMadalin Bucur
The CGRs need to be deteled and released upon driver removal. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I8bfe5f10388c0d90761a6b8ed9d8816b65625864 Reviewed-on: http://git.am.freescale.net:8181/28534 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: release CGR ids after deleteMadalin Bucur
Improper ordering of CGR release and delete operations lead to QMan CGR list corruption. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I7817210fbc71d5b7b414ba866c588e97e89e39f0 Reviewed-on: http://git.am.freescale.net:8181/28533 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove duplicate ndo_init entryMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I97d5d65ac7a08ad86c989c3a5a5c8f0dae0c7f21 Reviewed-on: http://git.am.freescale.net:8181/27827 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove stray semicolonMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I65b4dd679835504d5031f341b61bbf4e8b09b6cd Reviewed-on: http://git.am.freescale.net:8181/27614 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove stray semicolonMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I9e2c0f43bee3842ff3822ae4bdd0a7d806c5b6f7 Reviewed-on: http://git.am.freescale.net:8181/27613 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove unused device node paramMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Icd0fcfadbbf24edfd7eaa1bdac2ccc18951df9eb Reviewed-on: http://git.am.freescale.net:8181/26788
2015-02-25dpaa_eth: make use of devm_alloc_percpu()Madalin Bucur
Use resource managed variant of alloc_percpu(). Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I51f3fe816792535bdf01827c77a6f504f9c22e7a Reviewed-on: http://git.am.freescale.net:8181/24141 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Tested-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
2015-02-25devres: add devm_alloc_percpu()Madalin Bucur
Introduce managed counterparts for alloc_percpu() and free_percpu(). Add devm_alloc_percpu() and devm_free_percpu() into the managed interfaces list. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I93546348e7b0e1974fda8b6c7a3b3710ce45b724 Reviewed-on: http://git.am.freescale.net:8181/24140 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Tested-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Conflicts: Documentation/driver-model/devres.txt drivers/base/devres.c
2015-02-25fix multiple dpa_bp free warningsMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I6a27c4300890d8c3a2f892bbbc254ebc9ce6d538 Reviewed-on: http://git.am.freescale.net:8181/16879
2015-02-25dpaa_eth: adjust advanced drivers to older kernelMadalin Bucur
Support for multiple drivers per kernel module comes in kernel 3.14 so we are forced to generate several modules for the advanced drivers. This patch can be dropped when the code is rebased on a kernel newer than 3.14. The problem is with the MODULE_DEVICE_TABLE macro that only from 3.14 generates different named structured based on the name parameter. The change that introduces that also needs a synchronized change in scripts/mod/file2alias.c. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
2015-02-25dpaa_eth: enable compilation as a moduleMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I24f7b9c39c1cf24dbb78987c491ab9a56c22eb10 Reviewed-on: http://git.am.freescale.net:8181/15302 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: exports needed by the advanced driversMadalin Bucur
Add symbol exports required by the advanced drivers. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I66f280f8ec9fb1da73dc2db772c0287360fa5417 Reviewed-on: http://git.am.freescale.net:8181/15300 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
2015-02-25dpaa_eth: reorganize DPAA Ethernet MakefileMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I4bb6955baf63962dbb5dda09fd2302dbaba9c85a Reviewed-on: http://git.am.freescale.net:8181/15299 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/Makefile
2015-02-25dpaa_eth: group DPAA generic codeMadalin Bucur
Group DPAA Ethernet generic driver code under one Kconfig option. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I96061198d022d344280f8b52b14f25e9b3daf2ba Reviewed-on: http://git.am.freescale.net:8181/15298 Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/Makefile
2015-02-25dpaa_eth: group DPAA advanced driversMadalin Bucur
Group the DPAA Ethernet advanced drivers under one Kconfig option. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I832e0dd99e18087fa0b091373f023c67ea69a434 Reviewed-on: http://git.am.freescale.net:8181/15297 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/Kconfig drivers/net/ethernet/freescale/dpa/Makefile
2015-02-25dpaa_eth: use common initialization functionMadalin Bucur
Use a common initialization function for MACless, shared and proxy Ethernet drivers. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I7a0ec70b33ad7ad92cb559dbd828572f83b5c98e Reviewed-on: http://git.am.freescale.net:8181/15296 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/dpaa_eth_base.c
2015-02-25dpaa_eth: move debugfs initialization in generic moduleMadalin Bucur
Initialize debugfs from the DPAA generic driver. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I032589647a56a6704b4044078a8468ca786149fc Reviewed-on: http://git.am.freescale.net:8181/15295 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: move header inclusionMadalin Bucur
Move dpaa_debugfs.h header inclusion where needed. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I2d85c4bc3822987d019bde07b7539875872b9125 Reviewed-on: http://git.am.freescale.net:8181/15294 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: move debugfs initMadalin Bucur
DPAA Ethernet debugfs is initialized from the Ethernet driver. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Ia42ee938286cede2e60837388f376b477bc28c62 Reviewed-on: http://git.am.freescale.net:8181/15293 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: remove unused codeMadalin Bucur
Removed empty code. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I0abc82f3a49b073044d5cabd704ff4771990dcfb Reviewed-on: http://git.am.freescale.net:8181/15292 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: remove tristate optionMadalin Bucur
Tristate option in Kconfig is not supported for those features. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I2215749c57b56a5f6bb1b426a819beda97926e81 Reviewed-on: http://git.am.freescale.net:8181/15291 Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25fmd: export required functionsMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
2015-02-25dpaa_eth: export required functionMadalin Bucur
Exported API is used by the Ethernet driver. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/mac-api.c
2015-02-13Merge branch 'rtmerge'Scott Wood
Signed-off-by: Scott Wood <scottwood@freescale.com> Conflicts: arch/arm/kvm/mmu.c arch/arm/mm/proc-v7-3level.S arch/powerpc/kernel/vdso32/getcpu.S drivers/crypto/caam/error.c drivers/crypto/caam/sg_sw_sec4.h drivers/usb/host/ehci-fsl.c
2015-02-13Linux 3.12.37-rt51 REBASESteven Rostedt (Red Hat)
2015-02-13workqueue: Prevent deadlock/stall on RTThomas Gleixner
Austin reported a XFS deadlock/stall on RT where scheduled work gets never exececuted and tasks are waiting for each other for ever. The underlying problem is the modification of the RT code to the handling of workers which are about to go to sleep. In mainline a worker thread which goes to sleep wakes an idle worker if there is more work to do. This happens from the guts of the schedule() function. On RT this must be outside and the accessed data structures are not protected against scheduling due to the spinlock to rtmutex conversion. So the naive solution to this was to move the code outside of the scheduler and protect the data structures by the pool lock. That approach turned out to be a little naive as we cannot call into that code when the thread blocks on a lock, as it is not allowed to block on two locks in parallel. So we dont call into the worker wakeup magic when the worker is blocked on a lock, which causes the deadlock/stall observed by Austin and Mike. Looking deeper into that worker code it turns out that the only relevant data structure which needs to be protected is the list of idle workers which can be woken up. So the solution is to protect the list manipulation operations with preempt_enable/disable pairs on RT and call unconditionally into the worker code even when the worker is blocked on a lock. The preemption protection is safe as there is nothing which can fiddle with the list outside of thread context. Reported-and_tested-by: Austin Schuh <austin@peloton-tech.com> Reported-and_tested-by: Mike Galbraith <umgwanakikbuti@gmail.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: http://vger.kernel.org/r/alpine.DEB.2.10.1406271249510.5170@nanos Cc: Richard Weinberger <richard.weinberger@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: stable-rt@vger.kernel.org Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq()Steven Rostedt
I talked with Peter Zijlstra about this, and he told me that the clearing of the PF_NO_SETAFFINITY flag was to deal with the optimization of migrate_disable/enable() that ignores tasks that have that flag set. But that optimization was removed when I did a rework of the cpu hotplug code. I found that ignoring tasks that had that flag set would cause those tasks to not sync with the hotplug code and cause the kernel to crash. Thus it needed to not treat them special and those tasks had to go though the same work as tasks without that flag set. Now that those tasks are not treated special, there's no reason to clear the flag. May still need to be tested as the migrate_me() code does not ignore those flags. Cc: stable-rt@vger.kernel.org Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Clark Williams <williams@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20140701111444.0cfebaa1@gandalf.local.home Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13Fix latency histogram after "hrtimer: Set expiry time before ↵Ben Hutchings
switch_hrtimer_base()" In an rt-kernel with CONFIG_MISSED_TIMER_OFFSETS_HIST enabled, __hrtimer_start_range_ns() now crashes, as new_base is not assigned before it is used. Tested-by: Carsten Emde <C.Emde@osadl.org> Cc: stable-rt@vger.kernel.org Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13timer: do not spin_trylock() on UPSebastian Andrzej Siewior
This will void a warning comming from the spin-lock debugging code. The lock avoiding idea is from Steven Rostedt. Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13Revert "migrate_disable pushd down in atomic_dec_and_spin_lock"Sebastian Andrzej Siewior
This reverts commit ff9c870c3e27d58c9512fad122e91436681fee5a. Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13Revert "drivers/net: tulip_remove_one needs to call pci_disable_device()"Steven Rostedt (Red Hat)
This reverts commit 4a77edc195f0b03644e84dda00fcfe9827868e8e. This commit was added to the -rt tree and submitted to stable. But because the stable version inserted pci_disable_device() in a slightly different location, when stable was merged it caused this to be duplicated. Remove the version that was added to -rt and keep the stable one. Link: http://lkml.kernel.org/r/1403149603.5189.10.camel@marge.simpson.net Reported-by: Mike Galbraith <umgwanakikbuti@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13net: gianfar: Fix missing return of gfar_clean_tx_ring()Steven Rostedt (Red Hat)
The patch "net: gianfar: do not try to cleanup TX packets if they are not done" for 3.12-rt left out the return value for gfar_clean_tx_ring(). This would cause an error when building this module. Note, this module does not build on x86 and was not tested because of that. Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13rt: Move migrate_disable up in trylocksSteven Rostedt
The changes to move the migrate_disable() down in the trylocks() caused race conditions to appear in the cpu hotplug code. The migrate disables must be done before any of the rtmutexes are taken, otherwise a lock may be held that prevents hotplug from moving forward. Link: http://lkml.kernel.org/r/20140429201308.63292691@gandalf.local.home Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Cc: Mike Galbraith <umgwanakikbuti@gmail.com> Cc: Nicholas Mc Guire <der.herr@hofr.at> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: linux-rt-users <linux-rt-users@vger.kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: John Kacur <jkacur@redhat.com> Cc: Clark Williams <williams@redhat.com>
2015-02-13localversion.patchThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/n/tip-8vdw4bfcsds27cvox6rpb334@git.kernel.org
2015-02-13md: disable bcacheSebastian Andrzej Siewior
It uses anon semaphores |drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’: |drivers/md/bcache/request.c:1007:2: error: implicit declaration of function ‘up_read_non_owner’ [-Werror=implicit-function-declaration] | up_read_non_owner(&dc->writeback_lock); | ^ |drivers/md/bcache/request.c: In function ‘request_write’: |drivers/md/bcache/request.c:1033:2: error: implicit declaration of function ‘down_read_non_owner’ [-Werror=implicit-function-declaration] | down_read_non_owner(&dc->writeback_lock); | ^ either we get rid of those or we have to introduce them… Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13rt,ntp: Move call to schedule_delayed_work() to helper threadSteven Rostedt
The ntp code for notify_cmos_timer() is called from a hard interrupt context. schedule_delayed_work() under PREEMPT_RT_FULL calls spinlocks that have been converted to mutexes, thus calling schedule_delayed_work() from interrupt is not safe. Add a helper thread that does the call to schedule_delayed_work and wake up that thread instead of calling schedule_delayed_work() directly. This is only for CONFIG_PREEMPT_RT_FULL, otherwise the code still calls schedule_delayed_work() directly in irq context. Note: There's a few places in the kernel that do this. Perhaps the RT code should have a dedicated thread that does the checks. Just register a notifier on boot up for your check and wake up the thread when needed. This will be a todo. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13a few open coded completionsSebastian Andrzej Siewior
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13completion: Use simple wait queuesThomas Gleixner
Completions have no long lasting callbacks and therefor do not need the complex waitqueue variant. Use simple waitqueues which reduces the contention on the waitqueue lock. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13rcu-more-swait-conversions.patchThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Merged Steven's static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp) { - swait_wake(&rnp->nocb_gp_wq[rnp->completed & 0x1]); + wake_up_all(&rnp->nocb_gp_wq[rnp->completed & 0x1]); } Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13kernel/treercu: use a simple waitqueueSebastian Andrzej Siewior
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>