#include <linux/kernel.h>
#include <asm/uaccess.h>
#include <linux/completion.h>
-#include <linux/delay.h>
#include <linux/etherdevice.h>
#include <linux/if_bridge.h>
-#include <linux/rculist.h>
#include <linux/netdevice.h>
#include <linux/rtnetlink.h>
#include <net/genetlink.h>
#include "openvswitch/brcompat-netlink.h"
#include "brc_procfs.h"
#include "datapath.h"
-#include "dp_dev.h"
static struct genl_family brc_genl_family;
static struct genl_multicast_group brc_mc_group;
/* Wait for reply. */
error = -ETIMEDOUT;
- if (!wait_for_completion_timeout(&brc_done, BRC_TIMEOUT))
+ if (!wait_for_completion_timeout(&brc_done, BRC_TIMEOUT)) {
+ printk(KERN_WARNING "brcompat: timed out waiting for userspace\n");
goto error;
+ }
/* Grab reply. */
spin_lock_irqsave(&brc_lock, flags);
static int
__init brc_init(void)
{
- int i;
int err;
printk("Open vSwitch Bridge Compatibility, built "__DATE__" "__TIME__"\n");
- rcu_read_lock();
- for (i=0; i<ODP_MAX; i++) {
- if (get_dp(i)) {
- rcu_read_unlock();
- printk(KERN_EMERG "brcompat: no datapaths may exist!\n");
- return -EEXIST;
- }
- }
- rcu_read_unlock();
-
/* Set the bridge ioctl handler */
brioctl_set(brc_ioctl_deviceless_stub);