android_kernel_samsung_sm8650/init/Kconfig
Srinivasarao Pathipati 37e14da1f2 Merge keystone/android14-6.1-keystone-qcom-release.6.1.78+ (075ce55) into qcom-6.1
* refs/heads/tmp-075ce55:
  ANDROID: 16K: Avoid mmap lock assertions for padding VMAs
  ANDROID: consolidate.fragment: don't disable CONFIG_PM_ADVANCED_DEBUG
  ANDROID: GKI: Update symbol list for mtk
  Revert "f2fs: fix to tag gcing flag on page during block migration"
  ANDROID: 16K: Only check basename of linker context
  FROMGIT: arm64: mte: Make mte_check_tfsr_*() conditional on KASAN instead of MTE
  ANDROID: gki_defconfig: Disable CONFIG_BRCMSTB_DPFE and CONFIG_BRCMSTB_MEMC
  FROMGIT: f2fs: fix to avoid use SSR allocate when do defragment
  ANDROID: 16K: Only check basename of linker context
  ANDROID: 16K: Avoid and document padding madvise lock warning
  ANDROID: arm64: vdso32: support user-supplied flags
  ANDROID: GKI: Add initial symbol list for bcmstb
  ANDROID: gki_defconfig: Enable Broadcom STB SoCs
  UPSTREAM: mmc: core: Do not force a retune before RPMB switch
  UPSTREAM: arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers
  BACKPORT: net: phy: Allow drivers to always call into ->suspend()
  UPSTREAM: ARM: perf: Mark all accessor functions inline
  UPSTREAM: arm64: perf: Mark all accessor functions inline
  UPSTREAM: perf/core: Drop __weak attribute from arch_perf_update_userpage() prototype
  UPSTREAM: ARM: perf: Allow the use of the PMUv3 driver on 32bit ARM
  UPSTREAM: ARM: Make CONFIG_CPU_V7 valid for 32bit ARMv8 implementations
  UPSTREAM: perf: pmuv3: Change GENMASK to GENMASK_ULL
  UPSTREAM: perf: pmuv3: Move inclusion of kvm_host.h to the arch-specific helper
  UPSTREAM: perf: pmuv3: Abstract PMU version checks
  UPSTREAM: arm64: perf: Abstract system register accesses away
  UPSTREAM: arm64: perf: Move PMUv3 driver to drivers/perf
  UPSTREAM: arm64/perf: Replace PMU version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
  ANDROID: GKI: Update oplus symbol list
  UPSTREAM: block/blk-mq: Don't complete locally if capacities are different
  BACKPORT: sched: Add a new function to compare if two cpus have the same capacity
  ANDROID: GKI: Update symbol list for mtk
  ANDROID: GKI: Update rockchip symbols for rndis_host.
  ANDROID: GKI: Update rockchip symbols for snd multi dais.
  UPSTREAM: usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete
  UPSTREAM: usb: gadget: f_fs: use io_data->status consistently
  ANDROID: set rewrite_absolute_paths_in_config for GKI aarch64.
  UPSTREAM: wifi: cfg80211: Clear mlo_links info when STA disconnects
  ANDROID: ABI: Add usb_gadget_connect & usb_gadget_disconnect symbol
  ANDROID: GKI: Update symbol list for mtk
  BACKPORT: iommu: Have __iommu_probe_device() check for already probed devices
  ANDROID: ABI fixup for abi break in struct dst_ops
  BACKPORT: net: fix __dst_negative_advice() race
  ANDROID: ABI fixup for abi break in struct dst_ops
  BACKPORT: net: fix __dst_negative_advice() race
  Revert "crypto: api - Disallow identical driver names"
  UPSTREAM: USB: gadget: core: create sysfs link between udc and gadget
  ANDROID: GKI: add tegra20-cpufreq.ko to rockpi4 build
  ANDROID: GKI: update symbol list for db845c
  ANDROID: Build some tegra configs as vendor module
  ANDROID: gki_defconfig: Enable Tegra SoCs
  ANDROID: Update the ABI symbol list
  Revert^2 "BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST ..."
  ANDROID: binder: fix KMI-break due to alloc->lock
  ANDROID: binder: fix ptrdiff_t printk-format issue
  ANDROID: binder: fix KMI-break due to address type change
  Reapply "ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space"
  Reapply "ANDROID: Add vendor hooks for binder perf tuning"
  UPSTREAM: binder: switch alloc->mutex to spinlock_t
  UPSTREAM: binder: reverse locking order in shrinker callback
  UPSTREAM: binder: avoid user addresses in debug logs
  UPSTREAM: binder: refactor binder_delete_free_buffer()
  UPSTREAM: binder: collapse print_binder_buffer() into caller
  UPSTREAM: binder: document the final page calculation
  BACKPORT: UPSTREAM: binder: rename lru shrinker utilities
  UPSTREAM: binder: make oversized buffer code more readable
  UPSTREAM: binder: remove redundant debug log
  UPSTREAM: binder: perform page installation outside of locks
  UPSTREAM: binder: initialize lru pages in mmap callback
  UPSTREAM: binder: malloc new_buffer outside of locks
  UPSTREAM: binder: refactor page range allocation
  UPSTREAM: binder: relocate binder_alloc_clear_buf()
  UPSTREAM: binder: relocate low space calculation
  UPSTREAM: binder: separate the no-space debugging logic
  UPSTREAM: binder: remove pid param in binder_alloc_new_buf()
  UPSTREAM: binder: do unlocked work in binder_alloc_new_buf()
  UPSTREAM: binder: split up binder_update_page_range()
  UPSTREAM: binder: keep vma addresses type as unsigned long
  UPSTREAM: binder: remove extern from function prototypes
  Revert "ANDROID: Add vendor hooks for binder perf tuning"
  Revert "ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space_locked"
  Revert "ANDROID: vendor_hook: rename the the name of hooks"
  ANDROID: GKI: Update rockchip symbols for some usb wifi bt.
  UPSTREAM: selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior
  ANDROID: GKI: Update rockchip symbols to add iova APIs
  FROMLIST: kheaders: explicitly define file modes for archived headers
  ANDROID: incremental-fs: Make work with 16k pages
  ANDROID: pahole -J -j1 for reproducible BTF
  Revert "BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST ..."
  BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST to be relative against objtree.
  ANDROID: export one function for mm metrics
  ANDROID: GKI: Update symbol list for mtk
  FROMLIST: kheaders: explicitly define file modes for archived headers
  ANDROID: pahole -J -j1 for reproducible BTF
  FROMLIST: usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state
  ANDROID: Export sysctl_sched_wakeup_granularity to enable modifying it
  UPSTREAM: epoll: be better about file lifetimes
  FROMLIST: usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state
  FROMLIST: usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state
  UPSTREAM: usb: gadget: ncm: Fix handling of zero block length packets
  ANDROID: Update the ABI symbol list
  ANDROID: GKI: Update symbol list for mtk
  UPSTREAM: usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs
  ANDROID: GKI: Update rockchip symbols to add iova APIs
  FROMLIST: sched/pi: Reweight fair_policy() tasks when inheriting prio
  ANDROID: Update the ABI symbol list
  ANDROID: mm: Add restricted vendor hook in do_read_fault()
  ANDROID: abi_gki_aarch64_qcom: Update symbol list
  ANDROID: abi_gki_aarch64_qcom: Update symbol list
  ANDROID: Update the ABI symbol list
  ANDROID: add vendor hooks and expoert reclaim_pages to reclaim memory
  FROMGIT: usb: dwc3: Wait unconditionally after issuing EndXfer command
  ANDROID: ABI: Update honor symbol list
  ANDROID: add vendor hook in do_read_fault to tune fault_around_bytes
  ANDROID: usb: Optimize the problem of slow transfer rate in USB accessory mode
  ANDROID: Zap kernel/sched/android.h stubs
  ANDROID: Update the ABI symbol list
  ANDROID: Export sysctl_sched_wakeup_granularity to enable modifying it
  ANDROID: export one function for mm metrics
  ANDROID: Update the ABI symbol list
  ANDROID: Export sysctl_sched_wakeup_granularity to enable modifying it
  UPSTREAM: ALSA: virtio: use ack callback
  UPSTREAM: usb: typec: tcpm: clear pd_event queue in PORT_RESET
  BACKPORT: usb: typec: tcpm: enforce ready state when queueing alt mode vdm
  ANDROID: GKI: Update QCOM symbol list and ABI STG
  ANDROID: GKI: fix ABI breakage in struct userfaultfd_ctx
  UPSTREAM: userfaultfd: fix deadlock warning when locking src and dst VMAs
  BACKPORT: userfaultfd: use per-vma locks in userfaultfd operations
  BACKPORT: mm: add vma_assert_locked() for !CONFIG_PER_VMA_LOCK
  BACKPORT: userfaultfd: protect mmap_changing with rw_sem in userfaulfd_ctx
  BACKPORT: userfaultfd: move userfaultfd_ctx struct to header file
  BACKPORT: userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb
  BACKPORT: selftests/mm: add separate UFFDIO_MOVE test for PMD splitting
  BACKPORT: selftests/mm: add UFFDIO_MOVE ioctl test
  BACKPORT: selftests/mm: add uffd_test_case_ops to allow test case-specific operations
  BACKPORT: selftests/mm: call uffd_test_ctx_clear at the end of the test
  UPSTREAM: userfaultfd: fix return error if mmap_changing is non-zero in MOVE ioctl
  BACKPORT: userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE
  BACKPORT: mm: userfaultfd: fix unexpected change to src_folio when UFFDIO_MOVE fails
  BACKPORT: userfaultfd: handle zeropage moves by UFFDIO_MOVE
  UPSTREAM: userfaultfd: avoid huge_zero_page in UFFDIO_MOVE
  UPSTREAM: userfaultfd: fix move_pages_pte() splitting folio under RCU read lock
  BACKPORT: userfaultfd: UFFDIO_MOVE uABI
  UPSTREAM: mm/rmap: support move to different root anon_vma in folio_move_anon_rmap()
  UPSTREAM: crypto: x86/curve25519 - disable gcov
  ANDROID: GKI: Update QCOM symbol list and ABI STG
  ANDROID: GKI: update symbol list file for xiaomi
  UPSTREAM: netfilter: nft_set_pipapo: do not free live element
  UPSTREAM: net: tls: handle backlogging of crypto requests
  UPSTREAM: af_unix: Fix garbage collector racing against connect()
  UPSTREAM: af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
  ANDROID: 16K: Fix show maps CFI failure
  ANDROID: 16K: Handle pad VMA splits and merges
  ANDROID: 16K: madvise_vma_pad_pages: Remove filemap_fault check
  ANDROID: 16K: Only madvise padding from dynamic linker context
  ANDROID: 16K: Separate padding from ELF LOAD segment mappings
  ANDROID: 16K: Exclude ELF padding for fault around range
  ANDROID: 16K: Use MADV_DONTNEED to save VMA padding pages.
  ANDROID: 16K: Introduce ELF padding representation for VMAs
  ANDROID: 16K: Introduce /sys/kernel/mm/pgsize_miration/enabled
  FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it
  FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it
  Revert "FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it"
  FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it
  ANDROID: vendor_hooks: add symbols for lazy preemption
  ANDROID: vendor_hooks: add two hooks for lazy preemption
  ANDROID: KVM: arm64: wait_for_initramfs for pKVM module loading procfs
  ANDROID: GKI: Expose device async to userspace
  BACKPORT: mtk-mmsys: Change mtk-mmsys & mtk-mutex to modules
  ANDROID: Update the ABI symbol list
  BACKPORT: clk: mediatek: Split configuration options for MT8186 clock drivers
  BACKPORT: clk: mediatek: Add MODULE_LICENSE() where missing
  FROMGIT: coresight: etm4x: Fix access to resource selector registers
  FROMGIT: coresight: etm4x: Safe access for TRCQCLTR
  FROMGIT: coresight: etm4x: Do not save/restore Data trace control registers
  FROMGIT: coresight: etm4x: Do not hardcode IOMEM access for register restore
  ANDROID: GKI: Update honda symbol list for led-trigger
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: vendor_hook: Add hooks to support reader optimistic spin in rwsem
  UPSTREAM: af_unix: Fix garbage collector racing against connect()
  UPSTREAM: af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
  ANDROID: GKI: fix ABI breakage in struct userfaultfd_ctx
  UPSTREAM: userfaultfd: fix deadlock warning when locking src and dst VMAs
  BACKPORT: userfaultfd: use per-vma locks in userfaultfd operations
  BACKPORT: mm: add vma_assert_locked() for !CONFIG_PER_VMA_LOCK
  BACKPORT: userfaultfd: protect mmap_changing with rw_sem in userfaulfd_ctx
  BACKPORT: userfaultfd: move userfaultfd_ctx struct to header file
  BACKPORT: userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb
  BACKPORT: selftests/mm: add separate UFFDIO_MOVE test for PMD splitting
  BACKPORT: selftests/mm: add UFFDIO_MOVE ioctl test
  BACKPORT: selftests/mm: add uffd_test_case_ops to allow test case-specific operations
  BACKPORT: selftests/mm: call uffd_test_ctx_clear at the end of the test
  UPSTREAM: userfaultfd: fix return error if mmap_changing is non-zero in MOVE ioctl
  BACKPORT: userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE
  BACKPORT: mm: userfaultfd: fix unexpected change to src_folio when UFFDIO_MOVE fails
  BACKPORT: userfaultfd: handle zeropage moves by UFFDIO_MOVE
  UPSTREAM: userfaultfd: avoid huge_zero_page in UFFDIO_MOVE
  UPSTREAM: userfaultfd: fix move_pages_pte() splitting folio under RCU read lock
  BACKPORT: userfaultfd: UFFDIO_MOVE uABI
  UPSTREAM: mm/rmap: support move to different root anon_vma in folio_move_anon_rmap()
  ANDROID: PM: hibernate: Encryption support with compression
  ANDROID: abi_gki_aarch64_qcom: Update symbol list
  ANDROID: vendor_hooks: Add hooks to support hibernation
  ANDROID: gki_defconfig: Sync gki_defconfig
  UPSTREAM: PM: hibernate: Support to select compression algorithm
  UPSTREAM: PM: hibernate: Add support for LZ4 compression for hibernation
  BACKPORT: PM: hibernate: Move to crypto APIs for LZO compression
  BACKPORT: PM: hibernate: Rename lzo* to make it generic
  Revert "hrtimer: Report offline hrtimer enqueue"
  Revert "drm/mipi-dsi: Fix detach call without attach"
  ANDROID: ABI: Update symbol list for Exynos SoC
  ANDROID: abi_gki_aarch64_qcom: Update symbol list
  BACKPORT: mtk-mmsys: Change mtk-mmsys & mtk-mutex to modules
  BACKPORT: clk: mediatek: Split configuration options for MT8186 clock drivers
  BACKPORT: clk: mediatek: Add MODULE_LICENSE() where missing
  ANDROID: Update the ABI symbol list
  Reapply "ANDROID: block: Add support for filesystem requests and small segments"
  UPSTREAM: usb:typec:tcpm:support double Rp to Vbus cable as sink
  ANDROID: Update the ABI symbol list
  ANDROID: Add known structs used by modules to KMI
  ANDROID: use reserved cpucaps for new capability
  Revert "mm/sparsemem: fix race in accessing memory_section->usage"
  UPSTREAM: netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path
  UPSTREAM: netfilter: nf_tables: release batch on table validation from abort path
  UPSTREAM: netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
  UPSTREAM: netfilter: nft_set_pipapo: release elements in clone only from destroy path
  ANDROID: GKI: Add symbol list for Nothing
  ANDROID: GKI: Update honda symbol list for asound
  ANDROID: GKI: Update honda symbol list for xt_LOG
  ANDROID: GKI: Update honda symbol list for ebtables
  ANDROID: GKI: Update honda symbol list for net scheduler
  ANDROID: softirq: add tasklet to LONG_SOFTIRQ_MASK
  ANDROID: Update the ABI symbol list
  ANDROID: vendor_hooks: add restricted vendor hook for meminfo
  ANDROID: Update the ABI symbol list
  BACKPORT: cpufreq: Don't unregister cpufreq cooling on CPU hotplug
  FROMGIT: usb: typec: tcpm: Correct the PDO counting in pd_set
  UPSTREAM: tls: fix race between tx work scheduling and socket close
  UPSTREAM: netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
  UPSTREAM: tls: fix race between async notify and socket close
  UPSTREAM: net: tls: factor out tls_*crypt_async_wait()
  UPSTREAM: tls: extract context alloc/initialization out of tls_set_sw_offload
  BACKPORT: mm: update mark_victim tracepoints fields
  Revert "FROMGIT: BACKPORT: mm: update mark_victim tracepoints fields"
  ANDROID: Update the ABI symbol list
  ANDROID: export two function to reclaim memory
  ANDROID: add reclaim tune parameter functions
  UPSTREAM: netfilter: nf_tables: disallow anonymous set with timeout flag
  ANDROID: drop redundant OWNERS_DrNo file
  UPSTREAM: ALSA: virtio: Fix "Coverity: virtsnd_kctl_tlv_op(): Uninitialized variables" warning.
  UPSTREAM: ALSA: virtio: add support for audio controls
  ANDROID: Update symbols list for virtio_snd.ko audio controls
  ANDROID: Move cpu_busy_with_softirqs() into sched.h
  UPSTREAM: mm: page_alloc: unreserve highatomic page blocks before oom
  UPSTREAM: mm: page_alloc: enforce minimum zone size to do high atomic reserves
  UPSTREAM: mm: page_alloc: correct high atomic reserve calculations
  ANDROID: Update the ABI symbol list
  ANDROID: Export cpu_busy_with_softirqs()
  ANDROID: GKI: update symbol list file for xiaomi
  Reapply "ANDROID: null_blk: Support configuring the maximum segment size"
  UPSTREAM: usb: typec: Return size of buffer if pd_set operation succeeds
  UPSTREAM: usb: typec: tcpm: Update PD of Type-C port upon pd_set
  UPSTREAM: usb: typec: tcpm: fix double-free issue in tcpm_port_unregister_pd()
  UPSTREAM: usb: typec: tcpm: Correct port source pdo array in pd_set callback
  Reapply "Merge tag 'android14-6.1.75_r00' into android14-6.1"
  Revert "ANDROID: null_blk: Support configuring the maximum segment size"
  Revert "usb: dwc3: core: configure TX/RX threshold for DWC3_IP"
  ANDROID: Update the ABI symbol list
  ANDROID: GKI: Update symbols for rockchip drm
  FROMLIST: binder: check offset alignment in binder_get_object()
  ANDROID: GKI: Add symbol list for Nothing
  ANDROID: thermal: Add vendor thermal_pm_notify_suspend function
  UPSTREAM: usb: dwc3: gadget: Don't disconnect if not started
  Revert "ANDROID: block: Add support for filesystem requests and small segments"
  ANDROID: vendor_hook: fix issue vip thread do not sleep while no vip work
  UPSTREAM: sched/wait: Fix a kthread_park race with wait_woken()
  ANDROID: KVM: arm64: Fix TLB invalidation when coalescing into a block
  ANDROID: ABI: Update symbol list for Exynos SoC
  ANDROID: GKI: Add symbols for rockchip snd trcm
  FROMGIT: usb: dwc2: Disable clock gating feature on Rockchip SoCs
  ANDROID: ABI: Update symbol list for Exynos SoC
  ANDROID: Add symbols for IIO SCMI module
  ANDROID: KVM: arm64: Fix missing trace event for nVHE dyn HVCs
  ANDROID: Update the ABI symbol list
  ANDROID: Update symbols list for open-dice.ko
  ANDROID: Add symbols for IIO SCMI module
  ANDROID: GKI: Update symbols for rockchip
  UPSTREAM: usb: dwc2: disable lpm feature on Rockchip SoCs
  ANDROID: Update symbols list for open-dice.ko
  FROMLIST: mm/migrate: set swap entry values of THP tail pages properly.
  ANDROID: Update the ABI symbol list
  ANDROID: virt: gunyah: Move send_lock around req and reply
  ANDROID: null_blk: Support configuring the maximum segment size
  ANDROID: scsi_debug: Support configuring the maximum segment size
  ANDROID: block: Add support for filesystem requests and small segments
  ANDROID: block: Support submitting passthrough requests with small segments
  ANDROID: block: Make sub_page_limit_queues available in debugfs
  ANDROID: block: Support configuring limits below the page size
  ANDROID: block: Prepare for supporting sub-page limits
  ANDROID: block: Use pr_info() instead of printk(KERN_INFO ...)
  ANDROID: sound: usb: add vendor hook for cpu suspend support
  ANDROID: usb: Add vendor hook for usb suspend and resume
  ANDROID: fips140: change linker script guard
  Revert "ANDROID: Update symbols list for open-dice.ko"
  ANDROID: Update symbols list for open-dice.ko
  FROMGIT: PM: sleep: wakeirq: fix wake irq warning in system suspend
  ANDROID: ABI: Update symbol for Exynos SoC
  UPSTREAM: usb: dwc3: core: set force_gen1 bit in USB31 devices if max speed is SS
  UPSTREAM: PCI: dwc: Strengthen the MSI address allocation logic
  UPSTREAM: PCI: dwc: Restrict only coherent DMA mask for MSI address allocation
  ANDROID: ABI: Update oplus symbol list
  ANDROID: vendor_hook: rename the the name of hooks
  FROMGIT: usb: xhci: Add error handling in xhci_map_urb_for_dma
  FROMGIT: usb: dwc3: host: Set XHCI_SG_TRB_CACHE_SIZE_QUIRK
  FROMGIT: usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK
  ANDROID: fuse-bpf: Fix readdir for getdents
  Linux 6.1.78
  netfilter: nft_set_rbtree: skip end interval element from gc
  net: stmmac: xgmac: fix a typo of register name in DPP safety handling
  ALSA: usb-audio: Sort quirk table entries
  net: stmmac: xgmac: use #define for string constants
  clocksource: Skip watchdog check for large watchdog intervals
  block: treat poll queue enter similarly to timeouts
  f2fs: add helper to check compression level
  RDMA/irdma: Fix support for 64k pages
  vhost: use kzalloc() instead of kmalloc() followed by memset()
  Revert "ASoC: amd: Add new dmi entries for acp5x platform"
  io_uring/net: fix sr->len for IORING_OP_RECV with MSG_WAITALL and buffers
  Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID
  Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU
  hrtimer: Report offline hrtimer enqueue
  usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK
  usb: dwc3: host: Set XHCI_SG_TRB_CACHE_SIZE_QUIRK
  USB: serial: cp210x: add ID for IMST iM871A-USB
  USB: serial: option: add Fibocom FM101-GL variant
  USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
  ALSA: usb-audio: add quirk for RODE NT-USB+
  ALSA: usb-audio: Add a quirk for Yamaha YIT-W12TX transmitter
  ALSA: usb-audio: Add delay quirk for MOTU M Series 2nd revision
  mtd: parsers: ofpart: add workaround for #size-cells 0
  fs: dlm: don't put dlm_local_addrs on heap
  blk-iocost: Fix an UBSAN shift-out-of-bounds warning
  scsi: core: Move scsi_host_busy() out of host lock if it is for per-command
  fs/ntfs3: Fix an NULL dereference bug
  netfilter: nft_set_pipapo: remove scratch_aligned pointer
  netfilter: nft_set_pipapo: add helper to release pcpu scratch area
  netfilter: nft_set_pipapo: store index in scratch maps
  netfilter: nft_ct: reject direction for ct id
  drm/amd/display: Implement bounds check for stream encoder creation in DCN301
  netfilter: nft_compat: restrict match/target protocol to u16
  netfilter: nft_compat: reject unused compat flag
  netfilter: nft_compat: narrow down revision to unsigned 8-bits
  selftests: cmsg_ipv6: repeat the exact packet
  ppp_async: limit MRU to 64K
  af_unix: Call kfree_skb() for dead unix_(sk)->oob_skb in GC.
  tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()
  rxrpc: Fix response to PING RESPONSE ACKs to a dead call
  drm/i915/gvt: Fix uninitialized variable in handle_mmio()
  inet: read sk->sk_family once in inet_recv_error()
  hwmon: (coretemp) Fix bogus core_id to attr name mapping
  hwmon: (coretemp) Fix out-of-bounds memory access
  hwmon: (aspeed-pwm-tacho) mutex for tach reading
  octeontx2-pf: Fix a memleak otx2_sq_init
  atm: idt77252: fix a memleak in open_card_ubr0
  tunnels: fix out of bounds access when building IPv6 PMTU error
  selftests: net: avoid just another constant wait
  selftests: net: cut more slack for gro fwd tests.
  net: atlantic: Fix DMA mapping for PTP hwts ring
  netdevsim: avoid potential loop in nsim_dev_trap_report_work()
  wifi: mac80211: fix waiting for beacons logic
  net: stmmac: xgmac: fix handling of DPP safety error for DMA channels
  drm/msm/dpu: check for valid hw_pp in dpu_encoder_helper_phys_cleanup
  drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case
  drm/msms/dp: fixed link clock divider bits be over written in BPC unknown case
  cifs: failure to add channel on iface should bump up weight
  phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
  dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
  phy: renesas: rcar-gen3-usb2: Fix returning wrong error code
  dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
  dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
  dmaengine: ti: k3-udma: Report short packet errors
  dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
  ext4: regenerate buddy after block freeing failed if under fc replay
  Linux 6.1.77
  drm/amdgpu: Fix missing error code in 'gmc_v6/7/8/9_0_hw_init()'
  ASoC: codecs: wsa883x: fix PA volume control
  ASoC: codecs: lpass-wsa-macro: fix compander volume hack
  bonding: remove print in bond_verify_device_path
  gve: Fix use-after-free vulnerability
  LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init()
  drm/msm/dsi: Enable runtime PM
  Revert "drm/amd/display: Disable PSR-SU on Parade 0803 TCON again"
  mm, kmsan: fix infinite recursion due to RCU critical section
  arm64: irq: set the correct node for shadow call stack
  selftests: bonding: Check initial state
  selftests: team: Add missing config options
  net: sysfs: Fix /sys/class/net/<iface> path
  selftests: net: fix available tunnels detection
  af_unix: fix lockdep positive in sk_diag_dump_icons()
  net: ipv4: fix a memleak in ip_setup_cork
  netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations
  netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
  netfilter: nf_tables: restrict tunnel object to NFPROTO_NETDEV
  netfilter: conntrack: correct window scaling with retransmitted SYN
  selftests: net: add missing config for GENEVE
  bridge: mcast: fix disabled snooping after long uptime
  llc: call sock_orphan() at release time
  ipv6: Ensure natural alignment of const ipv6 loopback and router addresses
  net: dsa: qca8k: fix illegal usage of GPIO
  ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()
  ixgbe: Refactor overtemp event handling
  ixgbe: Refactor returning internal error codes
  tcp: add sanity checks to rx zerocopy
  net: lan966x: Fix port configuration when using SGMII interface
  ipmr: fix kernel panic when forwarding mcast packets
  ipv4: raw: add drop reasons
  ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()
  selftests: net: give more time for GRO aggregation
  HID: hidraw: fix a problem of memory leak in hidraw_release()
  scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler
  regulator: ti-abb: don't use devm_platform_ioremap_resource_byname for shared interrupt register
  scsi: isci: Fix an error code problem in isci_io_request_build()
  drm: using mul_u32_u32() requires linux/math64.h
  wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update
  perf: Fix the nr_addr_filters fix
  drm/amdkfd: Fix 'node' NULL check in 'svm_range_get_range_boundaries()'
  drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'
  drm/amdgpu: Fix with right return code '-EIO' in 'amdgpu_gmc_vram_checking()'
  drm/amd/powerplay: Fix kzalloc parameter 'ATOM_Tonga_PPM_Table' in 'get_platform_power_management_table()'
  ceph: fix invalid pointer access if get_quota_realm return ERR_PTR
  ceph: fix deadlock or deadcode of misusing dget()
  ceph: reinitialize mds feature bit even when session in open
  blk-mq: fix IO hang from sbitmap wakeup race
  virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings
  drm/amdkfd: Fix lock dependency warning with srcu
  drm/amdkfd: Fix lock dependency warning
  libsubcmd: Fix memory leak in uniq()
  misc: lis3lv02d_i2c: Add missing setting of the reg_ctrl callback
  9p: Fix initialisation of netfs_inode for 9p
  PCI/AER: Decode Requester ID when no error info found
  PCI: Fix 64GT/s effective data rate calculation
  spmi: mediatek: Fix UAF on device remove
  fs/kernfs/dir: obey S_ISGID
  tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE
  selftests/sgx: Fix linker script asserts
  usb: hub: Add quirk to decrease IN-ep poll interval for Microchip USB491x hub
  usb: hub: Replace hardcoded quirk value with BIT() macro
  perf cs-etm: Bump minimum OpenCSD version to ensure a bugfix is present
  PCI: switchtec: Fix stdev_release() crash after surprise hot remove
  PCI: Only override AMD USB controller if required
  mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt
  mfd: ti_am335x_tscadc: Fix TI SoC dependencies
  xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import
  i3c: master: cdns: Update maximum prescaler value for i2c clock
  um: time-travel: fix time corruption
  um: net: Fix return type of uml_net_start_xmit()
  um: Don't use vfprintf() for os_info()
  um: Fix naming clash between UML and scheduler
  leds: trigger: panic: Don't register panic notifier if creating the trigger failed
  ALSA: hda/conexant: Fix headset auto detect fail in cx8070 and SN6140
  drm/amdkfd: Fix iterator used outside loop in 'kfd_add_peer_prop()'
  drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()'
  drm/amdgpu: Fix '*fw' from request_firmware() not released in 'amdgpu_ucode_request()'
  drm/amdgpu: Let KFD sync with VM fences
  drm/amdgpu: Fix ecc irq enable/disable unpaired
  clk: imx: clk-imx8qxp: fix LVDS bypass, pixel and phy clocks
  drm/amd/display: make flip_timestamp_in_us a 64-bit variable
  watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786
  clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
  clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
  drm/amdgpu: fix ftrace event amdgpu_bo_move always move on same heap
  drm/msm/dpu: fix writeback programming for YUV cases
  drm/msm/dpu: Ratelimit framedone timeout msgs
  drm/amd/display: For prefetch mode > 0, extend prefetch if possible
  media: i2c: imx335: Fix hblank min/max values
  media: ddbridge: fix an error code problem in ddb_probe
  media: amphion: remove mutext lock in condition of wait_event
  IB/ipoib: Fix mcast list locking
  drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time
  f2fs: fix to tag gcing flag on page during block migration
  hwmon: (nct6775) Fix fan speed set failure in automatic mode
  media: rkisp1: Fix IRQ disable race issue
  media: rkisp1: Store IRQ lines
  media: rkisp1: Fix IRQ handler return values
  media: rkisp1: Drop IRQF_SHARED
  ALSA: hda: Intel: add HDA_ARL PCI ID support
  PCI: add INTEL_HDA_ARL to pci_ids.h
  media: rockchip: rga: fix swizzling for RGB formats
  media: stk1160: Fixed high volume of stk1160_dbg messages
  drm/mipi-dsi: Fix detach call without attach
  drm/framebuffer: Fix use of uninitialized variable
  drm/drm_file: fix use of uninitialized variable
  ASoC: amd: Add new dmi entries for acp5x platform
  f2fs: fix write pointers on zoned device after roll forward
  drm/amd/display: Fix tiled display misalignment
  drm/bridge: anx7625: Fix Set HPD irq detect window to 2ms
  drm/panel-edp: Add override_edid_mode quirk for generic edp
  RDMA/IPoIB: Fix error code return in ipoib_mcast_join
  fast_dput(): handle underflows gracefully
  ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument
  ALSA: hda: Refer to correct stream index at loops
  f2fs: fix to check return value of f2fs_reserve_new_block()
  net: dsa: qca8k: put MDIO bus OF node on qca8k_mdio_register() failure
  octeontx2-af: Fix max NPC MCAM entry check while validating ref_entry
  i40e: Fix VF disable behavior to block all traffic
  bridge: cfm: fix enum typo in br_cc_ccm_tx_parse
  net/smc: disable SEID on non-s390 archs where virtual ISM may be used
  Bluetooth: L2CAP: Fix possible multiple reject send
  Bluetooth: hci_sync: fix BR/EDR wakeup bug
  Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066
  wifi: cfg80211: free beacon_ies when overridden from hidden BSS
  wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
  libbpf: Fix NULL pointer dereference in bpf_object__collect_prog_relos
  wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices
  arm64: dts: amlogic: fix format for s4 uart node
  ice: fix pre-shifted bit usage
  arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
  arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
  md: Whenassemble the array, consult the superblock of the freshest device
  block: prevent an integer overflow in bvec_try_merge_hw_page
  net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
  net: atlantic: eliminate double free in error handling logic
  ice: fix ICE_AQ_VSI_Q_OPT_RSS_* register values
  scsi: hisi_sas: Set .phy_attached before notifing phyup event HISI_PHYE_PHY_UP_PM
  ARM: dts: imx23/28: Fix the DMA controller node name
  ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
  ARM: dts: imx27-apf27dev: Fix LED name
  ARM: dts: imx25/27: Pass timing0
  ARM: dts: imx25: Fix the iim compatible string
  block/rnbd-srv: Check for unlikely string overflow
  ionic: bypass firmware cmds when stuck in reset
  ionic: pass opcode to devcmd_wait
  net: phy: at803x: fix passing the wrong reference for config_intr
  ARM: dts: imx1: Fix sram node
  ARM: dts: imx27: Fix sram node
  ARM: dts: imx: Use flash@0,0 pattern
  ARM: dts: imx25/27-eukrea: Fix RTC node name
  ARM: dts: rockchip: fix rk3036 hdmi ports node
  wifi: wfx: fix possible NULL pointer dereference in wfx_set_mfp_ap()
  bpf: Set uattr->batch.count as zero before batched update or deletion
  scsi: libfc: Fix up timeout error in fc_fcp_rec_error()
  scsi: libfc: Don't schedule abort twice
  bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers
  wifi: ath11k: fix race due to setting ATH11K_FLAG_EXT_IRQ_ENABLED too early
  wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()
  ARM: dts: imx7s: Fix nand-controller #size-cells
  ARM: dts: imx7s: Fix lcdif compatible
  ARM: dts: imx7d: Fix coresight funnel ports
  scsi: arcmsr: Support new PCI device IDs 1883 and 1886
  scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116
  net: usb: ax88179_178a: avoid two consecutive device resets
  bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
  PCI: Add no PM reset quirk for NVIDIA Spectrum devices
  scsi: lpfc: Fix possible file string name overflow when updating firmware
  soc: xilinx: fix unhandled SGI warning message
  soc: xilinx: Fix for call trace due to the usage of smp_processor_id()
  selftests/bpf: Fix issues in setup_classid_environment()
  wifi: rt2x00: correct wrong BBP register in RxDCOC calibration
  selftests/bpf: Fix pyperf180 compilation failure with clang18
  selftests/bpf: satisfy compiler by having explicit return in btf test
  wifi: rt2x00: restart beacon queue when hardware reset
  ext4: avoid online resizing failures due to oversized flex bg
  ext4: remove unnecessary check from alloc_flex_gd()
  ext4: unify the type of flexbg_size to unsigned int
  ext4: fix inconsistent between segment fstrim and full fstrim
  ecryptfs: Reject casefold directory inodes
  SUNRPC: Fix a suspicious RCU usage warning
  KVM: s390: fix setting of fpc register
  s390/ptrace: handle setting of fpc register correctly
  s390/vfio-ap: fix sysfs status attribute for AP queue devices
  arch: consolidate arch_irq_work_raise prototypes
  jfs: fix array-index-out-of-bounds in diNewExt
  rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()
  afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*()
  afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu()
  crypto: stm32/crc32 - fix parsing list of devices
  erofs: fix ztailpacking for subpage compressed blocks
  crypto: octeontx2 - Fix cptvf driver cleanup
  pstore/ram: Fix crash when setting number of cpus to an odd number
  jfs: fix uaf in jfs_evict_inode
  jfs: fix array-index-out-of-bounds in dbAdjTree
  jfs: fix slab-out-of-bounds Read in dtSearch
  UBSAN: array-index-out-of-bounds in dtSplitRoot
  FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
  ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events
  PM / devfreq: Synchronize devfreq_monitor_[start/stop]
  ACPI: NUMA: Fix the logic of getting the fake_pxm value
  ACPI: extlog: fix NULL pointer dereference check
  PNP: ACPI: fix fortify warning
  ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop
  audit: Send netlink ACK before setting connection in auditd_set
  regulator: core: Only increment use_count when enable_count changes
  debugobjects: Stop accessing objects after releasing hash bucket lock
  perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
  x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel
  powerpc/lib: Validate size for vector operations
  powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE
  x86/boot: Ignore NMIs during very early boot
  powerpc/64s: Fix CONFIG_NUMA=n build due to create_section_mapping()
  powerpc/mm: Fix build failures due to arch_reserved_kernel_pages()
  powerpc: Fix build error due to is_valid_bugaddr()
  drivers/perf: pmuv3: don't expose SW_INCR event in sysfs
  arm64: irq: set the correct node for VMAP stack
  powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
  asm-generic: make sparse happy with odd-sized put_unaligned_*()
  Linux 6.1.76
  net/mlx5e: Handle hardware IPsec limits events
  serial: core: fix kernel-doc for uart_port_unlock_irqrestore()
  x86/entry/ia32: Ensure s32 is sign extended to s64
  tick/sched: Preserve number of idle sleeps across CPU hotplug events
  mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
  cxl/region:Fix overflow issue in alloc_hpa()
  MIPS: lantiq: register smp_ops on non-smp platforms
  spi: fix finalize message on error return
  spi: bcm-qspi: fix SFDP BFPT read by usig mspi read
  drm/bridge: anx7625: Ensure bridge is suspended in disable()
  block: Move checking GENHD_FL_NO_PART to bdev_add_partition()
  gpio: eic-sprd: Clear interrupt after set the interrupt type
  drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
  drm/exynos: fix accidental on-stack copy of exynos_drm_plane
  drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case
  drm/bridge: parade-ps8640: Ensure bridge is suspended in .post_disable()
  drm/bridge: sii902x: Fix audio codec unregistration
  drm/bridge: sii902x: Fix probing race issue
  drm/bridge: sii902x: Use devm_regulator_bulk_get_enable()
  drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33]
  drm/bridge: parade-ps8640: Wait for HPD when doing an AUX transfer
  Revert "powerpc/64s: Increase default stack size to 32KB"
  drm/panel-edp: drm/panel-edp: Fix AUO B116XAK01 name and timing
  btrfs: zoned: optimize hint byte for zoned allocator
  btrfs: zoned: factor out prepare_allocation_zoned()
  serial: sc16is7xx: fix unconditional activation of THRI interrupt
  serial: sc16is7xx: Use port lock wrappers
  serial: core: Provide port lock wrappers
  dlm: use kernel_connect() and kernel_bind()
  ARM: dts: qcom: sdx55: fix USB SS wakeup
  ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts
  ARM: dts: qcom: sdx55: fix pdc '#interrupt-cells'
  ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
  ARM: dts: qcom: sdx55: fix USB wakeup interrupt types
  pipe: wakeup wr_wait after setting max_usage
  fs/pipe: move check to pipe_has_watch_queue()
  thermal: intel: hfi: Add syscore callbacks for system-wide PM
  thermal: intel: hfi: Disable an HFI instance when all its CPUs go offline
  thermal: intel: hfi: Refactor enabling code into helper functions
  PM: sleep: Fix possible deadlocks in core system-wide PM code
  PM: core: Remove unnecessary (void *) conversions
  bus: mhi: ep: Do not allocate event ring element on stack
  media: ov13b10: Enable runtime PM before registering async sub-device
  media: ov13b10: Support device probe in non-zero ACPI D state
  erofs: fix lz4 inplace decompression
  erofs: get rid of the remaining kmap_atomic()
  drm/amdgpu/pm: Fix the power source flag error
  drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A
  drm/bridge: nxp-ptn3460: simplify some error checking
  platform/x86: intel-uncore-freq: Fix types in sysfs callbacks
  drm/amd/display: Disable PSR-SU on Parade 0803 TCON again
  drm/tidss: Fix atomic_flush check
  drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking
  drm: Don't unref the same fb many times by mistake due to deadlock handling
  cpufreq: intel_pstate: Refine computation of P-state for given frequency
  gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04
  xfs: read only mounts with fsopen mount API are busted
  firmware: arm_scmi: Check mailbox/SMT channel for consistency
  ksmbd: fix global oob in ksmbd_nl_policy
  platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe
  netfilter: nf_tables: reject QUEUE/DROP verdict parameters
  netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
  hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes
  wifi: iwlwifi: fix a memory corruption
  exec: Fix error handling in begin_new_exec()
  rbd: don't move requests to the running list on errors
  btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
  btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
  btrfs: don't warn if discard range is not aligned to sector
  btrfs: tree-checker: fix inline ref size in error messages
  btrfs: ref-verify: free ref cache before clearing mount opt
  btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted
  nbd: always initialize struct msghdr completely
  net: fec: fix the unhandled context fault from smmu
  fjes: fix memleaks in fjes_hw_setup
  selftests: netdevsim: fix the udp_tunnel_nic test
  net: mvpp2: clear BM pool before initialization
  net: stmmac: Wait a bit for the reset to take effect
  netfilter: nf_tables: validate NFPROTO_* family
  netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
  btrfs: fix race between reading a directory and adding entries to it
  btrfs: refresh dir last index during a rewinddir(3) call
  btrfs: set last dir index to the current last index when opening dir
  btrfs: fix infinite directory reads
  netfilter: nft_limit: reject configurations that cause integer overflow
  rcu: Defer RCU kthreads wakeup when CPU is dying
  net/mlx5e: fix a potential double-free in fs_any_create_groups
  net/mlx5e: fix a double-free in arfs_create_groups
  net/mlx5e: Allow software parsing when IPsec crypto is enabled
  net/mlx5: Use mlx5 device constant for selecting CQ period mode for ASO
  net/mlx5: DR, Can't go to uplink vport on RX rule
  net/mlx5: DR, Use the right GVMI number for drop action
  ipv6: init the accept_queue's spinlocks in inet6_create
  netlink: fix potential sleeping issue in mqueue_flush_file
  tcp: Add memory barrier to tcp_push()
  afs: Hide silly-rename files from userspace
  tracing: Ensure visibility when inserting an element into tracing_map
  netfs, fscache: Prevent Oops in fscache_put_cache()
  net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv
  net: micrel: Fix PTP frame parsing for lan8814
  tun: add missing rx stats accounting in tun_xdp_act
  tun: fix missing dropped counter in tun_xdp_act
  net: fix removing a namespace with conflicting altnames
  udp: fix busy polling
  llc: Drop support for ETH_P_TR_802_2.
  llc: make llc_ui_sendmsg() more robust against bonding changes
  vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
  bnxt_en: Wait for FLR to complete during probe
  tcp: make sure init the accept_queue's spinlocks once
  net/smc: fix illegal rmb_desc access in SMC-D connection dump
  wifi: mac80211: fix potential sta-link leak
  drm/amd/display: pbn_div need be updated for hotplug event
  Revert "drm/amd: Enable PCIe PME from D3"
  ksmbd: Add missing set_freezable() for freezable kthread
  ksmbd: send lease break notification on FILE_RENAME_INFORMATION
  ksmbd: don't increment epoch if current state and request state are same
  ksmbd: fix potential circular locking issue in smb2_set_ea()
  ksmbd: set v2 lease version on lease upgrade
  mm: page_alloc: unreserve highatomic page blocks before oom
  LoongArch/smp: Call rcutree_report_cpu_starting() earlier
  serial: sc16is7xx: improve do/while loop in sc16is7xx_irq()
  serial: sc16is7xx: remove obsolete loop in sc16is7xx_port_irq()
  serial: sc16is7xx: fix invalid sc16is7xx_lines bitfield in case of probe error
  serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO
  serial: sc16is7xx: change EFR lock to operate on each channels
  serial: sc16is7xx: remove unused line structure member
  serial: sc16is7xx: remove global regmap from struct sc16is7xx_port
  serial: sc16is7xx: remove wasteful static buffer in sc16is7xx_regmap_name()
  serial: sc16is7xx: improve regmap debugfs by using one regmap per port
  rename(): fix the locking of subdirectories
  mm/sparsemem: fix race in accessing memory_section->usage
  mm/rmap: fix misplaced parenthesis of a likely()
  ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
  nouveau/vmm: don't set addr on the fail path to avoid warning
  rtc: Extend timeout for waiting for UIP to clear to 1s
  rtc: Add support for configuring the UIP timeout for RTC reads
  rtc: mc146818-lib: Adjust failure return code for mc146818_get_time()
  rtc: Adjust failure return code for cmos_set_alarm()
  rtc: cmos: Use ACPI alarm for non-Intel x86 systems too
  arm64: Rename ARM64_WORKAROUND_2966298
  media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
  mmc: mmc_spi: remove custom DMA mapped buffers
  mmc: core: Use mrq.sbc in close-ended ffu
  media: videobuf2-dma-sg: fix vmap callback
  scripts/get_abi: fix source path leak
  docs: kernel_abi.py: fix command injection
  lsm: new security_file_ioctl_compat() hook
  arm64: dts: qcom: sm8150: fix USB DP/DM HS PHY interrupts
  arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
  arm64: dts: qcom: sc7280: fix usb_1 wakeup interrupt types
  arm64: dts: qcom: sm8150: fix USB wakeup interrupt types
  arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
  arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
  scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
  dmaengine: fix NULL pointer in channel unregistration function
  iio: adc: ad7091r: Enable internal vref if external vref is not supplied
  async: Introduce async_schedule_dev_nocall()
  async: Split async_schedule_node_domain()
  parisc/power: Fix power soft-off button emulation on qemu
  parisc/firmware: Fix F-extend for PDC addresses
  bus: mhi: host: Add spinlock to protect WP access when queueing TREs
  bus: mhi: host: Drop chan lock before queuing buffers
  bus: mhi: host: Add alignment check for event ring read pointer
  mips: Fix max_mapnr being uninitialized on early stages
  s390/vfio-ap: let on_scan_complete() callback filter matrix and update guest's APCB
  s390/vfio-ap: loop over the shadow APCB when filtering guest's AP configuration
  s390/vfio-ap: always filter entire AP matrix
  media: ov9734: Enable runtime PM before registering async sub-device
  rpmsg: virtio: Free driver_override when rpmsg_remove()
  media: imx355: Enable runtime PM before registering async sub-device
  PM / devfreq: Fix buffer overflow in trans_stat_show
  s390/vfio-ap: unpin pages on gisc registration failure
  crypto: s390/aes - Fix buffer overread in CTR mode
  hwrng: core - Fix page fault dead lock on mmap-ed hwrng
  PM: hibernate: Enforce ordering during image compression/decompression
  crypto: api - Disallow identical driver names
  btrfs: sysfs: validate scrub_speed_max value
  OPP: Pass rounded rate to _set_opp()
  arm64: properly install vmlinuz.efi
  ext4: allow for the last group to be marked as trimmed
  iio: adc: ad7091r: Allow users to configure device events
  iio: adc: ad7091r: Set alert bit in config register
  Revert "nSVM: Check for reserved encodings of TLB_CONTROL in nested VMCB"
  usb: dwc3: gadget: Handle EP0 request dequeuing properly
  usb: dwc3: gadget: Queue PM runtime idle on disconnect event
  usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API

 Conflicts:
	Documentation/devicetree/bindings
	Documentation/devicetree/bindings/gpio/xlnx,gpio-xilinx.yaml
	Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml
	Documentation/devicetree/bindings/media/mediatek,mdp3-wrot.yaml
	Documentation/devicetree/bindings/media/rockchip-isp1.yaml
	Documentation/devicetree/bindings/nvmem/mxs-ocotp.yaml
	drivers/bus/mhi/host/main.c
	drivers/clk/qcom/videocc-sm8150.c
	drivers/soc/qcom/llcc-qcom.c
	include/dt-bindings/clock/qcom,videocc-sm8150.h

Change-Id: I736b858a11a53d39b1a31aaa270d6508d9d527ba
Upstream-Build: ks_qcom-android14-6.1-keystone-qcom-release@12087153 UKQ2.240714.001
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2024-07-14 22:05:15 +05:30

2044 lines
64 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0-only
config CC_VERSION_TEXT
string
default "$(CC_VERSION_TEXT)"
help
This is used in unclear ways:
- Re-run Kconfig when the compiler is updated
The 'default' property references the environment variable,
CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
When the compiler is updated, Kconfig will be invoked.
- Ensure full rebuild when the compiler is updated
include/linux/compiler-version.h contains this option in the comment
line so fixdep adds include/config/CC_VERSION_TEXT into the
auto-generated dependency. When the compiler is updated, syncconfig
will touch it and then every file will be rebuilt.
config CC_IS_GCC
def_bool $(success,test "$(cc-name)" = GCC)
config GCC_VERSION
int
default $(cc-version) if CC_IS_GCC
default 0
config CC_IS_CLANG
def_bool $(success,test "$(cc-name)" = Clang)
config CLANG_VERSION
int
default $(cc-version) if CC_IS_CLANG
default 0
config AS_IS_GNU
def_bool $(success,test "$(as-name)" = GNU)
config AS_IS_LLVM
def_bool $(success,test "$(as-name)" = LLVM)
config AS_VERSION
int
# Use clang version if this is the integrated assembler
default CLANG_VERSION if AS_IS_LLVM
default $(as-version)
config LD_IS_BFD
def_bool $(success,test "$(ld-name)" = BFD)
config LD_VERSION
int
default $(ld-version) if LD_IS_BFD
default 0
config LD_IS_LLD
def_bool $(success,test "$(ld-name)" = LLD)
config LLD_VERSION
int
default $(ld-version) if LD_IS_LLD
default 0
config RUST_IS_AVAILABLE
def_bool $(success,$(srctree)/scripts/rust_is_available.sh)
help
This shows whether a suitable Rust toolchain is available (found).
Please see Documentation/rust/quick-start.rst for instructions on how
to satisfy the build requirements of Rust support.
In particular, the Makefile target 'rustavailable' is useful to check
why the Rust toolchain is not being detected.
config CC_CAN_LINK
bool
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag))
config CC_CAN_LINK_STATIC
bool
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag) -static) if 64BIT
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag) -static)
config CC_HAS_ASM_GOTO_OUTPUT
def_bool $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
config CC_HAS_ASM_GOTO_TIED_OUTPUT
depends on CC_HAS_ASM_GOTO_OUTPUT
# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
config TOOLS_SUPPORT_RELR
def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
config CC_HAS_ASM_INLINE
def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
config CC_HAS_NO_PROFILE_FN_ATTR
def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)
config PAHOLE_VERSION
int
default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE))
config CONSTRUCTORS
bool
config IRQ_WORK
bool
config BUILDTIME_TABLE_SORT
bool
config THREAD_INFO_IN_TASK
bool
help
Select this to move thread_info off the stack into task_struct. To
make this work, an arch will need to remove all thread_info fields
except flags and fix any runtime bugs.
One subtle change that will be needed is to use try_get_task_stack()
and put_task_stack() in save_thread_stack_tsk() and get_wchan().
menu "General setup"
config BROKEN
bool
config BROKEN_ON_SMP
bool
depends on BROKEN || !SMP
default y
config INIT_ENV_ARG_LIMIT
int
default 32 if !UML
default 128 if UML
help
Maximum of each of the number of arguments and environment
variables passed to init from the kernel command line.
config COMPILE_TEST
bool "Compile also drivers which will not load"
depends on HAS_IOMEM
help
Some drivers can be compiled on a different platform than they are
intended to be run on. Despite they cannot be loaded there (or even
when they load they cannot be used due to missing HW support),
developers still, opposing to distributors, might want to build such
drivers to compile-test them.
If you are a developer and want to build everything available, say Y
here. If you are a user/distributor, say N here to exclude useless
drivers to be distributed.
config WERROR
bool "Compile the kernel with warnings as errors"
default y
help
A kernel build should not cause any compiler warnings, and this
enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
to enforce that rule by default.
However, if you have a new (or very old) compiler with odd and
unusual warnings, or you have some architecture with problems,
you may need to disable this config option in order to
successfully build the kernel.
If in doubt, say Y.
config UAPI_HEADER_TEST
bool "Compile test UAPI headers"
depends on HEADERS_INSTALL && CC_CAN_LINK
help
Compile test headers exported to user-space to ensure they are
self-contained, i.e. compilable as standalone units.
If you are a developer or tester and want to ensure the exported
headers are self-contained, say Y here. Otherwise, choose N.
config LOCALVERSION
string "Local version - append to kernel release"
help
Append an extra string to the end of your kernel version.
This will show up when you type uname, for example.
The string you set here will be appended after the contents of
any files with a filename matching localversion* in your
object and source tree, in that order. Your total string can
be a maximum of 64 characters.
config LOCALVERSION_AUTO
bool "Automatically append version information to the version string"
default y
depends on !COMPILE_TEST
help
This will try to automatically determine if the current tree is a
release tree by looking for git tags that belong to the current
top of tree revision.
A string of the format -gxxxxxxxx will be added to the localversion
if a git-based tree is found. The string generated by this will be
appended after any matching localversion* files, and after the value
set in CONFIG_LOCALVERSION.
(The actual string used here is the first eight characters produced
by running the command:
$ git rev-parse --verify HEAD
which is done within the script "scripts/setlocalversion".)
config BUILD_SALT
string "Build ID Salt"
default ""
help
The build ID is used to link binaries and their debug info. Setting
this option will use the value in the calculation of the build id.
This is mostly useful for distributions which want to ensure the
build is unique between builds. It's safe to leave the default.
config HAVE_KERNEL_GZIP
bool
config HAVE_KERNEL_BZIP2
bool
config HAVE_KERNEL_LZMA
bool
config HAVE_KERNEL_XZ
bool
config HAVE_KERNEL_LZO
bool
config HAVE_KERNEL_LZ4
bool
config HAVE_KERNEL_ZSTD
bool
config HAVE_KERNEL_UNCOMPRESSED
bool
choice
prompt "Kernel compression mode"
default KERNEL_GZIP
depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_ZSTD || HAVE_KERNEL_UNCOMPRESSED
help
The linux kernel is a kind of self-extracting executable.
Several compression algorithms are available, which differ
in efficiency, compression and decompression speed.
Compression speed is only relevant when building a kernel.
Decompression speed is relevant at each boot.
If you have any problems with bzip2 or lzma compressed
kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older
version of this functionality (bzip2 only), for 2.4, was
supplied by Christian Ludwig)
High compression options are mostly useful for users, who
are low on disk space (embedded systems), but for whom ram
size matters less.
If in doubt, select 'gzip'
config KERNEL_GZIP
bool "Gzip"
depends on HAVE_KERNEL_GZIP
help
The old and tried gzip compression. It provides a good balance
between compression ratio and decompression speed.
config KERNEL_BZIP2
bool "Bzip2"
depends on HAVE_KERNEL_BZIP2
help
Its compression ratio and speed is intermediate.
Decompression speed is slowest among the choices. The kernel
size is about 10% smaller with bzip2, in comparison to gzip.
Bzip2 uses a large amount of memory. For modern kernels you
will need at least 8MB RAM or more for booting.
config KERNEL_LZMA
bool "LZMA"
depends on HAVE_KERNEL_LZMA
help
This compression algorithm's ratio is best. Decompression speed
is between gzip and bzip2. Compression is slowest.
The kernel size is about 33% smaller with LZMA in comparison to gzip.
config KERNEL_XZ
bool "XZ"
depends on HAVE_KERNEL_XZ
help
XZ uses the LZMA2 algorithm and instruction set specific
BCJ filters which can improve compression ratio of executable
code. The size of the kernel is about 30% smaller with XZ in
comparison to gzip. On architectures for which there is a BCJ
filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ
will create a few percent smaller kernel than plain LZMA.
The speed is about the same as with LZMA: The decompression
speed of XZ is better than that of bzip2 but worse than gzip
and LZO. Compression is slow.
config KERNEL_LZO
bool "LZO"
depends on HAVE_KERNEL_LZO
help
Its compression ratio is the poorest among the choices. The kernel
size is about 10% bigger than gzip; however its speed
(both compression and decompression) is the fastest.
config KERNEL_LZ4
bool "LZ4"
depends on HAVE_KERNEL_LZ4
help
LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
A preliminary version of LZ4 de/compression tool is available at
<https://code.google.com/p/lz4/>.
Its compression ratio is worse than LZO. The size of the kernel
is about 8% bigger than LZO. But the decompression speed is
faster than LZO.
config KERNEL_ZSTD
bool "ZSTD"
depends on HAVE_KERNEL_ZSTD
help
ZSTD is a compression algorithm targeting intermediate compression
with fast decompression speed. It will compress better than GZIP and
decompress around the same speed as LZO, but slower than LZ4. You
will need at least 192 KB RAM or more for booting. The zstd command
line tool is required for compression.
config KERNEL_UNCOMPRESSED
bool "None"
depends on HAVE_KERNEL_UNCOMPRESSED
help
Produce uncompressed kernel image. This option is usually not what
you want. It is useful for debugging the kernel in slow simulation
environments, where decompressing and moving the kernel is awfully
slow. This option allows early boot code to skip the decompressor
and jump right at uncompressed kernel image.
endchoice
config DEFAULT_INIT
string "Default init path"
default ""
help
This option determines the default init for the system if no init=
option is passed on the kernel command line. If the requested path is
not present, we will still then move on to attempting further
locations (e.g. /sbin/init, etc). If this is empty, we will just use
the fallback list when init= is not passed.
config DEFAULT_HOSTNAME
string "Default hostname"
default "(none)"
help
This option determines the default system hostname before userspace
calls sethostname(2). The kernel traditionally uses "(none)" here,
but you may wish to use a different default here to make a minimal
system more usable with less configuration.
config SYSVIPC
bool "System V IPC"
help
Inter Process Communication is a suite of library functions and
system calls which let processes (running programs) synchronize and
exchange information. It is generally considered to be a good thing,
and some programs won't run unless you say Y here. In particular, if
you want to run the DOS emulator dosemu under Linux (read the
DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
you'll need to say Y here.
You can find documentation about IPC with "info ipc" and also in
section 6.4 of the Linux Programmer's Guide, available from
<http://www.tldp.org/guides.html>.
config SYSVIPC_SYSCTL
bool
depends on SYSVIPC
depends on SYSCTL
default y
config SYSVIPC_COMPAT
def_bool y
depends on COMPAT && SYSVIPC
config POSIX_MQUEUE
bool "POSIX Message Queues"
depends on NET
help
POSIX variant of message queues is a part of IPC. In POSIX message
queues every message has a priority which decides about succession
of receiving it by a process. If you want to compile and run
programs written e.g. for Solaris with use of its POSIX message
queues (functions mq_*) say Y here.
POSIX message queues are visible as a filesystem called 'mqueue'
and can be mounted somewhere if you want to do filesystem
operations on message queues.
If unsure, say Y.
config POSIX_MQUEUE_SYSCTL
bool
depends on POSIX_MQUEUE
depends on SYSCTL
default y
config WATCH_QUEUE
bool "General notification queue"
default n
help
This is a general notification queue for the kernel to pass events to
userspace by splicing them into pipes. It can be used in conjunction
with watches for key/keyring change notifications and device
notifications.
See Documentation/core-api/watch_queue.rst
config CROSS_MEMORY_ATTACH
bool "Enable process_vm_readv/writev syscalls"
depends on MMU
default y
help
Enabling this option adds the system calls process_vm_readv and
process_vm_writev which allow a process with the correct privileges
to directly read from or write to another process' address space.
See the man page for more details.
config USELIB
bool "uselib syscall (for libc5 and earlier)"
default ALPHA || M68K || SPARC
help
This option enables the uselib syscall, a system call used in the
dynamic linker from libc5 and earlier. glibc does not use this
system call. If you intend to run programs built on libc5 or
earlier, you may need to enable this syscall. Current systems
running glibc can safely disable this.
config AUDIT
bool "Auditing support"
depends on NET
help
Enable auditing infrastructure that can be used with another
kernel subsystem, such as SELinux (which requires this for
logging of avc messages output). System call auditing is included
on architectures which support it.
config HAVE_ARCH_AUDITSYSCALL
bool
config AUDITSYSCALL
def_bool y
depends on AUDIT && HAVE_ARCH_AUDITSYSCALL
select FSNOTIFY
source "kernel/irq/Kconfig"
source "kernel/time/Kconfig"
source "kernel/bpf/Kconfig"
source "kernel/Kconfig.preempt"
menu "CPU/Task time and stats accounting"
config VIRT_CPU_ACCOUNTING
bool
choice
prompt "Cputime accounting"
default TICK_CPU_ACCOUNTING
# Kind of a stub config for the pure tick based cputime accounting
config TICK_CPU_ACCOUNTING
bool "Simple tick based cputime accounting"
depends on !S390 && !NO_HZ_FULL
help
This is the basic tick based cputime accounting that maintains
statistics about user, system and idle time spent on per jiffies
granularity.
If unsure, say Y.
config VIRT_CPU_ACCOUNTING_NATIVE
bool "Deterministic task and CPU time accounting"
depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL
select VIRT_CPU_ACCOUNTING
help
Select this option to enable more accurate task and CPU time
accounting. This is done by reading a CPU counter on each
kernel entry and exit and on transitions within the kernel
between system, softirq and hardirq state, so there is a
small performance impact. In the case of s390 or IBM POWER > 5,
this also enables accounting of stolen time on logically-partitioned
systems.
config VIRT_CPU_ACCOUNTING_GEN
bool "Full dynticks CPU time accounting"
depends on HAVE_CONTEXT_TRACKING_USER
depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
depends on GENERIC_CLOCKEVENTS
select VIRT_CPU_ACCOUNTING
select CONTEXT_TRACKING_USER
help
Select this option to enable task and CPU time accounting on full
dynticks systems. This accounting is implemented by watching every
kernel-user boundaries using the context tracking subsystem.
The accounting is thus performed at the expense of some significant
overhead.
For now this is only useful if you are working on the full
dynticks subsystem development.
If unsure, say N.
endchoice
config IRQ_TIME_ACCOUNTING
bool "Fine granularity task level IRQ time accounting"
depends on HAVE_IRQ_TIME_ACCOUNTING && !VIRT_CPU_ACCOUNTING_NATIVE
help
Select this option to enable fine granularity task irq time
accounting. This is done by reading a timestamp on each
transitions between softirq and hardirq state, so there can be a
small performance impact.
If in doubt, say N here.
config HAVE_SCHED_AVG_IRQ
def_bool y
depends on IRQ_TIME_ACCOUNTING || PARAVIRT_TIME_ACCOUNTING
depends on SMP
config SCHED_THERMAL_PRESSURE
bool
default y if ARM && ARM_CPU_TOPOLOGY
default y if ARM64
depends on SMP
depends on CPU_FREQ_THERMAL
help
Select this option to enable thermal pressure accounting in the
scheduler. Thermal pressure is the value conveyed to the scheduler
that reflects the reduction in CPU compute capacity resulted from
thermal throttling. Thermal throttling occurs when the performance of
a CPU is capped due to high operating temperatures.
If selected, the scheduler will be able to balance tasks accordingly,
i.e. put less load on throttled CPUs than on non/less throttled ones.
This requires the architecture to implement
arch_update_thermal_pressure() and arch_scale_thermal_pressure().
config BSD_PROCESS_ACCT
bool "BSD Process Accounting"
depends on MULTIUSER
help
If you say Y here, a user level program will be able to instruct the
kernel (via a special system call) to write process accounting
information to a file: whenever a process exits, information about
that process will be appended to the file by the kernel. The
information includes things such as creation time, owning user,
command name, memory usage, controlling terminal etc. (the complete
list is in the struct acct in <file:include/linux/acct.h>). It is
up to the user level program to do useful things with this
information. This is generally a good idea, so say Y.
config BSD_PROCESS_ACCT_V3
bool "BSD Process Accounting version 3 file format"
depends on BSD_PROCESS_ACCT
default n
help
If you say Y here, the process accounting information is written
in a new file format that also logs the process IDs of each
process and its parent. Note that this file format is incompatible
with previous v0/v1/v2 file formats, so you will need updated tools
for processing it. A preliminary version of these tools is available
at <http://www.gnu.org/software/acct/>.
config TASKSTATS
bool "Export task/process statistics through netlink"
depends on NET
depends on MULTIUSER
default n
help
Export selected statistics for tasks/processes through the
generic netlink interface. Unlike BSD process accounting, the
statistics are available during the lifetime of tasks/processes as
responses to commands. Like BSD accounting, they are sent to user
space on task exit.
Say N if unsure.
config MSM_SYSSTATS
tristate "Export system/task statistics through netlink"
depends on NET
depends on MULTIUSER
help
Export system and task statistics through generic netlink
interface. Userspace can retrieve these statistics via netlink
socket.
If unsure, say N
config MSM_SYSSTATS_STUB_NONEXPORTED_SYMBOLS
bool "Stub out non-exported core-kernel symbols"
depends on MSM_SYSSTATS
help
Stub out is_system_dmabufheap(), vmalloc_nr_pages() and si_swapinfo().
Enabling this option will make the swap_used, swap_total and
vmalloc_total fields of struct sysstats_mem 0, and will make the
unreclaimable field either 0, or make it only include the KGSL memory.
If unsure, say N.
config TASK_DELAY_ACCT
bool "Enable per-task delay accounting"
depends on TASKSTATS
select SCHED_INFO
help
Collect information on time spent by a task waiting for system
resources like cpu, synchronous block I/O completion and swapping
in pages. Such statistics can help in setting a task's priorities
relative to other tasks for cpu, io, rss limits etc.
Say N if unsure.
config TASK_XACCT
bool "Enable extended accounting over taskstats"
depends on TASKSTATS
help
Collect extended task accounting data and send the data
to userland for processing over the taskstats interface.
Say N if unsure.
config TASK_IO_ACCOUNTING
bool "Enable per-task storage I/O accounting"
depends on TASK_XACCT
help
Collect information on the number of bytes of storage I/O which this
task has caused.
Say N if unsure.
config PSI
bool "Pressure stall information tracking"
select KERNFS
help
Collect metrics that indicate how overcommitted the CPU, memory,
and IO capacity are in the system.
If you say Y here, the kernel will create /proc/pressure/ with the
pressure statistics files cpu, memory, and io. These will indicate
the share of walltime in which some or all tasks in the system are
delayed due to contention of the respective resource.
In kernels with cgroup support, cgroups (cgroup2 only) will
have cpu.pressure, memory.pressure, and io.pressure files,
which aggregate pressure stalls for the grouped tasks only.
For more details see Documentation/accounting/psi.rst.
Say N if unsure.
config PSI_DEFAULT_DISABLED
bool "Require boot parameter to enable pressure stall information tracking"
default n
depends on PSI
help
If set, pressure stall information tracking will be disabled
per default but can be enabled through passing psi=1 on the
kernel commandline during boot.
This feature adds some code to the task wakeup and sleep
paths of the scheduler. The overhead is too low to affect
common scheduling-intense workloads in practice (such as
webservers, memcache), but it does show up in artificial
scheduler stress tests, such as hackbench.
If you are paranoid and not sure what the kernel will be
used for, say Y.
Say N if unsure.
endmenu # "CPU/Task time and stats accounting"
config CPU_ISOLATION
bool "CPU isolation"
depends on SMP || COMPILE_TEST
default y
help
Make sure that CPUs running critical tasks are not disturbed by
any source of "noise" such as unbound workqueues, timers, kthreads...
Unbound jobs get offloaded to housekeeping CPUs. This is driven by
the "isolcpus=" boot parameter.
Say Y if unsure.
source "kernel/rcu/Kconfig"
config BUILD_BIN2C
bool
default n
config IKCONFIG
tristate "Kernel .config support"
help
This option enables the complete Linux kernel ".config" file
contents to be saved in the kernel. It provides documentation
of which kernel options are used in a running kernel or in an
on-disk kernel. This information can be extracted from the kernel
image file with the script scripts/extract-ikconfig and used as
input to rebuild the current kernel or to build another kernel.
It can also be extracted from a running kernel by reading
/proc/config.gz if enabled (below).
config IKCONFIG_PROC
bool "Enable access to .config through /proc/config.gz"
depends on IKCONFIG && PROC_FS
help
This option enables access to the kernel configuration file
through /proc/config.gz.
config IKHEADERS
tristate "Enable kernel headers through /sys/kernel/kheaders.tar.xz"
depends on SYSFS
help
This option enables access to the in-kernel headers that are generated during
the build process. These can be used to build eBPF tracing programs,
or similar programs. If you build the headers as a module, a module called
kheaders.ko is built which can be loaded on-demand to get access to headers.
config LOG_BUF_SHIFT
int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
range 12 25
default 17
depends on PRINTK
help
Select the minimal kernel log buffer size as a power of 2.
The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
parameter, see below. Any higher size also might be forced
by "log_buf_len" boot parameter.
Examples:
17 => 128 KB
16 => 64 KB
15 => 32 KB
14 => 16 KB
13 => 8 KB
12 => 4 KB
config LOG_CPU_MAX_BUF_SHIFT
int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
depends on SMP
range 0 21
default 12 if !BASE_SMALL
default 0 if BASE_SMALL
depends on PRINTK
help
This option allows to increase the default ring buffer size
according to the number of CPUs. The value defines the contribution
of each CPU as a power of 2. The used space is typically only few
lines however it might be much more when problems are reported,
e.g. backtraces.
The increased size means that a new buffer has to be allocated and
the original static one is unused. It makes sense only on systems
with more CPUs. Therefore this value is used only when the sum of
contributions is greater than the half of the default kernel ring
buffer as defined by LOG_BUF_SHIFT. The default values are set
so that more than 16 CPUs are needed to trigger the allocation.
Also this option is ignored when "log_buf_len" kernel parameter is
used as it forces an exact (power of two) size of the ring buffer.
The number of possible CPUs is used for this computation ignoring
hotplugging making the computation optimal for the worst case
scenario while allowing a simple algorithm to be used from bootup.
Examples shift values and their meaning:
17 => 128 KB for each CPU
16 => 64 KB for each CPU
15 => 32 KB for each CPU
14 => 16 KB for each CPU
13 => 8 KB for each CPU
12 => 4 KB for each CPU
config PRINTK_SAFE_LOG_BUF_SHIFT
int "Temporary per-CPU printk log buffer size (12 => 4KB, 13 => 8KB)"
range 10 21
default 13
depends on PRINTK
help
Select the size of an alternate printk per-CPU buffer where messages
printed from usafe contexts are temporary stored. One example would
be NMI messages, another one - printk recursion. The messages are
copied to the main log buffer in a safe context to avoid a deadlock.
The value defines the size as a power of 2.
Those messages are rare and limited. The largest one is when
a backtrace is printed. It usually fits into 4KB. Select
8KB if you want to be on the safe side.
Examples:
17 => 128 KB for each CPU
16 => 64 KB for each CPU
15 => 32 KB for each CPU
14 => 16 KB for each CPU
13 => 8 KB for each CPU
12 => 4 KB for each CPU
config PRINTK_INDEX
bool "Printk indexing debugfs interface"
depends on PRINTK && DEBUG_FS
help
Add support for indexing of all printk formats known at compile time
at <debugfs>/printk/index/<module>.
This can be used as part of maintaining daemons which monitor
/dev/kmsg, as it permits auditing the printk formats present in a
kernel, allowing detection of cases where monitored printks are
changed or no longer present.
There is no additional runtime cost to printk with this enabled.
#
# Architectures with an unreliable sched_clock() should select this:
#
config HAVE_UNSTABLE_SCHED_CLOCK
bool
config GENERIC_SCHED_CLOCK
bool
menu "Scheduler features"
config UCLAMP_TASK
bool "Enable utilization clamping for RT/FAIR tasks"
depends on CPU_FREQ_GOV_SCHEDUTIL
help
This feature enables the scheduler to track the clamped utilization
of each CPU based on RUNNABLE tasks scheduled on that CPU.
With this option, the user can specify the min and max CPU
utilization allowed for RUNNABLE tasks. The max utilization defines
the maximum frequency a task should use while the min utilization
defines the minimum frequency it should use.
Both min and max utilization clamp values are hints to the scheduler,
aiming at improving its frequency selection policy, but they do not
enforce or grant any specific bandwidth for tasks.
If in doubt, say N.
config UCLAMP_BUCKETS_COUNT
int "Number of supported utilization clamp buckets"
range 5 20
default 5
depends on UCLAMP_TASK
help
Defines the number of clamp buckets to use. The range of each bucket
will be SCHED_CAPACITY_SCALE/UCLAMP_BUCKETS_COUNT. The higher the
number of clamp buckets the finer their granularity and the higher
the precision of clamping aggregation and tracking at run-time.
For example, with the minimum configuration value we will have 5
clamp buckets tracking 20% utilization each. A 25% boosted tasks will
be refcounted in the [20..39]% bucket and will set the bucket clamp
effective value to 25%.
If a second 30% boosted task should be co-scheduled on the same CPU,
that task will be refcounted in the same bucket of the first task and
it will boost the bucket clamp effective value to 30%.
The clamp effective value of a bucket is reset to its nominal value
(20% in the example above) when there are no more tasks refcounted in
that bucket.
An additional boost/capping margin can be added to some tasks. In the
example above the 25% task will be boosted to 30% until it exits the
CPU. If that should be considered not acceptable on certain systems,
it's always possible to reduce the margin by increasing the number of
clamp buckets to trade off used memory for run-time tracking
precision.
If in doubt, use the default value.
endmenu
#
# For architectures that want to enable the support for NUMA-affine scheduler
# balancing logic:
#
config ARCH_SUPPORTS_NUMA_BALANCING
bool
#
# For architectures that prefer to flush all TLBs after a number of pages
# are unmapped instead of sending one IPI per page to flush. The architecture
# must provide guarantees on what happens if a clean TLB cache entry is
# written after the unmap. Details are in mm/rmap.c near the check for
# should_defer_flush. The architecture should also consider if the full flush
# and the refill costs are offset by the savings of sending fewer IPIs.
config ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
bool
config CC_HAS_INT128
def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
config CC_IMPLICIT_FALLTHROUGH
string
default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5)
default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough)
# Currently, disable gcc-11+ array-bounds globally.
# It's still broken in gcc-13, so no upper bound yet.
config GCC11_NO_ARRAY_BOUNDS
def_bool y
config CC_NO_ARRAY_BOUNDS
bool
default y if CC_IS_GCC && GCC_VERSION >= 110000 && GCC11_NO_ARRAY_BOUNDS
#
# For architectures that know their GCC __int128 support is sound
#
config ARCH_SUPPORTS_INT128
bool
# For architectures that (ab)use NUMA to represent different memory regions
# all cpu-local but of different latencies, such as SuperH.
#
config ARCH_WANT_NUMA_VARIABLE_LOCALITY
bool
config NUMA_BALANCING
bool "Memory placement aware NUMA scheduler"
depends on ARCH_SUPPORTS_NUMA_BALANCING
depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
depends on SMP && NUMA && MIGRATION && !PREEMPT_RT
help
This option adds support for automatic NUMA aware memory/task placement.
The mechanism is quite primitive and is based on migrating memory when
it has references to the node the task is running on.
This system will be inactive on UMA systems.
config NUMA_BALANCING_DEFAULT_ENABLED
bool "Automatically enable NUMA aware memory/task placement"
default y
depends on NUMA_BALANCING
help
If set, automatic NUMA balancing will be enabled if running on a NUMA
machine.
menuconfig CGROUPS
bool "Control Group support"
select KERNFS
help
This option adds support for grouping sets of processes together, for
use with process control subsystems such as Cpusets, CFS, memory
controls or device isolation.
See
- Documentation/scheduler/sched-design-CFS.rst (CFS)
- Documentation/admin-guide/cgroup-v1/ (features for grouping, isolation
and resource control)
Say N if unsure.
if CGROUPS
config PAGE_COUNTER
bool
config CGROUP_FAVOR_DYNMODS
bool "Favor dynamic modification latency reduction by default"
help
This option enables the "favordynmods" mount option by default
which reduces the latencies of dynamic cgroup modifications such
as task migrations and controller on/offs at the cost of making
hot path operations such as forks and exits more expensive.
Say N if unsure.
config MEMCG
bool "Memory controller"
select PAGE_COUNTER
select EVENTFD
help
Provides control over the memory footprint of tasks in a cgroup.
config MEMCG_KMEM
bool
depends on MEMCG && !SLOB
default y
config BLK_CGROUP
bool "IO controller"
depends on BLOCK
default n
help
Generic block IO controller cgroup interface. This is the common
cgroup interface which should be used by various IO controlling
policies.
Currently, CFQ IO scheduler uses it to recognize task groups and
control disk bandwidth allocation (proportional time slice allocation)
to such task groups. It is also used by bio throttling logic in
block layer to implement upper limit in IO rates on a device.
This option only enables generic Block IO controller infrastructure.
One needs to also enable actual IO controlling logic/policy. For
enabling proportional weight division of disk bandwidth in CFQ, set
CONFIG_BFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
CONFIG_BLK_DEV_THROTTLING=y.
See Documentation/admin-guide/cgroup-v1/blkio-controller.rst for more information.
config CGROUP_WRITEBACK
bool
depends on MEMCG && BLK_CGROUP
default y
menuconfig CGROUP_SCHED
bool "CPU controller"
default n
help
This feature lets CPU scheduler recognize task groups and control CPU
bandwidth allocation to such task groups. It uses cgroups to group
tasks.
if CGROUP_SCHED
config FAIR_GROUP_SCHED
bool "Group scheduling for SCHED_OTHER"
depends on CGROUP_SCHED
default CGROUP_SCHED
config CFS_BANDWIDTH
bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
depends on FAIR_GROUP_SCHED
default n
help
This option allows users to define CPU bandwidth rates (limits) for
tasks running within the fair group scheduler. Groups with no limit
set are considered to be unconstrained and will run with no
restriction.
See Documentation/scheduler/sched-bwc.rst for more information.
config RT_GROUP_SCHED
bool "Group scheduling for SCHED_RR/FIFO"
depends on CGROUP_SCHED
default n
help
This feature lets you explicitly allocate real CPU bandwidth
to task groups. If enabled, it will also make it impossible to
schedule realtime tasks for non-root users until you allocate
realtime bandwidth for them.
See Documentation/scheduler/sched-rt-group.rst for more information.
endif #CGROUP_SCHED
config UCLAMP_TASK_GROUP
bool "Utilization clamping per group of tasks"
depends on CGROUP_SCHED
depends on UCLAMP_TASK
default n
help
This feature enables the scheduler to track the clamped utilization
of each CPU based on RUNNABLE tasks currently scheduled on that CPU.
When this option is enabled, the user can specify a min and max
CPU bandwidth which is allowed for each single task in a group.
The max bandwidth allows to clamp the maximum frequency a task
can use, while the min bandwidth allows to define a minimum
frequency a task will always use.
When task group based utilization clamping is enabled, an eventually
specified task-specific clamp value is constrained by the cgroup
specified clamp value. Both minimum and maximum task clamping cannot
be bigger than the corresponding clamping defined at task group level.
If in doubt, say N.
config CGROUP_PIDS
bool "PIDs controller"
help
Provides enforcement of process number limits in the scope of a
cgroup. Any attempt to fork more processes than is allowed in the
cgroup will fail. PIDs are fundamentally a global resource because it
is fairly trivial to reach PID exhaustion before you reach even a
conservative kmemcg limit. As a result, it is possible to grind a
system to halt without being limited by other cgroup policies. The
PIDs controller is designed to stop this from happening.
It should be noted that organisational operations (such as attaching
to a cgroup hierarchy) will *not* be blocked by the PIDs controller,
since the PIDs limit only affects a process's ability to fork, not to
attach to a cgroup.
config CGROUP_RDMA
bool "RDMA controller"
help
Provides enforcement of RDMA resources defined by IB stack.
It is fairly easy for consumers to exhaust RDMA resources, which
can result into resource unavailability to other consumers.
RDMA controller is designed to stop this from happening.
Attaching processes with active RDMA resources to the cgroup
hierarchy is allowed even if can cross the hierarchy's limit.
config CGROUP_FREEZER
bool "Freezer controller"
help
Provides a way to freeze and unfreeze all tasks in a
cgroup.
This option affects the ORIGINAL cgroup interface. The cgroup2 memory
controller includes important in-kernel memory consumers per default.
If you're using cgroup2, say N.
config CGROUP_HUGETLB
bool "HugeTLB controller"
depends on HUGETLB_PAGE
select PAGE_COUNTER
default n
help
Provides a cgroup controller for HugeTLB pages.
When you enable this, you can put a per cgroup limit on HugeTLB usage.
The limit is enforced during page fault. Since HugeTLB doesn't
support page reclaim, enforcing the limit at page fault time implies
that, the application will get SIGBUS signal if it tries to access
HugeTLB pages beyond its limit. This requires the application to know
beforehand how much HugeTLB pages it would require for its use. The
control group is tracked in the third page lru pointer. This means
that we cannot use the controller with huge page less than 3 pages.
config CPUSETS
bool "Cpuset controller"
depends on SMP
help
This option will let you create and manage CPUSETs which
allow dynamically partitioning a system into sets of CPUs and
Memory Nodes and assigning tasks to run only within those sets.
This is primarily useful on large SMP or NUMA systems.
Say N if unsure.
config PROC_PID_CPUSET
bool "Include legacy /proc/<pid>/cpuset file"
depends on CPUSETS
default y
config CGROUP_DEVICE
bool "Device controller"
help
Provides a cgroup controller implementing whitelists for
devices which a process in the cgroup can mknod or open.
config CGROUP_CPUACCT
bool "Simple CPU accounting controller"
help
Provides a simple controller for monitoring the
total CPU consumed by the tasks in a cgroup.
config CGROUP_PERF
bool "Perf controller"
depends on PERF_EVENTS
help
This option extends the perf per-cpu mode to restrict monitoring
to threads which belong to the cgroup specified and run on the
designated cpu. Or this can be used to have cgroup ID in samples
so that it can monitor performance events among cgroups.
Say N if unsure.
config CGROUP_BPF
bool "Support for eBPF programs attached to cgroups"
depends on BPF_SYSCALL
select SOCK_CGROUP_DATA
help
Allow attaching eBPF programs to a cgroup using the bpf(2)
syscall command BPF_PROG_ATTACH.
In which context these programs are accessed depends on the type
of attachment. For instance, programs that are attached using
BPF_CGROUP_INET_INGRESS will be executed on the ingress path of
inet sockets.
config CGROUP_MISC
bool "Misc resource controller"
default n
help
Provides a controller for miscellaneous resources on a host.
Miscellaneous scalar resources are the resources on the host system
which cannot be abstracted like the other cgroups. This controller
tracks and limits the miscellaneous resources used by a process
attached to a cgroup hierarchy.
For more information, please check misc cgroup section in
/Documentation/admin-guide/cgroup-v2.rst.
config CGROUP_DEBUG
bool "Debug controller"
default n
depends on DEBUG_KERNEL
help
This option enables a simple controller that exports
debugging information about the cgroups framework. This
controller is for control cgroup debugging only. Its
interfaces are not stable.
Say N.
config SOCK_CGROUP_DATA
bool
default n
endif # CGROUPS
menuconfig NAMESPACES
bool "Namespaces support" if EXPERT
depends on MULTIUSER
default !EXPERT
help
Provides the way to make tasks work with different objects using
the same id. For example same IPC id may refer to different objects
or same user id or pid may refer to different tasks when used in
different namespaces.
if NAMESPACES
config UTS_NS
bool "UTS namespace"
default y
help
In this namespace tasks see different info provided with the
uname() system call
config TIME_NS
bool "TIME namespace"
depends on GENERIC_VDSO_TIME_NS
default y
help
In this namespace boottime and monotonic clocks can be set.
The time will keep going with the same pace.
config IPC_NS
bool "IPC namespace"
depends on (SYSVIPC || POSIX_MQUEUE)
default y
help
In this namespace tasks work with IPC ids which correspond to
different IPC objects in different namespaces.
config USER_NS
bool "User namespace"
default n
help
This allows containers, i.e. vservers, to use user namespaces
to provide different user info for different servers.
When user namespaces are enabled in the kernel it is
recommended that the MEMCG option also be enabled and that
user-space use the memory control groups to limit the amount
of memory a memory unprivileged users can use.
If unsure, say N.
config PID_NS
bool "PID Namespaces"
default y
help
Support process id namespaces. This allows having multiple
processes with the same pid as long as they are in different
pid namespaces. This is a building block of containers.
config NET_NS
bool "Network namespace"
depends on NET
default y
help
Allow user space to create what appear to be multiple instances
of the network stack.
endif # NAMESPACES
config CHECKPOINT_RESTORE
bool "Checkpoint/restore support"
depends on PROC_FS
select PROC_CHILDREN
select KCMP
default n
help
Enables additional kernel features in a sake of checkpoint/restore.
In particular it adds auxiliary prctl codes to setup process text,
data and heap segment sizes, and a few additional /proc filesystem
entries.
If unsure, say N here.
config SCHED_AUTOGROUP
bool "Automatic process group scheduling"
select CGROUPS
select CGROUP_SCHED
select FAIR_GROUP_SCHED
help
This option optimizes the scheduler for common desktop workloads by
automatically creating and populating task groups. This separation
of workloads isolates aggressive CPU burners (like build jobs) from
desktop applications. Task group autogeneration is currently based
upon task session.
config RT_SOFTIRQ_AWARE_SCHED
bool "Improve RT scheduling during long softirq execution"
depends on SMP && !PREEMPT_RT
default n
help
Enable an optimization which tries to avoid placing RT tasks on CPUs
occupied by nonpreemptible tasks, such as a long softirq or CPUs
which may soon block preemptions, such as a CPU running a ksoftirq
thread which handles slow softirqs.
config SYSFS_DEPRECATED
bool "Enable deprecated sysfs features to support old userspace tools"
depends on SYSFS
default n
help
This option adds code that switches the layout of the "block" class
devices, to not show up in /sys/class/block/, but only in
/sys/block/.
This switch is only active when the sysfs.deprecated=1 boot option is
passed or the SYSFS_DEPRECATED_V2 option is set.
This option allows new kernels to run on old distributions and tools,
which might get confused by /sys/class/block/. Since 2007/2008 all
major distributions and tools handle this just fine.
Recent distributions and userspace tools after 2009/2010 depend on
the existence of /sys/class/block/, and will not work with this
option enabled.
Only if you are using a new kernel on an old distribution, you might
need to say Y here.
config SYSFS_DEPRECATED_V2
bool "Enable deprecated sysfs features by default"
default n
depends on SYSFS
depends on SYSFS_DEPRECATED
help
Enable deprecated sysfs by default.
See the CONFIG_SYSFS_DEPRECATED option for more details about this
option.
Only if you are using a new kernel on an old distribution, you might
need to say Y here. Even then, odds are you would not need it
enabled, you can always pass the boot option if absolutely necessary.
config RELAY
bool "Kernel->user space relay support (formerly relayfs)"
select IRQ_WORK
help
This option enables support for relay interface support in
certain file systems (such as debugfs).
It is designed to provide an efficient mechanism for tools and
facilities to relay large amounts of data from kernel space to
user space.
If unsure, say N.
config BLK_DEV_INITRD
bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
help
The initial RAM filesystem is a ramfs which is loaded by the
boot loader (loadlin or lilo) and that is mounted as root
before the normal boot procedure. It is typically used to
load modules needed to mount the "real" root file system,
etc. See <file:Documentation/admin-guide/initrd.rst> for details.
If RAM disk support (BLK_DEV_RAM) is also included, this
also enables initial RAM disk (initrd) support and adds
15 Kbytes (more on some other architectures) to the kernel size.
If unsure say Y.
if BLK_DEV_INITRD
source "usr/Kconfig"
endif
config BOOT_CONFIG
bool "Boot config support"
select BLK_DEV_INITRD if !BOOT_CONFIG_EMBED
help
Extra boot config allows system admin to pass a config file as
complemental extension of kernel cmdline when booting.
The boot config file must be attached at the end of initramfs
with checksum, size and magic word.
See <file:Documentation/admin-guide/bootconfig.rst> for details.
If unsure, say Y.
config BOOT_CONFIG_EMBED
bool "Embed bootconfig file in the kernel"
depends on BOOT_CONFIG
help
Embed a bootconfig file given by BOOT_CONFIG_EMBED_FILE in the
kernel. Usually, the bootconfig file is loaded with the initrd
image. But if the system doesn't support initrd, this option will
help you by embedding a bootconfig file while building the kernel.
If unsure, say N.
config BOOT_CONFIG_EMBED_FILE
string "Embedded bootconfig file path"
depends on BOOT_CONFIG_EMBED
help
Specify a bootconfig file which will be embedded to the kernel.
This bootconfig will be used if there is no initrd or no other
bootconfig in the initrd.
config INITRAMFS_PRESERVE_MTIME
bool "Preserve cpio archive mtimes in initramfs"
default y
help
Each entry in an initramfs cpio archive carries an mtime value. When
enabled, extracted cpio items take this mtime, with directory mtime
setting deferred until after creation of any child entries.
If unsure, say Y.
choice
prompt "Compiler optimization level"
default CC_OPTIMIZE_FOR_PERFORMANCE
config CC_OPTIMIZE_FOR_PERFORMANCE
bool "Optimize for performance (-O2)"
help
This is the default optimization level for the kernel, building
with the "-O2" compiler flag for best performance and most
helpful compile-time warnings.
config CC_OPTIMIZE_FOR_SIZE
bool "Optimize for size (-Os)"
help
Choosing this option will pass "-Os" to your compiler resulting
in a smaller kernel.
endchoice
config HAVE_LD_DEAD_CODE_DATA_ELIMINATION
bool
help
This requires that the arch annotates or otherwise protects
its external entry points from being discarded. Linker scripts
must also merge .text.*, .data.*, and .bss.* correctly into
output sections. Care must be taken not to pull in unrelated
sections (e.g., '.text.init'). Typically '.' in section names
is used to distinguish them from label names / C identifiers.
config LD_DEAD_CODE_DATA_ELIMINATION
bool "Dead code and data elimination (EXPERIMENTAL)"
depends on HAVE_LD_DEAD_CODE_DATA_ELIMINATION
depends on EXPERT
depends on $(cc-option,-ffunction-sections -fdata-sections)
depends on $(ld-option,--gc-sections)
help
Enable this if you want to do dead code and data elimination with
the linker by compiling with -ffunction-sections -fdata-sections,
and linking with --gc-sections.
This can reduce on disk and in-memory size of the kernel
code and static data, particularly for small configs and
on small systems. This has the possibility of introducing
silently broken kernel if the required annotations are not
present. This option is not well tested yet, so use at your
own risk.
config LD_ORPHAN_WARN
def_bool y
depends on ARCH_WANT_LD_ORPHAN_WARN
depends on $(ld-option,--orphan-handling=warn)
config SYSCTL
bool
config HAVE_UID16
bool
config SYSCTL_EXCEPTION_TRACE
bool
help
Enable support for /proc/sys/debug/exception-trace.
config SYSCTL_ARCH_UNALIGN_NO_WARN
bool
help
Enable support for /proc/sys/kernel/ignore-unaligned-usertrap
Allows arch to define/use @no_unaligned_warning to possibly warn
about unaligned access emulation going on under the hood.
config SYSCTL_ARCH_UNALIGN_ALLOW
bool
help
Enable support for /proc/sys/kernel/unaligned-trap
Allows arches to define/use @unaligned_enabled to runtime toggle
the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference
config HAVE_PCSPKR_PLATFORM
bool
# interpreter that classic socket filters depend on
config BPF
bool
select CRYPTO_LIB_SHA1
menuconfig EXPERT
bool "Configure standard kernel features (expert users)"
# Unhide debug options, to make the on-by-default options visible
select DEBUG_KERNEL
help
This option allows certain base kernel options and settings
to be disabled or tweaked. This is for specialized
environments which can tolerate a "non-standard" kernel.
Only use this if you really know what you are doing.
config UID16
bool "Enable 16-bit UID system calls" if EXPERT
depends on HAVE_UID16 && MULTIUSER
default y
help
This enables the legacy 16-bit UID syscall wrappers.
config MULTIUSER
bool "Multiple users, groups and capabilities support" if EXPERT
default y
help
This option enables support for non-root users, groups and
capabilities.
If you say N here, all processes will run with UID 0, GID 0, and all
possible capabilities. Saying N here also compiles out support for
system calls related to UIDs, GIDs, and capabilities, such as setuid,
setgid, and capset.
If unsure, say Y here.
config SGETMASK_SYSCALL
bool "sgetmask/ssetmask syscalls support" if EXPERT
def_bool PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
help
sys_sgetmask and sys_ssetmask are obsolete system calls
no longer supported in libc but still enabled by default in some
architectures.
If unsure, leave the default option here.
config SYSFS_SYSCALL
bool "Sysfs syscall support" if EXPERT
default y
help
sys_sysfs is an obsolete system call no longer supported in libc.
Note that disabling this option is more secure but might break
compatibility with some systems.
If unsure say Y here.
config FHANDLE
bool "open by fhandle syscalls" if EXPERT
select EXPORTFS
default y
help
If you say Y here, a user level program will be able to map
file names to handle and then later use the handle for
different file system operations. This is useful in implementing
userspace file servers, which now track files using handles instead
of names. The handle would remain the same even if file names
get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2)
syscalls.
config POSIX_TIMERS
bool "Posix Clocks & timers" if EXPERT
default y
help
This includes native support for POSIX timers to the kernel.
Some embedded systems have no use for them and therefore they
can be configured out to reduce the size of the kernel image.
When this option is disabled, the following syscalls won't be
available: timer_create, timer_gettime: timer_getoverrun,
timer_settime, timer_delete, clock_adjtime, getitimer,
setitimer, alarm. Furthermore, the clock_settime, clock_gettime,
clock_getres and clock_nanosleep syscalls will be limited to
CLOCK_REALTIME, CLOCK_MONOTONIC and CLOCK_BOOTTIME only.
If unsure say y.
config PRINTK
default y
bool "Enable support for printk" if EXPERT
select IRQ_WORK
help
This option enables normal printk support. Removing it
eliminates most of the message strings from the kernel image
and makes the kernel more or less silent. As this makes it
very difficult to diagnose system problems, saying N here is
strongly discouraged.
config BUG
bool "BUG() support" if EXPERT
default y
help
Disabling this option eliminates support for BUG and WARN, reducing
the size of your kernel image and potentially quietly ignoring
numerous fatal conditions. You should only consider disabling this
option for embedded systems with no facilities for reporting errors.
Just say Y.
config ELF_CORE
depends on COREDUMP
default y
bool "Enable ELF core dumps" if EXPERT
help
Enable support for generating core dumps. Disabling saves about 4k.
config PCSPKR_PLATFORM
bool "Enable PC-Speaker support" if EXPERT
depends on HAVE_PCSPKR_PLATFORM
select I8253_LOCK
default y
help
This option allows to disable the internal PC-Speaker
support, saving some memory.
config BASE_FULL
default y
bool "Enable full-sized data structures for core" if EXPERT
help
Disabling this option reduces the size of miscellaneous core
kernel data structures. This saves memory on small machines,
but may reduce performance.
config FUTEX
bool "Enable futex support" if EXPERT
depends on !(SPARC32 && SMP)
default y
imply RT_MUTEXES
help
Disabling this option will cause the kernel to be built without
support for "fast userspace mutexes". The resulting kernel may not
run glibc-based applications correctly.
config FUTEX_PI
bool
depends on FUTEX && RT_MUTEXES
default y
config EPOLL
bool "Enable eventpoll support" if EXPERT
default y
help
Disabling this option will cause the kernel to be built without
support for epoll family of system calls.
config SIGNALFD
bool "Enable signalfd() system call" if EXPERT
default y
help
Enable the signalfd() system call that allows to receive signals
on a file descriptor.
If unsure, say Y.
config TIMERFD
bool "Enable timerfd() system call" if EXPERT
default y
help
Enable the timerfd() system call that allows to receive timer
events on a file descriptor.
If unsure, say Y.
config EVENTFD
bool "Enable eventfd() system call" if EXPERT
default y
help
Enable the eventfd() system call that allows to receive both
kernel notification (ie. KAIO) or userspace notifications.
If unsure, say Y.
config SHMEM
bool "Use full shmem filesystem" if EXPERT
default y
depends on MMU
help
The shmem is an internal filesystem used to manage shared memory.
It is backed by swap and manages resource limits. It is also exported
to userspace as tmpfs if TMPFS is enabled. Disabling this
option replaces shmem and tmpfs with the much simpler ramfs code,
which may be appropriate on small systems without swap.
config AIO
bool "Enable AIO support" if EXPERT
default y
help
This option enables POSIX asynchronous I/O which may by used
by some high performance threaded applications. Disabling
this option saves about 7k.
config IO_URING
bool "Enable IO uring support" if EXPERT
select IO_WQ
default y
help
This option enables support for the io_uring interface, enabling
applications to submit and complete IO through submission and
completion rings that are shared between the kernel and application.
config ADVISE_SYSCALLS
bool "Enable madvise/fadvise syscalls" if EXPERT
default y
help
This option enables the madvise and fadvise syscalls, used by
applications to advise the kernel about their future memory or file
usage, improving performance. If building an embedded system where no
applications use these syscalls, you can disable this option to save
space.
config MEMBARRIER
bool "Enable membarrier() system call" if EXPERT
default y
help
Enable the membarrier() system call that allows issuing memory
barriers across all running threads, which can be used to distribute
the cost of user-space memory barriers asymmetrically by transforming
pairs of memory barriers into pairs consisting of membarrier() and a
compiler barrier.
If unsure, say Y.
config KALLSYMS
bool "Load all symbols for debugging/ksymoops" if EXPERT
default y
help
Say Y here to let the kernel print out symbolic crash information and
symbolic stack backtraces. This increases the size of the kernel
somewhat, as all symbols have to be loaded into the kernel image.
config KALLSYMS_ALL
bool "Include all symbols in kallsyms"
depends on DEBUG_KERNEL && KALLSYMS
help
Normally kallsyms only contains the symbols of functions for nicer
OOPS messages and backtraces (i.e., symbols from the text and inittext
sections). This is sufficient for most cases. And only if you want to
enable kernel live patching, or other less common use cases (e.g.,
when a debugger is used) all symbols are required (i.e., names of
variables from the data sections, etc).
This option makes sure that all symbols are loaded into the kernel
image (i.e., symbols from all sections) in cost of increased kernel
size (depending on the kernel configuration, it may be 300KiB or
something like this).
Say N unless you really need all symbols, or kernel live patching.
config KALLSYMS_ABSOLUTE_PERCPU
bool
depends on KALLSYMS
default X86_64 && SMP
config KALLSYMS_BASE_RELATIVE
bool
depends on KALLSYMS
default !IA64
help
Instead of emitting them as absolute values in the native word size,
emit the symbol references in the kallsyms table as 32-bit entries,
each containing a relative value in the range [base, base + U32_MAX]
or, when KALLSYMS_ABSOLUTE_PERCPU is in effect, each containing either
an absolute value in the range [0, S32_MAX] or a relative value in the
range [base, base + S32_MAX], where base is the lowest relative symbol
address encountered in the image.
On 64-bit builds, this reduces the size of the address table by 50%,
but more importantly, it results in entries whose values are build
time constants, and no relocation pass is required at runtime to fix
up the entries based on the runtime load address of the kernel.
# end of the "standard kernel features (expert users)" menu
# syscall, maps, verifier
config ARCH_HAS_MEMBARRIER_CALLBACKS
bool
config ARCH_HAS_MEMBARRIER_SYNC_CORE
bool
config KCMP
bool "Enable kcmp() system call" if EXPERT
help
Enable the kernel resource comparison system call. It provides
user-space with the ability to compare two processes to see if they
share a common resource, such as a file descriptor or even virtual
memory space.
If unsure, say N.
config RSEQ
bool "Enable rseq() system call" if EXPERT
default y
depends on HAVE_RSEQ
select MEMBARRIER
help
Enable the restartable sequences system call. It provides a
user-space cache for the current CPU number value, which
speeds up getting the current CPU number from user-space,
as well as an ABI to speed up user-space operations on
per-CPU data.
If unsure, say Y.
config DEBUG_RSEQ
default n
bool "Enabled debugging of rseq() system call" if EXPERT
depends on RSEQ && DEBUG_KERNEL
help
Enable extra debugging checks for the rseq system call.
If unsure, say N.
config EMBEDDED
bool "Embedded system"
select EXPERT
help
This option should be enabled if compiling the kernel for
an embedded system so certain expert options are available
for configuration.
config HAVE_PERF_EVENTS
bool
help
See tools/perf/design.txt for details.
config GUEST_PERF_EVENTS
bool
depends on HAVE_PERF_EVENTS
config PERF_USE_VMALLOC
bool
help
See tools/perf/design.txt for details
config PC104
bool "PC/104 support" if EXPERT
help
Expose PC/104 form factor device drivers and options available for
selection and configuration. Enable this option if your target
machine has a PC/104 bus.
menu "Kernel Performance Events And Counters"
config PERF_EVENTS
bool "Kernel performance events and counters"
default y if PROFILING
depends on HAVE_PERF_EVENTS
select IRQ_WORK
select SRCU
help
Enable kernel support for various performance events provided
by software and hardware.
Software events are supported either built-in or via the
use of generic tracepoints.
Most modern CPUs support performance events via performance
counter registers. These registers count the number of certain
types of hw events: such as instructions executed, cachemisses
suffered, or branches mis-predicted - without slowing down the
kernel or applications. These registers can also trigger interrupts
when a threshold number of events have passed - and can thus be
used to profile the code that runs on that CPU.
The Linux Performance Event subsystem provides an abstraction of
these software and hardware event capabilities, available via a
system call and used by the "perf" utility in tools/perf/. It
provides per task and per CPU counters, and it provides event
capabilities on top of those.
Say Y if unsure.
config DEBUG_PERF_USE_VMALLOC
default n
bool "Debug: use vmalloc to back perf mmap() buffers"
depends on PERF_EVENTS && DEBUG_KERNEL && !PPC
select PERF_USE_VMALLOC
help
Use vmalloc memory to back perf mmap() buffers.
Mostly useful for debugging the vmalloc code on platforms
that don't require it.
Say N if unsure.
endmenu
config SYSTEM_DATA_VERIFICATION
def_bool n
select SYSTEM_TRUSTED_KEYRING
select KEYS
select CRYPTO
select CRYPTO_RSA
select ASYMMETRIC_KEY_TYPE
select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
select ASN1
select OID_REGISTRY
select X509_CERTIFICATE_PARSER
select PKCS7_MESSAGE_PARSER
help
Provide PKCS#7 message verification using the contents of the system
trusted keyring to provide public keys. This then can be used for
module verification, kexec image verification and firmware blob
verification.
config PROFILING
bool "Profiling support"
help
Say Y here to enable the extended profiling support mechanisms used
by profilers.
config RUST
bool "Rust support"
depends on HAVE_RUST
depends on RUST_IS_AVAILABLE
depends on !MODVERSIONS
depends on !GCC_PLUGINS
depends on !RANDSTRUCT
depends on !DEBUG_INFO_BTF || PAHOLE_HAS_LANG_EXCLUDE
select CONSTRUCTORS
help
Enables Rust support in the kernel.
This allows other Rust-related options, like drivers written in Rust,
to be selected.
It is also required to be able to load external kernel modules
written in Rust.
See Documentation/rust/ for more information.
If unsure, say N.
config RUSTC_VERSION_TEXT
string
depends on RUST
default $(shell,command -v $(RUSTC) >/dev/null 2>&1 && $(RUSTC) --version || echo n)
config BINDGEN_VERSION_TEXT
string
depends on RUST
default $(shell,command -v $(BINDGEN) >/dev/null 2>&1 && $(BINDGEN) --version || echo n)
#
# Place an empty function call at each tracepoint site. Can be
# dynamically changed for a probe function.
#
config TRACEPOINTS
bool
endmenu # General setup
source "arch/Kconfig"
config RT_MUTEXES
bool
default y if PREEMPT_RT
config BASE_SMALL
int
default 0 if BASE_FULL
default 1 if !BASE_FULL
config MODULE_SIG_FORMAT
def_bool n
select SYSTEM_DATA_VERIFICATION
source "kernel/module/Kconfig"
config INIT_ALL_POSSIBLE
bool
help
Back when each arch used to define their own cpu_online_mask and
cpu_possible_mask, some of them chose to initialize cpu_possible_mask
with all 1s, and others with all 0s. When they were centralised,
it was better to provide this option than to break all the archs
and have several arch maintainers pursuing me down dark alleys.
source "block/Kconfig"
config PREEMPT_NOTIFIERS
bool
config PADATA
depends on SMP
bool
config ASN1
tristate
help
Build a simple ASN.1 grammar compiler that produces a bytecode output
that can be interpreted by the ASN.1 stream decoder and used to
inform it as to what tags are to be expected in a stream and what
functions to call on what tags.
source "kernel/Kconfig.locks"
config ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
bool
config ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
bool
# It may be useful for an architecture to override the definitions of the
# SYSCALL_DEFINE() and __SYSCALL_DEFINEx() macros in <linux/syscalls.h>
# and the COMPAT_ variants in <linux/compat.h>, in particular to use a
# different calling convention for syscalls. They can also override the
# macros for not-implemented syscalls in kernel/sys_ni.c and
# kernel/time/posix-stubs.c. All these overrides need to be available in
# <asm/syscall_wrapper.h>.
config ARCH_HAS_SYSCALL_WRAPPER
def_bool n
source "init/Kconfig.gki"
source "init/Kconfig.gki-debug"