Lines Matching refs:ipx
758 ipxop_t *ipx = ipif->ipif_ill->ill_phyint->phyint_ipsq->ipsq_xop; in ipsq_pending_mp_add() local
763 ASSERT(ipx->ipx_pending_mp == NULL); in ipsq_pending_mp_add()
770 ASSERT(ipx->ipx_current_ipif != NULL); in ipsq_pending_mp_add()
791 mutex_enter(&ipx->ipx_lock); in ipsq_pending_mp_add()
792 ipx->ipx_pending_ipif = ipif; in ipsq_pending_mp_add()
800 ipx->ipx_pending_mp = add_mp; in ipsq_pending_mp_add()
801 ipx->ipx_waitfor = waitfor; in ipsq_pending_mp_add()
802 mutex_exit(&ipx->ipx_lock); in ipsq_pending_mp_add()
818 ipxop_t *ipx = ipsq->ipsq_xop; in ipsq_pending_mp_get() local
821 mutex_enter(&ipx->ipx_lock); in ipsq_pending_mp_get()
822 if (ipx->ipx_pending_mp == NULL) { in ipsq_pending_mp_get()
823 mutex_exit(&ipx->ipx_lock); in ipsq_pending_mp_get()
828 curr = ipx->ipx_pending_mp; in ipsq_pending_mp_get()
830 ipx->ipx_pending_ipif = NULL; in ipsq_pending_mp_get()
831 ipx->ipx_pending_mp = NULL; in ipsq_pending_mp_get()
832 ipx->ipx_waitfor = 0; in ipsq_pending_mp_get()
833 mutex_exit(&ipx->ipx_lock); in ipsq_pending_mp_get()
862 ipxop_t *ipx; in ipsq_pending_mp_cleanup() local
868 ipx = ill->ill_phyint->phyint_ipsq->ipsq_xop; in ipsq_pending_mp_cleanup()
870 mutex_enter(&ipx->ipx_lock); in ipsq_pending_mp_cleanup()
871 mp = ipx->ipx_pending_mp; in ipsq_pending_mp_cleanup()
879 mutex_exit(&ipx->ipx_lock); in ipsq_pending_mp_cleanup()
891 mutex_exit(&ipx->ipx_lock); in ipsq_pending_mp_cleanup()
897 ipx->ipx_pending_mp = NULL; in ipsq_pending_mp_cleanup()
898 ipif = ipx->ipx_pending_ipif; in ipsq_pending_mp_cleanup()
899 ipx->ipx_pending_ipif = NULL; in ipsq_pending_mp_cleanup()
900 ipx->ipx_waitfor = 0; in ipsq_pending_mp_cleanup()
901 ipx->ipx_current_ipif = NULL; in ipsq_pending_mp_cleanup()
902 cmd = ipx->ipx_current_ioctl; in ipsq_pending_mp_cleanup()
903 ipx->ipx_current_ioctl = 0; in ipsq_pending_mp_cleanup()
904 ipx->ipx_current_done = B_TRUE; in ipsq_pending_mp_cleanup()
905 mutex_exit(&ipx->ipx_lock); in ipsq_pending_mp_cleanup()
3311 ipxop_t *ipx; in ipsq_init() local
3317 ipx = ipsq->ipsq_xop = &ipsq->ipsq_ownxop; in ipsq_init()
3318 ipx->ipx_ipsq = ipsq; in ipsq_init()
3322 mutex_init(&ipx->ipx_lock, NULL, MUTEX_DEFAULT, 0); in ipsq_init()
3325 ipx->ipx_writer = curthread; in ipsq_init()
3326 ipx->ipx_forced = B_FALSE; in ipsq_init()
3327 ipx->ipx_reentry_cnt = 1; in ipsq_init()
3329 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH); in ipsq_init()
4926 ipxop_t *ipx; in ipif_ill_refrele_tail() local
4939 ipx = ipsq->ipsq_xop; in ipif_ill_refrele_tail()
4940 mutex_enter(&ipx->ipx_lock); in ipif_ill_refrele_tail()
4941 if (ipx->ipx_waitfor == 0) /* no one's waiting; bail */ in ipif_ill_refrele_tail()
4944 ASSERT(ipx->ipx_pending_mp != NULL && ipx->ipx_pending_ipif != NULL); in ipif_ill_refrele_tail()
4946 ipif = ipx->ipx_pending_ipif; in ipif_ill_refrele_tail()
4950 switch (ipx->ipx_waitfor) { in ipif_ill_refrele_tail()
4974 (void *)ipsq, ipx->ipx_waitfor); in ipif_ill_refrele_tail()
4978 mutex_exit(&ipx->ipx_lock); in ipif_ill_refrele_tail()
5032 mutex_exit(&ipx->ipx_lock); in ipif_ill_refrele_tail()
6217 ipxop_t *ipx = ipsq->ipsq_xop; in ipsq_enq() local
6220 ASSERT(MUTEX_HELD(&ipx->ipx_lock)); in ipsq_enq()
6229 if (ipx->ipx_mptail != NULL) { in ipsq_enq()
6230 ASSERT(ipx->ipx_mphead != NULL); in ipsq_enq()
6231 ipx->ipx_mptail->b_next = mp; in ipsq_enq()
6233 ASSERT(ipx->ipx_mphead == NULL); in ipsq_enq()
6234 ipx->ipx_mphead = mp; in ipsq_enq()
6236 ipx->ipx_mptail = mp; in ipsq_enq()
6248 ipx->ipx_ipsq_queued = B_TRUE; in ipsq_enq()
6256 ipx->ipx_ipsq_queued = B_TRUE; in ipsq_enq()
6301 ipxop_t *ipx; in ipsq_dq() local
6313 ipx = ipsq->ipsq_xop; in ipsq_dq()
6314 mutex_enter(&ipx->ipx_lock); in ipsq_dq()
6320 if ((mp = ipx->ipx_mphead) != NULL) { in ipsq_dq()
6321 ipx->ipx_mphead = mp->b_next; in ipsq_dq()
6322 if (ipx->ipx_mphead == NULL) in ipsq_dq()
6323 ipx->ipx_mptail = NULL; in ipsq_dq()
6328 if (ipx->ipx_current_ipif != NULL) in ipsq_dq()
6358 xopipsq = ipx->ipx_ipsq; in ipsq_dq()
6375 mutex_exit(&ipx->ipx_lock); in ipsq_dq()
6381 ipx = ipsq->ipsq_xop; in ipsq_dq()
6382 mutex_enter(&ipx->ipx_lock); in ipsq_dq()
6383 ASSERT(ipx->ipx_writer == NULL); in ipsq_dq()
6384 ASSERT(ipx->ipx_current_ipif == NULL); in ipsq_dq()
6414 ASSERT(ipx->ipx_writer == curthread); in ipsq_dq()
6415 ipx->ipx_writer = NULL; in ipsq_dq()
6416 VERIFY(--ipx->ipx_reentry_cnt == 0); in ipsq_dq()
6417 ipx->ipx_ipsq_queued = B_FALSE; in ipsq_dq()
6418 mutex_exit(&ipx->ipx_lock); in ipsq_dq()
6427 ipx = ipsq->ipsq_xop; in ipsq_dq()
6428 mutex_enter(&ipx->ipx_lock); in ipsq_dq()
6429 if (ipx->ipx_writer != NULL || in ipsq_dq()
6430 ipx->ipx_current_ipif != NULL) { in ipsq_dq()
6442 ASSERT(ipx->ipx_current_ipif == NULL); in ipsq_dq()
6443 ASSERT(ipx->ipx_mphead == NULL && ipx->ipx_mptail == NULL); in ipsq_dq()
6444 VERIFY(ipx->ipx_reentry_cnt++ == 0); in ipsq_dq()
6445 ipx->ipx_writer = curthread; in ipsq_dq()
6446 ipx->ipx_forced = B_FALSE; in ipsq_dq()
6448 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH); in ipsq_dq()
6479 ipx->ipx_writer = NULL; in ipsq_dq()
6480 ipx->ipx_forced = B_FALSE; in ipsq_dq()
6481 VERIFY(--ipx->ipx_reentry_cnt == 0); in ipsq_dq()
6482 ipx->ipx_ipsq_queued = B_FALSE; in ipsq_dq()
6485 ipx->ipx_depth = 0; in ipsq_dq()
6488 mutex_exit(&ipx->ipx_lock); in ipsq_dq()
6585 ipxop_t *ipx; in ipsq_enter() local
6608 ipx = ipsq->ipsq_xop; in ipsq_enter()
6609 mutex_enter(&ipx->ipx_lock); in ipsq_enter()
6611 if (ipx->ipx_writer == NULL && (type == CUR_OP || in ipsq_enter()
6612 (ipx->ipx_current_ipif == NULL && ipsq_dlpi_done(ipsq)) || in ipsq_enter()
6618 if (!force || ipx->ipx_writer != NULL) { in ipsq_enter()
6619 mutex_exit(&ipx->ipx_lock); in ipsq_enter()
6623 mutex_exit(&ipx->ipx_lock); in ipsq_enter()
6632 ASSERT(ipx->ipx_mphead == NULL && ipx->ipx_mptail == NULL); in ipsq_enter()
6633 ASSERT(ipx->ipx_reentry_cnt == 0); in ipsq_enter()
6634 ipx->ipx_writer = curthread; in ipsq_enter()
6635 ipx->ipx_forced = (ipx->ipx_current_ipif != NULL); in ipsq_enter()
6636 ipx->ipx_reentry_cnt++; in ipsq_enter()
6638 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH); in ipsq_enter()
6640 mutex_exit(&ipx->ipx_lock); in ipsq_enter()
6660 ipxop_t *ipx; in ipsq_try_enter_internal() local
6674 ipx = ipsq->ipsq_xop; in ipsq_try_enter_internal()
6675 mutex_enter(&ipx->ipx_lock); in ipsq_try_enter_internal()
6689 if ((ipx->ipx_writer == curthread && reentry_ok) || in ipsq_try_enter_internal()
6690 (ipx->ipx_writer == NULL && (type == CUR_OP || (type == NEW_OP && in ipsq_try_enter_internal()
6691 !ipx->ipx_ipsq_queued && ipx->ipx_current_ipif == NULL && in ipsq_try_enter_internal()
6694 ipx->ipx_reentry_cnt++; in ipsq_try_enter_internal()
6695 ipx->ipx_writer = curthread; in ipsq_try_enter_internal()
6696 ipx->ipx_forced = B_FALSE; in ipsq_try_enter_internal()
6697 mutex_exit(&ipx->ipx_lock); in ipsq_try_enter_internal()
6702 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH); in ipsq_try_enter_internal()
6710 mutex_exit(&ipx->ipx_lock); in ipsq_try_enter_internal()
6898 ipxop_t *ipx = ipsq->ipsq_xop; in ipsq_current_start() local
6901 ASSERT(ipx->ipx_current_ipif == NULL); in ipsq_current_start()
6902 ASSERT(ipx->ipx_current_ioctl == 0); in ipsq_current_start()
6904 ipx->ipx_current_done = B_FALSE; in ipsq_current_start()
6905 ipx->ipx_current_ioctl = ioccmd; in ipsq_current_start()
6906 mutex_enter(&ipx->ipx_lock); in ipsq_current_start()
6907 ipx->ipx_current_ipif = ipif; in ipsq_current_start()
6908 mutex_exit(&ipx->ipx_lock); in ipsq_current_start()
6955 ipxop_t *ipx = ipsq->ipsq_xop; in ipsq_current_finish() local
6957 ipif_t *ipif = ipx->ipx_current_ipif; in ipsq_current_finish()
6966 if (ipx->ipx_current_ioctl != SIOCLIFREMOVEIF) { in ipsq_current_finish()
6971 if (ipx->ipx_current_ioctl == 0) { in ipsq_current_finish()
6981 ASSERT(!ipx->ipx_current_done); in ipsq_current_finish()
6982 ipx->ipx_current_done = B_TRUE; in ipsq_current_finish()
6983 ipx->ipx_current_ioctl = 0; in ipsq_current_finish()
6985 mutex_enter(&ipx->ipx_lock); in ipsq_current_finish()
6986 ipx->ipx_current_ipif = NULL; in ipsq_current_finish()
6987 mutex_exit(&ipx->ipx_lock); in ipsq_current_finish()
7004 ipxop_t *ipx = ill->ill_phyint->phyint_ipsq->ipsq_xop; in ipsq_flush() local
7011 mutex_enter(&ipx->ipx_lock); in ipsq_flush()
7012 for (prev = NULL, mp = ipx->ipx_mphead; mp != NULL; mp = mp_next) { in ipsq_flush()
7018 ipx->ipx_mphead = mp->b_next; in ipsq_flush()
7021 if (ipx->ipx_mptail == mp) { in ipsq_flush()
7023 ipx->ipx_mptail = prev; in ipsq_flush()
7030 mutex_exit(&ipx->ipx_lock); in ipsq_flush()
11831 ipxop_t *ipx = ipsq->ipsq_xop; in ipif_transfer() local
11852 if (ipx->ipx_current_ipif == sipif) { in ipif_transfer()
11853 ASSERT(ipx->ipx_pending_ipif == NULL); in ipif_transfer()
11854 mutex_enter(&ipx->ipx_lock); in ipif_transfer()
11855 ipx->ipx_current_ipif = dipif; in ipif_transfer()
11856 mutex_exit(&ipx->ipx_lock); in ipif_transfer()
12355 ipxop_t *ipx = ipsq->ipsq_xop; in ipsq_delete() local
12360 ASSERT(ipsq->ipsq_xopq_mphead == NULL && ipx->ipx_mphead == NULL); in ipsq_delete()
12361 ASSERT(ipx->ipx_pending_mp == NULL); in ipsq_delete()
12965 ipxop_t *ipx = ipsq->ipsq_xop; in ill_dlpi_done() local
12978 if (ipx->ipx_current_done) { in ill_dlpi_done()
12979 mutex_enter(&ipx->ipx_lock); in ill_dlpi_done()
12980 ipx->ipx_current_ipif = NULL; in ill_dlpi_done()
12981 mutex_exit(&ipx->ipx_lock); in ill_dlpi_done()