On Thu, 17 May 2007 18:48:12 +0800 David Woodhouse <[EMAIL PROTECTED]> wrote:
> The function ipxrtr_route_packet() takes a 'len' argument of type > size_t. However, its prototype in af_ipx.c incorrectly suggests that the > corresponding argument is of type 'int' instead. > > Discovered by building with --combine and letting the compiler see it > all at once. > > Signed-off-by: David Woodhouse <[EMAIL PROTECTED]> > > --- a/net/ipx/af_ipx.c > +++ b/net/ipx/af_ipx.c > @@ -87,7 +87,7 @@ extern int ipxrtr_add_route(__be32 network, struct > ipx_interface *intrfc, > 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); > extern int ipxrtr_route_skb(struct sk_buff *skb); > extern struct ipx_route *ipxrtr_lookup(__be32 net); > extern int ipxrtr_ioctl(unsigned int cmd, void __user *arg); Lovely. So it was actually generating wrong code on all sizeof(size_t)!=sizeof(int) architectures. If only we could find some way in which all callers of a function as well as its definition can see the same declaration? - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html