datapath: Don't dereference potentially NULL vport in patch ports.
authorJesse Gross <jesse@nicira.com>
Tue, 31 Jan 2012 22:22:25 +0000 (14:22 -0800)
committerJesse Gross <jesse@nicira.com>
Wed, 1 Feb 2012 00:08:30 +0000 (16:08 -0800)
When changing patch ports we need to update any peers pointing to us.
When destroying the port, this means pointing them to a NULL port.
However, the new namespaces code attempted to dereference this port
in order to get the namespace.  The net is already passed in, so we
can just use that instead.

Bug #9477

Reported-by: Michael Hu <mhu@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
datapath/vport-patch.c

index 0056792bcbdcff3e01ba88a9f4b3cc4da0209453..ea46a8dcfc275f54c118a6ecdbd1b8a953cb5b9a 100644 (file)
@@ -233,7 +233,7 @@ error:
 
 static void update_peers(struct net *net, const char *name, struct vport *vport)
 {
-       struct hlist_head *bucket = hash_bucket(ovs_dp_get_net(vport->dp), name);
+       struct hlist_head *bucket = hash_bucket(net, name);
        struct patch_vport *peer_vport;
        struct hlist_node *node;