diff options
| author | Thirumalai Srinivasan <Thirumalai.Srinivasan@Sun.COM> | 2009-06-26 12:06:35 -0700 |
|---|---|---|
| committer | Thirumalai Srinivasan <Thirumalai.Srinivasan@Sun.COM> | 2009-06-26 12:06:35 -0700 |
| commit | 4cc341244283c4f742842066f99a49422ca19bbd (patch) | |
| tree | d5517da04fb460a043e0b5ad0bbbee3aef843a82 /usr/src/uts/common/inet/squeue.c | |
| parent | cd997836b08639dc4d44a032cadd0c7d526f960c (diff) | |
| download | illumos-joyent-4cc341244283c4f742842066f99a49422ca19bbd.tar.gz | |
6799660 panic, NULL pointer dereference, ip:ill_capability_ack_thr
6807899 system hang when running dladm delete-vnic
6816455 Panic : assertion failed: (sqp->sq_state & (SQS_DEFAULT|SQS_ILL_BOUND)) == SQS_DEFAULT
Diffstat (limited to 'usr/src/uts/common/inet/squeue.c')
| -rw-r--r-- | usr/src/uts/common/inet/squeue.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/usr/src/uts/common/inet/squeue.c b/usr/src/uts/common/inet/squeue.c index b4e41e78c7..e46293d820 100644 --- a/usr/src/uts/common/inet/squeue.c +++ b/usr/src/uts/common/inet/squeue.c @@ -1055,6 +1055,14 @@ poll_again: sqp->sq_state &= ~(SQS_PROC|SQS_GET_PKTS); /* LINTED: constant in conditional context */ SQS_POLLING_OFF(sqp, B_TRUE, sq_rx_ring); + + /* + * If there is a pending control operation + * wake up the worker, since it is currently + * not running. + */ + if (sqp->sq_state & SQS_WORKER_THR_CONTROL) + cv_signal(&sqp->sq_worker_cv); } else { /* * Worker thread is already running. We don't need |
