netdev
[Top] [All Lists]

[PATCH] 2/3 rtnetlink -- RTA_PUT unlikely.

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: [PATCH] 2/3 rtnetlink -- RTA_PUT unlikely.
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Mon, 22 Sep 2003 16:36:39 -0700
Cc: netdev@xxxxxxxxxxx
Organization: Open Source Development Lab
Sender: netdev-bounce@xxxxxxxxxxx
RTA_PUT should normally be handed enough space, so optimize 

diff -Nru a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
--- a/include/linux/rtnetlink.h Mon Sep 22 16:14:19 2003
+++ b/include/linux/rtnetlink.h Mon Sep 22 16:14:19 2003
@@ -642,8 +642,9 @@
 extern void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const 
void *data);
 
 #define RTA_PUT(skb, attrtype, attrlen, data) \
-({ if (skb_tailroom(skb) < (int)RTA_SPACE(attrlen)) goto rtattr_failure; \
-   __rta_fill(skb, attrtype, attrlen, data); })
+({     if (unlikely(skb_tailroom(skb) < (int)RTA_SPACE(attrlen))) \
+                goto rtattr_failure; \
+       __rta_fill(skb, attrtype, attrlen, data); }) 
 
 static inline struct rtattr *
 __rta_reserve(struct sk_buff *skb, int attrtype, int attrlen)
@@ -658,8 +659,9 @@
 }
 
 #define __RTA_PUT(skb, attrtype, attrlen) \
-({ if (skb_tailroom(skb) < (int)RTA_SPACE(attrlen)) goto rtattr_failure; \
-   __rta_reserve(skb, attrtype, attrlen); })
+({     if (unlikely(skb_tailroom(skb) < (int)RTA_SPACE(attrlen))) \
+               goto rtattr_failure; \
+       __rta_reserve(skb, attrtype, attrlen); })
 
 extern void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change);
 

<Prev in Thread] Current Thread [Next in Thread>