[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20080710111357.GR20815@postel.suug.ch>
Date: Thu, 10 Jul 2008 13:13:57 +0200
From: Thomas Graf <tgraf@...g.ch>
To: Harvey Harrison <harvey.harrison@...il.com>
Cc: David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH] net: em_cmp.c use unaligned access helpers
* Harvey Harrison <harvey.harrison@...il.com> 2008-07-04 19:10
> On Mon, 2008-06-30 at 01:26 +0200, Thomas Graf wrote:
> > * Harvey Harrison <harvey.harrison@...il.com> 2008-06-29 11:01
> > > OK, but be16/32_to_cpu is a no-op on be-arches, so there is a bug here on
> > > big-endian machines as they won't switch it back, your simplified patch
> > > is actually a bugfix in that case.
> >
> > I noticed that my change wouldn't be correct. The point is to allow
> > userspace to convert the filter values to big endian once, supply them
> > to the kernel and compare big endian values directly. The be16/32_to_cpu
> > convertion is available to support greater-than/lesser-than on little
> > endian architectures.
>
> Thomas, maybe I'm just being slow, put if it's always a be-value, why
> not the following:
>
> From: Harvey Harrison <harvey.harrison@...il.com>
> Subject: [PATCH] net: em_cmp.c use unaligned access helper
>
> ptr pointers to a big endian value, instead of constructing a be
> value and conditionally byteswapping on little-endian arches, use
> the unaligned to access helpers return a cpu-endian value.
em_cmp is based on the u32 classifier which compares everything in
be, it is faster than swapping every value but only works for eq/ne
comparisons. Some people have just gotten used to work with be
when filtering on addresses and port numbers.
em_cmp additionally supports gt/lt operations which only work in
host byte order, therefore the flag TCP_EM_CMP_TRANS was added to
trigger this.
Enforcing host byte order in all cases would probably be simpler
but it can't be changed now as it would break scripts.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists