David S. Miller wrote:
>
> How about a 64-bit system where set_bit works on 64-bit longs
> and not 32-bit ones? That is why the current code there is broken.
>
There should bit nonatomic bit ops for every byte width.
http://marc.theaimsgroup.com/?l=linux-kernel&m=99167415926343&w=2
I even sent you the patch proposal, but never got a reply.
Patch again attached, but untested.
-- Manfred--------------030408070204040006010808 Content-Type: text/plain; name="patch-bitops" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-bitops"
--- 2.4/include/linux/bitops.h Sat Apr 28 00:48:19 2001 +++ build-2.4/include/linux/bitops.h Tue Jun 5 19:40:43 2001 @@ -68,5 +68,27 @@ #include <asm/bitops.h> +#ifdef __KERNEL__ +#include <linux/types.h> +#define BUILD_SET_BIT(n) \ +static inline void __set_bit_##n(int offset, u##n *data) \ +{ \ + data[offset/n] |= (1 << (offset%n)); \ +} + +#ifndef _HAVE_ARCH_SET_BIT_8 +BUILD_SET_BIT(8) +#endif +#ifndef _HAVE_ARCH_SET_BIT_16 +BUILD_SET_BIT(16) +#endif +#ifndef _HAVE_ARCH_SET_BIT_32 +BUILD_SET_BIT(32) +#endif +#ifndef _HAVE_ARCH_SET_BIT_64 +BUILD_SET_BIT(64) +#endif +#undef BUILD_SET_BIT +#endif #endif
--------------030408070204040006010808--
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/