mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-25 09:25:00 +03:00
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. |
||
|---|---|---|
| .. | ||
| Makefile.in | ||
| spl-atomic.c | ||
| spl-condvar.c | ||
| spl-cred.c | ||
| spl-debug.c | ||
| spl-err.c | ||
| spl-generic.c | ||
| spl-kmem.c | ||
| spl-kobj.c | ||
| spl-kstat.c | ||
| spl-module.c | ||
| spl-mutex.c | ||
| spl-proc.c | ||
| spl-rwlock.c | ||
| spl-taskq.c | ||
| spl-thread.c | ||
| spl-time.c | ||
| spl-vnode.c | ||
| spl-xdr.c | ||