• Home
  • Raw
  • Download

Lines Matching refs:iucv

153 	struct iucv_sock *iucv;  in afiucv_pm_freeze()  local
161 iucv = iucv_sk(sk); in afiucv_pm_freeze()
175 skb_queue_purge(&iucv->send_skb_q); in afiucv_pm_freeze()
176 skb_queue_purge(&iucv->backlog_skb_q); in afiucv_pm_freeze()
288 struct iucv_sock *iucv = iucv_sk(sk); in iucv_below_msglim() local
292 if (iucv->transport == AF_IUCV_TRANS_IUCV) in iucv_below_msglim()
293 return (skb_queue_len(&iucv->send_skb_q) < iucv->path->msglim); in iucv_below_msglim()
295 return ((atomic_read(&iucv->msg_sent) < iucv->msglimit_peer) && in iucv_below_msglim()
296 (atomic_read(&iucv->pendings) <= 0)); in iucv_below_msglim()
320 struct iucv_sock *iucv = iucv_sk(sock); in afiucv_hs_send() local
333 phs_hdr->window = iucv->msglimit; in afiucv_hs_send()
335 confirm_recv = atomic_read(&iucv->msg_recv); in afiucv_hs_send()
340 memcpy(phs_hdr->destUserID, iucv->dst_user_id, 8); in afiucv_hs_send()
341 memcpy(phs_hdr->destAppName, iucv->dst_name, 8); in afiucv_hs_send()
342 memcpy(phs_hdr->srcUserID, iucv->src_user_id, 8); in afiucv_hs_send()
343 memcpy(phs_hdr->srcAppName, iucv->src_name, 8); in afiucv_hs_send()
351 skb->dev = iucv->hs_dev; in afiucv_hs_send()
379 skb_queue_tail(&iucv->send_skb_q, nskb); in afiucv_hs_send()
382 skb_unlink(nskb, &iucv->send_skb_q); in afiucv_hs_send()
385 atomic_sub(confirm_recv, &iucv->msg_recv); in afiucv_hs_send()
386 WARN_ON(atomic_read(&iucv->msg_recv) < 0); in afiucv_hs_send()
453 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sever_path() local
454 struct iucv_path *path = iucv->path; in iucv_sever_path()
456 if (iucv->path) { in iucv_sever_path()
457 iucv->path = NULL; in iucv_sever_path()
459 low_nmcpy(user_data, iucv->src_name); in iucv_sever_path()
460 high_nmcpy(user_data, iucv->dst_name); in iucv_sever_path()
472 struct iucv_sock *iucv = iucv_sk(sk); in iucv_send_ctrl() local
479 LL_RESERVED_SPACE(iucv->hs_dev); in iucv_send_ctrl()
498 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_close() local
510 if (iucv->transport == AF_IUCV_TRANS_HIPER) { in iucv_sock_close()
521 if (!err && !skb_queue_empty(&iucv->send_skb_q)) { in iucv_sock_close()
539 skb_queue_purge(&iucv->send_skb_q); in iucv_sock_close()
540 skb_queue_purge(&iucv->backlog_skb_q); in iucv_sock_close()
547 if (iucv->hs_dev) { in iucv_sock_close()
548 dev_put(iucv->hs_dev); in iucv_sock_close()
549 iucv->hs_dev = NULL; in iucv_sock_close()
570 struct iucv_sock *iucv; in iucv_sock_alloc() local
575 iucv = iucv_sk(sk); in iucv_sock_alloc()
578 INIT_LIST_HEAD(&iucv->accept_q); in iucv_sock_alloc()
579 spin_lock_init(&iucv->accept_q_lock); in iucv_sock_alloc()
580 skb_queue_head_init(&iucv->send_skb_q); in iucv_sock_alloc()
581 INIT_LIST_HEAD(&iucv->message_q.list); in iucv_sock_alloc()
582 spin_lock_init(&iucv->message_q.lock); in iucv_sock_alloc()
583 skb_queue_head_init(&iucv->backlog_skb_q); in iucv_sock_alloc()
584 iucv->send_tag = 0; in iucv_sock_alloc()
585 atomic_set(&iucv->pendings, 0); in iucv_sock_alloc()
586 iucv->flags = 0; in iucv_sock_alloc()
587 iucv->msglimit = 0; in iucv_sock_alloc()
588 atomic_set(&iucv->msg_sent, 0); in iucv_sock_alloc()
589 atomic_set(&iucv->msg_recv, 0); in iucv_sock_alloc()
590 iucv->path = NULL; in iucv_sock_alloc()
591 iucv->sk_txnotify = afiucv_hs_callback_txnotify; in iucv_sock_alloc()
592 memset(&iucv->src_user_id , 0, 32); in iucv_sock_alloc()
594 iucv->transport = AF_IUCV_TRANS_IUCV; in iucv_sock_alloc()
596 iucv->transport = AF_IUCV_TRANS_HIPER; in iucv_sock_alloc()
713 static void __iucv_auto_name(struct iucv_sock *iucv) in __iucv_auto_name() argument
722 memcpy(iucv->src_name, name, 8); in __iucv_auto_name()
731 struct iucv_sock *iucv; in iucv_sock_bind() local
749 iucv = iucv_sk(sk); in iucv_sock_bind()
754 if (iucv->path) in iucv_sock_bind()
768 memcpy(iucv->src_user_id, sa->siucv_user_id, 8); in iucv_sock_bind()
771 __iucv_auto_name(iucv); in iucv_sock_bind()
773 memcpy(iucv->src_name, sa->siucv_name, 8); in iucv_sock_bind()
775 iucv->hs_dev = dev; in iucv_sock_bind()
778 iucv->transport = AF_IUCV_TRANS_HIPER; in iucv_sock_bind()
779 if (!iucv->msglimit) in iucv_sock_bind()
780 iucv->msglimit = IUCV_HIPER_MSGLIM_DEFAULT; in iucv_sock_bind()
789 memcpy(iucv->src_name, sa->siucv_name, 8); in iucv_sock_bind()
790 memcpy(iucv->src_user_id, iucv_userid, 8); in iucv_sock_bind()
792 iucv->transport = AF_IUCV_TRANS_IUCV; in iucv_sock_bind()
794 if (!iucv->msglimit) in iucv_sock_bind()
795 iucv->msglimit = IUCV_QUEUELEN_DEFAULT; in iucv_sock_bind()
811 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_autobind() local
817 memcpy(iucv->src_user_id, iucv_userid, 8); in iucv_sock_autobind()
818 iucv->transport = AF_IUCV_TRANS_IUCV; in iucv_sock_autobind()
822 __iucv_auto_name(iucv); in iucv_sock_autobind()
825 if (!iucv->msglimit) in iucv_sock_autobind()
826 iucv->msglimit = IUCV_QUEUELEN_DEFAULT; in iucv_sock_autobind()
835 struct iucv_sock *iucv = iucv_sk(sk); in afiucv_path_connect() local
840 low_nmcpy(user_data, iucv->src_name); in afiucv_path_connect()
844 iucv->path = iucv_path_alloc(iucv->msglimit, in afiucv_path_connect()
846 if (!iucv->path) { in afiucv_path_connect()
850 err = pr_iucv->path_connect(iucv->path, &af_iucv_handler, in afiucv_path_connect()
854 iucv_path_free(iucv->path); in afiucv_path_connect()
855 iucv->path = NULL; in afiucv_path_connect()
882 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_connect() local
892 iucv->transport == AF_IUCV_TRANS_HIPER) in iucv_sock_connect()
907 memcpy(iucv->dst_user_id, sa->siucv_user_id, 8); in iucv_sock_connect()
908 memcpy(iucv->dst_name, sa->siucv_name, 8); in iucv_sock_connect()
910 if (iucv->transport == AF_IUCV_TRANS_HIPER) in iucv_sock_connect()
925 if (err && iucv->transport == AF_IUCV_TRANS_IUCV) in iucv_sock_connect()
1018 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_getname() local
1023 memcpy(siucv->siucv_user_id, iucv->dst_user_id, 8); in iucv_sock_getname()
1024 memcpy(siucv->siucv_name, iucv->dst_name, 8); in iucv_sock_getname()
1026 memcpy(siucv->siucv_user_id, iucv->src_user_id, 8); in iucv_sock_getname()
1027 memcpy(siucv->siucv_name, iucv->src_name, 8); in iucv_sock_getname()
1064 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_sendmsg() local
1144 if (iucv->transport == AF_IUCV_TRANS_HIPER) { in iucv_sock_sendmsg()
1146 LL_RESERVED_SPACE(iucv->hs_dev); in iucv_sock_sendmsg()
1186 txmsg.tag = iucv->send_tag++; in iucv_sock_sendmsg()
1189 if (iucv->transport == AF_IUCV_TRANS_HIPER) { in iucv_sock_sendmsg()
1190 atomic_inc(&iucv->msg_sent); in iucv_sock_sendmsg()
1193 atomic_dec(&iucv->msg_sent); in iucv_sock_sendmsg()
1197 skb_queue_tail(&iucv->send_skb_q, skb); in iucv_sock_sendmsg()
1199 if (((iucv->path->flags & IUCV_IPRMDATA) & iucv->flags) && in iucv_sock_sendmsg()
1201 err = iucv_send_iprm(iucv->path, &txmsg, skb); in iucv_sock_sendmsg()
1206 skb_unlink(skb, &iucv->send_skb_q); in iucv_sock_sendmsg()
1213 pr_iucv->path_sever(iucv->path, NULL); in iucv_sock_sendmsg()
1214 skb_unlink(skb, &iucv->send_skb_q); in iucv_sock_sendmsg()
1232 err = pr_iucv->message_send(iucv->path, &txmsg, in iucv_sock_sendmsg()
1236 err = pr_iucv->message_send(iucv->path, &txmsg, in iucv_sock_sendmsg()
1242 memcpy(user_id, iucv->dst_user_id, 8); in iucv_sock_sendmsg()
1244 memcpy(appl_id, iucv->dst_name, 8); in iucv_sock_sendmsg()
1252 skb_unlink(skb, &iucv->send_skb_q); in iucv_sock_sendmsg()
1363 struct iucv_sock *iucv = iucv_sk(sk); in iucv_process_message_q() local
1367 list_for_each_entry_safe(p, n, &iucv->message_q.list, list) { in iucv_process_message_q()
1374 if (!skb_queue_empty(&iucv->backlog_skb_q)) in iucv_process_message_q()
1384 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_recvmsg() local
1391 skb_queue_empty(&iucv->backlog_skb_q) && in iucv_sock_recvmsg()
1393 list_empty(&iucv->message_q.list)) in iucv_sock_recvmsg()
1454 if (iucv->transport == AF_IUCV_TRANS_HIPER) { in iucv_sock_recvmsg()
1455 atomic_inc(&iucv->msg_recv); in iucv_sock_recvmsg()
1456 if (atomic_read(&iucv->msg_recv) > iucv->msglimit) { in iucv_sock_recvmsg()
1464 spin_lock_bh(&iucv->message_q.lock); in iucv_sock_recvmsg()
1465 rskb = skb_dequeue(&iucv->backlog_skb_q); in iucv_sock_recvmsg()
1470 skb_queue_head(&iucv->backlog_skb_q, in iucv_sock_recvmsg()
1474 rskb = skb_dequeue(&iucv->backlog_skb_q); in iucv_sock_recvmsg()
1476 if (skb_queue_empty(&iucv->backlog_skb_q)) { in iucv_sock_recvmsg()
1477 if (!list_empty(&iucv->message_q.list)) in iucv_sock_recvmsg()
1479 if (atomic_read(&iucv->msg_recv) >= in iucv_sock_recvmsg()
1480 iucv->msglimit / 2) { in iucv_sock_recvmsg()
1488 spin_unlock_bh(&iucv->message_q.lock); in iucv_sock_recvmsg()
1556 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_shutdown() local
1578 if (iucv->transport == AF_IUCV_TRANS_IUCV) { in iucv_sock_shutdown()
1581 err = pr_iucv->message_send(iucv->path, &txmsg, in iucv_sock_shutdown()
1602 if ((iucv->transport == AF_IUCV_TRANS_IUCV) && in iucv_sock_shutdown()
1603 iucv->path) { in iucv_sock_shutdown()
1604 err = pr_iucv->path_quiesce(iucv->path, NULL); in iucv_sock_shutdown()
1640 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_setsockopt() local
1659 iucv->flags |= IUCV_IPRMDATA; in iucv_sock_setsockopt()
1661 iucv->flags &= ~IUCV_IPRMDATA; in iucv_sock_setsockopt()
1670 iucv->msglimit = val; in iucv_sock_setsockopt()
1690 struct iucv_sock *iucv = iucv_sk(sk); in iucv_sock_getsockopt() local
1707 val = (iucv->flags & IUCV_IPRMDATA) ? 1 : 0; in iucv_sock_getsockopt()
1711 val = (iucv->path != NULL) ? iucv->path->msglim /* connected */ in iucv_sock_getsockopt()
1712 : iucv->msglimit; /* default */ in iucv_sock_getsockopt()
1718 val = (iucv->hs_dev) ? iucv->hs_dev->mtu - in iucv_sock_getsockopt()
1743 struct iucv_sock *iucv, *niucv; in iucv_callback_connreq() local
1750 iucv = NULL; in iucv_callback_connreq()
1759 iucv = iucv_sk(sk); in iucv_callback_connreq()
1763 if (!iucv) in iucv_callback_connreq()
1770 low_nmcpy(user_data, iucv->src_name); in iucv_callback_connreq()
1771 high_nmcpy(user_data, iucv->dst_name); in iucv_callback_connreq()
1803 memcpy(niucv->src_name, iucv->src_name, 8); in iucv_callback_connreq()
1804 memcpy(niucv->src_user_id, iucv->src_user_id, 8); in iucv_callback_connreq()
1813 niucv->msglimit = iucv->msglimit; in iucv_callback_connreq()
1814 path->msglim = iucv->msglimit; in iucv_callback_connreq()
1844 struct iucv_sock *iucv = iucv_sk(sk); in iucv_callback_rx() local
1854 spin_lock(&iucv->message_q.lock); in iucv_callback_rx()
1856 if (!list_empty(&iucv->message_q.list) || in iucv_callback_rx()
1857 !skb_queue_empty(&iucv->backlog_skb_q)) in iucv_callback_rx()
1879 list_add_tail(&save_msg->list, &iucv->message_q.list); in iucv_callback_rx()
1882 spin_unlock(&iucv->message_q.lock); in iucv_callback_rx()
1981 struct iucv_sock *iucv, *niucv; in afiucv_hs_callback_syn() local
1984 iucv = iucv_sk(sk); in afiucv_hs_callback_syn()
1985 if (!iucv) { in afiucv_hs_callback_syn()
2010 niucv->msglimit = iucv->msglimit; in afiucv_hs_callback_syn()
2017 memcpy(niucv->src_name, iucv->src_name, 8); in afiucv_hs_callback_syn()
2018 memcpy(niucv->src_user_id, iucv->src_user_id, 8); in afiucv_hs_callback_syn()
2020 niucv->hs_dev = iucv->hs_dev; in afiucv_hs_callback_syn()
2044 struct iucv_sock *iucv = iucv_sk(sk); in afiucv_hs_callback_synack() local
2046 if (!iucv) in afiucv_hs_callback_synack()
2051 iucv->msglimit_peer = iucv_trans_hdr(skb)->window; in afiucv_hs_callback_synack()
2065 struct iucv_sock *iucv = iucv_sk(sk); in afiucv_hs_callback_synfin() local
2067 if (!iucv) in afiucv_hs_callback_synfin()
2085 struct iucv_sock *iucv = iucv_sk(sk); in afiucv_hs_callback_fin() local
2088 if (!iucv) in afiucv_hs_callback_fin()
2106 struct iucv_sock *iucv = iucv_sk(sk); in afiucv_hs_callback_win() local
2108 if (!iucv) in afiucv_hs_callback_win()
2114 atomic_sub(iucv_trans_hdr(skb)->window, &iucv->msg_sent); in afiucv_hs_callback_win()
2124 struct iucv_sock *iucv = iucv_sk(sk); in afiucv_hs_callback_rx() local
2126 if (!iucv) { in afiucv_hs_callback_rx()
2152 spin_lock(&iucv->message_q.lock); in afiucv_hs_callback_rx()
2153 if (skb_queue_empty(&iucv->backlog_skb_q)) { in afiucv_hs_callback_rx()
2156 skb_queue_tail(&iucv->backlog_skb_q, skb); in afiucv_hs_callback_rx()
2159 spin_unlock(&iucv->message_q.lock); in afiucv_hs_callback_rx()
2172 struct iucv_sock *iucv; in afiucv_hs_rcv() local
2189 iucv = NULL; in afiucv_hs_rcv()
2201 iucv = iucv_sk(sk); in afiucv_hs_rcv()
2213 iucv = iucv_sk(sk); in afiucv_hs_rcv()
2219 if (!iucv) in afiucv_hs_rcv()
2279 struct iucv_sock *iucv = NULL; in afiucv_hs_callback_txnotify() local
2288 iucv = iucv_sk(sk); in afiucv_hs_callback_txnotify()
2293 if (!iucv || sock_flag(sk, SOCK_ZAPPED)) in afiucv_hs_callback_txnotify()
2296 list = &iucv->send_skb_q; in afiucv_hs_callback_txnotify()
2307 atomic_inc(&iucv->pendings); in afiucv_hs_callback_txnotify()
2311 atomic_dec(&iucv->pendings); in afiucv_hs_callback_txnotify()
2312 if (atomic_read(&iucv->pendings) <= 0) in afiucv_hs_callback_txnotify()
2351 struct iucv_sock *iucv; in afiucv_netdev_event() local
2357 iucv = iucv_sk(sk); in afiucv_netdev_event()
2358 if ((iucv->hs_dev == event_dev) && in afiucv_netdev_event()