+static void free_port_rcu(struct rcu_head *rcu)
+{
+ struct patch_vport *patch_vport = container_of(rcu,
+ struct patch_vport, rcu);
+
+ kfree((struct patch_config __force *)patch_vport->patchconf);
+ ovs_vport_free(vport_from_priv(patch_vport));
+}
+
+static void patch_destroy(struct vport *vport)
+{
+ struct patch_vport *patch_vport = patch_vport_priv(vport);
+
+ update_peers(ovs_dp_get_net(vport->dp), patch_vport->name, NULL);
+ hlist_del(&patch_vport->hash_node);
+ call_rcu(&patch_vport->rcu, free_port_rcu);
+}
+
+static int patch_set_options(struct vport *vport, struct nlattr *options)