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);