Module Name: src Committed By: snj Date: Thu Jun 22 05:36:41 UTC 2017
Modified Files: src/sys/opencrypto [netbsd-8]: crypto.c cryptodev.h Log Message: Pull up following revision(s) (requested by christos/knakahara in ticket #37): sys/opencrypto/crypto.c: 1.79-1.86 sys/opencrypto/cryptodev.h: 1.35, 1.36 use crypto_checkdriver_uninit() when it may touch uninitialized crypto_drivers. -- fix reading crp_q without holding crypto_q_mtx -- restructure locks(1/2): make relation between lock and data explicit. + crypto_drv_mtx protects - whole crypto_drivers + crypto_drivers[i].cc_lock (new) protects - crypto_drivers[i] itself - member of crypto_drivers[i] + crypto_q_mtx protects - crp_q - crp_kq + crypto_ret_q_mtx protects - crp_ret_q - crp_ret_kq - crypto_exit_flag I will add locking note later. -- restructure locks(2/2): crypto_q_mtx can be adaptive now. -- add locking notes. -- avoid crp_q reordering as hardware interrupts. crypto_{,k}invoke() can be called with holding crp_q_mtx now. -- apply the same fix as crypto.c:r1.83 for crypto_dispatch to crypto_kdispatch. -- - acquire lock - use c99 loop indexes - initialize featp -- Put back crypto_checkdriver(); use it when we need to make sure that we get back a cryptocap that has been initialized. To generate a diff of this commit: cvs rdiff -u -r1.78 -r1.78.2.1 src/sys/opencrypto/crypto.c cvs rdiff -u -r1.34 -r1.34.2.1 src/sys/opencrypto/cryptodev.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.