Re: Re: [PATCH] Fix the atomic compare and swap function on hppa

Kyle McMartin <[email protected]>
Newsgroups gmane.linux.ports.hppa
Message-ID <[email protected]>
On Tue, May 22, 2007 at 05:19:30PM +0200, Aurelien Jarno wrote:
> As discussed on IRC, there is actually a bug in the kernel:
> 
>   #define ENABLE_LWS_DEBUG 0
>   ...
>   # ifdef ENABLE_LWS_DEBUG
> 

Patch to switch #ifdef to #if $x == 1 or the #define to #undef welcome.

> ENABLE_LWS_DEBUG is defined as 0, so the debug code is enabled.
> 
> Please find below a patch which fixes the -EAGAIN problem by harcoding
> the value directly into the code. It also adds a workaround for unfixed
> kernels which return -EDEADLOCK.
> 
> +/* The only basic operation needed is compare and exchange.
> +   -11 corresponds to -EAGAIN, and -45 to -EDEADLOCK. The constants
> +   must stay the same to avoid breaking backwards compatibility.
> +
> +   The check for -EDEADLOCK workarounds a kernel bug (debugging code
> +   enabled by default). */

This is stupid. Why not just use the symbol and then #undef it
immediately afterwards? For extra paranoia name it LWS_RET_EAGAIN or
something.

Putting magic numbers in the code is irritating and makes it more
difficult to read it on a glance.

Regards,
	Kyle
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.