Re: [PATCH-2.4.26] ip6tables cleanup

From: Willy TARREAU
Date: Sun Mar 28 2004 - 15:11:05 EST


On Sun, Mar 28, 2004 at 09:27:09PM +0200, Peter Osterlund wrote:
> Willy TARREAU <willy@xxxxxxxxx> writes:
>
> > 2.4.26-rc1 returned this warning compiling ip6_tables :
> >
> > ip6_tables.c: In function `tcp_match':
> > ip6_tables.c:1596: warning: implicit declaration of function `ipv6_skip_exthdr'
> >
> > I had to add a cast because ipv6_skip_exthdr() expects a 'struct sk_buff*' while
> > its caller uses a 'const struct sk_buff*'. Here is a cleanup patch.
>
> I think it would be better to change the ipv6_skip_exthdr() function
> to take a const struct sk_buff* instead. Unnecessary casts are evil.

At first I didn't want to do this because it would have needed to recurse
down to other users of skb. But I've just checked and noticed that indeed,
only skb_copy_bits() uses the skb, and this one already expects a const. So
you're right, and I should have checked further. My bad.

Marcelo, could you please use this simpler patch instead ?

Thanks,
Willy

diff -urN linux-2.4.26-rc1/net/ipv6/exthdrs.c linux-2.4.26-rc1-skb/net/ipv6/exthdrs.c
--- linux-2.4.26-rc1/net/ipv6/exthdrs.c Sat Mar 20 10:08:21 2004
+++ linux-2.4.26-rc1-skb/net/ipv6/exthdrs.c Sun Mar 28 22:07:21 2004
@@ -783,7 +783,7 @@
* --ANK (980726)
*/

-int ipv6_skip_exthdr(struct sk_buff *skb, int start, u8 *nexthdrp, int len)
+int ipv6_skip_exthdr(const struct sk_buff *skb, int start, u8 *nexthdrp, int len)
{
u8 nexthdr = *nexthdrp;

-
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/