On 9 May 2013 18:35, Ben Pfaff <[email protected]> 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
[email protected]
http://openvswitch.org/mailman/listinfo/dev