android_kernel_motorola_sm6375/Documentation/admin-guide
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Raghavendra Rao Ananta dc8cac6430 Merge remote-tracking branch 'remotes/origin/tmp-3fde1dfb006c' into msm-lahaina
* remotes/origin/tmp-3fde1dfb006c:
  ANDROID: Revert "Merge tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux"
  ANDROID: Move from clang r353983c to r365631c
  ANDROID: of/property: Add device link support for iommus
  ANDROID: quilt series: drop cuttlefish config changes
  ANDROID: quilt series: add missing ANDROID: tags
  ANDROID: quilt series cleanup: drop obsolete patches
  ANDROID: add latest patches to quilt series
  ANDROID: sched: Honor sync flag for energy-aware wakeups
  ANDROID: gki_defconfig: remove PWRSEQ_EMMC and PWRSEQ_SIMPLE
  ANDROID: unconditionally compile sig_ok in struct module
  ANDROID: add latest patches to quilt series
  ANDROID: rebase mainline quilt series on v5.4-rc3
  ANDROID: regenerate quilt series
  UPSTREAM: base: soc: Handle custom soc information sysfs entries
  ANDROID: gki_defconfig: enable fs-verity
  clk: add pre and post change rate callbacks
  Linux 5.4-rc3
  tracing: Initialize iter->seq after zeroing in tracing_read_pipe()
  tracing/hwlat: Don't ignore outer-loop duration when calculating max_latency
  tracing/hwlat: Report total time spent in all NMIs during the sample
  recordmcount: Fix nop_mcount() function
  tracing: Do not create tracefs files if tracefs lockdown is in effect
  tracing: Add locked_down checks to the open calls of files created for tracefs
  tracing: Add tracing_check_open_get_tr()
  tracing: Have trace events system open call tracing_open_generic_tr()
  tracing: Get trace_array reference for available_tracers files
  ftrace: Get a reference counter for the trace_array on filter files
  tracefs: Revert ccbd54ff54 ("tracefs: Restrict tracefs when the kernel is locked down")
  perf/x86/cstate: Add Tiger Lake CPU support
  perf/x86/msr: Add Tiger Lake CPU support
  perf/x86/intel: Add Tiger Lake CPU support
  perf/x86/cstate: Update C-state counters for Ice Lake
  perf/x86/msr: Add new CPU model numbers for Ice Lake
  perf/x86/cstate: Add Comet Lake CPU support
  perf/x86/msr: Add Comet Lake CPU support
  perf/x86/intel: Add Comet Lake CPU support
  ANDROID: android-mainline quilt series for 5.4-ic1
  Revert "drivers: qcom: rpmh-rsc: modularize RSC controller driver"
  Documentation/process: Add fallthrough pseudo-keyword
  compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use
  net: sctp: Rename fallthrough label to unhandled
  ANDROID: Fix x86_64 allmodconfig build
  gki_defconfig: Enable CONFIG_DM_SNAPSHOT
  s390/uaccess: avoid (false positive) compiler warnings
  firmware: google: increment VPD key_len properly
  MAINTAINERS: kgdb: Add myself as a reviewer for kgdb/kdb
  spufs: fix a crash in spufs_create_root()
  io_uring: fix sequence logic for timeout requests
  ANDROID: gki_defconfig: enabled CONFIG_TMPFS explicitly
  ANDROID: gki_defconfig: enable accelerated AES and SHA-256
  SUNRPC: fix race to sk_err after xs_error_report
  NFSv4: Fix leak of clp->cl_acceptor string
  ANDROID: gki_defconfig: enable CONFIG_PARAVIRT and CONFIG_HYPERVISOR_GUEST
  MIPS: Disable Loongson MMI instructions for kernel build
  MIPS: elf_hwcap: Export userspace ASEs
  ANDROID: staging: ion: fix sparse warning in ion system heap
  nbd: fix possible sysfs duplicate warning
  xen: Stop abusing DT of_dma_configure API
  MAINTAINERS: Remove Simon as Renesas SoC Co-Maintainer
  xen/grant-table: remove unnecessary printing
  w1: ds250x: Fix build error without CRC16
  virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr
  binder: Fix comment headers on binder_alloc_prepare_to_free()
  binder: prevent UAF read in print_binder_transaction_log_entry()
  USB: yurex: fix NULL-derefs on disconnect
  tty: serial: imx: Use platform_get_irq_optional() for optional IRQs
  serial: fix kernel-doc warning in comments
  USB: iowarrior: use pr_err()
  USB: iowarrior: drop redundant iowarrior mutex
  USB: iowarrior: drop redundant disconnect mutex
  USB: iowarrior: fix use-after-free after driver unbind
  USB: iowarrior: fix use-after-free on release
  USB: iowarrior: fix use-after-free on disconnect
  USB: chaoskey: fix use-after-free on release
  USB: adutux: fix use-after-free on release
  USB: ldusb: fix NULL-derefs on driver unbind
  USB: legousbtower: fix use-after-free on release
  usb: cdns3: Fix for incorrect DMA mask.
  usb: cdns3: fix cdns3_core_init_role()
  usb: cdns3: gadget: Fix full-speed mode
  USB: usb-skeleton: drop redundant in-urb check
  USB: usb-skeleton: fix use-after-free after driver unbind
  USB: usb-skeleton: fix NULL-deref on disconnect
  drm/bridge: tc358767: fix max_tu_symbol value
  s390/cio: fix virtio-ccw DMA without PV
  null_blk: Fix zoned command return code
  libfs: take cursors out of list when moving past the end of directory
  vfs: add missing blkdev_put() in get_tree_bdev()
  shmem: fix LSM options parsing
  RISC-V: entry: Remove unneeded need_resched() loop
  drm/i915/gt: execlists->active is serialised by the tasklet
  drm/i915/execlists: Protect peeking at execlists->active
  drm/i915: Fixup preempt-to-busy vs reset of a virtual request
  io_uring: only flush workqueues on fileset removal
  drm/i915: Only enqueue already completed requests
  drm/i915/execlists: Drop redundant list_del_init(&rq->sched.link)
  drm/i915/cml: Add second PCH ID for CMP
  MIPS: fw: sni: Fix out of bounds init of o32 stack
  MIPS: include: Mark __xchg as __always_inline
  Revert "kheaders: make headers archive reproducible"
  iio: Fix an undefied reference error in noa1305_probe
  iio: light: opt3001: fix mutex unlock race
  iio: adc: ad799x: fix probe error handling
  iio: light: add missing vcnl4040 of_compatible
  iio: light: fix vcnl4000 devicetree hooks
  iio: imu: st_lsm6dsx: fix waitime for st_lsm6dsx i2c controller
  iio: adc: axp288: Override TS pin bias current for some models
  iio: imu: adis16400: fix memory leak
  iio: imu: adis16400: release allocated memory on failure
  iio: adc: stm32-adc: fix a race when using several adcs with dma and irq
  iio: adc: stm32-adc: move registers definitions
  iio: accel: adxl372: Perform a reset at start up
  iio: accel: adxl372: Fix push to buffers lost samples
  iio: accel: adxl372: Fix/remove limitation for FIFO samples
  iio: adc: hx711: fix bug in sampling of data
  drm/amdgpu: fix memory leak
  xfs: move local to extent inode logging into bmap helper
  xfs: remove broken error handling on failed attr sf to leaf change
  xfs: log the inode on directory sf to block format change
  NFS: Remove redundant mirror tracking in O_DIRECT
  NFS: Fix O_DIRECT accounting of number of bytes read/written
  perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp
  perf/core: Fix corner case in perf_rotate_context()
  perf/core: Rework memory accounting in perf_mmap()
  sched/vtime: Fix guest/system mis-accounting on task switch
  sched/fair: Scale bandwidth quota and period without losing quota/period ratio precision
  powerpc/kvm: Fix kvmppc_vcore->in_guest value in kvmhv_switch_to_host
  selftests/powerpc: Fix compile error on tlbie_test due to newer gcc
  powerpc/pseries: Remove confusing warning message.
  powerpc/64s/radix: Fix build failure with RADIX_MMU=n
  CIFS: Force reval dentry if LOOKUP_REVAL flag is set
  CIFS: Force revalidate inode when dentry is stale
  smb3: Fix regression in time handling
  smb3: remove noisy debug message and minor cleanup
  ANDROID: gki_defconfig: enable CONFIG_NLS_*
  ANDROID: gki_defconfig: enable REGULATOR
  Add my linux-leds branch to MAINTAINERS
  leds: core: Fix leds.h structure documentation
  x86/cpu: Add Comet Lake to the Intel CPU models header
  ANDROID: gki_defconfig: Enable BPF_JIT and BPF_JIT_ALWAYS_ON
  doc: move namespaces.rst from kbuild/ to core-api/
  arm64: armv8_deprecated: Checking return value for memory allocation
  lib/string: Make memzero_explicit() inline instead of external
  x86/cpu/vmware: Use the full form of INL in VMWARE_PORT
  x86/asm: Fix MWAITX C-state hint value
  btrfs: silence maybe-uninitialized warning in clone_range
  efi/tpm: Fix sanity check of unsigned tbl_size being less than zero
  drm/panel: tpo-td043mtea1: Fix SPI alias
  drm/panel: tpo-td028ttec1: Fix SPI alias
  drm/panel: sony-acx565akm: Fix SPI alias
  drm/panel: nec-nl8048hl11: Fix SPI alias
  drm/panel: lg-lb035q02: Fix SPI alias
  io_uring: remove wait loop spurious wakeups
  FROMGIT: of: property: Create device links for all child-supplier depencencies
  FROMGIT: of/platform: Pause/resume sync state during init and of_platform_populate()
  FROMGIT: driver core: Add sync_state driver/bus callback
  FROMGIT: of: property: Add functional dependency link from DT bindings
  FROMGIT: driver core: Add support for linking devices during device addition
  FROMGIT: driver core: Add fwnode_to_dev() to look up device from fwnode
  mm, sl[aou]b: guarantee natural alignment for kmalloc(power-of-two)
  mm, sl[ou]b: improve memory accounting
  mm, memcg: make scan aggression always exclude protection
  mm, memcg: make memory.emin the baseline for utilisation determination
  mm, memcg: proportional memory.{low,min} reclaim
  mm/vmpressure.c: fix a signedness bug in vmpressure_register_event()
  mm/page_alloc.c: fix a crash in free_pages_prepare()
  mm/z3fold.c: claim page in the beginning of free
  kernel/sysctl.c: do not override max_threads provided by userspace
  memcg: only record foreign writebacks with dirty pages when memcg is not disabled
  mm: fix -Wmissing-prototypes warnings
  writeback: fix use-after-free in finish_writeback_work()
  mm/memremap: drop unused SECTION_SIZE and SECTION_MASK
  panic: ensure preemption is disabled during panic()
  fs: ocfs2: fix a possible null-pointer dereference in ocfs2_info_scan_inode_alloc()
  fs: ocfs2: fix a possible null-pointer dereference in ocfs2_write_end_nolock()
  fs: ocfs2: fix possible null-pointer dereferences in ocfs2_xa_prepare_entry()
  ocfs2: clear zero in unaligned direct IO
  x86/xen: Return from panic notifier
  riscv: Correct the handling of unexpected ebreak in do_trap_break()
  riscv: avoid sending a SIGTRAP to a user thread trapped in WARN()
  riscv: avoid kernel hangs when trapped in BUG()
  uaccess: implement a proper unsafe_copy_to_user() and switch filldir over to it
  drm/i915: Mark contents as dirty on a write fault
  drm/i915: Prevent bonded requests from overtaking each other on preemption
  drm/i915: Bump skl+ max plane width to 5k for linear/x-tiled
  drm/i915: Verify the engine after acquiring the active.lock
  drm/i915: Extend Haswell GT1 PSMI workaround to all
  drm/i915: Don't mix srcu tag and negative error codes
  drm/i915: Whitelist COMMON_SLICE_CHICKEN2
  drm/i915: Perform GGTT restore much earlier during resume
  drm/i915/execlists: Remove incorrect BUG_ON for schedule-out
  MIPS: include: Mark __cmpxchg as __always_inline
  nsdeps: make generated patches independent of locale
  nsdeps: fix hashbang of scripts/nsdeps
  kbuild: fix build error of 'make nsdeps' in clean tree
  module: rename __kstrtab_ns_* to __kstrtabns_* to avoid symbol conflict
  modpost: fix broken sym->namespace for external module builds
  module: swap the order of symbol.namespace
  perf/core: Fix inheritance of aux_output groups
  scripts: add_namespace: Fix coccicheck failed
  efi/x86: Do not clean dummy variable in kexec path
  efi: Make unexported efi_rci2_sysfs_init() static
  efi/tpm: Only set 'efi_tpm_final_log_size' after successful event log parsing
  efi/tpm: Don't traverse an event log with no events
  efi/tpm: Don't access event->count when it isn't mapped
  efivar/ssdt: Don't iterate over EFI vars if no SSDT override was specified
  efi/cper: Fix endianness of PCIe class code
  hwmon: docs: Extend inspur-ipsps1 title underline
  arm64: Kconfig: Make CONFIG_COMPAT_VDSO a proper Kconfig option
  arm64: vdso32: Rename COMPATCC to CC_COMPAT
  arm64: vdso32: Pass '--target' option to clang via VDSO_CAFLAGS
  arm64: vdso32: Don't use KBUILD_CPPFLAGS unconditionally
  arm64: vdso32: Move definition of COMPATCC into vdso32/Makefile
  arm64: Default to building compat vDSO with clang when CONFIG_CC_IS_CLANG
  serial: 8250_omap: Fix gpio check for auto RTS/CTS
  serial: mctrl_gpio: Check for NULL pointer
  tty: serial: fsl_lpuart: Fix lpuart_flush_buffer()
  usb:cdns3: Fix for CV CH9 running with g_zero driver.
  usb: dwc3: Remove dev_err() on platform_get_irq() failure
  usb: dwc3: Switch to platform_get_irq_byname_optional()
  driver core: platform: Add platform_get_irq_byname_optional()
  staging: vt6655: Fix memory leak in vt6655_probe
  lib: vdso: Remove CROSS_COMPILE_COMPAT_VDSO
  arm64: vdso32: Remove jump label config option in Makefile
  arm64: vdso32: Detect binutils support for dmb ishld
  arm64: vdso: Remove stale files from old assembly implementation
  arm64: vdso32: Fix broken compat vDSO build warnings
  arm64: mm: fix spurious fault detection
  mtd: rawnand: au1550nd: Fix au_read_buf16() prototype
  CIFS: Gracefully handle QueryInfo errors during open
  cifs: use cifsInodeInfo->open_file_lock while iterating to avoid a panic
  fs: cifs: mute -Wunused-const-variable message
  smb3: cleanup some recent endian errors spotted by updated sparse
  xfs: assure zeroed memory buffers for certain kmem allocations
  xfs: removed unused error variable from xchk_refcountbt_rec
  xfs: remove unused flags arg from xfs_get_aghdr_buf()
  xfs: Fix tail rounding in xfs_alloc_file_space()
  Linux 5.4-rc2
  elf: don't use MAP_FIXED_NOREPLACE for elf executable mappings
  blk-wbt: fix performance regression in wbt scale_up/scale_down
  Revert "libata, freezer: avoid block device removal while system is frozen"
  bdi: Do not use freezable workqueue
  Make filldir[64]() verify the directory entry filename is valid
  Convert filldir[64]() from __put_user() to unsafe_put_user()
  KVM: s390: mark __insn32_query() as __always_inline
  KVM: s390: fix __insn32_query() inline assembly
  dma-mapping: fix false positivse warnings in dma_common_free_remap()
  kheaders: make headers archive reproducible
  kbuild: update compile-test header list for v5.4-rc2
  kbuild: two minor updates for Documentation/kbuild/modules.rst
  scripts/setlocalversion: clear local variable to make it work for sh
  namespace: fix namespace.pl script to support relative paths
  video/logo: do not generate unneeded logo C files
  video/logo: remove unneeded *.o pattern from clean-files
  integrity: remove pointless subdir-$(CONFIG_...)
  integrity: remove unneeded, broken attempt to add -fshort-wchar
  selftests/net: add nettest to .gitignore
  net: qlogic: Fix memory leak in ql_alloc_large_buffers
  nfc: fix memory leak in llcp_sock_bind()
  sch_dsmark: fix potential NULL deref in dsmark_init()
  net: phy: at803x: use operating parameters from PHY-specific status
  net: phy: extract pause mode
  net: phy: extract link partner advertisement reading
  net: phy: fix write to mii-ctrl1000 register
  ipv6: Handle missing host route in __ipv6_ifa_notify
  net: phy: allow for reset line to be tied to a sleepy GPIO controller
  net: ipv4: avoid mixed n_redirects and rate_tokens usage
  r8152: Set macpassthru in reset_resume callback
  gpio: max77620: Use correct unit for debounce times
  cxgb4:Fix out-of-bounds MSI-X info array access
  Revert "ipv6: Handle race in addrconf_dad_work"
  net: make sock_prot_memory_pressure() return "const char *"
  rxrpc: Fix rxrpc_recvmsg tracepoint
  qmi_wwan: add support for Cinterion CLS8 devices
  Add an IOCTL to check ION ABI version
  RDMA/mlx5: Add missing synchronize_srcu() for MW cases
  RDMA/mlx5: Put live in the correct place for ODP MRs
  RDMA/mlx5: Order num_pending_prefetch properly with synchronize_srcu
  RDMA/odp: Lift umem_mutex out of ib_umem_odp_unmap_dma_pages()
  RDMA/mlx5: Fix a race with mlx5_ib_update_xlt on an implicit MR
  RDMA/mlx5: Do not allow rereg of a ODP MR
  IB/core: Fix wrong iterating on ports
  MIPS: fw/arc: Remove unused addr variable
  RDMA/nldev: Reshuffle the code to avoid need to rebind QP in error path
  RDMA/cxgb4: Do not dma memory off of the stack
  RDMA/cm: Fix memory leak in cm_add/remove_one
  RDMA/core: Fix an error handling path in 'res_get_common_doit()'
  RDMA/i40iw: Associate ibdev to netdev before IB device registration
  ARM: multi_v7_defconfig: Fix SPI_STM32_QSPI support
  misc: fastrpc: prevent memory leak in fastrpc_dma_buf_attach
  mtd: spi-nor: Fix direction of the write_sr() transfer
  mei: avoid FW version request on Ibex Peak and earlier
  s390: update defconfigs
  s390/pci: mark function(s) __always_inline
  s390/mm: mark function(s) __always_inline
  s390/jump_label: mark function(s) __always_inline
  s390/cpu_mf: mark function(s) __always_inline
  s390/atomic,bitops: mark function(s) __always_inline
  s390/mm: fix -Wunused-but-set-variable warnings
  s390: mark __cpacf_query() as __always_inline
  io_uring: fix reversed nonblock flag for link submission
  tty: serial: Fix PORT_LINFLEXUART definition
  mei: me: add comet point (lake) LP device ids
  tty: n_hdlc: fix build on SPARC
  serial: uartps: Fix uartps_major handling
  serial: uartlite: fix exit path null pointer
  tty: serial: linflexuart: Fix magic SysRq handling
  serial: sh-sci: Use platform_get_irq_optional() for optional interrupts
  dt-bindings: serial: sh-sci: Document r8a774b1 bindings
  serial/sifive: select SERIAL_EARLYCON
  tty: serial: rda: Fix the link time qualifier of 'rda_uart_exit()'
  tty: serial: owl: Fix the link time qualifier of 'owl_uart_exit()'
  media: stkwebcam: fix runtime PM after driver unbind
  USB: serial: fix runtime PM after driver unbind
  USB: usblp: fix runtime PM after driver unbind
  USB: usb-skeleton: fix runtime PM after driver unbind
  xhci-ext-caps.c: Add missing platform_device_put() on error in xhci_create_intel_xhci_sw_pdev()
  dt-bindings: usb: Bring back phy-names
  ARM: dts: sunxi: Revert phy-names removal for ECHI and OHCI
  usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior
  usb: renesas_usbhs: gadget: Do not discard queues in usb_ep_set_{halt,wedge}()
  udc: lpc32xx: fix 64-bit compiler warning
  xhci: Fix NULL pointer dereference in xhci_clear_tt_buffer_complete()
  xhci: Increase STS_SAVE timeout in xhci_suspend()
  xhci: Prevent deadlock when xhci adapter breaks during init
  usb: xhci: wait for CNR controller not ready bit in xhci resume
  xhci: Fix USB 3.1 capability detection on early xHCI 1.1 spec based hosts
  xhci: Check all endpoints for LPM timeout
  xhci: Prevent device initiated U1/U2 link pm if exit latency is too long
  xhci: Fix false warning message about wrong bounce buffer write length
  USB: legousbtower: fix open after failed reset request
  USB: legousbtower: fix potential NULL-deref on disconnect
  USB: legousbtower: fix deadlock on disconnect
  USB: legousbtower: fix slab info leak at probe
  KVM: x86: omit "impossible" pmu MSRs from MSR list
  usb: typec: ucsi: displayport: Fix for the mode entering routine
  usb: typec: ucsi: ccg: Remove run_isr flag
  arm64: ftrace: Ensure synchronisation in PLT setup for Neoverse-N1 #1542419
  arm64: Fix incorrect irqflag restore for priority masking for compat
  arm64: mm: avoid virt_to_phys(init_mm.pgd)
  arm64: cpufeature: Effectively expose FRINT capability to userspace
  arm64: Mark functions using explicit register variables as '__always_inline'
  USB: usblcd: use pr_err()
  USB: usblcd: drop redundant lcd mutex
  USB: usblcd: drop redundant disconnect mutex
  USB: usblcd: fix I/O after disconnect
  bindings: rename links to mason USB2/USB3 DT files
  usb: typec: tcpm: usb: typec: tcpm: Fix a signedness bug in tcpm_fw_get_caps()
  USB: dummy-hcd: fix power budget for SuperSpeed mode
  usbip: vhci_hcd indicate failed message
  USB: yurex: Don't retry on unexpected errors
  USB: adutux: fix NULL-derefs on disconnect
  USB: adutux: fix use-after-free on disconnect
  usb: cdns3: Fix sheduling with locks held.
  usb: cdns3: Fix use after free in probe error handling
  USB: microtek: fix info-leak at probe
  dt-bindings: usb: Fix references to usb-hcd.yaml
  USB: serial: keyspan: fix NULL-derefs on open() and write()
  USB: serial: option: add support for Cinterion CLS8 devices
  USB: rio500: Remove Rio 500 kernel driver
  staging: exfat: Use kvzalloc() instead of kzalloc() for exfat_sb_info
  Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
  staging: speakup: document sysfs attributes
  ANDROID: staging: ion: Fix missing entry in kerneldoc header
  MIPS: pmcs-msp71xx: Remove unused addr variable
  MIPS: pmcs-msp71xx: Add missing MAX_PROM_MEM definition
  vfs: Fix EOVERFLOW testing in put_compat_statfs64
  block: sed-opal: fix sparse warning: convert __be64 data
  block: sed-opal: fix sparse warning: obsolete array init.
  Revert "drm/i915: Fix DP-MST crtc_mask"
  sched: add kernel-doc for struct clone_args
  fork: add kernel-doc for clone3
  usercopy: Add parentheses around assignment in test_copy_struct_from_user
  tcp: fix slab-out-of-bounds in tcp_zerocopy_receive()
  selinux: fix context string corruption in convert_context()
  lib: textsearch: fix escapes in example code
  udp: only do GSO if # of segs > 1
  udp: fix gso_segs calculations
  MAINTAINERS: kgdb: Add myself as a reviewer for kgdb/kdb
  ipv6: drop incoming packets having a v4mapped source address
  btrfs: fix uninitialized ret in ref-verify
  KVM: nVMX: Fix consistency check on injected exception error code
  KVM: x86: omit absent pmu MSRs from MSR list
  selftests: kvm: Fix libkvm build error
  drm/omap: fix max fclk divider for omap36xx
  drm/i915: Fix g4x sprite scaling stride check with GTT remapping
  drm/i915/dp: Fix dsc bpp calculations, v5.
  block: pg: add header include guard
  net: stmmac: Avoid deadlock on suspend/resume
  timer-of: don't use conditional expression with mixed 'void' types
  net: hisilicon: Fix usage of uninitialized variable in function mdio_sc_cfg_reg_write()
  mips: Loongson: Fix the link time qualifier of 'serial_exit()'
  MIPS: init: Prevent adding memory before PHYS_OFFSET
  MIPS: init: Fix reservation of memory between PHYS_OFFSET and mem start
  MIPS: VDSO: Fix build for binutils < 2.25
  MIPS: VDSO: Remove unused gettimeofday.c
  MIPS: Wire up clone3 syscall
  char/random: Add a newline at the end of the file
  xen/xenbus: fix self-deadlock after killing user process
  selftests: watchdog: Add command line option to show watchdog_info
  selftests: watchdog: Validate optional file argument
  dt-bindings: phy: lantiq: Fix Property Name
  dt-bindings: iio: ad7192: Fix DTC warning in the example
  dt-bindings: iio: ad7192: Fix Regulator Properties
  dt-bindings: media: rc: Fix redundant string
  dt-bindings: dsp: Fix fsl,dsp example
  drm/amd/display: fix dcn21 Makefile for clang
  drm/amd/display: hide an unused variable
  drm/amdgpu: display_mode_vba_21: remove uint typedef
  drm/amdgpu: hide another #warning
  drm/amdgpu: make pmu support optional, again
  drm/amd/display: memory leak
  drm/amdgpu: fix multiple memory leaks in acp_hw_init
  drm/amdgpu: return tcc_disabled_mask to userspace
  drm/amdgpu: don't increment vram lost if we are in hibernation
  Revert "drm/amdgpu: disable stutter mode for renoir"
  drm/amd/powerplay: add sensor lock support for smu
  drm/amd/powerplay: change metrics update period from 1ms to 100ms
  drm/amdgpu: revert "disable bulk moves for now"
  MIPS: octeon: Include required header; fix octeon ethernet build
  ptp_qoriq: Initialize the registers' spinlock before calling ptp_qoriq_settime
  net: dsa: sja1105: Fix sleeping while atomic in .port_hwtstamp_set
  net: dsa: sja1105: Initialize the meta_lock
  net/rds: Fix error handling in rds_ib_add_one()
  net: dsa: rtl8366: Check VLAN ID and not ports
  mlx5: avoid 64-bit division in dr_icm_pool_mr_create()
  tipc: fix unlimited bundling of small messages
  xen/efi: have a common runtime setup function
  hwmon: (nct7904) Add array fan_alarm and vsen_alarm to store the alarms in nct7904_data struct.
  docs: hwmon: Include 'inspur-ipsps1.rst' into docs
  hwmon: Fix HWMON_P_MIN_ALARM mask
  hwmon: (k10temp) Update documentation and add temp2_input info
  hwmon: (nct7904) Fix the incorrect value of vsen_mask in nct7904_data struct
  nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request
  USB: serial: option: add Telit FN980 compositions
  USB: serial: ftdi_sio: add device IDs for Sienna and Echelon PL-20
  arm: xen: mm: use __GPF_DMA32 for arm64
  xen-netfront: do not use ~0U as error return value for xennet_fill_frags()
  ipv6: Handle race in addrconf_dad_work
  tcp: adjust rto_base in retransmits_timed_out()
  vsock: Fix a lockdep warning in __vsock_release()
  hso: fix NULL-deref on tty open
  riscv: Fix memblock reservation for device tree blob
  RISC-V: Clear load reservations while restoring hart contexts
  MIPS: cpu-bugs64: Mark inline functions as __always_inline
  xen/balloon: Clear PG_offline in balloon_retrieve()
  xen/balloon: Mark pages PG_offline in balloon_append()
  xen/balloon: Drop __balloon_append()
  xen/balloon: Set pages PageOffline() in balloon_add_region()
  ARM: xen: unexport HYPERVISOR_platform_op function
  selftests/kselftest/runner.sh: Add 45 second timeout per test
  kselftest: exclude failed TARGETS from runlist
  membarrier: Fix RCU locking bug caused by faulty merge
  kselftest: add capability to skip chosen TARGETS
  Drivers: hv: vmbus: Fix harmless building warnings without CONFIG_PM_SLEEP
  HID: hyperv: Use in-place iterator API in the channel callback
  x86: Use the correct SPDX License Identifier in headers
  btrfs: allocate new inode in NOFS context
  ARM: dts: ux500: Fix up the CPU thermal zone
  btrfs: fix balance convert to single on 32-bit host CPUs
  net: ag71xx: fix mdio subnode support
  net: stmmac: xgmac: Fix RSS writing wrong keys
  net: stmmac: xgmac: Fix RSS not writing all Keys to HW
  net: stmmac: xgmac: Disable the Timestamp interrupt by default
  net: stmmac: Do not stop PHY if WoL is enabled
  net: stmmac: Correctly take timestamp for PTPv2
  net: stmmac: dwmac4: Always update the MAC Hash Filter
  net: stmmac: selftests: Always use max DMA size in Jumbo Test
  net: stmmac: xgmac: Detect Hash Table size dinamically
  net: stmmac: xgmac: Not all Unicast addresses may be available
  devlink: Fix error handling in param and info_get dumpit cb
  net: dsa: rtl8366rb: add missing of_node_put after calling of_get_child_by_name
  net: mscc: ocelot: add missing of_node_put after calling of_get_child_by_name
  net: sched: cbs: Avoid division by zero when calculating the port rate
  net: sched: taprio: Avoid division by zero on invalid link speed
  netfilter: nft_connlimit: disable bh on garbage collection
  netfilter: drop bridge nf reset from nf_reset
  btrfs: fix incorrect updating of log root tree
  Btrfs: fix memory leak due to concurrent append writes with fiemap
  ionic: select CONFIG_NET_DEVLINK
  docs: networking: Add title caret and missing doc
  selftests: Add kselftest-all and kselftest-install targets
  net: socionext: netsec: always grab descriptor lock
  mac80211: keep BHs disabled while calling drv_tx_wake_queue()
  mac80211: fix txq null pointer dereference
  nl80211: fix null pointer dereference
  cfg80211: initialize on-stack chandefs
  cfg80211: validate SSID/MBSSID element ordering assumption
  nl80211: validate beacon head
  Revert "s390/dasd: Add discard support for ESE volumes"
  s390/dasd: Fix error handling during online processing
  io_uring: use __kernel_timespec in timeout ABI
  loop: change queue block size to match when using DIO
  RDMA/iwcm: Fix a lock inversion issue
  RDMA/iw_cxgb4: fix SRQ access from dump_qp()
  RDMA/hfi1: Prevent memory leak in sdma_init
  RDMA/core: Fix use after free and refcnt leak on ndev in_device in iwarp_query_port
  RDMA/siw: Fix serialization issue in write_space()
  RDMA/vmw_pvrdma: Free SRQ only once
  perf_event_open: switch to copy_struct_from_user()
  sched_setattr: switch to copy_struct_from_user()
  clone3: switch to copy_struct_from_user()
  lib: introduce copy_struct_from_user() helper
  kvm: vmx: Limit guest PMCs to those supported on the host
  crypto: arm/aes-ce - add dependency on AES library
  crypto: arm/aes-ce - build for v8 architecture explicitly
  docs: arm64: Fix indentation and doc formatting
  arm64/sve: Fix wrong free for task->thread.sve_state
  arm64: errata: Update stale comment
  gpio: eic: sprd: Fix the incorrect EIC offset when toggling
  gpio: fix getting nonexclusive gpiods from DT
  gpiolib: don't clear FLAG_IS_OUT when emulating open-drain/open-source
  ANDROID: sched/fair: Bias EAS placement for latency
  ANDROID: sched: Introduce uclamp latency and boost wrapper
  ANDROID: sched/core: Add a latency-sensitive flag to uclamp
  ANDROID: arm64: defconfig: Enable EAS by default
  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: sched: Prevent unnecessary active balance of single task in sched group
  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: cpufreq: arch_topology: implement max frequency capping
  ANDROID: sched/fair: add arch scaling function for max frequency capping
  ANDROID: sched: Unconditionally honor sync flag for energy-aware wakeups
  ANDROID: sched/fair: EAS: Add uclamp support to find_energy_efficient_cpu()
  s390/qdio: clarify size of the QIB parm area
  s390/cpumf: Fix indentation in sampling device driver
  s390/cpumsf: Check for CPU Measurement sampling
  s390/cpumf: Use consistant debug print format
  xen/efi: Set nonblocking callbacks
  staging: rtl8188eu: fix HighestRate check in odm_ARFBRefresh_8188E()
  staging: rtl8188eu: fix null dereference when kzalloc fails
  staging: bcm2835-audio: Fix draining behavior regression
  staging/fbtft: Remove flexfb
  staging/fbtft: Remove fbtft_device
  staging/fbtft: Depend on OF
  staging: octeon: Use "(uintptr_t)" to cast from pointer to int
  staging: exfat: Fix a typo in Kconfig
  staging: exfat - fix SPDX tags..
  staging: exfat: add missing SPDX line to Kconfig
  net: sched: taprio: Fix potential integer overflow in taprio_set_picos_per_byte
  net: dsa: sja1105: Prevent leaking memory
  modpost: fix static EXPORT_SYMBOL warnings for UML build
  kbuild: correct formatting of header in kbuild module docs
  kbuild: remove SUBDIRS support
  net: dsa: sja1105: Ensure PTP time for rxtstamp reconstruction is not in the past
  kbuild: remove ar-option and KBUILD_ARFLAGS
  net: Unpublish sk from sk_reuseport_cb before call_rcu
  MIPS: dts: ar9331: fix interrupt-controller size
  MIPS: Loongson64: Fix boot failure after dropping boot_mem_map
  erofs: fix mis-inplace determination related with noio chain
  erofs: fix erofs_get_meta_page locking due to a cleanup
  MAINTAINERS: erofs: complete sub-entries for erofs
  erofs: fix return value check in erofs_read_superblock()
  selftests: pidfd: Fix undefined reference to pthread_create()
  sched: Add __ASSEMBLY__ guards around struct clone_args
  perf annotate: Don't return -1 for error when doing BPF disassembly
  perf annotate: Return appropriate error code for allocation failures
  perf annotate: Fix arch specific ->init() failure errors
  perf annotate: Propagate the symbol__annotate() error return
  perf annotate: Fix the signedness of failure returns
  perf annotate: Propagate perf_env__arch() error
  perf evsel: Fall back to global 'perf_env' in perf_evsel__env()
  perf tools: Propagate get_cpuid() error
  perf jevents: Fix period for Intel fixed counters
  perf script brstackinsn: Fix recovery from LBR/binary mismatch
  perf docs: Correct and clarify jitdump spec
  perf inject jit: Fix JIT_CODE_MOVE filename
  perf map: Fix overlapped map handling
  perf vendor events s390: Use s390 machine name instead of type 8561
  perf vendor events s390: Add JSON transaction for machine type 8561
  perf llvm: Don't access out-of-scope array
  tools headers kvm: Sync kvm headers with the kernel sources
  tools headers uapi: Sync linux/fs.h with the kernel sources
  tools headers uapi: Sync linux/usbdevice_fs.h with the kernel sources
  tools headers uapi: Sync asm-generic/mman-common.h with the kernel
  arm64/ARM: configs: Change CONFIG_REMOTEPROC from m to y
  erspan: remove the incorrect mtu limit for erspan
  sch_cbq: validate TCA_CBQ_WRROPT to avoid crash
  net: dsa: qca8k: Use up to 7 ports for all operations
  kvm: x86, powerpc: do not allow clearing largepages debugfs entry
  ARM: dts: am4372: Set memory bandwidth limit for DISPC
  drm/tilcdc: include linux/pinctrl/consumer.h again
  ieee802154: ca8210: prevent memory leak
  blk-mq: apply normal plugging for HDD
  blk-mq: honor IO scheduler for multiqueue devices
  nvme-rdma: fix possible use-after-free in connect timeout
  KVM: selftests: x86: clarify what is reported on KVM_GET_MSRS failure
  KVM: VMX: Set VMENTER_L1D_FLUSH_NOT_REQUIRED if !X86_BUG_L1TF
  tick: broadcast-hrtimer: Fix a race in bc_set_next
  tools headers uapi: Sync drm/i915_drm.h with the kernel sources
  perf docs: Allow man page date to be specified
  perf tests: Avoid raising SEGV using an obvious NULL dereference
  libsubcmd: Make _FORTIFY_SOURCE defines dependent on the feature
  selftests: kvm: add test for dirty logging inside nested guests
  KVM: x86: fix nested guest live migration with PML
  KVM: x86: assign two bits to track SPTE kinds
  drm/komeda: prevent memory leak in komeda_wb_connector_add
  nvme: Move ctrl sqsize to generic space
  KVM: x86: Expose XSAVEERPTR to the guest
  kvm: x86: Enumerate support for CLZERO instruction
  kvm: x86: Use AMD CPUID semantics for AMD vCPUs
  kvm: x86: Improve emulation of CPUID leaves 0BH and 1FH
  KVM: X86: Fix userspace set invalid CR4
  kvm: x86: Fix a spurious -E2BIG in __do_cpuid_func
  KVM: LAPIC: Loosen filter for adaptive tuning of lapic_timer_advance_ns
  nvme: Add ctrl attributes for queue_count and sqsize
  nvme: allow 64-bit results in passthru commands
  nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T
  nvmet-tcp: remove superflous check on request sgl
  Added QUIRKs for ADATA XPG SX8200 Pro 512GB
  nvme-rdma: Fix max_hw_sectors calculation
  nvme: fix an error code in nvme_init_subsystem()
  nvme-pci: Save PCI state before putting drive into deepest state
  nvme-tcp: fix wrong stop condition in io_work
  ARM: OMAP2+: Fix warnings with broken omap2_set_init_voltage()
  ARM: OMAP2+: Add missing LCDC midlemode for am335x
  ARM: OMAP2+: Fix missing reset done flag for am3 and am43
  ieee802154: mcr20a: simplify a bit 'mcr20a_handle_rx_read_buf_complete()'
  ARM: dts: Fix gpio0 flags for am335x-icev2
  scsi: qla2xxx: Fix Nport ID display value
  scsi: qla2xxx: Fix N2N link up fail
  scsi: qla2xxx: Fix N2N link reset
  scsi: qla2xxx: Optimize NPIV tear down process
  scsi: qla2xxx: Fix stale mem access on driver unload
  scsi: qla2xxx: Fix unbound sleep in fcport delete path.
  scsi: qla2xxx: Silence fwdump template message
  scsi: hisi_sas: Make three functions static
  scsi: megaraid: disable device when probe failed after enabled device
  scsi: storvsc: setup 1:1 mapping between hardware queue and CPU queue
  scsi: qedf: Remove always false 'tmp_prio < 0' statement
  scsi: ufs: skip shutdown if hba is not powered
  scsi: bnx2fc: Handle scope bits when array returns BUSY or TSF
  nvme-pci: Fix a race in controller removal
  nvmet: change ppl to lpp
  ARM: omap2plus_defconfig: Enable more droid4 devices as loadable modules
  ARM: omap2plus_defconfig: Enable DRM_TI_TFP410
  DTS: ARM: gta04: introduce legacy spi-cs-high to make display work again
  ARM: dts: Fix wrong clocks for dra7 mcasp
  clk: ti: dra7: Fix mcasp8 clock bits
  drm: Clear the fence pointer when writeback job signaled
  drm: Free the writeback_job when it with an empty fb
  Fix the locking in dcache_readdir() and friends
  ieee802154: atusb: fix use-after-free at disconnect
  KVM: arm/arm64: vgic: Use the appropriate TRACE_INCLUDE_PATH
  arm64: KVM: Kill hyp_alternate_select()
  arm64: KVM: Replace hyp_alternate_select with has_vhe()
  arm64: KVM: Drop hyp_alternate_select for checking for ARM64_WORKAROUND_834220
  iio: fix center temperature of bmc150-accel-core
  iio: imu: st_lsm6dsx: forbid 0 sensor sensitivity
  iio: adc: meson_saradc: Fix memory allocation order

Change-Id: Ic630267f367b5b05691af40c3d71c072e12ab001
[rananta@codeaurora.org: Resolve trivial merge conflicts and fix warning
 location in scripts/gcc-wrapper.py]
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
2019-10-23 14:22:32 -07:00
..
acpi Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi and convert to reST 2019-04-25 23:07:20 +02:00
aoe docs: aoe: add it to the driver-api book 2019-07-15 11:03:02 -03:00
auxdisplay docs: admin-guide: add auxdisplay files to it after conversion to ReST 2019-07-31 13:30:06 -06:00
blockdev docs: add SPDX tags to new index files 2019-07-15 11:03:03 -03:00
cgroup-v1 memcg, kmem: deprecate kmem.limit_in_bytes 2019-09-24 15:54:10 -07:00
cifs It's a somewhat calmer cycle for docs this time, as the churn of the mass 2019-09-17 16:22:26 -07:00
device-mapper dm: add clone target 2019-09-12 09:32:31 -04:00
gpio docs: gpio: add sysfs interface to the admin-guide 2019-07-15 11:03:03 -03:00
hw-vuln Documentation: Add swapgs description to the Spectre v1 documentation 2019-08-03 21:21:54 +02:00
kdump docs: admin-guide: add kdump documentation into it 2019-07-15 11:03:01 -03:00
laptops platform/x86: thinkpad_acpi: Add ThinkPad PrivacyGuard 2019-09-07 21:16:09 +03:00
LSM security/loadpin: Allow to exclude specific file types 2019-05-31 13:57:40 -07:00
mm docs/vm: transhuge: fix typo in madvise reference 2019-07-22 14:45:12 -06:00
namespaces docs: add SPDX tags to new index files 2019-07-15 11:03:03 -03:00
perf docs/perf: Add documentation for the i.MX8 DDR PMU 2019-08-28 14:32:00 +01:00
pm Merge branches 'pm-docs' and 'pm-misc' 2019-05-06 10:55:19 +02:00
sysctl Linux 5.3-rc6 2019-08-26 16:45:30 +02:00
wimax docs: wimax: convert to ReST and add to admin-guide 2019-07-31 13:31:38 -06:00
bcache.rst
binderfs.rst docs: Move binderfs to admin-guide 2019-07-08 14:15:36 -06:00
binfmt-misc.rst
braille-console.rst
btmrvl.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
bug-bisect.rst
bug-hunting.rst docs: admin-guide: add kdump documentation into it 2019-07-15 11:03:01 -03:00
cgroup-v2.rst mm, memcg: proportional memory.{low,min} reclaim 2019-10-07 15:47:20 -07:00
clearing-warn-once.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
cpu-load.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
cputopology.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
devices.rst
devices.txt devices.txt: improve entry for comedi (char major 98) 2019-09-14 01:51:46 -06:00
dynamic-debug-howto.rst
efi-stub.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
ext4.rst docs: ext4.rst: document case-insensitive directories 2019-04-25 14:13:27 -04:00
highuid.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
hw_random.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
index.rst docs: fs: cifs: convert to ReST and add to admin-guide book 2019-07-31 14:13:42 -06:00
init.rst
initrd.rst
iostats.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
java.rst
jfs.rst Documentation: filesystems: Convert jfs.txt to 2019-07-31 13:09:14 -06:00
kernel-parameters.rst FROMGIT: of: property: Add functional dependency link from DT bindings 2019-10-07 18:44:10 -07:00
kernel-parameters.txt Merge remote-tracking branch 'remotes/origin/tmp-3fde1dfb006c' into msm-lahaina 2019-10-23 14:22:32 -07:00
kernel-per-CPU-kthreads.rst Documentation:kernel-per-CPU-kthreads.txt: Remove reference to elevator= 2019-09-03 08:05:37 -06:00
lcd-panel-cgram.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
ldm.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
lockup-watchdogs.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
md.rst raid5: set write hint for PPL 2019-03-12 10:15:18 -07:00
module-signing.rst
mono.rst
numastat.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
parport.rst
perf-security.rst perf-security: wrap paragraphs on 72 columns 2019-02-17 16:05:00 -07:00
pnp.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
ramoops.rst
rapidio.rst docs: rapidio: add it to the driver API 2019-07-15 09:20:27 -03:00
ras.rst docs: fix broken documentation links 2019-06-08 13:42:13 -06:00
README.rst docs: kbuild: convert docs to ReST and rename to *.rst 2019-06-14 14:21:21 -06:00
reporting-bugs.rst Documentation/admin-guide: update URL of LKML information link 2019-01-03 09:23:59 -07:00
rtc.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
security-bugs.rst
serial-console.rst
svga.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
sysfs-rules.rst
sysrq.rst Documentation: sysrq: don't recommend 'S' 'U' before 'B' 2019-09-06 08:42:52 -06:00
tainted-kernels.rst docs: Revamp tainted-kernels.rst to make it more comprehensible 2019-01-08 16:33:47 -07:00
thunderbolt.rst
ufs.rst Documentation: filesystems: Convert ufs.txt to reStructuredText format 2019-07-31 13:09:55 -06:00
unicode.rst
vga-softcursor.rst
video-output.rst docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
xfs.rst Documentation: filesystem: fix "Removed Sysctls" table 2019-07-30 14:18:43 -06:00

.. _readme:

Linux kernel release 5.x <http://kernel.org/>
=============================================

These are the release notes for Linux version 5.  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. 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-5.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 5.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-5.x) and execute::

     xz -cd ../patch-5.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 5.x kernels, patches for the 5.x.y kernels
   (also known as the -stable kernels) are not incremental but instead apply
   directly to the base 5.x kernel.  For example, if your base kernel is 5.0
   and you want to apply the 5.0.3 patch, you must not first apply the 5.0.1
   and 5.0.2 patches. Similarly, if you are running kernel version 5.0.2 and
   want to jump to 5.0.3, you must first reverse the 5.0.2 patch (that is,
   patch -R) **before** applying the 5.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 5.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-5.x
     build directory:    /home/name/build/kernel

   To configure and build the kernel, use::

     cd /usr/src/linux-5.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.rst.

 - 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 4.6 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.