This is the merge of the upstream LTS release of 5.15.78 into the android13-5.15 branch. It contains the following commits:c73b4619adANDROID: abi preservation for fscrypt change in 5.15.781960b1e610Merge 5.15.78 into android13-5.15-lts7048384c98Revert "net: macb: Specify PHY PM management done by MAC"845a2cc2e8Revert "perf: Fix missing SIGTRAPs"6f88ababa4Merge 5.15.77 into android13-5.15-lts92f701cae0Revert "net: phylink: add mac_managed_pm in phylink_config structure"8d9f3b2315Revert "arm64: errata: Remove AES hwcap for COMPAT tasks"eaa46dd972Merge 5.15.76 into android13-5.15-ltsd9d889009bANDROID: properly copy the scm_io_uring field in struct sk_buff16d4484281ANDROID: fix up struct sk_buf ABI breakage2d19e77e73Revert "bpf: Fix reference state management for synchronous callbacks"c18696c060Revert "tracing: Wake up ring buffer waiters on closing of the file"d122aaf804Revert "tracing: Add ioctl() to force ring buffer waiters to wake up"dfd3aa1729ANDROID: rename struct tcm_sock.cwnd_usage_seq to fix ABIc51f6b79ceANDROID: rename struct task_struct.in_eventfd to fix ABI85725fbe42Revert "ALSA: usb-audio: Register card at the last interface"8f38fb79b5Revert "ALSA: usb-audio: Fix last interface check for registration"3ebc180a96Revert "serial: 8250: Let drivers request full 16550A feature probing"f6d7d7caaaRevert "serial: 8250: Request full 16550A feature probing for OxSemi PCIe devices"d1096112e5Revert "usb: dwc3: core: Enable GUCTL1 bit 10 for fixing termination error after resume bug"3447743ef1Revert "serial: 8250: Toggle IER bits on only after irq has been set up"b049ff121cMerge 5.15.75 into android13-5.15-lts4ec71a9ec7ANDROID: cpu/hotplug: call perf event through function pointer509a32764eLinux 5.15.787038af4ce9wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker()b66617cc3cdrm/i915/sdvo: Setup DDC fully before output init73d52322c4drm/i915/sdvo: Filter out invalid outputs more sensibly2219b6aad3drm/rockchip: dsi: Force synchronous probedd955eb4e6drm/rockchip: dsi: Clean up 'usage_mode' when failing to attachcfa8a89af9cifs: fix regression in very old smb1 mounts3189de0ac3ext4,f2fs: fix readahead of verity dataa663e6ab17tee: Fix tee_shm_register() for kernel TEE driversd46db722a0KVM: x86: emulator: update the emulation mode after CR0 write942aec252bKVM: x86: emulator: update the emulation mode after rsm9df4bb7b38KVM: x86: emulator: introduce emulator_recalc_and_set_mode311f1e51a2KVM: x86: emulator: em_sysexit should update ctxt->mode37a03de2d0KVM: arm64: Fix bad dereference on MTE-enabled systems167dca5e21KVM: VMX: fully disable SGX if SECONDARY_EXEC_ENCLS_EXITING unavailable19c2b2ffbeKVM: x86: Mask off reserved bits in CPUID.8000001FH553fd40d3bKVM: x86: Mask off reserved bits in CPUID.80000001H006366b96cKVM: x86: Mask off reserved bits in CPUID.80000008Hfc796fd861KVM: x86: Mask off reserved bits in CPUID.8000001AHef7716398aKVM: x86: Mask off reserved bits in CPUID.80000006Ha88998446bx86/syscall: Include asm/ptrace.h in syscall_wrapper header999cff2b6cext4: fix BUG_ON() when directory entry has invalid rec_len0a43c015e9ext4: fix warning in 'ext4_da_release_space'ada82803a7parisc: Avoid printing the hardware path twice081ff43a77parisc: Export iosapic_serial_irq() symbol for serial port driver5daf985dd0parisc: Make 8250_gsc driver dependend on CONFIG_PARISC425fe99771perf/x86/intel: Fix pebs event constraints for SPR4613a45017perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[]7de3fe6a13perf/x86/intel: Fix pebs event constraints for ICL71d6c33fe2arm64: entry: avoid kprobe recursion52be536155efi: random: Use 'ACPI reclaim' memory for random seed83b5ec7ee8efi: random: reduce seed size to 32 bytes0417f70b85fuse: add file_modified() to fallocate2de8eec8afcapabilities: fix potential memleak on error path from vfs_getxattr_alloc()bd07f8067btracing/histogram: Update document for KEYS_MAX size27b4406f9ctools/nolibc/string: Fix memcmp() implementationb5074df412ring-buffer: Check for NULL cpu_buffer in ring_buffer_wake_waiters()85f3caa955kprobe: reverse kp->flags when arm_kprobe failedd1b6a8e341tracing: kprobe: Fix memory leak in test_gen_kprobe/kretprobe_cmd()828577e0batcp/udp: Make early_demux back namespacified.88561a6677ftrace: Fix use-after-free for dynamic ftrace_ops450d748070btrfs: fix type of parameter generation in btrfs_get_dentry007058eb82btrfs: fix tree mod log mishandling of reallocated nodes336fdd295cbtrfs: fix lost file sync on direct IO write with nowait and dsync iocbcff805b151fscrypt: fix keyring memory leak on mount failuree6f4fd85effscrypt: stop using keyrings subsystem for fscrypt_master_key3975affcf5af_unix: Fix memory leaks of the whole sk due to OOB skb.4302806dbfblock, bfq: protect 'bfqd->queued' by 'bfqd->lock'3e4697ffdfBluetooth: L2CAP: Fix attempting to access uninitialized memory81035e1201Bluetooth: L2CAP: Fix accepting connection request for invalid SPSMd78ccdce66i2c: piix4: Fix adapter not be removed in piix4_remove()c76ff8ae11arm64: dts: juno: Add thermal critical trip points7398435e61firmware: arm_scmi: Fix devres allocation device in virtio transport3653cdc21bfirmware: arm_scmi: Make Rx chan_setup fail on memory errorse514d67b23firmware: arm_scmi: Suppress the driver's bind attributes4e68c5da60block: Fix possible memory leak for rq_wb on add_disk failurebf822b6980arm64: dts: ls208xa: specify clock frequencies for the MDIO controllersf2329886e5arm64: dts: ls1088a: specify clock frequencies for the MDIO controllers33fcc55dbcarm64: dts: lx2160a: specify clock frequencies for the MDIO controllersf3429a1e49arm64: dts: imx8: correct clock orderde2a83186aARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offsetcb9ce8910aclk: qcom: Update the force mem core bit for GPU clocksbdc1182496efi/tpm: Pass correct address to memblock_reserve3a4d6f165ei2c: xiic: Add platform module alias62eea4014adrm/amdgpu: set vm_update_mode=0 as default for Sienna Cichlid in SRIOV case7a2547cac2HID: saitek: add madcatz variant of MMO7 mouse device ID931c97a54cscsi: core: Restrict legal sdev_state transitions via sysfsc50ec15725ACPI: APEI: Fix integer overflow in ghes_estatus_pool_init()8ecd1db58bmedia: v4l: subdev: Fail graciously when getting try data for NULL statef96ad391d0media: meson: vdec: fix possible refcount leak in vdec_probe()8b785cdcd3media: dvb-frontends/drxk: initialize err to 073dfb64213media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZEcbfa26936fmedia: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE647c12c47emedia: rkisp1: Zero v4l2_subdev_format fields in when validating linksabbeb8f727media: rkisp1: Use correct macro for gradient registers03b30e5a36media: rkisp1: Initialize color space on resizer sink and source padsd58b6b665cmedia: rkisp1: Don't pass the quantization to rkisp1_csm_config()0e501fd0f3s390/cio: fix out-of-bounds access on cio_ignore freec65cc56937s390/cio: derive cdev information only for IO-subchannelsc64be93f1es390/boot: add secure boot trailer1cdaca8f00s390/uaccess: add missing EX_TABLE entries to __clear_user()509cbbdec9mtd: parsers: bcm47xxpart: Fix halfblock reads5b8797e9dbmtd: parsers: bcm47xxpart: print correct offset on read error2f07635876fbdev: stifb: Fall back to cfb_fillrect() on 32-bit HCRX cards154934c74fvideo/fbdev/stifb: Implement the stifb_fillrect() functionb524b41806drm/msm/hdmi: fix IRQ lifetimec55dd62001drm/msm/hdmi: Remove spurious IRQF_ONESHOT flagd153d468c4vsock: fix possible infinite sleep in vsock_connectible_wait_data()0ed71af4d0ipv6: fix WARNING in ip6_route_net_exit_late()2b45d6d0c4net, neigh: Fix null-ptr-deref in neigh_table_clear()61defd6450net/smc: Fix possible leaked pernet namespace in smc_init()de88977427stmmac: dwmac-loongson: fix invalid mdio_node535b78739aibmvnic: Free rwi on reset success985a88bf0bnet: mdio: fix undefined behavior in bit shift for __mdiobus_registeraa16cac06bBluetooth: L2CAP: Fix memory leak in vhci_writea3a7b2ac64Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del()cf2719a21fBluetooth: virtio_bt: Use skb_put to set length8278a87bb1Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu42d20d5e24netfilter: ipset: enforce documented limit to prevent allocating huge memoryf46ea5fa33btrfs: fix ulist leaks in error paths of qgroup self tests222a3d5330btrfs: fix inode list leak during backref walking at find_parent_nodes()6ba3479f9ebtrfs: fix inode list leak during backref walking at resolve_indirect_refs()a80634f392isdn: mISDN: netjet: fix wrong check of device registration029d5b7688mISDN: fix possible memory leak in mISDN_register_device()3e2129c67drose: Fix NULL pointer dereference in rose_send_frame()06d7596d18ipvs: fix WARNING in ip_vs_app_net_cleanup()5ee2d6b726ipvs: fix WARNING in __ip_vs_cleanup_batch()33e7783bc0ipvs: use explicitly signed chars6044791b7bnetfilter: nf_tables: release flow rule object from commit path1ffe710041netfilter: nf_tables: netlink notifier might race to release objectsdcc79cf735net: tun: fix bugs for oversize packet when napi frags enabledfc4b50adb4net: sched: Fix use after free in red_enqueue()ab80025ea7ata: pata_legacy: fix pdc20230_set_piomode()dede9ba027net: fec: fix improper use of NETDEV_TX_BUSY5dfdac5e3fnfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send()7486f5c900nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send()3cba1f061bnfc: nxp-nci: Fix potential memory leak in nxp_nci_send()44bc1868a4nfc: fdp: Fix potential memory leak in fdp_nci_send()4bef9a89f2net: dsa: fall back to default tagger if we can't load the one from DT06f9e0b37fRDMA/qedr: clean up work queue on failure in qedr_alloc_resources()6b3d5dcb12RDMA/core: Fix null-ptr-deref in ib_core_cleanup()9f555b1584net: dsa: Fix possible memory leaks in dsa_loop_init()24641993a7nfs4: Fix kmemleak when allocate slot failed0797c85433NFSv4.2: Fixup CLONE dest file size for zero-length countd59722d088SUNRPC: Fix null-ptr-deref when xps sysfs alloc faileddea7ef05deNFSv4.1: We must always send RECLAIM_COMPLETE after a reboot7b1c2458deNFSv4.1: Handle RECLAIM_COMPLETE trunking errors4ec017e300NFSv4: Fix a potential state reclaim deadlocke3e53c5af5RDMA/hns: Disable local invalidate operation85ab79ac94RDMA/hns: Use hr_reg_xxx() instead of remaining roce_set_xxx()be16cc7abdRDMA/hns: Remove magic numberba95409d6bIB/hfi1: Correctly move list in sc_disable()484d969037RDMA/cma: Use output interface for net_dev checkf7d9de8a0dKVM: x86: Add compat handler for KVM_X86_SET_MSR_FILTERb7b66f13acKVM: x86: Copy filter arg outside kvm_vm_ioctl_set_msr_filter()0c60fa7f55KVM: x86: Protect the unused bits in MSR exiting flagsad8e4868ddHID: playstation: add initial DualSense Edge controller support3a44ae4afamm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page8576d7edeadrm/amd/display: explicitly disable psr_feature_enable appropriately058b3a11f7KVM: x86: Treat #DBs from the emulator as fault-like (code and DR7.GD=1)9ee32892c7KVM: x86: Trace re-injected exceptions0c9c1306d6serial: ar933x: Deassert Transmit Enable on ->rs485_config()21d65b3516scsi: lpfc: Rework MIB Rx Monitor debug info logicd70705e131scsi: lpfc: Adjust CMF total bytes and rxmonitor9ebc6e8ad1scsi: lpfc: Adjust bytes received vales during cmf timer interval793d8378b7Linux 5.15.771401e9336btcp/udp: Fix memory leak in ipv6_renew_options().b079d37752serial: Deassert Transmit Enable on probe in driver-specific way63f75fea3aserial: core: move RS485 configuration tasks from drivers into core0753069d44can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global FIFO receive17ff99e224can: rcar_canfd: fix channel specific IRQ handling for RZ/G2Laad798a0b3scsi: sd: Revert "scsi: sd: Remove a local variable"52c2329147arm64: Add AMPERE1 to the Spectre-BHB affected list5397ea6a08net: enetc: survive memory pressure without crashing885a454e97kcm: do not sense pfmemalloc status in kcm_sendpage()92b4c5c3fanet: do not sense pfmemalloc status in skb_append_pagefrags()ae1b08592enet/mlx5: Fix crash during sync firmware reset37ada47d01net/mlx5: Update fw fatal reporter state on PCI handlers successful recover9e6523d06anet/mlx5: Print more info on pci error handlersab3de780c1net/mlx5: Fix possible use-after-free in async command interface8bbff203e3net/mlx5e: Extend SKB room check to include PTP-SQee1c0ca1afnet/mlx5e: Do not increment ESN when updating IPsec ESN stateeefa97a7a0netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir failedc9589e18a6net: broadcom: bcm4908_enet: update TX stats after actual transmission9711616a49net: broadcom: bcm4908enet: remove redundant variable bytesb317d53680nh: fix scope used to find saddr when adding non gw nh2ad284ac88net: bcmsysport: Indicate MAC is in charge of PHY PMd1cfa71d5bnet: ehea: fix possible memory leak in ehea_register_port()588bdd7ee4openvswitch: switch from WARN to pr_warn9a1c1df925ALSA: aoa: Fix I2S device accountinge81d7826b8ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev()77a754fcfenet: ethernet: ave: Fix MAC to be in charge of PHY PMbc2518ec71net: fec: limit register access on i.MX6ULf710deeea7perf vendor events arm64: Fix incorrect Hisi hip08 L3 metricseb59cb2fabPM: domains: Fix handling of unavailable/disabled idle statesbde7c2acefnet: ksz884x: fix missing pci_disable_device() on error in pcidev_init()8927d90d56i40e: Fix flow-type by setting GL_HASH_INSET registersc39de3ae50i40e: Fix VF hang when reset is triggered on another VF250bf8ab78i40e: Fix ethtool rx-flow-hash setting for X722ad3f1d9bf1ipv6: ensure sane device mtu in tunnelse2ec5bb78cperf vendor events power10: Fix hv-24x7 metric eventsf9df388ed6media: vivid: set num_in/outputs to 0 if not supported4cc7d8d420media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced'491c0959f0media: v4l2-dv-timings: add sanity checks for blanking values0f83edbe4fmedia: vivid: dev->bitmap_cap wasn't freed in all cases5b1fb2a28dmedia: vivid: s_fbuf: add more sanity checks3436e56337PM: hibernate: Allow hybrid sleep to work with s2idle3cc8c4088fcan: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error patha3e09eff32can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path304a101616drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr()2fe6b24ce2net-memcg: avoid stalls when under memory pressure9b171fdcbftcp: fix indefinite deferral of RTO with SACK reneginga85d39f14atcp: fix a signed-integer-overflow bug in tcp_add_backlog()2437f3c5c6tcp: minor optimization in tcp_add_backlog()ef27df7591net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSYa1e18acb02net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed62086d1c46kcm: annotate data-races around kcm->rx_wait342d918cf9kcm: annotate data-races around kcm->rx_psock6bb23225bbatlantic: fix deadlock at aq_nic_stop4e2cbc1f0edrm/i915/dp: Reset frl trained flag before restarting FRL training3d92ab0865amd-xgbe: add the bit rate quirk for Molex cables75a6d1ebf8amd-xgbe: fix the SFP compliance codes check for DAC cables98bada8fa0x86/unwind/orc: Fix unreliable stack dump with gcov88e879c9f5nfc: virtual_ncidev: Fix memory leak in virtual_nci_send()18c60b383dnet: macb: Specify PHY PM management done by MAC95c22fc1e8net: hinic: fix the issue of double release MBOX callback of VF6016d96a6anet: hinic: fix the issue of CMDQ memory leakse6765fe8denet: hinic: fix memory leak when reading function table62aa78a0c3net: hinic: fix incorrect assignment issue in hinic_set_interrupt_cfg()1e0bee973enet: netsec: fix error handling in netsec_register_mdio()7a939503fctipc: fix a null-ptr-deref in tipc_topsrv_acceptc638b520baperf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap()4fdf6f978cALSA: ac97: fix possible memory leak in snd_ac97_dev_register()b688736903ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatileeca851572dmtd: rawnand: intel: Add missing of_node_put() in ebu_nand_probe()08c246c7dfarc: iounmap() arg is volatile739eac37ffsched/core: Fix comparison in sched_group_cookie_match()ca7b0a1028perf: Fix missing SIGTRAPseb77474a2aASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile9b6841ab70KVM: selftests: Fix number of pages for memory slot in memslot_modification_stress_test59de8738eddrm/msm: Fix return type of mdp4_lvds_connector_mode_valida560aeac2fmedia: atomisp: prevent integer overflow in sh_css_set_black_frame()32f93e4608media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation5a93a8288cnet: ieee802154: fix error return code in dgram_bind()138a13d8f5ethtool: eeprom: fix null-deref on genl_info in dump1c2b1d3bbammc: block: Remove error check of hw_reset on reset0b0d169723Revert "scsi: lpfc: SLI path split: Refactor lpfc_iocbq"7a0fce24deRevert "scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4"7a36c9de43Revert "scsi: lpfc: SLI path split: Refactor SCSI paths"eb8be2dbfbRevert "scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup()"065bf71a8aRevert "scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4()"97dc9076eaRevert "scsi: lpfc: Resolve some cleanup issues following SLI path refactoring"b32b766be4s390/pci: add missing EX_TABLE entries to __pcistg_mio_inuser()/__pcilg_mio_inuser()1ad7213fcfs390/futex: add missing EX_TABLE entry to __futex_atomic_op()ae9398e837perf auxtrace: Fix address filter symbol name match for modules14009ada57ARC: mm: fix leakage of memory allocated for PTEeb9ed3343cpinctrl: Ingenic: JZ4755 bug fixes94d2643df1kernfs: fix use-after-free in __kernfs_removef1204dfc4ccounter: microchip-tcb-capture: Handle Signal1 read and Synapse6fb0106c64mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus73e3901e70mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake1e8cd93ae5mmc: core: Fix kernel panic when remove non-standard SDIO card02e51e7cd1mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO4c365a0c21coresight: cti: Fix hang in cti_disable_hw()b32775e039drm/msm/dp: fix IRQ lifetimeb48949ab45drm/msm/hdmi: fix memory corruption with too many bridges9f035d1fb3drm/msm/dsi: fix memory corruption with too many bridges986a89b371drm/amdgpu: disallow gfxoff until GC IP blocks complete s2idle resumea2f0934e6bscsi: qla2xxx: Use transport-defined speed mask for supported_speeds2b1a3172eemac802154: Fix LQI recording46b4b1e11eexec: Copy oldsighand->action under spin-lock265b6fb780fs/binfmt_elf: Fix memory leak in load_elf_binary()24030742a7cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores3423a3417fcpufreq: intel_pstate: Read all MSRs on the target CPUcc6a724984fbdev: smscufx: Fix several use-after-free bugs1a8b22e3f3iio: adxl372: Fix unsafe buffer attributes2f08cad213iio: temperature: ltc2983: allocate iio channels once1bfe97f497iio: light: tsl2583: Fix module unloading569709540etools: iio: iio_utils: fix digit calculationc892a81c74xhci: Remove device endpoints from bandwidth list when freeing the devicedfacb5c7f0xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices64058af657xhci: Add quirk to reset host back to default state at shutdown022f21e850mtd: rawnand: marvell: Use correct logic for nand-keep-configf90897c0f6usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controllera0c54d5152usb: bdc: change state when port disconnectede0fd70ab48usb: dwc3: gadget: Don't set IMI for no_interruptad538aea64usb: dwc3: gadget: Stop processing more requests on IMIf2f53be617usb: gadget: uvc: fix sg handling during video encode80ff4ef777usb: gadget: uvc: fix sg handling in error case555011f6b2USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM311428871bALSA: rme9652: use explicitly signed charfa8b39c7edALSA: au88x0: use explicitly signed char8af82d330dALSA: usb-audio: Add quirks for M-Audio Fast Track C400/600259cb4dee1ALSA: Use del_timer_sync() before freeing timer33ddee2b95can: kvaser_usb: Fix possible completions during init_completion86da269c75can: j1939: transport: j1939_session_skb_drop_old(): spin_unlock_irqrestore() before kfree_skb()ead0495627NFSv4: Add an fattr allocation to _nfs4_discover_trunking()eb1fe9600bNFSv4: Fix free of uninitialized nfs4_label on referral lookup.4f5365f770Linux 5.15.7633fc9e26b7mm: /proc/pid/smaps_rollup: fix no vma's null-derefb9d8cbe90ammc: core: Add SD card quirk for broken discard0ee2f0567aMakefile.debug: re-enable debug info for .S files117825e9bbx86/Kconfig: Drop check for -mabi=ms for CONFIG_EFI_STUB0983205085ACPI: video: Force backlight native for more TongFang devices289b56715bperf: Skip and warn on unknown format 'configN' attrs9d912a3853mmc: sdhci-tegra: Use actual clock rate for SW tuning correction7aeda81191tracing: Do not free snapshot if tracer is on cmdline57252e7bd4tracing: Simplify conditional compilation code in tracing_set_tracer()20bc6d23f7ksmbd: fix incorrect handling of iterate_dir3c8cfcaa2dksmbd: handle smb2 query dir request for OutputBufferLength that is too small8754fa5dbcarm64: mte: move register initialization to Cea7be82fd7fs: dlm: fix invalid derefence of sb_lvbptr0365d6af75iommu/vt-d: Clean up si_domain in the init_dmars() error path5c95d0c9d0iommu/vt-d: Allow NVS regions in arch_rmrr_sanity_check()209740fd13net: phy: dp83822: disable MDI crossover status change interruptce1234573dnet: sched: fix race condition in qdisc_graft()91f8f5342bnet: hns: fix possible memory leak in hnae_ae_register()50c31fa952wwan_hwsim: fix possible memory leak in wwan_hwsim_dev_new()d2fc83a6b5sfc: include vport_id in filter spec hash and equal()c2e1e59d59net: sched: sfb: fix null pointer access issue when sfb_init() fails34f2a4eedcnet: sched: delete duplicate cleanup of backlog and qlen154f4c06d9net: sched: cake: fix null pointer access issue when cake_init() fails5efed7578dnvmet: fix workqueue MEM_RECLAIM flushing dependency2f2b84b020nvme-hwmon: kmalloc the NVME SMART log buffer66c56b2328nvme-hwmon: consistently ignore errors from nvme_hwmon_initd77f6908f9netfilter: nf_tables: relax NFTA_SET_ELEM_KEY_END set flags requirementsefa9dd7e67ionic: catch NULL pointer issue on reconfig35ece85866net: hsr: avoid possible NULL deref in skb_clone()e326df21dadm: remove unnecessary assignment statement in alloc_dev()847301f0eecifs: Fix xid leak in cifs_ses_add_channel()8905d13b9ecifs: Fix xid leak in cifs_flock()27cfd3afaacifs: Fix xid leak in cifs_copy_file_range()593d877c39cifs: Fix xid leak in cifs_create()a8df9d0428udp: Update reuse->has_conns under reuseport_lock.9749595febscsi: lpfc: Fix memory leak in lpfc_create_port()b9122e0e0enet: phylink: add mac_managed_pm in phylink_config structure412db9b06dnet: phy: dp83867: Extend RX strap quirk for SGMII mode5ce6130519net/atm: fix proc_mpc_write incorrect return value0eb17faedcsfc: Change VF mac via PF as first preference if available.0f58940ca3HID: magicmouse: Do not set BTN_MOUSE on double report94a171c982i40e: Fix DMA mappings leakdbc01c0a4etipc: fix an information leak in tipc_topsrv_kern_subscrb294cad6f0tipc: Fix recognition of trial period6161c364e3ACPI: extlog: Handle multiple records40e5fceddfdrm/vc4: Add module dependency on hdmi-codec6c5041a103btrfs: fix processing of delayed tree block refs during backref walkingaf67578d56btrfs: fix processing of delayed data refs during backref walkingc439cafce8x86/topology: Fix duplicated core ID within a packaged31f4bc225x86/topology: Fix multiple packages shown on a single-package systemfcc96e89b3media: venus: dec: Handle the case where find_format failsb22b4823a0media: mceusb: set timeout to at least timeout provided5265cc1202media: ipu3-imgu: Fix NULL pointer dereference in active selection access1e4e71f9e1KVM: arm64: vgic: Fix exit condition in scan_its_table()5bf2fda26akvm: Add support for arch compat vm ioctls112a005d1dmm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages2d508b4e65drm/amdgpu: fix sdma doorbell init ordering on APUsb5606e3ab1cpufreq: qcom: fix memory leak in error pathd866f5982cx86/resctrl: Fix min_cbm_bits for AMD8fbe13de1cata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS5d6a037b3aata: ahci-imx: Fix MODULE_ALIAS30cf0dee37hwmon/coretemp: Handle large core ID value2f7171465fx86/microcode/AMD: Apply the patch early on every logical thread93d7e2b47ai2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter14d260f94fcpufreq: qcom: fix writes in read-only memory region3006766d24selinux: enable use of both GFP_KERNEL and GFP_ATOMIC in convert_context()1b31cb0065ocfs2: fix BUG when iput after ocfs2_mknod failse469db818eocfs2: clear dinode links count in case of errorded9d535bebtrfs: enhance unsupported compat RO flags handling537412c547perf/x86/intel/pt: Relax address filter validation8ddc58e0e3arm64: errata: Remove AES hwcap for COMPAT tasks738515cf8busb: gadget: uvc: improve sg exit conditiondb11d8c72ausb: gadget: uvc: giveback vb2 buffer on req completeaee340dccfusb: gadget: uvc: rework uvcg_queue_next_buffer to uvcg_complete_buffer2f54ce7392usb: gadget: uvc: use on returned header len in video_encode_isoc_sgd80db2f145usb: gadget: uvc: consistently use define for headerlenf9681a6750arm64/mm: Consolidate TCR_EL1 fields5b20aacff7r8152: add PID for the Lenovo OneLink+ Dockbd8a595958Linux 5.15.75b6e2c54be3io-wq: Fix memory leak in worker creation7c359e2849gcov: support GCC 12.1 and newer compilers8418c1672cthermal: intel_powerclamp: Use first online CPU as control_cpu55c824b620ext4: continue to expand file system when the target size doesn't reach0e63de6d7elib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF584cd0b20faKconfig.debug: add toolchain checks for DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT371aaf6b48Kconfig.debug: simplify the dependency of DEBUG_INFO_DWARF4/5e1591557e3drm/amd/display: Fix build breakage with CONFIG_DEBUG_FS=n34f31a2b66net/ieee802154: don't warn zero-sized raw_sendmsg()de904d0fe1Revert "net/ieee802154: reject zero-sized raw_sendmsg()"9c65eef9d6net: ethernet: ti: davinci_mdio: fix build for mdio bitbang usesd7eadffce0blk-wbt: fix that 'rwb->wc' is always set to 1 in wbt_init()28787ff9fbALSA: usb-audio: Fix last interface check for registrationb8989e95d7net: ieee802154: return -EINVAL for unknown addr type0db2efb3bfmm: hugetlb: fix UAF in hugetlb_handle_userfault98aada6e22io_uring/rw: fix unexpected link breakaged6b7efc722io_uring/rw: fix error'ed retry return valuese857457c6fio_uring/rw: fix short rw error handlingcd148d4e31io_uring: correct pinned_vm accounting813d8fe5d3io_uring/af_unix: defer registered files gc to io_uring releasec69a2324fcperf intel-pt: Fix segfault in intel_pt_print_info() with uClibce81bf40b28clk: bcm2835: Round UART input clock upda17cbb229clk: bcm2835: Make peripheral PLLC critical20b8c456dfusb: idmouse: fix an uninit-value in idmouse_openec8adf767envmet-tcp: add bounds check on Transfer Tag1c64328840nvme: copy firmware_rev on each initb9b5560b34ext2: Use kvmalloc() for group descriptor array8c067a3051scsi: tracing: Fix compile error in trace_array calls when TRACING is disabled39bef9c6a9staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv()b4573a2badstaging: rtl8723bs: fix potential memory leak in rtw_init_drv_sw()eb24d93e3eRevert "usb: storage: Add quirk for Samsung Fit flash"3a38985d8busb: dwc3: core: Enable GUCTL1 bit 10 for fixing termination error after resume bug9d4f84a15farm64: dts: imx8mp: Add snps,gfladj-refclk-lpm-sel quirk to USB nodes3c84c7f592usb: musb: Fix musb_gadget.c rxstate overflow bugfcd594da0busb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info()9e86dffd0bmd/raid5: Wait for MD_SB_CHANGE_PENDING in raid5df8e80792c1eventfd: guard wake_up in eventfd fs calls as wellc61786dc72HID: roccat: Fix use-after-free in roccat_read()f7f425d61dsoundwire: intel: fix error handling on dai registration issues093a5463aesoundwire: cadence: Don't overwrite msg->buf during write commands1b4ed920b2bcache: fix set_at_max_writeback_rate() for multiple attached deviceseecb5ccc84ata: libahci_platform: Sanity check the DT child nodes number70b2adb1d6blk-throttle: prevent overflow while calculating wait timeff8551d411staging: vt6655: fix potential memory leak7c8bc37465power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()3d69461807iommu/arm-smmu-v3: Make default domain type of HiSilicon PTT device to identityc0d73be0afnbd: Fix hung when signal interrupts nbd_start_device_ioctl()9d54de8660scsi: 3w-9xxx: Avoid disabling device if failing to enable itd68da10b0cdmaengine: ti: k3-udma: Reset UDMA_CHAN_RT byte counters to prevent overflow518a2a1cc3usb: host: xhci-plat: suspend/resume clks for brcmf002aa7c0ausb: host: xhci-plat: suspend and resume clocks6bcd745c87clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate5c32cbf6ccmedia: platform: fix some double free in meson-ge2d and mtk-jpeg and s5p-mfc6f21976095media: cx88: Fix a null-ptr-deref bug in buffer_prepare()0a07b13af0clk: zynqmp: Fix stack-out-of-bounds in strncpy`3680442cbaARM: 9242/1: kasan: Only map modules if CONFIG_KASAN_VMALLOC=n4a89c0befcbtrfs: don't print information about space cache or tree every remount39a07058c7btrfs: scrub: try to fix super block errorsf3857dd7c0btrfs: dump extra info if one free space cache has more bitmaps than it shouldd3c6d5be46arm64: dts: imx8mq-librem5: Add bq25895 as max17055's power supply82046b6a84kselftest/arm64: Fix validatation termination record after EXTRA_CONTEXT3536541733ARM: dts: imx6sx: add missing properties for sram602813650cARM: dts: imx6sll: add missing properties for sram6a12e1e23cARM: dts: imx6sl: add missing properties for sram8c24dc621bARM: dts: imx6qp: add missing properties for sram47666b9a11ARM: dts: imx6dl: add missing properties for sram19fe40c518ARM: dts: imx6q: add missing properties for sram9361ba7791ARM: dts: imx7d-sdb: config the max pressure for tsc20460f90671ff9drm/amd/display: Remove interface for periodic interrupt 188fd067406drm/dp: Don't rewrite link config when setting phy test pattern668806a826mmc: sdhci-msm: add compatible string check for sdm670587c7da877drm/meson: explicitly remove aggregate driver at module unload timed76ff04a72drm/meson: reorder driver deinit sequence to fix use-after-free bugd894db3561drm/amdgpu: fix initial connector audio valuee3675f688dASoC: SOF: pci: Change DMI match info to support all Chrome platformsf16e1b7b39platform/x86: msi-laptop: Change DMI match / alias strings to fix module autoloading39da49ffa2platform/chrome: cros_ec: Notify the PM of wake events during resume7463604784drm: panel-orientation-quirks: Add quirk for Anbernic Win6002810061452drm/vc4: vec: Fix timings for VEC modes0506c4eae9ALSA: usb-audio: Register card at the last interface39d7a81bbbdrm: bridge: dw_hdmi: only trigger hotplug event on link changedfbed8c92eudmabuf: Set ubuf->sg = NULL if the creation of sg table failsa47d92c74bdrm/amd/display: fix overflow on MIN_I64 definitiona29f742704gpu: lontium-lt9611: Fix NULL pointer dereference in lt9611_connector_init()5ff7bec678drm/komeda: Fix handling of atomic commits in the atomic_commit_tail hookca163e389fdrm: Prevent drm_copy_field() to attempt copying a NULL pointerdf5ac93926drm: Use size_t type for len variable in drm_copy_field()5ab84b1596drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc()b3179865cfr8152: Rate limit overflow messagesd1e894f950Bluetooth: L2CAP: Fix user-after-free124b7c7732net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory5b94d48898hwmon: (sht4x) do not overflow clamping operation on 32-bit platformsa269c3e390wifi: rt2x00: correctly set BBP register 86 for MT7620b5e6ada5a5wifi: rt2x00: set SoC wmac clock register357c89074awifi: rt2x00: set VGC gain for both chains of MT762092e2e04da5wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT76204304b8e075wifi: rt2x00: don't run Rt5592 IQ calibration on MT76204a5eab200ecan: bcm: check the result of can_send() in bcm_can_tx()3423a50fa0Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times3ac837cef1Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create()af46b2b9b0wifi: mt76: mt7921: reset msta->airtime_ac while clearing up hw valuee33da263e9regulator: core: Prevent integer underflowd58c8781c0Bluetooth: btintel: Mark Intel controller to support LE_STATES quirk232d59eca0wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()37f15edba2iavf: Fix race between iavf_close and iavf_reset_task0315568019xfrm: Update ipcomp_scratches with NULL when freed716c526d66thunderbolt: Add back Intel Falcon Ridge end-to-end flow control workaroundb1b4144508wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg()839f563c5dx86/mce: Retrieve poison range from hardware1663629bc3tcp: annotate data-race around tcp_md5sig_pool_populated7b03296b4fopenvswitch: Fix overreporting of drops in dropwatchffd7a1dcaeopenvswitch: Fix double reporting of drops in dropwatchd449d00a8dnet: ethernet: ti: davinci_mdio: Add workaround for errata i2329624f03a027ice: set tx_tstamps when creating new Tx rings via ethtool2e52d858debpftool: Clear errno after libcap's checks75995ce1c9wifi: brcmfmac: fix invalid address access when enabling SCAN log level83b9496975NFSD: fix use-after-free on source server when doing inter-server copy118dc74b2bNFSD: Return nfserr_serverfault if splice_ok but buf->pages have data066b1302f2x86/entry: Work around Clang __bdos() bug06c56c9d5dACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable6733222f2cARM: decompressor: Include .data.rel.ro.local5614908434thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash139bbbd011powercap: intel_rapl: fix UBSAN shift-out-of-bounds issuea1387ae83eMIPS: BCM47XX: Cast memcmp() of function to (void *)c2790fede9cpufreq: intel_pstate: Add Tigerlake support in no-HWP mode30eca146c8ACPI: tables: FPDT: Don't call acpi_os_map_memory() on invalid phys address5374638222ACPI: video: Add Toshiba Satellite/Portege Z830 quirk7ed95b0803rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE()cf38a05eb1rcu: Back off upon fill_page_cache_func() allocation failure3e2d8b89f0rcu: Avoid triggering strict-GP irq-work when RCU is idle27d3e646ddfs: dlm: fix race in lowcommsb6b87460f4selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle497d736784f2fs: fix to account FS_CP_DATA_IO correctlyfb1dcc2a9ef2fs: fix race condition on setting FI_NO_EXTENT flag6ddbd411a0ACPI: APEI: do not add task_work to kernel thread to avoid memory leak21f1ba52b8thermal/drivers/qcom/tsens-v0_1: Fix MSM8939 fourth sensor hw_id172c8a24fccrypto: cavium - prevent integer overflow loading firmware12acfa1059crypto: marvell/octeontx - prevent integer overflowsc963ce2fa0kbuild: rpm-pkg: fix breakage when V=1 is used059ce6b68bkbuild: remove the target in signal traps when interrupted1e9c23db31tracing/osnoise: Fix possible recursive locking in stop_per_cpu_kthreads84795de93etracing: kprobe: Make gen test module work in arm and riscv867fce09aatracing: kprobe: Fix kprobe event gen test module on exita9990f24adiommu/iova: Fix module config properlyf0cac6cc02cifs: return correct error in ->calc_signature()1f1ab76e25crypto: qat - fix DMA transfer direction393307b99acrypto: inside-secure - Change swab to swab3293538944abcrypto: ccp - Release dma channels before dmaengine unrgister779a9930f3crypto: akcipher - default implementation for setting a private key0c7043a5b5iommu/omap: Fix buffer overflow in debugfs046803b74dcgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset771d8aa02dcrypto: hisilicon/qm - fix missing put dfx access9bf3ec61a2crypto: qat - fix default value of WDT timer3bfc220e5chwrng: imx-rngc - Moving IRQ handler registering after imx_rngc_irq_mask_clear()507128a0e3cgroup: Honor caller's cgroup NS when resolving path8ffe511b7dhwrng: arm-smccc-trng - fix NO_ENTROPY handling2720934713crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nre0b4ebf598crypto: sahara - don't sleep when in softirq8484023b57powerpc/pseries/vas: Pass hw_cpu_id to node associativity HCALL7f536a8cb6powerpc/kprobes: Fix null pointer reference in arch_prepare_kprobe()1f98f8f435powerpc: Fix SPE Power ISA properties for e500v1 platforms72c5b7110fpowerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5399afe92f6x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition592b302d8bpowerpc: Fix fallocate and fadvise64_64 compat parameter combination61af84b3dbpowerpc/powernv: add missing of_node_put() in opal_export_attrs()5be9cb6c06powerpc/pci_dn: Add missing of_node_put()5a13d3f1afpowerpc/sysdev/fsl_msi: Add missing of_node_put()b0c0490b3cpowerpc/math_emu/efp: Include module.h93379dc92dpowerpc/configs: Properly enable PAPR_SCM in pseries_defconfig25a4fb0e1amailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sgb8fcd9ab0fmailbox: mpfs: account for mbox offsets while sendingba22643595mailbox: mpfs: fix handling of the reg propertyfad007a315clk: ast2600: BCLK comes from EPLL3441076f83clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe9209e6bab7clk: imx: scu: fix memleak on platform_device_add() failsbdf72f2d64clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaratione338131e98clk: baikal-t1: Add SATA internal ref clock buffer35b7660275clk: baikal-t1: Add shared xGMAC ref/ptp clocks internal parentb2db8b2c53clk: baikal-t1: Fix invalid xGMAC PTP clock divider435a8a39c6clk: vc5: Fix 5P49V6901 outputs disabling when enabling FODb0bc75fe67spmi: pmic-arb: correct duplicate APID to PPID mapping logicfaabbb103dusb: mtu3: fix failed runtime suspend in host only mode57f66534a4dmaengine: ioat: stop mod_timer from resurrecting deleted timer in __cleanup()8aa96c5bc3clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent2dafc5afd9mfd: sm501: Add check for platform_driver_register()d43d93dbd8mfd: fsl-imx25: Fix check for platform_get_irq() errorsb940bb3c81mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init()0715005c48mfd: lp8788: Fix an error handling path in lp8788_probe()aec1f073f9mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq()53bfc1c3c7mfd: intel_soc_pmic: Fix an error handling path in intel_soc_pmic_i2c_probe()2f921d62c2fsi: core: Check error number after calling ida_simple_get041c79f6aeRDMA/rxe: Fix resize_finish() in rxe_queue.c959d4ee095clk: qcom: gcc-sm6115: Override default Alpha PLL regs8e556f5573clk: qcom: apss-ipq6018: mark apcs_alias0_core_clk as criticala26b065875scsi: iscsi: iscsi_tcp: Fix null-ptr-deref while calling getpeername()e87fb1fcf8scsi: iscsi: Run recv path from workqueuec2af03a7c1scsi: iscsi: Add recv workqueue helpersd6aafc21bescsi: iscsi: Rename iscsi_conn_queue_work()e45a1516d2scsi: libsas: Fix use-after-free bug in smp_execute_task_sg()6a54f76974serial: 8250: Fix restoring termios speed after suspenda5dba09338firmware: google: Test spinlock on panic path to avoid lockups60d14575d0slimbus: qcom-ngd-ctrl: allow compile testing without QCOM_RPROC_COMMONf19e5b7df5staging: vt6655: fix some erroneous memory clean-up loops433c33c554phy: qualcomm: call clk_disable_unprepare in the error handlingc4293def88tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdowna91a3c2d8dserial: 8250: Toggle IER bits on only after irq has been set up6be8e565a4drivers: serial: jsm: fix some leaks in probe1d05df7757usb: gadget: function: fix dangling pnp_string in f_printer.ced2c66b752xhci: Don't show warning for reinit on known broken suspend4d7d8f5cb2IB: Set IOVA/LENGTH on IB_MR in core/uverbs layerse221b4f16eRDMA/cm: Use SLID in the work completion as the DLID in responder side7a37c58ee7md/raid5: Remove unnecessary bio_put() in raid5_read_one_chunk()b467d9460emd/raid5: Ensure stripe_fill happens on non-read IO with journal5d8259c9d1md: Replace snprintf with scnprintf9e92d5ca54mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct()058833dbebata: fix ata_id_has_dipm()dad910a6d4ata: fix ata_id_has_ncq_autosense()21faddeff7ata: fix ata_id_has_devslp()204cc767dcata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()5c75d608faRDMA/siw: Fix QP destroy to wait for all references dropped.308cd50f17RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.e58a0b9100RDMA/srp: Fix srp_abort()dc9e4ef6b0RDMA/irdma: Align AE id codes to correct flush code and event84ce1a8e36mtd: rawnand: fsl_elbc: Fix none ECC modebe424a7d53mtd: rawnand: intel: Remove undocumented compatible string445395900bmtd: rawnand: intel: Read the chip-select line from the correct OF nodecbbf9cca47phy: phy-mtk-tphy: fix the phy type setting issuee4be7c9495phy: amlogic: phy-meson-axg-mipi-pcie-analog: Hold reference returned by of_get_parent()88263152ffmtd: devices: docg3: check the return value of devm_ioremap() in the probea0e4ac6988clk: qcom: sm6115: Select QCOM_GDSCaecb632674dyndbg: drop EXPORTed dynamic_debug_exec_queries0d4421f2cbdyndbg: let query-modname override actual module name0c0d9f38b0dyndbg: fix module.dyndbg handling49d85932f7dyndbg: fix static_branch manipulation7cb9b20941dmaengine: hisilicon: Add multi-thread support for a DMA channelb88630d9aadmaengine: hisilicon: Fix CQ head updatee84aeeafe8dmaengine: hisilicon: Disable channels when unregister hisi_dmab94605f5cbfpga: prevent integer overflow in dfl_feature_ioctl_set_irq()11bd8bbdf8misc: ocxl: fix possible refcount leak in afu_ioctl()c23c5e1845RDMA/rxe: Fix the error caused by qp->skf2f405af70RDMA/rxe: Fix "kernel NULL pointer dereference" error2ea7caa968media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init23624abbc9media: uvcvideo: Use entity get_cur in uvc_ctrl_set6c5da92103media: uvcvideo: Fix memory leak in uvc_gpio_parse4e2042f1admedia: meson: vdec: add missing clk_disable_unprepare on error in vdec_hevc_start()aeffca4344tty: xilinx_uartps: Fix the ignore_statusa8d772c7b8media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop6225501072HSI: omap_ssi_port: Fix dma_map_sg error check691f23a847HSI: omap_ssi: Fix refcount leak in ssi_probed6e750535bclk: tegra20: Fix refcount leak in tegra20_clock_inite7a57fb92aclk: tegra: Fix refcount leak in tegra114_clock_init417ed4432bclk: tegra: Fix refcount leak in tegra210_clock_initca5f338ef1clk: sprd: Hold reference returned by of_get_parent()49343bdf95clk: berlin: Add of_node_put() for of_get_parent()857b719bedclk: qoriq: Hold reference returned by of_get_parent()a8cbce0305clk: oxnas: Hold reference returned by of_get_parent()e0001a565cclk: meson: Hold reference returned by of_get_parent()e900ec4c4fusb: common: debug: Check non-standard control requestsc11f48764cRDMA/mlx5: Don't compare mkey tags in DEVX indirect mkeycd35ad9a7diio: magnetometer: yas530: Change data type of hard_offsets to signed23fafc2e2ciio: ABI: Fix wrong format of differential capacitance channel ABI.8169da520eiio: inkern: fix return value in devm_of_iio_channel_get_by_name()504e8807feiio: inkern: only release the device node when done with itb0d4fcc3eciio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume5db9b840aciio: adc: at91-sama5d2_adc: lock around oversampling and sample freqc5c63736d2iio: adc: at91-sama5d2_adc: check return status for pressure and touch5f1654a0e5iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX017cf3b0a6ARM: dts: exynos: fix polarity of VBUS GPIO of Origen6c93b683cearm64: ftrace: fix module PLTs with mcountbbf64eb102ext4: don't run ext4lazyinit for read-only filesystems7a00a23207ARM: Drop CMDLINE_* dependency on ATAGS2af04fe87eARM: dts: exynos: correct s5k6a3 reset polarity on Midas family2134214bc4arm64: dts: ti: k3-j7200: fix main pinmux range7247a1d7a4soc/tegra: fuse: Drop Kconfig dependency on TEGRA20_APB_DMA4f7892f242ia64: export memory_add_physaddr_to_nid to fix cxl build error2ef01657b2ARM: dts: kirkwood: lsxl: remove first ethernet portbf7caa3c5cARM: dts: kirkwood: lsxl: fix serial line42ce4c73a4ARM: dts: turris-omnia: Fix mpp26 pin name and comment96d8f2b43eARM: dts: imx6qdl-kontron-samx6i: hook up DDC i2c bus08ada28d1dsoc: qcom: smem_state: Add refcounting for the 'state->of_node'96e0028debsoc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe()a29b6eb959locks: fix TOCTOU race when granting write lease7e053784c4memory: of: Fix refcount leak bug in of_lpddr3_get_ddr_timings()2680690f9cmemory: of: Fix refcount leak bug in of_get_ddr_timings()566b143aa5memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe()10df962300ALSA: hda/hdmi: Don't skip notification handling during PM operationcc756b79a5ASoC: mt6660: Fix PM disable depth imbalance in mt6660_i2c_probef9cb3bd557ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probeb7dda65fa8ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probeb2bc9fc56aASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe3c3ef19a88mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe()b14dc26227ALSA: dmaengine: increment buffer pointer atomicallyf5f1f5ee50ASoC: da7219: Fix an error handling path in da7219_register_dai_clks()f910aca076ASoC: codecs: tx-macro: fix kcontrol putb47a37ad4adrm/vmwgfx: Fix memory leak in vmw_mksstat_add_ioctl()bdf54d4b00drm/msm/dp: correct 1.62G link rate at dp_catalog_ctrl_config_msa()635e7700c5drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx4f85988467ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API64545b8a96mmc: au1xmmc: Fix an error handling path in au1xmmc_probe()3ba3814c00drm/amdgpu: Fix memory leak in hpd_rx_irq_create_workqueue()a5ce83e85ddrm/omap: dss: Fix refcount leak bugsf5f599daa0drm/bochs: fix blanking928ac9fc1aALSA: hda: beep: Simplify keep-power-at-enable behaviorfbb88a7c84ASoC: rsnd: Add check for rsnd_mod_power_on4610e7a411drm/bridge: megachips: Fix a null pointer dereference bug079c550c57drm/amdgpu: add missing pci_disable_device() in amdgpu_pmops_runtime_resume()c12daccc90platform/chrome: cros_ec_typec: Correct alt mode indexc317d2b8a4platform/x86: msi-laptop: Fix resource cleanup0e21d41bc7platform/x86: msi-laptop: Fix old-ec check for backlight registering6bc81c1b63ASoC: tas2764: Fix mute/unmutee644497c53ASoC: tas2764: Drop conflicting set_bias_level power setting35bd912ed6ASoC: tas2764: Allow mono streamsfd1d3b2657platform/chrome: fix memory corruption in ioctl27bb672c04platform/chrome: fix double-free in chromeos_laptop_prepare()57dfb855bcASoC: mt6359: fix tests for platform_get_irq() failure8a475a7732drm:pl111: Add of_node_put() when breaking out of for_each_available_child_of_node()56d2233cf5drm/dp_mst: fix drm_dp_dpcd_read return value checksfe6eb3d0c8drm/bridge: parade-ps8640: Fix regulator supply order60630834fadrm/virtio: Correct drm_gem_shmem_get_sg_table() error handling26c1b4cfe5drm/mipi-dsi: Detach devices when removing the host652042135edrm/bridge: Avoid uninitialized variable warningf369fb4deedrm: bridge: adv7511: unregister cec i2c device after cec adapter20609125b8drm: bridge: adv7511: fix CEC power down control register offseta624161ebenet: mvpp2: fix mvpp2 debugfs leak7aef5082c5once: add DO_ONCE_SLOW() for sleepable contexts77bfd26cbbnet/ieee802154: reject zero-sized raw_sendmsg()dc4e9cd6d6net: wwan: iosm: Call mutex_init before locking it0b6516a4e3bnx2x: fix potential memory leak in bnx2x_tpa_stop()30bfa5aa72net: rds: don't hold sock lock when cancelling work from rds_tcp_reset_callbacks()f828333ca9hwmon: (pmbus/mp2888) Fix sensors readouts for MPS Multi-phase mp2888 controllerc91b922b41spi: Ensure that sg_table won't be used after being freed49d429760dtcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited19d636b663sctp: handle the error returned from sctp_auth_asoc_init_active_key7bfa18b05fmISDN: fix use-after-free bugs in l1oip timer handlers6f1991a940eth: alx: take rtnl_lock on resumee28a4e7f02vhost/vsock: Use kvmalloc/kvfree for larger packets.5dbdd690edwifi: rtl8xxxu: Fix AIFS written to REG_EDCA_*_PARAM432eecffcfspi: s3c64xx: Fix large transfers with DMA1454a26cb1netfilter: nft_fib: Fix for rpath check with VRF devices7d98b26684xfrm: Reinject transport-mode packets through workqueue397e880acfBluetooth: hci_core: Fix not handling link timeouts propertly1331d3e1f9i2c: mlxbf: support lock mechanism9233ab8198skmsg: Schedule psock work if the cached skb exists on the psock44f1dc2e82spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probedaa5239ea4spi: dw: Fix PM disable depth imbalance in dw_spi_bt1_probe6b94115186x86/cpu: Include the header of init_ia32_feat_ctl()'s prototype3c27a13807x86/microcode/AMD: Track patch allocation size explicitly3e2b805a68wifi: ath11k: fix number of VHT beamformee spatial streams5a6827cdc2netfilter: conntrack: revisit the gc initial rescheduling bias9c39ca418bnetfilter: conntrack: fix the gc rescheduling delayb8917dce21Bluetooth: hci_{ldisc,serdev}: check percpu_init_rwsem() failurec087c35292bpf: Ensure correct locking around vulnerable function find_vpid()a0f15af17bnet: fs_enet: Fix wrong check in do_pd_setupee7c5e814fBluetooth: RFCOMM: Fix possible deadlock on socket shutdown/release57d4f2f8a6wifi: mt76: mt7915: do not check state before configuring implicit beamformdea9093f24wifi: mt76: mt7615: add mt7615_mutex_acquire/release in mt7615_sta_set_decap_offload817e8b75aewifi: mt76: sdio: fix transmitting packet hangs5dc095a37fwifi: rtl8xxxu: Remove copy-paste leftover in gen2_update_rate_mask9973f78c19wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration5d9222c680bpf: btf: fix truncated last_member_type_id in btf_struct_resolve4ce47c5545spi: meson-spicc: do not rely on busy flag in pow2 clk ops36c484bac9wifi: rtl8xxxu: Fix skb misuse in TX queue selectionfefd2269e6spi: qup: add missing clk_disable_unprepare on error in spi_qup_pm_resume_runtime()e22f649918spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()37005a9486selftests/xsk: Avoid use-after-free on ctx69995c64e5wifi: rtw88: add missing destroy_workqueue() on error path in rtw_core_init()6f9484e969wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse()d091771f51Bluetooth: btusb: mediatek: fix WMT failure during runtime suspendf91e25cfa5bpf: Use this_cpu_{inc|dec|inc_return} for bpf_task_storage_busy0e13425104bpf: Propagate error from htab_lock_bucket() to userspace0b00c6130cbpf: Disable preemption when increasing per-cpu map_locked68ab769033xsk: Fix backpressure mechanism on Tx0559a6d96ax86/resctrl: Fix to restore to original value when re-enabling hardware prefetch registere962e458bfspi: mt7621: Fix an error message in mt7621_spi_probe()0a16bbc8b0bpftool: Fix a wrong type cast in btf_dumper_int6e8eadfa9bwifi: mac80211: allow bw change during channel switch in mesh4ed5155043bpf: Fix reference state management for synchronous callbacks3d0a101e71leds: lm3601x: Don't use mutex after it was destroyed54a3201f3cwifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()714536ff6fwifi: rtlwifi: 8192de: correct checking of IQK reload80a474502eNFSD: Fix handling of oversized NFSv4 COMPOUND requestsdc7f225090NFSD: Protect against send buffer overflow in NFSv2 READDIRcedaf73c8bSUNRPC: Fix svcxdr_init_encode's buflen calculation6b55707ff8SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculationaed8816305nfsd: Fix a memory leak in an error handling path5c4b234c44objtool: Preserve special st_shndx indexes in elf_update_symbol425a2a9469ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE2647b20e04ARM: 9244/1: dump: Fix wrong pg_level in walk_pmd()93296e7ab7MIPS: SGI-IP27: Fix platform-device leak in bridge_platform_create()993b13abdeMIPS: SGI-IP27: Free some unused memory959855093fsh: machvec: Use char[] for section boundaries91fafd22f8thermal: cpufreq_cooling: Check the policy first in cpufreq_cooling_register()81fb3ee298ntfs3: rework xattr handlers and switch to POSIX ACL VFS helpers33d478eee2userfaultfd: open userfaultfds with O_RDONLY10918ebecdima: fix blocking of security.ima xattrs of unsupported algorithmsb7af9b8be8selinux: use "grep -E" instead of "egrep"73b8218ef4smb3: must initialize two ACL struct fields to zeroadf428ae46drm/amd/display: Fix vblank refcount in vrr transition60a5174525drm/i915: Fix watermark calculations for gen12+ CCS+CC modifier01bd3eaa53drm/i915: Fix watermark calculations for gen12+ MC CCS modifier20018a252fdrm/i915: Fix watermark calculations for gen12+ RC CCS modifier861f085f81drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()446d40e2a8drm/nouveau/kms/nv140-: Disable interlacing4dab0d27a4staging: greybus: audio_helper: remove unused and wrong debugfs usage28eb4bdb23KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS4f7b1e7d0fKVM: nVMX: Don't propagate vmcs12's PERF_GLOBAL_CTRL settings to vmcs02be1a6a61f1KVM: nVMX: Unconditionally purge queued/injected events on nested "exit"379de01906KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibilitye3e5baa368blk-wbt: call rq_qos_add() after wb_normal is initializede8e0a6f4b8media: cedrus: Fix endless loop in cedrus_h265_skip_bits()b76fac61c3media: cedrus: Set the platform driver data earlierb19254eadaefi: libstub: drop pointless get_memory_map() call5cda4a11b4thunderbolt: Explicitly enable lane adapter hotplug events at startupd9c79fbcbdtracing: Fix reading strings from synthetic eventsb9ab154d22tracing: Add "(fault)" name injection to kernel probes8ae88c4842tracing: Move duplicate code of trace_kprobe/eprobe.c into header84f4be2093tracing: Add ioctl() to force ring buffer waiters to wake up32eb54a986tracing: Wake up waiters when tracing is disabled2475de2bc0tracing: Wake up ring buffer waiters on closing of the file48272aa48dtracing: Disable interrupt or preemption before acquiring arch_spinlock_td4ab9bc5f5ring-buffer: Fix race between reset page and reading pagebe60f698c2ring-buffer: Add ring_buffer_wake_waiters()5201dd81aering-buffer: Check pending waiters when doing wake ups as wellbc6d4e9d64ring-buffer: Have the shortest_full queue be the shortest not longeste8d1167385ring-buffer: Allow splice to read previous partially read pagesfb96b7489fftrace: Properly unset FTRACE_HASH_FL_MOD31dc1727c1livepatch: fix race between fork and KLP transition36997b75bbext4: update 'state->fc_regions_size' after successful memory allocation417b0455a0ext4: fix potential memory leak in ext4_fc_record_regions()9b5eb368a8ext4: fix potential memory leak in ext4_fc_record_modified_inode()ef1607c991ext4: fix miss release buffer head in ext4_fc_write_inoded29fa1ab4eext4: fix dir corruption when ext4_dx_add_entry() failsd12471b416ext4: place buffer head allocation before handle start46e5f470a1ext4: ext4_read_bh_lock() should submit IO if the buffer isn't uptodate1f5e643b38ext4: don't increase iversion counter for ea_inodesdd366295d1ext4: fix check for block being out of directory size4a967fe8b0ext4: make ext4_lazyinit_thread freezable533c60a0b9ext4: fix null-ptr-deref in ext4_write_infod8e4af8314ext4: avoid crash when inline data creation follows DIO write56fcd0788fjbd2: add miss release buffer head in fc_do_one_pass()d11d2ded29jbd2: fix potential use-after-free in jbd2_fc_wait_bufse7385c868ejbd2: fix potential buffer head reference count leakd87fe290a5jbd2: wake up journal waiters in FIFO order, not LIFO7434626c5ehardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero095493833bhardening: Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO73687c5391f2fs: fix to do sanity check on summary infoed854f10e6f2fs: fix to do sanity check on destination blkaddr during recovery7f10357c90f2fs: increase the limit for reserve_root0035b84223f2fs: flush pending checkpoints when freezing superab49589754f2fs: complete checkpoints during remount0a408c6212btrfs: set generation before calling btrfs_clean_tree_block in btrfs_init_new_buffer4b996a3014btrfs: fix race between quota enable and quota rescan ioctl0d94230343fs: record I_DIRTY_TIME even if inode already has I_DIRTY_INODE95a520b591ksmbd: Fix user namespace mappinga19f316406ksmbd: Fix wrong return value and message length check in smb2_ioctl()39b6855628ksmbd: fix endless loop when encryption for response fails2b0897e336fbdev: smscufx: Fix use-after-free in ufx_ops_open()aa7b2c927epinctrl: rockchip: add pinmux_ops.gpio_set_direction callback5d97378b36gpio: rockchip: request GPIO mux to pinctrl when setting directione0b1c16fdascsi: qedf: Populate sysfs attributes for vport1d567179f2slimbus: qcom-ngd: cleanup in probe error pathfa0aab2e45slimbus: qcom-ngd: use correct error in message of pdr_add_lookup() failureba2159df18powerpc/boot: Explicitly disable usage of SPE instructions9df2a9cdadpowercap: intel_rapl: Use standard Energy Unit for SPR Dram RAPL domain75d9de25a6NFSD: Protect against send buffer overflow in NFSv3 READ2be9331ca6NFSD: Protect against send buffer overflow in NFSv2 READ071a076fd1NFSD: Protect against send buffer overflow in NFSv3 READDIR209a94c519serial: 8250: Request full 16550A feature probing for OxSemi PCIe devices63a3d75cf1serial: 8250: Let drivers request full 16550A feature probing26e5c79e67PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge7c16d0a4e6xen/gntdev: Accommodate VMA splitting1cb73704cbxen/gntdev: Prevent leaking grants43bed0a13amm/mmap: undo ->mmap() when arch_validate_flags() fails2b0072d33emm/damon: validate if the pmd entry is present before accessing91c4eb16e8arm64: errata: Add Cortex-A55 to the repeat tlbi listfc0f921b7edrm/udl: Restore display mode on resume0640934725drm/virtio: Use appropriate atomic state in virtio_gpu_plane_cleanup_fb()fb3910436bdrm/virtio: Unlock reservations on virtio_gpu_object_shmem_init() errorf122bcb34fdrm/virtio: Check whether transferred 2D BO is shmema95fb5d55admaengine: mxs: use platform_driver_registere7a3334e83Revert "drm/amdgpu: use dirty framebuffer helper"4bdedc3b53nvme-pci: set min_align_mask before calculating max_hw_sectors32aa0b3f0cnvme-multipath: fix possible hang in live ns resize with ANA access9391cc3a78nvmem: core: Fix memleak in nvmem_register()7efe61dc6aUM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK81ab826a28riscv: Pass -mno-relax only on lld < 15.0.07780bb02a0riscv: always honor the CONFIG_CMDLINE_FORCE when parsing dtbc657b70e80riscv: Make VM_WRITE imply VM_READ3c3c4fa118riscv: Allow PROT_WRITE-only mmap()af3aaee08dparisc: fbdev/stifb: Align graphics memory size to 4MBdc235db7b7RISC-V: Make port I/O string accessors actually work8c487db000riscv: topology: fix default topology reportingd46c24f307arm64: topology: move store_cpu_topology() to shared codefcf0f6cbb6regulator: qcom_rpm: Fix circular deferral regression78d81a8a8cnet: thunderbolt: Enable DMA paths only after rings are enabled3281e81ce9hwmon: (gsc-hwmon) Call of_node_get() before of_find_xxx APIe1ab98ec2bASoC: wcd934x: fix order of Slimbus unprepare/disablea2140a9922ASoC: wcd9335: fix order of Slimbus unprepare/disabled0507b36daplatform/chrome: cros_ec_proto: Update version on GET_NEXT_EVENT failurefcfeecca15quota: Check next/prev free block number after reading from quota file17214cfab7HID: multitouch: Add memory barriers219e4a0f9dfs: dlm: handle -EBUSY first in lock arg validation34ed22dd28fs: dlm: fix race between test_bit() and queue_work()7fa5304c4bi2c: designware: Fix handling of real but unexpected device interruptsf9effcefa8mmc: sdhci-sprd: Fix minimum clock limita4df91a88ccan: kvaser_usb_leaf: Fix CAN state after restart0c28c2c0cfcan: kvaser_usb_leaf: Fix TX queue out of sync after restartb8c4f6345ecan: kvaser_usb_leaf: Fix overread with an invalid commandde4434d682can: kvaser_usb: Fix use of uninitialized completion354d768e31usb: add quirks for Lenovo OneLink+ Dock103b459590xhci: dbc: Fix memory leak in xhci_alloc_dbc()39f4c90b99iio: pressure: dps310: Reset chip after timeoutbc493cd754iio: pressure: dps310: Refactor startup procedure5f6bfc1926iio: adc: ad7923: fix channel readings for some variants1be580ed84iio: ltc2497: Fix reading conversion resultsef4018707diio: dac: ad5593r: Fix i2c read protocol requirements60480291c1cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message0d814a2199cifs: destage dirty pages before re-reading them for cache=none15993e9a9bhv_netvsc: Fix race between VF offering and VF association message from hostf9dc33f231io_uring/net: don't update msg_name if not provideda1bd289c10mtd: rawnand: atmel: Unmap streaming DMA mappings3e4d2375d1ALSA: hda/realtek: Add Intel Reference SSID to support headset keys41e83faf03ALSA: hda/realtek: Add quirk for ASUS GV601R laptopc01f385c70ALSA: hda/realtek: Correct pin configs for ASUS G533Z0d50e05eccALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530ec439b97d9ALSA: usb-audio: Fix NULL dererence at error path0672215994ALSA: usb-audio: Fix potential memory leaks550ca3082eALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()45899fae65ALSA: oss: Fix potential deadlock at unregistration5ca155aa79Revert "fs: check FMODE_LSEEK to control internal pipe splicing" And update the .xml file to handle some private pointer changes and an abi preservation change: type 'struct sk_buff' changed member 'union { struct { __u8 scm_io_uring; __u8 android_kabi_reserved1_padding1; __u16 android_kabi_reserved1_padding2; __u32 android_kabi_reserved1_padding3; }; struct { u64 android_kabi_reserved1; }; union { }; }' was added member 'u64 android_kabi_reserved1' was removed type 'struct super_block' changed member changed from 'struct key * s_master_keys' to 'struct fscrypt_keyring * s_master_keys' type changed from 'struct key *' to 'struct fscrypt_keyring *' pointed-to type changed from 'struct key' to 'struct fscrypt_keyring' type 'struct fscrypt_info' changed member changed from 'struct key * ci_master_key' to 'struct fscrypt_master_key * ci_master_key' type changed from 'struct key *' to 'struct fscrypt_master_key *' pointed-to type changed from 'struct key' to 'struct fscrypt_master_key' Change-Id: Id0a60a4e0d8a036fffd52dad04135cf57d98f09f Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2920 lines
94 KiB
Plaintext
2920 lines
94 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
# Select 32 or 64 bit
|
|
config 64BIT
|
|
bool "64-bit kernel" if "$(ARCH)" = "x86"
|
|
default "$(ARCH)" != "i386"
|
|
help
|
|
Say yes to build a 64-bit kernel - formerly known as x86_64
|
|
Say no to build a 32-bit kernel - formerly known as i386
|
|
|
|
config X86_32
|
|
def_bool y
|
|
depends on !64BIT
|
|
# Options that are inherently 32-bit kernel only:
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select CLKSRC_I8253
|
|
select CLONE_BACKWARDS
|
|
select GENERIC_VDSO_32
|
|
select HAVE_DEBUG_STACKOVERFLOW
|
|
select KMAP_LOCAL
|
|
select MODULES_USE_ELF_REL
|
|
select OLD_SIGACTION
|
|
select ARCH_SPLIT_ARG64
|
|
|
|
config X86_64
|
|
def_bool y
|
|
depends on 64BIT
|
|
# Options that are inherently 64-bit kernel only:
|
|
select ARCH_HAS_GIGANTIC_PAGE
|
|
select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
|
|
select ARCH_USE_CMPXCHG_LOCKREF
|
|
select HAVE_ARCH_SOFT_DIRTY
|
|
select MODULES_USE_ELF_RELA
|
|
select NEED_DMA_MAP_STATE
|
|
select SWIOTLB
|
|
select ARCH_HAS_ELFCORE_COMPAT
|
|
select ZONE_DMA32
|
|
select ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
|
|
|
|
config FORCE_DYNAMIC_FTRACE
|
|
def_bool y
|
|
depends on X86_32
|
|
depends on FUNCTION_TRACER
|
|
select DYNAMIC_FTRACE
|
|
help
|
|
We keep the static function tracing (!DYNAMIC_FTRACE) around
|
|
in order to test the non static function tracing in the
|
|
generic code, as other architectures still use it. But we
|
|
only need to keep it around for x86_64. No need to keep it
|
|
for x86_32. For x86_32, force DYNAMIC_FTRACE.
|
|
#
|
|
# Arch settings
|
|
#
|
|
# ( Note that options that are marked 'if X86_64' could in principle be
|
|
# ported to 32-bit as well. )
|
|
#
|
|
config X86
|
|
def_bool y
|
|
#
|
|
# Note: keep this list sorted alphabetically
|
|
#
|
|
select ACPI_LEGACY_TABLES_LOOKUP if ACPI
|
|
select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
|
|
select ARCH_32BIT_OFF_T if X86_32
|
|
select ARCH_CLOCKSOURCE_INIT
|
|
select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION
|
|
select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64 || (X86_32 && HIGHMEM)
|
|
select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG
|
|
select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 || X86_PAE)
|
|
select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE
|
|
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
|
|
select ARCH_HAS_CACHE_LINE_SIZE
|
|
select ARCH_HAS_DEBUG_VIRTUAL
|
|
select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE
|
|
select ARCH_HAS_DEVMEM_IS_ALLOWED
|
|
select ARCH_HAS_EARLY_DEBUG if KGDB
|
|
select ARCH_HAS_ELF_RANDOMIZE
|
|
select ARCH_HAS_FAST_MULTIPLIER
|
|
select ARCH_HAS_FILTER_PGPROT
|
|
select ARCH_HAS_FORTIFY_SOURCE
|
|
select ARCH_HAS_GCOV_PROFILE_ALL
|
|
select ARCH_HAS_KCOV if X86_64 && STACK_VALIDATION
|
|
select ARCH_HAS_MEM_ENCRYPT
|
|
select ARCH_HAS_MEMBARRIER_SYNC_CORE
|
|
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
|
|
select ARCH_HAS_PMEM_API if X86_64
|
|
select ARCH_HAS_PTE_DEVMAP if X86_64
|
|
select ARCH_HAS_PTE_SPECIAL
|
|
select ARCH_HAS_NONLEAF_PMD_YOUNG if PGTABLE_LEVELS > 2
|
|
select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
|
|
select ARCH_HAS_COPY_MC if X86_64
|
|
select ARCH_HAS_SET_MEMORY
|
|
select ARCH_HAS_SET_DIRECT_MAP
|
|
select ARCH_HAS_STRICT_KERNEL_RWX
|
|
select ARCH_HAS_STRICT_MODULE_RWX
|
|
select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
|
|
select ARCH_HAS_SYSCALL_WRAPPER
|
|
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
|
select ARCH_HAS_DEBUG_WX
|
|
select ARCH_HAS_ZONE_DMA_SET if EXPERT
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select ARCH_STACKWALK
|
|
select ARCH_SUPPORTS_ACPI
|
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
|
select ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
|
select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
|
|
select ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP if NR_CPUS <= 4096
|
|
select ARCH_SUPPORTS_LTO_CLANG
|
|
select ARCH_SUPPORTS_LTO_CLANG_THIN
|
|
select ARCH_USE_BUILTIN_BSWAP
|
|
select ARCH_USE_MEMTEST
|
|
select ARCH_USE_QUEUED_RWLOCKS
|
|
select ARCH_USE_QUEUED_SPINLOCKS
|
|
select ARCH_USE_SYM_ANNOTATIONS
|
|
select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
|
|
select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
|
|
select ARCH_WANTS_DYNAMIC_TASK_STRUCT
|
|
select ARCH_WANTS_NO_INSTR
|
|
select ARCH_WANT_HUGE_PMD_SHARE
|
|
select ARCH_WANT_LD_ORPHAN_WARN
|
|
select ARCH_WANTS_THP_SWAP if X86_64
|
|
select ARCH_HAS_PARANOID_L1D_FLUSH
|
|
select BUILDTIME_TABLE_SORT
|
|
select CLKEVT_I8253
|
|
select CLOCKSOURCE_VALIDATE_LAST_CYCLE
|
|
select CLOCKSOURCE_WATCHDOG
|
|
select DCACHE_WORD_ACCESS
|
|
select EDAC_ATOMIC_SCRUB
|
|
select EDAC_SUPPORT
|
|
select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
|
|
select GENERIC_CLOCKEVENTS_MIN_ADJUST
|
|
select GENERIC_CMOS_UPDATE
|
|
select GENERIC_CPU_AUTOPROBE
|
|
select GENERIC_CPU_VULNERABILITIES
|
|
select GENERIC_EARLY_IOREMAP
|
|
select GENERIC_ENTRY
|
|
select GENERIC_FIND_FIRST_BIT
|
|
select GENERIC_IOMAP
|
|
select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
|
|
select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
|
|
select GENERIC_IRQ_MIGRATION if SMP
|
|
select GENERIC_IRQ_PROBE
|
|
select GENERIC_IRQ_RESERVATION_MODE
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_PENDING_IRQ if SMP
|
|
select GENERIC_PTDUMP
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select GENERIC_TIME_VSYSCALL
|
|
select GENERIC_GETTIMEOFDAY
|
|
select GENERIC_VDSO_TIME_NS
|
|
select GUP_GET_PTE_LOW_HIGH if X86_PAE
|
|
select HARDIRQS_SW_RESEND
|
|
select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
|
|
select HAVE_ACPI_APEI if ACPI
|
|
select HAVE_ACPI_APEI_NMI if ACPI
|
|
select HAVE_ALIGNED_STRUCT_PAGE if SLUB
|
|
select HAVE_ARCH_AUDITSYSCALL
|
|
select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
|
|
select HAVE_ARCH_JUMP_LABEL
|
|
select HAVE_ARCH_JUMP_LABEL_RELATIVE
|
|
select HAVE_ARCH_KASAN if X86_64
|
|
select HAVE_ARCH_KASAN_VMALLOC if X86_64
|
|
select HAVE_ARCH_KFENCE
|
|
select HAVE_ARCH_KGDB
|
|
select HAVE_ARCH_MMAP_RND_BITS if MMU
|
|
select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
|
|
select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT
|
|
select HAVE_ARCH_PREL32_RELOCATIONS
|
|
select HAVE_ARCH_SECCOMP_FILTER
|
|
select HAVE_ARCH_THREAD_STRUCT_WHITELIST
|
|
select HAVE_ARCH_STACKLEAK
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64
|
|
select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD
|
|
select HAVE_ARCH_USERFAULTFD_MINOR if X86_64 && USERFAULTFD
|
|
select HAVE_ARCH_VMAP_STACK if X86_64
|
|
select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
|
|
select HAVE_ARCH_WITHIN_STACK_FRAMES
|
|
select HAVE_ASM_MODVERSIONS
|
|
select HAVE_CMPXCHG_DOUBLE
|
|
select HAVE_CMPXCHG_LOCAL
|
|
select HAVE_CONTEXT_TRACKING if X86_64
|
|
select HAVE_CONTEXT_TRACKING_OFFSTACK if HAVE_CONTEXT_TRACKING
|
|
select HAVE_C_RECORDMCOUNT
|
|
select HAVE_OBJTOOL_MCOUNT if STACK_VALIDATION
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select HAVE_DMA_CONTIGUOUS
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_DYNAMIC_FTRACE_WITH_REGS
|
|
select HAVE_DYNAMIC_FTRACE_WITH_ARGS if X86_64
|
|
select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
|
|
select HAVE_EBPF_JIT
|
|
select HAVE_EFFICIENT_UNALIGNED_ACCESS
|
|
select HAVE_EISA
|
|
select HAVE_EXIT_THREAD
|
|
select HAVE_FAST_GUP
|
|
select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_GCC_PLUGINS
|
|
select HAVE_HW_BREAKPOINT
|
|
select HAVE_IOREMAP_PROT
|
|
select HAVE_IRQ_EXIT_ON_IRQ_STACK if X86_64
|
|
select HAVE_IRQ_TIME_ACCOUNTING
|
|
select HAVE_KERNEL_BZIP2
|
|
select HAVE_KERNEL_GZIP
|
|
select HAVE_KERNEL_LZ4
|
|
select HAVE_KERNEL_LZMA
|
|
select HAVE_KERNEL_LZO
|
|
select HAVE_KERNEL_XZ
|
|
select HAVE_KERNEL_ZSTD
|
|
select HAVE_KPROBES
|
|
select HAVE_KPROBES_ON_FTRACE
|
|
select HAVE_FUNCTION_ERROR_INJECTION
|
|
select HAVE_KRETPROBES
|
|
select HAVE_KVM
|
|
select HAVE_LIVEPATCH if X86_64
|
|
select HAVE_MIXED_BREAKPOINTS_REGS
|
|
select HAVE_MOD_ARCH_SPECIFIC
|
|
select HAVE_MOVE_PMD
|
|
select HAVE_MOVE_PUD
|
|
select HAVE_NMI
|
|
select HAVE_OPTPROBES
|
|
select HAVE_PCSPKR_PLATFORM
|
|
select HAVE_PERF_EVENTS
|
|
select HAVE_PERF_EVENTS_NMI
|
|
select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
|
|
select HAVE_PCI
|
|
select HAVE_PERF_REGS
|
|
select HAVE_PERF_USER_STACK_DUMP
|
|
select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
|
|
select HAVE_POSIX_CPU_TIMERS_TASK_WORK
|
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
|
select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
|
|
select HAVE_FUNCTION_ARG_ACCESS_API
|
|
select HAVE_SOFTIRQ_ON_OWN_STACK
|
|
select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR
|
|
select HAVE_STACK_VALIDATION if X86_64
|
|
select HAVE_STATIC_CALL
|
|
select HAVE_STATIC_CALL_INLINE if HAVE_STACK_VALIDATION
|
|
select HAVE_PREEMPT_DYNAMIC
|
|
select HAVE_RSEQ
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select HAVE_UNSTABLE_SCHED_CLOCK
|
|
select HAVE_USER_RETURN_NOTIFIER
|
|
select HAVE_GENERIC_VDSO
|
|
select HOTPLUG_SMT if SMP
|
|
select IRQ_FORCED_THREADING
|
|
select NEED_SG_DMA_LENGTH
|
|
select PCI_DOMAINS if PCI
|
|
select PCI_LOCKLESS_CONFIG if PCI
|
|
select PERF_EVENTS
|
|
select RTC_LIB
|
|
select RTC_MC146818_LIB
|
|
select SPARSE_IRQ
|
|
select SRCU
|
|
select STACK_VALIDATION if HAVE_STACK_VALIDATION && (HAVE_STATIC_CALL_INLINE || RETPOLINE)
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select THREAD_INFO_IN_TASK
|
|
select TRACE_IRQFLAGS_SUPPORT
|
|
select TRACE_IRQFLAGS_NMI_SUPPORT
|
|
select USER_STACKTRACE_SUPPORT
|
|
select VIRT_TO_BUS
|
|
select HAVE_ARCH_KCSAN if X86_64
|
|
select X86_FEATURE_NAMES if PROC_FS
|
|
select PROC_PID_ARCH_STATUS if PROC_FS
|
|
imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI
|
|
|
|
config INSTRUCTION_DECODER
|
|
def_bool y
|
|
depends on KPROBES || PERF_EVENTS || UPROBES
|
|
|
|
config OUTPUT_FORMAT
|
|
string
|
|
default "elf32-i386" if X86_32
|
|
default "elf64-x86-64" if X86_64
|
|
|
|
config LOCKDEP_SUPPORT
|
|
def_bool y
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
|
|
config MMU
|
|
def_bool y
|
|
|
|
config ARCH_MMAP_RND_BITS_MIN
|
|
default 28 if 64BIT
|
|
default 8
|
|
|
|
config ARCH_MMAP_RND_BITS_MAX
|
|
default 32 if 64BIT
|
|
default 16
|
|
|
|
config ARCH_MMAP_RND_COMPAT_BITS_MIN
|
|
default 8
|
|
|
|
config ARCH_MMAP_RND_COMPAT_BITS_MAX
|
|
default 16
|
|
|
|
config SBUS
|
|
bool
|
|
|
|
config GENERIC_ISA_DMA
|
|
def_bool y
|
|
depends on ISA_DMA_API
|
|
|
|
config GENERIC_BUG
|
|
def_bool y
|
|
depends on BUG
|
|
select GENERIC_BUG_RELATIVE_POINTERS if X86_64
|
|
|
|
config GENERIC_BUG_RELATIVE_POINTERS
|
|
bool
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
def_bool y
|
|
depends on ISA_DMA_API
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config ARCH_HAS_CPU_RELAX
|
|
def_bool y
|
|
|
|
config ARCH_HAS_FILTER_PGPROT
|
|
def_bool y
|
|
|
|
config HAVE_SETUP_PER_CPU_AREA
|
|
def_bool y
|
|
|
|
config NEED_PER_CPU_EMBED_FIRST_CHUNK
|
|
def_bool y
|
|
|
|
config NEED_PER_CPU_PAGE_FIRST_CHUNK
|
|
def_bool y
|
|
|
|
config ARCH_HIBERNATION_POSSIBLE
|
|
def_bool y
|
|
|
|
config ARCH_NR_GPIO
|
|
int
|
|
default 1024 if X86_64
|
|
default 512
|
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
def_bool y
|
|
|
|
config ARCH_WANT_GENERAL_HUGETLB
|
|
def_bool y
|
|
|
|
config AUDIT_ARCH
|
|
def_bool y if X86_64
|
|
|
|
config KASAN_SHADOW_OFFSET
|
|
hex
|
|
depends on KASAN
|
|
default 0xdffffc0000000000
|
|
|
|
config HAVE_INTEL_TXT
|
|
def_bool y
|
|
depends on INTEL_IOMMU && ACPI
|
|
|
|
config X86_32_SMP
|
|
def_bool y
|
|
depends on X86_32 && SMP
|
|
|
|
config X86_64_SMP
|
|
def_bool y
|
|
depends on X86_64 && SMP
|
|
|
|
config ARCH_SUPPORTS_UPROBES
|
|
def_bool y
|
|
|
|
config FIX_EARLYCON_MEM
|
|
def_bool y
|
|
|
|
config DYNAMIC_PHYSICAL_MASK
|
|
bool
|
|
|
|
config PGTABLE_LEVELS
|
|
int
|
|
default 5 if X86_5LEVEL
|
|
default 4 if X86_64
|
|
default 3 if X86_PAE
|
|
default 2
|
|
|
|
config CC_HAS_SANE_STACKPROTECTOR
|
|
bool
|
|
default $(success,$(srctree)/scripts/gcc-x86_64-has-stack-protector.sh $(CC)) if 64BIT
|
|
default $(success,$(srctree)/scripts/gcc-x86_32-has-stack-protector.sh $(CC))
|
|
help
|
|
We have to make sure stack protector is unconditionally disabled if
|
|
the compiler produces broken code or if it does not let us control
|
|
the segment on 32-bit kernels.
|
|
|
|
menu "Processor type and features"
|
|
|
|
config SMP
|
|
bool "Symmetric multi-processing support"
|
|
help
|
|
This enables support for systems with more than one CPU. If you have
|
|
a system with only one CPU, say N. If you have a system with more
|
|
than one CPU, say Y.
|
|
|
|
If you say N here, the kernel will run on uni- and multiprocessor
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
|
you say Y here, the kernel will run on many, but not all,
|
|
uniprocessor machines. On a uniprocessor machine, the kernel
|
|
will run faster if you say N here.
|
|
|
|
Note that if you say Y here and choose architecture "586" or
|
|
"Pentium" under "Processor family", the kernel will not work on 486
|
|
architectures. Similarly, multiprocessor kernels for the "PPro"
|
|
architecture may not work on all Pentium based boards.
|
|
|
|
People using multiprocessor machines who say Y here should also say
|
|
Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
|
|
Management" code will be disabled if you say Y here.
|
|
|
|
See also <file:Documentation/x86/i386/IO-APIC.rst>,
|
|
<file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config X86_FEATURE_NAMES
|
|
bool "Processor feature human-readable names" if EMBEDDED
|
|
default y
|
|
help
|
|
This option compiles in a table of x86 feature bits and corresponding
|
|
names. This is required to support /proc/cpuinfo and a few kernel
|
|
messages. You can disable this to save space, at the expense of
|
|
making those few kernel messages show numeric feature bits instead.
|
|
|
|
If in doubt, say Y.
|
|
|
|
config X86_X2APIC
|
|
bool "Support x2apic"
|
|
depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST)
|
|
help
|
|
This enables x2apic support on CPUs that have this feature.
|
|
|
|
This allows 32-bit apic IDs (so it can support very large systems),
|
|
and accesses the local apic via MSRs not via mmio.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config X86_MPPARSE
|
|
bool "Enable MPS table" if ACPI
|
|
default y
|
|
depends on X86_LOCAL_APIC
|
|
help
|
|
For old smp systems that do not have proper acpi support. Newer systems
|
|
(esp with 64bit cpus) with acpi support, MADT and DSDT will override it
|
|
|
|
config GOLDFISH
|
|
def_bool y
|
|
depends on X86_GOLDFISH
|
|
|
|
config X86_CPU_RESCTRL
|
|
bool "x86 CPU resource control support"
|
|
depends on X86 && (CPU_SUP_INTEL || CPU_SUP_AMD)
|
|
select KERNFS
|
|
select PROC_CPU_RESCTRL if PROC_FS
|
|
help
|
|
Enable x86 CPU resource control support.
|
|
|
|
Provide support for the allocation and monitoring of system resources
|
|
usage by the CPU.
|
|
|
|
Intel calls this Intel Resource Director Technology
|
|
(Intel(R) RDT). More information about RDT can be found in the
|
|
Intel x86 Architecture Software Developer Manual.
|
|
|
|
AMD calls this AMD Platform Quality of Service (AMD QoS).
|
|
More information about AMD QoS can be found in the AMD64 Technology
|
|
Platform Quality of Service Extensions manual.
|
|
|
|
Say N if unsure.
|
|
|
|
if X86_32
|
|
config X86_BIGSMP
|
|
bool "Support for big SMP systems with more than 8 CPUs"
|
|
depends on SMP
|
|
help
|
|
This option is needed for the systems that have more than 8 CPUs.
|
|
|
|
config X86_EXTENDED_PLATFORM
|
|
bool "Support for extended (non-PC) x86 platforms"
|
|
default y
|
|
help
|
|
If you disable this option then the kernel will only support
|
|
standard PC platforms. (which covers the vast majority of
|
|
systems out there.)
|
|
|
|
If you enable this option then you'll be able to select support
|
|
for the following (non-PC) 32 bit x86 platforms:
|
|
Goldfish (Android emulator)
|
|
AMD Elan
|
|
RDC R-321x SoC
|
|
SGI 320/540 (Visual Workstation)
|
|
STA2X11-based (e.g. Northville)
|
|
Moorestown MID devices
|
|
|
|
If you have one of these systems, or if you want to build a
|
|
generic distribution kernel, say Y here - otherwise say N.
|
|
endif
|
|
|
|
if X86_64
|
|
config X86_EXTENDED_PLATFORM
|
|
bool "Support for extended (non-PC) x86 platforms"
|
|
default y
|
|
help
|
|
If you disable this option then the kernel will only support
|
|
standard PC platforms. (which covers the vast majority of
|
|
systems out there.)
|
|
|
|
If you enable this option then you'll be able to select support
|
|
for the following (non-PC) 64 bit x86 platforms:
|
|
Numascale NumaChip
|
|
ScaleMP vSMP
|
|
SGI Ultraviolet
|
|
|
|
If you have one of these systems, or if you want to build a
|
|
generic distribution kernel, say Y here - otherwise say N.
|
|
endif
|
|
# This is an alphabetically sorted list of 64 bit extended platforms
|
|
# Please maintain the alphabetic order if and when there are additions
|
|
config X86_NUMACHIP
|
|
bool "Numascale NumaChip"
|
|
depends on X86_64
|
|
depends on X86_EXTENDED_PLATFORM
|
|
depends on NUMA
|
|
depends on SMP
|
|
depends on X86_X2APIC
|
|
depends on PCI_MMCONFIG
|
|
help
|
|
Adds support for Numascale NumaChip large-SMP systems. Needed to
|
|
enable more than ~168 cores.
|
|
If you don't have one of these, you should say N here.
|
|
|
|
config X86_VSMP
|
|
bool "ScaleMP vSMP"
|
|
select HYPERVISOR_GUEST
|
|
select PARAVIRT
|
|
depends on X86_64 && PCI
|
|
depends on X86_EXTENDED_PLATFORM
|
|
depends on SMP
|
|
help
|
|
Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
|
|
supposed to run on these EM64T-based machines. Only choose this option
|
|
if you have one of these machines.
|
|
|
|
config X86_UV
|
|
bool "SGI Ultraviolet"
|
|
depends on X86_64
|
|
depends on X86_EXTENDED_PLATFORM
|
|
depends on NUMA
|
|
depends on EFI
|
|
depends on KEXEC_CORE
|
|
depends on X86_X2APIC
|
|
depends on PCI
|
|
help
|
|
This option is needed in order to support SGI Ultraviolet systems.
|
|
If you don't have one of these, you should say N here.
|
|
|
|
# Following is an alphabetically sorted list of 32 bit extended platforms
|
|
# Please maintain the alphabetic order if and when there are additions
|
|
|
|
config X86_GOLDFISH
|
|
bool "Goldfish (Virtual Platform)"
|
|
depends on X86_EXTENDED_PLATFORM
|
|
help
|
|
Enable support for the Goldfish virtual platform used primarily
|
|
for Android development. Unless you are building for the Android
|
|
Goldfish emulator say N here.
|
|
|
|
config X86_INTEL_CE
|
|
bool "CE4100 TV platform"
|
|
depends on PCI
|
|
depends on PCI_GODIRECT
|
|
depends on X86_IO_APIC
|
|
depends on X86_32
|
|
depends on X86_EXTENDED_PLATFORM
|
|
select X86_REBOOTFIXUPS
|
|
select OF
|
|
select OF_EARLY_FLATTREE
|
|
help
|
|
Select for the Intel CE media processor (CE4100) SOC.
|
|
This option compiles in support for the CE4100 SOC for settop
|
|
boxes and media devices.
|
|
|
|
config X86_INTEL_MID
|
|
bool "Intel MID platform support"
|
|
depends on X86_EXTENDED_PLATFORM
|
|
depends on X86_PLATFORM_DEVICES
|
|
depends on PCI
|
|
depends on X86_64 || (PCI_GOANY && X86_32)
|
|
depends on X86_IO_APIC
|
|
select I2C
|
|
select DW_APB_TIMER
|
|
select APB_TIMER
|
|
select INTEL_SCU_PCI
|
|
select MFD_INTEL_MSIC
|
|
help
|
|
Select to build a kernel capable of supporting Intel MID (Mobile
|
|
Internet Device) platform systems which do not have the PCI legacy
|
|
interfaces. If you are building for a PC class system say N here.
|
|
|
|
Intel MID platforms are based on an Intel processor and chipset which
|
|
consume less power than most of the x86 derivatives.
|
|
|
|
config X86_INTEL_QUARK
|
|
bool "Intel Quark platform support"
|
|
depends on X86_32
|
|
depends on X86_EXTENDED_PLATFORM
|
|
depends on X86_PLATFORM_DEVICES
|
|
depends on X86_TSC
|
|
depends on PCI
|
|
depends on PCI_GOANY
|
|
depends on X86_IO_APIC
|
|
select IOSF_MBI
|
|
select INTEL_IMR
|
|
select COMMON_CLK
|
|
help
|
|
Select to include support for Quark X1000 SoC.
|
|
Say Y here if you have a Quark based system such as the Arduino
|
|
compatible Intel Galileo.
|
|
|
|
config X86_INTEL_LPSS
|
|
bool "Intel Low Power Subsystem Support"
|
|
depends on X86 && ACPI && PCI
|
|
select COMMON_CLK
|
|
select PINCTRL
|
|
select IOSF_MBI
|
|
help
|
|
Select to build support for Intel Low Power Subsystem such as
|
|
found on Intel Lynxpoint PCH. Selecting this option enables
|
|
things like clock tree (common clock framework) and pincontrol
|
|
which are needed by the LPSS peripheral drivers.
|
|
|
|
config X86_AMD_PLATFORM_DEVICE
|
|
bool "AMD ACPI2Platform devices support"
|
|
depends on ACPI
|
|
select COMMON_CLK
|
|
select PINCTRL
|
|
help
|
|
Select to interpret AMD specific ACPI device to platform device
|
|
such as I2C, UART, GPIO found on AMD Carrizo and later chipsets.
|
|
I2C and UART depend on COMMON_CLK to set clock. GPIO driver is
|
|
implemented under PINCTRL subsystem.
|
|
|
|
config IOSF_MBI
|
|
tristate "Intel SoC IOSF Sideband support for SoC platforms"
|
|
depends on PCI
|
|
help
|
|
This option enables sideband register access support for Intel SoC
|
|
platforms. On these platforms the IOSF sideband is used in lieu of
|
|
MSR's for some register accesses, mostly but not limited to thermal
|
|
and power. Drivers may query the availability of this device to
|
|
determine if they need the sideband in order to work on these
|
|
platforms. The sideband is available on the following SoC products.
|
|
This list is not meant to be exclusive.
|
|
- BayTrail
|
|
- Braswell
|
|
- Quark
|
|
|
|
You should say Y if you are running a kernel on one of these SoC's.
|
|
|
|
config IOSF_MBI_DEBUG
|
|
bool "Enable IOSF sideband access through debugfs"
|
|
depends on IOSF_MBI && DEBUG_FS
|
|
help
|
|
Select this option to expose the IOSF sideband access registers (MCR,
|
|
MDR, MCRX) through debugfs to write and read register information from
|
|
different units on the SoC. This is most useful for obtaining device
|
|
state information for debug and analysis. As this is a general access
|
|
mechanism, users of this option would have specific knowledge of the
|
|
device they want to access.
|
|
|
|
If you don't require the option or are in doubt, say N.
|
|
|
|
config X86_RDC321X
|
|
bool "RDC R-321x SoC"
|
|
depends on X86_32
|
|
depends on X86_EXTENDED_PLATFORM
|
|
select M486
|
|
select X86_REBOOTFIXUPS
|
|
help
|
|
This option is needed for RDC R-321x system-on-chip, also known
|
|
as R-8610-(G).
|
|
If you don't have one of these chips, you should say N here.
|
|
|
|
config X86_32_NON_STANDARD
|
|
bool "Support non-standard 32-bit SMP architectures"
|
|
depends on X86_32 && SMP
|
|
depends on X86_EXTENDED_PLATFORM
|
|
help
|
|
This option compiles in the bigsmp and STA2X11 default
|
|
subarchitectures. It is intended for a generic binary
|
|
kernel. If you select them all, kernel will probe it one by
|
|
one and will fallback to default.
|
|
|
|
# Alphabetically sorted list of Non standard 32 bit platforms
|
|
|
|
config X86_SUPPORTS_MEMORY_FAILURE
|
|
def_bool y
|
|
# MCE code calls memory_failure():
|
|
depends on X86_MCE
|
|
# On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
|
|
# On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
|
|
depends on X86_64 || !SPARSEMEM
|
|
select ARCH_SUPPORTS_MEMORY_FAILURE
|
|
|
|
config STA2X11
|
|
bool "STA2X11 Companion Chip Support"
|
|
depends on X86_32_NON_STANDARD && PCI
|
|
select SWIOTLB
|
|
select MFD_STA2X11
|
|
select GPIOLIB
|
|
help
|
|
This adds support for boards based on the STA2X11 IO-Hub,
|
|
a.k.a. "ConneXt". The chip is used in place of the standard
|
|
PC chipset, so all "standard" peripherals are missing. If this
|
|
option is selected the kernel will still be able to boot on
|
|
standard PC machines.
|
|
|
|
config X86_32_IRIS
|
|
tristate "Eurobraille/Iris poweroff module"
|
|
depends on X86_32
|
|
help
|
|
The Iris machines from EuroBraille do not have APM or ACPI support
|
|
to shut themselves down properly. A special I/O sequence is
|
|
needed to do so, which is what this module does at
|
|
kernel shutdown.
|
|
|
|
This is only for Iris machines from EuroBraille.
|
|
|
|
If unused, say N.
|
|
|
|
config SCHED_OMIT_FRAME_POINTER
|
|
def_bool y
|
|
prompt "Single-depth WCHAN output"
|
|
depends on X86
|
|
help
|
|
Calculate simpler /proc/<PID>/wchan values. If this option
|
|
is disabled then wchan values will recurse back to the
|
|
caller function. This provides more accurate wchan values,
|
|
at the expense of slightly more scheduling overhead.
|
|
|
|
If in doubt, say "Y".
|
|
|
|
menuconfig HYPERVISOR_GUEST
|
|
bool "Linux guest support"
|
|
help
|
|
Say Y here to enable options for running Linux under various hyper-
|
|
visors. This option enables basic hypervisor detection and platform
|
|
setup.
|
|
|
|
If you say N, all options in this submenu will be skipped and
|
|
disabled, and Linux guest support won't be built in.
|
|
|
|
if HYPERVISOR_GUEST
|
|
|
|
config PARAVIRT
|
|
bool "Enable paravirtualization code"
|
|
depends on HAVE_STATIC_CALL
|
|
help
|
|
This changes the kernel so it can modify itself when it is run
|
|
under a hypervisor, potentially improving performance significantly
|
|
over full virtualization. However, when run without a hypervisor
|
|
the kernel is theoretically slower and slightly larger.
|
|
|
|
config PARAVIRT_XXL
|
|
bool
|
|
|
|
config PARAVIRT_DEBUG
|
|
bool "paravirt-ops debugging"
|
|
depends on PARAVIRT && DEBUG_KERNEL
|
|
help
|
|
Enable to debug paravirt_ops internals. Specifically, BUG if
|
|
a paravirt_op is missing when it is called.
|
|
|
|
config PARAVIRT_SPINLOCKS
|
|
bool "Paravirtualization layer for spinlocks"
|
|
depends on PARAVIRT && SMP
|
|
help
|
|
Paravirtualized spinlocks allow a pvops backend to replace the
|
|
spinlock implementation with something virtualization-friendly
|
|
(for example, block the virtual CPU rather than spinning).
|
|
|
|
It has a minimal impact on native kernels and gives a nice performance
|
|
benefit on paravirtualized KVM / Xen kernels.
|
|
|
|
If you are unsure how to answer this question, answer Y.
|
|
|
|
config X86_HV_CALLBACK_VECTOR
|
|
def_bool n
|
|
|
|
source "arch/x86/xen/Kconfig"
|
|
|
|
config KVM_GUEST
|
|
bool "KVM Guest support (including kvmclock)"
|
|
depends on PARAVIRT
|
|
select PARAVIRT_CLOCK
|
|
select ARCH_CPUIDLE_HALTPOLL
|
|
select X86_HV_CALLBACK_VECTOR
|
|
default y
|
|
help
|
|
This option enables various optimizations for running under the KVM
|
|
hypervisor. It includes a paravirtualized clock, so that instead
|
|
of relying on a PIT (or probably other) emulation by the
|
|
underlying device model, the host provides the guest with
|
|
timing infrastructure such as time of day, and system time
|
|
|
|
config ARCH_CPUIDLE_HALTPOLL
|
|
def_bool n
|
|
prompt "Disable host haltpoll when loading haltpoll driver"
|
|
help
|
|
If virtualized under KVM, disable host haltpoll.
|
|
|
|
config PVH
|
|
bool "Support for running PVH guests"
|
|
help
|
|
This option enables the PVH entry point for guest virtual machines
|
|
as specified in the x86/HVM direct boot ABI.
|
|
|
|
config PARAVIRT_TIME_ACCOUNTING
|
|
bool "Paravirtual steal time accounting"
|
|
depends on PARAVIRT
|
|
help
|
|
Select this option to enable fine granularity task steal time
|
|
accounting. Time spent executing other tasks in parallel with
|
|
the current vCPU is discounted from the vCPU power. To account for
|
|
that, there can be a small performance impact.
|
|
|
|
If in doubt, say N here.
|
|
|
|
config PARAVIRT_CLOCK
|
|
bool
|
|
|
|
config JAILHOUSE_GUEST
|
|
bool "Jailhouse non-root cell support"
|
|
depends on X86_64 && PCI
|
|
select X86_PM_TIMER
|
|
help
|
|
This option allows to run Linux as guest in a Jailhouse non-root
|
|
cell. You can leave this option disabled if you only want to start
|
|
Jailhouse and run Linux afterwards in the root cell.
|
|
|
|
config ACRN_GUEST
|
|
bool "ACRN Guest support"
|
|
depends on X86_64
|
|
select X86_HV_CALLBACK_VECTOR
|
|
help
|
|
This option allows to run Linux as guest in the ACRN hypervisor. ACRN is
|
|
a flexible, lightweight reference open-source hypervisor, built with
|
|
real-time and safety-criticality in mind. It is built for embedded
|
|
IOT with small footprint and real-time features. More details can be
|
|
found in https://projectacrn.org/.
|
|
|
|
endif #HYPERVISOR_GUEST
|
|
|
|
source "arch/x86/Kconfig.cpu"
|
|
|
|
config HPET_TIMER
|
|
def_bool X86_64
|
|
prompt "HPET Timer Support" if X86_32
|
|
help
|
|
Use the IA-PC HPET (High Precision Event Timer) to manage
|
|
time in preference to the PIT and RTC, if a HPET is
|
|
present.
|
|
HPET is the next generation timer replacing legacy 8254s.
|
|
The HPET provides a stable time base on SMP
|
|
systems, unlike the TSC, but it is more expensive to access,
|
|
as it is off-chip. The interface used is documented
|
|
in the HPET spec, revision 1.
|
|
|
|
You can safely choose Y here. However, HPET will only be
|
|
activated if the platform and the BIOS support this feature.
|
|
Otherwise the 8254 will be used for timing services.
|
|
|
|
Choose N to continue using the legacy 8254 timer.
|
|
|
|
config HPET_EMULATE_RTC
|
|
def_bool y
|
|
depends on HPET_TIMER && (RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
|
|
|
|
# Mark as expert because too many people got it wrong.
|
|
# The code disables itself when not needed.
|
|
config DMI
|
|
default y
|
|
select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
|
|
bool "Enable DMI scanning" if EXPERT
|
|
help
|
|
Enabled scanning of DMI to identify machine quirks. Say Y
|
|
here unless you have verified that your setup is not
|
|
affected by entries in the DMI blacklist. Required by PNP
|
|
BIOS code.
|
|
|
|
config GART_IOMMU
|
|
bool "Old AMD GART IOMMU support"
|
|
select DMA_OPS
|
|
select IOMMU_HELPER
|
|
select SWIOTLB
|
|
depends on X86_64 && PCI && AMD_NB
|
|
help
|
|
Provides a driver for older AMD Athlon64/Opteron/Turion/Sempron
|
|
GART based hardware IOMMUs.
|
|
|
|
The GART supports full DMA access for devices with 32-bit access
|
|
limitations, on systems with more than 3 GB. This is usually needed
|
|
for USB, sound, many IDE/SATA chipsets and some other devices.
|
|
|
|
Newer systems typically have a modern AMD IOMMU, supported via
|
|
the CONFIG_AMD_IOMMU=y config option.
|
|
|
|
In normal configurations this driver is only active when needed:
|
|
there's more than 3 GB of memory and the system contains a
|
|
32-bit limited device.
|
|
|
|
If unsure, say Y.
|
|
|
|
config MAXSMP
|
|
bool "Enable Maximum number of SMP Processors and NUMA Nodes"
|
|
depends on X86_64 && SMP && DEBUG_KERNEL
|
|
select CPUMASK_OFFSTACK
|
|
help
|
|
Enable maximum number of CPUS and NUMA Nodes for this architecture.
|
|
If unsure, say N.
|
|
|
|
#
|
|
# The maximum number of CPUs supported:
|
|
#
|
|
# The main config value is NR_CPUS, which defaults to NR_CPUS_DEFAULT,
|
|
# and which can be configured interactively in the
|
|
# [NR_CPUS_RANGE_BEGIN ... NR_CPUS_RANGE_END] range.
|
|
#
|
|
# The ranges are different on 32-bit and 64-bit kernels, depending on
|
|
# hardware capabilities and scalability features of the kernel.
|
|
#
|
|
# ( If MAXSMP is enabled we just use the highest possible value and disable
|
|
# interactive configuration. )
|
|
#
|
|
|
|
config NR_CPUS_RANGE_BEGIN
|
|
int
|
|
default NR_CPUS_RANGE_END if MAXSMP
|
|
default 1 if !SMP
|
|
default 2
|
|
|
|
config NR_CPUS_RANGE_END
|
|
int
|
|
depends on X86_32
|
|
default 64 if SMP && X86_BIGSMP
|
|
default 8 if SMP && !X86_BIGSMP
|
|
default 1 if !SMP
|
|
|
|
config NR_CPUS_RANGE_END
|
|
int
|
|
depends on X86_64
|
|
default 8192 if SMP && CPUMASK_OFFSTACK
|
|
default 512 if SMP && !CPUMASK_OFFSTACK
|
|
default 1 if !SMP
|
|
|
|
config NR_CPUS_DEFAULT
|
|
int
|
|
depends on X86_32
|
|
default 32 if X86_BIGSMP
|
|
default 8 if SMP
|
|
default 1 if !SMP
|
|
|
|
config NR_CPUS_DEFAULT
|
|
int
|
|
depends on X86_64
|
|
default 8192 if MAXSMP
|
|
default 64 if SMP
|
|
default 1 if !SMP
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs" if SMP && !MAXSMP
|
|
range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END
|
|
default NR_CPUS_DEFAULT
|
|
help
|
|
This allows you to specify the maximum number of CPUs which this
|
|
kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum
|
|
supported value is 8192, otherwise the maximum value is 512. The
|
|
minimum value which makes sense is 2.
|
|
|
|
This is purely to save memory: each supported CPU adds about 8KB
|
|
to the kernel image.
|
|
|
|
config SCHED_SMT
|
|
def_bool y if SMP
|
|
|
|
config SCHED_MC
|
|
def_bool y
|
|
prompt "Multi-core scheduler support"
|
|
depends on SMP
|
|
help
|
|
Multi-core scheduler support improves the CPU scheduler's decision
|
|
making when dealing with multi-core CPU chips at a cost of slightly
|
|
increased overhead in some places. If unsure say N here.
|
|
|
|
config SCHED_MC_PRIO
|
|
bool "CPU core priorities scheduler support"
|
|
depends on SCHED_MC && CPU_SUP_INTEL
|
|
select X86_INTEL_PSTATE
|
|
select CPU_FREQ
|
|
default y
|
|
help
|
|
Intel Turbo Boost Max Technology 3.0 enabled CPUs have a
|
|
core ordering determined at manufacturing time, which allows
|
|
certain cores to reach higher turbo frequencies (when running
|
|
single threaded workloads) than others.
|
|
|
|
Enabling this kernel feature teaches the scheduler about
|
|
the TBM3 (aka ITMT) priority order of the CPU cores and adjusts the
|
|
scheduler's CPU selection logic accordingly, so that higher
|
|
overall system performance can be achieved.
|
|
|
|
This feature will have no effect on CPUs without this feature.
|
|
|
|
If unsure say Y here.
|
|
|
|
config UP_LATE_INIT
|
|
def_bool y
|
|
depends on !SMP && X86_LOCAL_APIC
|
|
|
|
config X86_UP_APIC
|
|
bool "Local APIC support on uniprocessors" if !PCI_MSI
|
|
default PCI_MSI
|
|
depends on X86_32 && !SMP && !X86_32_NON_STANDARD
|
|
help
|
|
A local APIC (Advanced Programmable Interrupt Controller) is an
|
|
integrated interrupt controller in the CPU. If you have a single-CPU
|
|
system which has a processor with a local APIC, you can say Y here to
|
|
enable and use it. If you say Y here even though your machine doesn't
|
|
have a local APIC, then the kernel will still run with no slowdown at
|
|
all. The local APIC supports CPU-generated self-interrupts (timer,
|
|
performance counters), and the NMI watchdog which detects hard
|
|
lockups.
|
|
|
|
config X86_UP_IOAPIC
|
|
bool "IO-APIC support on uniprocessors"
|
|
depends on X86_UP_APIC
|
|
help
|
|
An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
|
|
SMP-capable replacement for PC-style interrupt controllers. Most
|
|
SMP systems and many recent uniprocessor systems have one.
|
|
|
|
If you have a single-CPU system with an IO-APIC, you can say Y here
|
|
to use it. If you say Y here even though your machine doesn't have
|
|
an IO-APIC, then the kernel will still run with no slowdown at all.
|
|
|
|
config X86_LOCAL_APIC
|
|
def_bool y
|
|
depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI
|
|
select IRQ_DOMAIN_HIERARCHY
|
|
select PCI_MSI_IRQ_DOMAIN if PCI_MSI
|
|
|
|
config X86_IO_APIC
|
|
def_bool y
|
|
depends on X86_LOCAL_APIC || X86_UP_IOAPIC
|
|
|
|
config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
|
|
bool "Reroute for broken boot IRQs"
|
|
depends on X86_IO_APIC
|
|
help
|
|
This option enables a workaround that fixes a source of
|
|
spurious interrupts. This is recommended when threaded
|
|
interrupt handling is used on systems where the generation of
|
|
superfluous "boot interrupts" cannot be disabled.
|
|
|
|
Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
|
|
entry in the chipset's IO-APIC is masked (as, e.g. the RT
|
|
kernel does during interrupt handling). On chipsets where this
|
|
boot IRQ generation cannot be disabled, this workaround keeps
|
|
the original IRQ line masked so that only the equivalent "boot
|
|
IRQ" is delivered to the CPUs. The workaround also tells the
|
|
kernel to set up the IRQ handler on the boot IRQ line. In this
|
|
way only one interrupt is delivered to the kernel. Otherwise
|
|
the spurious second interrupt may cause the kernel to bring
|
|
down (vital) interrupt lines.
|
|
|
|
Only affects "broken" chipsets. Interrupt sharing may be
|
|
increased on these systems.
|
|
|
|
config X86_MCE
|
|
bool "Machine Check / overheating reporting"
|
|
select GENERIC_ALLOCATOR
|
|
default y
|
|
help
|
|
Machine Check support allows the processor to notify the
|
|
kernel if it detects a problem (e.g. overheating, data corruption).
|
|
The action the kernel takes depends on the severity of the problem,
|
|
ranging from warning messages to halting the machine.
|
|
|
|
config X86_MCELOG_LEGACY
|
|
bool "Support for deprecated /dev/mcelog character device"
|
|
depends on X86_MCE
|
|
help
|
|
Enable support for /dev/mcelog which is needed by the old mcelog
|
|
userspace logging daemon. Consider switching to the new generation
|
|
rasdaemon solution.
|
|
|
|
config X86_MCE_INTEL
|
|
def_bool y
|
|
prompt "Intel MCE features"
|
|
depends on X86_MCE && X86_LOCAL_APIC
|
|
help
|
|
Additional support for intel specific MCE features such as
|
|
the thermal monitor.
|
|
|
|
config X86_MCE_AMD
|
|
def_bool y
|
|
prompt "AMD MCE features"
|
|
depends on X86_MCE && X86_LOCAL_APIC && AMD_NB
|
|
help
|
|
Additional support for AMD specific MCE features such as
|
|
the DRAM Error Threshold.
|
|
|
|
config X86_ANCIENT_MCE
|
|
bool "Support for old Pentium 5 / WinChip machine checks"
|
|
depends on X86_32 && X86_MCE
|
|
help
|
|
Include support for machine check handling on old Pentium 5 or WinChip
|
|
systems. These typically need to be enabled explicitly on the command
|
|
line.
|
|
|
|
config X86_MCE_THRESHOLD
|
|
depends on X86_MCE_AMD || X86_MCE_INTEL
|
|
def_bool y
|
|
|
|
config X86_MCE_INJECT
|
|
depends on X86_MCE && X86_LOCAL_APIC && DEBUG_FS
|
|
tristate "Machine check injector support"
|
|
help
|
|
Provide support for injecting machine checks for testing purposes.
|
|
If you don't know what a machine check is and you don't do kernel
|
|
QA it is safe to say n.
|
|
|
|
source "arch/x86/events/Kconfig"
|
|
|
|
config X86_LEGACY_VM86
|
|
bool "Legacy VM86 support"
|
|
depends on X86_32
|
|
help
|
|
This option allows user programs to put the CPU into V8086
|
|
mode, which is an 80286-era approximation of 16-bit real mode.
|
|
|
|
Some very old versions of X and/or vbetool require this option
|
|
for user mode setting. Similarly, DOSEMU will use it if
|
|
available to accelerate real mode DOS programs. However, any
|
|
recent version of DOSEMU, X, or vbetool should be fully
|
|
functional even without kernel VM86 support, as they will all
|
|
fall back to software emulation. Nevertheless, if you are using
|
|
a 16-bit DOS program where 16-bit performance matters, vm86
|
|
mode might be faster than emulation and you might want to
|
|
enable this option.
|
|
|
|
Note that any app that works on a 64-bit kernel is unlikely to
|
|
need this option, as 64-bit kernels don't, and can't, support
|
|
V8086 mode. This option is also unrelated to 16-bit protected
|
|
mode and is not needed to run most 16-bit programs under Wine.
|
|
|
|
Enabling this option increases the complexity of the kernel
|
|
and slows down exception handling a tiny bit.
|
|
|
|
If unsure, say N here.
|
|
|
|
config VM86
|
|
bool
|
|
default X86_LEGACY_VM86
|
|
|
|
config X86_16BIT
|
|
bool "Enable support for 16-bit segments" if EXPERT
|
|
default y
|
|
depends on MODIFY_LDT_SYSCALL
|
|
help
|
|
This option is required by programs like Wine to run 16-bit
|
|
protected mode legacy code on x86 processors. Disabling
|
|
this option saves about 300 bytes on i386, or around 6K text
|
|
plus 16K runtime memory on x86-64,
|
|
|
|
config X86_ESPFIX32
|
|
def_bool y
|
|
depends on X86_16BIT && X86_32
|
|
|
|
config X86_ESPFIX64
|
|
def_bool y
|
|
depends on X86_16BIT && X86_64
|
|
|
|
config X86_VSYSCALL_EMULATION
|
|
bool "Enable vsyscall emulation" if EXPERT
|
|
default y
|
|
depends on X86_64
|
|
help
|
|
This enables emulation of the legacy vsyscall page. Disabling
|
|
it is roughly equivalent to booting with vsyscall=none, except
|
|
that it will also disable the helpful warning if a program
|
|
tries to use a vsyscall. With this option set to N, offending
|
|
programs will just segfault, citing addresses of the form
|
|
0xffffffffff600?00.
|
|
|
|
This option is required by many programs built before 2013, and
|
|
care should be used even with newer programs if set to N.
|
|
|
|
Disabling this option saves about 7K of kernel size and
|
|
possibly 4K of additional runtime pagetable memory.
|
|
|
|
config X86_IOPL_IOPERM
|
|
bool "IOPERM and IOPL Emulation"
|
|
default y
|
|
help
|
|
This enables the ioperm() and iopl() syscalls which are necessary
|
|
for legacy applications.
|
|
|
|
Legacy IOPL support is an overbroad mechanism which allows user
|
|
space aside of accessing all 65536 I/O ports also to disable
|
|
interrupts. To gain this access the caller needs CAP_SYS_RAWIO
|
|
capabilities and permission from potentially active security
|
|
modules.
|
|
|
|
The emulation restricts the functionality of the syscall to
|
|
only allowing the full range I/O port access, but prevents the
|
|
ability to disable interrupts from user space which would be
|
|
granted if the hardware IOPL mechanism would be used.
|
|
|
|
config TOSHIBA
|
|
tristate "Toshiba Laptop support"
|
|
depends on X86_32
|
|
help
|
|
This adds a driver to safely access the System Management Mode of
|
|
the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
|
|
not work on models with a Phoenix BIOS. The System Management Mode
|
|
is used to set the BIOS and power saving options on Toshiba portables.
|
|
|
|
For information on utilities to make use of this driver see the
|
|
Toshiba Linux utilities web site at:
|
|
<http://www.buzzard.org.uk/toshiba/>.
|
|
|
|
Say Y if you intend to run this kernel on a Toshiba portable.
|
|
Say N otherwise.
|
|
|
|
config I8K
|
|
tristate "Dell i8k legacy laptop support"
|
|
depends on HWMON
|
|
depends on PROC_FS
|
|
select SENSORS_DELL_SMM
|
|
help
|
|
This option enables legacy /proc/i8k userspace interface in hwmon
|
|
dell-smm-hwmon driver. Character file /proc/i8k reports bios version,
|
|
temperature and allows controlling fan speeds of Dell laptops via
|
|
System Management Mode. For old Dell laptops (like Dell Inspiron 8000)
|
|
it reports also power and hotkey status. For fan speed control is
|
|
needed userspace package i8kutils.
|
|
|
|
Say Y if you intend to run this kernel on old Dell laptops or want to
|
|
use userspace package i8kutils.
|
|
Say N otherwise.
|
|
|
|
config X86_REBOOTFIXUPS
|
|
bool "Enable X86 board specific fixups for reboot"
|
|
depends on X86_32
|
|
help
|
|
This enables chipset and/or board specific fixups to be done
|
|
in order to get reboot to work correctly. This is only needed on
|
|
some combinations of hardware and BIOS. The symptom, for which
|
|
this config is intended, is when reboot ends with a stalled/hung
|
|
system.
|
|
|
|
Currently, the only fixup is for the Geode machines using
|
|
CS5530A and CS5536 chipsets and the RDC R-321x SoC.
|
|
|
|
Say Y if you want to enable the fixup. Currently, it's safe to
|
|
enable this option even if you don't need it.
|
|
Say N otherwise.
|
|
|
|
config MICROCODE
|
|
bool "CPU microcode loading support"
|
|
default y
|
|
depends on CPU_SUP_AMD || CPU_SUP_INTEL
|
|
help
|
|
If you say Y here, you will be able to update the microcode on
|
|
Intel and AMD processors. The Intel support is for the IA32 family,
|
|
e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4, Xeon etc. The
|
|
AMD support is for families 0x10 and later. You will obviously need
|
|
the actual microcode binary data itself which is not shipped with
|
|
the Linux kernel.
|
|
|
|
The preferred method to load microcode from a detached initrd is described
|
|
in Documentation/x86/microcode.rst. For that you need to enable
|
|
CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
|
|
initrd for microcode blobs.
|
|
|
|
In addition, you can build the microcode into the kernel. For that you
|
|
need to add the vendor-supplied microcode to the CONFIG_EXTRA_FIRMWARE
|
|
config option.
|
|
|
|
config MICROCODE_INTEL
|
|
bool "Intel microcode loading support"
|
|
depends on CPU_SUP_INTEL && MICROCODE
|
|
default MICROCODE
|
|
help
|
|
This options enables microcode patch loading support for Intel
|
|
processors.
|
|
|
|
For the current Intel microcode data package go to
|
|
<https://downloadcenter.intel.com> and search for
|
|
'Linux Processor Microcode Data File'.
|
|
|
|
config MICROCODE_AMD
|
|
bool "AMD microcode loading support"
|
|
depends on CPU_SUP_AMD && MICROCODE
|
|
help
|
|
If you select this option, microcode patch loading support for AMD
|
|
processors will be enabled.
|
|
|
|
config MICROCODE_OLD_INTERFACE
|
|
bool "Ancient loading interface (DEPRECATED)"
|
|
default n
|
|
depends on MICROCODE
|
|
help
|
|
DO NOT USE THIS! This is the ancient /dev/cpu/microcode interface
|
|
which was used by userspace tools like iucode_tool and microcode.ctl.
|
|
It is inadequate because it runs too late to be able to properly
|
|
load microcode on a machine and it needs special tools. Instead, you
|
|
should've switched to the early loading method with the initrd or
|
|
builtin microcode by now: Documentation/x86/microcode.rst
|
|
|
|
config X86_MSR
|
|
tristate "/dev/cpu/*/msr - Model-specific register support"
|
|
help
|
|
This device gives privileged processes access to the x86
|
|
Model-Specific Registers (MSRs). It is a character device with
|
|
major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
|
|
MSR accesses are directed to a specific CPU on multi-processor
|
|
systems.
|
|
|
|
config X86_CPUID
|
|
tristate "/dev/cpu/*/cpuid - CPU information support"
|
|
help
|
|
This device gives processes access to the x86 CPUID instruction to
|
|
be executed on a specific processor. It is a character device
|
|
with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
|
|
/dev/cpu/31/cpuid.
|
|
|
|
choice
|
|
prompt "High Memory Support"
|
|
default HIGHMEM4G
|
|
depends on X86_32
|
|
|
|
config NOHIGHMEM
|
|
bool "off"
|
|
help
|
|
Linux can use up to 64 Gigabytes of physical memory on x86 systems.
|
|
However, the address space of 32-bit x86 processors is only 4
|
|
Gigabytes large. That means that, if you have a large amount of
|
|
physical memory, not all of it can be "permanently mapped" by the
|
|
kernel. The physical memory that's not permanently mapped is called
|
|
"high memory".
|
|
|
|
If you are compiling a kernel which will never run on a machine with
|
|
more than 1 Gigabyte total physical RAM, answer "off" here (default
|
|
choice and suitable for most users). This will result in a "3GB/1GB"
|
|
split: 3GB are mapped so that each process sees a 3GB virtual memory
|
|
space and the remaining part of the 4GB virtual memory space is used
|
|
by the kernel to permanently map as much physical memory as
|
|
possible.
|
|
|
|
If the machine has between 1 and 4 Gigabytes physical RAM, then
|
|
answer "4GB" here.
|
|
|
|
If more than 4 Gigabytes is used then answer "64GB" here. This
|
|
selection turns Intel PAE (Physical Address Extension) mode on.
|
|
PAE implements 3-level paging on IA32 processors. PAE is fully
|
|
supported by Linux, PAE mode is implemented on all recent Intel
|
|
processors (Pentium Pro and better). NOTE: If you say "64GB" here,
|
|
then the kernel will not boot on CPUs that don't support PAE!
|
|
|
|
The actual amount of total physical memory will either be
|
|
auto detected or can be forced by using a kernel command line option
|
|
such as "mem=256M". (Try "man bootparam" or see the documentation of
|
|
your boot loader (lilo or loadlin) about how to pass options to the
|
|
kernel at boot time.)
|
|
|
|
If unsure, say "off".
|
|
|
|
config HIGHMEM4G
|
|
bool "4GB"
|
|
help
|
|
Select this if you have a 32-bit processor and between 1 and 4
|
|
gigabytes of physical RAM.
|
|
|
|
config HIGHMEM64G
|
|
bool "64GB"
|
|
depends on !M486SX && !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6
|
|
select X86_PAE
|
|
help
|
|
Select this if you have a 32-bit processor and more than 4
|
|
gigabytes of physical RAM.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Memory split" if EXPERT
|
|
default VMSPLIT_3G
|
|
depends on X86_32
|
|
help
|
|
Select the desired split between kernel and user memory.
|
|
|
|
If the address range available to the kernel is less than the
|
|
physical memory installed, the remaining memory will be available
|
|
as "high memory". Accessing high memory is a little more costly
|
|
than low memory, as it needs to be mapped into the kernel first.
|
|
Note that increasing the kernel address space limits the range
|
|
available to user programs, making the address space there
|
|
tighter. Selecting anything other than the default 3G/1G split
|
|
will also likely make your kernel incompatible with binary-only
|
|
kernel modules.
|
|
|
|
If you are not absolutely sure what you are doing, leave this
|
|
option alone!
|
|
|
|
config VMSPLIT_3G
|
|
bool "3G/1G user/kernel split"
|
|
config VMSPLIT_3G_OPT
|
|
depends on !X86_PAE
|
|
bool "3G/1G user/kernel split (for full 1G low memory)"
|
|
config VMSPLIT_2G
|
|
bool "2G/2G user/kernel split"
|
|
config VMSPLIT_2G_OPT
|
|
depends on !X86_PAE
|
|
bool "2G/2G user/kernel split (for full 2G low memory)"
|
|
config VMSPLIT_1G
|
|
bool "1G/3G user/kernel split"
|
|
endchoice
|
|
|
|
config PAGE_OFFSET
|
|
hex
|
|
default 0xB0000000 if VMSPLIT_3G_OPT
|
|
default 0x80000000 if VMSPLIT_2G
|
|
default 0x78000000 if VMSPLIT_2G_OPT
|
|
default 0x40000000 if VMSPLIT_1G
|
|
default 0xC0000000
|
|
depends on X86_32
|
|
|
|
config HIGHMEM
|
|
def_bool y
|
|
depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
|
|
|
|
config X86_PAE
|
|
bool "PAE (Physical Address Extension) Support"
|
|
depends on X86_32 && !HIGHMEM4G
|
|
select PHYS_ADDR_T_64BIT
|
|
select SWIOTLB
|
|
help
|
|
PAE is required for NX support, and furthermore enables
|
|
larger swapspace support for non-overcommit purposes. It
|
|
has the cost of more pagetable lookup overhead, and also
|
|
consumes more pagetable space per process.
|
|
|
|
config X86_5LEVEL
|
|
bool "Enable 5-level page tables support"
|
|
default y
|
|
select DYNAMIC_MEMORY_LAYOUT
|
|
select SPARSEMEM_VMEMMAP
|
|
depends on X86_64
|
|
help
|
|
5-level paging enables access to larger address space:
|
|
upto 128 PiB of virtual address space and 4 PiB of
|
|
physical address space.
|
|
|
|
It will be supported by future Intel CPUs.
|
|
|
|
A kernel with the option enabled can be booted on machines that
|
|
support 4- or 5-level paging.
|
|
|
|
See Documentation/x86/x86_64/5level-paging.rst for more
|
|
information.
|
|
|
|
Say N if unsure.
|
|
|
|
config X86_DIRECT_GBPAGES
|
|
def_bool y
|
|
depends on X86_64
|
|
help
|
|
Certain kernel features effectively disable kernel
|
|
linear 1 GB mappings (even if the CPU otherwise
|
|
supports them), so don't confuse the user by printing
|
|
that we have them enabled.
|
|
|
|
config X86_CPA_STATISTICS
|
|
bool "Enable statistic for Change Page Attribute"
|
|
depends on DEBUG_FS
|
|
help
|
|
Expose statistics about the Change Page Attribute mechanism, which
|
|
helps to determine the effectiveness of preserving large and huge
|
|
page mappings when mapping protections are changed.
|
|
|
|
config AMD_MEM_ENCRYPT
|
|
bool "AMD Secure Memory Encryption (SME) support"
|
|
depends on X86_64 && CPU_SUP_AMD
|
|
select DMA_COHERENT_POOL
|
|
select DYNAMIC_PHYSICAL_MASK
|
|
select ARCH_USE_MEMREMAP_PROT
|
|
select ARCH_HAS_FORCE_DMA_UNENCRYPTED
|
|
select INSTRUCTION_DECODER
|
|
select ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
|
|
select ARCH_HAS_CC_PLATFORM
|
|
help
|
|
Say yes to enable support for the encryption of system memory.
|
|
This requires an AMD processor that supports Secure Memory
|
|
Encryption (SME).
|
|
|
|
config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT
|
|
bool "Activate AMD Secure Memory Encryption (SME) by default"
|
|
depends on AMD_MEM_ENCRYPT
|
|
help
|
|
Say yes to have system memory encrypted by default if running on
|
|
an AMD processor that supports Secure Memory Encryption (SME).
|
|
|
|
If set to Y, then the encryption of system memory can be
|
|
deactivated with the mem_encrypt=off command line option.
|
|
|
|
If set to N, then the encryption of system memory can be
|
|
activated with the mem_encrypt=on command line option.
|
|
|
|
# Common NUMA Features
|
|
config NUMA
|
|
bool "NUMA Memory Allocation and Scheduler Support"
|
|
depends on SMP
|
|
depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
|
|
default y if X86_BIGSMP
|
|
help
|
|
Enable NUMA (Non-Uniform Memory Access) support.
|
|
|
|
The kernel will try to allocate memory used by a CPU on the
|
|
local memory controller of the CPU and add some more
|
|
NUMA awareness to the kernel.
|
|
|
|
For 64-bit this is recommended if the system is Intel Core i7
|
|
(or later), AMD Opteron, or EM64T NUMA.
|
|
|
|
For 32-bit this is only needed if you boot a 32-bit
|
|
kernel on a 64-bit NUMA platform.
|
|
|
|
Otherwise, you should say N.
|
|
|
|
config AMD_NUMA
|
|
def_bool y
|
|
prompt "Old style AMD Opteron NUMA detection"
|
|
depends on X86_64 && NUMA && PCI
|
|
help
|
|
Enable AMD NUMA node topology detection. You should say Y here if
|
|
you have a multi processor AMD system. This uses an old method to
|
|
read the NUMA configuration directly from the builtin Northbridge
|
|
of Opteron. It is recommended to use X86_64_ACPI_NUMA instead,
|
|
which also takes priority if both are compiled in.
|
|
|
|
config X86_64_ACPI_NUMA
|
|
def_bool y
|
|
prompt "ACPI NUMA detection"
|
|
depends on X86_64 && NUMA && ACPI && PCI
|
|
select ACPI_NUMA
|
|
help
|
|
Enable ACPI SRAT based node topology detection.
|
|
|
|
config NUMA_EMU
|
|
bool "NUMA emulation"
|
|
depends on NUMA
|
|
help
|
|
Enable NUMA emulation. A flat machine will be split
|
|
into virtual nodes when booted with "numa=fake=N", where N is the
|
|
number of nodes. This is only useful for debugging.
|
|
|
|
config NODES_SHIFT
|
|
int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
|
|
range 1 10
|
|
default "10" if MAXSMP
|
|
default "6" if X86_64
|
|
default "3"
|
|
depends on NUMA
|
|
help
|
|
Specify the maximum number of NUMA Nodes available on the target
|
|
system. Increases memory reserved to accommodate various tables.
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
def_bool y
|
|
depends on X86_32 && !NUMA
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y
|
|
depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD
|
|
select SPARSEMEM_STATIC if X86_32
|
|
select SPARSEMEM_VMEMMAP_ENABLE if X86_64
|
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
|
def_bool X86_64 || (NUMA && X86_32)
|
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
def_bool y
|
|
depends on ARCH_SPARSEMEM_ENABLE
|
|
|
|
config ARCH_MEMORY_PROBE
|
|
bool "Enable sysfs memory/probe interface"
|
|
depends on X86_64 && MEMORY_HOTPLUG
|
|
help
|
|
This option enables a sysfs memory/probe interface for testing.
|
|
See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
|
|
If you are unsure how to answer this question, answer N.
|
|
|
|
config ARCH_PROC_KCORE_TEXT
|
|
def_bool y
|
|
depends on X86_64 && PROC_KCORE
|
|
|
|
config ILLEGAL_POINTER_VALUE
|
|
hex
|
|
default 0 if X86_32
|
|
default 0xdead000000000000 if X86_64
|
|
|
|
config X86_PMEM_LEGACY_DEVICE
|
|
bool
|
|
|
|
config X86_PMEM_LEGACY
|
|
tristate "Support non-standard NVDIMMs and ADR protected memory"
|
|
depends on PHYS_ADDR_T_64BIT
|
|
depends on BLK_DEV
|
|
select X86_PMEM_LEGACY_DEVICE
|
|
select NUMA_KEEP_MEMINFO if NUMA
|
|
select LIBNVDIMM
|
|
help
|
|
Treat memory marked using the non-standard e820 type of 12 as used
|
|
by the Intel Sandy Bridge-EP reference BIOS as protected memory.
|
|
The kernel will offer these regions to the 'pmem' driver so
|
|
they can be used for persistent storage.
|
|
|
|
Say Y if unsure.
|
|
|
|
config HIGHPTE
|
|
bool "Allocate 3rd-level pagetables from highmem"
|
|
depends on HIGHMEM
|
|
help
|
|
The VM uses one page table entry for each page of physical memory.
|
|
For systems with a lot of RAM, this can be wasteful of precious
|
|
low memory. Setting this option will put user-space page table
|
|
entries in high memory.
|
|
|
|
config X86_CHECK_BIOS_CORRUPTION
|
|
bool "Check for low memory corruption"
|
|
help
|
|
Periodically check for memory corruption in low memory, which
|
|
is suspected to be caused by BIOS. Even when enabled in the
|
|
configuration, it is disabled at runtime. Enable it by
|
|
setting "memory_corruption_check=1" on the kernel command
|
|
line. By default it scans the low 64k of memory every 60
|
|
seconds; see the memory_corruption_check_size and
|
|
memory_corruption_check_period parameters in
|
|
Documentation/admin-guide/kernel-parameters.rst to adjust this.
|
|
|
|
When enabled with the default parameters, this option has
|
|
almost no overhead, as it reserves a relatively small amount
|
|
of memory and scans it infrequently. It both detects corruption
|
|
and prevents it from affecting the running system.
|
|
|
|
It is, however, intended as a diagnostic tool; if repeatable
|
|
BIOS-originated corruption always affects the same memory,
|
|
you can use memmap= to prevent the kernel from using that
|
|
memory.
|
|
|
|
config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
|
|
bool "Set the default setting of memory_corruption_check"
|
|
depends on X86_CHECK_BIOS_CORRUPTION
|
|
default y
|
|
help
|
|
Set whether the default state of memory_corruption_check is
|
|
on or off.
|
|
|
|
config MATH_EMULATION
|
|
bool
|
|
depends on MODIFY_LDT_SYSCALL
|
|
prompt "Math emulation" if X86_32 && (M486SX || MELAN)
|
|
help
|
|
Linux can emulate a math coprocessor (used for floating point
|
|
operations) if you don't have one. 486DX and Pentium processors have
|
|
a math coprocessor built in, 486SX and 386 do not, unless you added
|
|
a 487DX or 387, respectively. (The messages during boot time can
|
|
give you some hints here ["man dmesg"].) Everyone needs either a
|
|
coprocessor or this emulation.
|
|
|
|
If you don't have a math coprocessor, you need to say Y here; if you
|
|
say Y here even though you have a coprocessor, the coprocessor will
|
|
be used nevertheless. (This behavior can be changed with the kernel
|
|
command line option "no387", which comes handy if your coprocessor
|
|
is broken. Try "man bootparam" or see the documentation of your boot
|
|
loader (lilo or loadlin) about how to pass options to the kernel at
|
|
boot time.) This means that it is a good idea to say Y here if you
|
|
intend to use this kernel on different machines.
|
|
|
|
More information about the internals of the Linux math coprocessor
|
|
emulation can be found in <file:arch/x86/math-emu/README>.
|
|
|
|
If you are not sure, say Y; apart from resulting in a 66 KB bigger
|
|
kernel, it won't hurt.
|
|
|
|
config MTRR
|
|
def_bool y
|
|
prompt "MTRR (Memory Type Range Register) support" if EXPERT
|
|
help
|
|
On Intel P6 family processors (Pentium Pro, Pentium II and later)
|
|
the Memory Type Range Registers (MTRRs) may be used to control
|
|
processor access to memory ranges. This is most useful if you have
|
|
a video (VGA) card on a PCI or AGP bus. Enabling write-combining
|
|
allows bus write transfers to be combined into a larger transfer
|
|
before bursting over the PCI/AGP bus. This can increase performance
|
|
of image write operations 2.5 times or more. Saying Y here creates a
|
|
/proc/mtrr file which may be used to manipulate your processor's
|
|
MTRRs. Typically the X server should use this.
|
|
|
|
This code has a reasonably generic interface so that similar
|
|
control registers on other processors can be easily supported
|
|
as well:
|
|
|
|
The Cyrix 6x86, 6x86MX and M II processors have Address Range
|
|
Registers (ARRs) which provide a similar functionality to MTRRs. For
|
|
these, the ARRs are used to emulate the MTRRs.
|
|
The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
|
|
MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
|
|
write-combining. All of these processors are supported by this code
|
|
and it makes sense to say Y here if you have one of them.
|
|
|
|
Saying Y here also fixes a problem with buggy SMP BIOSes which only
|
|
set the MTRRs for the boot CPU and not for the secondary CPUs. This
|
|
can lead to all sorts of problems, so it's good to say Y here.
|
|
|
|
You can safely say Y even if your machine doesn't have MTRRs, you'll
|
|
just add about 9 KB to your kernel.
|
|
|
|
See <file:Documentation/x86/mtrr.rst> for more information.
|
|
|
|
config MTRR_SANITIZER
|
|
def_bool y
|
|
prompt "MTRR cleanup support"
|
|
depends on MTRR
|
|
help
|
|
Convert MTRR layout from continuous to discrete, so X drivers can
|
|
add writeback entries.
|
|
|
|
Can be disabled with disable_mtrr_cleanup on the kernel command line.
|
|
The largest mtrr entry size for a continuous block can be set with
|
|
mtrr_chunk_size.
|
|
|
|
If unsure, say Y.
|
|
|
|
config MTRR_SANITIZER_ENABLE_DEFAULT
|
|
int "MTRR cleanup enable value (0-1)"
|
|
range 0 1
|
|
default "0"
|
|
depends on MTRR_SANITIZER
|
|
help
|
|
Enable mtrr cleanup default value
|
|
|
|
config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
|
|
int "MTRR cleanup spare reg num (0-7)"
|
|
range 0 7
|
|
default "1"
|
|
depends on MTRR_SANITIZER
|
|
help
|
|
mtrr cleanup spare entries default, it can be changed via
|
|
mtrr_spare_reg_nr=N on the kernel command line.
|
|
|
|
config X86_PAT
|
|
def_bool y
|
|
prompt "x86 PAT support" if EXPERT
|
|
depends on MTRR
|
|
help
|
|
Use PAT attributes to setup page level cache control.
|
|
|
|
PATs are the modern equivalents of MTRRs and are much more
|
|
flexible than MTRRs.
|
|
|
|
Say N here if you see bootup problems (boot crash, boot hang,
|
|
spontaneous reboots) or a non-working video driver.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARCH_USES_PG_UNCACHED
|
|
def_bool y
|
|
depends on X86_PAT
|
|
|
|
config ARCH_RANDOM
|
|
def_bool y
|
|
prompt "x86 architectural random number generator" if EXPERT
|
|
help
|
|
Enable the x86 architectural RDRAND instruction
|
|
(Intel Bull Mountain technology) to generate random numbers.
|
|
If supported, this is a high bandwidth, cryptographically
|
|
secure hardware random number generator.
|
|
|
|
config X86_SMAP
|
|
def_bool y
|
|
prompt "Supervisor Mode Access Prevention" if EXPERT
|
|
help
|
|
Supervisor Mode Access Prevention (SMAP) is a security
|
|
feature in newer Intel processors. There is a small
|
|
performance cost if this enabled and turned on; there is
|
|
also a small increase in the kernel size if this is enabled.
|
|
|
|
If unsure, say Y.
|
|
|
|
config X86_UMIP
|
|
def_bool y
|
|
prompt "User Mode Instruction Prevention" if EXPERT
|
|
help
|
|
User Mode Instruction Prevention (UMIP) is a security feature in
|
|
some x86 processors. If enabled, a general protection fault is
|
|
issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are
|
|
executed in user mode. These instructions unnecessarily expose
|
|
information about the hardware state.
|
|
|
|
The vast majority of applications do not use these instructions.
|
|
For the very few that do, software emulation is provided in
|
|
specific cases in protected and virtual-8086 modes. Emulated
|
|
results are dummy.
|
|
|
|
config X86_INTEL_MEMORY_PROTECTION_KEYS
|
|
prompt "Memory Protection Keys"
|
|
def_bool y
|
|
# Note: only available in 64-bit mode
|
|
depends on X86_64 && (CPU_SUP_INTEL || CPU_SUP_AMD)
|
|
select ARCH_USES_HIGH_VMA_FLAGS
|
|
select ARCH_HAS_PKEYS
|
|
help
|
|
Memory Protection Keys provides a mechanism for enforcing
|
|
page-based protections, but without requiring modification of the
|
|
page tables when an application changes protection domains.
|
|
|
|
For details, see Documentation/core-api/protection-keys.rst
|
|
|
|
If unsure, say y.
|
|
|
|
choice
|
|
prompt "TSX enable mode"
|
|
depends on CPU_SUP_INTEL
|
|
default X86_INTEL_TSX_MODE_OFF
|
|
help
|
|
Intel's TSX (Transactional Synchronization Extensions) feature
|
|
allows to optimize locking protocols through lock elision which
|
|
can lead to a noticeable performance boost.
|
|
|
|
On the other hand it has been shown that TSX can be exploited
|
|
to form side channel attacks (e.g. TAA) and chances are there
|
|
will be more of those attacks discovered in the future.
|
|
|
|
Therefore TSX is not enabled by default (aka tsx=off). An admin
|
|
might override this decision by tsx=on the command line parameter.
|
|
Even with TSX enabled, the kernel will attempt to enable the best
|
|
possible TAA mitigation setting depending on the microcode available
|
|
for the particular machine.
|
|
|
|
This option allows to set the default tsx mode between tsx=on, =off
|
|
and =auto. See Documentation/admin-guide/kernel-parameters.txt for more
|
|
details.
|
|
|
|
Say off if not sure, auto if TSX is in use but it should be used on safe
|
|
platforms or on if TSX is in use and the security aspect of tsx is not
|
|
relevant.
|
|
|
|
config X86_INTEL_TSX_MODE_OFF
|
|
bool "off"
|
|
help
|
|
TSX is disabled if possible - equals to tsx=off command line parameter.
|
|
|
|
config X86_INTEL_TSX_MODE_ON
|
|
bool "on"
|
|
help
|
|
TSX is always enabled on TSX capable HW - equals the tsx=on command
|
|
line parameter.
|
|
|
|
config X86_INTEL_TSX_MODE_AUTO
|
|
bool "auto"
|
|
help
|
|
TSX is enabled on TSX capable HW that is believed to be safe against
|
|
side channel attacks- equals the tsx=auto command line parameter.
|
|
endchoice
|
|
|
|
config X86_SGX
|
|
bool "Software Guard eXtensions (SGX)"
|
|
depends on X86_64 && CPU_SUP_INTEL
|
|
depends on CRYPTO=y
|
|
depends on CRYPTO_SHA256=y
|
|
select SRCU
|
|
select MMU_NOTIFIER
|
|
select NUMA_KEEP_MEMINFO if NUMA
|
|
help
|
|
Intel(R) Software Guard eXtensions (SGX) is a set of CPU instructions
|
|
that can be used by applications to set aside private regions of code
|
|
and data, referred to as enclaves. An enclave's private memory can
|
|
only be accessed by code running within the enclave. Accesses from
|
|
outside the enclave, including other enclaves, are disallowed by
|
|
hardware.
|
|
|
|
If unsure, say N.
|
|
|
|
config EFI
|
|
bool "EFI runtime service support"
|
|
depends on ACPI
|
|
select UCS2_STRING
|
|
select EFI_RUNTIME_WRAPPERS
|
|
select ARCH_USE_MEMREMAP_PROT
|
|
help
|
|
This enables the kernel to use EFI runtime services that are
|
|
available (such as the EFI variable services).
|
|
|
|
This option is only useful on systems that have EFI firmware.
|
|
In addition, you should use the latest ELILO loader available
|
|
at <http://elilo.sourceforge.net> in order to take advantage
|
|
of EFI runtime services. However, even with this option, the
|
|
resultant kernel should continue to boot on existing non-EFI
|
|
platforms.
|
|
|
|
config EFI_STUB
|
|
bool "EFI stub support"
|
|
depends on EFI && !X86_USE_3DNOW
|
|
select RELOCATABLE
|
|
help
|
|
This kernel feature allows a bzImage to be loaded directly
|
|
by EFI firmware without the use of a bootloader.
|
|
|
|
See Documentation/admin-guide/efi-stub.rst for more information.
|
|
|
|
config EFI_MIXED
|
|
bool "EFI mixed-mode support"
|
|
depends on EFI_STUB && X86_64
|
|
help
|
|
Enabling this feature allows a 64-bit kernel to be booted
|
|
on a 32-bit firmware, provided that your CPU supports 64-bit
|
|
mode.
|
|
|
|
Note that it is not possible to boot a mixed-mode enabled
|
|
kernel via the EFI boot stub - a bootloader that supports
|
|
the EFI handover protocol must be used.
|
|
|
|
If unsure, say N.
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config KEXEC
|
|
bool "kexec system call"
|
|
select KEXEC_CORE
|
|
help
|
|
kexec is a system call that implements the ability to shutdown your
|
|
current kernel, and to start another kernel. It is like a reboot
|
|
but it is independent of the system firmware. And like a reboot
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
The name comes from the similarity to the exec system call.
|
|
|
|
It is an ongoing process to be certain the hardware in a machine
|
|
is properly shutdown, so do not be surprised if this code does not
|
|
initially work for you. As of this writing the exact hardware
|
|
interface is strongly in flux, so no good recommendation can be
|
|
made.
|
|
|
|
config KEXEC_FILE
|
|
bool "kexec file based system call"
|
|
select KEXEC_CORE
|
|
select BUILD_BIN2C
|
|
depends on X86_64
|
|
depends on CRYPTO=y
|
|
depends on CRYPTO_SHA256=y
|
|
help
|
|
This is new version of kexec system call. This system call is
|
|
file based and takes file descriptors as system call argument
|
|
for kernel and initramfs as opposed to list of segments as
|
|
accepted by previous system call.
|
|
|
|
config ARCH_HAS_KEXEC_PURGATORY
|
|
def_bool KEXEC_FILE
|
|
|
|
config KEXEC_SIG
|
|
bool "Verify kernel signature during kexec_file_load() syscall"
|
|
depends on KEXEC_FILE
|
|
help
|
|
|
|
This option makes the kexec_file_load() syscall check for a valid
|
|
signature of the kernel image. The image can still be loaded without
|
|
a valid signature unless you also enable KEXEC_SIG_FORCE, though if
|
|
there's a signature that we can check, then it must be valid.
|
|
|
|
In addition to this option, you need to enable signature
|
|
verification for the corresponding kernel image type being
|
|
loaded in order for this to work.
|
|
|
|
config KEXEC_SIG_FORCE
|
|
bool "Require a valid signature in kexec_file_load() syscall"
|
|
depends on KEXEC_SIG
|
|
help
|
|
This option makes kernel signature verification mandatory for
|
|
the kexec_file_load() syscall.
|
|
|
|
config KEXEC_BZIMAGE_VERIFY_SIG
|
|
bool "Enable bzImage signature verification support"
|
|
depends on KEXEC_SIG
|
|
depends on SIGNED_PE_FILE_VERIFICATION
|
|
select SYSTEM_TRUSTED_KEYRING
|
|
help
|
|
Enable bzImage signature verification support.
|
|
|
|
config CRASH_DUMP
|
|
bool "kernel crash dumps"
|
|
depends on X86_64 || (X86_32 && HIGHMEM)
|
|
help
|
|
Generate crash dump after being started by kexec.
|
|
This should be normally only set in special crash dump kernels
|
|
which are loaded in the main kernel with kexec-tools into
|
|
a specially reserved region and then later executed after
|
|
a crash by kdump/kexec. The crash dump kernel must be compiled
|
|
to a memory address not used by the main kernel or BIOS using
|
|
PHYSICAL_START, or it must be built as a relocatable image
|
|
(CONFIG_RELOCATABLE=y).
|
|
For more details see Documentation/admin-guide/kdump/kdump.rst
|
|
|
|
config KEXEC_JUMP
|
|
bool "kexec jump"
|
|
depends on KEXEC && HIBERNATION
|
|
help
|
|
Jump between original kernel and kexeced kernel and invoke
|
|
code in physical address mode via KEXEC
|
|
|
|
config PHYSICAL_START
|
|
hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
|
|
default "0x1000000"
|
|
help
|
|
This gives the physical address where the kernel is loaded.
|
|
|
|
If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
|
|
bzImage will decompress itself to above physical address and
|
|
run from there. Otherwise, bzImage will run from the address where
|
|
it has been loaded by the boot loader and will ignore above physical
|
|
address.
|
|
|
|
In normal kdump cases one does not have to set/change this option
|
|
as now bzImage can be compiled as a completely relocatable image
|
|
(CONFIG_RELOCATABLE=y) and be used to load and run from a different
|
|
address. This option is mainly useful for the folks who don't want
|
|
to use a bzImage for capturing the crash dump and want to use a
|
|
vmlinux instead. vmlinux is not relocatable hence a kernel needs
|
|
to be specifically compiled to run from a specific memory area
|
|
(normally a reserved region) and this option comes handy.
|
|
|
|
So if you are using bzImage for capturing the crash dump,
|
|
leave the value here unchanged to 0x1000000 and set
|
|
CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux
|
|
for capturing the crash dump change this value to start of
|
|
the reserved region. In other words, it can be set based on
|
|
the "X" value as specified in the "crashkernel=YM@XM"
|
|
command line boot parameter passed to the panic-ed
|
|
kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst
|
|
for more details about crash dumps.
|
|
|
|
Usage of bzImage for capturing the crash dump is recommended as
|
|
one does not have to build two kernels. Same kernel can be used
|
|
as production kernel and capture kernel. Above option should have
|
|
gone away after relocatable bzImage support is introduced. But it
|
|
is present because there are users out there who continue to use
|
|
vmlinux for dump capture. This option should go away down the
|
|
line.
|
|
|
|
Don't change this unless you know what you are doing.
|
|
|
|
config RELOCATABLE
|
|
bool "Build a relocatable kernel"
|
|
default y
|
|
help
|
|
This builds a kernel image that retains relocation information
|
|
so it can be loaded someplace besides the default 1MB.
|
|
The relocations tend to make the kernel binary about 10% larger,
|
|
but are discarded at runtime.
|
|
|
|
One use is for the kexec on panic case where the recovery kernel
|
|
must live at a different physical address than the primary
|
|
kernel.
|
|
|
|
Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
|
|
it has been loaded at and the compile time physical address
|
|
(CONFIG_PHYSICAL_START) is used as the minimum location.
|
|
|
|
config RANDOMIZE_BASE
|
|
bool "Randomize the address of the kernel image (KASLR)"
|
|
depends on RELOCATABLE
|
|
default y
|
|
help
|
|
In support of Kernel Address Space Layout Randomization (KASLR),
|
|
this randomizes the physical address at which the kernel image
|
|
is decompressed and the virtual address where the kernel
|
|
image is mapped, as a security feature that deters exploit
|
|
attempts relying on knowledge of the location of kernel
|
|
code internals.
|
|
|
|
On 64-bit, the kernel physical and virtual addresses are
|
|
randomized separately. The physical address will be anywhere
|
|
between 16MB and the top of physical memory (up to 64TB). The
|
|
virtual address will be randomized from 16MB up to 1GB (9 bits
|
|
of entropy). Note that this also reduces the memory space
|
|
available to kernel modules from 1.5GB to 1GB.
|
|
|
|
On 32-bit, the kernel physical and virtual addresses are
|
|
randomized together. They will be randomized from 16MB up to
|
|
512MB (8 bits of entropy).
|
|
|
|
Entropy is generated using the RDRAND instruction if it is
|
|
supported. If RDTSC is supported, its value is mixed into
|
|
the entropy pool as well. If neither RDRAND nor RDTSC are
|
|
supported, then entropy is read from the i8254 timer. The
|
|
usable entropy is limited by the kernel being built using
|
|
2GB addressing, and that PHYSICAL_ALIGN must be at a
|
|
minimum of 2MB. As a result, only 10 bits of entropy are
|
|
theoretically possible, but the implementations are further
|
|
limited due to memory layouts.
|
|
|
|
If unsure, say Y.
|
|
|
|
# Relocation on x86 needs some additional build support
|
|
config X86_NEED_RELOCS
|
|
def_bool y
|
|
depends on RANDOMIZE_BASE || (X86_32 && RELOCATABLE)
|
|
|
|
config PHYSICAL_ALIGN
|
|
hex "Alignment value to which kernel should be aligned"
|
|
default "0x200000"
|
|
range 0x2000 0x1000000 if X86_32
|
|
range 0x200000 0x1000000 if X86_64
|
|
help
|
|
This value puts the alignment restrictions on physical address
|
|
where kernel is loaded and run from. Kernel is compiled for an
|
|
address which meets above alignment restriction.
|
|
|
|
If bootloader loads the kernel at a non-aligned address and
|
|
CONFIG_RELOCATABLE is set, kernel will move itself to nearest
|
|
address aligned to above value and run from there.
|
|
|
|
If bootloader loads the kernel at a non-aligned address and
|
|
CONFIG_RELOCATABLE is not set, kernel will ignore the run time
|
|
load address and decompress itself to the address it has been
|
|
compiled for and run from there. The address for which kernel is
|
|
compiled already meets above alignment restrictions. Hence the
|
|
end result is that kernel runs from a physical address meeting
|
|
above alignment restrictions.
|
|
|
|
On 32-bit this value must be a multiple of 0x2000. On 64-bit
|
|
this value must be a multiple of 0x200000.
|
|
|
|
Don't change this unless you know what you are doing.
|
|
|
|
config DYNAMIC_MEMORY_LAYOUT
|
|
bool
|
|
help
|
|
This option makes base addresses of vmalloc and vmemmap as well as
|
|
__PAGE_OFFSET movable during boot.
|
|
|
|
config RANDOMIZE_MEMORY
|
|
bool "Randomize the kernel memory sections"
|
|
depends on X86_64
|
|
depends on RANDOMIZE_BASE
|
|
select DYNAMIC_MEMORY_LAYOUT
|
|
default RANDOMIZE_BASE
|
|
help
|
|
Randomizes the base virtual address of kernel memory sections
|
|
(physical memory mapping, vmalloc & vmemmap). This security feature
|
|
makes exploits relying on predictable memory locations less reliable.
|
|
|
|
The order of allocations remains unchanged. Entropy is generated in
|
|
the same way as RANDOMIZE_BASE. Current implementation in the optimal
|
|
configuration have in average 30,000 different possible virtual
|
|
addresses for each memory section.
|
|
|
|
If unsure, say Y.
|
|
|
|
config RANDOMIZE_MEMORY_PHYSICAL_PADDING
|
|
hex "Physical memory mapping padding" if EXPERT
|
|
depends on RANDOMIZE_MEMORY
|
|
default "0xa" if MEMORY_HOTPLUG
|
|
default "0x0"
|
|
range 0x1 0x40 if MEMORY_HOTPLUG
|
|
range 0x0 0x40
|
|
help
|
|
Define the padding in terabytes added to the existing physical
|
|
memory size during kernel memory randomization. It is useful
|
|
for memory hotplug support but reduces the entropy available for
|
|
address randomization.
|
|
|
|
If unsure, leave at the default value.
|
|
|
|
config HOTPLUG_CPU
|
|
def_bool y
|
|
depends on SMP
|
|
|
|
config BOOTPARAM_HOTPLUG_CPU0
|
|
bool "Set default setting of cpu0_hotpluggable"
|
|
depends on HOTPLUG_CPU
|
|
help
|
|
Set whether default state of cpu0_hotpluggable is on or off.
|
|
|
|
Say Y here to enable CPU0 hotplug by default. If this switch
|
|
is turned on, there is no need to give cpu0_hotplug kernel
|
|
parameter and the CPU0 hotplug feature is enabled by default.
|
|
|
|
Please note: there are two known CPU0 dependencies if you want
|
|
to enable the CPU0 hotplug feature either by this switch or by
|
|
cpu0_hotplug kernel parameter.
|
|
|
|
First, resume from hibernate or suspend always starts from CPU0.
|
|
So hibernate and suspend are prevented if CPU0 is offline.
|
|
|
|
Second dependency is PIC interrupts always go to CPU0. CPU0 can not
|
|
offline if any interrupt can not migrate out of CPU0. There may
|
|
be other CPU0 dependencies.
|
|
|
|
Please make sure the dependencies are under your control before
|
|
you enable this feature.
|
|
|
|
Say N if you don't want to enable CPU0 hotplug feature by default.
|
|
You still can enable the CPU0 hotplug feature at boot by kernel
|
|
parameter cpu0_hotplug.
|
|
|
|
config DEBUG_HOTPLUG_CPU0
|
|
def_bool n
|
|
prompt "Debug CPU0 hotplug"
|
|
depends on HOTPLUG_CPU
|
|
help
|
|
Enabling this option offlines CPU0 (if CPU0 can be offlined) as
|
|
soon as possible and boots up userspace with CPU0 offlined. User
|
|
can online CPU0 back after boot time.
|
|
|
|
To debug CPU0 hotplug, you need to enable CPU0 offline/online
|
|
feature by either turning on CONFIG_BOOTPARAM_HOTPLUG_CPU0 during
|
|
compilation or giving cpu0_hotplug kernel parameter at boot.
|
|
|
|
If unsure, say N.
|
|
|
|
config COMPAT_VDSO
|
|
def_bool n
|
|
prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
|
|
depends on COMPAT_32
|
|
help
|
|
Certain buggy versions of glibc will crash if they are
|
|
presented with a 32-bit vDSO that is not mapped at the address
|
|
indicated in its segment table.
|
|
|
|
The bug was introduced by f866314b89d56845f55e6f365e18b31ec978ec3a
|
|
and fixed by 3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a and
|
|
49ad572a70b8aeb91e57483a11dd1b77e31c4468. Glibc 2.3.3 is
|
|
the only released version with the bug, but OpenSUSE 9
|
|
contains a buggy "glibc 2.3.2".
|
|
|
|
The symptom of the bug is that everything crashes on startup, saying:
|
|
dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
|
|
|
|
Saying Y here changes the default value of the vdso32 boot
|
|
option from 1 to 0, which turns off the 32-bit vDSO entirely.
|
|
This works around the glibc bug but hurts performance.
|
|
|
|
If unsure, say N: if you are compiling your own kernel, you
|
|
are unlikely to be using a buggy version of glibc.
|
|
|
|
choice
|
|
prompt "vsyscall table for legacy applications"
|
|
depends on X86_64
|
|
default LEGACY_VSYSCALL_XONLY
|
|
help
|
|
Legacy user code that does not know how to find the vDSO expects
|
|
to be able to issue three syscalls by calling fixed addresses in
|
|
kernel space. Since this location is not randomized with ASLR,
|
|
it can be used to assist security vulnerability exploitation.
|
|
|
|
This setting can be changed at boot time via the kernel command
|
|
line parameter vsyscall=[emulate|xonly|none].
|
|
|
|
On a system with recent enough glibc (2.14 or newer) and no
|
|
static binaries, you can say None without a performance penalty
|
|
to improve security.
|
|
|
|
If unsure, select "Emulate execution only".
|
|
|
|
config LEGACY_VSYSCALL_EMULATE
|
|
bool "Full emulation"
|
|
help
|
|
The kernel traps and emulates calls into the fixed vsyscall
|
|
address mapping. This makes the mapping non-executable, but
|
|
it still contains readable known contents, which could be
|
|
used in certain rare security vulnerability exploits. This
|
|
configuration is recommended when using legacy userspace
|
|
that still uses vsyscalls along with legacy binary
|
|
instrumentation tools that require code to be readable.
|
|
|
|
An example of this type of legacy userspace is running
|
|
Pin on an old binary that still uses vsyscalls.
|
|
|
|
config LEGACY_VSYSCALL_XONLY
|
|
bool "Emulate execution only"
|
|
help
|
|
The kernel traps and emulates calls into the fixed vsyscall
|
|
address mapping and does not allow reads. This
|
|
configuration is recommended when userspace might use the
|
|
legacy vsyscall area but support for legacy binary
|
|
instrumentation of legacy code is not needed. It mitigates
|
|
certain uses of the vsyscall area as an ASLR-bypassing
|
|
buffer.
|
|
|
|
config LEGACY_VSYSCALL_NONE
|
|
bool "None"
|
|
help
|
|
There will be no vsyscall mapping at all. This will
|
|
eliminate any risk of ASLR bypass due to the vsyscall
|
|
fixed address mapping. Attempts to use the vsyscalls
|
|
will be reported to dmesg, so that either old or
|
|
malicious userspace programs can be identified.
|
|
|
|
endchoice
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Built-in kernel command line"
|
|
help
|
|
Allow for specifying boot arguments to the kernel at
|
|
build time. On some systems (e.g. embedded ones), it is
|
|
necessary or convenient to provide some or all of the
|
|
kernel boot arguments with the kernel itself (that is,
|
|
to not rely on the boot loader to provide them.)
|
|
|
|
To compile command line arguments into the kernel,
|
|
set this option to 'Y', then fill in the
|
|
boot arguments in CONFIG_CMDLINE.
|
|
|
|
Systems with fully functional boot loaders (i.e. non-embedded)
|
|
should leave this option set to 'N'.
|
|
|
|
config CMDLINE
|
|
string "Built-in kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default ""
|
|
help
|
|
Enter arguments here that should be compiled into the kernel
|
|
image and used at boot time. If the boot loader provides a
|
|
command line at boot time, it is appended to this string to
|
|
form the full kernel command line, when the system boots.
|
|
|
|
However, you can use the CONFIG_CMDLINE_OVERRIDE option to
|
|
change this behavior.
|
|
|
|
In most cases, the command line (whether built-in or provided
|
|
by the boot loader) should specify the device for the root
|
|
file system.
|
|
|
|
config CMDLINE_OVERRIDE
|
|
bool "Built-in command line overrides boot loader arguments"
|
|
depends on CMDLINE_BOOL && CMDLINE != ""
|
|
help
|
|
Set this option to 'Y' to have the kernel ignore the boot loader
|
|
command line, and use ONLY the built-in command line.
|
|
|
|
This is used to work around broken boot loaders. This should
|
|
be set to 'N' under normal conditions.
|
|
|
|
config MODIFY_LDT_SYSCALL
|
|
bool "Enable the LDT (local descriptor table)" if EXPERT
|
|
default y
|
|
help
|
|
Linux can allow user programs to install a per-process x86
|
|
Local Descriptor Table (LDT) using the modify_ldt(2) system
|
|
call. This is required to run 16-bit or segmented code such as
|
|
DOSEMU or some Wine programs. It is also used by some very old
|
|
threading libraries.
|
|
|
|
Enabling this feature adds a small amount of overhead to
|
|
context switches and increases the low-level kernel attack
|
|
surface. Disabling it removes the modify_ldt(2) system call.
|
|
|
|
Saying 'N' here may make sense for embedded or server kernels.
|
|
|
|
source "kernel/livepatch/Kconfig"
|
|
|
|
endmenu
|
|
|
|
config CC_HAS_SLS
|
|
def_bool $(cc-option,-mharden-sls=all)
|
|
|
|
config CC_HAS_RETURN_THUNK
|
|
def_bool $(cc-option,-mfunction-return=thunk-extern)
|
|
|
|
menuconfig SPECULATION_MITIGATIONS
|
|
bool "Mitigations for speculative execution vulnerabilities"
|
|
default y
|
|
help
|
|
Say Y here to enable options which enable mitigations for
|
|
speculative execution hardware vulnerabilities.
|
|
|
|
If you say N, all mitigations will be disabled. You really
|
|
should know what you are doing to say so.
|
|
|
|
if SPECULATION_MITIGATIONS
|
|
|
|
config PAGE_TABLE_ISOLATION
|
|
bool "Remove the kernel mapping in user mode"
|
|
default y
|
|
depends on (X86_64 || X86_PAE)
|
|
help
|
|
This feature reduces the number of hardware side channels by
|
|
ensuring that the majority of kernel addresses are not mapped
|
|
into userspace.
|
|
|
|
See Documentation/x86/pti.rst for more details.
|
|
|
|
config RETPOLINE
|
|
bool "Avoid speculative indirect branches in kernel"
|
|
default y
|
|
help
|
|
Compile kernel with the retpoline compiler options to guard against
|
|
kernel-to-user data leaks by avoiding speculative indirect
|
|
branches. Requires a compiler with -mindirect-branch=thunk-extern
|
|
support for full protection. The kernel may run slower.
|
|
|
|
config RETHUNK
|
|
bool "Enable return-thunks"
|
|
depends on RETPOLINE && CC_HAS_RETURN_THUNK
|
|
default y if X86_64
|
|
help
|
|
Compile the kernel with the return-thunks compiler option to guard
|
|
against kernel-to-user data leaks by avoiding return speculation.
|
|
Requires a compiler with -mfunction-return=thunk-extern
|
|
support for full protection. The kernel may run slower.
|
|
|
|
config CPU_UNRET_ENTRY
|
|
bool "Enable UNRET on kernel entry"
|
|
depends on CPU_SUP_AMD && RETHUNK && X86_64
|
|
default y
|
|
help
|
|
Compile the kernel with support for the retbleed=unret mitigation.
|
|
|
|
config CPU_IBPB_ENTRY
|
|
bool "Enable IBPB on kernel entry"
|
|
depends on CPU_SUP_AMD && X86_64
|
|
default y
|
|
help
|
|
Compile the kernel with support for the retbleed=ibpb mitigation.
|
|
|
|
config CPU_IBRS_ENTRY
|
|
bool "Enable IBRS on kernel entry"
|
|
depends on CPU_SUP_INTEL && X86_64
|
|
default y
|
|
help
|
|
Compile the kernel with support for the spectre_v2=ibrs mitigation.
|
|
This mitigates both spectre_v2 and retbleed at great cost to
|
|
performance.
|
|
|
|
config SLS
|
|
bool "Mitigate Straight-Line-Speculation"
|
|
depends on CC_HAS_SLS && X86_64
|
|
default n
|
|
help
|
|
Compile the kernel with straight-line-speculation options to guard
|
|
against straight line speculation. The kernel image might be slightly
|
|
larger.
|
|
|
|
endif
|
|
|
|
config ARCH_HAS_ADD_PAGES
|
|
def_bool y
|
|
depends on X86_64 && ARCH_ENABLE_MEMORY_HOTPLUG
|
|
|
|
config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
|
|
def_bool y
|
|
|
|
config USE_PERCPU_NUMA_NODE_ID
|
|
def_bool y
|
|
depends on NUMA
|
|
|
|
menu "Power management and ACPI options"
|
|
|
|
config ARCH_HIBERNATION_HEADER
|
|
def_bool y
|
|
depends on HIBERNATION
|
|
|
|
source "kernel/power/Kconfig"
|
|
|
|
source "drivers/acpi/Kconfig"
|
|
|
|
config X86_APM_BOOT
|
|
def_bool y
|
|
depends on APM
|
|
|
|
menuconfig APM
|
|
tristate "APM (Advanced Power Management) BIOS support"
|
|
depends on X86_32 && PM_SLEEP
|
|
help
|
|
APM is a BIOS specification for saving power using several different
|
|
techniques. This is mostly useful for battery powered laptops with
|
|
APM compliant BIOSes. If you say Y here, the system time will be
|
|
reset after a RESUME operation, the /proc/apm device will provide
|
|
battery status information, and user-space programs will receive
|
|
notification of APM "events" (e.g. battery status change).
|
|
|
|
If you select "Y" here, you can disable actual use of the APM
|
|
BIOS by passing the "apm=off" option to the kernel at boot time.
|
|
|
|
Note that the APM support is almost completely disabled for
|
|
machines with more than one CPU.
|
|
|
|
In order to use APM, you will need supporting software. For location
|
|
and more information, read <file:Documentation/power/apm-acpi.rst>
|
|
and the Battery Powered Linux mini-HOWTO, available from
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
This driver does not spin down disk drives (see the hdparm(8)
|
|
manpage ("man 8 hdparm") for that), and it doesn't turn off
|
|
VESA-compliant "green" monitors.
|
|
|
|
This driver does not support the TI 4000M TravelMate and the ACER
|
|
486/DX4/75 because they don't have compliant BIOSes. Many "green"
|
|
desktop machines also don't have compliant BIOSes, and this driver
|
|
may cause those machines to panic during the boot phase.
|
|
|
|
Generally, if you don't have a battery in your machine, there isn't
|
|
much point in using this driver and you should say N. If you get
|
|
random kernel OOPSes or reboots that don't seem to be related to
|
|
anything, try disabling/enabling this option (or disabling/enabling
|
|
APM in your BIOS).
|
|
|
|
Some other things you should try when experiencing seemingly random,
|
|
"weird" problems:
|
|
|
|
1) make sure that you have enough swap space and that it is
|
|
enabled.
|
|
2) pass the "no-hlt" option to the kernel
|
|
3) switch on floating point emulation in the kernel and pass
|
|
the "no387" option to the kernel
|
|
4) pass the "floppy=nodma" option to the kernel
|
|
5) pass the "mem=4M" option to the kernel (thereby disabling
|
|
all but the first 4 MB of RAM)
|
|
6) make sure that the CPU is not over clocked.
|
|
7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
|
|
8) disable the cache from your BIOS settings
|
|
9) install a fan for the video card or exchange video RAM
|
|
10) install a better fan for the CPU
|
|
11) exchange RAM chips
|
|
12) exchange the motherboard.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called apm.
|
|
|
|
if APM
|
|
|
|
config APM_IGNORE_USER_SUSPEND
|
|
bool "Ignore USER SUSPEND"
|
|
help
|
|
This option will ignore USER SUSPEND requests. On machines with a
|
|
compliant APM BIOS, you want to say N. However, on the NEC Versa M
|
|
series notebooks, it is necessary to say Y because of a BIOS bug.
|
|
|
|
config APM_DO_ENABLE
|
|
bool "Enable PM at boot time"
|
|
help
|
|
Enable APM features at boot time. From page 36 of the APM BIOS
|
|
specification: "When disabled, the APM BIOS does not automatically
|
|
power manage devices, enter the Standby State, enter the Suspend
|
|
State, or take power saving steps in response to CPU Idle calls."
|
|
This driver will make CPU Idle calls when Linux is idle (unless this
|
|
feature is turned off -- see "Do CPU IDLE calls", below). This
|
|
should always save battery power, but more complicated APM features
|
|
will be dependent on your BIOS implementation. You may need to turn
|
|
this option off if your computer hangs at boot time when using APM
|
|
support, or if it beeps continuously instead of suspending. Turn
|
|
this off if you have a NEC UltraLite Versa 33/C or a Toshiba
|
|
T400CDT. This is off by default since most machines do fine without
|
|
this feature.
|
|
|
|
config APM_CPU_IDLE
|
|
depends on CPU_IDLE
|
|
bool "Make CPU Idle calls when idle"
|
|
help
|
|
Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
|
|
On some machines, this can activate improved power savings, such as
|
|
a slowed CPU clock rate, when the machine is idle. These idle calls
|
|
are made after the idle loop has run for some length of time (e.g.,
|
|
333 mS). On some machines, this will cause a hang at boot time or
|
|
whenever the CPU becomes idle. (On machines with more than one CPU,
|
|
this option does nothing.)
|
|
|
|
config APM_DISPLAY_BLANK
|
|
bool "Enable console blanking using APM"
|
|
help
|
|
Enable console blanking using the APM. Some laptops can use this to
|
|
turn off the LCD backlight when the screen blanker of the Linux
|
|
virtual console blanks the screen. Note that this is only used by
|
|
the virtual console screen blanker, and won't turn off the backlight
|
|
when using the X Window system. This also doesn't have anything to
|
|
do with your VESA-compliant power-saving monitor. Further, this
|
|
option doesn't work for all laptops -- it might not turn off your
|
|
backlight at all, or it might print a lot of errors to the console,
|
|
especially if you are using gpm.
|
|
|
|
config APM_ALLOW_INTS
|
|
bool "Allow interrupts during APM BIOS calls"
|
|
help
|
|
Normally we disable external interrupts while we are making calls to
|
|
the APM BIOS as a measure to lessen the effects of a badly behaving
|
|
BIOS implementation. The BIOS should reenable interrupts if it
|
|
needs to. Unfortunately, some BIOSes do not -- especially those in
|
|
many of the newer IBM Thinkpads. If you experience hangs when you
|
|
suspend, try setting this to Y. Otherwise, say N.
|
|
|
|
endif # APM
|
|
|
|
source "drivers/cpufreq/Kconfig"
|
|
|
|
source "drivers/cpuidle/Kconfig"
|
|
|
|
source "drivers/idle/Kconfig"
|
|
|
|
endmenu
|
|
|
|
|
|
menu "Bus options (PCI etc.)"
|
|
|
|
choice
|
|
prompt "PCI access mode"
|
|
depends on X86_32 && PCI
|
|
default PCI_GOANY
|
|
help
|
|
On PCI systems, the BIOS can be used to detect the PCI devices and
|
|
determine their configuration. However, some old PCI motherboards
|
|
have BIOS bugs and may crash if this is done. Also, some embedded
|
|
PCI-based systems don't have any BIOS at all. Linux can also try to
|
|
detect the PCI hardware directly without using the BIOS.
|
|
|
|
With this option, you can specify how Linux should detect the
|
|
PCI devices. If you choose "BIOS", the BIOS will be used,
|
|
if you choose "Direct", the BIOS won't be used, and if you
|
|
choose "MMConfig", then PCI Express MMCONFIG will be used.
|
|
If you choose "Any", the kernel will try MMCONFIG, then the
|
|
direct access method and falls back to the BIOS if that doesn't
|
|
work. If unsure, go with the default, which is "Any".
|
|
|
|
config PCI_GOBIOS
|
|
bool "BIOS"
|
|
|
|
config PCI_GOMMCONFIG
|
|
bool "MMConfig"
|
|
|
|
config PCI_GODIRECT
|
|
bool "Direct"
|
|
|
|
config PCI_GOOLPC
|
|
bool "OLPC XO-1"
|
|
depends on OLPC
|
|
|
|
config PCI_GOANY
|
|
bool "Any"
|
|
|
|
endchoice
|
|
|
|
config PCI_BIOS
|
|
def_bool y
|
|
depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY)
|
|
|
|
# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
|
|
config PCI_DIRECT
|
|
def_bool y
|
|
depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC || PCI_GOMMCONFIG))
|
|
|
|
config PCI_MMCONFIG
|
|
bool "Support mmconfig PCI config space access" if X86_64
|
|
default y
|
|
depends on PCI && (ACPI || JAILHOUSE_GUEST)
|
|
depends on X86_64 || (PCI_GOANY || PCI_GOMMCONFIG)
|
|
|
|
config PCI_OLPC
|
|
def_bool y
|
|
depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY)
|
|
|
|
config PCI_XEN
|
|
def_bool y
|
|
depends on PCI && XEN
|
|
|
|
config MMCONF_FAM10H
|
|
def_bool y
|
|
depends on X86_64 && PCI_MMCONFIG && ACPI
|
|
|
|
config PCI_CNB20LE_QUIRK
|
|
bool "Read CNB20LE Host Bridge Windows" if EXPERT
|
|
depends on PCI
|
|
help
|
|
Read the PCI windows out of the CNB20LE host bridge. This allows
|
|
PCI hotplug to work on systems with the CNB20LE chipset which do
|
|
not have ACPI.
|
|
|
|
There's no public spec for this chipset, and this functionality
|
|
is known to be incomplete.
|
|
|
|
You should say N unless you know you need this.
|
|
|
|
config ISA_BUS
|
|
bool "ISA bus support on modern systems" if EXPERT
|
|
help
|
|
Expose ISA bus device drivers and options available for selection and
|
|
configuration. Enable this option if your target machine has an ISA
|
|
bus. ISA is an older system, displaced by PCI and newer bus
|
|
architectures -- if your target machine is modern, it probably does
|
|
not have an ISA bus.
|
|
|
|
If unsure, say N.
|
|
|
|
# x86_64 have no ISA slots, but can have ISA-style DMA.
|
|
config ISA_DMA_API
|
|
bool "ISA-style DMA support" if (X86_64 && EXPERT)
|
|
default y
|
|
help
|
|
Enables ISA-style DMA support for devices requiring such controllers.
|
|
If unsure, say Y.
|
|
|
|
if X86_32
|
|
|
|
config ISA
|
|
bool "ISA support"
|
|
help
|
|
Find out whether you have ISA slots on your motherboard. ISA is the
|
|
name of a bus system, i.e. the way the CPU talks to the other stuff
|
|
inside your box. Other bus systems are PCI, EISA, MicroChannel
|
|
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
|
|
newer boards don't support it. If you have ISA, say Y, otherwise N.
|
|
|
|
config SCx200
|
|
tristate "NatSemi SCx200 support"
|
|
help
|
|
This provides basic support for National Semiconductor's
|
|
(now AMD's) Geode processors. The driver probes for the
|
|
PCI-IDs of several on-chip devices, so its a good dependency
|
|
for other scx200_* drivers.
|
|
|
|
If compiled as a module, the driver is named scx200.
|
|
|
|
config SCx200HR_TIMER
|
|
tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
|
|
depends on SCx200
|
|
default y
|
|
help
|
|
This driver provides a clocksource built upon the on-chip
|
|
27MHz high-resolution timer. Its also a workaround for
|
|
NSC Geode SC-1100's buggy TSC, which loses time when the
|
|
processor goes idle (as is done by the scheduler). The
|
|
other workaround is idle=poll boot option.
|
|
|
|
config OLPC
|
|
bool "One Laptop Per Child support"
|
|
depends on !X86_PAE
|
|
select GPIOLIB
|
|
select OF
|
|
select OF_PROMTREE
|
|
select IRQ_DOMAIN
|
|
select OLPC_EC
|
|
help
|
|
Add support for detecting the unique features of the OLPC
|
|
XO hardware.
|
|
|
|
config OLPC_XO1_PM
|
|
bool "OLPC XO-1 Power Management"
|
|
depends on OLPC && MFD_CS5535=y && PM_SLEEP
|
|
help
|
|
Add support for poweroff and suspend of the OLPC XO-1 laptop.
|
|
|
|
config OLPC_XO1_RTC
|
|
bool "OLPC XO-1 Real Time Clock"
|
|
depends on OLPC_XO1_PM && RTC_DRV_CMOS
|
|
help
|
|
Add support for the XO-1 real time clock, which can be used as a
|
|
programmable wakeup source.
|
|
|
|
config OLPC_XO1_SCI
|
|
bool "OLPC XO-1 SCI extras"
|
|
depends on OLPC && OLPC_XO1_PM && GPIO_CS5535=y
|
|
depends on INPUT=y
|
|
select POWER_SUPPLY
|
|
help
|
|
Add support for SCI-based features of the OLPC XO-1 laptop:
|
|
- EC-driven system wakeups
|
|
- Power button
|
|
- Ebook switch
|
|
- Lid switch
|
|
- AC adapter status updates
|
|
- Battery status updates
|
|
|
|
config OLPC_XO15_SCI
|
|
bool "OLPC XO-1.5 SCI extras"
|
|
depends on OLPC && ACPI
|
|
select POWER_SUPPLY
|
|
help
|
|
Add support for SCI-based features of the OLPC XO-1.5 laptop:
|
|
- EC-driven system wakeups
|
|
- AC adapter status updates
|
|
- Battery status updates
|
|
|
|
config ALIX
|
|
bool "PCEngines ALIX System Support (LED setup)"
|
|
select GPIOLIB
|
|
help
|
|
This option enables system support for the PCEngines ALIX.
|
|
At present this just sets up LEDs for GPIO control on
|
|
ALIX2/3/6 boards. However, other system specific setup should
|
|
get added here.
|
|
|
|
Note: You must still enable the drivers for GPIO and LED support
|
|
(GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs
|
|
|
|
Note: You have to set alix.force=1 for boards with Award BIOS.
|
|
|
|
config NET5501
|
|
bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)"
|
|
select GPIOLIB
|
|
help
|
|
This option enables system support for the Soekris Engineering net5501.
|
|
|
|
config GEOS
|
|
bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)"
|
|
select GPIOLIB
|
|
depends on DMI
|
|
help
|
|
This option enables system support for the Traverse Technologies GEOS.
|
|
|
|
config TS5500
|
|
bool "Technologic Systems TS-5500 platform support"
|
|
depends on MELAN
|
|
select CHECK_SIGNATURE
|
|
select NEW_LEDS
|
|
select LEDS_CLASS
|
|
help
|
|
This option enables system support for the Technologic Systems TS-5500.
|
|
|
|
endif # X86_32
|
|
|
|
config AMD_NB
|
|
def_bool y
|
|
depends on CPU_SUP_AMD && PCI
|
|
|
|
endmenu
|
|
|
|
|
|
menu "Binary Emulations"
|
|
|
|
config IA32_EMULATION
|
|
bool "IA32 Emulation"
|
|
depends on X86_64
|
|
select ARCH_WANT_OLD_COMPAT_IPC
|
|
select BINFMT_ELF
|
|
select COMPAT_OLD_SIGACTION
|
|
help
|
|
Include code to run legacy 32-bit programs under a
|
|
64-bit kernel. You should likely turn this on, unless you're
|
|
100% sure that you don't have any 32-bit programs left.
|
|
|
|
config IA32_AOUT
|
|
tristate "IA32 a.out support"
|
|
depends on IA32_EMULATION
|
|
depends on BROKEN
|
|
help
|
|
Support old a.out binaries in the 32bit emulation.
|
|
|
|
config X86_X32
|
|
bool "x32 ABI for 64-bit mode"
|
|
depends on X86_64
|
|
# llvm-objcopy does not convert x86_64 .note.gnu.property or
|
|
# compressed debug sections to x86_x32 properly:
|
|
# https://github.com/ClangBuiltLinux/linux/issues/514
|
|
# https://github.com/ClangBuiltLinux/linux/issues/1141
|
|
depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm)
|
|
help
|
|
Include code to run binaries for the x32 native 32-bit ABI
|
|
for 64-bit processors. An x32 process gets access to the
|
|
full 64-bit register file and wide data path while leaving
|
|
pointers at 32 bits for smaller memory footprint.
|
|
|
|
You will need a recent binutils (2.22 or later) with
|
|
elf32_x86_64 support enabled to compile a kernel with this
|
|
option set.
|
|
|
|
config COMPAT_32
|
|
def_bool y
|
|
depends on IA32_EMULATION || X86_32
|
|
select HAVE_UID16
|
|
select OLD_SIGSUSPEND3
|
|
|
|
config COMPAT
|
|
def_bool y
|
|
depends on IA32_EMULATION || X86_X32
|
|
|
|
if COMPAT
|
|
config COMPAT_FOR_U64_ALIGNMENT
|
|
def_bool y
|
|
|
|
config SYSVIPC_COMPAT
|
|
def_bool y
|
|
depends on SYSVIPC
|
|
endif
|
|
|
|
endmenu
|
|
|
|
|
|
config HAVE_ATOMIC_IOMAP
|
|
def_bool y
|
|
depends on X86_32
|
|
|
|
source "arch/x86/kvm/Kconfig"
|
|
|
|
source "arch/x86/Kconfig.assembler"
|