diff options
-rw-r--r-- | sys/netinet/ip_dummynet.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/netinet/ip_dummynet.c b/sys/netinet/ip_dummynet.c index 9585cc7..0fd9906 100644 --- a/sys/netinet/ip_dummynet.c +++ b/sys/netinet/ip_dummynet.c @@ -1516,7 +1516,7 @@ set_fs_parms(struct dn_flow_set *x, struct dn_flow_set *src) static int config_pipe(struct dn_pipe *p) { - int i, s; + int i, r, s; struct dn_flow_set *pfs = &(p->fs); struct dn_flow_queue *q; @@ -1570,10 +1570,11 @@ config_pipe(struct dn_pipe *p) if ( x->fs.rq == NULL ) { /* a new pipe */ - s = alloc_hash(&(x->fs), pfs) ; - if (s) { + r = alloc_hash(&(x->fs), pfs) ; + if (r) { free(x, M_DUMMYNET); - return s ; + splx(s); + return r ; } x->next = b ; if (a == NULL) @@ -1614,10 +1615,11 @@ config_pipe(struct dn_pipe *p) set_fs_parms(x, pfs); if ( x->rq == NULL ) { /* a new flow_set */ - s = alloc_hash(x, pfs) ; + r = alloc_hash(x, pfs) ; if (s) { free(x, M_DUMMYNET); - return s ; + splx(s); + return r ; } x->next = b; if (a == NULL) |