* v4.4-16.09-android-tmp: unsafe_[get|put]_user: change interface to use a error target label usercopy: remove page-spanning test for now usercopy: fix overlap check for kernel text mm/slub: support left redzone Linux 4.4.21 lib/mpi: mpi_write_sgl(): fix skipping of leading zero limbs regulator: anatop: allow regulator to be in bypass mode hwrng: exynos - Disable runtime PM on probe failure cpufreq: Fix GOV_LIMITS handling for the userspace governor metag: Fix atomic_*_return inline asm constraints scsi: fix upper bounds check of sense key in scsi_sense_key_string() ALSA: timer: fix NULL pointer dereference on memory allocation failure ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE ALSA: timer: fix NULL pointer dereference in read()/ioctl() race ALSA: hda - Enable subwoofer on Dell Inspiron 7559 ALSA: hda - Add headset mic quirk for Dell Inspiron 5468 ALSA: rawmidi: Fix possible deadlock with virmidi registration ALSA: fireworks: accessing to user space outside spinlock ALSA: firewire-tascam: accessing to user space outside spinlock ALSA: usb-audio: Add sample rate inquiry quirk for B850V3 CP2114 crypto: caam - fix IV loading for authenc (giv)decryption uprobes: Fix the memcg accounting x86/apic: Do not init irq remapping if ioapic is disabled vhost/scsi: fix reuse of &vq->iov[out] in response bcache: RESERVE_PRIO is too small by one when prio_buckets() is a power of two. ubifs: Fix assertion in layout_in_gaps() ovl: fix workdir creation ovl: listxattr: use strnlen() ovl: remove posix_acl_default from workdir ovl: don't copy up opaqueness wrappers for ->i_mutex access lustre: remove unused declaration timekeeping: Avoid taking lock in NMI path with CONFIG_DEBUG_TIMEKEEPING timekeeping: Cap array access in timekeeping_debug xfs: fix superblock inprogress check ASoC: atmel_ssc_dai: Don't unconditionally reset SSC on stream startup drm/msm: fix use of copy_from_user() while holding spinlock drm: Reject page_flip for !DRIVER_MODESET drm/radeon: fix radeon_move_blit on 32bit systems s390/sclp_ctl: fix potential information leak with /dev/sclp rds: fix an infoleak in rds_inc_info_copy powerpc/tm: Avoid SLB faults in treclaim/trecheckpoint when RI=0 nvme: Call pci_disable_device on the error path. cgroup: reduce read locked section of cgroup_threadgroup_rwsem during fork block: make sure a big bio is split into at most 256 bvecs block: Fix race triggered by blk_set_queue_dying() ext4: avoid modifying checksum fields directly during checksum verification ext4: avoid deadlock when expanding inode size ext4: properly align shifted xattrs when expanding inodes ext4: fix xattr shifting when expanding inodes part 2 ext4: fix xattr shifting when expanding inodes ext4: validate that metadata blocks do not overlap superblock net: Use ns_capable_noaudit() when determining net sysctl permissions kernel: Add noaudit variant of ns_capable() KEYS: Fix ASN.1 indefinite length object parsing drivers:hv: Lock access to hyperv_mmio resource tree cxlflash: Move to exponential back-off when cmd_room is not available netfilter: x_tables: check for size overflow drm/amdgpu/cz: enable/disable vce dpm even if vce pg is disabled cred: Reject inodes with invalid ids in set_create_file_as() fs: Check for invalid i_uid in may_follow_link() IB/IPoIB: Do not set skb truesize since using one linearskb udp: properly support MSG_PEEK with truncated buffers crypto: nx-842 - Mask XERS0 bit in return value cxlflash: Fix to avoid virtual LUN failover failure cxlflash: Fix to escalate LINK_RESET also on port 1 tipc: fix nl compat regression for link statistics tipc: fix an infoleak in tipc_nl_compat_link_dump netfilter: x_tables: check for size overflow Bluetooth: Add support for Intel Bluetooth device 8265 [8087:0a2b] drm/i915: Check VBT for port presence in addition to the strap on VLV/CHV drm/i915: Only ignore eDP ports that are connected Input: xpad - move pending clear to the correct location net: thunderx: Fix link status reporting x86/hyperv: Avoid reporting bogus NMI status for Gen2 instances crypto: vmx - IV size failing on skcipher API tda10071: Fix dependency to REGMAP_I2C crypto: vmx - Fix ABI detection crypto: vmx - comply with ABIs that specify vrsave as reserved. HID: core: prevent out-of-bound readings lpfc: Fix DMA faults observed upon plugging loopback connector block: fix blk_rq_get_max_sectors for driver private requests irqchip/gicv3-its: numa: Enable workaround for Cavium thunderx erratum 23144 clocksource: Allow unregistering the watchdog btrfs: Continue write in case of can_not_nocow blk-mq: End unstarted requests on dying queue cxlflash: Fix to resolve dead-lock during EEH recovery drm/radeon/mst: fix regression in lane/link handling. ecryptfs: fix handling of directory opening ALSA: hda: add AMD Polaris-10/11 AZ PCI IDs with proper driver caps drm: Balance error path for GEM handle allocation ntp: Fix ADJ_SETOFFSET being used w/ ADJ_NANO time: Verify time values in adjtimex ADJ_SETOFFSET to avoid overflow Input: xpad - correctly handle concurrent LED and FF requests net: thunderx: Fix receive packet stats net: thunderx: Fix for multiqset not configured upon interface toggle perf/x86/cqm: Fix CQM memory leak and notifier leak perf/x86/cqm: Fix CQM handling of grouping events into a cache_group s390/crypto: provide correct file mode at device register. proc: revert /proc/<pid>/maps [stack:TID] annotation intel_idle: Support for Intel Xeon Phi Processor x200 Product Family cxlflash: Fix to avoid unnecessary scan with internal LUNs Drivers: hv: vmbus: don't manipulate with clocksources on crash Drivers: hv: vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload() Drivers: hv: vmbus: avoid infinite loop in init_vp_index() arcmsr: fixes not release allocated resource arcmsr: fixed getting wrong configuration data s390/pci_dma: fix DMA table corruption with > 4 TB main memory net/mlx5e: Don't modify CQ before it was created net/mlx5e: Don't try to modify CQ moderation if it is not supported mmc: sdhci: Do not BUG on invalid vdd UVC: Add support for R200 depth camera sched/numa: Fix use-after-free bug in the task_numa_compare ALSA: hda - add codec support for Kabylake display audio codec drm/i915: Fix hpd live status bits for g4x tipc: fix nullptr crash during subscription cancel arm64: Add workaround for Cavium erratum 27456 net: thunderx: Fix for Qset error due to CQ full drm/radeon: fix dp link rate selection (v2) drm/amdgpu: fix dp link rate selection (v2) qla2xxx: Use ATIO type to send correct tmr response mmc: sdhci: 64-bit DMA actually has 4-byte alignment drm/atomic: Do not unset crtc when an encoder is stolen drm/i915/skl: Add missing SKL ids drm/i915/bxt: update list of PCIIDs hrtimer: Catch illegal clockids i40e/i40evf: Fix RSS rx-flow-hash configuration through ethtool mpt3sas: Fix for Asynchronous completion of timedout IO and task abort of timedout IO. mpt3sas: A correction in unmap_resources net: cavium: liquidio: fix check for in progress flag arm64: KVM: Configure TCR_EL2.PS at runtime irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor pwm: lpc32xx: fix and simplify duty cycle and period calculations pwm: lpc32xx: correct number of PWM channels from 2 to 1 pwm: fsl-ftm: Fix clock enable/disable when using PM megaraid_sas: Add an i/o barrier megaraid_sas: Fix SMAP issue megaraid_sas: Do not allow PCI access during OCR s390/cio: update measurement characteristics s390/cio: ensure consistent measurement state s390/cio: fix measurement characteristics memleak qeth: initialize net_device with carrier off lpfc: Fix external loopback failure. lpfc: Fix mbox reuse in PLOGI completion lpfc: Fix RDP Speed reporting. lpfc: Fix crash in fcp command completion path. lpfc: Fix driver crash when module parameter lpfc_fcp_io_channel set to 16 lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce lpfc: Fix the FLOGI discovery logic to comply with T11 standards lpfc: Fix FCF Infinite loop in lpfc_sli4_fcf_rr_next_index_get. cxl: Enable PCI device ID for future IBM CXL adapter cxl: fix build for GCC 4.6.x cxlflash: Enable device id for future IBM CXL adapter cxlflash: Resolve oops in wait_port_offline cxlflash: Fix to resolve cmd leak after host reset cxl: Fix DSI misses when the context owning task exits cxl: Fix possible idr warning when contexts are released Drivers: hv: vmbus: fix rescind-offer handling for device without a driver Drivers: hv: vmbus: serialize process_chn_event() and vmbus_close_internal() Drivers: hv: vss: run only on supported host versions drivers/hv: cleanup synic msrs if vmbus connect failed Drivers: hv: util: catch allocation errors tools: hv: report ENOSPC errors in hv_fcopy_daemon Drivers: hv: utils: run polling callback always in interrupt context Drivers: hv: util: Increase the timeout for util services lightnvm: fix missing grown bad block type lightnvm: fix locking and mempool in rrpc_lun_gc lightnvm: unlock rq and free ppa_list on submission fail lightnvm: add check after mempool allocation lightnvm: fix incorrect nr_free_blocks stat lightnvm: fix bio submission issue cxlflash: a couple off by one bugs fm10k: Cleanup exception handling for mailbox interrupt fm10k: Cleanup MSI-X interrupts in case of failure fm10k: reinitialize queuing scheme after calling init_hw fm10k: always check init_hw for errors fm10k: reset max_queues on init_hw_vf failure fm10k: Fix handling of NAPI budget when multiple queues are enabled per vector fm10k: Correct MTU for jumbo frames fm10k: do not assume VF always has 1 queue clk: xgene: Fix divider with non-zero shift value e1000e: fix division by zero on jumbo MTUs e1000: fix data race between tx_ring->next_to_clean ixgbe: Fix handling of NAPI budget when multiple queues are enabled per vector igb: fix NULL derefs due to skipped SR-IOV enabling igb: use the correct i210 register for EEMNGCTL igb: don't unmap NULL hw_addr i40e: Fix Rx hash reported to the stack by our driver i40e: clean whole mac filter list i40evf: check rings before freeing resources i40e: don't add zero MAC filter i40e: properly delete VF MAC filters i40e: Fix memory leaks, sideband filter programming i40e: fix: do not sleep in netdev_ops i40e/i40evf: Fix RS bit update in Tx path and disable force WB workaround i40evf: handle many MAC filters correctly i40e: Workaround fix for mss < 256 issue UPSTREAM: audit: fix a double fetch in audit_log_single_execve_arg() UPSTREAM: ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor FIXUP: sched/tune: update accouting before CPU capacity FIXUP: sched/tune: add fixes missing from a previous patch arm: Fix #if/#ifdef typo in topology.c arm: Fix build error "conflicting types for 'scale_cpu_capacity'" sched/walt: use do_div instead of division operator DEBUG: cpufreq: fix cpu_capacity tracing build for non-smp systems sched/walt: include missing header for arm_timer_read_counter() cpufreq: Kconfig: Fixup incorrect selection by CPU_FREQ_DEFAULT_GOV_SCHED sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats() FIXUP: sched: scheduler-driven cpu frequency selection sched/rt: Add Kconfig option to enable panicking for RT throttling sched/rt: print RT tasks when RT throttling is activated UPSTREAM: sched: Fix a race between __kthread_bind() and sched_setaffinity() sched/fair: Favor higher cpus only for boosted tasks vmstat: make vmstat_updater deferrable again and shut down on idle sched/fair: call OPP update when going idle after migration sched/cpufreq_sched: fix thermal capping events sched/fair: Picking cpus with low OPPs for tasks that prefer idle CPUs FIXUP: sched/tune: do initialization as a postcore_initicall DEBUG: sched: add tracepoint for RD overutilized sched/tune: Introducing a new schedtune attribute prefer_idle sched: use util instead of capacity to select busy cpu arch_timer: add error handling when the MPM global timer is cleared FIXUP: sched: Fix double-release of spinlock in move_queued_task FIXUP: sched/fair: Fix hang during suspend in sched_group_energy FIXUP: sched: fix SchedFreq integration for both PELT and WALT sched: EAS: Avoid causing spikes to max-freq unnecessarily FIXUP: sched: fix set_cfs_cpu_capacity when WALT is in use sched/walt: Accounting for number of irqs pending on each core sched: Introduce Window Assisted Load Tracking (WALT) sched/tune: fix PB and PC cuts indexes definition sched/fair: optimize idle cpu selection for boosted tasks FIXUP: sched/tune: fix accounting for runnable tasks sched/tune: use a single initialisation function sched/{fair,tune}: simplify fair.c code FIXUP: sched/tune: fix payoff calculation for boost region sched/tune: Add support for negative boost values FIX: sched/tune: move schedtune_nornalize_energy into fair.c FIX: sched/tune: update usage of boosted task utilisation on CPU selection sched/fair: add tunable to set initial task load sched/fair: add tunable to force selection at cpu granularity sched: EAS: take cstate into account when selecting idle core sched/cpufreq_sched: Consolidated update FIXUP: sched: fix build for non-SMP target DEBUG: sched/tune: add tracepoint on P-E space filtering DEBUG: sched/tune: add tracepoint for energy_diff() values DEBUG: sched/tune: add tracepoint for task boost signal arm: topology: Define TC2 energy and provide it to the scheduler CHROMIUM: sched: update the average of nr_running DEBUG: schedtune: add tracepoint for schedtune_tasks_update() values DEBUG: schedtune: add tracepoint for CPU boost signal DEBUG: schedtune: add tracepoint for SchedTune configuration update DEBUG: sched: add energy procfs interface DEBUG: sched,cpufreq: add cpu_capacity change tracepoint DEBUG: sched: add tracepoint for CPU load/util signals DEBUG: sched: add tracepoint for task load/util signals DEBUG: sched: add tracepoint for cpu/freq scale invariance sched/fair: filter energy_diff() based on energy_payoff value sched/tune: add support to compute normalized energy sched/fair: keep track of energy/capacity variations sched/fair: add boosted task utilization sched/{fair,tune}: track RUNNABLE tasks impact on per CPU boost value sched/tune: compute and keep track of per CPU boost value sched/tune: add initial support for CGroups based boosting sched/fair: add boosted CPU usage sched/fair: add function to convert boost value into "margin" sched/tune: add sysctl interface to define a boost value sched/tune: add detailed documentation fixup! sched/fair: jump to max OPP when crossing UP threshold fixup! sched: scheduler-driven cpu frequency selection sched: rt scheduler sets capacity requirement sched: deadline: use deadline bandwidth in scale_rt_capacity sched: remove call of sched_avg_update from sched_rt_avg_update sched/cpufreq_sched: add trace events sched/fair: jump to max OPP when crossing UP threshold sched/fair: cpufreq_sched triggers for load balancing sched/{core,fair}: trigger OPP change request on fork() sched/fair: add triggers for OPP change requests sched: scheduler-driven cpu frequency selection cpufreq: introduce cpufreq_driver_is_slow sched: Consider misfit tasks when load-balancing sched: Add group_misfit_task load-balance type sched: Add per-cpu max capacity to sched_group_capacity sched: Do eas idle balance regardless of the rq avg idle value arm64: Enable max freq invariant scheduler load-tracking and capacity support arm: Enable max freq invariant scheduler load-tracking and capacity support sched: Update max cpu capacity in case of max frequency constraints cpufreq: Max freq invariant scheduler load-tracking and cpu capacity support arm64, topology: Updates to use DT bindings for EAS costing data sched: Support for extracting EAS energy costs from DT Documentation: DT bindings for energy model cost data required by EAS sched: Disable energy-unfriendly nohz kicks sched: Consider a not over-utilized energy-aware system as balanced sched: Energy-aware wake-up task placement sched: Determine the current sched_group idle-state sched, cpuidle: Track cpuidle state index in the scheduler sched: Add over-utilization/tipping point indicator sched: Estimate energy impact of scheduling decisions sched: Extend sched_group_energy to test load-balancing decisions sched: Calculate energy consumption of sched_group sched: Highest energy aware balancing sched_domain level pointer sched: Relocated cpu_util() and change return type sched: Compute cpu capacity available at current frequency arm64: Cpu invariant scheduler load-tracking and capacity support arm: Cpu invariant scheduler load-tracking and capacity support sched: Introduce SD_SHARE_CAP_STATES sched_domain flag sched: Initialize energy data structures sched: Introduce energy data structures sched: Make energy awareness a sched feature sched: Documentation for scheduler energy cost model sched: Prevent unnecessary active balance of single task in sched group sched: Enable idle balance to pull single task towards cpu with higher capacity sched: Consider spare cpu capacity at task wake-up sched: Add cpu capacity awareness to wakeup balancing sched: Store system-wide maximum cpu capacity in root domain arm: Update arch_scale_cpu_capacity() to reflect change to define arm64: Enable frequency invariant scheduler load-tracking support arm: Enable frequency invariant scheduler load-tracking support cpufreq: Frequency invariant scheduler load-tracking support sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task() FROMLIST: pstore: drop pmsg bounce buffer UPSTREAM: usercopy: remove page-spanning test for now UPSTREAM: usercopy: force check_object_size() inline BACKPORT: usercopy: fold builtin_const check into inline function UPSTREAM: x86/uaccess: force copy_*_user() to be inlined UPSTREAM: HID: core: prevent out-of-bound readings Android: Fix build breakages. UPSTREAM: tty: Prevent ldisc drivers from re-using stale tty fields UPSTREAM: netfilter: nfnetlink: correctly validate length of batch messages cpuset: Make cpusets restore on hotplug UPSTREAM: mm/slub: support left redzone UPSTREAM: Make the hardened user-copy code depend on having a hardened allocator Android: MMC/UFS IO Latency Histograms. UPSTREAM: usercopy: fix overlap check for kernel text UPSTREAM: usercopy: avoid potentially undefined behavior in pointer math UPSTREAM: unsafe_[get|put]_user: change interface to use a error target label BACKPORT: arm64: mm: fix location of _etext BACKPORT: ARM: 8583/1: mm: fix location of _etext BACKPORT: Don't show empty tag stats for unprivileged uids UPSTREAM: tcp: fix use after free in tcp_xmit_retransmit_queue() ANDROID: base-cfg: drop SECCOMP_FILTER config UPSTREAM: [media] xc2028: unlock on error in xc2028_set_config() UPSTREAM: [media] xc2028: avoid use after free ANDROID: base-cfg: enable SECCOMP config ANDROID: rcu_sync: Export rcu_sync_lockdep_assert RFC: FROMLIST: cgroup: reduce read locked section of cgroup_threadgroup_rwsem during fork RFC: FROMLIST: cgroup: avoid synchronize_sched() in __cgroup_procs_write() RFC: FROMLIST: locking/percpu-rwsem: Optimize readers and reduce global impact net: ipv6: Fix ping to link-local addresses. ipv6: fix endianness error in icmpv6_err ANDROID: dm: android-verity: Allow android-verity to be compiled as an independent module backporting: a brief introduce of backported feautures on 4.4 Linux 4.4.20 sysfs: correctly handle read offset on PREALLOC attrs hwmon: (iio_hwmon) fix memory leak in name attribute ALSA: line6: Fix POD sysfs attributes segfault ALSA: line6: Give up on the lock while URBs are released. ALSA: line6: Remove double line6_pcm_release() after failed acquire. ACPI / SRAT: fix SRAT parsing order with both LAPIC and X2APIC present ACPI / sysfs: fix error code in get_status() ACPI / drivers: replace acpi_probe_lock spinlock with mutex ACPI / drivers: fix typo in ACPI_DECLARE_PROBE_ENTRY macro staging: comedi: ni_mio_common: fix wrong insn_write handler staging: comedi: ni_mio_common: fix AO inttrig backwards compatibility staging: comedi: comedi_test: fix timer race conditions staging: comedi: daqboard2000: bug fix board type matching code USB: serial: option: add WeTelecom 0x6802 and 0x6803 products USB: serial: option: add WeTelecom WM-D200 USB: serial: mos7840: fix non-atomic allocation in write path USB: serial: mos7720: fix non-atomic allocation in write path USB: fix typo in wMaxPacketSize validation usb: chipidea: udc: don't touch DP when controller is in host mode USB: avoid left shift by -1 dmaengine: usb-dmac: check CHCR.DE bit in usb_dmac_isr_channel() crypto: qat - fix aes-xts key sizes crypto: nx - off by one bug in nx_of_update_msc() Input: i8042 - set up shared ps2_cmd_mutex for AUX ports Input: i8042 - break load dependency between atkbd/psmouse and i8042 Input: tegra-kbc - fix inverted reset logic btrfs: properly track when rescan worker is running btrfs: waiting on qgroup rescan should not always be interruptible fs/seq_file: fix out-of-bounds read gpio: Fix OF build problem on UM usb: renesas_usbhs: gadget: fix return value check in usbhs_mod_gadget_probe() megaraid_sas: Fix probing cards without io port mpt3sas: Fix resume on WarpDrive flash cards cdc-acm: fix wrong pipe type on rx interrupt xfers i2c: cros-ec-tunnel: Fix usage of cros_ec_cmd_xfer() mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper aacraid: Check size values after double-fetch from user ARC: Elide redundant setup of DMA callbacks ARC: Call trace_hardirqs_on() before enabling irqs ARC: use correct offset in pt_regs for saving/restoring user mode r25 ARC: build: Better way to detect ISA compatible toolchain drm/i915: fix aliasing_ppgtt leak drm/amdgpu: record error code when ring test failed drm/amd/amdgpu: sdma resume fail during S4 on CI drm/amdgpu: skip TV/CV in display parsing drm/amdgpu: avoid a possible array overflow drm/amdgpu: fix amdgpu_move_blit on 32bit systems drm/amdgpu: Change GART offset to 64-bit iio: fix sched WARNING "do not call blocking ops when !TASK_RUNNING" sched/nohz: Fix affine unpinned timers mess sched/cputime: Fix NO_HZ_FULL getrusage() monotonicity regression of: fix reference counting in of_graph_get_endpoint_by_regs arm64: dts: rockchip: add reset saradc node for rk3368 SoCs mac80211: fix purging multicast PS buffer queue s390/dasd: fix hanging device after clear subchannel EDAC: Increment correct counter in edac_inc_ue_error() pinctrl/amd: Remove the default de-bounce time iommu/arm-smmu: Don't BUG() if we find aborting STEs with disable_bypass iommu/arm-smmu: Fix CMDQ error handling iommu/dma: Don't put uninitialised IOVA domains xhci: Make sure xhci handles USB_SPEED_SUPER_PLUS devices. USB: serial: ftdi_sio: add PIDs for Ivium Technologies devices USB: serial: ftdi_sio: add device ID for WICED USB UART dev board USB: serial: option: add support for Telit LE920A4 USB: serial: option: add D-Link DWM-156/A3 USB: serial: fix memleak in driver-registration error path xhci: don't dereference a xhci member after removing xhci usb: xhci: Fix panic if disconnect xhci: always handle "Command Ring Stopped" events usb/gadget: fix gadgetfs aio support. usb: gadget: fsl_qe_udc: off by one in setup_received_handle() USB: validate wMaxPacketValue entries in endpoint descriptors usb: renesas_usbhs: Use dmac only if the pipe type is bulk usb: renesas_usbhs: clear the BRDYSTS in usbhsg_ep_enable() USB: hub: change the locking in hub_activate USB: hub: fix up early-exit pathway in hub_activate usb: hub: Fix unbalanced reference count/memory leak/deadlocks usb: define USB_SPEED_SUPER_PLUS speed for SuperSpeedPlus USB3.1 devices usb: dwc3: gadget: increment request->actual once usb: dwc3: pci: add Intel Kabylake PCI ID usb: misc: usbtest: add fix for driver hang usb: ehci: change order of register cleanup during shutdown crypto: caam - defer aead_set_sh_desc in case of zero authsize crypto: caam - fix echainiv(authenc) encrypt shared descriptor crypto: caam - fix non-hmac hashes genirq/msi: Make sure PCI MSIs are activated early genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP um: Don't discard .text.exit section ACPI / CPPC: Prevent cpc_desc_ptr points to the invalid data ACPI: CPPC: Return error if _CPC is invalid on a CPU mmc: sdhci-acpi: Reduce Baytrail eMMC/SD/SDIO hangs PCI: Limit config space size for Netronome NFP4000 PCI: Add Netronome NFP4000 PF device ID PCI: Limit config space size for Netronome NFP6000 family PCI: Add Netronome vendor and device IDs PCI: Support PCIe devices with short cfg_size NVMe: Don't unmap controller registers on reset ALSA: hda - Manage power well properly for resume libnvdimm, nd_blk: mask off reserved status bits perf intel-pt: Fix occasional decoding errors when tracing system-wide vfio/pci: Fix NULL pointer oops in error interrupt setup handling virtio: fix memory leak in virtqueue_add() parisc: Fix order of EREFUSED define in errno.h arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO ALSA: usb-audio: Add quirk for ELP HD USB Camera ALSA: usb-audio: Add a sample rate quirk for Creative Live! Cam Socialize HD (VF0610) powerpc/eeh: eeh_pci_enable(): fix checking of post-request state SUNRPC: allow for upcalls for same uid but different gss service SUNRPC: Handle EADDRNOTAVAIL on connection failures tools/testing/nvdimm: fix SIGTERM vs hotplug crash uprobes/x86: Fix RIP-relative handling of EVEX-encoded instructions x86/mm: Disable preemption during CR3 read+write hugetlb: fix nr_pmds accounting with shared page tables mm: SLUB hardened usercopy support mm: SLAB hardened usercopy support s390/uaccess: Enable hardened usercopy sparc/uaccess: Enable hardened usercopy powerpc/uaccess: Enable hardened usercopy ia64/uaccess: Enable hardened usercopy arm64/uaccess: Enable hardened usercopy ARM: uaccess: Enable hardened usercopy x86/uaccess: Enable hardened usercopy x86: remove more uaccess_32.h complexity x86: remove pointless uaccess_32.h complexity x86: fix SMAP in 32-bit environments Use the new batched user accesses in generic user string handling Add 'unsafe' user access functions for batched accesses x86: reorganize SMAP handling in user space accesses mm: Hardened usercopy mm: Implement stack frame object validation mm: Add is_migrate_cma_page Linux 4.4.19 Documentation/module-signing.txt: Note need for version info if reusing a key module: Invalidate signatures on force-loaded modules dm flakey: error READ bios during the down_interval rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq() lpfc: fix oops in lpfc_sli4_scmd_to_wqidx_distr() from lpfc_send_taskmgmt() ACPI / EC: Work around method reentrancy limit in ACPICA for _Qxx x86/platform/intel_mid_pci: Rework IRQ0 workaround PCI: Mark Atheros AR9485 and QCA9882 to avoid bus reset MIPS: hpet: Increase HPET_MIN_PROG_DELTA and decrease HPET_MIN_CYCLES MIPS: Don't register r4k sched clock when CPUFREQ enabled MIPS: mm: Fix definition of R6 cache instruction SUNRPC: Don't allocate a full sockaddr_storage for tracing Input: elan_i2c - properly wake up touchpad on ASUS laptops target: Fix ordered task CHECK_CONDITION early exception handling target: Fix max_unmap_lba_count calc overflow target: Fix race between iscsi-target connection shutdown + ABORT_TASK target: Fix missing complete during ABORT_TASK + CMD_T_FABRIC_STOP target: Fix ordered task target_setup_cmd_from_cdb exception hang iscsi-target: Fix panic when adding second TCP connection to iSCSI session ubi: Fix race condition between ubi device creation and udev ubi: Fix early logging ubi: Make volume resize power cut aware of: fix memory leak related to safe_name() IB/mlx4: Fix memory leak if QP creation failed IB/mlx4: Fix error flow when sending mads under SRIOV IB/mlx4: Fix the SQ size of an RC QP IB/IWPM: Fix a potential skb leak IB/IPoIB: Don't update neigh validity for unresolved entries IB/SA: Use correct free function IB/mlx5: Return PORT_ERR in Active to Initializing tranisition IB/mlx5: Fix post send fence logic IB/mlx5: Fix entries check in mlx5_ib_resize_cq IB/mlx5: Fix returned values of query QP IB/mlx5: Fix entries checks in mlx5_ib_create_cq IB/mlx5: Fix MODIFY_QP command input structure ALSA: hda - Fix headset mic detection problem for two dell machines ALSA: hda: add AMD Bonaire AZ PCI ID with proper driver caps ALSA: hda/realtek - Can't adjust speaker's volume on a Dell AIO ALSA: hda: Fix krealloc() with __GFP_ZERO usage mm/hugetlb: avoid soft lockup in set_max_huge_pages() mtd: nand: fix bug writing 1 byte less than page size block: fix bdi vs gendisk lifetime mismatch block: add missing group association in bio-cloning functions metag: Fix __cmpxchg_u32 asm constraint for CMP ftrace/recordmcount: Work around for addition of metag magic but not relocations balloon: check the number of available pages in leak balloon drm/i915/dp: Revert "drm/i915/dp: fall back to 18 bpp when sink capability is unknown" drm/i915: Never fully mask the the EI up rps interrupt on SNB/IVB drm/edid: Add 6 bpc quirk for display AEO model 0. drm: Restore double clflush on the last partial cacheline drm/nouveau/fbcon: fix font width not divisible by 8 drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup drm/nouveau: check for supported chipset before booting fbdev off the hw drm/radeon: support backlight control for UNIPHY3 drm/radeon: fix firmware info version checks drm/radeon: Poll for both connect/disconnect on analog connectors drm/radeon: add a delay after ATPX dGPU power off drm/amdgpu/gmc7: add missing mullins case drm/amdgpu: fix firmware info version checks drm/amdgpu: Disable RPM helpers while reprobing connectors on resume drm/amdgpu: support backlight control for UNIPHY3 drm/amdgpu: Poll for both connect/disconnect on analog connectors drm/amdgpu: add a delay after ATPX dGPU power off w1:omap_hdq: fix regression netlabel: add address family checks to netlbl_{sock,req}_delattr() ARM: dts: sunxi: Add a startup delay for fixed regulator enabled phys audit: fix a double fetch in audit_log_single_execve_arg() iommu/amd: Update Alias-DTE in update_device_table() iommu/amd: Init unity mappings only for dma_ops domains iommu/amd: Handle IOMMU_DOMAIN_DMA in ops->domain_free call-back iommu/vt-d: Return error code in domain_context_mapping_one() iommu/exynos: Suppress unbinding to prevent system failure drm/i915: Don't complain about lack of ACPI video bios nfsd: don't return an unhashed lock stateid after taking mutex nfsd: Fix race between FREE_STATEID and LOCK nfs: don't create zero-length requests MIPS: KVM: Propagate kseg0/mapped tlb fault errors MIPS: KVM: Fix gfn range check in kseg0 tlb faults MIPS: KVM: Add missing gfn range check MIPS: KVM: Fix mapped fault broken commpage handling random: add interrupt callback to VMBus IRQ handler random: print a warning for the first ten uninitialized random users random: initialize the non-blocking pool via add_hwgenerator_randomness() CIFS: Fix a possible invalid memory access in smb2_query_symlink() cifs: fix crash due to race in hmac(md5) handling cifs: Check for existing directory when opening file with O_CREAT fs/cifs: make share unaccessible at root level mountable jbd2: make journal y2038 safe ARC: mm: don't loose PTE_SPECIAL in pte_modify() remoteproc: Fix potential race condition in rproc_add ovl: disallow overlayfs as upperdir HID: uhid: fix timeout when probe races with IO EDAC: Correct channel count limit Bluetooth: Fix l2cap_sock_setsockopt() with optname BT_RCVMTU spi: pxa2xx: Clear all RFT bits in reset_sccr1() on Intel Quark i2c: efm32: fix a failure path in efm32_i2c_probe() s5p-mfc: Add release callback for memory region devs s5p-mfc: Set device name for reserved memory region devs hp-wmi: Fix wifi cannot be hard-unblocked dm: set DMF_SUSPENDED* _before_ clearing DMF_NOFLUSH_SUSPENDING sur40: fix occasional oopses on device close sur40: lower poll interval to fix occasional FPS drops to ~56 FPS Fix RC5 decoding with Fintek CIR chipset vb2: core: Skip planes array verification if pb is NULL videobuf2-v4l2: Verify planes array in buffer dequeueing media: dvb_ringbuffer: Add memory barriers media: usbtv: prevent access to free'd resources mfd: qcom_rpm: Parametrize also ack selector size mfd: qcom_rpm: Fix offset error for msm8660 intel_pstate: Fix MSR_CONFIG_TDP_x addressing in core_get_max_pstate() s390/cio: allow to reset channel measurement block KVM: nVMX: Fix memory corruption when using VMCS shadowing KVM: VMX: handle PML full VMEXIT that occurs during event delivery KVM: MTRR: fix kvm_mtrr_check_gfn_range_consistency page fault KVM: PPC: Book3S HV: Save/restore TM state in H_CEDE KVM: PPC: Book3S HV: Pull out TM state save/restore into separate procedures arm64: mm: avoid fdt_check_header() before the FDT is fully mapped arm64: dts: rockchip: fixes the gic400 2nd region size for rk3368 pinctrl: cherryview: prevent concurrent access to GPIO controllers Bluetooth: hci_intel: Fix null gpio desc pointer dereference gpio: intel-mid: Remove potentially harmful code gpio: pca953x: Fix NBANK calculation for PCA9536 tty/serial: atmel: fix RS485 half duplex with DMA serial: samsung: Fix ERR pointer dereference on deferred probe tty: serial: msm: Don't read off end of tx fifo arm64: Fix incorrect per-cpu usage for boot CPU arm64: debug: unmask PSTATE.D earlier arm64: kernel: Save and restore UAO and addr_limit on exception entry USB: usbfs: fix potential infoleak in devio usb: renesas_usbhs: fix NULL pointer dereference in xfer_work() USB: serial: option: add support for Telit LE910 PID 0x1206 usb: dwc3: fix for the isoc transfer EP_BUSY flag usb: quirks: Add no-lpm quirk for Elan usb: renesas_usbhs: protect the CFIFOSEL setting in usbhsg_ep_enable() usb: f_fs: off by one bug in _ffs_func_bind() usb: gadget: avoid exposing kernel stack UPSTREAM: usb: gadget: configfs: add mutex lock before unregister gadget ANDROID: dm-verity: adopt changes made to dm callbacks UPSTREAM: ecryptfs: fix handling of directory opening ANDROID: net: core: fix UID-based routing ANDROID: net: fib: remove duplicate assignment FROMLIST: proc: Fix timerslack_ns CAP_SYS_NICE check when adjusting self ANDROID: dm verity fec: pack the fec_header structure ANDROID: dm: android-verity: Verify header before fetching table ANDROID: dm: allow adb disable-verity only in userdebug ANDROID: dm: mount as linear target if eng build ANDROID: dm: use default verity public key ANDROID: dm: fix signature verification flag ANDROID: dm: use name_to_dev_t ANDROID: dm: rename dm-linear methods for dm-android-verity ANDROID: dm: Minor cleanup ANDROID: dm: Mounting root as linear device when verity disabled ANDROID: dm-android-verity: Rebase on top of 4.1 ANDROID: dm: Add android verity target ANDROID: dm: fix dm_substitute_devices() ANDROID: dm: Rebase on top of 4.1 CHROMIUM: dm: boot time specification of dm= Implement memory_state_time, used by qcom,cpubw Revert "panic: Add board ID to panic output" usb: gadget: f_accessory: remove duplicate endpoint alloc BACKPORT: brcmfmac: defer DPC processing during probe FROMLIST: proc: Add LSM hook checks to /proc/<tid>/timerslack_ns FROMLIST: proc: Relax /proc/<tid>/timerslack_ns capability requirements UPSTREAM: ppp: defer netns reference release for ppp channel cpuset: Add allow_attach hook for cpusets on android. UPSTREAM: KEYS: Fix ASN.1 indefinite length object parsing ANDROID: sdcardfs: fix itnull.cocci warnings android-recommended.cfg: enable fstack-protector-strong Linux 4.4.18 mm: memcontrol: fix memcg id ref counter on swap charge move mm: memcontrol: fix swap counter leak on swapout from offline cgroup mm: memcontrol: fix cgroup creation failure after many small jobs ext4: fix reference counting bug on block allocation error ext4: short-cut orphan cleanup on error ext4: validate s_reserved_gdt_blocks on mount ext4: don't call ext4_should_journal_data() on the journal inode ext4: fix deadlock during page writeback ext4: check for extents that wrap around crypto: scatterwalk - Fix test in scatterwalk_done crypto: gcm - Filter out async ghash if necessary fs/dcache.c: avoid soft-lockup in dput() fuse: fix wrong assignment of ->flags in fuse_send_init() fuse: fuse_flush must check mapping->flags for errors fuse: fsync() did not return IO errors sysv, ipc: fix security-layer leaking block: fix use-after-free in seq file x86/syscalls/64: Add compat_sys_keyctl for 32-bit userspace drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2) x86/mm/pat: Fix BUG_ON() in mmap_mem() on QEMU/i386 x86/pat: Document the PAT initialization sequence x86/xen, pat: Remove PAT table init code from Xen x86/mtrr: Fix PAT init handling when MTRR is disabled x86/mtrr: Fix Xorg crashes in Qemu sessions x86/mm/pat: Replace cpu_has_pat with boot_cpu_has() x86/mm/pat: Add pat_disable() interface x86/mm/pat: Add support of non-default PAT MSR setting devpts: clean up interface to pty drivers random: strengthen input validation for RNDADDTOENTCNT apparmor: fix ref count leak when profile sha1 hash is read Revert "s390/kdump: Clear subchannel ID to signal non-CCW/SCSI IPL" KEYS: 64-bit MIPS needs to use compat_sys_keyctl for 32-bit userspace arm: oabi compat: add missing access checks cdc_ncm: do not call usbnet_link_change from cdc_ncm_bind i2c: i801: Allow ACPI SystemIO OpRegion to conflict with PCI BAR x86/mm/32: Enable full randomization on i386 and X86_32 HID: sony: do not bail out when the sixaxis refuses the output report PNP: Add Broadwell to Intel MCH size workaround PNP: Add Haswell-ULT to Intel MCH size workaround scsi: ignore errors from scsi_dh_add_device() ipath: Restrict use of the write() interface tcp: consider recv buf for the initial window scale qed: Fix setting/clearing bit in completion bitmap net/irda: fix NULL pointer dereference on memory allocation failure net: bgmac: Fix infinite loop in bgmac_dma_tx_add() bonding: set carrier off for devices created through netlink ipv4: reject RTNH_F_DEAD and RTNH_F_LINKDOWN from user space tcp: enable per-socket rate limiting of all 'challenge acks' tcp: make challenge acks less predictable arm64: relocatable: suppress R_AARCH64_ABS64 relocations in vmlinux arm64: vmlinux.lds: make __rela_offset and __dynsym_offset ABSOLUTE Linux 4.4.17 vfs: fix deadlock in file_remove_privs() on overlayfs intel_th: Fix a deadlock in modprobing intel_th: pci: Add Kaby Lake PCH-H support net: mvneta: set real interrupt per packet for tx_done libceph: apply new_state before new_up_client on incrementals libata: LITE-ON CX1-JB256-HP needs lower max_sectors i2c: mux: reg: wrong condition checked for of_address_to_resource return value posix_cpu_timer: Exit early when process has been reaped media: fix airspy usb probe error path ipr: Clear interrupt on croc/crocodile when running with LSI SCSI: fix new bug in scsi_dev_info_list string matching RDS: fix rds_tcp_init() error path can: fix oops caused by wrong rtnl dellink usage can: fix handling of unmodifiable configuration options fix can: c_can: Update D_CAN TX and RX functions to 32 bit - fix Altera Cyclone access can: at91_can: RX queue could get stuck at high bus load perf/x86: fix PEBS issues on Intel Atom/Core2 ovl: handle ATTR_KILL* sched/fair: Fix effective_load() to consistently use smoothed load mmc: block: fix packed command header endianness block: fix use-after-free in sys_ioprio_get() qeth: delete napi struct when removing a qeth device platform/chrome: cros_ec_dev - double fetch bug in ioctl clk: rockchip: initialize flags of clk_init_data in mmc-phase clock spi: sun4i: fix FIFO limit spi: sunxi: fix transfer timeout namespace: update event counter when umounting a deleted dentry 9p: use file_dentry() ext4: verify extent header depth ecryptfs: don't allow mmap when the lower fs doesn't support it Revert "ecryptfs: forbid opening files without mmap handler" locks: use file_inode() power_supply: power_supply_read_temp only if use_cnt > 0 cgroup: set css->id to -1 during init pinctrl: imx: Do not treat a PIN without MUX register as an error pinctrl: single: Fix missing flush of posted write for a wakeirq pvclock: Add CPU barriers to get correct version value Input: tsc200x - report proper input_dev name Input: xpad - validate USB endpoint count during probe Input: wacom_w8001 - w8001_MAX_LENGTH should be 13 Input: xpad - fix oops when attaching an unknown Xbox One gamepad Input: elantech - add more IC body types to the list Input: vmmouse - remove port reservation ALSA: timer: Fix leak in events via snd_timer_user_tinterrupt ALSA: timer: Fix leak in events via snd_timer_user_ccallback ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS xenbus: don't bail early from xenbus_dev_request_and_reply() xenbus: don't BUG() on user mode induced condition xen/pciback: Fix conf_space read/write overlap check. ARC: unwind: ensure that .debug_frame is generated (vs. .eh_frame) arc: unwind: warn only once if DW2_UNWIND is disabled kernel/sysrq, watchdog, sched/core: Reset watchdog on all CPUs while processing sysrq-w pps: do not crash when failed to register vmlinux.lds: account for destructor sections mm, meminit: ensure node is online before checking whether pages are uninitialised mm, meminit: always return a valid node from early_pfn_to_nid mm, compaction: prevent VM_BUG_ON when terminating freeing scanner fs/nilfs2: fix potential underflow in call to crc32_le mm, compaction: abort free scanner if split fails mm, sl[au]b: add __GFP_ATOMIC to the GFP reclaim mask dmaengine: at_xdmac: double FIFO flush needed to compute residue dmaengine: at_xdmac: fix residue corruption dmaengine: at_xdmac: align descriptors on 64 bits x86/quirks: Add early quirk to reset Apple AirPort card x86/quirks: Reintroduce scanning of secondary buses x86/quirks: Apply nvidia_bugs quirk only on root bus USB: OHCI: Don't mark EDs as ED_OPER if scheduling fails Conflicts: arch/arm/kernel/topology.c arch/arm64/include/asm/arch_gicv3.h arch/arm64/kernel/topology.c block/bio.c drivers/cpufreq/Kconfig drivers/md/Makefile drivers/media/dvb-core/dvb_ringbuffer.c drivers/media/tuners/tuner-xc2028.c drivers/misc/Kconfig drivers/misc/Makefile drivers/mmc/core/host.c drivers/scsi/ufs/ufshcd.c drivers/scsi/ufs/ufshcd.h drivers/usb/dwc3/gadget.c drivers/usb/gadget/configfs.c fs/ecryptfs/file.c include/linux/mmc/core.h include/linux/mmc/host.h include/linux/mmzone.h include/linux/sched.h include/linux/sched/sysctl.h include/trace/events/power.h include/trace/events/sched.h init/Kconfig kernel/cpuset.c kernel/exit.c kernel/sched/Makefile kernel/sched/core.c kernel/sched/cputime.c kernel/sched/fair.c kernel/sched/features.h kernel/sched/rt.c kernel/sched/sched.h kernel/sched/stop_task.c kernel/sched/tune.c lib/Kconfig.debug mm/Makefile mm/vmstat.c Change-Id: I243a43231ca56a6362076fa6301827e1b0493be5 Signed-off-by: Runmin Wang <runminw@codeaurora.org>
1088 lines
32 KiB
Text
1088 lines
32 KiB
Text
config ARM64
|
|
def_bool y
|
|
select ACPI_CCA_REQUIRED if ACPI
|
|
select ACPI_GENERIC_GSI if ACPI
|
|
select ACPI_REDUCED_HARDWARE_ONLY if ACPI
|
|
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
|
select ARCH_HAS_ELF_RANDOMIZE
|
|
select ARCH_HAS_GCOV_PROFILE_ALL
|
|
select ARCH_HAS_SG_CHAIN
|
|
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
|
select ARCH_USE_CMPXCHG_LOCKREF
|
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
|
select ARCH_WANT_OPTIONAL_GPIOLIB
|
|
select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
|
select ARCH_WANT_FRAME_POINTERS
|
|
select ARCH_HAVE_CUSTOM_GPIO_H
|
|
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
|
select ARM_AMBA
|
|
select ARM_ARCH_TIMER
|
|
select ARM_GIC
|
|
select AUDIT_ARCH_COMPAT_GENERIC
|
|
select ARM_GIC_V2M if PCI_MSI
|
|
select ARM_GIC_V3
|
|
select ARM_GIC_V3_ITS if PCI_MSI
|
|
select ARM_PSCI_FW
|
|
select BUILDTIME_EXTABLE_SORT
|
|
select CLONE_BACKWARDS
|
|
select COMMON_CLK if !ARCH_QCOM
|
|
select CPU_PM if (SUSPEND || CPU_IDLE)
|
|
select DCACHE_WORD_ACCESS
|
|
select EDAC_SUPPORT
|
|
select FRAME_POINTER
|
|
select GENERIC_ALLOCATOR
|
|
select EDAC_SUPPORT
|
|
select GENERIC_CLOCKEVENTS
|
|
select GENERIC_CLOCKEVENTS_BROADCAST
|
|
select GENERIC_CPU_AUTOPROBE
|
|
select GENERIC_EARLY_IOREMAP
|
|
select GENERIC_IDLE_POLL_SETUP
|
|
select GENERIC_IRQ_PROBE
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_IRQ_SHOW_LEVEL
|
|
select GENERIC_PCI_IOMAP
|
|
select GENERIC_SCHED_CLOCK
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select GENERIC_STRNCPY_FROM_USER
|
|
select GENERIC_STRNLEN_USER
|
|
select GENERIC_TIME_VSYSCALL
|
|
select HANDLE_DOMAIN_IRQ
|
|
select HARDIRQS_SW_RESEND
|
|
select HAVE_ALIGNED_STRUCT_PAGE if SLUB
|
|
select HAVE_ARCH_AUDITSYSCALL
|
|
select HAVE_ARCH_BITREVERSE
|
|
select HAVE_ARCH_HARDENED_USERCOPY
|
|
select HAVE_ARCH_HUGE_VMAP
|
|
select HAVE_ARCH_JUMP_LABEL
|
|
select HAVE_ARCH_KASAN if SPARSEMEM_VMEMMAP && !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
|
|
select HAVE_ARCH_KGDB
|
|
select HAVE_ARCH_MMAP_RND_BITS
|
|
select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
|
|
select HAVE_ARCH_SECCOMP_FILTER
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_BPF_JIT
|
|
select HAVE_C_RECORDMCOUNT
|
|
select HAVE_CC_STACKPROTECTOR
|
|
select HAVE_CMPXCHG_DOUBLE
|
|
select HAVE_CMPXCHG_LOCAL
|
|
select HAVE_DEBUG_BUGVERBOSE
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select HAVE_DMA_API_DEBUG
|
|
select HAVE_DMA_ATTRS
|
|
select HAVE_DMA_CONTIGUOUS
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_EFFICIENT_UNALIGNED_ACCESS
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_GENERIC_DMA_COHERENT
|
|
select HAVE_IRQ_TIME_ACCOUNTING
|
|
select HAVE_MEMBLOCK
|
|
select HAVE_PATA_PLATFORM
|
|
select HAVE_PERF_EVENTS
|
|
select HAVE_PERF_REGS
|
|
select HAVE_PERF_USER_STACK_DUMP
|
|
select HAVE_RCU_TABLE_FREE
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select IOMMU_DMA if (IOMMU_SUPPORT && !ARCH_QCOM)
|
|
select IRQ_DOMAIN
|
|
select IRQ_FORCED_THREADING
|
|
select MODULES_USE_ELF_RELA
|
|
select NO_BOOTMEM
|
|
select OF
|
|
select OF_EARLY_FLATTREE
|
|
select OF_RESERVED_MEM
|
|
select PERF_USE_VMALLOC
|
|
select POWER_RESET
|
|
select POWER_SUPPLY
|
|
select RTC_LIB
|
|
select SPARSE_IRQ
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select HAVE_CONTEXT_TRACKING
|
|
help
|
|
ARM 64-bit (AArch64) Linux support.
|
|
|
|
config 64BIT
|
|
def_bool y
|
|
|
|
config ARCH_PHYS_ADDR_T_64BIT
|
|
def_bool y
|
|
|
|
config MMU
|
|
def_bool y
|
|
|
|
config ARCH_MMAP_RND_BITS_MIN
|
|
default 14 if ARM64_64K_PAGES
|
|
default 16 if ARM64_16K_PAGES
|
|
default 18
|
|
|
|
# max bits determined by the following formula:
|
|
# VA_BITS - PAGE_SHIFT - 3
|
|
config ARCH_MMAP_RND_BITS_MAX
|
|
default 19 if ARM64_VA_BITS=36
|
|
default 24 if ARM64_VA_BITS=39
|
|
default 27 if ARM64_VA_BITS=42
|
|
default 30 if ARM64_VA_BITS=47
|
|
default 29 if ARM64_VA_BITS=48 && ARM64_64K_PAGES
|
|
default 31 if ARM64_VA_BITS=48 && ARM64_16K_PAGES
|
|
default 33 if ARM64_VA_BITS=48
|
|
default 14 if ARM64_64K_PAGES
|
|
default 16 if ARM64_16K_PAGES
|
|
default 18
|
|
|
|
config ARCH_MMAP_RND_COMPAT_BITS_MIN
|
|
default 7 if ARM64_64K_PAGES
|
|
default 9 if ARM64_16K_PAGES
|
|
default 11
|
|
|
|
config ARCH_MMAP_RND_COMPAT_BITS_MAX
|
|
default 16
|
|
|
|
config NO_IOPORT_MAP
|
|
def_bool y if !PCI
|
|
|
|
config ILLEGAL_POINTER_VALUE
|
|
hex
|
|
default 0xdead000000000000
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
|
|
config ILLEGAL_POINTER_VALUE
|
|
hex
|
|
default 0xdead000000000000
|
|
|
|
config LOCKDEP_SUPPORT
|
|
def_bool y
|
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
|
def_bool y
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
def_bool y
|
|
|
|
config GENERIC_BUG
|
|
def_bool y
|
|
depends on BUG
|
|
|
|
config GENERIC_BUG_RELATIVE_POINTERS
|
|
def_bool y
|
|
depends on GENERIC_BUG
|
|
|
|
config GENERIC_HWEIGHT
|
|
def_bool y
|
|
|
|
config GENERIC_CSUM
|
|
def_bool y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config ZONE_DMA
|
|
def_bool y
|
|
|
|
config HAVE_GENERIC_RCU_GUP
|
|
def_bool y
|
|
|
|
config ARCH_DMA_ADDR_T_64BIT
|
|
def_bool y
|
|
|
|
config NEED_DMA_MAP_STATE
|
|
def_bool y
|
|
|
|
config NEED_SG_DMA_LENGTH
|
|
def_bool y
|
|
|
|
config SMP
|
|
def_bool y
|
|
|
|
config ARM64_DMA_USE_IOMMU
|
|
bool
|
|
select ARM_HAS_SG_CHAIN
|
|
select NEED_SG_DMA_LENGTH
|
|
|
|
if ARM64_DMA_USE_IOMMU
|
|
|
|
config ARM64_DMA_IOMMU_ALIGNMENT
|
|
int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers"
|
|
range 4 9
|
|
default 8
|
|
help
|
|
DMA mapping framework by default aligns all buffers to the smallest
|
|
PAGE_SIZE order which is greater than or equal to the requested buffer
|
|
size. This works well for buffers up to a few hundreds kilobytes, but
|
|
for larger buffers it just a waste of address space. Drivers which has
|
|
relatively small addressing window (like 64Mib) might run out of
|
|
virtual space with just a few allocations.
|
|
|
|
With this parameter you can specify the maximum PAGE_SIZE order for
|
|
DMA IOMMU buffers. Larger buffers will be aligned only to this
|
|
specified order. The order is expressed as a power of two multiplied
|
|
by the PAGE_SIZE.
|
|
|
|
endif
|
|
|
|
config SWIOTLB
|
|
def_bool y
|
|
|
|
config IOMMU_HELPER
|
|
def_bool SWIOTLB
|
|
|
|
config KERNEL_MODE_NEON
|
|
def_bool y
|
|
|
|
config FIX_EARLYCON_MEM
|
|
def_bool y
|
|
|
|
config PGTABLE_LEVELS
|
|
int
|
|
default 2 if ARM64_16K_PAGES && ARM64_VA_BITS_36
|
|
default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
|
|
default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
|
|
default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
|
|
default 3 if ARM64_16K_PAGES && ARM64_VA_BITS_47
|
|
default 4 if !ARM64_64K_PAGES && ARM64_VA_BITS_48
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
source "arch/arm64/Kconfig.platforms"
|
|
|
|
menu "Bus support"
|
|
|
|
config PCI
|
|
bool "PCI support"
|
|
help
|
|
This feature enables support for PCI bus system. If you say Y
|
|
here, the kernel will include drivers and infrastructure code
|
|
to support PCI bus devices.
|
|
|
|
config PCI_DOMAINS
|
|
def_bool PCI
|
|
|
|
config PCI_DOMAINS_GENERIC
|
|
def_bool PCI
|
|
|
|
config PCI_SYSCALL
|
|
def_bool PCI
|
|
|
|
source "drivers/pci/Kconfig"
|
|
source "drivers/pci/pcie/Kconfig"
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
endmenu
|
|
|
|
menu "Kernel Features"
|
|
|
|
menu "ARM errata workarounds via the alternatives framework"
|
|
|
|
config ARM64_ERRATUM_826319
|
|
bool "Cortex-A53: 826319: System might deadlock if a write cannot complete until read data is accepted"
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 826319 on Cortex-A53 parts up to r0p2 with an AMBA 4 ACE or
|
|
AXI master interface and an L2 cache.
|
|
|
|
If a Cortex-A53 uses an AMBA AXI4 ACE interface to other processors
|
|
and is unable to accept a certain write via this interface, it will
|
|
not progress on read data presented on the read data channel and the
|
|
system can deadlock.
|
|
|
|
The workaround promotes data cache clean instructions to
|
|
data cache clean-and-invalidate.
|
|
Please note that this does not necessarily enable the workaround,
|
|
as it depends on the alternative framework, which will only patch
|
|
the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_827319
|
|
bool "Cortex-A53: 827319: Data cache clean instructions might cause overlapping transactions to the interconnect"
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 827319 on Cortex-A53 parts up to r0p2 with an AMBA 5 CHI
|
|
master interface and an L2 cache.
|
|
|
|
Under certain conditions this erratum can cause a clean line eviction
|
|
to occur at the same time as another transaction to the same address
|
|
on the AMBA 5 CHI interface, which can cause data corruption if the
|
|
interconnect reorders the two transactions.
|
|
|
|
The workaround promotes data cache clean instructions to
|
|
data cache clean-and-invalidate.
|
|
Please note that this does not necessarily enable the workaround,
|
|
as it depends on the alternative framework, which will only patch
|
|
the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_824069
|
|
bool "Cortex-A53: 824069: Cache line might not be marked as clean after a CleanShared snoop"
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 824069 on Cortex-A53 parts up to r0p2 when it is connected
|
|
to a coherent interconnect.
|
|
|
|
If a Cortex-A53 processor is executing a store or prefetch for
|
|
write instruction at the same time as a processor in another
|
|
cluster is executing a cache maintenance operation to the same
|
|
address, then this erratum might cause a clean cache line to be
|
|
incorrectly marked as dirty.
|
|
|
|
The workaround promotes data cache clean instructions to
|
|
data cache clean-and-invalidate.
|
|
Please note that this option does not necessarily enable the
|
|
workaround, as it depends on the alternative framework, which will
|
|
only patch the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_819472
|
|
bool "Cortex-A53: 819472: Store exclusive instructions might cause data corruption"
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 819472 on Cortex-A53 parts up to r0p1 with an L2 cache
|
|
present when it is connected to a coherent interconnect.
|
|
|
|
If the processor is executing a load and store exclusive sequence at
|
|
the same time as a processor in another cluster is executing a cache
|
|
maintenance operation to the same address, then this erratum might
|
|
cause data corruption.
|
|
|
|
The workaround promotes data cache clean instructions to
|
|
data cache clean-and-invalidate.
|
|
Please note that this does not necessarily enable the workaround,
|
|
as it depends on the alternative framework, which will only patch
|
|
the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_832075
|
|
bool "Cortex-A57: 832075: possible deadlock on mixing exclusive memory accesses with device loads"
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 832075 on Cortex-A57 parts up to r1p2.
|
|
|
|
Affected Cortex-A57 parts might deadlock when exclusive load/store
|
|
instructions to Write-Back memory are mixed with Device loads.
|
|
|
|
The workaround is to promote device loads to use Load-Acquire
|
|
semantics.
|
|
Please note that this does not necessarily enable the workaround,
|
|
as it depends on the alternative framework, which will only patch
|
|
the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_834220
|
|
bool "Cortex-A57: 834220: Stage 2 translation fault might be incorrectly reported in presence of a Stage 1 fault"
|
|
depends on KVM
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 834220 on Cortex-A57 parts up to r1p2.
|
|
|
|
Affected Cortex-A57 parts might report a Stage 2 translation
|
|
fault as the result of a Stage 1 fault for load crossing a
|
|
page boundary when there is a permission or device memory
|
|
alignment fault at Stage 1 and a translation fault at Stage 2.
|
|
|
|
The workaround is to verify that the Stage 1 translation
|
|
doesn't generate a fault before handling the Stage 2 fault.
|
|
Please note that this does not necessarily enable the workaround,
|
|
as it depends on the alternative framework, which will only patch
|
|
the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_845719
|
|
bool "Cortex-A53: 845719: a load might read incorrect data"
|
|
depends on COMPAT
|
|
default y
|
|
help
|
|
This option adds an alternative code sequence to work around ARM
|
|
erratum 845719 on Cortex-A53 parts up to r0p4.
|
|
|
|
When running a compat (AArch32) userspace on an affected Cortex-A53
|
|
part, a load at EL0 from a virtual address that matches the bottom 32
|
|
bits of the virtual address used by a recent load at (AArch64) EL1
|
|
might return incorrect data.
|
|
|
|
The workaround is to write the contextidr_el1 register on exception
|
|
return to a 32-bit task.
|
|
Please note that this does not necessarily enable the workaround,
|
|
as it depends on the alternative framework, which will only patch
|
|
the kernel if an affected CPU is detected.
|
|
|
|
If unsure, say Y.
|
|
|
|
config ARM64_ERRATUM_843419
|
|
bool "Cortex-A53: 843419: A load or store might access an incorrect address"
|
|
depends on MODULES
|
|
default y
|
|
select ARM64_MODULE_CMODEL_LARGE
|
|
help
|
|
This option builds kernel modules using the large memory model in
|
|
order to avoid the use of the ADRP instruction, which can cause
|
|
a subsequent memory access to use an incorrect address on Cortex-A53
|
|
parts up to r0p4.
|
|
|
|
Note that the kernel itself must be linked with a version of ld
|
|
which fixes potentially affected ADRP instructions through the
|
|
use of veneers.
|
|
|
|
If unsure, say Y.
|
|
|
|
config CAVIUM_ERRATUM_22375
|
|
bool "Cavium erratum 22375, 24313"
|
|
default y
|
|
help
|
|
Enable workaround for erratum 22375, 24313.
|
|
|
|
This implements two gicv3-its errata workarounds for ThunderX. Both
|
|
with small impact affecting only ITS table allocation.
|
|
|
|
erratum 22375: only alloc 8MB table size
|
|
erratum 24313: ignore memory access type
|
|
|
|
The fixes are in ITS initialization and basically ignore memory access
|
|
type and table size provided by the TYPER and BASER registers.
|
|
|
|
If unsure, say Y.
|
|
|
|
config CAVIUM_ERRATUM_23144
|
|
bool "Cavium erratum 23144: ITS SYNC hang on dual socket system"
|
|
depends on NUMA
|
|
default y
|
|
help
|
|
ITS SYNC command hang for cross node io and collections/cpu mapping.
|
|
|
|
If unsure, say Y.
|
|
|
|
config CAVIUM_ERRATUM_23154
|
|
bool "Cavium erratum 23154: Access to ICC_IAR1_EL1 is not sync'ed"
|
|
default y
|
|
help
|
|
The gicv3 of ThunderX requires a modified version for
|
|
reading the IAR status to ensure data synchronization
|
|
(access to icc_iar1_el1 is not sync'ed before and after).
|
|
|
|
If unsure, say Y.
|
|
|
|
config CAVIUM_ERRATUM_27456
|
|
bool "Cavium erratum 27456: Broadcast TLBI instructions may cause icache corruption"
|
|
default y
|
|
help
|
|
On ThunderX T88 pass 1.x through 2.1 parts, broadcast TLBI
|
|
instructions may cause the icache to become corrupted if it
|
|
contains data for a non-current ASID. The fix is to
|
|
invalidate the icache when changing the mm context.
|
|
|
|
If unsure, say Y.
|
|
|
|
endmenu
|
|
|
|
|
|
choice
|
|
prompt "Page size"
|
|
default ARM64_4K_PAGES
|
|
help
|
|
Page size (translation granule) configuration.
|
|
|
|
config ARM64_4K_PAGES
|
|
bool "4KB"
|
|
help
|
|
This feature enables 4KB pages support.
|
|
|
|
config ARM64_16K_PAGES
|
|
bool "16KB"
|
|
help
|
|
The system will use 16KB pages support. AArch32 emulation
|
|
requires applications compiled with 16K (or a multiple of 16K)
|
|
aligned segments.
|
|
|
|
config ARM64_DCACHE_DISABLE
|
|
bool "Disable CPU Data Caches"
|
|
help
|
|
Disable CPU data cache usage by setting the SCTLR[C] bit during
|
|
kernel initialization. This will result in a considerable
|
|
performance impact, but may be useful in certain situations.
|
|
|
|
If you are not sure what to do, select 'N' here.
|
|
|
|
config ARM64_ICACHE_DISABLE
|
|
bool "Disable CPU Instruction Caches"
|
|
help
|
|
Disable CPU instruction cache usage by setting the SCTLR[I]
|
|
bit during kernel initialization. This will result in a
|
|
considerable performance impact, but may be useful in certain
|
|
situations.
|
|
|
|
If you are not sure what to do, select 'N' here.
|
|
|
|
config ARM64_64K_PAGES
|
|
bool "64KB"
|
|
help
|
|
This feature enables 64KB pages support (4KB by default)
|
|
allowing only two levels of page tables and faster TLB
|
|
look-up. AArch32 emulation requires applications compiled
|
|
with 64K aligned segments.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Virtual address space size"
|
|
default ARM64_VA_BITS_39 if ARM64_4K_PAGES
|
|
default ARM64_VA_BITS_47 if ARM64_16K_PAGES
|
|
default ARM64_VA_BITS_42 if ARM64_64K_PAGES
|
|
help
|
|
Allows choosing one of multiple possible virtual address
|
|
space sizes. The level of translation table is determined by
|
|
a combination of page size and virtual address space size.
|
|
|
|
config ARM64_VA_BITS_36
|
|
bool "36-bit" if EXPERT
|
|
depends on ARM64_16K_PAGES
|
|
|
|
config ARM64_VA_BITS_39
|
|
bool "39-bit"
|
|
depends on ARM64_4K_PAGES
|
|
|
|
config ARM64_VA_BITS_42
|
|
bool "42-bit"
|
|
depends on ARM64_64K_PAGES
|
|
|
|
config ARM64_VA_BITS_47
|
|
bool "47-bit"
|
|
depends on ARM64_16K_PAGES
|
|
|
|
config ARM64_VA_BITS_48
|
|
bool "48-bit"
|
|
|
|
endchoice
|
|
|
|
config ARM64_VA_BITS
|
|
int
|
|
default 36 if ARM64_VA_BITS_36
|
|
default 39 if ARM64_VA_BITS_39
|
|
default 42 if ARM64_VA_BITS_42
|
|
default 47 if ARM64_VA_BITS_47
|
|
default 48 if ARM64_VA_BITS_48
|
|
|
|
config CPU_BIG_ENDIAN
|
|
bool "Build big-endian kernel"
|
|
help
|
|
Say Y if you plan on running a kernel in big-endian mode.
|
|
|
|
config SCHED_MC
|
|
bool "Multi-core scheduler support"
|
|
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_SMT
|
|
bool "SMT scheduler support"
|
|
help
|
|
Improves the CPU scheduler's decision making when dealing with
|
|
MultiThreading at a cost of slightly increased overhead in some
|
|
places. If unsure say N here.
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs (2-4096)"
|
|
range 2 4096
|
|
# These have to remain sorted largest to smallest
|
|
default "64"
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
select GENERIC_IRQ_MIGRATION
|
|
help
|
|
Say Y here to experiment with turning CPUs off and on. CPUs
|
|
can be controlled through /sys/devices/system/cpu.
|
|
|
|
# The GPIO number here must be sorted by descending number. In case of
|
|
# a multiplatform kernel, we just want the highest value required by the
|
|
# selected platforms.
|
|
config ARCH_NR_GPIO
|
|
int
|
|
default 1024 if ARCH_TEGRA
|
|
default 1024 if ARCH_QCOM
|
|
default 256
|
|
help
|
|
Maximum number of GPIOs in the system.
|
|
|
|
If unsure, leave the default value.
|
|
|
|
|
|
source kernel/Kconfig.preempt
|
|
source kernel/Kconfig.hz
|
|
|
|
config ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
|
def_bool y
|
|
|
|
config ARCH_HAS_HOLES_MEMORYMODEL
|
|
def_bool y if SPARSEMEM
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y
|
|
select SPARSEMEM_VMEMMAP_ENABLE
|
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
|
def_bool ARCH_SPARSEMEM_ENABLE
|
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
def_bool ARCH_SPARSEMEM_ENABLE
|
|
|
|
config HAVE_ARCH_PFN_VALID
|
|
def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
|
|
|
|
config HW_PERF_EVENTS
|
|
def_bool y
|
|
depends on ARM_PMU
|
|
|
|
config ARM64_REG_REBALANCE_ON_CTX_SW
|
|
bool "Rebalance registers during context switches."
|
|
def_bool ARCH_MSM8996
|
|
help
|
|
Forcefully re-balance register rename pools on context switches for
|
|
improved performance on some devices.
|
|
|
|
config PERF_EVENTS_USERMODE
|
|
bool "Enable usermode access for perf events"
|
|
depends on PERF_EVENTS
|
|
help
|
|
Enable user-mode access to performance counters for perf events.
|
|
If enabled, the access permissions allowing CPU performance
|
|
counters to be accessed from user-mode are set.
|
|
|
|
If you want user-mode programs to access perf events, say Y
|
|
|
|
config PERF_EVENTS_RESET_PMU_DEBUGFS
|
|
bool "Reset PMU via debugfs node"
|
|
depends on PERF_EVENTS
|
|
help
|
|
Enable the debugfs node that can be used to reset PMUs and all
|
|
state variables associated with PMUs. If enabled, PMU and internal
|
|
state variable are cleared.
|
|
If you want to reset PMU and PMU related internal Perf variables
|
|
via debugfs then say Y.
|
|
|
|
config SYS_SUPPORTS_HUGETLBFS
|
|
def_bool y
|
|
|
|
config ARCH_WANT_HUGE_PMD_SHARE
|
|
def_bool y if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36)
|
|
|
|
config HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
|
def_bool y
|
|
|
|
config ARCH_HAS_CACHE_LINE_SIZE
|
|
def_bool y
|
|
|
|
source "mm/Kconfig"
|
|
|
|
config SECCOMP
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
---help---
|
|
This kernel feature is useful for number crunching applications
|
|
that may need to compute untrusted bytecode during their
|
|
execution. By using pipes or other transports made available to
|
|
the process as file descriptors supporting the read/write
|
|
syscalls, it's possible to isolate those applications in
|
|
their own address space using seccomp. Once seccomp is
|
|
enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
|
|
and the task is only allowed to execute a few safe syscalls
|
|
defined by each seccomp mode.
|
|
|
|
config XEN_DOM0
|
|
def_bool y
|
|
depends on XEN
|
|
|
|
config XEN
|
|
bool "Xen guest support on ARM64"
|
|
depends on ARM64 && OF
|
|
select SWIOTLB_XEN
|
|
help
|
|
Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
|
|
|
|
config FORCE_MAX_ZONEORDER
|
|
int
|
|
default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
|
|
default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE)
|
|
default "11"
|
|
help
|
|
The kernel memory allocator divides physically contiguous memory
|
|
blocks into "zones", where each zone is a power of two number of
|
|
pages. This option selects the largest power of two that the kernel
|
|
keeps in the memory allocator. If you need to allocate very large
|
|
blocks of physically contiguous memory, then you may need to
|
|
increase this value.
|
|
|
|
This config option is actually maximum order plus one. For example,
|
|
a value of 11 means that the largest free memory block is 2^10 pages.
|
|
|
|
We make sure that we can allocate upto a HugePage size for each configuration.
|
|
Hence we have :
|
|
MAX_ORDER = (PMD_SHIFT - PAGE_SHIFT) + 1 => PAGE_SHIFT - 2
|
|
|
|
However for 4K, we choose a higher default value, 11 as opposed to 10, giving us
|
|
4M allocations matching the default size used by generic code.
|
|
|
|
menuconfig ARMV8_DEPRECATED
|
|
bool "Emulate deprecated/obsolete ARMv8 instructions"
|
|
depends on COMPAT
|
|
help
|
|
Legacy software support may require certain instructions
|
|
that have been deprecated or obsoleted in the architecture.
|
|
|
|
Enable this config to enable selective emulation of these
|
|
features.
|
|
|
|
If unsure, say Y
|
|
|
|
if ARMV8_DEPRECATED
|
|
|
|
config SWP_EMULATION
|
|
bool "Emulate SWP/SWPB instructions"
|
|
help
|
|
ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that
|
|
they are always undefined. Say Y here to enable software
|
|
emulation of these instructions for userspace using LDXR/STXR.
|
|
|
|
In some older versions of glibc [<=2.8] SWP is used during futex
|
|
trylock() operations with the assumption that the code will not
|
|
be preempted. This invalid assumption may be more likely to fail
|
|
with SWP emulation enabled, leading to deadlock of the user
|
|
application.
|
|
|
|
NOTE: when accessing uncached shared regions, LDXR/STXR rely
|
|
on an external transaction monitoring block called a global
|
|
monitor to maintain update atomicity. If your system does not
|
|
implement a global monitor, this option can cause programs that
|
|
perform SWP operations to uncached memory to deadlock.
|
|
|
|
If unsure, say Y
|
|
|
|
config CP15_BARRIER_EMULATION
|
|
bool "Emulate CP15 Barrier instructions"
|
|
help
|
|
The CP15 barrier instructions - CP15ISB, CP15DSB, and
|
|
CP15DMB - are deprecated in ARMv8 (and ARMv7). It is
|
|
strongly recommended to use the ISB, DSB, and DMB
|
|
instructions instead.
|
|
|
|
Say Y here to enable software emulation of these
|
|
instructions for AArch32 userspace code. When this option is
|
|
enabled, CP15 barrier usage is traced which can help
|
|
identify software that needs updating.
|
|
|
|
If unsure, say Y
|
|
|
|
config SETEND_EMULATION
|
|
bool "Emulate SETEND instruction"
|
|
help
|
|
The SETEND instruction alters the data-endianness of the
|
|
AArch32 EL0, and is deprecated in ARMv8.
|
|
|
|
Say Y here to enable software emulation of the instruction
|
|
for AArch32 userspace code.
|
|
|
|
Note: All the cpus on the system must have mixed endian support at EL0
|
|
for this feature to be enabled. If a new CPU - which doesn't support mixed
|
|
endian - is hotplugged in after this feature has been enabled, there could
|
|
be unexpected results in the applications.
|
|
|
|
If unsure, say Y
|
|
endif
|
|
|
|
menu "ARMv8.1 architectural features"
|
|
|
|
config ARM64_HW_AFDBM
|
|
bool "Support for hardware updates of the Access and Dirty page flags"
|
|
default y
|
|
help
|
|
The ARMv8.1 architecture extensions introduce support for
|
|
hardware updates of the access and dirty information in page
|
|
table entries. When enabled in TCR_EL1 (HA and HD bits) on
|
|
capable processors, accesses to pages with PTE_AF cleared will
|
|
set this bit instead of raising an access flag fault.
|
|
Similarly, writes to read-only pages with the DBM bit set will
|
|
clear the read-only bit (AP[2]) instead of raising a
|
|
permission fault.
|
|
|
|
Kernels built with this configuration option enabled continue
|
|
to work on pre-ARMv8.1 hardware and the performance impact is
|
|
minimal. If unsure, say Y.
|
|
|
|
config ARM64_PAN
|
|
bool "Enable support for Privileged Access Never (PAN)"
|
|
default y
|
|
help
|
|
Privileged Access Never (PAN; part of the ARMv8.1 Extensions)
|
|
prevents the kernel or hypervisor from accessing user-space (EL0)
|
|
memory directly.
|
|
|
|
Choosing this option will cause any unprotected (not using
|
|
copy_to_user et al) memory access to fail with a permission fault.
|
|
|
|
The feature is detected at runtime, and will remain as a 'nop'
|
|
instruction if the cpu does not implement the feature.
|
|
|
|
config ARM64_LSE_ATOMICS
|
|
bool "Atomic instructions"
|
|
help
|
|
As part of the Large System Extensions, ARMv8.1 introduces new
|
|
atomic instructions that are designed specifically to scale in
|
|
very large systems.
|
|
|
|
Say Y here to make use of these instructions for the in-kernel
|
|
atomic routines. This incurs a small overhead on CPUs that do
|
|
not support these instructions and requires the kernel to be
|
|
built with binutils >= 2.25.
|
|
|
|
endmenu
|
|
|
|
config ARM64_UAO
|
|
bool "Enable support for User Access Override (UAO)"
|
|
default y
|
|
help
|
|
User Access Override (UAO; part of the ARMv8.2 Extensions)
|
|
causes the 'unprivileged' variant of the load/store instructions to
|
|
be overriden to be privileged.
|
|
|
|
This option changes get_user() and friends to use the 'unprivileged'
|
|
variant of the load/store instructions. This ensures that user-space
|
|
really did have access to the supplied memory. When addr_limit is
|
|
set to kernel memory the UAO bit will be set, allowing privileged
|
|
access to kernel memory.
|
|
|
|
Choosing this option will cause copy_to_user() et al to use user-space
|
|
memory permissions.
|
|
|
|
The feature is detected at runtime, the kernel will use the
|
|
regular load/store instructions if the cpu does not implement the
|
|
feature.
|
|
|
|
config ARM64_MODULE_CMODEL_LARGE
|
|
bool
|
|
|
|
config ARM64_MODULE_PLTS
|
|
bool
|
|
select ARM64_MODULE_CMODEL_LARGE
|
|
select HAVE_MOD_ARCH_SPECIFIC
|
|
|
|
config RELOCATABLE
|
|
bool
|
|
help
|
|
This builds the kernel as a Position Independent Executable (PIE),
|
|
which retains all relocation metadata required to relocate the
|
|
kernel binary at runtime to a different virtual address than the
|
|
address it was linked at.
|
|
Since AArch64 uses the RELA relocation format, this requires a
|
|
relocation pass at runtime even if the kernel is loaded at the
|
|
same address it was linked at.
|
|
|
|
config RANDOMIZE_BASE
|
|
bool "Randomize the address of the kernel image"
|
|
select ARM64_MODULE_PLTS
|
|
select RELOCATABLE
|
|
help
|
|
Randomizes the virtual address at which the kernel image is
|
|
loaded, as a security feature that deters exploit attempts
|
|
relying on knowledge of the location of kernel internals.
|
|
|
|
It is the bootloader's job to provide entropy, by passing a
|
|
random u64 value in /chosen/kaslr-seed at kernel entry.
|
|
|
|
When booting via the UEFI stub, it will invoke the firmware's
|
|
EFI_RNG_PROTOCOL implementation (if available) to supply entropy
|
|
to the kernel proper. In addition, it will randomise the physical
|
|
location of the kernel Image as well.
|
|
|
|
If unsure, say N.
|
|
|
|
config RANDOMIZE_MODULE_REGION_FULL
|
|
bool "Randomize the module region independently from the core kernel"
|
|
depends on RANDOMIZE_BASE
|
|
default y
|
|
help
|
|
Randomizes the location of the module region without considering the
|
|
location of the core kernel. This way, it is impossible for modules
|
|
to leak information about the location of core kernel data structures
|
|
but it does imply that function calls between modules and the core
|
|
kernel will need to be resolved via veneers in the module PLT.
|
|
|
|
When this option is not set, the module region will be randomized over
|
|
a limited range that contains the [_stext, _etext] interval of the
|
|
core kernel, so branch relocations are always in range.
|
|
|
|
endmenu
|
|
|
|
menu "Boot options"
|
|
|
|
config ARM64_ACPI_PARKING_PROTOCOL
|
|
bool "Enable support for the ARM64 ACPI parking protocol"
|
|
depends on ACPI
|
|
help
|
|
Enable support for the ARM64 ACPI parking protocol. If disabled
|
|
the kernel will not allow booting through the ARM64 ACPI parking
|
|
protocol even if the corresponding data is present in the ACPI
|
|
MADT table.
|
|
|
|
config CMDLINE
|
|
string "Default kernel command string"
|
|
default ""
|
|
help
|
|
Provide a set of default command-line options at build time by
|
|
entering them here. As a minimum, you should specify the the
|
|
root device (e.g. root=/dev/nfs).
|
|
|
|
choice
|
|
prompt "Kernel command line type" if CMDLINE != ""
|
|
default CMDLINE_FROM_BOOTLOADER
|
|
|
|
config CMDLINE_FROM_BOOTLOADER
|
|
bool "Use bootloader kernel arguments if available"
|
|
help
|
|
Uses the command-line options passed by the boot loader. If
|
|
the boot loader doesn't provide any, the default kernel command
|
|
string provided in CMDLINE will be used.
|
|
|
|
config CMDLINE_EXTEND
|
|
bool "Extend bootloader kernel arguments"
|
|
help
|
|
The command-line arguments provided by the boot loader will be
|
|
appended to the default kernel command string.
|
|
|
|
config CMDLINE_FORCE
|
|
bool "Always use the default kernel command string"
|
|
help
|
|
Always use the default kernel command string, even if the boot
|
|
loader passes other arguments to the kernel.
|
|
This is useful if you cannot or don't want to change the
|
|
command-line options your boot loader passes to the kernel.
|
|
endchoice
|
|
|
|
config EFI_STUB
|
|
bool
|
|
|
|
config EFI
|
|
bool "UEFI runtime support"
|
|
depends on OF && !CPU_BIG_ENDIAN
|
|
select LIBFDT
|
|
select UCS2_STRING
|
|
select EFI_PARAMS_FROM_FDT
|
|
select EFI_RUNTIME_WRAPPERS
|
|
select EFI_STUB
|
|
select EFI_ARMSTUB
|
|
default y
|
|
help
|
|
This option provides support for runtime services provided
|
|
by UEFI firmware (such as non-volatile variables, realtime
|
|
clock, and platform reset). A UEFI stub is also provided to
|
|
allow the kernel to be booted as an EFI application. This
|
|
is only useful on systems that have UEFI firmware.
|
|
|
|
config DMI
|
|
bool "Enable support for SMBIOS (DMI) tables"
|
|
depends on EFI
|
|
default y
|
|
help
|
|
This enables SMBIOS/DMI feature for systems.
|
|
|
|
This option is only useful on systems that have UEFI firmware.
|
|
However, even with this option, the resultant kernel should
|
|
continue to boot on existing non-UEFI platforms.
|
|
|
|
config BUILD_ARM64_APPENDED_DTB_IMAGE
|
|
bool "Build a concatenated Image.gz/dtb by default"
|
|
depends on OF
|
|
help
|
|
Enabling this option will cause a concatenated Image.gz and list of
|
|
DTBs to be built by default (instead of a standalone Image.gz.)
|
|
The image will built in arch/arm64/boot/Image.gz-dtb
|
|
|
|
config BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES
|
|
string "Default dtb names"
|
|
depends on BUILD_ARM64_APPENDED_DTB_IMAGE
|
|
help
|
|
Space separated list of names of dtbs to append when
|
|
building a concatenated Image.gz-dtb.
|
|
|
|
endmenu
|
|
|
|
menu "Userspace binary formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
config COMPAT
|
|
bool "Kernel support for 32-bit EL0"
|
|
depends on ARM64_4K_PAGES || EXPERT
|
|
select COMPAT_BINFMT_ELF
|
|
select HAVE_UID16
|
|
select OLD_SIGSUSPEND3
|
|
select COMPAT_OLD_SIGACTION
|
|
help
|
|
This option enables support for a 32-bit EL0 running under a 64-bit
|
|
kernel at EL1. AArch32-specific components such as system calls,
|
|
the user helper functions, VFP support and the ptrace interface are
|
|
handled appropriately by the kernel.
|
|
|
|
If you use a page size other than 4KB (i.e, 16KB or 64KB), please be aware
|
|
that you will only be able to execute AArch32 binaries that were compiled
|
|
with page size aligned segments.
|
|
|
|
If you want to execute 32-bit userspace applications, say Y.
|
|
|
|
config SYSVIPC_COMPAT
|
|
def_bool y
|
|
depends on COMPAT && SYSVIPC
|
|
|
|
endmenu
|
|
|
|
menu "Power management options"
|
|
|
|
source "kernel/power/Kconfig"
|
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
def_bool y
|
|
|
|
endmenu
|
|
|
|
menu "CPU Power Management"
|
|
|
|
source "drivers/cpuidle/Kconfig"
|
|
|
|
source "drivers/cpufreq/Kconfig"
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "drivers/firmware/Kconfig"
|
|
|
|
source "drivers/acpi/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/arm64/kvm/Kconfig"
|
|
|
|
source "arch/arm64/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
if CRYPTO
|
|
source "arch/arm64/crypto/Kconfig"
|
|
endif
|
|
|
|
source "lib/Kconfig"
|