Defined in 1 files as a function:
Referenced in 10 files:
- drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c, line 8280
- drivers/net/vrf.c
- include/linux/netdevice.h, line 5614
- include/net/gro.h
- include/net/l3mdev.h
- net/bridge/br_netfilter_hooks.c, line 986
- net/ipv4/route.c, line 2550
- net/ipv6/ndisc.c, line 886
- net/ipv6/route.c, line 1068
- net/l3mdev/l3mdev.c
Smatch caller information:
net/ipv6/ip6_input.c l3mdev_l3_rcv() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read |
net/ipv6/ip6_offload.c inet6_get_iif_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| BIT_INFO | 0 | dev->features | 0x200000000000000,0xffffffffffffffff |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/ipv6/udp.c inet6_get_iif_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
drivers/net/vrf.c vrf_add_slave() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| BUF_SIZE | 0 | dev->nd_net.net | (-1),10304,10432 |
| CAPPED_DATA | 0 | dev->nd_net.net | 1 |
| DATA_SOURCE | 0 | dev | $1 |
| NOSPEC | 0 | dev->ifindex | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | dev->flags | 0-526337[c] |
| USER_DATA | 0 | dev->ifindex | 0-s32max[c] |
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_napi_configs | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| LOCK2 | global &rtnl_mutex | ||
| HALF_LOCKED2 | &net->xfrm.xfrm_cfg_mutex | ||
| HALF_LOCKED2 | global &audit_cmd_mutex.lock | ||
| HALF_LOCKED2 | global &cb_lock | ||
| HALF_LOCKED2 | global &crypto_cfg_mutex | ||
| HALF_LOCKED2 | global &hwsim_phys_lock | ||
| HALF_LOCKED2 | global &rx_queue_mutex |
drivers/net/vrf.c vrf_device_event() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | dev | r netdev_notifier_info_to_dev |
net/ipv4/tcp_offload.c inet_get_iif_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| BIT_INFO | 0 | dev->features | 0x200000000000000,0xffffffffffffffff |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/core/filter.c dev_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| UNITS | 0 | dev | unit_byte |
net/ipv4/fib_semantics.c l3mdev_master_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/ipv4/udp_offload.c inet_get_iif_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| CAPPED_DATA | 0 | dev->nd_net.net | 1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/ipv6/udp_offload.c inet6_get_iif_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | dev | s32min-(-1),1-s32max |
| CAPPED_DATA | 0 | dev->nd_net.net | 1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/ipv6/addrconf.c l3mdev_master_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| LOCK2 | rcu_read |
net/l3mdev/l3mdev.c l3mdev_fib_table_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | &net->rtnl_mutex | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| HALF_LOCKED2 | rcu_read |
net/l3mdev/l3mdev.c l3mdev_link_scope_lookup() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| CAPPED_DATA | 0 | dev->ifindex | 1 |
| DATA_SOURCE | 0 | dev | r dev_get_by_index_rcu |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &ipvs->service_mutex | ||
| HALF_LOCKED2 | &net->ipv4.mfc_mutex | ||
| HALF_LOCKED2 | &net->ipv6.mfc_mutex | ||
| HALF_LOCKED2 | &sk->sk_callback_lock | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | global &rx_queue_mutex | ||
| HALF_LOCKED2 | sk |
net/l3mdev/l3mdev.c l3mdev_master_ifindex_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read |
net/ipv4/udp.c inet_get_iif_sdif() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/core/lwt_bpf.c l3mdev_master_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| LOCK2 | bh | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &net->ipv4.mfc_mutex | ||
| HALF_LOCKED2 | &net->ipv6.mfc_mutex | ||
| HALF_LOCKED2 | &sk->sk_callback_lock | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | sk |
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_rif_should_config() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| HALF_LOCKED2 | &mlxsw_sp->router->lock | ||
| HALF_LOCKED2 | &router->lock | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| TYPE_LOCK | (struct mlxsw_sp_router)->lock |
net/bridge/br_netfilter_hooks.c ip_sabotage_in() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | rcu_read |
net/ipv4/ip_input.c l3mdev_l3_rcv() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read |
net/ipv6/output_core.c l3mdev_l3_out() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | dev | r skb_dst_dev_rcu |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &sk->sk_callback_lock | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | sk |
net/ipv6/route.c ip6_rt_get_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | bh |
net/ipv6/route.c l3mdev_master_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| LOCK2 | rcu_read |
net/ipv6/raw.c l3mdev_l3_out() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | dev | r skb_dst_dev_rcu |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &vq->mutex | ||
| HALF_LOCKED2 | sk |
net/ipv6/ip6_output.c l3mdev_l3_out() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | dev | r skb_dst_dev_rcu |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &net->xfrm.xfrm_state_lock | ||
| HALF_LOCKED2 | bh |
net/ipv6/ip6_output.c l3mdev_master_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | bh |
net/ipv6/ndisc.c ndisc_recv_ns() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| CAPPED_DATA | 0 | dev->nd_net.net | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| HALF_LOCKED2 | &tbl->proxy_queue.lock | ||
| HALF_LOCKED2 | rcu_read |
net/ipv4/route.c ip_route_input_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| CAPPED_DATA | 0 | dev->ip_ptr | 1 |
| DATA_SOURCE | 0 | dev | $4 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dev->group | |
| NO_OVERFLOW_SIMPLE | 0 | dev->num_tc | |
| NO_OVERFLOW_SIMPLE | 0 | dev->proto_down | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_rx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->real_num_tx_queues | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.rx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->stats.tx_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | dev->tx_queue_len | |
| UNITS | 0 | dev | unit_byte |
| LOCK2 | rcu_read |
net/ipv4/route.c l3mdev_master_dev_rcu() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dev | 4096-ptr_max |
| DATA_SOURCE | 0 | dev | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dev | unit_byte |
| LOCK2 | rcu_read |
net/ipv4/ip_output.c l3mdev_l3_out() -> netif_is_l3_slave()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | dev | r skb_dst_dev_rcu |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &sk->sk_callback_lock | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | sk |