Defined in 1 files as a function:
Referenced in 48 files:
- arch/arm/kernel/setup.c, line 723
- arch/arm64/kernel/hibernate.c, line 88
- arch/powerpc/platforms/pseries/setup.c, line 918
- arch/riscv/kernel/hibernate.c, line 67
- arch/s390/kernel/nmi.c, line 132
- arch/sh/kernel/cpu/proc.c, line 93
- arch/sh/kernel/setup.c, line 349
- arch/um/kernel/um_arch.c
- arch/x86/kernel/cpu/common.c, line 2619
- arch/x86/um/sysrq_64.c, line 21
- drivers/char/random.c
- drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c, line 359
- drivers/gpu/drm/i915/i915_gpu_error.c
- drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c, line 94
- drivers/gpu/drm/msm/msm_gpu.c, line 199
- drivers/gpu/drm/xe/xe_devcoredump.c, line 104
- drivers/gpu/drm/xe/xe_guc_log.c, line 335
- drivers/infiniband/hw/hfi1/verbs.c, line 1786
- drivers/net/netconsole.c
- drivers/net/wireless/ath/ath10k/coredump.c, line 1552
- drivers/net/wireless/mediatek/mt76/mt7915/coredump.c, line 332
- drivers/net/wireless/mediatek/mt76/mt7996/coredump.c, line 192
- drivers/parisc/led.c, line 459
- drivers/s390/block/dasd_eckd.c, line 2898
- drivers/s390/scsi/zfcp_fc.c, line 886
- drivers/scsi/csiostor/csio_lnode.c
- drivers/scsi/libfc/fc_encode.h
- drivers/scsi/lpfc/lpfc_ct.c
- drivers/scsi/lpfc/lpfc_hbadisc.c, line 3706
- drivers/usb/core/hcd.c
- drivers/usb/gadget/composite.c
- fs/ceph/mds_client.c, line 1603
- fs/ext4/mmp.c, line 157
- fs/smb/client/smb1session.c
- kernel/hung_task.c
- kernel/locking/lockdep.c
- kernel/power/snapshot.c
- kernel/sched/debug.c
- kernel/trace/trace.c, line 2952
- lib/dump_stack.c
- net/batman-adv/main.c, line 116
- net/batman-adv/mesh-interface.c, line 890
- net/batman-adv/netlink.c, line 238
- net/bluetooth/hci_sock.c
- net/ipv4/ipconfig.c, line 446
- net/wireless/ethtool.c, line 18
- sound/core/info.c, line 875
- sound/core/info_oss.c
Smatch caller information:
drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c amdgpu_devcoredump_format() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| HALF_LOCKED2 | &pool->lock |
net/batman-adv/mesh-interface.c batadv_get_drvinfo() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &us_ibdev->usdev_lock | ||
| HALF_LOCKED2 | global &bnx2fc_dev_lock | ||
| HALF_LOCKED2 | global &ft_mutex | ||
| HALF_LOCKED2 | global &rtnl_mutex |
drivers/gpu/drm/xe/xe_devcoredump.c __xe_devcoredump_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &coredump->lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &pool->lock |
drivers/infiniband/hw/hfi1/verbs.c hfi1_register_ib_device() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/net/netconsole.c append_release() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
drivers/net/netconsole.c send_ext_msg_udp() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | _T->flags | ||
| HALF_LOCKED2 | flags |
drivers/net/netconsole.c send_msg_no_fragmentation() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
drivers/net/netconsole.c sysdata_append_release() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
fs/ceph/mds_client.c create_session_full_msg() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &session->s_mutex |
fs/ext4/mmp.c kmmpd() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
fs/ext4/mmp.c kmmpd() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
fs/ext4/mmp.c kmmpd() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
drivers/gpu/drm/i915/i915_gpu_error.c __err_print_to_sgl() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &of->mutex |
drivers/gpu/drm/i915/i915_gpu_error.c __err_print_to_sgl() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &of->mutex |
kernel/hung_task.c hung_task_info() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | rcu_read |
kernel/hung_task.c hung_task_info() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | rcu_read |
kernel/hung_task.c hung_task_info() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | rcu_read |
drivers/net/wireless/mediatek/mt76/mt7996/coredump.c mt7996_coredump_build() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &dev->dump_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct mt7996_dev)->dump_mutex |
net/bluetooth/hci_sock.c hci_sock_bind() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 13 | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | sk | ||
| HALF_LOCKED2 | &buffer->mutex | ||
| HALF_LOCKED2 | &frag->frag_sem | ||
| HALF_LOCKED2 | global &o2nm_cluster_group.cs_subsys.su_mutex |
net/bluetooth/hci_sock.c hci_sock_bind() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 13 | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | sk | ||
| HALF_LOCKED2 | &buffer->mutex | ||
| HALF_LOCKED2 | &frag->frag_sem | ||
| HALF_LOCKED2 | global &o2nm_cluster_group.cs_subsys.su_mutex |
kernel/locking/lockdep.c print_kernel_ident() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
kernel/locking/lockdep.c print_kernel_ident() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
kernel/locking/lockdep.c print_kernel_ident() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
net/batman-adv/main.c batadv_init() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
kernel/sched/build_utility.c sched_debug_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &m->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
kernel/sched/build_utility.c sched_debug_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &m->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
kernel/sched/build_utility.c sched_debug_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &m->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
kernel/sched/build_utility.c sched_debug_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &dev->event_lock | ||
| HALF_LOCKED2 | global &kbd_event_lock | ||
| HALF_LOCKED2 | irq |
kernel/sched/build_utility.c sched_debug_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &dev->event_lock | ||
| HALF_LOCKED2 | global &kbd_event_lock | ||
| HALF_LOCKED2 | irq |
kernel/sched/build_utility.c sched_debug_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &dev->event_lock | ||
| HALF_LOCKED2 | global &kbd_event_lock | ||
| HALF_LOCKED2 | irq |
drivers/char/random.c random_init_early() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | irq |
drivers/scsi/lpfc/lpfc_ct.c lpfc_fdmi_change_check() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
drivers/scsi/lpfc/lpfc_ct.c lpfc_fdmi_change_check() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
drivers/scsi/lpfc/lpfc_ct.c lpfc_fdmi_hba_attr_os_ver() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/scsi/lpfc/lpfc_ct.c lpfc_fdmi_hba_attr_os_ver() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/scsi/lpfc/lpfc_ct.c lpfc_fdmi_hba_attr_os_ver() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/scsi/lpfc/lpfc_ct.c lpfc_vport_symbolic_node_name() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &of->mutex |
net/wireless/ethtool.c cfg80211_get_drvinfo() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &us_ibdev->usdev_lock | ||
| HALF_LOCKED2 | global &bnx2fc_dev_lock | ||
| HALF_LOCKED2 | global &ft_mutex | ||
| HALF_LOCKED2 | global &rtnl_mutex |
sound/core/info_oss.c snd_sndstat_proc_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &seq->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
sound/core/info_oss.c snd_sndstat_proc_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &seq->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
sound/core/info_oss.c snd_sndstat_proc_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &seq->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
sound/core/info_oss.c snd_sndstat_proc_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &seq->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
sound/core/info_oss.c snd_sndstat_proc_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &seq->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
drivers/gpu/drm/msm/msm_gpu.c msm_gpu_devcoredump_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &of->mutex | ||
| HALF_LOCKED2 | &of->prealloc_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct kernfs_open_file)->mutex |
lib/dump_stack.c dump_stack_print_info() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
lib/dump_stack.c dump_stack_print_info() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
lib/dump_stack.c dump_stack_print_info() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
kernel/trace/trace.c print_trace_header() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &m->lock |
net/ipv4/ipconfig.c ic_defaults() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
drivers/net/wireless/mediatek/mt76/mt7915/coredump.c mt7915_coredump_build() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &dev->dump_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct mt7915_dev)->dump_mutex |
sound/core/info.c snd_info_version_read() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &seq->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
fs/smb/client/smb1session.c ascii_oslm_strings() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ses->session_mutex | ||
| TYPE_LOCK | (struct cifs_ses)->session_mutex |
fs/smb/client/smb1session.c ascii_oslm_strings() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ses->session_mutex | ||
| TYPE_LOCK | (struct cifs_ses)->session_mutex |
fs/smb/client/smb1session.c unicode_oslm_strings() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ses->session_mutex | ||
| TYPE_LOCK | (struct cifs_ses)->session_mutex |
drivers/net/wireless/ath/ath10k/coredump.c ath10k_coredump_build() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &ar->dump_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ath10k)->dump_mutex |
drivers/usb/core/hcd.c rh_string() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
drivers/usb/core/hcd.c rh_string() -> init_utsname()
| Type | Parameter | Key | Value |
|---|
drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_process_link_up() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH |
drivers/gpu/drm/xe/xe_guc_log.c xe_guc_log_add_os_id() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &m->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
drivers/scsi/csiostor/csio_lnode.c csio_hostname() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &hw->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | irq |
drivers/scsi/csiostor/csio_lnode.c csio_osname() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &hw->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | irq |
drivers/scsi/csiostor/csio_lnode.c csio_osname() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &hw->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | irq |
drivers/scsi/csiostor/csio_lnode.c csio_osname() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &hw->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | irq |
net/batman-adv/netlink.c batadv_netlink_mesh_fill() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->lock | ||
| HALF_LOCKED2 | &devlink->lock | ||
| 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 &dpll_lock | ||
| HALF_LOCKED2 | global &hwsim_phys_lock | ||
| HALF_LOCKED2 | global &net_dm_mutex | ||
| HALF_LOCKED2 | global &rx_queue_mutex | ||
| HALF_LOCKED2 | rcu_read |
drivers/scsi/libfc/fc_elsct.c fc_ct_ms_fill() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &disc->disc_mutex | ||
| HALF_LOCKED2 | &fsp->scsi_pkt_lock | ||
| HALF_LOCKED2 | &lport->lp_mutex | ||
| HALF_LOCKED2 | &lport->lp_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rdata->rp_mutex | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | lport->host->host_lock |
drivers/scsi/libfc/fc_elsct.c fc_ct_ms_fill() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &disc->disc_mutex | ||
| HALF_LOCKED2 | &fsp->scsi_pkt_lock | ||
| HALF_LOCKED2 | &lport->lp_mutex | ||
| HALF_LOCKED2 | &lport->lp_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rdata->rp_mutex | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | lport->host->host_lock |
drivers/scsi/libfc/fc_elsct.c fc_ct_ms_fill() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &disc->disc_mutex | ||
| HALF_LOCKED2 | &fsp->scsi_pkt_lock | ||
| HALF_LOCKED2 | &lport->lp_mutex | ||
| HALF_LOCKED2 | &lport->lp_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rdata->rp_mutex | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | lport->host->host_lock |
drivers/usb/gadget/composite.c composite_default_mfr() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/usb/gadget/composite.c composite_default_mfr() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c msm_disp_state_print() -> init_utsname()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &of->mutex |