Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
Change-Id: Icd0fcfadbbf24edfd7eaa1bdac2ccc18951df9eb
Reviewed-on: http://git.am.freescale.net:8181/26788
|
|
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>
|
|
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
|
|
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
Change-Id: I6a27c4300890d8c3a2f892bbbc254ebc9ce6d538
Reviewed-on: http://git.am.freescale.net:8181/16879
|
|
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>
|
|
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>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
|
|
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
|
|
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
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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
|
|
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>
|
|
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>
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
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>
|
|
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>
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|