jsk                56 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk                58 net/can/j1939/socket.c 	atomic_inc(&jsk->skb_pending);
jsk                63 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk                65 net/can/j1939/socket.c 	return atomic_read(&jsk->skb_pending);
jsk                70 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk                73 net/can/j1939/socket.c 	if (!atomic_dec_return(&jsk->skb_pending))
jsk                74 net/can/j1939/socket.c 		wake_up(&jsk->waitq);	/* no pending SKB's */
jsk                77 net/can/j1939/socket.c static void j1939_jsk_add(struct j1939_priv *priv, struct j1939_sock *jsk)
jsk                79 net/can/j1939/socket.c 	jsk->state |= J1939_SOCK_BOUND;
jsk                83 net/can/j1939/socket.c 	list_add_tail(&jsk->list, &priv->j1939_socks);
jsk                87 net/can/j1939/socket.c static void j1939_jsk_del(struct j1939_priv *priv, struct j1939_sock *jsk)
jsk                90 net/can/j1939/socket.c 	list_del_init(&jsk->list);
jsk                94 net/can/j1939/socket.c 	jsk->state &= ~J1939_SOCK_BOUND;
jsk                99 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(session->sk);
jsk               102 net/can/j1939/socket.c 	spin_lock_bh(&jsk->sk_session_queue_lock);
jsk               103 net/can/j1939/socket.c 	empty = list_empty(&jsk->sk_session_queue);
jsk               105 net/can/j1939/socket.c 	list_add_tail(&session->sk_session_queue_entry, &jsk->sk_session_queue);
jsk               106 net/can/j1939/socket.c 	spin_unlock_bh(&jsk->sk_session_queue_lock);
jsk               107 net/can/j1939/socket.c 	j1939_sock_pending_add(&jsk->sk);
jsk               113 net/can/j1939/socket.c j1939_session *j1939_sk_get_incomplete_session(struct j1939_sock *jsk)
jsk               117 net/can/j1939/socket.c 	spin_lock_bh(&jsk->sk_session_queue_lock);
jsk               118 net/can/j1939/socket.c 	if (!list_empty(&jsk->sk_session_queue)) {
jsk               119 net/can/j1939/socket.c 		session = list_last_entry(&jsk->sk_session_queue,
jsk               127 net/can/j1939/socket.c 	spin_unlock_bh(&jsk->sk_session_queue_lock);
jsk               133 net/can/j1939/socket.c 				    struct j1939_sock *jsk, int err)
jsk               138 net/can/j1939/socket.c 	spin_lock_bh(&jsk->sk_session_queue_lock);
jsk               139 net/can/j1939/socket.c 	list_for_each_entry_safe(session, tmp, &jsk->sk_session_queue,
jsk               145 net/can/j1939/socket.c 	spin_unlock_bh(&jsk->sk_session_queue_lock);
jsk               150 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk               158 net/can/j1939/socket.c 	jsk = j1939_sk(session->sk);
jsk               159 net/can/j1939/socket.c 	lockdep_assert_held(&jsk->sk_session_queue_lock);
jsk               163 net/can/j1939/socket.c 	first = list_first_entry_or_null(&jsk->sk_session_queue,
jsk               174 net/can/j1939/socket.c 	first = list_first_entry_or_null(&jsk->sk_session_queue,
jsk               196 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk               201 net/can/j1939/socket.c 	jsk = j1939_sk(session->sk);
jsk               203 net/can/j1939/socket.c 	spin_lock_bh(&jsk->sk_session_queue_lock);
jsk               205 net/can/j1939/socket.c 	spin_unlock_bh(&jsk->sk_session_queue_lock);
jsk               208 net/can/j1939/socket.c static bool j1939_sk_match_dst(struct j1939_sock *jsk,
jsk               211 net/can/j1939/socket.c 	if ((jsk->state & J1939_SOCK_PROMISC))
jsk               215 net/can/j1939/socket.c 	if (jsk->addr.src_name && skcb->addr.dst_name) {
jsk               216 net/can/j1939/socket.c 		if (jsk->addr.src_name != skcb->addr.dst_name)
jsk               225 net/can/j1939/socket.c 			if (jsk->addr.sa != skcb->addr.da)
jsk               227 net/can/j1939/socket.c 		} else if (!sock_flag(&jsk->sk, SOCK_BROADCAST)) {
jsk               236 net/can/j1939/socket.c 	if (jsk->state & J1939_SOCK_CONNECTED) {
jsk               240 net/can/j1939/socket.c 		if (jsk->addr.dst_name && skcb->addr.src_name) {
jsk               241 net/can/j1939/socket.c 			if (jsk->addr.dst_name != skcb->addr.src_name)
jsk               244 net/can/j1939/socket.c 			if (jsk->addr.da != skcb->addr.sa)
jsk               250 net/can/j1939/socket.c 	if (j1939_pgn_is_valid(jsk->pgn_rx_filter) &&
jsk               251 net/can/j1939/socket.c 	    jsk->pgn_rx_filter != skcb->addr.pgn)
jsk               258 net/can/j1939/socket.c static bool j1939_sk_match_filter(struct j1939_sock *jsk,
jsk               261 net/can/j1939/socket.c 	const struct j1939_filter *f = jsk->filters;
jsk               262 net/can/j1939/socket.c 	int nfilter = jsk->nfilters;
jsk               280 net/can/j1939/socket.c static bool j1939_sk_recv_match_one(struct j1939_sock *jsk,
jsk               283 net/can/j1939/socket.c 	if (!(jsk->state & J1939_SOCK_BOUND))
jsk               286 net/can/j1939/socket.c 	if (!j1939_sk_match_dst(jsk, skcb))
jsk               289 net/can/j1939/socket.c 	if (!j1939_sk_match_filter(jsk, skcb))
jsk               295 net/can/j1939/socket.c static void j1939_sk_recv_one(struct j1939_sock *jsk, struct sk_buff *oskb)
jsk               301 net/can/j1939/socket.c 	if (oskb->sk == &jsk->sk)
jsk               304 net/can/j1939/socket.c 	if (!j1939_sk_recv_match_one(jsk, oskcb))
jsk               319 net/can/j1939/socket.c 	if (sock_queue_rcv_skb(&jsk->sk, skb) < 0)
jsk               325 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk               329 net/can/j1939/socket.c 	list_for_each_entry(jsk, &priv->j1939_socks, list) {
jsk               330 net/can/j1939/socket.c 		match = j1939_sk_recv_match_one(jsk, skcb);
jsk               341 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk               344 net/can/j1939/socket.c 	list_for_each_entry(jsk, &priv->j1939_socks, list) {
jsk               345 net/can/j1939/socket.c 		j1939_sk_recv_one(jsk, skb);
jsk               352 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk               369 net/can/j1939/socket.c 	if (jsk->priv) {
jsk               370 net/can/j1939/socket.c 		j1939_priv_put(jsk->priv);
jsk               371 net/can/j1939/socket.c 		jsk->priv = NULL;
jsk               380 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk               386 net/can/j1939/socket.c 	memset((void *)jsk + sizeof(jsk->sk), 0x0,
jsk               387 net/can/j1939/socket.c 	       sizeof(*jsk) - sizeof(jsk->sk));
jsk               389 net/can/j1939/socket.c 	INIT_LIST_HEAD(&jsk->list);
jsk               390 net/can/j1939/socket.c 	init_waitqueue_head(&jsk->waitq);
jsk               391 net/can/j1939/socket.c 	jsk->sk.sk_priority = j1939_to_sk_priority(6);
jsk               392 net/can/j1939/socket.c 	jsk->sk.sk_reuse = 1; /* per default */
jsk               393 net/can/j1939/socket.c 	jsk->addr.sa = J1939_NO_ADDR;
jsk               394 net/can/j1939/socket.c 	jsk->addr.da = J1939_NO_ADDR;
jsk               395 net/can/j1939/socket.c 	jsk->addr.pgn = J1939_NO_PGN;
jsk               396 net/can/j1939/socket.c 	jsk->pgn_rx_filter = J1939_NO_PGN;
jsk               397 net/can/j1939/socket.c 	atomic_set(&jsk->skb_pending, 0);
jsk               398 net/can/j1939/socket.c 	spin_lock_init(&jsk->sk_session_queue_lock);
jsk               399 net/can/j1939/socket.c 	INIT_LIST_HEAD(&jsk->sk_session_queue);
jsk               425 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sock->sk);
jsk               437 net/can/j1939/socket.c 	priv = jsk->priv;
jsk               442 net/can/j1939/socket.c 	if (jsk->state & J1939_SOCK_BOUND) {
jsk               446 net/can/j1939/socket.c 		if (jsk->ifindex != addr->can_ifindex) {
jsk               452 net/can/j1939/socket.c 		j1939_jsk_del(priv, jsk);
jsk               453 net/can/j1939/socket.c 		j1939_local_ecu_put(priv, jsk->addr.src_name, jsk->addr.sa);
jsk               476 net/can/j1939/socket.c 		jsk->ifindex = addr->can_ifindex;
jsk               482 net/can/j1939/socket.c 		jsk->priv = priv;
jsk               487 net/can/j1939/socket.c 		jsk->pgn_rx_filter = addr->can_addr.j1939.pgn;
jsk               488 net/can/j1939/socket.c 	jsk->addr.src_name = addr->can_addr.j1939.name;
jsk               489 net/can/j1939/socket.c 	jsk->addr.sa = addr->can_addr.j1939.addr;
jsk               492 net/can/j1939/socket.c 	ret = j1939_local_ecu_get(priv, jsk->addr.src_name, jsk->addr.sa);
jsk               498 net/can/j1939/socket.c 	j1939_jsk_add(priv, jsk);
jsk               510 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sock->sk);
jsk               520 net/can/j1939/socket.c 	if (!(jsk->state & J1939_SOCK_BOUND)) {
jsk               526 net/can/j1939/socket.c 	if (jsk->ifindex != addr->can_ifindex) {
jsk               533 net/can/j1939/socket.c 	    !sock_flag(&jsk->sk, SOCK_BROADCAST)) {
jsk               539 net/can/j1939/socket.c 	jsk->addr.dst_name = addr->can_addr.j1939.name;
jsk               540 net/can/j1939/socket.c 	jsk->addr.da = addr->can_addr.j1939.addr;
jsk               543 net/can/j1939/socket.c 		jsk->addr.pgn = addr->can_addr.j1939.pgn;
jsk               545 net/can/j1939/socket.c 	jsk->state |= J1939_SOCK_CONNECTED;
jsk               554 net/can/j1939/socket.c 				       const struct j1939_sock *jsk, int peer)
jsk               557 net/can/j1939/socket.c 	addr->can_ifindex = jsk->ifindex;
jsk               558 net/can/j1939/socket.c 	addr->can_addr.j1939.pgn = jsk->addr.pgn;
jsk               560 net/can/j1939/socket.c 		addr->can_addr.j1939.name = jsk->addr.dst_name;
jsk               561 net/can/j1939/socket.c 		addr->can_addr.j1939.addr = jsk->addr.da;
jsk               563 net/can/j1939/socket.c 		addr->can_addr.j1939.name = jsk->addr.src_name;
jsk               564 net/can/j1939/socket.c 		addr->can_addr.j1939.addr = jsk->addr.sa;
jsk               573 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk               578 net/can/j1939/socket.c 	if (peer && !(jsk->state & J1939_SOCK_CONNECTED)) {
jsk               583 net/can/j1939/socket.c 	j1939_sk_sock2sockaddr_can(addr, jsk, peer);
jsk               595 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk               601 net/can/j1939/socket.c 	jsk = j1939_sk(sk);
jsk               603 net/can/j1939/socket.c 	if (jsk->state & J1939_SOCK_BOUND) {
jsk               604 net/can/j1939/socket.c 		struct j1939_priv *priv = jsk->priv;
jsk               606 net/can/j1939/socket.c 		if (wait_event_interruptible(jsk->waitq,
jsk               607 net/can/j1939/socket.c 					     !j1939_sock_pending_get(&jsk->sk))) {
jsk               609 net/can/j1939/socket.c 			j1939_sk_queue_drop_all(priv, jsk, ESHUTDOWN);
jsk               612 net/can/j1939/socket.c 		j1939_jsk_del(priv, jsk);
jsk               614 net/can/j1939/socket.c 		j1939_local_ecu_put(priv, jsk->addr.src_name,
jsk               615 net/can/j1939/socket.c 				    jsk->addr.sa);
jsk               620 net/can/j1939/socket.c 	kfree(jsk->filters);
jsk               630 net/can/j1939/socket.c static int j1939_sk_setsockopt_flag(struct j1939_sock *jsk, char __user *optval,
jsk               639 net/can/j1939/socket.c 	lock_sock(&jsk->sk);
jsk               641 net/can/j1939/socket.c 		jsk->state |= flag;
jsk               643 net/can/j1939/socket.c 		jsk->state &= ~flag;
jsk               644 net/can/j1939/socket.c 	release_sock(&jsk->sk);
jsk               652 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk               684 net/can/j1939/socket.c 		lock_sock(&jsk->sk);
jsk               685 net/can/j1939/socket.c 		ofilters = jsk->filters;
jsk               686 net/can/j1939/socket.c 		jsk->filters = filters;
jsk               687 net/can/j1939/socket.c 		jsk->nfilters = count;
jsk               688 net/can/j1939/socket.c 		release_sock(&jsk->sk);
jsk               692 net/can/j1939/socket.c 		return j1939_sk_setsockopt_flag(jsk, optval, optlen,
jsk               695 net/can/j1939/socket.c 		ret = j1939_sk_setsockopt_flag(jsk, optval, optlen,
jsk               700 net/can/j1939/socket.c 		if (!(jsk->state & J1939_SOCK_ERRQUEUE))
jsk               712 net/can/j1939/socket.c 		lock_sock(&jsk->sk);
jsk               713 net/can/j1939/socket.c 		jsk->sk.sk_priority = j1939_to_sk_priority(tmp);
jsk               714 net/can/j1939/socket.c 		release_sock(&jsk->sk);
jsk               725 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk               739 net/can/j1939/socket.c 	lock_sock(&jsk->sk);
jsk               742 net/can/j1939/socket.c 		tmp = (jsk->state & J1939_SOCK_PROMISC) ? 1 : 0;
jsk               745 net/can/j1939/socket.c 		tmp = (jsk->state & J1939_SOCK_ERRQUEUE) ? 1 : 0;
jsk               748 net/can/j1939/socket.c 		tmp = j1939_prio(jsk->sk.sk_priority);
jsk               768 net/can/j1939/socket.c 	release_sock(&jsk->sk);
jsk               838 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk               865 net/can/j1939/socket.c 	skcb->addr = jsk->addr;
jsk               923 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk               933 net/can/j1939/socket.c 	jsk = j1939_sk(sk);
jsk               935 net/can/j1939/socket.c 	if (!(jsk->state & J1939_SOCK_ERRQUEUE))
jsk              1004 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk              1005 net/can/j1939/socket.c 	struct j1939_session *session = j1939_sk_get_incomplete_session(jsk);
jsk              1051 net/can/j1939/socket.c 					j1939_sk_queue_drop_all(priv, jsk,
jsk              1098 net/can/j1939/socket.c 	struct j1939_sock *jsk = j1939_sk(sk);
jsk              1105 net/can/j1939/socket.c 	if (!(jsk->state & J1939_SOCK_BOUND)) {
jsk              1110 net/can/j1939/socket.c 	priv = jsk->priv;
jsk              1111 net/can/j1939/socket.c 	ifindex = jsk->ifindex;
jsk              1113 net/can/j1939/socket.c 	if (!jsk->addr.src_name && jsk->addr.sa == J1939_NO_ADDR) {
jsk              1152 net/can/j1939/socket.c 		if (!jsk->addr.dst_name && jsk->addr.da == J1939_NO_ADDR &&
jsk              1170 net/can/j1939/socket.c 	struct j1939_sock *jsk;
jsk              1174 net/can/j1939/socket.c 	list_for_each_entry(jsk, &priv->j1939_socks, list) {
jsk              1175 net/can/j1939/socket.c 		jsk->sk.sk_err = error_code;
jsk              1176 net/can/j1939/socket.c 		if (!sock_flag(&jsk->sk, SOCK_DEAD))
jsk              1177 net/can/j1939/socket.c 			jsk->sk.sk_error_report(&jsk->sk);
jsk              1179 net/can/j1939/socket.c 		j1939_sk_queue_drop_all(priv, jsk, error_code);