Files
mirror_zfs/include/sys
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
..
2009-07-09 15:00:25 -07:00
2008-03-08 00:58:32 +00:00
2009-01-09 14:04:13 -08:00
2008-03-12 23:48:28 +00:00
2009-10-30 13:58:51 -07:00
2009-01-06 09:47:00 -08:00
2009-01-09 16:04:44 -08:00
2008-03-05 00:58:54 +00:00
2009-01-09 16:04:44 -08:00
2008-03-05 00:58:54 +00:00
2009-10-30 13:58:51 -07:00
2009-03-19 21:40:07 -07:00
2008-03-14 00:04:01 +00:00
2008-03-14 00:04:01 +00:00
2009-01-09 09:47:27 -08:00
2008-03-14 00:04:01 +00:00
2008-03-15 00:05:38 +00:00
2009-01-09 09:47:27 -08:00
2008-03-14 00:04:01 +00:00
2009-10-30 13:58:51 -07:00
2009-02-17 16:30:58 -08:00
2009-01-09 14:04:13 -08:00
2008-03-13 20:41:29 +00:00
2008-03-15 00:05:38 +00:00
2008-03-13 20:41:29 +00:00
2008-03-12 23:48:28 +00:00
2009-02-19 11:26:17 -08:00
2008-12-23 13:32:07 -08:00
2008-12-23 13:18:39 -08:00
2008-12-23 15:40:20 -08:00
2008-12-23 13:32:07 -08:00
2008-03-14 00:04:01 +00:00
2008-03-08 00:18:21 +00:00
2008-03-14 00:04:01 +00:00
2009-11-10 14:06:57 -08:00
2008-03-12 23:48:28 +00:00