Re: ntohs/ntohl and bitops

From: David S. Miller
Date: Wed Jan 11 2006 - 02:59:11 EST


From: Ulrich Drepper <drepper@xxxxxxxxxx>
Date: Tue, 10 Jan 2006 14:02:52 -0800

> I just saw this in a patch:
>
> + if (ntohs(ih->frag_off) & IP_OFFSET)
> + return EBT_NOMATCH;
>
> This isn't optimal, it requires a byte switch little endian machines.
> The compiler isn't smart enough. It would be better to use
>
> if (ih->frag_off & ntohs(IP_OFFSET))
>
> where the byte-swap can be done at compile time. This is kind of ugly,
> I guess, so maybe a dedicate macro
>
> net_host_bit_p(ih->frag_off, IP_OFFSET)

The first suggestion isn't considered ugly, and the best form is:

if (ih->frag_off & __constant_htons(IP_OFFSET))

I'll fix that up when I get a chance, thanks for catching it Uli.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/