datapath: omit _mod from module names
[sliver-openvswitch.git] / datapath / vport-netdev.c
index 5e7eaa4..05d7696 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007-2011 Nicira Networks.
+ * Copyright (c) 2007-2012 Nicira Networks.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of version 2 of the GNU General Public
@@ -72,7 +72,7 @@ static struct sk_buff *netdev_frame_hook(struct sk_buff *skb)
        if (unlikely(skb->pkt_type == PACKET_LOOPBACK))
                return skb;
 
-       vport = netdev_get_vport(skb->dev);
+       vport = ovs_netdev_get_vport(skb->dev);
 
        netdev_port_receive(vport, skb);
 
@@ -139,7 +139,7 @@ static struct vport *netdev_create(const struct vport_parms *parms)
 
        netdev_vport = netdev_vport_priv(vport);
 
-       netdev_vport->dev = dev_get_by_name(&init_net, parms->name);
+       netdev_vport->dev = dev_get_by_name(ovs_dp_get_net(vport->dp), parms->name);
        if (!netdev_vport->dev) {
                err = -ENODEV;
                goto error_free_vport;
@@ -386,7 +386,7 @@ error:
 struct vport *ovs_netdev_get_vport(struct net_device *dev)
 {
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-#if IFF_BRIDGE_PORT != IFF_OVS_DATAPATH
+#if IFF_OVS_DATAPATH != 0
        if (likely(dev->priv_flags & IFF_OVS_DATAPATH))
 #else
        if (likely(rcu_access_pointer(dev->rx_handler) == netdev_frame_hook))
@@ -420,19 +420,10 @@ const struct vport_ops ovs_netdev_vport_ops = {
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
 /*
- * In kernels earlier than 2.6.36, Open vSwitch cannot safely coexist with
- * the Linux bridge module on any released version of Linux, because there
- * is only a single bridge hook function and only a single br_port member
- * in struct net_device.
- *
- * Declaring and exporting this symbol enforces mutual exclusion.  The bridge
- * module also exports the same symbol, so the module loader will refuse to
- * load both modules at the same time (e.g. "bridge: exports duplicate symbol
- * br_should_route_hook (owned by openvswitch_mod)").
- *
- * The use of "typeof" here avoids the need to track changes in the type of
- * br_should_route_hook over various kernel versions.
+ * In kernels earlier than 2.6.36, Open vSwitch cannot safely coexist with the
+ * Linux bridge module, because there is only a single bridge hook function and
+ * only a single br_port member in struct net_device, so this prevents loading
+ * both bridge and openvswitch at the same time.
  */
-typeof(br_should_route_hook) br_should_route_hook;
-EXPORT_SYMBOL(br_should_route_hook);
+BRIDGE_MUTUAL_EXCLUSION;
 #endif