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