diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index 04e0ecd..e947ad9 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -1074,32 +1074,39 @@
 	return err;
 }
 
+static int arp_req_delete_public(struct arpreq *r, struct net_device *dev)
+{
+	__be32 ip = ((struct sockaddr_in *) &r->arp_pa)->sin_addr.s_addr;
+	__be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr;
+
+	if (mask == htonl(0xFFFFFFFF))
+		return pneigh_delete(&arp_tbl, &ip, dev);
+
+	if (mask == 0) {
+		if (dev == NULL) {
+			IPV4_DEVCONF_ALL(PROXY_ARP) = 0;
+			return 0;
+		}
+		if (__in_dev_get_rtnl(dev)) {
+			IN_DEV_CONF_SET(__in_dev_get_rtnl(dev),
+					PROXY_ARP, 0);
+			return 0;
+		}
+		return -ENXIO;
+	}
+	return -EINVAL;
+}
+
 static int arp_req_delete(struct arpreq *r, struct net_device * dev)
 {
 	int err;
-	__be32 ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr;
+	__be32 ip;
 	struct neighbour *neigh;
 
-	if (r->arp_flags & ATF_PUBL) {
-		__be32 mask =
-		       ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr;
-		if (mask == htonl(0xFFFFFFFF))
-			return pneigh_delete(&arp_tbl, &ip, dev);
-		if (mask == 0) {
-			if (dev == NULL) {
-				IPV4_DEVCONF_ALL(PROXY_ARP) = 0;
-				return 0;
-			}
-			if (__in_dev_get_rtnl(dev)) {
-				IN_DEV_CONF_SET(__in_dev_get_rtnl(dev),
-						PROXY_ARP, 0);
-				return 0;
-			}
-			return -ENXIO;
-		}
-		return -EINVAL;
-	}
+	if (r->arp_flags & ATF_PUBL)
+		return arp_req_delete_public(r, dev);
 
+	ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr;
 	if (dev == NULL) {
 		struct flowi fl = { .nl_u = { .ip4_u = { .daddr = ip,
 							 .tos = RTO_ONLINK } } };
