Re: [PATCH 1/4] Inconsistent extern declarations.

From: Alexey Dobriyan
Date: Thu Aug 24 2006 - 12:11:18 EST


On Thu, Aug 24, 2006 at 04:25:18PM +0100, David Woodhouse wrote:
> When you compile multiple files together with --combine, the compiler
> starts to _notice_ when you do things like this in one file:
>
> extern int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
> struct iovec *iov, int len, int noblock);
>
> .. but the actual function looks like this:
>
> extern int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
> struct iovec *iov, size_t len, int noblock);

El-cheapo bug-finder, good. ;-)

> --- a/net/ipx/af_ipx.c
> +++ b/net/ipx/af_ipx.c
> @@ -87,7 +87,7 @@ extern int ipxrtr_add_route(__u32 networ
> unsigned char *node);
> extern void ipxrtr_del_routes(struct ipx_interface *intrfc);
> extern int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
> - struct iovec *iov, int len, int noblock);
> + struct iovec *iov, size_t len, int noblock);

Better move proto to include/net/ipx.h since net/ipx/af_ipx.c already
including it.

In general, this patch is wrong. Every external declaration and every
proto should be in only one place.

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