summaryrefslogtreecommitdiffstats
path: root/net/ipv4/devinet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/devinet.c')
-rw-r--r--net/ipv4/devinet.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index a34602ae27de..608a6f4223fb 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -952,17 +952,18 @@ static int inet_abc_len(__be32 addr)
952{ 952{
953 int rc = -1; /* Something else, probably a multicast. */ 953 int rc = -1; /* Something else, probably a multicast. */
954 954
955 if (ipv4_is_zeronet(addr)) 955 if (ipv4_is_zeronet(addr) || ipv4_is_lbcast(addr))
956 rc = 0; 956 rc = 0;
957 else { 957 else {
958 __u32 haddr = ntohl(addr); 958 __u32 haddr = ntohl(addr);
959
960 if (IN_CLASSA(haddr)) 959 if (IN_CLASSA(haddr))
961 rc = 8; 960 rc = 8;
962 else if (IN_CLASSB(haddr)) 961 else if (IN_CLASSB(haddr))
963 rc = 16; 962 rc = 16;
964 else if (IN_CLASSC(haddr)) 963 else if (IN_CLASSC(haddr))
965 rc = 24; 964 rc = 24;
965 else if (IN_CLASSE(haddr))
966 rc = 32;
966 } 967 }
967 968
968 return rc; 969 return rc;