summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-03-06Fix deep sleep stops working bugJianwei Wang
For pixel clock is not disable when suspend, deep sleep stops working. Disable pixel clock when suspend and enable when resume. Signed-off-by: Jianwei Wang <b52261@freescale.com> Change-Id: Icb9b04afa4fefbf6be70160faddf34fc81639321 Reviewed-on: http://git.am.freescale.net:8181/31997 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Yao Yuan <yao.yuan@freescale.com> Reviewed-by: Zhengxiong Jin <Jason.Jin@freescale.com>
2015-03-03ls1021a: ahci: restore PORT_CMD valueShaohui Xie
The value changed after hard reset which caused interrupt cannot work, restore the value after reset then the interrupt can work. Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com> Change-Id: I095bf1c4029938e1ad6d0416aeea58463b2dcdf8 Reviewed-on: http://git.am.freescale.net:8181/31842 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Xiaobo Xie <X.Xie@freescale.com> Reviewed-by: Zhengxiong Jin <Jason.Jin@freescale.com>
2015-03-03ahci: added freescale AHCI to platform compatible listShaohui Xie
Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com> Change-Id: Icfc5b97394f3443762fca8cf1fee6a44ea5874e6 Reviewed-on: http://git.am.freescale.net:8181/31840 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Xiaobo Xie <X.Xie@freescale.com> Reviewed-by: Zhengxiong Jin <Jason.Jin@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-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-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-13a few open coded completionsSebastian Andrzej Siewior
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13drm/i915: drop trace_i915_gem_ring_dispatch on rtSebastian Andrzej Siewior
This tracepoint is responsible for: |[<814cc358>] __schedule_bug+0x4d/0x59 |[<814d24cc>] __schedule+0x88c/0x930 |[<814d3b90>] ? _raw_spin_unlock_irqrestore+0x40/0x50 |[<814d3b95>] ? _raw_spin_unlock_irqrestore+0x45/0x50 |[<810b57b5>] ? task_blocks_on_rt_mutex+0x1f5/0x250 |[<814d27d9>] schedule+0x29/0x70 |[<814d3423>] rt_spin_lock_slowlock+0x15b/0x278 |[<814d3786>] rt_spin_lock+0x26/0x30 |[<a00dced9>] gen6_gt_force_wake_get+0x29/0x60 [i915] |[<a00e183f>] gen6_ring_get_irq+0x5f/0x100 [i915] |[<a00b2a33>] ftrace_raw_event_i915_gem_ring_dispatch+0xe3/0x100 [i915] |[<a00ac1b3>] i915_gem_do_execbuffer.isra.13+0xbd3/0x1430 [i915] |[<810f8943>] ? trace_buffer_unlock_commit+0x43/0x60 |[<8113e8d2>] ? ftrace_raw_event_kmem_alloc+0xd2/0x180 |[<8101d063>] ? native_sched_clock+0x13/0x80 |[<a00acf29>] i915_gem_execbuffer2+0x99/0x280 [i915] |[<a00114a3>] drm_ioctl+0x4c3/0x570 [drm] |[<8101d0d9>] ? sched_clock+0x9/0x10 |[<a00ace90>] ? i915_gem_execbuffer+0x480/0x480 [i915] |[<810f1c18>] ? rb_commit+0x68/0xa0 |[<810f1c6c>] ? ring_buffer_unlock_commit+0x1c/0xa0 |[<81197467>] do_vfs_ioctl+0x97/0x540 |[<81021318>] ? ftrace_raw_event_sys_enter+0xd8/0x130 |[<811979a1>] sys_ioctl+0x91/0xb0 |[<814db931>] tracesys+0xe1/0xe6 Chris Wilson does not like to move i915_trace_irq_get() out of the macro |No. This enables the IRQ, as well as making a number of |very expensively serialised read, unconditionally. so it is gone now on RT. Cc: stable-rt@vger.kernel.org Reported-by: Joakim Hernberg <jbh@alchemy.lu> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13gpu/i915: don't open code these thingsSebastian Andrzej Siewior
The opencode part is gone in 1f83fee0 ("drm/i915: clear up wedged transitions") the owner check is still there. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13drm: remove preempt_disable() from drm_calc_vbltimestamp_from_scanoutpos()Sebastian Andrzej Siewior
Luis captured the following: | BUG: sleeping function called from invalid context at kernel/rtmutex.c:659 | in_atomic(): 1, irqs_disabled(): 0, pid: 517, name: Xorg | 2 locks held by Xorg/517: | #0: | ( | &dev->vbl_lock | ){......} | , at: | [<ffffffffa0024c60>] drm_vblank_get+0x30/0x2b0 [drm] | #1: | ( | &dev->vblank_time_lock | ){......} | , at: | [<ffffffffa0024ce1>] drm_vblank_get+0xb1/0x2b0 [drm] | Preemption disabled at: | [<ffffffffa008bc95>] i915_get_vblank_timestamp+0x45/0xa0 [i915] | CPU: 3 PID: 517 Comm: Xorg Not tainted 3.10.10-rt7+ #5 | Call Trace: | [<ffffffff8164b790>] dump_stack+0x19/0x1b | [<ffffffff8107e62f>] __might_sleep+0xff/0x170 | [<ffffffff81651ac4>] rt_spin_lock+0x24/0x60 | [<ffffffffa0084e67>] i915_read32+0x27/0x170 [i915] | [<ffffffffa008a591>] i915_pipe_enabled+0x31/0x40 [i915] | [<ffffffffa008a6be>] i915_get_crtc_scanoutpos+0x3e/0x1b0 [i915] | [<ffffffffa00245d4>] drm_calc_vbltimestamp_from_scanoutpos+0xf4/0x430 [drm] | [<ffffffffa008bc95>] i915_get_vblank_timestamp+0x45/0xa0 [i915] | [<ffffffffa0024998>] drm_get_last_vbltimestamp+0x48/0x70 [drm] | [<ffffffffa0024db5>] drm_vblank_get+0x185/0x2b0 [drm] | [<ffffffffa0025d03>] drm_wait_vblank+0x83/0x5d0 [drm] | [<ffffffffa00212a2>] drm_ioctl+0x552/0x6a0 [drm] | [<ffffffff811a0095>] do_vfs_ioctl+0x325/0x5b0 | [<ffffffff811a03a1>] SyS_ioctl+0x81/0xa0 | [<ffffffff8165a342>] tracesys+0xdd/0xe2 After a longer thread it was decided to drop the preempt_disable()/ enable() invocations which were meant for -RT and Mario Kleiner looks for a replacement. Cc: stable-rt@vger.kernel.org Reported-By: Luis Claudio R. Goncalves <lclaudio@uudg.org> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13net: iwlwifi: request only a threaded handler for interruptsSebastian Andrzej Siewior
On RT the trans_pcie->irq_lock lock is converted into a sleeping lock and can't be used in primary irq handler. The lock is used in mutliple places which means turning it into a raw lock could increase the latency of the system. For now both handlers are moved into the thread. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Clark Williams <clark.williams@gmail.com>
2015-02-13mmci: Remove bogus local_irq_save()Thomas Gleixner
On !RT interrupt runs with interrupts disabled. On RT it's in a thread, so no need to disable interrupts at all. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13i2c/omap: drop the lock hard irq contextSebastian Andrzej Siewior
The lock is taken while reading two registers. On RT the first lock is taken in hard irq where it might sleep and in the threaded irq. The threaded irq runs in oneshot mode so the hard irq does not run until the thread the completes so there is no reason to grab the lock. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13leds: trigger: disable CPU trigger on -RTSebastian Andrzej Siewior
as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 |[<c0014aa4>] (unwind_backtrace+0x0/0xf8) from [<c0012788>] (show_stack+0x1c/0x20) |[<c0012788>] (show_stack+0x1c/0x20) from [<c043c8dc>] (dump_stack+0x20/0x2c) |[<c043c8dc>] (dump_stack+0x20/0x2c) from [<c004c5e8>] (__might_sleep+0x13c/0x170) |[<c004c5e8>] (__might_sleep+0x13c/0x170) from [<c043f270>] (__rt_spin_lock+0x28/0x38) |[<c043f270>] (__rt_spin_lock+0x28/0x38) from [<c043fa00>] (rt_read_lock+0x68/0x7c) |[<c043fa00>] (rt_read_lock+0x68/0x7c) from [<c036cf74>] (led_trigger_event+0x2c/0x5c) |[<c036cf74>] (led_trigger_event+0x2c/0x5c) from [<c036e0bc>] (ledtrig_cpu+0x54/0x5c) |[<c036e0bc>] (ledtrig_cpu+0x54/0x5c) from [<c000ffd8>] (arch_cpu_idle_exit+0x18/0x1c) |[<c000ffd8>] (arch_cpu_idle_exit+0x18/0x1c) from [<c00590b8>] (cpu_startup_entry+0xa8/0x234) |[<c00590b8>] (cpu_startup_entry+0xa8/0x234) from [<c043b2cc>] (rest_init+0xb8/0xe0) |[<c043b2cc>] (rest_init+0xb8/0xe0) from [<c061ebe0>] (start_kernel+0x2c4/0x380) Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_pollJohn Kacur
RT triggers the following: [ 11.307652] [<ffffffff81077b27>] __might_sleep+0xe7/0x110 [ 11.307663] [<ffffffff8150e524>] rt_spin_lock+0x24/0x60 [ 11.307670] [<ffffffff8150da78>] ? rt_spin_lock_slowunlock+0x78/0x90 [ 11.307703] [<ffffffffa0272d83>] qla24xx_intr_handler+0x63/0x2d0 [qla2xxx] [ 11.307736] [<ffffffffa0262307>] qla2x00_poll+0x67/0x90 [qla2xxx] Function qla2x00_poll does local_irq_save() before calling qla24xx_intr_handler which has a spinlock. Since spinlocks are sleepable on rt, it is not allowed to call them with interrupts disabled. Therefore we use local_irq_save_nort() instead which saves flags without disabling interrupts. This fix needs to be applied to v3.0-rt, v3.2-rt and v3.4-rt Suggested-by: Thomas Gleixner Signed-off-by: John Kacur <jkacur@redhat.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: David Sommerseth <davids@redhat.com> Link: http://lkml.kernel.org/r/1335523726-10024-1-git-send-email-jkacur@redhat.com Cc: stable-rt@vger.kernel.org Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13random: Make it work on rtThomas Gleixner
Delegate the random insertion to the forced threaded interrupt handler. Store the return IP of the hard interrupt handler in the irq descriptor and feed it into the random generator as a source of entropy. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable-rt@vger.kernel.org
2015-02-13acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_tSteven Rostedt
We hit the following bug with 3.6-rt: [ 5.898990] BUG: scheduling while atomic: swapper/3/0/0x00000002 [ 5.898991] no locks held by swapper/3/0. [ 5.898993] Modules linked in: [ 5.898996] Pid: 0, comm: swapper/3 Not tainted 3.6.11-rt28.19.el6rt.x86_64.debug #1 [ 5.898997] Call Trace: [ 5.899011] [<ffffffff810804e7>] __schedule_bug+0x67/0x90 [ 5.899028] [<ffffffff81577923>] __schedule+0x793/0x7a0 [ 5.899032] [<ffffffff810b4e40>] ? debug_rt_mutex_print_deadlock+0x50/0x200 [ 5.899034] [<ffffffff81577b89>] schedule+0x29/0x70 [ 5.899036] BUG: scheduling while atomic: swapper/7/0/0x00000002 [ 5.899037] no locks held by swapper/7/0. [ 5.899039] [<ffffffff81578525>] rt_spin_lock_slowlock+0xe5/0x2f0 [ 5.899040] Modules linked in: [ 5.899041] [ 5.899045] [<ffffffff81579a58>] ? _raw_spin_unlock_irqrestore+0x38/0x90 [ 5.899046] Pid: 0, comm: swapper/7 Not tainted 3.6.11-rt28.19.el6rt.x86_64.debug #1 [ 5.899047] Call Trace: [ 5.899049] [<ffffffff81578bc6>] rt_spin_lock+0x16/0x40 [ 5.899052] [<ffffffff810804e7>] __schedule_bug+0x67/0x90 [ 5.899054] [<ffffffff8157d3f0>] ? notifier_call_chain+0x80/0x80 [ 5.899056] [<ffffffff81577923>] __schedule+0x793/0x7a0 [ 5.899059] [<ffffffff812f2034>] acpi_os_acquire_lock+0x1f/0x23 [ 5.899062] [<ffffffff810b4e40>] ? debug_rt_mutex_print_deadlock+0x50/0x200 [ 5.899068] [<ffffffff8130be64>] acpi_write_bit_register+0x33/0xb0 [ 5.899071] [<ffffffff81577b89>] schedule+0x29/0x70 [ 5.899072] [<ffffffff8130be13>] ? acpi_read_bit_register+0x33/0x51 [ 5.899074] [<ffffffff81578525>] rt_spin_lock_slowlock+0xe5/0x2f0 [ 5.899077] [<ffffffff8131d1fc>] acpi_idle_enter_bm+0x8a/0x28e [ 5.899079] [<ffffffff81579a58>] ? _raw_spin_unlock_irqrestore+0x38/0x90 [ 5.899081] [<ffffffff8107e5da>] ? this_cpu_load+0x1a/0x30 [ 5.899083] [<ffffffff81578bc6>] rt_spin_lock+0x16/0x40 [ 5.899087] [<ffffffff8144c759>] cpuidle_enter+0x19/0x20 [ 5.899088] [<ffffffff8157d3f0>] ? notifier_call_chain+0x80/0x80 [ 5.899090] [<ffffffff8144c777>] cpuidle_enter_state+0x17/0x50 [ 5.899092] [<ffffffff812f2034>] acpi_os_acquire_lock+0x1f/0x23 [ 5.899094] [<ffffffff8144d1a1>] cpuidle899101] [<ffffffff8130be13>] ? As the acpi code disables interrupts in acpi_idle_enter_bm, and calls code that grabs the acpi lock, it causes issues as the lock is currently in RT a sleeping lock. The lock was converted from a raw to a sleeping lock due to some previous issues, and tests that showed it didn't seem to matter. Unfortunately, it did matter for one of our boxes. This patch converts the lock back to a raw lock. I've run this code on a few of my own machines, one being my laptop that uses the acpi quite extensively. I've been able to suspend and resume without issues. [ tglx: Made the change exclusive for acpi_gbl_hardware_lock ] Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Cc: John Kacur <jkacur@gmail.com> Cc: Clark Williams <clark@redhat.com> Link: http://lkml.kernel.org/r/1360765565.23152.5.camel@gandalf.local.home Cc: stable-rt@vger.kernel.org Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13dm: Make rt awareThomas Gleixner
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has interrupts legitimately enabled here as we cant deadlock against the irq thread due to the "sleeping spinlocks" conversion. Reported-by: Luis Claudio R. Goncalves <lclaudio@uudg.org> Cc: stable-rt@vger.kernel.org Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13scsi-fcoe-rt-aware.patchThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13kgdb/serial: Short term workaroundJason Wessel
On 07/27/2011 04:37 PM, Thomas Gleixner wrote: > - KGDB (not yet disabled) is reportedly unusable on -rt right now due > to missing hacks in the console locking which I dropped on purpose. > To work around this in the short term you can use this patch, in addition to the clocksource watchdog patch that Thomas brewed up. Comments are welcome of course. Ultimately the right solution is to change separation between the console and the HW to have a polled mode + work queue so as not to introduce any kind of latency. Thanks, Jason.
2015-02-13ARM: at91: tclib: Default to tclib timer for RTThomas Gleixner
RT is not too happy about the shared timer interrupt in AT91 devices. Default to tclib timer for RT. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13rt: Improve the serial console PASS_LIMITIngo Molnar
Beyond the warning: drivers/tty/serial/8250/8250.c:1613:6: warning: unused variable ‘pass_counter’ [-Wunused-variable] the solution of just looping infinitely was ugly - up it to 1 million to give it a chance to continue in some really ugly situation. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13drivers-tty-pl011-irq-disable-madness.patchThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>