Skip to content

Commit 8e69b34

Browse files
kuba-moodavem330
authored andcommitted
netlink: add nlmsg_consume() and use it in devlink compat
devlink_compat_running_version() sticks out when running netdevsim tests and watching dropped skbs. Add nlmsg_consume() for cases were we want to free a netlink skb but it is expected, rather than a drop. af_netlink code uses consume_skb() directly, which is fine, but some may prefer the symmetry of nlmsg_new() / nlmsg_consume(). Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 9f06f87 commit 8e69b34

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

include/net/netlink.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
* nlmsg_get_pos() return current position in message
4242
* nlmsg_trim() trim part of message
4343
* nlmsg_cancel() cancel message construction
44-
* nlmsg_free() free a netlink message
44+
* nlmsg_consume() free a netlink message (expected)
45+
* nlmsg_free() free a netlink message (drop)
4546
*
4647
* Message Sending:
4748
* nlmsg_multicast() multicast message to several groups
@@ -1082,14 +1083,23 @@ static inline void nlmsg_cancel(struct sk_buff *skb, struct nlmsghdr *nlh)
10821083
}
10831084

10841085
/**
1085-
* nlmsg_free - free a netlink message
1086+
* nlmsg_free - drop a netlink message
10861087
* @skb: socket buffer of netlink message
10871088
*/
10881089
static inline void nlmsg_free(struct sk_buff *skb)
10891090
{
10901091
kfree_skb(skb);
10911092
}
10921093

1094+
/**
1095+
* nlmsg_consume - free a netlink message
1096+
* @skb: socket buffer of netlink message
1097+
*/
1098+
static inline void nlmsg_consume(struct sk_buff *skb)
1099+
{
1100+
consume_skb(skb);
1101+
}
1102+
10931103
/**
10941104
* nlmsg_multicast_filtered - multicast a netlink message with filter function
10951105
* @sk: netlink socket to spread messages to

net/devlink/dev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1214,7 +1214,7 @@ static void __devlink_compat_running_version(struct devlink *devlink,
12141214
}
12151215
}
12161216
free_msg:
1217-
nlmsg_free(msg);
1217+
nlmsg_consume(msg);
12181218
}
12191219

12201220
void devlink_compat_running_version(struct devlink *devlink,

0 commit comments

Comments
 (0)