cvs commit: src/sys/opencrypto crypto.c
Pawel Jakub Dawidek
pjd at FreeBSD.org
Mon May 22 03:06:06 PDT 2006
pjd 2006-05-22 10:05:24 UTC
FreeBSD src repository
Improve the code responsible for waking up the crypto_proc thread.
Checking if the queues are empty is not enough for the crypto_proc thread
(it is enough for the crypto_ret_thread), because drivers can be marked
as blocked. In a situation where we have operations related to different
crypto drivers in the queue, it is possible that one driver is marked as
blocked. In this case, the queue will not be empty and we won't wakeup
the crypto_proc thread to execute operations for the others drivers.
Simply setting a global variable to 1 when we goes to sleep and setting
it back to 0 when we wake up is sufficient. The variable is protected
with the queue lock.
Revision Changes Path
1.24 +11 -14 src/sys/opencrypto/crypto.c
More information about the cvs-src