Переглянути джерело

inet6: Conversion from u8 to int

This replaces assignments of the type "int on LHS" = "u8 on RHS" with
simpler code. The LHS can express all of the unsigned right hand side
values, hence the assigned value can not be negative.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Gerrit Renker 16 роки тому
батько
коміт
e651f03afe
5 змінених файлів з 11 додано та 33 видалено
  1. 4 13
      net/ipv6/icmp.c
  2. 5 10
      net/ipv6/ip6_output.c
  3. 0 2
      net/ipv6/ipv6_sockglue.c
  4. 1 4
      net/ipv6/raw.c
  5. 1 4
      net/ipv6/udp.c

+ 4 - 13
net/ipv6/icmp.c

@@ -323,7 +323,7 @@ void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info,
 	int iif = 0;
 	int iif = 0;
 	int addr_type = 0;
 	int addr_type = 0;
 	int len;
 	int len;
-	int hlimit, tclass;
+	int hlimit;
 	int err = 0;
 	int err = 0;
 
 
 	if ((u8 *)hdr < skb->head ||
 	if ((u8 *)hdr < skb->head ||
@@ -469,10 +469,6 @@ route_done:
 	if (hlimit < 0)
 	if (hlimit < 0)
 		hlimit = ip6_dst_hoplimit(dst);
 		hlimit = ip6_dst_hoplimit(dst);
 
 
-	tclass = np->tclass;
-	if (tclass < 0)
-		tclass = 0;
-
 	msg.skb = skb;
 	msg.skb = skb;
 	msg.offset = skb_network_offset(skb);
 	msg.offset = skb_network_offset(skb);
 	msg.type = type;
 	msg.type = type;
@@ -488,8 +484,8 @@ route_done:
 
 
 	err = ip6_append_data(sk, icmpv6_getfrag, &msg,
 	err = ip6_append_data(sk, icmpv6_getfrag, &msg,
 			      len + sizeof(struct icmp6hdr),
 			      len + sizeof(struct icmp6hdr),
-			      sizeof(struct icmp6hdr),
-			      hlimit, tclass, NULL, &fl, (struct rt6_info*)dst,
+			      sizeof(struct icmp6hdr), hlimit,
+			      np->tclass, NULL, &fl, (struct rt6_info*)dst,
 			      MSG_DONTWAIT);
 			      MSG_DONTWAIT);
 	if (err) {
 	if (err) {
 		ip6_flush_pending_frames(sk);
 		ip6_flush_pending_frames(sk);
@@ -522,7 +518,6 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
 	struct dst_entry *dst;
 	struct dst_entry *dst;
 	int err = 0;
 	int err = 0;
 	int hlimit;
 	int hlimit;
-	int tclass;
 
 
 	saddr = &ipv6_hdr(skb)->daddr;
 	saddr = &ipv6_hdr(skb)->daddr;
 
 
@@ -562,10 +557,6 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
 	if (hlimit < 0)
 	if (hlimit < 0)
 		hlimit = ip6_dst_hoplimit(dst);
 		hlimit = ip6_dst_hoplimit(dst);
 
 
-	tclass = np->tclass;
-	if (tclass < 0)
-		tclass = 0;
-
 	idev = in6_dev_get(skb->dev);
 	idev = in6_dev_get(skb->dev);
 
 
 	msg.skb = skb;
 	msg.skb = skb;
@@ -573,7 +564,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
 	msg.type = ICMPV6_ECHO_REPLY;
 	msg.type = ICMPV6_ECHO_REPLY;
 
 
 	err = ip6_append_data(sk, icmpv6_getfrag, &msg, skb->len + sizeof(struct icmp6hdr),
 	err = ip6_append_data(sk, icmpv6_getfrag, &msg, skb->len + sizeof(struct icmp6hdr),
-				sizeof(struct icmp6hdr), hlimit, tclass, NULL, &fl,
+				sizeof(struct icmp6hdr), hlimit, np->tclass, NULL, &fl,
 				(struct rt6_info*)dst, MSG_DONTWAIT);
 				(struct rt6_info*)dst, MSG_DONTWAIT);
 
 
 	if (err) {
 	if (err) {

+ 5 - 10
net/ipv6/ip6_output.c

@@ -194,7 +194,8 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl,
 	struct ipv6hdr *hdr;
 	struct ipv6hdr *hdr;
 	u8  proto = fl->proto;
 	u8  proto = fl->proto;
 	int seg_len = skb->len;
 	int seg_len = skb->len;
-	int hlimit, tclass;
+	int hlimit = -1;
+	int tclass = 0;
 	u32 mtu;
 	u32 mtu;
 
 
 	if (opt) {
 	if (opt) {
@@ -237,19 +238,13 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl,
 	/*
 	/*
 	 *	Fill in the IPv6 header
 	 *	Fill in the IPv6 header
 	 */
 	 */
-
-	hlimit = -1;
-	if (np)
+	if (np) {
+		tclass = np->tclass;
 		hlimit = np->hop_limit;
 		hlimit = np->hop_limit;
+	}
 	if (hlimit < 0)
 	if (hlimit < 0)
 		hlimit = ip6_dst_hoplimit(dst);
 		hlimit = ip6_dst_hoplimit(dst);
 
 
-	tclass = -1;
-	if (np)
-		tclass = np->tclass;
-	if (tclass < 0)
-		tclass = 0;
-
 	*(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | fl->fl6_flowlabel;
 	*(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | fl->fl6_flowlabel;
 
 
 	hdr->payload_len = htons(seg_len);
 	hdr->payload_len = htons(seg_len);

+ 0 - 2
net/ipv6/ipv6_sockglue.c

@@ -1037,8 +1037,6 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
 
 
 	case IPV6_TCLASS:
 	case IPV6_TCLASS:
 		val = np->tclass;
 		val = np->tclass;
-		if (val < 0)
-			val = 0;
 		break;
 		break;
 
 
 	case IPV6_RECVTCLASS:
 	case IPV6_RECVTCLASS:

+ 1 - 4
net/ipv6/raw.c

@@ -877,11 +877,8 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
 			hlimit = ip6_dst_hoplimit(dst);
 			hlimit = ip6_dst_hoplimit(dst);
 	}
 	}
 
 
-	if (tclass < 0) {
+	if (tclass < 0)
 		tclass = np->tclass;
 		tclass = np->tclass;
-		if (tclass < 0)
-			tclass = 0;
-	}
 
 
 	if (msg->msg_flags&MSG_CONFIRM)
 	if (msg->msg_flags&MSG_CONFIRM)
 		goto do_confirm;
 		goto do_confirm;

+ 1 - 4
net/ipv6/udp.c

@@ -946,11 +946,8 @@ do_udp_sendmsg:
 			hlimit = ip6_dst_hoplimit(dst);
 			hlimit = ip6_dst_hoplimit(dst);
 	}
 	}
 
 
-	if (tclass < 0) {
+	if (tclass < 0)
 		tclass = np->tclass;
 		tclass = np->tclass;
-		if (tclass < 0)
-			tclass = 0;
-	}
 
 
 	if (msg->msg_flags&MSG_CONFIRM)
 	if (msg->msg_flags&MSG_CONFIRM)
 		goto do_confirm;
 		goto do_confirm;