提交 d5fdd6ba 编写于 作者: B Brian Haley 提交者: David S. Miller

ipv6: Use correct data types for ICMPv6 type and code

Change all the code that deals directly with ICMPv6 type and code
values to use u8 instead of a signed int as that's the actual data
type.
Signed-off-by: NBrian Haley <brian.haley@hp.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 0cf08dcb
...@@ -175,16 +175,16 @@ struct icmp6_filter { ...@@ -175,16 +175,16 @@ struct icmp6_filter {
extern void icmpv6_send(struct sk_buff *skb, extern void icmpv6_send(struct sk_buff *skb,
int type, int code, u8 type, u8 code,
__u32 info, __u32 info,
struct net_device *dev); struct net_device *dev);
extern int icmpv6_init(void); extern int icmpv6_init(void);
extern int icmpv6_err_convert(int type, int code, extern int icmpv6_err_convert(u8 type, u8 code,
int *err); int *err);
extern void icmpv6_cleanup(void); extern void icmpv6_cleanup(void);
extern void icmpv6_param_prob(struct sk_buff *skb, extern void icmpv6_param_prob(struct sk_buff *skb,
int code, int pos); u8 code, int pos);
struct flowi; struct flowi;
struct in6_addr; struct in6_addr;
......
...@@ -53,7 +53,7 @@ struct inet6_protocol ...@@ -53,7 +53,7 @@ struct inet6_protocol
void (*err_handler)(struct sk_buff *skb, void (*err_handler)(struct sk_buff *skb,
struct inet6_skb_parm *opt, struct inet6_skb_parm *opt,
int type, int code, int offset, u8 type, u8 code, int offset,
__be32 info); __be32 info);
int (*gso_send_check)(struct sk_buff *skb); int (*gso_send_check)(struct sk_buff *skb);
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include <net/protocol.h> #include <net/protocol.h>
void raw6_icmp_error(struct sk_buff *, int nexthdr, void raw6_icmp_error(struct sk_buff *, int nexthdr,
int type, int code, int inner_offset, __be32); u8 type, u8 code, int inner_offset, __be32);
int raw6_local_deliver(struct sk_buff *, int); int raw6_local_deliver(struct sk_buff *, int);
extern int rawv6_rcv(struct sock *sk, extern int rawv6_rcv(struct sock *sk,
......
...@@ -1274,7 +1274,7 @@ struct xfrm_tunnel { ...@@ -1274,7 +1274,7 @@ struct xfrm_tunnel {
struct xfrm6_tunnel { struct xfrm6_tunnel {
int (*handler)(struct sk_buff *skb); int (*handler)(struct sk_buff *skb);
int (*err_handler)(struct sk_buff *skb, struct inet6_skb_parm *opt, int (*err_handler)(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info); u8 type, u8 code, int offset, __be32 info);
struct xfrm6_tunnel *next; struct xfrm6_tunnel *next;
int priority; int priority;
}; };
......
...@@ -85,7 +85,7 @@ static inline __u32 dccp_v6_init_sequence(struct sk_buff *skb) ...@@ -85,7 +85,7 @@ static inline __u32 dccp_v6_init_sequence(struct sk_buff *skb)
} }
static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct ipv6hdr *hdr = (struct ipv6hdr *)skb->data; struct ipv6hdr *hdr = (struct ipv6hdr *)skb->data;
const struct dccp_hdr *dh = (struct dccp_hdr *)(skb->data + offset); const struct dccp_hdr *dh = (struct dccp_hdr *)(skb->data + offset);
......
...@@ -405,7 +405,7 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb) ...@@ -405,7 +405,7 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
} }
static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct net *net = dev_net(skb->dev); struct net *net = dev_net(skb->dev);
struct ipv6hdr *iph = (struct ipv6hdr*)skb->data; struct ipv6hdr *iph = (struct ipv6hdr*)skb->data;
......
...@@ -354,7 +354,7 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu) ...@@ -354,7 +354,7 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
} }
static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct net *net = dev_net(skb->dev); struct net *net = dev_net(skb->dev);
struct ipv6hdr *iph = (struct ipv6hdr*)skb->data; struct ipv6hdr *iph = (struct ipv6hdr*)skb->data;
......
...@@ -117,7 +117,7 @@ static __inline__ void icmpv6_xmit_unlock(struct sock *sk) ...@@ -117,7 +117,7 @@ static __inline__ void icmpv6_xmit_unlock(struct sock *sk)
/* /*
* Slightly more convenient version of icmpv6_send. * Slightly more convenient version of icmpv6_send.
*/ */
void icmpv6_param_prob(struct sk_buff *skb, int code, int pos) void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos)
{ {
icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev); icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev);
kfree_skb(skb); kfree_skb(skb);
...@@ -161,7 +161,7 @@ static int is_ineligible(struct sk_buff *skb) ...@@ -161,7 +161,7 @@ static int is_ineligible(struct sk_buff *skb)
/* /*
* Check the ICMP output rate limit * Check the ICMP output rate limit
*/ */
static inline int icmpv6_xrlim_allow(struct sock *sk, int type, static inline int icmpv6_xrlim_allow(struct sock *sk, u8 type,
struct flowi *fl) struct flowi *fl)
{ {
struct dst_entry *dst; struct dst_entry *dst;
...@@ -305,7 +305,7 @@ static inline void mip6_addr_swap(struct sk_buff *skb) {} ...@@ -305,7 +305,7 @@ static inline void mip6_addr_swap(struct sk_buff *skb) {}
/* /*
* Send an ICMP message in response to a packet in error * Send an ICMP message in response to a packet in error
*/ */
void icmpv6_send(struct sk_buff *skb, int type, int code, __u32 info, void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info,
struct net_device *dev) struct net_device *dev)
{ {
struct net *net = dev_net(skb->dev); struct net *net = dev_net(skb->dev);
...@@ -590,7 +590,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb) ...@@ -590,7 +590,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
icmpv6_xmit_unlock(sk); icmpv6_xmit_unlock(sk);
} }
static void icmpv6_notify(struct sk_buff *skb, int type, int code, __be32 info) static void icmpv6_notify(struct sk_buff *skb, u8 type, u8 code, __be32 info)
{ {
struct inet6_protocol *ipprot; struct inet6_protocol *ipprot;
int inner_offset; int inner_offset;
...@@ -643,7 +643,7 @@ static int icmpv6_rcv(struct sk_buff *skb) ...@@ -643,7 +643,7 @@ static int icmpv6_rcv(struct sk_buff *skb)
struct in6_addr *saddr, *daddr; struct in6_addr *saddr, *daddr;
struct ipv6hdr *orig_hdr; struct ipv6hdr *orig_hdr;
struct icmp6hdr *hdr; struct icmp6hdr *hdr;
int type; u8 type;
if (!xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) { if (!xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) {
struct sec_path *sp = skb_sec_path(skb); struct sec_path *sp = skb_sec_path(skb);
...@@ -914,7 +914,7 @@ static const struct icmp6_err { ...@@ -914,7 +914,7 @@ static const struct icmp6_err {
}, },
}; };
int icmpv6_err_convert(int type, int code, int *err) int icmpv6_err_convert(u8 type, u8 code, int *err)
{ {
int fatal = 0; int fatal = 0;
......
...@@ -394,13 +394,13 @@ parse_tlv_tnl_enc_lim(struct sk_buff *skb, __u8 * raw) ...@@ -394,13 +394,13 @@ parse_tlv_tnl_enc_lim(struct sk_buff *skb, __u8 * raw)
static int static int
ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt, ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt,
int *type, int *code, int *msg, __u32 *info, int offset) u8 *type, u8 *code, int *msg, __u32 *info, int offset)
{ {
struct ipv6hdr *ipv6h = (struct ipv6hdr *) skb->data; struct ipv6hdr *ipv6h = (struct ipv6hdr *) skb->data;
struct ip6_tnl *t; struct ip6_tnl *t;
int rel_msg = 0; int rel_msg = 0;
int rel_type = ICMPV6_DEST_UNREACH; u8 rel_type = ICMPV6_DEST_UNREACH;
int rel_code = ICMPV6_ADDR_UNREACH; u8 rel_code = ICMPV6_ADDR_UNREACH;
__u32 rel_info = 0; __u32 rel_info = 0;
__u16 len; __u16 len;
int err = -ENOENT; int err = -ENOENT;
...@@ -488,11 +488,11 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt, ...@@ -488,11 +488,11 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt,
static int static int
ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
int rel_msg = 0; int rel_msg = 0;
int rel_type = type; u8 rel_type = type;
int rel_code = code; u8 rel_code = code;
__u32 rel_info = ntohl(info); __u32 rel_info = ntohl(info);
int err; int err;
struct sk_buff *skb2; struct sk_buff *skb2;
...@@ -586,11 +586,11 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -586,11 +586,11 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
static int static int
ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
int rel_msg = 0; int rel_msg = 0;
int rel_type = type; u8 rel_type = type;
int rel_code = code; u8 rel_code = code;
__u32 rel_info = ntohl(info); __u32 rel_info = ntohl(info);
int err; int err;
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
#include <linux/mutex.h> #include <linux/mutex.h>
static void ipcomp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void ipcomp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
__be32 spi; __be32 spi;
struct ipv6hdr *iph = (struct ipv6hdr*)skb->data; struct ipv6hdr *iph = (struct ipv6hdr*)skb->data;
......
...@@ -54,7 +54,7 @@ static inline void *mip6_padn(__u8 *data, __u8 padlen) ...@@ -54,7 +54,7 @@ static inline void *mip6_padn(__u8 *data, __u8 padlen)
return data + padlen; return data + padlen;
} }
static inline void mip6_param_prob(struct sk_buff *skb, int code, int pos) static inline void mip6_param_prob(struct sk_buff *skb, u8 code, int pos)
{ {
icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev); icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev);
} }
......
...@@ -310,7 +310,7 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len) ...@@ -310,7 +310,7 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
static void rawv6_err(struct sock *sk, struct sk_buff *skb, static void rawv6_err(struct sock *sk, struct sk_buff *skb,
struct inet6_skb_parm *opt, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk);
...@@ -343,7 +343,7 @@ static void rawv6_err(struct sock *sk, struct sk_buff *skb, ...@@ -343,7 +343,7 @@ static void rawv6_err(struct sock *sk, struct sk_buff *skb,
} }
void raw6_icmp_error(struct sk_buff *skb, int nexthdr, void raw6_icmp_error(struct sk_buff *skb, int nexthdr,
int type, int code, int inner_offset, __be32 info) u8 type, u8 code, int inner_offset, __be32 info)
{ {
struct sock *sk; struct sock *sk;
int hash; int hash;
......
...@@ -1865,7 +1865,7 @@ int ipv6_route_ioctl(struct net *net, unsigned int cmd, void __user *arg) ...@@ -1865,7 +1865,7 @@ int ipv6_route_ioctl(struct net *net, unsigned int cmd, void __user *arg)
* Drop the packet on the floor * Drop the packet on the floor
*/ */
static int ip6_pkt_drop(struct sk_buff *skb, int code, int ipstats_mib_noroutes) static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes)
{ {
int type; int type;
struct dst_entry *dst = skb_dst(skb); struct dst_entry *dst = skb_dst(skb);
......
...@@ -317,7 +317,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr, ...@@ -317,7 +317,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
} }
static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct ipv6hdr *hdr = (struct ipv6hdr*)skb->data; struct ipv6hdr *hdr = (struct ipv6hdr*)skb->data;
const struct tcphdr *th = (struct tcphdr *)(skb->data+offset); const struct tcphdr *th = (struct tcphdr *)(skb->data+offset);
......
...@@ -124,7 +124,7 @@ static int tunnel46_rcv(struct sk_buff *skb) ...@@ -124,7 +124,7 @@ static int tunnel46_rcv(struct sk_buff *skb)
} }
static void tunnel6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static void tunnel6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct xfrm6_tunnel *handler; struct xfrm6_tunnel *handler;
......
...@@ -312,7 +312,7 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk, ...@@ -312,7 +312,7 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
} }
void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt, void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info, u8 type, u8 code, int offset, __be32 info,
struct udp_table *udptable) struct udp_table *udptable)
{ {
struct ipv6_pinfo *np; struct ipv6_pinfo *np;
...@@ -346,8 +346,8 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -346,8 +346,8 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
} }
static __inline__ void udpv6_err(struct sk_buff *skb, static __inline__ void udpv6_err(struct sk_buff *skb,
struct inet6_skb_parm *opt, int type, struct inet6_skb_parm *opt, u8 type,
int code, int offset, __be32 info ) u8 code, int offset, __be32 info )
{ {
__udp6_lib_err(skb, opt, type, code, offset, info, &udp_table); __udp6_lib_err(skb, opt, type, code, offset, info, &udp_table);
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
extern int __udp6_lib_rcv(struct sk_buff *, struct udp_table *, int ); extern int __udp6_lib_rcv(struct sk_buff *, struct udp_table *, int );
extern void __udp6_lib_err(struct sk_buff *, struct inet6_skb_parm *, extern void __udp6_lib_err(struct sk_buff *, struct inet6_skb_parm *,
int , int , int , __be32 , struct udp_table *); u8 , u8 , int , __be32 , struct udp_table *);
extern int udp_v6_get_port(struct sock *sk, unsigned short snum); extern int udp_v6_get_port(struct sock *sk, unsigned short snum);
......
...@@ -20,7 +20,7 @@ static int udplitev6_rcv(struct sk_buff *skb) ...@@ -20,7 +20,7 @@ static int udplitev6_rcv(struct sk_buff *skb)
static void udplitev6_err(struct sk_buff *skb, static void udplitev6_err(struct sk_buff *skb,
struct inet6_skb_parm *opt, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
__udp6_lib_err(skb, opt, type, code, offset, info, &udplite_table); __udp6_lib_err(skb, opt, type, code, offset, info, &udplite_table);
} }
......
...@@ -262,7 +262,7 @@ static int xfrm6_tunnel_rcv(struct sk_buff *skb) ...@@ -262,7 +262,7 @@ static int xfrm6_tunnel_rcv(struct sk_buff *skb)
} }
static int xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt, static int xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
/* xfrm6_tunnel native err handling */ /* xfrm6_tunnel native err handling */
switch (type) { switch (type) {
......
...@@ -133,7 +133,7 @@ static struct notifier_block sctp_inet6addr_notifier = { ...@@ -133,7 +133,7 @@ static struct notifier_block sctp_inet6addr_notifier = {
/* ICMP error handler. */ /* ICMP error handler. */
SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
int type, int code, int offset, __be32 info) u8 type, u8 code, int offset, __be32 info)
{ {
struct inet6_dev *idev; struct inet6_dev *idev;
struct sock *sk; struct sock *sk;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册