mirror_zfs/module/spl
Brian Behlendorf d04c8a563c Atomic64 compatibility for 32-bit systems without kernel support.
This patch is another step towards updating the code to handle the
32-bit kernels which I have not been regularly testing.  This changes
do not really impact the common case I'm expected which is the latest
kernel running on an x86_64 arch.

Until the linux-2.6.31 kernel the x86 arch did not have support for
64-bit atomic operations.  Additionally, the new atomic_compat.h support
for this case was wrong because it embedded a spinlock in the atomic
variable which must always and only be 64-bits total.  To handle these
32-bit issues we now simply fall back to the --enable-atomic-spinlock
implementation if the kernel does not provide the 64-bit atomic funcs.

The second issue this patch addresses is the DEBUG_KMEM assumption that
there will always be atomic64 funcs available.  On 32-bit archs this may
not be true, and actually that's just fine.  In that case the kernel will
will never be able to allocate more the 32-bits worth anyway.  So just
check if atomic64 funcs are available, if they are not it means this
is a 32-bit machine and we can safely use atomic_t's instead.
2009-12-04 15:54:12 -08:00
..
Makefile.in Add basic credential support and splat tests. 2009-07-27 17:18:59 -07:00
spl-atomic.c Use Linux atomic primitives by default. 2009-10-30 10:55:25 -07:00
spl-condvar.c Rename modules to module and update references 2009-01-15 10:44:54 -08:00
spl-cred.c Remove get/put_task_struct as they are not available for SLES11 2009-07-28 15:04:21 -07:00
spl-debug.c Rebase cmn_err on vcmn_err and don't warn about missing \n 2009-10-27 16:13:35 -07:00
spl-err.c I should not have removed these, they are important. 2009-10-27 16:17:06 -07:00
spl-generic.c Correctly handle division on 32-bit RHEL5 systems by returning dividend. 2009-12-01 15:53:28 -08:00
spl-kmem.c Atomic64 compatibility for 32-bit systems without kernel support. 2009-12-04 15:54:12 -08:00
spl-kobj.c Rename modules to module and update references 2009-01-15 10:44:54 -08:00
spl-kstat.c Autoconf --enable-debug-* cleanup 2009-10-30 13:58:51 -07:00
spl-module.c Positive Solaris ioctl return codes need to be negated for use by libc 2009-07-23 16:14:52 -07:00
spl-mutex.c Reimplement mutexs for Linux lock profiling/analysis 2009-09-25 14:47:01 -07:00
spl-proc.c Atomic64 compatibility for 32-bit systems without kernel support. 2009-12-04 15:54:12 -08:00
spl-rwlock.c Update rwlocks to track owner to ensure correct semantics 2009-09-25 14:14:35 -07:00
spl-taskq.c Add basic support for TASKQ_THREADS_CPU_PCT taskq flag which is 2009-07-09 10:07:52 -07:00
spl-thread.c Rename modules to module and update references 2009-01-15 10:44:54 -08:00
spl-time.c Prevent integer overflow after ~164 days of uptime. 2009-07-14 15:23:25 -07:00
spl-vnode.c Set cwd to '/' for the process executing insmod. 2009-10-01 16:06:15 -07:00
spl-xdr.c Minor bug fix in XDR code introduced in last minute change before landing. 2009-03-11 16:27:35 -07:00