提交 714e85be 编写于 作者: A Al Viro 提交者: David S. Miller

[IPV6]: Assorted trivial endianness annotations.

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 252e3346
...@@ -124,12 +124,13 @@ static __inline__ int inet_ifa_match(__be32 addr, struct in_ifaddr *ifa) ...@@ -124,12 +124,13 @@ static __inline__ int inet_ifa_match(__be32 addr, struct in_ifaddr *ifa)
* Check if a mask is acceptable. * Check if a mask is acceptable.
*/ */
static __inline__ int bad_mask(u32 mask, u32 addr) static __inline__ int bad_mask(__be32 mask, __be32 addr)
{ {
__u32 hmask;
if (addr & (mask = ~mask)) if (addr & (mask = ~mask))
return 1; return 1;
mask = ntohl(mask); hmask = ntohl(mask);
if (mask & (mask+1)) if (hmask & (hmask+1))
return 1; return 1;
return 0; return 0;
} }
...@@ -190,11 +191,12 @@ static __inline__ __be32 inet_make_mask(int logmask) ...@@ -190,11 +191,12 @@ static __inline__ __be32 inet_make_mask(int logmask)
return 0; return 0;
} }
static __inline__ int inet_mask_len(__u32 mask) static __inline__ int inet_mask_len(__be32 mask)
{ {
if (!(mask = ntohl(mask))) __u32 hmask = ntohl(mask);
if (!hmask)
return 0; return 0;
return 32 - ffz(~mask); return 32 - ffz(~hmask);
} }
......
...@@ -16,7 +16,7 @@ extern void arp_send(int type, int ptype, __be32 dest_ip, ...@@ -16,7 +16,7 @@ extern void arp_send(int type, int ptype, __be32 dest_ip,
struct net_device *dev, __be32 src_ip, struct net_device *dev, __be32 src_ip,
unsigned char *dest_hw, unsigned char *src_hw, unsigned char *th); unsigned char *dest_hw, unsigned char *src_hw, unsigned char *th);
extern int arp_bind_neighbour(struct dst_entry *dst); extern int arp_bind_neighbour(struct dst_entry *dst);
extern int arp_mc_map(u32 addr, u8 *haddr, struct net_device *dev, int dir); extern int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir);
extern void arp_ifdown(struct net_device *dev); extern void arp_ifdown(struct net_device *dev);
extern struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip, extern struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip,
......
...@@ -123,7 +123,7 @@ extern int ip4_datagram_connect(struct sock *sk, ...@@ -123,7 +123,7 @@ extern int ip4_datagram_connect(struct sock *sk,
* multicast packets. * multicast packets.
*/ */
static inline void ip_tr_mc_map(u32 addr, char *buf) static inline void ip_tr_mc_map(__be32 addr, char *buf)
{ {
buf[0]=0xC0; buf[0]=0xC0;
buf[1]=0x00; buf[1]=0x00;
...@@ -238,9 +238,9 @@ static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst ...@@ -238,9 +238,9 @@ static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst
* Map a multicast IP onto multicast MAC for type ethernet. * Map a multicast IP onto multicast MAC for type ethernet.
*/ */
static inline void ip_eth_mc_map(u32 addr, char *buf) static inline void ip_eth_mc_map(__be32 naddr, char *buf)
{ {
addr=ntohl(addr); __u32 addr=ntohl(naddr);
buf[0]=0x01; buf[0]=0x01;
buf[1]=0x00; buf[1]=0x00;
buf[2]=0x5e; buf[2]=0x5e;
...@@ -256,13 +256,14 @@ static inline void ip_eth_mc_map(u32 addr, char *buf) ...@@ -256,13 +256,14 @@ static inline void ip_eth_mc_map(u32 addr, char *buf)
* Leave P_Key as 0 to be filled in by driver. * Leave P_Key as 0 to be filled in by driver.
*/ */
static inline void ip_ib_mc_map(u32 addr, char *buf) static inline void ip_ib_mc_map(__be32 naddr, char *buf)
{ {
__u32 addr;
buf[0] = 0; /* Reserved */ buf[0] = 0; /* Reserved */
buf[1] = 0xff; /* Multicast QPN */ buf[1] = 0xff; /* Multicast QPN */
buf[2] = 0xff; buf[2] = 0xff;
buf[3] = 0xff; buf[3] = 0xff;
addr = ntohl(addr); addr = ntohl(naddr);
buf[4] = 0xff; buf[4] = 0xff;
buf[5] = 0x12; /* link local scope */ buf[5] = 0x12; /* link local scope */
buf[6] = 0x40; /* IPv4 signature */ buf[6] = 0x40; /* IPv4 signature */
......
...@@ -644,7 +644,7 @@ int inet_getname(struct socket *sock, struct sockaddr *uaddr, ...@@ -644,7 +644,7 @@ int inet_getname(struct socket *sock, struct sockaddr *uaddr,
sin->sin_port = inet->dport; sin->sin_port = inet->dport;
sin->sin_addr.s_addr = inet->daddr; sin->sin_addr.s_addr = inet->daddr;
} else { } else {
__u32 addr = inet->rcv_saddr; __be32 addr = inet->rcv_saddr;
if (!addr) if (!addr)
addr = inet->saddr; addr = inet->saddr;
sin->sin_port = inet->sport; sin->sin_port = inet->sport;
...@@ -995,8 +995,8 @@ static int inet_sk_reselect_saddr(struct sock *sk) ...@@ -995,8 +995,8 @@ static int inet_sk_reselect_saddr(struct sock *sk)
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
int err; int err;
struct rtable *rt; struct rtable *rt;
__u32 old_saddr = inet->saddr; __be32 old_saddr = inet->saddr;
__u32 new_saddr; __be32 new_saddr;
__be32 daddr = inet->daddr; __be32 daddr = inet->daddr;
if (inet->opt && inet->opt->srr) if (inet->opt && inet->opt->srr)
......
...@@ -203,7 +203,7 @@ struct neigh_table arp_tbl = { ...@@ -203,7 +203,7 @@ struct neigh_table arp_tbl = {
.gc_thresh3 = 1024, .gc_thresh3 = 1024,
}; };
int arp_mc_map(u32 addr, u8 *haddr, struct net_device *dev, int dir) int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir)
{ {
switch (dev->type) { switch (dev->type) {
case ARPHRD_ETHER: case ARPHRD_ETHER:
......
...@@ -966,7 +966,7 @@ static int cipso_v4_gentag_hdr(const struct cipso_v4_doi *doi_def, ...@@ -966,7 +966,7 @@ static int cipso_v4_gentag_hdr(const struct cipso_v4_doi *doi_def,
buf[0] = IPOPT_CIPSO; buf[0] = IPOPT_CIPSO;
buf[1] = CIPSO_V4_HDR_LEN + len; buf[1] = CIPSO_V4_HDR_LEN + len;
*(u32 *)&buf[2] = htonl(doi_def->doi); *(__be32 *)&buf[2] = htonl(doi_def->doi);
return 0; return 0;
} }
...@@ -1140,7 +1140,7 @@ int cipso_v4_validate(unsigned char **option) ...@@ -1140,7 +1140,7 @@ int cipso_v4_validate(unsigned char **option)
} }
rcu_read_lock(); rcu_read_lock();
doi_def = cipso_v4_doi_getdef(ntohl(*((u32 *)&opt[2]))); doi_def = cipso_v4_doi_getdef(ntohl(*((__be32 *)&opt[2])));
if (doi_def == NULL) { if (doi_def == NULL) {
err_offset = 2; err_offset = 2;
goto validate_return_locked; goto validate_return_locked;
...@@ -1370,7 +1370,7 @@ int cipso_v4_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr) ...@@ -1370,7 +1370,7 @@ int cipso_v4_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr)
if (ret_val == 0) if (ret_val == 0)
return ret_val; return ret_val;
doi = ntohl(*(u32 *)&cipso_ptr[2]); doi = ntohl(*(__be32 *)&cipso_ptr[2]);
rcu_read_lock(); rcu_read_lock();
doi_def = cipso_v4_doi_getdef(doi); doi_def = cipso_v4_doi_getdef(doi);
if (doi_def == NULL) { if (doi_def == NULL) {
...@@ -1436,7 +1436,7 @@ int cipso_v4_skbuff_getattr(const struct sk_buff *skb, ...@@ -1436,7 +1436,7 @@ int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
if (cipso_v4_cache_check(cipso_ptr, cipso_ptr[1], secattr) == 0) if (cipso_v4_cache_check(cipso_ptr, cipso_ptr[1], secattr) == 0)
return 0; return 0;
doi = ntohl(*(u32 *)&cipso_ptr[2]); doi = ntohl(*(__be32 *)&cipso_ptr[2]);
rcu_read_lock(); rcu_read_lock();
doi_def = cipso_v4_doi_getdef(doi); doi_def = cipso_v4_doi_getdef(doi);
if (doi_def == NULL) if (doi_def == NULL)
......
...@@ -577,20 +577,20 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg ...@@ -577,20 +577,20 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg
* Determine a default network mask, based on the IP address. * Determine a default network mask, based on the IP address.
*/ */
static __inline__ int inet_abc_len(u32 addr) static __inline__ int inet_abc_len(__be32 addr)
{ {
int rc = -1; /* Something else, probably a multicast. */ int rc = -1; /* Something else, probably a multicast. */
if (ZERONET(addr)) if (ZERONET(addr))
rc = 0; rc = 0;
else { else {
addr = ntohl(addr); __u32 haddr = ntohl(addr);
if (IN_CLASSA(addr)) if (IN_CLASSA(haddr))
rc = 8; rc = 8;
else if (IN_CLASSB(addr)) else if (IN_CLASSB(haddr))
rc = 16; rc = 16;
else if (IN_CLASSC(addr)) else if (IN_CLASSC(haddr))
rc = 24; rc = 24;
} }
......
...@@ -341,7 +341,7 @@ int ip_queue_xmit(struct sk_buff *skb, struct sock *sk, int ipfragok) ...@@ -341,7 +341,7 @@ int ip_queue_xmit(struct sk_buff *skb, struct sock *sk, int ipfragok)
/* OK, we know where to send it, allocate and build IP header. */ /* OK, we know where to send it, allocate and build IP header. */
iph = (struct iphdr *) skb_push(skb, sizeof(struct iphdr) + (opt ? opt->optlen : 0)); iph = (struct iphdr *) skb_push(skb, sizeof(struct iphdr) + (opt ? opt->optlen : 0));
*((__u16 *)iph) = htons((4 << 12) | (5 << 8) | (inet->tos & 0xff)); *((__be16 *)iph) = htons((4 << 12) | (5 << 8) | (inet->tos & 0xff));
iph->tot_len = htons(skb->len); iph->tot_len = htons(skb->len);
if (ip_dont_fragment(sk, &rt->u.dst) && !ipfragok) if (ip_dont_fragment(sk, &rt->u.dst) && !ipfragok)
iph->frag_off = htons(IP_DF); iph->frag_off = htons(IP_DF);
......
...@@ -355,7 +355,7 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len) ...@@ -355,7 +355,7 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len)
sin = (struct sockaddr_in *)msg->msg_name; sin = (struct sockaddr_in *)msg->msg_name;
if (sin) { if (sin) {
sin->sin_family = AF_INET; sin->sin_family = AF_INET;
sin->sin_addr.s_addr = *(u32*)(skb->nh.raw + serr->addr_offset); sin->sin_addr.s_addr = *(__be32*)(skb->nh.raw + serr->addr_offset);
sin->sin_port = serr->port; sin->sin_port = serr->port;
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero)); memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
} }
......
...@@ -854,7 +854,7 @@ static void raw_seq_stop(struct seq_file *seq, void *v) ...@@ -854,7 +854,7 @@ static void raw_seq_stop(struct seq_file *seq, void *v)
static __inline__ char *get_raw_sock(struct sock *sp, char *tmpbuf, int i) static __inline__ char *get_raw_sock(struct sock *sp, char *tmpbuf, int i)
{ {
struct inet_sock *inet = inet_sk(sp); struct inet_sock *inet = inet_sk(sp);
unsigned int dest = inet->daddr, __be32 dest = inet->daddr,
src = inet->rcv_saddr; src = inet->rcv_saddr;
__u16 destp = 0, __u16 destp = 0,
srcp = inet->num; srcp = inet->num;
......
...@@ -566,8 +566,8 @@ static inline u32 rt_score(struct rtable *rt) ...@@ -566,8 +566,8 @@ static inline u32 rt_score(struct rtable *rt)
static inline int compare_keys(struct flowi *fl1, struct flowi *fl2) static inline int compare_keys(struct flowi *fl1, struct flowi *fl2)
{ {
return ((fl1->nl_u.ip4_u.daddr ^ fl2->nl_u.ip4_u.daddr) | return ((__force u32)((fl1->nl_u.ip4_u.daddr ^ fl2->nl_u.ip4_u.daddr) |
(fl1->nl_u.ip4_u.saddr ^ fl2->nl_u.ip4_u.saddr) | (fl1->nl_u.ip4_u.saddr ^ fl2->nl_u.ip4_u.saddr)) |
(fl1->mark ^ fl2->mark) | (fl1->mark ^ fl2->mark) |
(*(u16 *)&fl1->nl_u.ip4_u.tos ^ (*(u16 *)&fl1->nl_u.ip4_u.tos ^
*(u16 *)&fl2->nl_u.ip4_u.tos) | *(u16 *)&fl2->nl_u.ip4_u.tos) |
......
...@@ -35,23 +35,23 @@ module_init(init_syncookies); ...@@ -35,23 +35,23 @@ module_init(init_syncookies);
#define COOKIEBITS 24 /* Upper bits store count */ #define COOKIEBITS 24 /* Upper bits store count */
#define COOKIEMASK (((__u32)1 << COOKIEBITS) - 1) #define COOKIEMASK (((__u32)1 << COOKIEBITS) - 1)
static u32 cookie_hash(u32 saddr, u32 daddr, u32 sport, u32 dport, static u32 cookie_hash(__be32 saddr, __be32 daddr, __be16 sport, __be16 dport,
u32 count, int c) u32 count, int c)
{ {
__u32 tmp[16 + 5 + SHA_WORKSPACE_WORDS]; __u32 tmp[16 + 5 + SHA_WORKSPACE_WORDS];
memcpy(tmp + 3, syncookie_secret[c], sizeof(syncookie_secret[c])); memcpy(tmp + 3, syncookie_secret[c], sizeof(syncookie_secret[c]));
tmp[0] = saddr; tmp[0] = (__force u32)saddr;
tmp[1] = daddr; tmp[1] = (__force u32)daddr;
tmp[2] = (sport << 16) + dport; tmp[2] = ((__force u32)sport << 16) + (__force u32)dport;
tmp[3] = count; tmp[3] = count;
sha_transform(tmp + 16, (__u8 *)tmp, tmp + 16 + 5); sha_transform(tmp + 16, (__u8 *)tmp, tmp + 16 + 5);
return tmp[17]; return tmp[17];
} }
static __u32 secure_tcp_syn_cookie(__u32 saddr, __u32 daddr, __u16 sport, static __u32 secure_tcp_syn_cookie(__be32 saddr, __be32 daddr, __be16 sport,
__u16 dport, __u32 sseq, __u32 count, __be16 dport, __u32 sseq, __u32 count,
__u32 data) __u32 data)
{ {
/* /*
...@@ -80,8 +80,8 @@ static __u32 secure_tcp_syn_cookie(__u32 saddr, __u32 daddr, __u16 sport, ...@@ -80,8 +80,8 @@ static __u32 secure_tcp_syn_cookie(__u32 saddr, __u32 daddr, __u16 sport,
* "maxdiff" if the current (passed-in) "count". The return value * "maxdiff" if the current (passed-in) "count". The return value
* is (__u32)-1 if this test fails. * is (__u32)-1 if this test fails.
*/ */
static __u32 check_tcp_syn_cookie(__u32 cookie, __u32 saddr, __u32 daddr, static __u32 check_tcp_syn_cookie(__u32 cookie, __be32 saddr, __be32 daddr,
__u16 sport, __u16 dport, __u32 sseq, __be16 sport, __be16 dport, __u32 sseq,
__u32 count, __u32 maxdiff) __u32 count, __u32 maxdiff)
{ {
__u32 diff; __u32 diff;
...@@ -220,7 +220,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, ...@@ -220,7 +220,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
} }
ireq = inet_rsk(req); ireq = inet_rsk(req);
treq = tcp_rsk(req); treq = tcp_rsk(req);
treq->rcv_isn = htonl(skb->h.th->seq) - 1; treq->rcv_isn = ntohl(skb->h.th->seq) - 1;
treq->snt_isn = cookie; treq->snt_isn = cookie;
req->mss = mss; req->mss = mss;
ireq->rmt_port = skb->h.th->source; ireq->rmt_port = skb->h.th->source;
......
...@@ -542,7 +542,7 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb) ...@@ -542,7 +542,7 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
struct { struct {
struct tcphdr th; struct tcphdr th;
#ifdef CONFIG_TCP_MD5SIG #ifdef CONFIG_TCP_MD5SIG
u32 opt[(TCPOLEN_MD5SIG_ALIGNED >> 2)]; __be32 opt[(TCPOLEN_MD5SIG_ALIGNED >> 2)];
#endif #endif
} rep; } rep;
struct ip_reply_arg arg; struct ip_reply_arg arg;
...@@ -618,7 +618,7 @@ static void tcp_v4_send_ack(struct tcp_timewait_sock *twsk, ...@@ -618,7 +618,7 @@ static void tcp_v4_send_ack(struct tcp_timewait_sock *twsk,
struct tcphdr *th = skb->h.th; struct tcphdr *th = skb->h.th;
struct { struct {
struct tcphdr th; struct tcphdr th;
u32 opt[(TCPOLEN_TSTAMP_ALIGNED >> 2) __be32 opt[(TCPOLEN_TSTAMP_ALIGNED >> 2)
#ifdef CONFIG_TCP_MD5SIG #ifdef CONFIG_TCP_MD5SIG
+ (TCPOLEN_MD5SIG_ALIGNED >> 2) + (TCPOLEN_MD5SIG_ALIGNED >> 2)
#endif #endif
...@@ -2333,8 +2333,8 @@ static void get_tcp4_sock(struct sock *sp, char *tmpbuf, int i) ...@@ -2333,8 +2333,8 @@ static void get_tcp4_sock(struct sock *sp, char *tmpbuf, int i)
struct tcp_sock *tp = tcp_sk(sp); struct tcp_sock *tp = tcp_sk(sp);
const struct inet_connection_sock *icsk = inet_csk(sp); const struct inet_connection_sock *icsk = inet_csk(sp);
struct inet_sock *inet = inet_sk(sp); struct inet_sock *inet = inet_sk(sp);
unsigned int dest = inet->daddr; __be32 dest = inet->daddr;
unsigned int src = inet->rcv_saddr; __be32 src = inet->rcv_saddr;
__u16 destp = ntohs(inet->dport); __u16 destp = ntohs(inet->dport);
__u16 srcp = ntohs(inet->sport); __u16 srcp = ntohs(inet->sport);
......
...@@ -493,7 +493,7 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb, ...@@ -493,7 +493,7 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb,
struct request_sock **prev) struct request_sock **prev)
{ {
struct tcphdr *th = skb->h.th; struct tcphdr *th = skb->h.th;
u32 flg = tcp_flag_word(th) & (TCP_FLAG_RST|TCP_FLAG_SYN|TCP_FLAG_ACK); __be32 flg = tcp_flag_word(th) & (TCP_FLAG_RST|TCP_FLAG_SYN|TCP_FLAG_ACK);
int paws_reject = 0; int paws_reject = 0;
struct tcp_options_received tmp_opt; struct tcp_options_received tmp_opt;
struct sock *child; struct sock *child;
......
...@@ -297,7 +297,7 @@ static void tcp_retransmit_timer(struct sock *sk) ...@@ -297,7 +297,7 @@ static void tcp_retransmit_timer(struct sock *sk)
if (net_ratelimit()) { if (net_ratelimit()) {
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
printk(KERN_DEBUG "TCP: Treason uncloaked! Peer %u.%u.%u.%u:%u/%u shrinks window %u:%u. Repaired.\n", printk(KERN_DEBUG "TCP: Treason uncloaked! Peer %u.%u.%u.%u:%u/%u shrinks window %u:%u. Repaired.\n",
NIPQUAD(inet->daddr), htons(inet->dport), NIPQUAD(inet->daddr), ntohs(inet->dport),
inet->num, tp->snd_una, tp->snd_nxt); inet->num, tp->snd_una, tp->snd_nxt);
} }
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册