mirror_zfs/module/spl
Brian Behlendorf 429fe89cee Consistently use local_irq_disable/local_irq_enable
It was observed that spl_kmem_cache_alloc() uses local_irq_save()
and saves the interrupt state in a local variable.  This would
normally be fine except that spl_kmem_cache_alloc() calls
spl_cache_refill() which re-enables interrupts.  It is then
possible that while interrupts are enabled the process is
rescheduled to a different cpu before being disable again.
This could result in us restoring the saved interrupt state
from one cpu to another.

What the consequences of this are aren't perfectly clear, but
this is clearly a bug and it has the potential to cause issues.
The code has been updated to just use local_irq_enable() and
local_irq_disable() to avoid this.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2013-10-09 14:00:56 -07:00
..
Makefile.in Add script for builtin module building. 2012-07-26 15:13:09 -07:00
spl-atomic.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-condvar.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-cred.c Linux 3.8 compat: Use kuid_t/kgid_t when required 2013-08-09 10:09:29 -07:00
spl-debug.c Linux 3.11 compat: Replace num_physpages with totalram_pages 2013-08-08 09:14:29 -07:00
spl-err.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-generic.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-kmem.c Consistently use local_irq_disable/local_irq_enable 2013-10-09 14:00:56 -07:00
spl-kobj.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-kstat.c Linux 3.10 compat: Do not rely on struct proc_dir_entry definition 2013-07-08 15:25:18 -07:00
spl-mutex.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-proc.c PaX/GrSecurity Linux 3.8.y compat: Use __no_const on struct ctl_table 2013-08-08 09:51:34 -07:00
spl-rwlock.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-taskq.c Fix taskq_wait_id() 2013-05-03 14:32:29 -07:00
spl-thread.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-time.c Replace current_kernel_time() with getnstimeofday() 2013-10-09 13:28:30 -07:00
spl-tsd.c Linux 3.9 compat: Switch to hlist_for_each{,_rcu} 2013-03-14 10:43:34 -07:00
spl-vnode.c Linux 3.8 compat: Use kuid_t/kgid_t when required 2013-08-09 10:09:29 -07:00
spl-xdr.c Refresh links to web site 2013-03-04 19:09:34 -08:00
spl-zlib.c Refresh links to web site 2013-03-04 19:09:34 -08:00