> -----Original Message----- > From: Chiappero, Marco > Sent: Thursday, April 27, 2017 7:52 AM > To: netdev@vger.kernel.org > Cc: David S . Miller <da...@davemloft.net>; Kirsher, Jeffrey T > <jeffrey.t.kirs...@intel.com>; Duyck, Alexander H > <alexander.h.du...@intel.com>; Grandhi, Sainath > <sainath.gran...@intel.com>; Mahesh Bandewar <mahe...@google.com>; > Chiappero, Marco <marco.chiapp...@intel.com> > Subject: [PATCH net-next 8/9] ipvlan: improve compiler hints > > Extend inlining and branch prediction hints. > > Signed-off-by: Marco Chiappero <marco.chiapp...@intel.com> > --- > drivers/net/ipvlan/ipvlan_core.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ipvlan/ipvlan_core.c > b/drivers/net/ipvlan/ipvlan_core.c > index a9fc1b5..67e342d 100644 > --- a/drivers/net/ipvlan/ipvlan_core.c > +++ b/drivers/net/ipvlan/ipvlan_core.c > @@ -88,7 +88,7 @@ void ipvlan_ht_addr_del(struct ipvl_addr *addr) > hlist_del_init_rcu(&addr->hlnode); > } > > -unsigned int ipvlan_mac_hash(const unsigned char *addr) > +inline unsigned int ipvlan_mac_hash(const unsigned char *addr) > { > u32 hash = jhash_1word(__get_unaligned_cpu32(addr + 2), > ipvlan_jhash_secret);
I'm kind of surprised this isn't causing a problem with differing declarations between the declaration here and the declaration in ipvlan.h. Normally for inlining something like this you would change it to a "static inline" and move the entire declaration into the header file. > @@ -505,7 +505,7 @@ static int ipvlan_xmit_mode_l2(struct sk_buff *skb, > struct net_device *dev) > return ipvlan_rcv_int_frame(addr, &skb); > > skb = skb_share_check(skb, GFP_ATOMIC); > - if (!skb) > + if (unlikely(!skb)) > return NET_XMIT_DROP; > > /* Packet definitely does not belong to any of the @@ -596,7 > +596,7 @@ static rx_handler_result_t ipvlan_handle_mode_l2(struct sk_buff > **pskb, > * when work-queue processes this frame. This is > * achieved by returning RX_HANDLER_PASS. > */ > - if (nskb) > + if (likely(nskb)) > ipvlan_multicast_enqueue(port, nskb, false); > } > } else { > -- > 2.9.3