mirror of
https://github.com/LineageOS/android_kernel_fxtec_sm6115.git
synced 2026-08-19 10:51:23 +00:00
* origin_4.19/tmp-0567d2f:
Linux 4.19.9
HID: quirks: fix RetroUSB.com devices
mac80211: ignore NullFunc frames in the duplicate detection
mac80211: fix reordering of buffered broadcast packets
mac80211: ignore tx status for PS stations in ieee80211_tx_status_ext
mac80211: Clear beacon_int in ieee80211_do_stop
mac80211: fix GFP_KERNEL under tasklet context
mac80211_hwsim: Timer should be initialized before device registered
cfg80211: Fix busy loop regression in ieee80211_ie_split_ric()
libnvdimm, pfn: Pad pfn namespaces relative to other regions
kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
gnss: sirf: fix activation retry handling
tty: do not set TTY_IO_ERROR flag if console port
tty: serial: 8250_mtk: always resume the device in probe.
Drivers: hv: vmbus: Offload the handling of channels to two workqueues
x86/efi: Allocate e820 buffer before calling efi_exit_boot_service
kprobes/x86: Fix instruction patching corruption when copying more than one RIP-relative instruction
drm/i915: Downgrade Gen9 Plane WM latency error
drm/amdgpu/gmc8: always load MC firmware in the driver
drm/amdgpu/gmc8: update MC firmware for polaris
drm/msm: Move fence put to where failure occurs
drm/lease: Send a distinct uevent
drm/amdgpu: update mc firmware image for polaris12 variants
crypto: do not free algorithm before using
Revert commit ef9209b642 "staging: rtl8723bs: Fix indenting errors and an off-by-one mistake in core/rtw_mlme_ext.c"
staging: rtl8712: Fix possible buffer overrun
cifs: Fix separator when building path from dentry
Revert "x86/e820: put !E820_TYPE_RAM regions into memblock.reserved"
arm64: dts: rockchip: remove vdd_log from rock960 to fix a stability issues
xhci: Prevent U1/U2 link pm states if exit latency is too long
xhci: workaround CSS timeout on AMD SNPS 3.0 xHC
ARM: 8806/1: kprobes: Fix false positive with FORTIFY_SOURCE
dmaengine: cppi41: delete channel from pending list when stop channel
dmaengine: imx-sdma: use GFP_NOWAIT for dma descriptor allocations
dmaengine: imx-sdma: implement channel termination via worker
Revert "dmaengine: imx-sdma: alloclate bd memory from dma pool"
Revert "dmaengine: imx-sdma: Use GFP_NOWAIT for dma allocations"
dmaengine: dw: Fix FIFO size for Intel Merrifield
SUNRPC: Fix leak of krb5p encode pages
arm64: hibernate: Avoid sending cross-calling with interrupts disabled
vhost/vsock: fix use-after-free in network stack callers
virtio/s390: fix race in ccw_io_helper()
virtio/s390: avoid race on vcdev->config
parisc: Enable -ffunction-sections for modules on 32-bit kernel
Revert "mfd: cros_ec: Use devm_kzalloc for private data"
media: dvb-pll: don't re-validate tuner frequencies
media: dvb-pll: fix tuner frequency ranges
media: vicodec: fix memchr() kernel oops
media: gspca: fix frame overflow error
ALSA: hda/realtek: Fix mic issue on Acer AIO Veriton Z4860G/Z6860G
ALSA: hda/realtek: Fix mic issue on Acer AIO Veriton Z4660G
ALSA: hda/realtek - Add support for Acer Aspire C24-860 headset mic
ALSA: hda/realtek: ALC286 mic and headset-mode fixups for Acer Aspire U27-880
ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570
ALSA: pcm: Fix interval evaluation with openmin/max
ALSA: pcm: Call snd_pcm_unlink() conditionally at closing
ALSA: pcm: Fix starvation on down_write_nonblock()
ALSA: hda: Add support for AMD Stoney Ridge
ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
ALSA: usb-audio: Add SMSL D1 to quirks for native DSD support
USB: serial: console: fix reported terminal settings
USB: check usb_get_extra_descriptor for proper size
usb: appledisplay: Add 27" Apple Cinema Display
usb: quirk: add no-LPM quirk on SanDisk Ultra Flair device
net: amd: add missing of_node_put()
team: no need to do team_notify_peers or team_mcast_rejoin when disabling port
ibmvnic: Update driver queues after change in ring size support
ibmvnic: Fix RX queue buffer cleanup
flexfiles: use per-mirror specified stateid for IO
NFSv4.2 copy do not allocate memory under the lock
iommu/vt-d: Use memunmap to free memremap
net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts
riscv: fix warning in arch/riscv/include/asm/module.h
net/ibmnvic: Fix deadlock problem in reset
qed: Fix QM getters to always return a valid pq
qed: Fix bitmap_weight() check
NFSv4: Fix a NFSv4 state manager deadlock
net: ena: fix crash during failed resume from hibernation
mtd: spi-nor: Fix Cadence QSPI page fault kernel panic
HID: multitouch: Add pointstick support for Cirque Touchpad
Revert "HID: uhid: use strlcpy() instead of strncpy()"
cpufreq: ti-cpufreq: Only register platform_device when supported
mtd: rawnand: qcom: Namespace prefix some commands
tc-testing: tdc.py: Guard against lack of returncode in executed command
tc-testing: tdc.py: ignore errors when decoding stdout/stderr
gpio: mockup: fix indicated direction
gpio: pxa: fix legacy non pinctrl aware builds again
drivers/net/ethernet/qlogic/qed/qed_rdma.h: fix typo
net/mlx4: Fix UBSAN warning of signed integer overflow
net/mlx4_core: Fix uninitialized variable compilation warning
net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command
drm/amd/display: Support amdgpu "max bpc" connector property (v2)
drm/amdgpu: Add amdgpu "max bpc" connector property (v2)
bnxt_en: Fix filling time in bnxt_fill_coredump_record()
nvme-fc: resolve io failures during connect
s390/ism: clear dmbe_mask bit before SMC IRQ handling
Revert "usb: gadget: ffs: Fix BUG when userland exits with submitted AIO transfers"
usb: dwc2: pci: Fix an error code in probe
qed: Fix reading wrong value in loop condition
qed: Fix rdma_info structure allocation
qed: Fix overriding offload_tc by protocols without APP TLV
qed: Fix PTT leak in qed_drain()
bnx2x: Assign unique DMAE channel number for FW DMAE transactions.
amd/iommu: Fix Guest Virtual APIC Log Tail Address Register
batman-adv: Expand merged fragment buffer for full packet
batman-adv: Use explicit tvlv padding for ELP packets
HID: input: Ignore battery reported by Symbol DS4308
test_firmware: fix error return getting clobbered
can: rcar_can: Fix erroneous registration
can: ucan: remove set but not used variable 'udev'
scsi: ufs: Fix hynix ufs bug with quirk on hi36xx SoC
iommu/ipmmu-vmsa: Fix crash on early domain free
mt76: fix building without CONFIG_LEDS_CLASS
brcmutil: really fix decoding channel info for 160 MHz bandwidth
iommu/vt-d: Fix NULL pointer dereference in prq_event_thread()
media: ipu3-cio2: Unregister device nodes first, then release resources
media: omap3isp: Unregister media device as first
media: cec: check for non-OK/NACK conditions while claiming a LA
media: vicodec: lower minimum height to 360
ANDROID: cuttlefish_defconfig: Enable VIRT_WIFI
FROMGIT: mac80211-next: rtnetlink wifi simulation device
Linux 4.19.8
blk-mq: punt failed direct issue to dispatch list
tipc: use destination length for copy string
arc: [devboards] Add support of NFSv3 ACL
ARC: change defconfig defaults to ARCv2
btrfs: tree-checker: Don't check max block group size as current max chunk size limit is unreliable
Input: elan_i2c - add support for ELAN0621 touchpad
Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15ARR
Input: elan_i2c - add ELAN0620 to the ACPI table
Input: cros_ec_keyb - fix button/switch capability reports
Input: matrix_keypad - check for errors from of_get_named_gpio()
Input: synaptics - add PNP ID for ThinkPad P50 to SMBus
Input: xpad - quirk all PDP Xbox One gamepads
scsi: lpfc: fix block guard enablement on SLI3 adapters
i40e: Fix deletion of MAC filters
selinux: add support for RTM_NEWCHAIN, RTM_DELCHAIN, and RTM_GETCHAIN
svm: Add mutex_lock to protect apic_access_page_done on AMD systems
kgdboc: Fix warning with module build
kgdboc: Fix restrict error
userfaultfd: shmem: UFFDIO_COPY: set the page dirty if VM_WRITE is not set
userfaultfd: shmem: add i_size checks
userfaultfd: shmem: allocate anonymous memory for MAP_PRIVATE shmem
userfaultfd: use ENOENT instead of EFAULT if the atomic copy user fails
drm/meson: Fix OOB memory accesses in meson_viu_set_osd_lut()
drm/meson: Enable fast_io in meson_dw_hdmi_regmap_config
drm/meson: Fixes for drm_crtc_vblank_on/off support
drm: set is_master to 0 upon drm_new_set_master() failure
drm/amd/dm: Don't forget to attach MST encoders
drm/ast: Fix incorrect free on ioregs
tracing/fgraph: Fix set_graph_function from showing interrupts
IB/mlx5: Avoid load failure due to unknown link width
mips: fix mips_get_syscall_arg o32 check
MIPS: ralink: Fix mt7620 nd_sd pinmux
tracepoint: Use __idx instead of idx in DO_TRACE macro to make it unique
sched, trace: Fix prev_state output in sched_switch tracepoint
arm64: ftrace: Fix to enable syscall events on arm64
mtd: nand: Fix memory allocation in nanddev_bbt_init()
uprobes: Fix handle_swbp() vs. unregister() + register() race once more
iser: set sector for ambiguous mr status errors
unifdef: use memcpy instead of strncpy
test_hexdump: use memcpy instead of strncpy
blk-mq: fix corruption with direct issue
ANDROID: cuttlefish_defconfig: Enable CONFIG_ARM64_LSE_ATOMICS
ANDROID: Move from clang r328903 to r346389b.
Linux 4.19.7
misc: mic/scif: fix copy-paste error in scif_create_remote_lookup
Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl()
mm: use swp_offset as key in shmem_replace_page()
mm: cleancache: fix corruption on missed inode invalidation
lib/test_kmod.c: fix rmmod double free
iio:st_magn: Fix enable device after trigger
iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers
Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid"
usb: core: quirks: add RESET_RESUME quirk for Cherry G230 Stream series
USB: usb-storage: Add new IDs to ums-realtek
staging: rtl8723bs: Add missing return for cfg80211_rtw_get_station
staging: rtl8723bs: Fix incorrect sense of ether_addr_equal
staging: mt7621-pinctrl: fix uninitialized variable ngroups
staging: mt7621-dma: fix potentially dereferencing uninitialized 'tx_desc'
staging: vchiq_arm: fix compat VCHIQ_IOC_AWAIT_COMPLETION
staging: most: use format specifier "%s" in snprintf
dmaengine: at_hdmac: fix module unloading
dmaengine: at_hdmac: fix memory leak in at_dma_xlate()
ARM: dts: rockchip: Remove @0 from the veyron memory node
ASoC: pcm186x: Fix device reset-registers trigger value
ASoC: intel: cht_bsw_max98090_ti: Add quirk for boards using pmc_plt_clk_0
ext2: fix potential use after free
ext2: initialize opts.s_mount_opt as zero before using it
binder: fix race that allows malicious free of live buffer
function_graph: Reverse the order of pushing the ret_stack and the callback
function_graph: Move return callback before update of curr_ret_stack
function_graph: Have profiler use curr_ret_stack and not depth
function_graph: Use new curr_ret_depth to manage depth instead of curr_ret_stack
function_graph: Make ftrace_push_return_trace() static
MIPS: function_graph: Simplify with function_graph_enter()
arm64: function_graph: Simplify with function_graph_enter()
s390/function_graph: Simplify with function_graph_enter()
riscv/function_graph: Simplify with function_graph_enter()
parisc: function_graph: Simplify with function_graph_enter()
sparc/function_graph: Simplify with function_graph_enter()
sh/function_graph: Simplify with function_graph_enter()
powerpc/function_graph: Simplify with function_graph_enter()
nds32: function_graph: Simplify with function_graph_enter()
x86/function_graph: Simplify with function_graph_enter()
microblaze: function_graph: Simplify with function_graph_enter()
ARM: function_graph: Simplify with function_graph_enter()
function_graph: Create function_graph_enter() to consolidate architecture code
ALSA: hda/realtek - Add auto-mute quirk for HP Spectre x360 laptop
ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops
ALSA: hda/realtek - fix headset mic detection for MSI MS-B171
ALSA: hda/realtek - Support ALC300
ALSA: hda: Add ASRock N68C-S UCC the power_save blacklist
ALSA: sparc: Fix invalid snd_free_pages() at error path
ALSA: control: Fix race between adding and removing a user element
ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write
ALSA: wss: Fix invalid snd_free_pages() at error path
fs: fix lost error code in dio_complete
perf/x86/intel: Disallow precise_ip on BTS events
perf/x86/intel: Add generic branch tracing check to intel_pmu_has_bts()
perf/x86/intel: Move branch tracing setup to the Intel-specific source file
x86/fpu: Disable bottom halves while loading FPU registers
x86/MCE/AMD: Fix the thresholding machinery initialization order
arm64: dts: rockchip: Fix PCIe reset polarity for rk3399-puma-haikou.
PCI: Fix incorrect value returned from pcie_get_speed_cap()
PCI: dwc: Fix MSI-X EP framework address calculation bug
PCI: layerscape: Fix wrong invocation of outbound window disable accessor
btrfs: relocation: set trans to be NULL after ending transaction
Btrfs: fix race between enabling quotas and subvolume creation
Btrfs: fix rare chances for data loss when doing a fast fsync
Btrfs: ensure path name is null terminated at btrfs_control_ioctl
btrfs: Always try all copies when reading extent buffers
udf: Allow mounting volumes with incorrect identification strings
xtensa: fix coprocessor part of ptrace_{get,set}xregs
xtensa: fix coprocessor context offset definitions
xtensa: enable coprocessors that are being flushed
KVM: VMX: re-add ple_gap module parameter
KVM: X86: Fix scan ioapic use-before-initialization
KVM: LAPIC: Fix pv ipis use-before-initialization
KVM: x86: Fix kernel info-leak in KVM_HC_CLOCK_PAIRING hypercall
KVM: nVMX/nSVM: Fix bug which sets vcpu->arch.tsc_offset to L1 tsc_offset
kvm: svm: Ensure an IBPB on all affected CPUs when freeing a vmcb
kvm: mmu: Fix race in emulated page table writes
userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas
x86/speculation: Provide IBPB always command line options
x86/speculation: Add seccomp Spectre v2 user space protection mode
x86/speculation: Enable prctl mode for spectre_v2_user
x86/speculation: Add prctl() control for indirect branch speculation
x86/speculation: Prepare arch_smt_update() for PRCTL mode
x86/speculation: Prevent stale SPEC_CTRL msr content
x86/speculation: Split out TIF update
ptrace: Remove unused ptrace_may_access_sched() and MODE_IBRS
x86/speculation: Prepare for conditional IBPB in switch_mm()
x86/speculation: Avoid __switch_to_xtra() calls
x86/process: Consolidate and simplify switch_to_xtra() code
x86/speculation: Prepare for per task indirect branch speculation control
x86/speculation: Add command line control for indirect branch speculation
x86/speculation: Unify conditional spectre v2 print functions
x86/speculataion: Mark command line parser data __initdata
x86/speculation: Mark string arrays const correctly
x86/speculation: Reorder the spec_v2 code
x86/l1tf: Show actual SMT state
x86/speculation: Rework SMT state change
sched/smt: Expose sched_smt_present static key
x86/Kconfig: Select SCHED_SMT if SMP enabled
sched/smt: Make sched_smt_present track topology
x86/speculation: Reorganize speculation control MSRs update
x86/speculation: Rename SSBD update functions
x86/speculation: Disable STIBP when enhanced IBRS is in use
x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common()
x86/speculation: Remove unnecessary ret variable in cpu_show_common()
x86/speculation: Clean up spectre_v2_parse_cmdline()
x86/speculation: Update the TIF_SSBD comment
x86/retpoline: Remove minimal retpoline support
x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support
x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC variant
x86/speculation: Propagate information about RSB filling mitigation to sysfs
x86/speculation: Apply IBPB more strictly to avoid cross-process data leak
x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
tipc: fix lockdep warning during node delete
net: phy: add workaround for issue where PHY driver doesn't bind to the device
tcp: defer SACK compression after DupThresh
net/dim: Update DIM start sample after each DIM iteration
virtio-net: fail XDP set if guest csum is negotiated
virtio-net: disable guest csum during XDP set
net: skb_scrub_packet(): Scrub offload_fwd_mark
net: thunderx: set xdp_prog to NULL if bpf_prog_add fails
usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2
s390/qeth: fix length check in SNMP processing
rapidio/rionet: do not free skb before reading its length
packet: copy user buffers before orphan or clone
net: thunderx: set tso_hdrs pointer to NULL in nicvf_free_snd_queue
net: gemini: Fix copy/paste error
net: don't keep lonely packets forever in the gro hash
lan743x: fix return value for lan743x_tx_napi_poll
lan743x: Enable driver to work with LAN7431
mm/khugepaged: collapse_shmem() do not crash on Compound
mm/khugepaged: collapse_shmem() without freezing new_page
mm/khugepaged: minor reorderings in collapse_shmem()
mm/khugepaged: collapse_shmem() remember to clear holes
mm/khugepaged: fix crashes due to misaccounted holes
mm/khugepaged: collapse_shmem() stop if punched or truncated
mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
mm/huge_memory: splitting set mapping+index before unfreeze
mm/huge_memory: rename freeze_page() to unmap_page()
ANDROID: cuttlefish_defconfig: Enable CONFIG_CRYPTO_ADIANTUM
FROMGIT: fscrypt: add Adiantum support
BACKPORT, FROMGIT: crypto: adiantum - add Adiantum support
FROMGIT: crypto: arm/nhpoly1305 - add NEON-accelerated NHPoly1305
FROMGIT: crypto: nhpoly1305 - add NHPoly1305 support
FROMGIT: crypto: poly1305 - add Poly1305 core API
FROMGIT: crypto: poly1305 - use structures for key and accumulator
FROMGIT: crypto: arm/chacha - add XChaCha12 support
FROMGIT: crypto: arm/chacha20 - refactor to allow varying number of rounds
FROMGIT: crypto: arm/chacha20 - add XChaCha20 support
FROMGIT: crypto: arm/chacha20 - limit the preemption-disabled section
FROMGIT: crypto: chacha - add XChaCha12 support
BACKPORT, FROMGIT: crypto: chacha20-generic - refactor to allow varying number of rounds
FROMGIT: crypto: chacha20-generic - add XChaCha20 support
FROMGIT: crypto: chacha20-generic - don't unnecessarily use atomic walk
FROMGIT: crypto: chacha20-generic - add HChaCha20 library function
FROMGIT: crypto: arm/aes - add some hardening against cache-timing attacks
UPSTREAM: crypto: arm/chacha20 - faster 8-bit rotations and other optimizations
UPSTREAM: crypto: chacha20 - Fix chacha20_block() keystream alignment (again)
ANDROID: cuttlefish_defconfig: Enable CONFIG_SDCARD_FS
ANDROID: sdcardfs: Add sdcardfs filesystem
ANDROID: sdcardfs: Define magic value
ANDROID: fs: Restore vfs_path_lookup() export
ANDROID: vfs: add d_canonical_path for stacked filesystem support
ANDROID: vfs: Add permission2 for filesystems with per mount permissions
ANDROID: vfs: Add setattr2 for filesystems with per mount permissions
ANDROID: vfs: Allow filesystems to access their private mount data
ANDROID: mnt: Add filesystem private data to mount points
ANDROID: sdcardfs: Enable modular sdcardfs
Revert "proc: Convert proc_mount to use mount_ns."
ANDROID: binder: add support for RT prio inheritance.
UPSTREAM: binder: Add BINDER_GET_NODE_INFO_FOR_REF ioctl.
ANDROID: net: ipv6: autoconf routes into per-device tables
ANDROID: cuttlefish_defconfig: Enable SECURITY_PERF_EVENTS_RESTRICT
ANDROID: security,perf: Allow further restriction of perf_event_open
ANDROID: netfilter: xt_IDLETIMER: Add new netlink msg type
ANDROID: cuttlefish_defconfig: Enable CONFIG_NETFILTER_XT_MATCH_QUOTA2
ANDROID: netfilter: xt_quota2: adding the original quota2 from xtables-addons
ANDROID: power: wakeup_reason: add an API to log wakeup reasons
ANDROID: trace: sched: add sched blocked tracepoint which dumps out context of sleep.
ANDROID: add extra free kbytes tunable
CHROMIUM: cgroups: relax permissions on moving tasks between cgroups
ANDROID: cpu: send KOBJ_ONLINE event when enabling cpus
ANDROID: fs: FS tracepoints to track IO.
ANDROID: cuttlefish_defconfig: Enable CONFIG_DM_VERITY_AVB
ANDROID: AVB error handler to invalidate vbmeta partition.
ANDROID: cuttlefish_defconfig: Enable CONFIG_CPUSETS
ANDROID: cpuset: Make cpusets restore on hotplug
ANDROID: taskstats: track fsync syscalls
ANDROID: uid_cputime: add per-uid IO usage accounting
ANDROID: cuttlefish_defconfig: Enable CONFIG_UID_SYS_STATS
ANDROID: uid_cputime: Adds accounting for the cputimes per uid.
ANDROID: cuttlefish_defconfig: Enable CONFIG_MMC
ANDROID: mmc: core: Add "ignore mmc pm notify" functionality
ANDROID: cuttlefish_defconfig: Enable CONFIG_USB_CONFIGFS_F_AUDIO_SRC
ANDROID: usb: gadget: f_audio_source: New gadget driver for audio output
ANDROID: usb: gadget: f_midi: set fi->f to NULL when free f_midi function
ANDROID: usb: gadget: f_midi: create F_midi device
ANDROID: cuttlefish_defconfig: Enable CONFIG_USB_CONFIGFS_F_ACC
ANDROID: usb: gadget: f_accessory: Add Android Accessory function
ANDROID: usb: gadget: configfs: Add device attribute to determine gadget state
ANDROID: usb: gadget: configfs: Add "state" attribute to android_device
ANDROID: cuttlefish_defconfig: Enable CONFIG_USB_CONFIGFS_UEVENT
ANDROID: usb: gadget: configfs: Add function devices to the parent
ANDROID: usb: gadget: configfs: Add Uevent to notify userspace
ANDROID: usb: gadget: configfs: Add usb_function ptr to fi struct
ANDROID: mm: add a field to store names for private anonymous memory
ANDROID: fs: epoll: use freezable blocking call
ANDROID: cuttlefish_defconfig: Enable CONFIG_CMDLINE_EXTEND
ANDROID: of: Support CONFIG_CMDLINE_EXTEND config option
ANDROID: arm64: copy CONFIG_CMDLINE_EXTEND from ARM
UPSTREAM: tcp: start receiver buffer autotuning sooner
UPSTREAM: tcp: up initial rmem to 128KB and SYN rwin to around 64KB
ANDROID: net: xfrm: make PF_KEY SHA256 use RFC-compliant truncation.
ANDROID: cuttlefish_defconfig: Enable EAS related defines
BACKPORT: sched/fair: Fix cpu_util_wake() for 'execl' type workloads
ANDROID: defconfig / build config for cuttlefish
ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple
ANDROID: x86: Remove a useless warning message
Revert "x86: Force asm-goto"
Revert "x86: Allow generating user-space headers without a compiler"
Linux 4.19.6
media: ov5640: fix auto controls values when switching to manual mode
media: ov5640: fix wrong binning value in exposure calculation
media: ov5640: fix auto gain & exposure when changing mode
media: ov5640: fix exposure regression
media: ov5640: Fix timings setup code
media: ov5640: Re-work MIPI startup sequence
rcu: Make need_resched() respond to urgent RCU-QS needs
gfs2: Fix iomap buffer head reference counting bug
tty: wipe buffer if not echoing data
tty: wipe buffer.
include/linux/pfn_t.h: force '~' to be parsed as an unary operator
dax: Avoid losing wakeup in dax_lock_mapping_entry
mm, page_alloc: check for max order in hot path
tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
mm, memory_hotplug: check zone_movable in has_unmovable_pages
z3fold: fix possible reclaim races
efi/arm: Revert deferred unmap of early memmap mapping
powerpc/numa: Suppress "VPHN is not supported" messages
NFSv4: Fix an Oops during delegation callbacks
kdb: Use strscpy with destination buffer size
drm/amdgpu: fix bug with IH ring setup
RISC-V: Silence some module warnings on 32-bit
riscv: add missing vdso_install target
SUNRPC: Fix a bogus get/put in generic_key_to_expire()
block: copy ioprio in __bio_clone_fast() and bounce
perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
sched/fair: Fix cpu_util_wake() for 'execl' type workloads
powerpc/io: Fix the IO workarounds code to work with Radix
floppy: fix race condition in __floppy_read_block_0()
crypto: simd - correctly take reqsize of wrapped skcipher into account
rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
rtc: cmos: Do not export alarm rtc_ops when we do not support alarms
cpufreq: imx6q: add return value check for voltage scale
KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
scsi: hisi_sas: Remove set but not used variable 'dq_list'
scsi: lpfc: fix remoteport access
tools/testing/nvdimm: Fix the array size for dimm devices.
pinctrl: meson: fix meson8b ao pull register bits
pinctrl: meson: fix meson8 ao pull register bits
pinctrl: meson: fix gxl ao pull register bits
pinctrl: meson: fix gxbb ao pull register bits
pinctrl: meson: fix pinconf bias disable
fanotify: fix handling of events on child sub-directory
fsnotify: generalize handling of extra event flags
IB/hfi1: Eliminate races in the SDMA send error path
ACPICA: AML interpreter: add region addresses in global list during initialization
can: flexcan: remove not needed struct flexcan_priv::tx_mb and struct flexcan_priv::tx_mb_idx
can: flexcan: Always use last mailbox for TX
can: hi311x: Use level-triggered interrupt
can: raw: check for CAN FD capable netdev in raw_sendmsg()
can: flexcan: handle tx-complete CAN frames via rx-offload infrastructure
can: flexcan: use can_rx_offload_queue_sorted() for flexcan_irq_bus_*()
can: rx-offload: rename can_rx_offload_irq_queue_err_skb() to can_rx_offload_queue_tail()
can: rx-offload: introduce can_rx_offload_get_echo_skb() and can_rx_offload_queue_sorted() functions
can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb
can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb is accessed out of bounds
can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length
can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb()
can: flexcan: Unlock the MB unconditionally
drm/ast: Remove existing framebuffers before loading driver
drm/ast: fixed cursor may disappear sometimes
drm/ast: change resolution may cause screen blurred
drm/i915: Disable LP3 watermarks on all SNB machines
drm/amdgpu: Fix oops when pp_funcs->switch_power_profile is unset
drm/vc4: Set ->legacy_cursor_update to false when doing non-async updates
drm/amdgpu: Add missing firmware entry for HAINAN
drm/fb-helper: Blacklist writeback when adding connectors to fbdev
tcp: do not release socket ownership in tcp_close()
mm/memory.c: recheck page table entry with page table lock held
mm: don't warn about large allocations for slab
llc: do not use sk_eat_skb()
gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
bfs: add sanity check at bfs_fill_super()
Input: synaptics - avoid using uninitialized variable when probing
selinux: Add __GFP_NOWARN to allocation at str_read()
v9fs_dir_readdir: fix double-free on p9stat_read error
tools/power/cpupower: fix compilation with STATIC=true
opp: ti-opp-supply: Correct the supply in _get_optimal_vdd_voltage call
opp: ti-opp-supply: Dynamically update u_volt_min
brcmfmac: fix reporting support for 160 MHz channels
iwlwifi: mvm: don't use SAR Geo if basic SAR is not used
iwlwifi: mvm: fix regulatory domain update when the firmware starts
iwlwifi: mvm: support sta_statistics() even on older firmware
iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE
gpio: don't free unallocated ida on gpiochip_add_data_with_key() error path
mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value
mmc: sdhci-pci: Try "cd" for card-detect lookup before using NULL
Documentation/security-bugs: Postpone fix publication in exceptional cases
Documentation/security-bugs: Clarify treatment of embargoed information
MAINTAINERS: Add Sasha as a stable branch maintainer
ALSA: oss: Use kvzalloc() for local buffer allocations
usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc
usb: xhci: fix timeout for transition from RExit to U0
usb: xhci: fix uninitialized completion when USB3 port got wrong status
xhci: Add check for invalid byte size error when UAS devices are connected.
xhci: handle port status events for removed USB3 hcd
xhci: Fix leaking USB3 shared_hcd at xhci removal
usb: dwc3: Fix NULL pointer exception in dwc3_pci_remove()
usb: dwc3: core: Clean up ULPI device
usb: dwc3: gadget: Properly check last unaligned/zero chain TRB
usb: dwc3: gadget: fix ISOC TRB type on unaligned transfers
usb: core: Fix hub port connection events lost
efi/libstub: arm: support building with clang
HID: steam: remove input device when a hid client is running.
Linux 4.19.5
mt76x0: run vco calibration for each channel configuration
libceph: fall back to sendmsg for slab pages
HID: Add quirk for Microsoft PIXART OEM mouse
HID: Add quirk for Primax PIXART OEM mice
HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
ACPI / platform: Add SMB0001 HID to forbidden_id_list
drivers/misc/sgi-gru: fix Spectre v1 vulnerability
mtd: rawnand: atmel: fix OF child-node lookup
gnss: sirf: fix synchronous write timeout
gnss: serial: fix synchronous write timeout
USB: misc: appledisplay: add 20" Apple Cinema Display
misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub
USB: quirks: Add no-lpm quirk for Raydium touchscreens
usb: cdc-acm: add entry for Hiro (Conexant) modem
can: kvaser_usb: Fix potential uninitialized variable use
can: kvaser_usb: Fix accessing freed memory in kvaser_usb_start_xmit()
ALSA: hda/ca0132 - Call pci_iounmap() instead of iounmap()
ALSA: hda/realtek - Add quirk entry for HP Pavilion 15
uio: Fix an Oops on load
RISC-V: Fix raw_copy_{to,from}_user()
MIPS: OCTEON: cavium_octeon_defconfig: re-enable OCTEON USB driver
media: v4l: event: Add subscription to list before calling "add" operation
x86/ldt: Remove unused variable in map_ldt_struct()
x86/ldt: Unmap PTEs for the slot before freeing LDT pages
x86/mm: Move LDT remap out of KASLR region on 5-level paging
SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
Revert "scripts/setlocalversion: git: Make -dirty check more robust"
kbuild: deb-pkg: fix too low build version number
net: aquantia: invalid checksumm offload implementation
net: aquantia: fixed enable unicast on 32 macvlan
net: aquantia: fix potential IOMMU fault after driver unbind
net: stmmac: Fix RX packet size > 8191
qed: Fix potential memory corruption
qed: Fix SPQ entries not returned to pool in error flows
qed: Fix blocking/unlimited SPQ entries leak
qed: Fix memory/entry leak in qed_init_sp_request()
i40e: restore NETIF_F_GSO_IPXIP[46] to netdev features
ice: Change req_speeds to be u16
ice: Fix the bytecount sent to netdev_tx_sent_queue
ice: Fix dead device link issue with flow control
perf tools: Do not zero sample_id_all for group members
perf tools: Fix undefined symbol scnprintf in libperf-jvmti.so
sched/core: Take the hotplug lock in sched_init_smp()
i2c: qcom-geni: Fix runtime PM mismatch with child devices
i2c: omap: Enable for ARCH_K3
nvme: make sure ns head inherits underlying device limits
of/device: Really only set bus DMA mask when appropriate
ceph: quota: fix null pointer dereference in quota check
s390/perf: Change CPUM_CF return code in event init function
drm/amd/amdgpu/dm: Fix dm_dp_create_fake_mst_encoder()
drm/amd/display: Drop reusing drm connector for MST
block: Clear kernel memory before copying to user
drm/amd/display: Stop leaking planes
lib/raid6: Fix arm64 test build
mtd: nand: Fix nanddev_pos_next_page() kernel-doc header
clk: fixed-factor: fix of_node_get-put imbalance
xen/grant-table: Fix incorrect gnttab_dma_free_pages() pr_debug message
arm64: dts: renesas: condor: switch from EtherAVB to GEther
arm64: dts: renesas: r8a7795: add missing dma-names on hscif2
Revert "drm/exynos/decon5433: implement frame counter"
ARM: dts: fsl: Fix improperly quoted stdout-path values
ARM: dts: imx6sll: fix typo for fsl,imx6sll-i2c node
hwmon: (ibmpowernv) Remove bogus __init annotations
net: hns3: Fix for out-of-bounds access when setting pfc back pressure
s390/qeth: unregister netdevice only when registered
s390/qeth: fix HiperSockets sniffer
netfilter: nft_compat: ebtables 'nat' table is normal chain type
netfilter: ipset: Fix calling ip_set() macro at dumping
netfilter: xt_IDLETIMER: add sysfs filename checking routine
netfilter: ipset: Correct rcu_dereference() call in ip_set_put_comment()
bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
s390/mm: Fix ERROR: "__node_distance" undefined!
s390/mm: fix mis-accounting of pgtable_bytes
netfilter: ipset: fix ip_set_list allocation failure
netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net
netfilter: ipset: list:set: Decrease refcount synchronously on deletion and replace
Revert "netfilter: nft_numgen: add map lookups for numgen random operations"
HID: alps: allow incoming reports when only the trackstick is opened
Revert "HID: add NOGET quirk for Eaton Ellipse MAX UPS"
HID: i2c-hid: Add a small delay after sleep command for Raydium touchpanel
s390/vdso: add missing FORCE to build targets
s390/decompressor: add missing FORCE to build targets
netfilter: bridge: define INT_MIN & INT_MAX in userspace
netfilter: ipv6: fix oops when defragmenting locally generated fragments
serial: sh-sci: Fix receive on SCIFA/SCIFB variants with DMA
clk: ti: fix OF child-node lookup
clk: renesas: r9a06g032: Fix UART34567 clock rate
clk: meson: clk-pll: drop CLK_GET_RATE_NOCACHE where unnecessary
arm64: percpu: Initialize ret in the default case
clk: meson-axg: pcie: drop the mpll3 clock parent
platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307
x86/earlyprintk: Add a force option for pciserial device
apparmor: Fix uninitialized value in aa_split_fqname
clk: samsung: exynos5420: Enable PERIS clocks for suspend
fs/exofs: fix potential memory leak in mount option parsing
perf symbols: Set PLT entry/header sizes properly on Sparc
clk: fixed-rate: fix of_node_get-put imbalance
platform/x86: intel_telemetry: report debugfs failure
afs: Handle EIO from delivery function
drm/edid: Add 6 bpc quirk for BOE panel.
um: Give start_idle_thread() a return code
perf unwind: Take pgoff into account when reporting elf to libdwfl
hfsplus: prevent btree data loss on root split
hfs: prevent btree data loss on root split
reiserfs: propagate errors from fill_with_dentries() properly
ixgbe: fix MAC anti-spoofing filter after VFLR
net: hns3: bugfix for the initialization of command queue's spin lock
net: hns3: bugfix for handling mailbox while the command queue reinitialized
net: hns3: bugfix for rtnl_lock's range in the hclge_reset()
net: hns3: bugfix for rtnl_lock's range in the hclgevf_reset()
block: brd: associate with queue until adding disk
arm64: kprobe: make page to RO mode when allocate it
cifs: fix return value for cifs_listxattr
cifs: don't dereference smb_file_target before null check
drm/i915: Replace some PAGE_SIZE with I915_GTT_PAGE_SIZE
f2fs: fix to keep project quota consistent
f2fs: guarantee journalled quota data by checkpoint
f2fs: cleanup dirty pages if recover failed
f2fs: fix data corruption issue with hardware encryption
f2fs: fix to recover inode->i_flags of inode block during POR
f2fs: spread f2fs_set_inode_flags()
f2fs: fix to spread clear_cold_data()
Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()"
f2fs: account read IOs and use IO counts for is_idle
f2fs: fix to account IO correctly for cgroup writeback
f2fs: fix to account IO correctly
f2fs: remove request_list check in is_idle()
f2fs: allow to mount, if quota is failed
f2fs: update REQ_TIME in f2fs_cross_rename()
f2fs: do not update REQ_TIME in case of error conditions
f2fs: remove unneeded disable_nat_bits()
f2fs: remove unused sbi->trigger_ssr_threshold
f2fs: shrink sbi->sb_lock coverage in set_file_temperature()
f2fs: use rb_*_cached friends
f2fs: fix to recover cold bit of inode block during POR
f2fs: submit cached bio to avoid endless PageWriteback
f2fs: checkpoint disabling
f2fs: clear PageError on the read path
f2fs: allow out-place-update for direct IO in LFS mode
f2fs: refactor ->page_mkwrite() flow
Revert: "f2fs: check last page index in cached bio to decide submission"
f2fs: support superblock checksum
f2fs: add to account skip count of background GC
f2fs: add to account meta IO
f2fs: keep lazytime on remount
f2fs: fix missing up_read
f2fs: return correct errno in f2fs_gc
f2fs: avoid f2fs_bug_on if f2fs_get_meta_page_nofail got EIO
f2fs: mark inode dirty explicitly in recover_inode()
f2fs: fix to recover inode's crtime during POR
f2fs: fix to recover inode's i_gc_failures during POR
f2fs: fix to recover inode's i_flags during POR
f2fs: fix to recover inode's project id during POR
f2fs: update i_size after DIO completion
f2fs: report ENOENT correctly in f2fs_rename
f2fs: fix remount problem of option io_bits
f2fs: fix to recover inode's uid/gid during POR
f2fs: avoid infinite loop in f2fs_alloc_nid
f2fs: add new idle interval timing for discard and gc paths
f2fs: split IO error injection according to RW
f2fs: add SPDX license identifiers
f2fs: surround fault_injection related option parsing using CONFIG_F2FS_FAULT_INJECTION
f2fs: fix setattr project check upon fssetxattr ioctl
f2fs: avoid sleeping under spin_lock
f2fs: plug readahead IO in readdir()
f2fs: fix to do sanity check with current segment number
f2fs: fix memory leak of percpu counter in fill_super()
f2fs: fix memory leak of write_io in fill_super()
f2fs: cache NULL when both default_acl and acl are NULL
f2fs: fix to flush all dirty inodes recovered in readonly fs
f2fs: report error if quota off error during umount
f2fs: submit bio after shutdown
f2fs: avoid wrong decrypted data from disk
Revert "f2fs: use printk_ratelimited for f2fs_msg"
f2fs: fix unnecessary periodic wakeup of discard thread when dev is busy
f2fs: fix to avoid NULL pointer dereference on se->discard_map
f2fs: add additional sanity check in f2fs_acl_from_disk()
ANDROID: arm64: defconfig: Enable CONFIG_SCHED_TUNE
ANDROID: thermal: cpu_cooling: Migrate to using the EM framework
ANDROID: Add hold functionality to schedtune CPU boost
ANDROID: sched/rt: Add schedtune accounting to rt task enqueue/dequeue
ANDROID: sched: Make the cpu_util* accessors available without sugov
ANDROID: sched/events: Introduce overutilized trace event
ANDROID: sched/events: Introduce rt_rq load tracking trace event
ANDROID: sched/events: Introduce schedtune trace events
ANDROID: sched/events: Introduce find_best_target trace event
ANDROID: sched/events: Introduce util_est trace events
ANDROID: sched/events: Introduce task_group load tracking trace event
ANDROID: sched/events: Introduce sched_entity load tracking trace event
ANDROID: sched/events: Introduce cfs_rq load tracking trace event
ANDROID: sched/autogroup: Define autogroup_path() for !CONFIG_SCHED_DEBUG
ANDROID: sched/fair: Also do misfit in overloaded groups
ANDROID: sched/fair: Don't balance misfits if it would overload local group
ANDROID: sched/fair: Attempt to improve throughput for asym cap systems
ANDROID: cpufreq/schedutil: add up/down frequency transition rate limits
ANDROID: cpufreq/schedutil: Select frequency using util_avg for RT
ANDROID: sched: Update max cpu capacity in case of max frequency constraints
ANDROID: arm: enable max frequency capping
ANDROID: arm64: enable max frequency capping
ANDROID: implement max frequency capping
ANDROID: sched/fair: add arch scaling function for max frequency capping
ANDROID: sched/fair: Bypass energy computation for prefer_idle tasks
ANDROID: sched: fair: Bypass energy-aware wakeup for prefer-idle tasks
FROMLIST: sched/fair: Use wake_q length as a hint for wake_wide
ANDROID: sched: Unconditionally honor sync flag for energy-aware wakeups
ANDROID: Add find_best_target to minimise energy calculation overhead
ANDROID: sched/fair: Factor out CPU selection from find_energy_efficient_cpu
ANDROID: sched: Introduce sysctl_sched_cstate_aware
ANDROID: sched, cpuidle: Track cpuidle state index in the scheduler
ANDROID: sched: fair/tune: Add schedtune with cgroups interface
ANDROID: drivers: Introduce a legacy Energy Model loading driver
ANDROID: cpufreq: scmi: Register an Energy Model
UPSTREAM: firmware: arm_scmi: add a getter for power of performance states
ANDROID: cpufreq: arm_big_little: Register an Energy Model
ANDROID: cpufreq: scpi: Register an Energy Model
ANDROID: PM / OPP: cpufreq-dt: Move power estimation function
FROMLIST: cpufreq: dt: Register an Energy Model
ANDROID: arm: dts: vexpress-v2p-ca15_a7: Add dynamic-power-coefficient properties
ANDROID: arm64: dts: juno-r2: Add dynamic-power-coefficient properties
ANDROID: arm64: dts: juno: Add dynamic-power-coefficient properties
ANDROID: arm, arm64: Enable kernel config options required for EAS
ANDROID: sched: Enable idle balance to pull single task towards cpu with higher capacity
ANDROID: sched: Prevent unnecessary active balance of single task in sched group
FROMLIST: sched/fair: Select an energy-efficient CPU on task wake-up
FROMLIST: sched/fair: Introduce an energy estimation helper function
FROMLIST: sched: Add over-utilization/tipping point indicator
FROMLIST: sched/fair: Clean-up update_sg_lb_stats parameters
FROMLIST: sched: Introduce a sysctl for Energy Aware Scheduling
FROMLIST: sched: Introduce sched_energy_present static key
FROMLIST: sched/topology: Make Energy Aware Scheduling depend on schedutil
FROMLIST: sched/topology: Disable EAS on inappropriate platforms
FROMLIST: sched/topology: Lowest CPU asymmetry sched_domain level pointer
FROMLIST: sched/topology: Reference the Energy Model of CPUs when available
FROMLIST: PM / EM: Expose the Energy Model in sysfs
FROMLIST: PM: Introduce an Energy Model management framework
FROMLIST: sched/cpufreq: Prepare schedutil for Energy Aware Scheduling
FROMLIST: sched: Relocate arch_scale_cpu_capacity
UPSTREAM: sched/core: Disable SD_PREFER_SIBLING on asymmetric CPU capacity domains
UPSTREAM: sched/fair: Don't move tasks to lower capacity CPUs unless necessary
UPSTREAM: sched/fair: Set rq->rd->overload when misfit
UPSTREAM: sched/fair: Wrap rq->rd->overload accesses with READ/WRITE_ONCE()
UPSTREAM: sched/core: Change root_domain->overload type to int
UPSTREAM: sched/fair: Change 'prefer_sibling' type to bool
UPSTREAM: sched/fair: Kick nohz balance if rq->misfit_task_load
UPSTREAM: sched/fair: Consider misfit tasks when load-balancing
UPSTREAM: sched/fair: Add sched_group per-CPU max capacity
UPSTREAM: sched/fair: Add 'group_misfit_task' load-balance type
UPSTREAM: sched/topology: Add static_key for asymmetric CPU capacity optimizations
UPSTREAM: sched/topology, arch/arm: Rebuild sched_domain hierarchy when CPU capacity changes
UPSTREAM: sched/topology, arch/arm64: Rebuild the sched_domain hierarchy when the CPU capacity changes
UPSTREAM: sched/topology, drivers/base/arch_topology: Rebuild the sched_domain hierarchy when capacities change
UPSTREAM: sched/topology: Add SD_ASYM_CPUCAPACITY flag detection
Change-Id: I19fafa34b3fd39c4125708cb5c9c5a7634c40ec4
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
.. _readme:
Linux kernel release 4.x <http://kernel.org/>
=============================================
These are the release notes for Linux version 4. Read them carefully,
as they tell you what this is all about, explain how to install the
kernel, and what to do if something goes wrong.
What is Linux?
--------------
Linux is a clone of the operating system Unix, written from scratch by
Linus Torvalds with assistance from a loosely-knit team of hackers across
the Net. It aims towards POSIX and Single UNIX Specification compliance.
It has all the features you would expect in a modern fully-fledged Unix,
including true multitasking, virtual memory, shared libraries, demand
loading, shared copy-on-write executables, proper memory management,
and multistack networking including IPv4 and IPv6.
It is distributed under the GNU General Public License v2 - see the
accompanying COPYING file for more details.
On what hardware does it run?
-----------------------------
Although originally developed first for 32-bit x86-based PCs (386 or higher),
today Linux also runs on (at least) the Compaq Alpha AXP, Sun SPARC and
UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell,
IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64 Xtensa, and
ARC architectures.
Linux is easily portable to most general-purpose 32- or 64-bit architectures
as long as they have a paged memory management unit (PMMU) and a port of the
GNU C compiler (gcc) (part of The GNU Compiler Collection, GCC). Linux has
also been ported to a number of architectures without a PMMU, although
functionality is then obviously somewhat limited.
Linux has also been ported to itself. You can now run the kernel as a
userspace application - this is called UserMode Linux (UML).
Documentation
-------------
- There is a lot of documentation available both in electronic form on
the Internet and in books, both Linux-specific and pertaining to
general UNIX questions. I'd recommend looking into the documentation
subdirectories on any Linux FTP site for the LDP (Linux Documentation
Project) books. This README is not meant to be documentation on the
system: there are much better sources available.
- There are various README files in the Documentation/ subdirectory:
these typically contain kernel-specific installation notes for some
drivers for example. See Documentation/00-INDEX for a list of what
is contained in each file. Please read the
:ref:`Documentation/process/changes.rst <changes>` file, as it
contains information about the problems, which may result by upgrading
your kernel.
Installing the kernel source
----------------------------
- If you install the full sources, put the kernel tarball in a
directory where you have permissions (e.g. your home directory) and
unpack it::
xz -cd linux-4.X.tar.xz | tar xvf -
Replace "X" with the version number of the latest kernel.
Do NOT use the /usr/src/linux area! This area has a (usually
incomplete) set of kernel headers that are used by the library header
files. They should match the library, and not get messed up by
whatever the kernel-du-jour happens to be.
- You can also upgrade between 4.x releases by patching. Patches are
distributed in the xz format. To install by patching, get all the
newer patch files, enter the top level directory of the kernel source
(linux-4.X) and execute::
xz -cd ../patch-4.x.xz | patch -p1
Replace "x" for all versions bigger than the version "X" of your current
source tree, **in_order**, and you should be ok. You may want to remove
the backup files (some-file-name~ or some-file-name.orig), and make sure
that there are no failed patches (some-file-name# or some-file-name.rej).
If there are, either you or I have made a mistake.
Unlike patches for the 4.x kernels, patches for the 4.x.y kernels
(also known as the -stable kernels) are not incremental but instead apply
directly to the base 4.x kernel. For example, if your base kernel is 4.0
and you want to apply the 4.0.3 patch, you must not first apply the 4.0.1
and 4.0.2 patches. Similarly, if you are running kernel version 4.0.2 and
want to jump to 4.0.3, you must first reverse the 4.0.2 patch (that is,
patch -R) **before** applying the 4.0.3 patch. You can read more on this in
:ref:`Documentation/process/applying-patches.rst <applying_patches>`.
Alternatively, the script patch-kernel can be used to automate this
process. It determines the current kernel version and applies any
patches found::
linux/scripts/patch-kernel linux
The first argument in the command above is the location of the
kernel source. Patches are applied from the current directory, but
an alternative directory can be specified as the second argument.
- Make sure you have no stale .o files and dependencies lying around::
cd linux
make mrproper
You should now have the sources correctly installed.
Software requirements
---------------------
Compiling and running the 4.x kernels requires up-to-date
versions of various software packages. Consult
:ref:`Documentation/process/changes.rst <changes>` for the minimum version numbers
required and how to get updates for these packages. Beware that using
excessively old versions of these packages can cause indirect
errors that are very difficult to track down, so don't assume that
you can just update packages when obvious problems arise during
build or operation.
Build directory for the kernel
------------------------------
When compiling the kernel, all output files will per default be
stored together with the kernel source code.
Using the option ``make O=output/dir`` allows you to specify an alternate
place for the output files (including .config).
Example::
kernel source code: /usr/src/linux-4.X
build directory: /home/name/build/kernel
To configure and build the kernel, use::
cd /usr/src/linux-4.X
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install
Please note: If the ``O=output/dir`` option is used, then it must be
used for all invocations of make.
Configuring the kernel
----------------------
Do not skip this step even if you are only upgrading one minor
version. New configuration options are added in each release, and
odd problems will turn up if the configuration files are not set up
as expected. If you want to carry your existing configuration to a
new version with minimal work, use ``make oldconfig``, which will
only ask you for the answers to new questions.
- Alternative configuration commands are::
"make config" Plain text interface.
"make menuconfig" Text based color menus, radiolists & dialogs.
"make nconfig" Enhanced text based color menus.
"make xconfig" Qt based configuration tool.
"make gconfig" GTK+ based configuration tool.
"make oldconfig" Default all questions based on the contents of
your existing ./.config file and asking about
new config symbols.
"make olddefconfig"
Like above, but sets new symbols to their default
values without prompting.
"make defconfig" Create a ./.config file by using the default
symbol values from either arch/$ARCH/defconfig
or arch/$ARCH/configs/${PLATFORM}_defconfig,
depending on the architecture.
"make ${PLATFORM}_defconfig"
Create a ./.config file by using the default
symbol values from
arch/$ARCH/configs/${PLATFORM}_defconfig.
Use "make help" to get a list of all available
platforms of your architecture.
"make allyesconfig"
Create a ./.config file by setting symbol
values to 'y' as much as possible.
"make allmodconfig"
Create a ./.config file by setting symbol
values to 'm' as much as possible.
"make allnoconfig" Create a ./.config file by setting symbol
values to 'n' as much as possible.
"make randconfig" Create a ./.config file by setting symbol
values to random values.
"make localmodconfig" Create a config based on current config and
loaded modules (lsmod). Disables any module
option that is not needed for the loaded modules.
To create a localmodconfig for another machine,
store the lsmod of that machine into a file
and pass it in as a LSMOD parameter.
target$ lsmod > /tmp/mylsmod
target$ scp /tmp/mylsmod host:/tmp
host$ make LSMOD=/tmp/mylsmod localmodconfig
The above also works when cross compiling.
"make localyesconfig" Similar to localmodconfig, except it will convert
all module options to built in (=y) options.
"make kvmconfig" Enable additional options for kvm guest kernel support.
"make xenconfig" Enable additional options for xen dom0 guest kernel
support.
"make tinyconfig" Configure the tiniest possible kernel.
You can find more information on using the Linux kernel config tools
in Documentation/kbuild/kconfig.txt.
- NOTES on ``make config``:
- Having unnecessary drivers will make the kernel bigger, and can
under some circumstances lead to problems: probing for a
nonexistent controller card may confuse your other controllers.
- A kernel with math-emulation compiled in will still use the
coprocessor if one is present: the math emulation will just
never get used in that case. The kernel will be slightly larger,
but will work on different machines regardless of whether they
have a math coprocessor or not.
- The "kernel hacking" configuration details usually result in a
bigger or slower kernel (or both), and can even make the kernel
less stable by configuring some routines to actively try to
break bad code to find kernel problems (kmalloc()). Thus you
should probably answer 'n' to the questions for "development",
"experimental", or "debugging" features.
Compiling the kernel
--------------------
- Make sure you have at least gcc 3.2 available.
For more information, refer to :ref:`Documentation/process/changes.rst <changes>`.
Please note that you can still run a.out user programs with this kernel.
- Do a ``make`` to create a compressed kernel image. It is also
possible to do ``make install`` if you have lilo installed to suit the
kernel makefiles, but you may want to check your particular lilo setup first.
To do the actual install, you have to be root, but none of the normal
build should require that. Don't take the name of root in vain.
- If you configured any of the parts of the kernel as ``modules``, you
will also have to do ``make modules_install``.
- Verbose kernel compile/build output:
Normally, the kernel build system runs in a fairly quiet mode (but not
totally silent). However, sometimes you or other kernel developers need
to see compile, link, or other commands exactly as they are executed.
For this, use "verbose" build mode. This is done by passing
``V=1`` to the ``make`` command, e.g.::
make V=1 all
To have the build system also tell the reason for the rebuild of each
target, use ``V=2``. The default is ``V=0``.
- Keep a backup kernel handy in case something goes wrong. This is
especially true for the development releases, since each new release
contains new code which has not been debugged. Make sure you keep a
backup of the modules corresponding to that kernel, as well. If you
are installing a new kernel with the same version number as your
working kernel, make a backup of your modules directory before you
do a ``make modules_install``.
Alternatively, before compiling, use the kernel config option
"LOCALVERSION" to append a unique suffix to the regular kernel version.
LOCALVERSION can be set in the "General Setup" menu.
- In order to boot your new kernel, you'll need to copy the kernel
image (e.g. .../linux/arch/x86/boot/bzImage after compilation)
to the place where your regular bootable kernel is found.
- Booting a kernel directly from a floppy without the assistance of a
bootloader such as LILO, is no longer supported.
If you boot Linux from the hard drive, chances are you use LILO, which
uses the kernel image as specified in the file /etc/lilo.conf. The
kernel image file is usually /vmlinuz, /boot/vmlinuz, /bzImage or
/boot/bzImage. To use the new kernel, save a copy of the old image
and copy the new image over the old one. Then, you MUST RERUN LILO
to update the loading map! If you don't, you won't be able to boot
the new kernel image.
Reinstalling LILO is usually a matter of running /sbin/lilo.
You may wish to edit /etc/lilo.conf to specify an entry for your
old kernel image (say, /vmlinux.old) in case the new one does not
work. See the LILO docs for more information.
After reinstalling LILO, you should be all set. Shutdown the system,
reboot, and enjoy!
If you ever need to change the default root device, video mode,
ramdisk size, etc. in the kernel image, use the ``rdev`` program (or
alternatively the LILO boot options when appropriate). No need to
recompile the kernel to change these parameters.
- Reboot with the new kernel and enjoy.
If something goes wrong
-----------------------
- If you have problems that seem to be due to kernel bugs, please check
the file MAINTAINERS to see if there is a particular person associated
with the part of the kernel that you are having trouble with. If there
isn't anyone listed there, then the second best thing is to mail
them to me (torvalds@linux-foundation.org), and possibly to any other
relevant mailing-list or to the newsgroup.
- In all bug-reports, *please* tell what kernel you are talking about,
how to duplicate the problem, and what your setup is (use your common
sense). If the problem is new, tell me so, and if the problem is
old, please try to tell me when you first noticed it.
- If the bug results in a message like::
unable to handle kernel paging request at address C0000010
Oops: 0002
EIP: 0010:XXXXXXXX
eax: xxxxxxxx ebx: xxxxxxxx ecx: xxxxxxxx edx: xxxxxxxx
esi: xxxxxxxx edi: xxxxxxxx ebp: xxxxxxxx
ds: xxxx es: xxxx fs: xxxx gs: xxxx
Pid: xx, process nr: xx
xx xx xx xx xx xx xx xx xx xx
or similar kernel debugging information on your screen or in your
system log, please duplicate it *exactly*. The dump may look
incomprehensible to you, but it does contain information that may
help debugging the problem. The text above the dump is also
important: it tells something about why the kernel dumped code (in
the above example, it's due to a bad kernel pointer). More information
on making sense of the dump is in Documentation/admin-guide/bug-hunting.rst
- If you compiled the kernel with CONFIG_KALLSYMS you can send the dump
as is, otherwise you will have to use the ``ksymoops`` program to make
sense of the dump (but compiling with CONFIG_KALLSYMS is usually preferred).
This utility can be downloaded from
https://www.kernel.org/pub/linux/utils/kernel/ksymoops/ .
Alternatively, you can do the dump lookup by hand:
- In debugging dumps like the above, it helps enormously if you can
look up what the EIP value means. The hex value as such doesn't help
me or anybody else very much: it will depend on your particular
kernel setup. What you should do is take the hex value from the EIP
line (ignore the ``0010:``), and look it up in the kernel namelist to
see which kernel function contains the offending address.
To find out the kernel function name, you'll need to find the system
binary associated with the kernel that exhibited the symptom. This is
the file 'linux/vmlinux'. To extract the namelist and match it against
the EIP from the kernel crash, do::
nm vmlinux | sort | less
This will give you a list of kernel addresses sorted in ascending
order, from which it is simple to find the function that contains the
offending address. Note that the address given by the kernel
debugging messages will not necessarily match exactly with the
function addresses (in fact, that is very unlikely), so you can't
just 'grep' the list: the list will, however, give you the starting
point of each kernel function, so by looking for the function that
has a starting address lower than the one you are searching for but
is followed by a function with a higher address you will find the one
you want. In fact, it may be a good idea to include a bit of
"context" in your problem report, giving a few lines around the
interesting one.
If you for some reason cannot do the above (you have a pre-compiled
kernel image or similar), telling me as much about your setup as
possible will help. Please read the :ref:`admin-guide/reporting-bugs.rst <reportingbugs>`
document for details.
- Alternatively, you can use gdb on a running kernel. (read-only; i.e. you
cannot change values or set break points.) To do this, first compile the
kernel with -g; edit arch/x86/Makefile appropriately, then do a ``make
clean``. You'll also need to enable CONFIG_PROC_FS (via ``make config``).
After you've rebooted with the new kernel, do ``gdb vmlinux /proc/kcore``.
You can now use all the usual gdb commands. The command to look up the
point where your system crashed is ``l *0xXXXXXXXX``. (Replace the XXXes
with the EIP value.)
gdb'ing a non-running kernel currently fails because ``gdb`` (wrongly)
disregards the starting offset for which the kernel is compiled.