Protect closeconv() with waserror()
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 2 Sep 2016 17:25:40 +0000 (13:25 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 6 Sep 2016 13:26:23 +0000 (09:26 -0400)
commitb188948fb203d79e67b126affe04cbcd24af30b1
tree0ca5c382c6862df4e7404d938bf79709257de6c9
parent24193e85dd377faa848527822555df18dfd8f113
Protect closeconv() with waserror()

If closeconv() calls something that throws, it wouldn't unlock.

I didn't see closeconv get jumped over without unlocking, but it was a
potential source of deadlock.  From looking at the code, this is possible:

closeconv() ->
  ipifcremmulti() ->
    remselfcache() ->
      etherremmulit() ->
        devtab[x].write()

The latter call can throw.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/net/devip.c