### Common config fragments required by syzbot for all kernels

### Machine processor and bus support
CONFIG_MCORE2=y
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_PROCESSOR_SELECT=y
CONFIG_SMP=y
# CONFIG_CPU_SUP_CENTAUR is not set
# CONFIG_HT_IRQ is not set

### We don't need lots, but some configs set it to 2 which is too low.
CONFIG_NR_CPUS=8

### syzbot uses own compiler, it usually produces new warnings.
# CONFIG_ERROR_ON_WARNING is not set

### Block device support
CONFIG_ATA=y
CONFIG_ATA_PIIX=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI=y

### Virtualization support
CONFIG_HYPERVISOR_GUEST=y
CONFIG_HZ_100=y
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_SCSI_LOWLEVEL=y
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y

### Network device support
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E1000=y
CONFIG_NET_CORE=y

### Serial console support
CONFIG_EARLY_PRINTK=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_TTY=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set

### Coverage features
CONFIG_KCOV=y
CONFIG_KCOV_INSTRUMENT_ALL=y
CONFIG_KCOV_ENABLE_COMPARISONS=y
CONFIG_DEBUG_FS=y
# CONFIG_RANDOMIZE_BASE is not set

### For detection of supported syscalls
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_KALLSYMS_BASE_RELATIVE=y

### KPROBES pollute coverage and needlessly slow down execution
# CONFIG_KPROBES is not set
### Slows down execution and sometimes fuzzer actually enables it
# CONFIG_FUNCTION_TRACER is not set
### Slows down execution
# CONFIG_RETPOLINE is not set
# CONFIG_PAGE_TABLE_ISOLATION is not set

### For 'namespace' sandbox
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y

### Debugging features (from kernel_configs.md, do not alpha sort)
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_PANIC_TIMEOUT=86400
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_LOCKDEP=y
CONFIG_PROVE_LOCKING=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_PROVE_RCU=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_VM_VMACACHE=y
CONFIG_DEBUG_VM_RB=y
CONFIG_REFCOUNT_FULL=y
CONFIG_FORTIFY_SOURCE=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_LOCKUP_DETECTOR=y
CONFIG_SOFTLOCKUP_DETECTOR=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_WQ_WATCHDOG=y
CONFIG_RCU_CPU_STALL_TIMEOUT=100
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=140

### More debugging features
CONFIG_BASE_FULL=y
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
CONFIG_DEBUG_DEVRES=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_LIST=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_NOTIFIERS=y
CONFIG_DEBUG_OBJECTS=y
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
CONFIG_DEBUG_OBJECTS_FREE=y
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
CONFIG_DEBUG_OBJECTS_TIMERS=y
CONFIG_DEBUG_OBJECTS_WORK=y
CONFIG_DEBUG_PI_LIST=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_PRINTK=y
CONFIG_PRINTK_TIME=y
CONFIG_SND_DEBUG=y
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set

### Fault injection
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_FUTEX=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y

### KASAN support
CONFIG_KASAN=y
CONFIG_KASAN_INLINE=y
CONFIG_SPARSEMEM_VMEMMAP=y

### 32-on-64 support
CONFIG_IA32_EMULATION=y

### Options enabled to boot Debian Wheezy
CONFIG_X86_VSYSCALL_EMULATION=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_INOTIFY_USER=y
CONFIG_UEVENT_HELPER=y

### Options enabled to boot Debian Stretch
CONFIG_CONFIGFS_FS=y
CONFIG_SECURITYFS=y

### Enable some control groups for better sandboxing
CONFIG_CGROUP_PIDS=y
CONFIG_MEMCG=y

### If syzkaller gets to /dev/{mem,kmem,ioport}, it will destroy the machine.
### It managed to do so with some mount's, chdir's and bogus file names.
### These are not needed for fuzzing, so completely disabling them is
### the simplest and the most reliable option.
# CONFIG_DEVMEM is not set
# CONFIG_DEVKMEM is not set
# CONFIG_DEVPORT is not set

### Print thread and CPU ids
CONFIG_PRINTK_CALLER=y
