mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
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 <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9f06f87fef
commit
8e69b3459c
@ -41,7 +41,8 @@
|
|||||||
* nlmsg_get_pos() return current position in message
|
* nlmsg_get_pos() return current position in message
|
||||||
* nlmsg_trim() trim part of message
|
* nlmsg_trim() trim part of message
|
||||||
* nlmsg_cancel() cancel message construction
|
* nlmsg_cancel() cancel message construction
|
||||||
* nlmsg_free() free a netlink message
|
* nlmsg_consume() free a netlink message (expected)
|
||||||
|
* nlmsg_free() free a netlink message (drop)
|
||||||
*
|
*
|
||||||
* Message Sending:
|
* Message Sending:
|
||||||
* nlmsg_multicast() multicast message to several groups
|
* nlmsg_multicast() multicast message to several groups
|
||||||
@ -1082,7 +1083,7 @@ static inline void nlmsg_cancel(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nlmsg_free - free a netlink message
|
* nlmsg_free - drop a netlink message
|
||||||
* @skb: socket buffer of netlink message
|
* @skb: socket buffer of netlink message
|
||||||
*/
|
*/
|
||||||
static inline void nlmsg_free(struct sk_buff *skb)
|
static inline void nlmsg_free(struct sk_buff *skb)
|
||||||
@ -1090,6 +1091,15 @@ static inline void nlmsg_free(struct sk_buff *skb)
|
|||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nlmsg_consume - free a netlink message
|
||||||
|
* @skb: socket buffer of netlink message
|
||||||
|
*/
|
||||||
|
static inline void nlmsg_consume(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
consume_skb(skb);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nlmsg_multicast_filtered - multicast a netlink message with filter function
|
* nlmsg_multicast_filtered - multicast a netlink message with filter function
|
||||||
* @sk: netlink socket to spread messages to
|
* @sk: netlink socket to spread messages to
|
||||||
|
@ -1214,7 +1214,7 @@ static void __devlink_compat_running_version(struct devlink *devlink,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
free_msg:
|
free_msg:
|
||||||
nlmsg_free(msg);
|
nlmsg_consume(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void devlink_compat_running_version(struct devlink *devlink,
|
void devlink_compat_running_version(struct devlink *devlink,
|
||||||
|
Loading…
Reference in New Issue
Block a user