From: Yuval Shaia Date: Thu, 6 Sep 2018 11:21:27 +0000 (-0700) Subject: IB/ipoib: Improve filtering log message X-Git-Tag: v4.1.12-124.31.3~522 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=6a460470504572fc5d7362108ac67257f0d1f07d;p=users%2Fjedix%2Flinux-maple.git IB/ipoib: Improve filtering log message The values of subnet_prefix and sgid are missing in log message when a non-CM packet is filtered since they are both initialized only for ARP packets. Fix this by setting them anyway. Orabug: 28655409 Signed-off-by: Yuval Shaia Reviewed-by: HÃ¥kon Bugge Signed-off-by: Brian Maly --- diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c index cd3448299d068..5b0d05e994a6b 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c @@ -280,14 +280,14 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc) skb_pull(skb, IB_GRH_BYTES); skb->protocol = ((struct ipoib_header *) skb->data)->proto; - skb_pull(skb, IPOIB_ENCAP_LEN); skb->truesize = SKB_TRUESIZE(skb->len); - if (unlikely(be16_to_cpu(skb->protocol) == ETH_P_ARP)) { - if (priv->acl.enabled) { - subnet_prefix = be64_to_cpu(sgid->global.subnet_prefix); - guid = be64_to_cpu(sgid->global.interface_id); + if (priv->acl.enabled) { + skb_pull(skb, IPOIB_ENCAP_LEN); + subnet_prefix = be64_to_cpu(sgid->global.subnet_prefix); + guid = be64_to_cpu(sgid->global.interface_id); + if (unlikely(be16_to_cpu(skb->protocol) == ETH_P_ARP)) { if (!(wc->wc_flags & IB_WC_GRH)) drop = IPOIB_DROP_NO_GRH; else if (!ipoib_is_valid_arp_address(dev, skb, @@ -300,19 +300,17 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc) priv->arp_blocked++; goto drop; } - } - priv->arp_accepted++; - } else - if (priv->acl.enabled) { + } else { priv->ud_blocked++; drop = IPOIB_DROP_NON_CM_PACKRT; goto drop; } + skb_push(skb, IPOIB_ENCAP_LEN); + } ++dev->stats.rx_packets; dev->stats.rx_bytes += skb->len; - skb_push(skb, IPOIB_ENCAP_LEN); skb_add_pseudo_hdr(skb); skb->dev = dev;