net/ipv4: Pass proto as u8 instead of u16 in ip_check_mc_rcu
authorAlexander Duyck <aduyck@mirantis.com>
Mon, 28 Sep 2015 18:10:31 +0000 (11:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Sep 2015 23:27:47 +0000 (16:27 -0700)
This patch updates ip_check_mc_rcu so that protocol is passed as a u8
instead of a u16.

The motivation is just to avoid any unneeded type transitions since some
systems will require an instruction to zero extend a u8 field to a u16.
Also it makes it a bit more readable as to the fact that protocol is a u8
so there are no byte ordering changes needed to pass it.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/igmp.h
net/ipv4/igmp.c

index 908429216d9f6e1264484a34ea35e05a0ad43cc6..9c9de11549a73047318ffc688e621bbea09f71c9 100644 (file)
@@ -110,7 +110,7 @@ struct ip_mc_list {
 #define IGMPV3_QQIC(value) IGMPV3_EXP(0x80, 4, 3, value)
 #define IGMPV3_MRC(value) IGMPV3_EXP(0x80, 4, 3, value)
 
-extern int ip_check_mc_rcu(struct in_device *dev, __be32 mc_addr, __be32 src_addr, u16 proto);
+extern int ip_check_mc_rcu(struct in_device *dev, __be32 mc_addr, __be32 src_addr, u8 proto);
 extern int igmp_rcv(struct sk_buff *);
 extern int ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr);
 extern int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr);
index d38b8b61eaeef2e79faa28091dafbee715f7f059..de6d4c8ba600edccd9f467b5fab9f1c00a6f7151 100644 (file)
@@ -2569,7 +2569,7 @@ void ip_mc_drop_socket(struct sock *sk)
 }
 
 /* called with rcu_read_lock() */
-int ip_check_mc_rcu(struct in_device *in_dev, __be32 mc_addr, __be32 src_addr, u16 proto)
+int ip_check_mc_rcu(struct in_device *in_dev, __be32 mc_addr, __be32 src_addr, u8 proto)
 {
        struct ip_mc_list *im;
        struct ip_mc_list __rcu **mc_hash;