diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 5a5cda1602674b18bfad707a08d636693f8b359e..6fff8c4c99c7ab57226120bbd143d94f451c08d6 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -924,7 +924,8 @@ extern void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const voi
 	(skb)->len; })
 
 #define RTA_NEST_CANCEL(skb, start) \
-({	skb_trim(skb, (unsigned char *) (start) - (skb)->data); \
+({	if (start) \
+		skb_trim(skb, (unsigned char *) (start) - (skb)->data); \
 	-1; })
 
 #define RTA_GET_U32(rta) \