Mercurial > illumos > illumos-gate
changeset 4912:68b561701650
6594889 Hardware provider flow control broken by CR 6568352
author | krishna |
---|---|
date | Mon, 20 Aug 2007 16:54:37 -0700 |
parents | 13f2ed4acf3c |
children | 8d95fa5f1def |
files | usr/src/uts/common/crypto/spi/kcf_spi.c |
diffstat | 1 files changed, 10 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/crypto/spi/kcf_spi.c Mon Aug 20 16:05:45 2007 -0700 +++ b/usr/src/uts/common/crypto/spi/kcf_spi.c Mon Aug 20 16:54:37 2007 -0700 @@ -392,12 +392,10 @@ if (saved_state == KCF_PROV_BUSY) { /* - * The per-provider taskq thread may be waiting. We - * signal it so that it can start failing requests. - * Note that we do not need a cv_broadcast() as we keep - * only a single thread per taskq. + * The per-provider taskq threads may be waiting. We + * signal them so that they can start failing requests. */ - cv_signal(&desc->pd_resume_cv); + cv_broadcast(&desc->pd_resume_cv); } if (desc->pd_prov_type == CRYPTO_SW_PROVIDER) { @@ -528,12 +526,10 @@ case KCF_PROV_BUSY: pd->pd_state = KCF_PROV_READY; /* - * Signal the per-provider taskq thread that it - * can start submitting requests. Note that we do - * not need a cv_broadcast() as we keep only a - * single thread per taskq. + * Signal the per-provider taskq threads that they + * can start submitting requests. */ - cv_signal(&pd->pd_resume_cv); + cv_broadcast(&pd->pd_resume_cv); break; case KCF_PROV_FAILED: @@ -557,7 +553,7 @@ case CRYPTO_PROVIDER_FAILED: /* * We note the failure and return. The per-provider taskq - * thread checks this flag and starts failing the + * threads check this flag and start failing the * requests, if it is set. See process_req_hwp() for details. */ switch (pd->pd_state) { @@ -568,10 +564,10 @@ case KCF_PROV_BUSY: pd->pd_state = KCF_PROV_FAILED; /* - * The per-provider taskq thread may be waiting. We - * signal it so that it can start failing requests. + * The per-provider taskq threads may be waiting. We + * signal them so that they can start failing requests. */ - cv_signal(&pd->pd_resume_cv); + cv_broadcast(&pd->pd_resume_cv); break; } break;