Lines Matching refs:sap
453 static inline bool llc_estab_match(const struct llc_sap *sap,
467 * __llc_lookup_established - Finds connection for the remote/local sap/mac
468 * @sap: SAP
473 * mac, remote sap, local mac, and local sap. Returns pointer for
477 static struct sock *__llc_lookup_established(struct llc_sap *sap,
483 int slot = llc_sk_laddr_hashfn(sap, laddr);
484 struct hlist_nulls_head *laddr_hb = &sap->sk_laddr_hash[slot];
489 if (llc_estab_match(sap, daddr, laddr, rc)) {
493 if (unlikely(llc_sk(rc)->sap != sap ||
494 !llc_estab_match(sap, daddr, laddr, rc))) {
514 struct sock *llc_lookup_established(struct llc_sap *sap,
521 sk = __llc_lookup_established(sap, daddr, laddr);
526 static inline bool llc_listener_match(const struct llc_sap *sap,
537 static struct sock *__llc_lookup_listener(struct llc_sap *sap,
542 int slot = llc_sk_laddr_hashfn(sap, laddr);
543 struct hlist_nulls_head *laddr_hb = &sap->sk_laddr_hash[slot];
548 if (llc_listener_match(sap, laddr, rc)) {
552 if (unlikely(llc_sk(rc)->sap != sap ||
553 !llc_listener_match(sap, laddr, rc))) {
575 * @sap: SAP
579 * local mac, and local sap. Returns pointer for parent socket found,
583 static struct sock *llc_lookup_listener(struct llc_sap *sap,
587 struct sock *rc = __llc_lookup_listener(sap, laddr);
590 rc = __llc_lookup_listener(sap, &null_addr);
595 static struct sock *__llc_lookup(struct llc_sap *sap,
599 struct sock *sk = __llc_lookup_established(sap, daddr, laddr);
601 return sk ? : llc_lookup_listener(sap, laddr);
689 * @sap: SAP
694 void llc_sap_add_socket(struct llc_sap *sap, struct sock *sk)
697 struct hlist_head *dev_hb = llc_sk_dev_hash(sap, llc->dev->ifindex);
698 struct hlist_nulls_head *laddr_hb = llc_sk_laddr_hash(sap, &llc->laddr);
700 llc_sap_hold(sap);
701 llc_sk(sk)->sap = sap;
703 spin_lock_bh(&sap->sk_lock);
705 sap->sk_count++;
708 spin_unlock_bh(&sap->sk_lock);
713 * @sap: SAP
719 void llc_sap_remove_socket(struct llc_sap *sap, struct sock *sk)
723 spin_lock_bh(&sap->sk_lock);
726 sap->sk_count--;
727 spin_unlock_bh(&sap->sk_lock);
728 llc_sap_put(sap);
763 llc_sap_add_socket(llc->sap, newsk);
764 llc_sap_hold(llc->sap);
769 void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb)
779 sk = __llc_lookup(sap, &saddr, &daddr);