Lines Matching refs:cm

438 	crypto_minor_t *cm = NULL;
513 cm = kmem_zalloc(sizeof (crypto_minor_t), KM_SLEEP);
514 mutex_init(&cm->cm_lock, NULL, MUTEX_DRIVER, NULL);
515 cv_init(&cm->cm_cv, NULL, CV_DRIVER, NULL);
518 cm->cm_refcnt = 1;
519 crypto_minors[mn - 1] = cm;
532 crypto_minor_t *cm = NULL;
548 cm = crypto_minors[mn - 1];
549 if (cm == NULL) {
568 mutex_enter(&cm->cm_lock);
569 cm->cm_refcnt --; /* decrement refcnt held in open */
570 while (cm->cm_refcnt > 0) {
571 cv_wait(&cm->cm_cv, &cm->cm_lock);
577 for (i = 1; i < cm->cm_session_table_count; i++) {
578 if (cm->cm_session_table[i] == NULL)
581 sp = cm->cm_session_table[i];
589 crypto_release_provider_session(cm, sp->sd_provider_session);
595 cm->cm_session_table[i] = NULL;
599 if (cm->cm_session_table != NULL && cm->cm_session_table_count > 0)
600 kmem_free(cm->cm_session_table, cm->cm_session_table_count *
603 total += (cm->cm_session_table_count * sizeof (void *));
606 kcf_free_provider_tab(cm->cm_provider_count,
607 cm->cm_provider_array);
609 mutex_exit(&cm->cm_lock);
610 mutex_destroy(&cm->cm_lock);
611 cv_destroy(&cm->cm_cv);
612 kmem_free(cm, sizeof (crypto_minor_t));
620 crypto_minor_t *cm;
629 if ((cm = crypto_minors[minor - 1]) != NULL) {
630 atomic_inc_32(&cm->cm_refcnt);
633 return (cm);
637 crypto_release_minor(crypto_minor_t *cm)
639 if (atomic_dec_32_nv(&cm->cm_refcnt) == 0) {
640 cv_signal(&cm->cm_cv);
847 crypto_minor_t *cm;
853 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
859 crypto_release_minor(cm);
864 if (cm->cm_provider_array == NULL) {
865 rv = crypto_get_provider_list(cm, NULL, NULL, DONT_RETURN_LIST);
872 mutex_enter(&cm->cm_lock);
874 if (provider_id >= cm->cm_provider_count) {
875 mutex_exit(&cm->cm_lock);
880 ASSERT(cm->cm_provider_array != NULL);
881 provider = cm->cm_provider_array[provider_id];
882 mutex_exit(&cm->cm_lock);
905 crypto_release_minor(cm);
1172 crypto_get_provider_list(crypto_minor_t *cm, uint_t *count,
1189 /* allocate memory before taking cm->cm_lock */
1207 mutex_enter(&cm->cm_lock);
1208 if (cm->cm_provider_array != NULL) {
1209 ASSERT(cm->cm_provider_count > 0);
1210 kcf_free_provider_tab(cm->cm_provider_count,
1211 cm->cm_provider_array);
1214 cm->cm_provider_array = provider_array;
1215 cm->cm_provider_count = provider_count;
1216 mutex_exit(&cm->cm_lock);
1231 crypto_minor_t *cm;
1240 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
1246 crypto_release_minor(cm);
1250 rv = crypto_get_provider_list(cm, &count, &entries, RETURN_LIST);
1252 crypto_release_minor(cm);
1260 crypto_release_minor(cm);
1413 crypto_minor_t *cm;
1424 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
1430 crypto_release_minor(cm);
1441 if (cm->cm_provider_array == NULL) {
1442 rv = crypto_get_provider_list(cm, NULL, NULL, DONT_RETURN_LIST);
1451 mutex_enter(&cm->cm_lock);
1453 if (provider_id >= cm->cm_provider_count) {
1454 mutex_exit(&cm->cm_lock);
1459 ASSERT(cm->cm_provider_array != NULL);
1460 provider = cm->cm_provider_array[provider_id];
1462 mutex_exit(&cm->cm_lock);
1491 crypto_release_minor(cm);
1517 crypto_minor_t *cm;
1526 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
1534 crypto_release_minor(cm);
1539 if ((err = crypto_get_provider_mechanisms(cm,
1542 crypto_release_minor(cm);
1550 crypto_release_minor(cm);
1616 crypto_minor_t *cm;
1622 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
1629 crypto_release_minor(cm);
1634 if (cm->cm_provider_array == NULL) {
1635 rv = crypto_get_provider_list(cm, NULL, NULL, DONT_RETURN_LIST);
1637 mutex_enter(&cm->cm_lock);
1646 mutex_enter(&cm->cm_lock);
1647 if (mechanism_info.mi_provider_id >= cm->cm_provider_count) {
1652 pd = cm->cm_provider_array[mechanism_info.mi_provider_id];
1680 mutex_exit(&cm->cm_lock);
1681 crypto_release_minor(cm);
1698 crypto_get_provider_session(crypto_minor_t *cm,
1707 ASSERT(MUTEX_HELD(&cm->cm_lock));
1710 pd = cm->cm_provider_array[provider_index];
1717 for (ps = cm->cm_provider_session; ps != NULL; ps = ps->ps_next) {
1728 mutex_exit(&cm->cm_lock);
1743 mutex_enter(&cm->cm_lock);
1756 mutex_enter(&cm->cm_lock);
1757 for (ps = cm->cm_provider_session; ps != NULL; ps = ps->ps_next) {
1759 mutex_exit(&cm->cm_lock);
1770 mutex_enter(&cm->cm_lock);
1784 new_ps->ps_next = cm->cm_provider_session;
1785 cm->cm_provider_session = new_ps;
1797 crypto_release_provider_session(crypto_minor_t *cm,
1803 ASSERT(MUTEX_HELD(&cm->cm_lock));
1806 for (ps = cm->cm_provider_session, prev = &cm->cm_provider_session;
1835 grow_session_table(crypto_minor_t *cm)
1845 ASSERT(MUTEX_HELD(&cm->cm_lock));
1847 session_table_count = cm->cm_session_table_count;
1848 session_table = cm->cm_session_table;
1864 mutex_exit(&cm->cm_lock);
1866 mutex_enter(&cm->cm_lock);
1869 if (session_table_count != cm->cm_session_table_count) {
1876 cm->cm_session_table = new;
1877 cm->cm_session_table_count += CRYPTO_SESSION_CHUNK;
1893 crypto_minor_t *cm;
1900 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
1906 if (cm->cm_provider_array == NULL) {
1907 rv = crypto_get_provider_list(cm, NULL, NULL, DONT_RETURN_LIST);
1909 crypto_release_minor(cm);
1914 mutex_enter(&cm->cm_lock);
1916 if (provider_id >= cm->cm_provider_count) {
1917 mutex_exit(&cm->cm_lock);
1918 crypto_release_minor(cm);
1921 ASSERT(cm->cm_provider_array != NULL);
1923 rv = crypto_get_provider_session(cm, provider_id, &ps);
1925 mutex_exit(&cm->cm_lock);
1926 crypto_release_minor(cm);
1929 provider = cm->cm_provider_array[provider_id];
1932 session_table_count = cm->cm_session_table_count;
1933 session_table = cm->cm_session_table;
1942 if ((rv = grow_session_table(cm)) != CRYPTO_SUCCESS) {
1943 crypto_release_provider_session(cm, ps);
1944 mutex_exit(&cm->cm_lock);
1945 crypto_release_minor(cm);
1975 cm->cm_session_table[i] = sp;
1976 mutex_exit(&cm->cm_lock);
1977 crypto_release_minor(cm);
1991 crypto_minor_t *cm;
1993 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
1998 mutex_enter(&cm->cm_lock);
1999 session_table = cm->cm_session_table;
2002 (session_index >= cm->cm_session_table_count)) {
2003 mutex_exit(&cm->cm_lock);
2004 crypto_release_minor(cm);
2010 mutex_exit(&cm->cm_lock);
2011 crypto_release_minor(cm);
2031 crypto_release_provider_session(cm, sp->sd_provider_session);
2040 mutex_exit(&cm->cm_lock);
2041 crypto_release_minor(cm);
2443 get_session_ptr(crypto_session_id_t i, crypto_minor_t *cm,
2450 mutex_enter(&cm->cm_lock);
2451 if ((i < cm->cm_session_table_count) &&
2452 (cm->cm_session_table[i] != NULL)) {
2453 sp = cm->cm_session_table[i];
2455 mutex_exit(&cm->cm_lock);
2482 mutex_exit(&cm->cm_lock);
2611 crypto_minor_t *cm;
2626 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
2633 crypto_release_minor(cm);
2642 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
2699 crypto_release_minor(cm);
2747 crypto_minor_t *cm;
2760 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
2766 crypto_release_minor(cm);
2795 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
2863 crypto_release_minor(cm);
2906 crypto_minor_t *cm;
2919 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
2926 crypto_release_minor(cm);
2955 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3020 crypto_release_minor(cm);
3063 crypto_minor_t *cm;
3075 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3082 crypto_release_minor(cm);
3109 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3168 crypto_release_minor(cm);
3192 crypto_minor_t *cm;
3202 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3209 crypto_release_minor(cm);
3217 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3245 crypto_release_minor(cm);
3270 crypto_minor_t *cm;
3280 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3287 crypto_release_minor(cm);
3304 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3333 crypto_release_minor(cm);
3356 crypto_minor_t *cm;
3365 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3371 crypto_release_minor(cm);
3379 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3394 crypto_release_minor(cm);
3434 crypto_minor_t *cm;
3446 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3453 crypto_release_minor(cm);
3482 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3547 crypto_release_minor(cm);
3573 crypto_minor_t *cm, crypto_session_id_t sid, crypto_session_data_t **sp,
3590 (void) get_session_ptr(sid, cm, sp, &tmp_error, &tmp_rv);
3605 crypto_minor_t *cm;
3616 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3623 crypto_release_minor(cm);
3630 &old_pin, old_pin_len, cm, STRUCT_FGET(set_pin, sp_session),
3664 crypto_release_minor(cm);
3693 crypto_minor_t *cm;
3703 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3709 crypto_release_minor(cm);
3718 &pin, pin_len, cm, STRUCT_FGET(login, co_session),
3743 crypto_release_minor(cm);
3767 crypto_minor_t *cm;
3772 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3778 crypto_release_minor(cm);
3782 if (!get_session_ptr(logout.cl_session, cm, &sp, &error, &rv)) {
3802 crypto_release_minor(cm);
3860 crypto_minor_t *cm;
3875 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
3881 crypto_release_minor(cm);
3890 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
3957 crypto_release_minor(cm);
3997 crypto_minor_t *cm;
4007 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4013 crypto_release_minor(cm);
4032 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4065 crypto_release_minor(cm);
4114 crypto_minor_t *cm;
4125 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4132 crypto_release_minor(cm);
4148 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4176 crypto_release_minor(cm);
4209 crypto_minor_t *cm;
4219 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4226 crypto_release_minor(cm);
4242 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4267 crypto_release_minor(cm);
4291 crypto_minor_t *cm;
4302 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4309 crypto_release_minor(cm);
4323 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4355 crypto_release_minor(cm);
4382 crypto_minor_t *cm;
4393 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4400 crypto_release_minor(cm);
4414 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4447 crypto_release_minor(cm);
4529 crypto_minor_t *cm;
4542 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4549 crypto_release_minor(cm);
4557 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4608 crypto_release_minor(cm);
4623 crypto_minor_t *cm;
4636 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4643 crypto_release_minor(cm);
4652 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4704 crypto_release_minor(cm);
4718 crypto_minor_t *cm;
4726 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4733 crypto_release_minor(cm);
4739 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4762 crypto_release_minor(cm);
4791 crypto_minor_t *cm;
4806 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4814 crypto_release_minor(cm);
4823 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4859 crypto_release_minor(cm);
4886 crypto_minor_t *cm;
4895 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4902 crypto_release_minor(cm);
4908 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
4932 crypto_release_minor(cm);
4955 crypto_minor_t *cm;
4968 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
4976 crypto_release_minor(cm);
4985 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5012 crypto_release_minor(cm);
5037 crypto_minor_t *cm;
5050 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5056 crypto_release_minor(cm);
5065 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5107 crypto_release_minor(cm);
5132 crypto_minor_t *cm;
5143 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5150 crypto_release_minor(cm);
5164 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5208 crypto_release_minor(cm);
5257 crypto_minor_t *cm;
5264 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5271 crypto_release_minor(cm);
5277 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5288 crypto_release_minor(cm);
5312 crypto_minor_t *cm;
5327 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5334 crypto_release_minor(cm);
5340 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5412 crypto_release_minor(cm);
5439 crypto_minor_t *cm;
5460 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5467 crypto_release_minor(cm);
5473 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5554 crypto_release_minor(cm);
5575 crypto_minor_t *cm;
5596 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5604 crypto_release_minor(cm);
5610 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5706 crypto_release_minor(cm);
5735 crypto_minor_t *cm;
5766 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5774 crypto_release_minor(cm);
5780 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
5902 crypto_release_minor(cm);
5922 crypto_minor_t *cm;
5939 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
5945 crypto_release_minor(cm);
5953 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
6048 crypto_release_minor(cm);
6081 crypto_minor_t *cm;
6102 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
6108 crypto_release_minor(cm);
6116 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
6227 crypto_release_minor(cm);
6249 crypto_minor_t *cm;
6267 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
6273 crypto_release_minor(cm);
6281 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
6379 crypto_release_minor(cm);
6407 crypto_minor_t *cm;
6427 if ((cm = crypto_hold_minor(getminor(dev))) == NULL) {
6433 crypto_release_minor(cm);
6441 if (!get_session_ptr(session_id, cm, &sp, &error, &rv)) {
6543 crypto_release_minor(cm);