diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
index a2cd3e6d03a20c6bf30b96d8b06412821c43a489..cae1062f94ba28111e8b17ec2356e4dd0839efda 100644
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -395,6 +395,7 @@ static int queue_userspace_packet(struct net *net, int dp_ifindex,
 
 	skb_copy_and_csum_dev(skb, nla_data(nla));
 
+	genlmsg_end(user_skb, upcall);
 	err = genlmsg_unicast(net, user_skb, upcall_info->portid);
 
 out: