On 9 May 2013 18:35, Ben Pfaff <b...@nicira.com> wrote:
> This gets rid of the only per-instance data in "struct netdev", which
> will make it possible to merge "struct netdev_dev" into "struct netdev" in
> a later commit.

The four patches generally look good to me, and when I apply the whole
set they pass the unit tests on FreeBSD.

I tried rebasing the original BSD threaded userspace datapath patch on
top of the set, but it didn't work properly.  To further that
investigation I planned to try merging each of these patches
incrementally, and upon testing just this first one ran into a
use-after-free (with the default malloc diagnostics enabled for
FreeBSD in the unit tests):

(gdb) bt
#0  netdev_dev_unref (dev=0x5a5a5a5a5a5a5a5a) at lib/netdev.c:314
#1  0x0000000000412158 in update_port (ofproto=0x801cce010,
    name=<optimized out>) at ofproto/ofproto.c:1975
#2  0x0000000000414405 in reinit_ports (p=<optimized out>)
    at ofproto/ofproto.c:1660
#3  process_port_change (devname=<optimized out>, error=<optimized out>,
    ofproto=<optimized out>) at ofproto/ofproto.c:1115
#4  ofproto_run (p=0x801cce010) at ofproto/ofproto.c:1186
#5  0x000000000040ccd7 in bridge_run () at vswitchd/bridge.c:2327
#6  0x000000000040dcfa in main (argc=<optimized out>, argv=<optimized out>)
    at vswitchd/ovs-vswitchd.c:125

It looks like a ref_cnt increment is missing somewhere.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to