aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/locking/spinlock_debug.c
diff options
context:
space:
mode:
authorGuy Martin <gmsoft@tuxicoman.be>2014-01-16 11:17:53 -0500
committerHelge Deller <deller@gmx.de>2014-02-02 14:57:42 -0500
commitf5a408d53edef3af07ac7697b8bc54a755628450 (patch)
treee0537fd9e08dbbbe4a897bfb611feb74169705c9 /kernel/locking/spinlock_debug.c
parent9391bc777b055aca06f422095261e922431c0ec2 (diff)
parisc: Make EWOULDBLOCK be equal to EAGAIN on parisc
On Linux, only parisc uses a different value for EWOULDBLOCK which causes a lot of troubles for applications not checking for both values. Since the hpux compat is long dead, make EWOULDBLOCK behave the same as all other architectures. Signed-off-by: Guy Martin <gmsoft@tuxicoman.be> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'kernel/locking/spinlock_debug.c')
0 files changed, 0 insertions, 0 deletions
a couple of code-organizational changes first: - move their irq-flags manipulation code from their asm/system.h header to asm/irqflags.h - rename local_irq_disable()/etc to raw_local_irq_disable()/etc. so that the linux/irqflags.h code can inject callbacks and can construct the real local_irq_disable()/etc APIs. - add and enable TRACE_IRQFLAGS_SUPPORT in their arch level Kconfig file and then a couple of functional changes are needed as well to implement irq-flags-tracing support: - in lowlevel entry code add (build-conditional) calls to the trace_hardirqs_off()/trace_hardirqs_on() functions. The lock validator closely guards whether the 'real' irq-flags matches the 'virtual' irq-flags state, and complains loudly (and turns itself off) if the two do not match. Usually most of the time for arch support for irq-flags-tracing is spent in this state: look at the lockdep complaint, try to figure out the assembly code we did not cover yet, fix and repeat. Once the system has booted up and works without a lockdep complaint in the irq-flags-tracing functions arch support is complete. - if the architecture has non-maskable interrupts then those need to be excluded from the irq-tracing [and lock validation] mechanism via lockdep_off()/lockdep_on(). in general there is no risk from having an incomplete irq-flags-tracing implementation in an architecture: lockdep will detect that and will turn itself off. I.e. the lock validator will still be reliable. There should be no crashes due to irq-tracing bugs. (except if the assembly changes break other code by modifying conditions or registers that shouldnt be)