mirror of
https://github.com/LineageOS/android_kernel_fxtec_sm6115.git
synced 2026-04-03 17:53:10 +00:00
* origin/tmp-021c917:
Linux 4.18-rc3
parisc: Build kernel without -ffunction-sections
sg: remove ->sg_magic member
drbd: Fix drbd_request_prepare() discard handling
blk-mq: don't queue more if we get a busy return
aio: mark __aio_sigset::sigmask const
net: handle NULL ->poll gracefully
i2c: gpio: initialize SCL to HIGH again
i2c: smbus: kill memory leak on emulated and failed DMA SMBus xfers
i2c: algos: bit: mention our experience about initial states
Revert "i2c: algo-bit: init the bus to a known state"
selinux: move user accesses in selinuxfs out of locked regions
parisc: Reduce debug output in unwind code
dm: prevent DAX mounts if not supported
dax: check for QUEUE_FLAG_DAX in bdev_dax_supported()
pmem: only set QUEUE_FLAG_DAX for fsdax mode
proc: add Alexey to MAINTAINERS
kasan: depend on CONFIG_SLUB_DEBUG
include/linux/dax.h: dax_iomap_fault() returns vm_fault_t
x86/e820: put !E820_TYPE_RAM regions into memblock.reserved
slub: fix failure when we delete and create a slab cache
Revert mm/vmstat.c: fix vmstat_update() preemption BUG
lib/percpu_ida.c: don't do alloc from per-CPU list if there is none
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
arm64: dts: hikey960: Define wl1837 power capabilities
arm64: dts: hikey: Define wl1835 power capabilities
block: Fix cloning of requests with a special payload
parisc: Wire up io_pgetevents syscall
parisc: Default to 4 SMP CPUs
parisc: Convert printk(KERN_LEVEL) to pr_lvl()
parisc: Mark 16kB and 64kB page sizes BROKEN
parisc: Drop struct sigaction from not exported header file
nvme-rdma: fix possible double free of controller async event buffer
kconfig: loop boundary condition fix
kbuild: reword help of LD_DEAD_CODE_DATA_ELIMINATION
kconfig: handle P_SYMBOL in print_symbol()
vt: prevent leaking uninitialized data to userspace via /dev/vcs*
serdev: fix memleak on module unload
serial: 8250_pci: Remove stalled entries in blacklist
n_tty: Access echo_* variables carefully.
n_tty: Fix stall at n_tty_receive_char_special().
swiotlb: export swiotlb_dma_ops
Btrfs: fix mount failure when qgroup rescan is in progress
Btrfs: fix regression in btrfs_page_mkwrite() from vm_fault_t conversion
btrfs: quota: Set rescan progress to (u64)-1 if we hit last leaf
proc: add proc_seq_release
ARM64: dts: meson-gxl: fix Mali GPU compatible string
ARM64: dts: meson-axg: fix ethernet stability issue
ARM64: dts: meson-gx: fix ATF reserved memory region
ARM64: dts: meson-gxl-s905x-p212: Add phy-supply for usb0
ARM64: dts: meson: fix register ranges for SD/eMMC
ARM64: dts: meson: disable sd-uhs modes on the libretech-cc
drm/amd/display: release spinlock before committing updates to stream
drm/amdgpu:Support new VCN FW version naming convention
drm/amdgpu: fix UBSAN: Undefined behaviour for amdgpu_fence.c
MAINTAINERS: Timur has a kernel.org address
arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}
arm64: Avoid flush_icache_range() in alternatives patching code
checkpatch: remove warning for 'old' stable@kernel.org address
arm64: dts: uniphier: fix widget name of headphone for LD11/LD20 boards
dm thin: handle running out of data space vs concurrent discard
ARM: dts: da850: Fix interrups property for gpio
x86/mm: Clean up the printk()s in show_fault_oops()
Documentation: intel_pstate: Describe hwp_dynamic_boost sysfs knob
Documentation: admin-guide: intel_pstate: Fix sysfs path
perf/core: Move inline keyword at the beginning of declaration
x86/mm: Drop unneeded __always_inline for p4d page table helpers
x86/efi: Fix efi_call_phys_epilog() with CONFIG_X86_5LEVEL=y
selftests/x86/sigreturn: Do minor cleanups
selftests/x86/sigreturn/64: Fix spurious failures on AMD CPUs
x86/entry/64/compat: Fix "x86/entry/64/compat: Preserve r8-r11 in int $0x80"
powerpc/powermac: Fix rtc read/write functions
Input: psmouse - fix button reporting for basic protocols
PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
PCI: Initialize endpoint library before controllers
block: Fix transfer when chunk sectors exceeds max
ARM: dts: Fix SPI node for Arria10
arm64: dts: stratix10: Fix SPI nodes for Stratix10
dh key: fix rounding up KDF output length
certs/blacklist: fix const confusion
ceph: fix dentry leak in splice_dentry()
ARM: davinci: board-da850-evm: fix WP pin polarity for MMC/SD
powerpc/mm/32: Fix pgtable_page_dtor call
PCI: shpchp: Manage SHPC unconditionally on non-ACPI systems
drm/meson: Fix an un-handled error path in 'meson_drv_bind_master()'
x86/mm: Don't free P4D table when it is folded at runtime
x86/entry/32: Add explicit 'l' instruction suffix
x86/mm: Get rid of KERN_CONT in show_fault_oops()
tools/headers: Pick up latest kernel ABIs
qcom: cmd-db: enforce CONFIG_OF_RESERVED_MEM dependency
usb: chipidea: host: fix disconnection detect issue
X.509: unpack RSA signatureValue field from BIT STRING
perf tools: Fix crash caused by accessing feat_ops[HEADER_LAST_FEATURE]
perf script: Fix crash because of missing evsel->priv
perf script: Add missing output fields in a hint
perf bench: Fix numa report output code
perf stat: Remove duplicate event counting
perf alias: Rebuild alias expression string to make it comparable
perf alias: Remove trailing newline when reading sysfs files
perf tools: Fix a clang 7.0 compilation error
tools include uapi: Synchronize bpf.h with the kernel
tools include uapi: Update if_link.h to pick IFLA_{BRPORT_ISOLATED,VXLAN_TTL_INHERIT}
tools include powerpc: Update arch/powerpc/include/uapi/asm/unistd.h copy to get 'rseq' syscall
perf tools: Update x86's syscall_64.tbl, adding 'io_pgetevents' and 'rseq'
tools headers uapi: Synchronize drm/drm.h
perf intel-pt: Fix packet decoding of CYC packets
perf tests: Add valid callback for parse-events test
perf tests: Add event parsing error handling to parse events test
perf report powerpc: Fix crash if callchain is empty
perf test session topology: Fix test on s390
perf record: Support s390 random socket_id assignment
staging: android: ion: Return an ERR_PTR in ion_map_kernel
staging: comedi: quatech_daqp_cs: fix no-op loop daqp_ao_insn_write()
kconfig: document Kconfig source file comments
kconfig: fix line numbers for if-entries in menu tree
stack-protector: Fix test with 32-bit userland and CONFIG_64BIT=y
powerpc: Remove -Wattribute-alias pragmas
disable -Wattribute-alias warning for SYSCALL_DEFINEx()
kbuild: add macro for controlling warnings to linux/compiler.h
usb: typec: tcpm: fix logbuffer index is wrong if _tcpm_log is re-entered
typec: tcpm: Fix a msecs vs jiffies bug
NFC: pn533: Fix wrong GFP flag usage
usb: cdc_acm: Add quirk for Uniden UBC125 scanner
staging/typec: fix tcpci_rt1711h build errors
usb: typec: ucsi: Fix for incorrect status data issue
usb: typec: ucsi: acpi: Workaround for cache mode issue
acpi: Add helper for deactivating memory region
usb: xhci: increase CRS timeout value
usb: xhci: tegra: fix runtime PM error handling
usb: xhci: remove the code build warning
xhci: Fix kernel oops in trace_xhci_free_virt_device
xhci: Fix perceived dead host due to runtime suspend race with event handler
Revert "lib/test_printf.c: call wait_for_random_bytes() before plain %p tests"
ALSA: seq: Fix UBSAN warning at SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT ioctl
ALSA: timer: Fix UBSAN warning at SNDRV_TIMER_IOCTL_NEXT_DEVICE ioctl
ALSA: hda/realtek - Fix the problem of two front mics on more machines
PM / Domains: Rename opp_node to np
PM / Domains: Fix return value of of_genpd_opp_to_performance_state()
cpufreq: qcom-kryo: Fix error handling in probe()
xfs: fix fdblocks accounting w/ RMAPBT per-AG reservation
xfs: ensure post-EOF zeroing happens after zeroing part of a file
xfs: fix off-by-one error in xfs_rtalloc_query_range
xfs: fix uninitialized field in rtbitmap fsmap backend
xfs: recheck reflink state after grabbing ILOCK_SHARED for a write
xfs: don't allow insert-range to shift extents past the maximum offset
xfs: don't trip over negative free space in xfs_reserve_blocks
xfs: allow empty transactions while frozen
MIPS: Add ksig argument to rseq_{signal_deliver,handle_notify_resume}
sfc: make function efx_rps_hash_bucket static
iio: imu: inv_mpu6050: Fix probe() failure on older ACPI based machines
iio: buffer: fix the function signature to match implementation
iio: mma8452: Fix ignoring MMA8452_INT_DRDY
iio: tsl2x7x/tsl2772: avoid potential division by zero
iio: pressure: bmp280: fix relative humidity unit
Linux 4.18-rc2
strparser: Corrected typo in documentation.
efi/x86: Fix incorrect invocation of PciIo->Attributes()
qmi_wwan: add support for the Dell Wireless 5821e module
cxgb4: when disabling dcb set txq dcb priority to 0
ARM: Always build secure_cntvoff.S on ARM V7 to fix shmobile !SMP build
ARM: multi_v7_defconfig: renormalize based on recent additions
arm64: defconfig: renormalize based on recent additions
blk-mq: Fix timeout handling in case the timeout handler returns BLK_EH_DONE
x86/mm: Fix 'no5lvl' handling
Revert "x86/mm: Mark __pgtable_l5_enabled __initdata"
powerpc: Wire up io_pgetevents
arm64: dts: msm8916: fix Coresight ETF graph connections
arm64: dts: apq8096-db820c: disable uart0 by default
net_sched: remove a bogus warning in hfsc
net: dccp: switch rx_tstamp_last_feedback to monotonic clock
net: dccp: avoid crash in ccid3_hc_rx_send_feedback()
Smack: Mark inode instant in smack_task_to_inode
net: Remove depends on HAS_DMA in case of platform dependency
MAINTAINERS: Add file patterns for dsa device tree bindings
net: mscc: make sparse happy
net: mvneta: fix the Rx desc DMA address in the Rx path
Documentation: e1000: Fix docs build error
Documentation: e100: Fix docs build error
Documentation: e1000: Use correct heading adornment
Documentation: e100: Use correct heading adornment
ipv6: mcast: fix unsolicited report interval after receiving querys
vhost_net: validate sock before trying to put its fd
drm/amdgpu: GPU vs CPU page size fixes in amdgpu_vm_bo_split_mapping
drm/amdgpu: Count disabled CRTCs in commit tail earlier
x86/CPU/AMD: Fix LLC ID bit-shift calculation
dm raid: don't use 'const' in function return
dm zoned: avoid triggering reclaim from inside dmz_map()
dm writecache: use 2-factor allocator arguments
dm thin metadata: remove needless work from __commit_transaction
dm: use bio_split() when splitting out the already processed bio
bdi: Fix another oops in wb_workfn()
lightnvm: Remove depends on HAS_DMA in case of platform dependency
rseq: Avoid infinite recursion when delivering SIGSEGV
mtd: rawnand: denali_dt: set clk_x_rate to 200 MHz unconditionally
arm64: mm: Ensure writes to swapper are ordered wrt subsequent cache maintenance
arm64: kpti: Use early_param for kpti= command-line option
MAINTAINERS: Add file patterns for x86 device tree bindings
time: Make sure jiffies_to_msecs() preserves non-zero time periods
KVM: fix KVM_CAP_HYPERV_TLBFLUSH paragraph number
kvm: vmx: Nested VM-entry prereqs for event inj.
x86/microcode/intel: Fix memleak in save_microcode_patch()
x86/mce: Fix incorrect "Machine check from unknown source" message
x86/mce: Do not overwrite MCi_STATUS in mce_no_way_out()
irqdesc: Delete irq_desc_get_msi_desc()
irqchip/gic-v3-its: Fix reprogramming of redistributors on CPU hotplug
irqchip/gic-v3-its: Only emit VSYNC if targetting a valid collection
irqchip/gic-v3-its: Only emit SYNC if targetting a valid collection
irqchip/gic-v3-its: Don't bind LPI to unavailable NUMA node
irqchip/gic-v2m: Fix SPI release on error path
irqchip/ls-scfg-msi: Fix MSI affinity handling
genirq/debugfs: Add missing IRQCHIP_SUPPORTS_LEVEL_MSI debug
Btrfs: fix return value on rename exchange failure
ALSA: hda/realtek - Add a quirk for FSC ESPRIMO U9210
perf/core: Move the inline keyword at the beginning of the function declaration
efi/libstub/tpm: Initialize efi_physical_addr_t vars to zero for mixed mode
mtd: dataflash: Use ULL suffix for 64-bit constants
mtd: cfi_cmdset_0002: Avoid walking all chips when unlocking.
xen: Remove unnecessary BUG_ON from __unbind_from_irq()
xfs: xfs_iflush_abort() can be called twice on cluster writeback failure
xen: add new hypercall buffer mapping device
xfs: More robust inode extent count validation
xfs: simplify xfs_bmap_punch_delalloc_range
locking/qspinlock: Fix build for anonymous union in older GCC compilers
VSOCK: fix loopback on big-endian systems
net: ethernet: ti: davinci_cpdma: make function cpdma_desc_pool_create static
Input: xpad - fix GPD Win 2 controller name
Input: elan_i2c_smbus - fix more potential stack buffer overflows
Input: elan_i2c - add ELAN0618 (Lenovo v330 15IKB) ACPI ID
Input: elantech - fix V4 report decoding for module with middle key
Input: elantech - enable middle button of touchpads on ThinkPad P52
mtd: cfi_cmdset_0002: Fix unlocking requests crossing a chip boudary
xen-netfront: Update features after registering netdev
xen-netfront: Fix mismatched rtnl_unlock
mtd: cfi_cmdset_0002: fix SEGV unlocking multiple chips
mtd: cfi_cmdset_0002: Use right chip in do_ppb_xxlock()
mtd: rawnand: All AC chips have a broken GET_FEATURES(TIMINGS).
cls_flower: fix use after free in flower S/W path
net/packet: fix use-after-free
mtd: rawnand: fix return value check for bad block status
ALSA: hda/ca0132: make array ca0132_alt_chmaps static
tracing: Fix SKIP_STACK_VALIDATION=1 build due to bad merge with -mrecord-mcount
tracing: Fix some errors in histogram documentation
tracing: Use swap macro in update_max_tr
softirq: Reorder trace_softirqs_on to prevent lockdep splat
tracing: Check for no filter when processing event filters
btrfs: fix invalid-free in btrfs_extent_same
Btrfs: fix physical offset reported by fiemap for inline extents
nvme-pci: limit max IO size and segments to avoid high order allocations
locking/lockdep: Do not record IRQ state within lockdep code
KVM: arm64: Prevent KVM_COMPAT from being selected
KVM: Enforce error in ioctl for compat tasks when !KVM_COMPAT
kernel.h: Fix a typo in comment
uprobes/x86: Remove incorrect WARN_ON() in uprobe_init_insn()
nvme-pci: move nvme_kill_queues to nvme_remove_dead_ctrl
x86/platform/UV: Add kernel parameter to set memory block size
x86/platform/UV: Use new set memory block size function
x86/platform/UV: Add adjustable set memory block size function
x86/spectre_v1: Disable compiler optimizations over array_index_mask_nospec()
x86/pti: Don't report XenPV as vulnerable
microblaze: consolidate GPIO reset handling
microblaze: remove unecessary of_platform_bus_probe call
microblaze: Add new syscalls io_pgetevents and rseq
ALSA: hda - Force to link down at runtime suspend on ATI/AMD HDMI
x86/build: Remove unnecessary preparation for purgatory
Revert "kexec/purgatory: Add clean-up for purgatory directory"
KVM: arm/arm64: add WARN_ON if size is not PAGE_SIZE aligned in unmap_stage2_range
rseq/cleanup: Do not abort rseq c.s. in child on fork()
rseq/selftests/arm: Align 'struct rseq_cs' on 32 bytes
rseq/selftests: Make run_param_test.sh executable
ALSA: lx6464es: Missing error code in snd_lx6464es_create()
x86/xen: Add call of speculative_store_bypass_ht_init() to PV paths
drm/bridge/sii8620: fix display of packed pixel modes in MHL2
KVM: arm64: Avoid mistaken attempts to save SVE state for vcpus
KVM: arm64/sve: Fix SVE trap restoration for non-current tasks
KVM: arm64: Don't mask softirq with IRQs disabled in vcpu_put()
arm64: Introduce sysreg_clear_set()
KVM: arm/arm64: Drop resource size check for GICV window
nvme-fc: release io queues to allow fast fail
selftests: net: add tcp_inq to gitignore
net: macb: Fix ptp time adjustment for large negative delta
ipvlan: fix IFLA_MTU ignored on NEWLINK
sctp: fix erroneous inc of snmp SctpFragUsrMsgs
bpf: enforce correct alignment for instructions
net: mscc: fix the injection header
net: davinci_emac: match the mdio device against its compatible if possible
nbd: Add the nbd NBD_DISCONNECT_ON_CLOSE config flag.
r8169: Fix netpoll oops
strparser: Don't schedule in workqueue in paused state
selftests: net: add config fragments
bpfilter: fix user mode helper cross compilation
Documentation: intel_pstate: Fix typo
block: sed-opal: Fix a couple off by one bugs
tools/power turbostat: version 18.06.20
tools/power turbostat: add the missing command line switches
tools/power turbostat: add single character tokens to help
tools/power turbostat: alphabetize the help output
tools/power turbostat: fix segfault on 'no node' machines
tools/power turbostat: add optional APIC X2APIC columns
tools/power turbostat: decode cpuid.1.HT
tools/power turbostat: fix show/hide issues resulting from mis-merge
blk-mq-debugfs: Off by one in blk_mq_rq_state_name()
nvmet: reset keep alive timer in controller enable
nvme-rdma: don't override opts->queue_size
nvme-rdma: Fix command completion race at error recovery
nvme-rdma: fix possible free of a non-allocated async event buffer
nvme-rdma: fix possible double free condition when failing to create a controller
x86: Call fixup_exception() before notify_die() in math_error()
locking/rwsem: Fix up_read_non_owner() warning with DEBUG_RWSEMS
udf: Drop unused arguments of udf_delete_aext()
udf: Provide function for calculating dir entry length
udf: Detect incorrect directory size
ext2: add warning when specifying nocheck option
quota: Cleanup list iteration in dqcache_shrink_scan()
quota: reclaim least recently used dquots
ACPI / processor: Finish making acpi_processor_ppc_has_changed() void
HID: wacom: Correct logical maximum Y for 2nd-gen Intuos Pro large
HID: intel_ish-hid: ipc: register more pm callbacks to support hibernation
HID: steam: use hid_device.driver_data instead of hid_set_drvdata()
proc: fix missing final NUL in get_mm_cmdline() rewrite
ip: limit use of gso_size to udp
stmmac: fix DMA channel hang in half-duplex mode
net: stmmac: socfpga: add additional ocp reset line for Stratix10
net: sungem: fix rx checksum support
MIPS: Wire up io_pgetevents syscall
rseq/selftests: Implement MIPS support
MIPS: Wire up the restartable sequences (rseq) syscall
MIPS: Add syscall detection for restartable sequences
MIPS: Add support for restartable sequences
MIPS: io: Add barrier after register read in inX()
objtool: Add machine_real_restart() to the noreturn list
bpfilter: ignore binary files
bpfilter: fix build error
net/usb/drivers: Remove useless hrtimer_active check
net/sched: act_ife: preserve the action control in case of error
net/sched: act_ife: fix recursive lock and idr leak
net: ethernet: fix suspend/resume in davinci_emac
powerpc/mm/hash/4k: Free hugetlb page table caches correctly.
powerpc/64s/radix: Fix radix_kvm_prefetch_workaround paca access of not possible CPU
net: propagate dev_get_valid_name return code
enic: do not overwrite error code
net/tcp: Fix socket lookups with SO_BINDTODEVICE
ptp: replace getnstimeofday64() with ktime_get_real_ts64()
net/ipv6: respect rcu grace period before freeing fib6_info
net: net_failover: fix typo in net_failover_slave_register()
ipvlan: use ETH_MAX_MTU as max mtu
net: hamradio: use eth_broadcast_addr
enic: initialize enic->rfs_h.lock in enic_probe
MAINTAINERS: Add Sam as the maintainer for NCSI
net/ncsi: Use netdev_dbg for debug messages
net/ncsi: Drop no more channels message
net/ncsi: Silence debug messages
bpf, xdp, i40e: fix i40e_build_skb skb reserve and truesize
qed: Do not advertise DCBX_LLD_MANAGED capability.
qed: Add sanity check for SIMD fastpath handler.
qed: Fix possible memory leak in Rx error path handling.
mips: ftrace: fix static function graph tracing
drm/amdgpu: Make amdgpu_vram_mgr_bo_invisible_size always accurate
drm/amdgpu: Refactor amdgpu_vram_mgr_bo_invisible_size helper
drm/amdgpu: Update pin_size values before unpinning BO
drm/amdgpu:All UVD instances share one idle_work handle
Revert "block: Add warning for bi_next not NULL in bio_endio()"
drm/amdgpu: Don't default to DC support for Kaveri and older
drm/amdgpu: Use kvmalloc_array for allocating VRAM manager nodes array
drm/amd/pp: Fix uninitialized variable
block: fix timeout changes for legacy request drivers
pNFS/flexfiles: Process writeback resends from nfsiod context as well
pNFS/flexfiles: Don't tie up all the rpciod threads in resends
arm64: make secondary_start_kernel() notrace
arm64: dma-mapping: clear buffers allocated with FORCE_CONTIGUOUS flag
powerpc/64s: Fix build failures with CONFIG_NMI_IPI=n
xen/scsiback: add error handling for xenbus_printf
scsi: xen-scsifront: add error handling for xenbus_printf
sunrpc: Prevent duplicate XID allocation
pNFS: Don't send layoutreturn if the layout is already invalid
pNFS: Always free the session slot on error in nfs4_layoutget_handle_exception
drm/i915: Enable provoking vertex fix on Gen9 systems.
drm/i915: Fix context ban and hang accounting for client
drm/i915: Turn off g4x DP port in .post_disable()
drm/i915: Disallow interlaced modes on g4x DP outputs
drm/i915: Fix PIPESTAT irq ack on i965/g4x
drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI
drm/i915/execlists: Avoid putting the error pointer
drm/i915: Apply batch location restrictions before pinning
xen/grant-table: Export gnttab_{alloc|free}_pages as GPL
xen: add error handling for xenbus_printf
xen: share start flags between PV and PVH
powerpc/64: hard disable irqs on the panic()ing CPU
powerpc: smp_send_stop do not offline stopped CPUs
powerpc/64: hard disable irqs in panic_smp_self_stop
powerpc/64s: Fix DT CPU features Power9 DD2.1 logic
powerpc/64s/radix: Fix MADV_[FREE|DONTNEED] TLB flush miss problem with THP
powerpc/e500mc: Set assembler machine type to e500mc
mtd: rawnand: mxc: set spare area size register explicitly
PM / OPP: Update voltage in case freq == old_freq
dwc2: gadget: Fix ISOC IN DDMA PID bitfield value calculation
usb: gadget: dwc2: fix memory leak in gadget_init()
usb: gadget: composite: fix delayed_status race condition when set_interface
usb: dwc2: fix isoc split in transfer with no data
usb: dwc2: alloc dma aligned buffer for isoc split in
usb: dwc2: fix the incorrect bitmaps for the ports of multi_tt hub
usb: dwc2: Fix host exit from hibernation flow.
usb: dwc3: qcom: mark PM functions as __maybe_unused
usb: dwc3: Fix error return code in dwc3_qcom_probe()
mtd: rawnand: micron: add ONFI_FEATURE_ON_DIE_ECC to supported features
cpufreq: intel_pstate: Fix scaling max/min limits with Turbo 3.0
cpufreq: kryo: Add module remove and exit
cpufreq: kryo: Fix possible error code dereference
posix-timers: Fix nanosleep_copyout() for CONFIG_COMPAT_32BIT_TIME
ARM: dts: imx6sx: fix irq for pcie bridge
scsi: scsi_debug: Fix memory leak on module unload
scsi: qla2xxx: Spinlock recursion in qla_target
scsi: ipr: Eliminate duplicate barriers
scsi: target: tcmu: add read length support
drm/nouveau/kms/nv50-: cursors always use core channel vram ctxdma
revert "mm/memblock: add missing include <linux/bootmem.h>"
MAINTAINERS: Add me as an x86 entry code maintainer
MIPS: BCM47XX: Enable 74K Core ExternalSync for PCIe erratum
MIPS: pb44: Fix i2c-gpio GPIO descriptor table
IB/rxe: Fix missing completion for mem_reg work requests
RDMA/core: Save kernel caller name when creating CQ using ib_create_cq()
drm/mali-dp: Rectify the width and height passed to rotmem_required()
drm/arm/malidp: Preserve LAYER_FORMAT contents when setting format
drm: mali-dp: Enable Global SE interrupts mask for DP500
drm/arm/malidp: Ensure that the crtcs are shutdown before removing any encoder/connector
drivers/perf: xgene_pmu: Fix IOB SLOW PMU parser error
arm64: dts: Stingray: Fix I2C controller interrupt type
arm64: dts: ns2: Fix PCIe controller interrupt type
arm64: dts: ns2: Fix I2C controller interrupt type
arm64: dts: specify 1.8V EMMC capabilities for bcm958742t
arm64: dts: specify 1.8V EMMC capabilities for bcm958742k
ARM: dts: Cygnus: Fix PCIe controller interrupt type
ARM: dts: Cygnus: Fix I2C controller interrupt type
ARM: dts: BCM5301x: Fix i2c controller interrupt type
ARM: dts: HR2: Fix interrupt types for i2c and PCIe
ARM: dts: NSP: Fix PCIe controllers interrupt types
ARM: dts: NSP: Fix i2c controller interrupt type
MAINTAINERS: Update Broadcom iProc entry with Stingray
MAINAINTERS: Corrected Broadcom Northstar2 entry
selftests: sparc64: Add missing SPDX License Identifiers
selftests: sparc64: delete RUN_TESTS and EMIT_TESTS overrides
selftests: sparc64: Fix to do nothing on non-sparc64
selftests: sync: add config fragment for testing sync framework
selftests: vm: return Kselftest Skip code for skipped tests
selftests: zram: return Kselftest Skip code for skipped tests
selftests: user: return Kselftest Skip code for skipped tests
selftests: sysctl: return Kselftest Skip code for skipped tests
selftests: static_keys: return Kselftest Skip code for skipped tests
selftests: pstore: return Kselftest Skip code for skipped tests
ACPI / EC: Use ec_no_wakeup on Thinkpad X1 Carbon 6th
usb: dwc2: gadget: fix packet drop issue for ISOC OUT transfers
usb: dwc3: Only call clk_bulk_get() on devicetree instantiated devices
usb: dwc2: gadget: fix packet drop issue in dwc2_gadget_handle_nak
usb: dwc3: of-simple: fix use-after-free on remove
usb: dwc2: gadget: Fix issue in dwc2_gadget_start_isoc()
doc: usb: Fix typo in gadget_configfs documentation
usb: gadget: ffs: Fix BUG when userland exits with submitted AIO transfers
usb: dwc3: pci: add support for Intel IceLake
USB: serial: cp210x: add CESINEL device ids
Revert "drm/sun4i: Handle DRM_BUS_FLAG_PIXDATA_*EDGE"
USB: serial: cp210x: add Silicon Labs IDs for Windows Update
pinctrl: mt7622: fix a kernel panic when pio don't work as EINT controller
pinctrl: actions: Fix uninitialized error in owl_pin_config_set()
pinctrl: single: Add allocation failure checking of saved_vals
pinctrl: devicetree: Fix pctldev pointer overwrite
pinctrl: mediatek: remove redundant return value check of platform_get_resource()
Fix Documentation build due to rename of main.c to mtrr.c
firmware: dmi: Add access to the SKU ID string
drm/atmel-hlcdc: check stride values in the first plane
soc: imx: gpcv2: correct PGC offset
ALSA: hda/ca0132: Fix DMic data rate for Alienware M17x R4
ALSA: hda/ca0132: Restore PCM Analog Mic-In2
ALSA: hda/ca0132: Don't test for QUIRK_NONE
ALSA: hda/ca0132: Restore behavior of QUIRK_ALIENWARE
ALSA: hda/ca0132: Delete redundant UNSOL event requests
ALSA: hda/ca0132: Delete pointless assignments to struct auto_pin_cfg fields
ALSA: hda/realtek - Fix pop noise on Lenovo P50 & co
ARM: dts: imx6q: Use correct SDMA script for SPI5 core
net_sched: blackhole: tell upper qdisc about dropped packets
hwmon: (nct6775) Fix loop limit
hwmon: (dell-smm) Disable fan support for Dell XPS13 9333
bluetooth: hci_nokia: Don't include linux/unaligned/le_struct.h directly.
atm: Preserve value of skb->truesize when accounting to vcc
Linux 4.18-rc1
cifs: Fix invalid check in __cifs_calc_signature()
cifs: Use correct packet length in SMB2_TRANSFORM header
xdp: Fix handling of devmap in generic XDP
fix a series of Documentation/ broken file name references
Documentation: rstFlatTable.py: fix a broken reference
ABI: sysfs-devices-system-cpu: remove a broken reference
devicetree: fix a series of wrong file references
devicetree: fix name of pinctrl-bindings.txt
devicetree: fix some bindings file names
MAINTAINERS: fix location of DT npcm files
MAINTAINERS: fix location of some display DT bindings
kernel-parameters.txt: fix pointers to sound parameters
bindings: nvmem/zii: Fix location of nvmem.txt
docs: Fix more broken references
scripts/documentation-file-ref-check: check tools/*/Documentation
scripts/documentation-file-ref-check: get rid of false-positives
scripts/documentation-file-ref-check: hint: dash or underline
scripts/documentation-file-ref-check: add a fix logic for DT
scripts/documentation-file-ref-check: accept more wildcards at filenames
scripts/documentation-file-ref-check: fix help message
media: max2175: fix location of driver's companion documentation
media: v4l: fix broken video4linux docs locations
media: dvb: point to the location of the old README.dvb-usb file
media: dvb: fix location of get_dvb_firmware script
docs: Fix some broken references
docs: fix broken references with multiple hints
bpf: reject any prog that failed read-only lock
bpf: fix panic in prog load calls cleanup
net: stmmac: Run HWIF Quirks after getting HW caps
neighbour: skip NTF_EXT_LEARNED entries during forced gc
net: cxgb3: add error handling for sysfs_create_group
tls: fix waitall behavior in tls_sw_recvmsg
tls: fix use-after-free in tls_push_record
l2tp: filter out non-PPP sessions in pppol2tp_tunnel_ioctl()
l2tp: reject creation of non-PPP sessions on L2TPv2 tunnels
mlxsw: spectrum_switchdev: Fix port_vlan refcounting
mlxsw: spectrum_router: Align with new route replace logic
mlxsw: spectrum_router: Allow appending to dev-only routes
ipv6: Only emit append events for appended routes
stmmac: added support for 802.1ad vlan stripping
arch/*: Kconfig: fix documentation for NMI watchdog
docs: crypto_engine.rst: Fix two parse warnings
docs: can.rst: fix a footnote reference
hwrng: core - Always drop the RNG in hwrng_unregister()
crypto: morus640 - Fix out-of-bounds access
crypto: don't optimize keccakf()
crypto: arm64/aes-blk - fix and move skcipher_walk_done out of kernel_neon_begin, _end
crypto: chtls - use after free in chtls_pt_recvmsg()
afs: Optimise callback breaking by not repeating volume lookup
afs: Display manually added cells in dynamic root mount
afs: Enable IPv6 DNS lookups
bsg: fix race of bsg_open and bsg_unregister
block: remov blk_queue_invalidate_tags
cfg80211: fix rcu in cfg80211_unregister_wdev
mac80211: Move up init of TXQs
mac80211_hwsim: fix module init error paths
cfg80211: initialize sinfo in cfg80211_get_station
nl80211: fix some kernel doc tag mistakes
nvme-fabrics: fix and refine state checks in __nvmf_check_ready
nvme-fabrics: handle the admin-only case properly in nvmf_check_ready
nvme-fabrics: refactor queue ready check
smb3: fix corrupt path in subdirs on smb311 with posix
smb3: do not display empty interface list
smb3: Fix mode on mkdir on smb311 mounts
cifs: Fix kernel oops when traceSMB is enabled
CIFS: dump every session iface info
CIFS: parse and store info on iface queries
CIFS: add iface info to struct cifs_ses
CIFS: complete PDU definitions for interface queries
CIFS: move default port definitions to cifsglob.h
cifs: Fix encryption/signing
cifs: update __smb_send_rqst() to take an array of requests
cifs: remove smb2_send_recv()
cifs: push rfc1002 generation down the stack
smb3: increase initial number of credits requested to allow write
cifs: minor documentation updates
cifs: add lease tracking to the cached root fid
smb3: note that smb3.11 posix extensions mount option is experimental
afs: Show all of a server's addresses in /proc/fs/afs/servers
afs: Handle CONFIG_PROC_FS=n
proc: Make inline name size calculation automatic
orangefs: simplify compat ioctl handling
signalfd: lift sigmask copyin and size checks to callers of do_signalfd4()
hv_netvsc: Fix the variable sizes in ipsecv2 and rsc offload
rds: avoid unenecessary cong_update in loop transport
bpf, selftests: delete xfrm tunnel when test exits.
bpf, selftest: check tunnel type more accurately
selftests/bpf: test offloads even with BPF programs present
tools: bpftool: improve accuracy of load time
l2tp: clean up stale tunnel or session in pppol2tp_connect's error path
l2tp: prevent pppol2tp_connect() from creating kernel sockets
l2tp: only accept PPP sessions in pppol2tp_connect()
l2tp: fix pseudo-wire type for sessions created by pppol2tp_connect()
eventpoll: switch to ->poll_mask
aio: only return events requested in poll_mask() for IOCB_CMD_POLL
net: emaclite: Remove xemaclite_mdio_setup return check
net: emaclite: Remove unused 'has_mdio' flag.
net: emaclite: Fix MDIO bus unregister bug
net: emaclite: Fix position of lp->mii_bus assignment
eventfd: only return events requested in poll_mask()
aio: mark __aio_sigset::sigmask const
tcp: verify the checksum of the first data segment in a new connection
net: qcom/emac: Add missing of_node_put()
lib/test_printf.c: call wait_for_random_bytes() before plain %p tests
hexagon: drop the unused variable zero_page_mask
hexagon: fix printk format warning in setup.c
mm: fix oom_kill event handling
treewide: use PHYS_ADDR_MAX to avoid type casting ULLONG_MAX
mm: use octal not symbolic permissions
ipc: use new return type vm_fault_t
sysvipc/sem: mitigate semnum index against spectre v1
fault-injection: reorder config entries
arm: port KCOV to arm
sched/core / kcov: avoid kcov_area during task switch
kcov: prefault the kcov_area
kcov: ensure irq code sees a valid area
kernel/relay.c: change return type to vm_fault_t
exofs: avoid VLA in structures
coredump: fix spam with zero VMA process
fat: use fat_fs_error() instead of BUG_ON() in __fat_get_block()
proc: skip branch in /proc/*/* lookup
mremap: remove LATENCY_LIMIT from mremap to reduce the number of TLB shootdowns
mm/memblock: add missing include <linux/bootmem.h>
mm: check for SIGKILL inside dup_mmap() loop
kexec: yield to scheduler when loading kimage segments
mm: fix race between kmem_cache destroy, create and deactivate
mm: fix devmem_is_allowed() for sub-page System RAM intersections
mm/swapfile.c: fix swap_count comment about nonexistent SWAP_HAS_CONT
mm: fix null pointer dereference in mem_cgroup_protected
mm/ksm.c: ignore STABLE_FLAG of rmap_item->address in rmap_walk_ksm()
Kbuild: rename HAVE_CC_STACKPROTECTOR config variable
kconfig: tinyconfig: remove stale stack protector fixups
x86: fix dependency of X86_32_LAZY_GS
NFS: Fix an rcu deadlock in nfs_delegation_find_inode()
sctp: define sctp_packet_gso_append to build GSO frames
KVM: x86: VMX: redo fix for link error without CONFIG_HYPERV
ALSA: usb-audio: Always create the interrupt pipe for the mixer
ALSA: usb-audio: Add insertion control for UAC3 BADD
ALSA: usb-audio: Change in connectors control creation interface
ALSA: usb-audio: Add bi-directional terminal types
ALSA: lx6464es: add error handling for pci_ioremap_bar
ALSA: sonicvibes: add error handling for snd_ctl_add
KVM: x86: fix typo at kvm_arch_hardware_setup comment
blk-mq: remove blk_mq_tagset_iter
nvme: remove nvme_reinit_tagset
nvme-fc: fix nulling of queue data on reconnect
nvme-fc: remove reinit_request routine
blk-mq: don't time out requests again that are in the timeout handler
pstore: Remove bogus format string definition
drm/amd/powerplay: Set higher SCLK&MCLK frequency than dpm7 in OD (v2)
nvme-fc: change controllers first connect to use reconnect path
PM / core: Fix supplier device runtime PM usage counter imbalance
ACPI / LPSS: Avoid PM quirks on suspend and resume from S3
dma-mapping: move all DMA mapping code to kernel/dma
dma-mapping: use obj-y instead of lib-y for generic dma ops
Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables
drm/amd/powerplay: remove uncessary extra gfxoff control call
drm/amdgpu: fix parsing indirect register list v2
drm/amd/include: Update df 3.6 mask and shift definition
drm/amd/pp: Fix OD feature enable failed on Vega10 workstation cards
drm/amd/display: Fix stale buffer object (bo) use
drm/amd/pp: initialize result to before or'ing in data
drm/amd/powerplay: fix wrong clock adjust sequence
drm/amdgpu: Grab/put runtime PM references in atomic_commit_tail()
drm/amd/powerplay: fix missed hwmgr check warning before call gfx_off_control handler
drm/amdgpu: fix CG enabling hang with gfxoff enabled
drm/amdgpu: fix clear_all and replace handling in the VM (v2)
drm/amdgpu: add checking for sos version
drm/amdgpu: fix the missed vcn fw version report
drm/bridge/sii8620: fix HDMI cable connection to dongle
drm/bridge/sii8620: remove HSIC initialization
drm/bridge/sii8620: start MHL transmission after HDMI signal detection
drm/bridge/sii8620: fix potential buffer overflow
drm/bridge/sii8620: fix display modes validation
drm/bridge/sii8620: fix loops in EDID fetch logic
drm/bridge/sii8620: simplify hardware reset procedure
nvme: don't rely on the changed namespace list log
ALSA: usb-audio: Remove explicitly listed Mytek devices
ALSA: usb-audio: Generic DSD detection for XMOS-based implementations
ALSA: usb-audio: Add native DSD support for Mytek DACs
ALSA: hda/realtek - Add shutup hint
Revert "debugfs: inode: debugfs_create_dir uses mode permission from parent"
KVM: x86: VMX: fix build without hyper-v
selftests: bpf: config: add config fragments
tools/bpftool: fix a bug in bpftool perf
KVM: PPC: Book3S PR: Fix failure status setting in tabort. emulation
KVM: PPC: Book3S PR: Enable use on POWER9 bare-metal hosts in HPT mode
KVM: PPC: Book3S PR: Don't let PAPR guest set MSR hypervisor bit
KVM: PPC: Book3S PR: Fix failure status setting in treclaim. emulation
KVM: PPC: Book3S PR: Fix MSR setting when delivering interrupts
KVM: PPC: Book3S PR: Handle additional interrupt types
treewide: Use array_size in f2fs_kvzalloc()
treewide: Use array_size() in f2fs_kzalloc()
treewide: Use array_size() in f2fs_kmalloc()
treewide: Use array_size() in sock_kmalloc()
treewide: Use array_size() in kvzalloc_node()
treewide: Use array_size() in vzalloc_node()
treewide: Use array_size() in vzalloc()
treewide: Use array_size() in vmalloc()
treewide: devm_kzalloc() -> devm_kcalloc()
treewide: devm_kmalloc() -> devm_kmalloc_array()
treewide: kvzalloc() -> kvcalloc()
treewide: kvmalloc() -> kvmalloc_array()
treewide: kzalloc_node() -> kcalloc_node()
treewide: kzalloc() -> kcalloc()
treewide: kmalloc() -> kmalloc_array()
mm: Introduce kvcalloc()
video: uvesafb: Fix integer overflow in allocation
UBIFS: Fix potential integer overflow in allocation
leds: Use struct_size() in allocation
Convert intel uncore to struct_size
Convert jffs2 acl to struct_size
Convert vhost to struct_size
Convert v4l2 event to struct_size
Convert infiniband uverbs to struct_size
Convert virtio_console to struct_size
test_overflow: fix an IS_ERR() vs NULL bug
xen/netfront: raise max number of slots in xennet_get_responses()
smc: convert to ->poll_mask
net: stmmac: dwmac-meson8b: Fix an error handling path in 'meson8b_dwmac_probe()'
tc-testing: ife: fix wrong teardown command in test b7b8
net: thunderx: prevent concurrent data re-writing by nicvf_set_rx_mode
net: phy: mdio-gpio: Cut surplus includes
hv_netvsc: move VF to same namespace as netvsc device
hv_netvsc: fix network namespace issues with VF support
hv_netvsc: drop common code until callback model fixed
nfp: flower: free dst_entry in route table
nfp: remove phys_port_name on flower's vNIC
nfp: include all ring counters in interface stats
nfp: don't pad strings in nfp_cpp_resource_find() to avoid gcc 8 warning
clocksource/drivers/stm32: Fix error return code
locking/refcounts: Implement refcount_dec_and_lock_irqsave()
atomic: Add irqsave variant of atomic_dec_and_lock()
alpha: Remove custom dec_and_lock() implementation
IB/uverbs: Fix ordering of ucontext check in ib_uverbs_write
autofs: Fix typo s/thenew new/the new/ in AUTOFS4_FS description
Revert "net: do not allow changing SO_REUSEADDR/SO_REUSEPORT on bound sockets"
netfilter: nf_conncount: Fix garbage collection with zones
netfilter: xt_connmark: fix list corruption on rmmod
netfilter: ctnetlink: avoid null pointer dereference
netfilter: nf_tables: use WARN_ON_ONCE instead of BUG_ON in nft_do_chain()
netfilter: nf_tables: close race between netns exit and rmmod
netfilter: nf_tables: fix module unload race
netfilter: nft_dynset: do not reject set updates with NFT_SET_EVAL
netfilter: nft_socket: fix module autoload
netfilter: fix null-ptr-deref in nf_nat_decode_session
posix-cpu-timers: Remove lockdep_assert_irqs_disabled()
linux/linkage.h: replace VMLINUX_SYMBOL_STR() with __stringify()
s390/dasd: only use preallocated requests
s390/dasd: reshuffle struct dasd_ccw_req
s390/dasd: remove dasd_kmalloc_set_cda
s390/dasd: move dasd_ccw_req to per request data
s390/dasd: simplify locking in process_final_queue
s390/cio: sanitize css_general_characteristics definition
kvm: fix typo in flag name
kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access
KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and kvm_write_guest_virt_system
KVM: x86: introduce linear_{read,write}_system
kvm: nVMX: Enforce cpl=0 for VMX instructions
skip LAYOUTRETURN if layout is invalid
microblaze: Remove architecture heart beat code
microblaze: heartbeat: fix missing prom.h include
ALSA: usb-audio: Disable the quirk for Nura headset
xsk: re-add queue id check for XDP_SKB path
Revert "PM / runtime: Fixup reference counting of device link suppliers at probe"
ALSA: hda: add dock and led support for HP ProBook 640 G4
ALSA: hda: add dock and led support for HP EliteBook 830 G5
xfs: update incore per-AG inode count
tcp: Do not reload skb pointer after skb_gro_receive().
virtio: update the comments for transport features
virtio_pci: support enabling VFs
vhost: fix info leak due to uninitialized memory
net/ipv6: Ensure cfg is properly initialized in ipv6_create_tempaddr
tls: fix NULL pointer dereference on poll
xsk: silence warning on memory allocation failure
net: dsa: add error handling for pskb_trim_rcsum
ipv6: allow PMTU exceptions to local routes
Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and dma_direct_{alloc,free}()"
ntb: ntb_transport: Replace GFP_ATOMIC with GFP_KERNEL in ntb_transport_create_queue
ntb: ntb_transport: Replace GFP_ATOMIC with GFP_KERNEL in ntb_transport_setup_qp_mw
NTB: ntb_hw_idt: fix typo 'can by' to 'can be'
ntb: intel: change references of skx to gen3
ntb: intel: split out the gen3 code
ntb: intel: header definitions refactor
ia64: disable CONFIG_PERFMON at least for now
IB/mlx4: Fix an error handling path in 'mlx4_ib_rereg_user_mr()'
Input: do not assign new tracking ID when changing tool type
Input: make input_report_slot_state() return boolean
Input: synaptics-rmi4 - fix axis-swap behavior
Input: synaptics-rmi4 - fix the error return code in rmi_probe_interrupts()
RDMA/qedr: Fix NULL pointer dereference when running over iWARP without RDMA-CM
IB/mlx5: Fix return value check in flow_counters_set_data()
IB/mlx5: Fix memory leak in mlx5_ib_create_flow
IB/rxe: avoid double kfree skb
RISC-V: Add CONFIG_HVC_RISCV_SBI=y to defconfig
RISC-V: Handle R_RISCV_32 in modules
riscv/ftrace: Export _mcount when DYNAMIC_FTRACE isn't set
riscv: add riscv-specific predefines to CHECKFLAGS
ixgbe: Fix bit definitions and add support for testing for ipsec support
ixgbe: Avoid loopback and fix boolean logic in ipsec_stop_data
ixgbe: Move ipsec init function to before reset call
ixgbe: Use CONFIG_XFRM_OFFLOAD instead of CONFIG_XFRM
autofs: remove left-over autofs4 stubs
ixgbe: Fix setting of TC configuration for macvlan case
nvmet: free smart-log buffer after use
nvme-rdma: fix error flow during mapping request data
nvme: add bio remapping tracepoint
nvme: fix NULL pointer dereference in nvme_init_subsystem
blk-mq: reinit q->tag_set_list entry only after grace period
btrfs: scrub: Don't use inode pages for device replace
ALSA: emu10k1: add error handling for snd_ctl_add
ALSA: fm801: add error handling for snd_ctl_add
PCI/AER: Use "PCI Express" consistently in Kconfig text
PCI/AER: Hoist aerdrv.c, aer_inject.c up to drivers/pci/pcie/
PCI/AER: Squash Kconfig.debug into Kconfig
PCI/AER: Move private AER things to aerdrv.c
PCI/AER: Move aer_irq() declaration to portdrv.h
PCI/AER: Move pcie_aer_get_firmware_first() to portdrv.h
PCI/AER: Remove duplicate pcie_port_bus_type declaration
PCI/AER: Squash ecrc.c into aerdrv.c
PCI/AER: Squash aerdrv_acpi.c into aerdrv.c
PCI/AER: Squash aerdrv_errprint.c into aerdrv.c
PCI/AER: Squash aerdrv_core.c into aerdrv.c
PCI/AER: Reorder code to group probe/remove stuff together
backlight: as3711_bl: Fix Device Tree node leaks
backlight: tps65217_bl: Fix Device Tree node lookup
backlight: max8925_bl: Fix Device Tree node lookup
backlight: as3711_bl: Fix Device Tree node lookup
MAINTAINERS: Add Paul Burton as MIPS co-maintainer
HID: google: Add support for whiskers
selftests: bpf: fix urandom_read build issue
cpufreq: imx6q: check speed grades for i.MX6ULL
mfd: cros_ec: Remove unused __remove function
mfd: wm97xx-core: Platform data can be NULL
vmsplice(): lift importing iovec into vmsplice(2) and compat counterpart
kconfig: fix localmodconfig
sh: remove no-op macro VMLINUX_SYMBOL()
powerpc/kbuild: move -mprofile-kernel check to Kconfig
Documentation: kconfig: add recommended way to describe compiler support
gcc-plugins: disable GCC_PLUGIN_STRUCTLEAK_BYREF_ALL for COMPILE_TEST
gcc-plugins: allow to enable GCC_PLUGINS for COMPILE_TEST
gcc-plugins: test plugin support in Kconfig and clean up Makefile
gcc-plugins: move GCC version check for PowerPC to Kconfig
kcov: test compiler capability in Kconfig and correct dependency
tcp: limit sk_rcvlowat by the maximum receive buffer
um: Fix raw interface options
um: Fix initialization of vector queues
um: remove uml initcalls
um: Update mailing list address
net: phy: dp83822: use BMCR_ANENABLE instead of BMSR_ANEGCAPABLE for DP83620
socket: close race condition between sock_close() and sockfs_setattr()
ACPICA: Recognize the _OSI string "Windows 2017.2"
signal: Remove no longer required irqsave/restore
rcu: Update documentation of rcu_read_unlock()
NFSv4.1: Fix the client behaviour on NFS4ERR_SEQ_FALSE_RETRY
hpfs: Use EUCLEAN for filesystem errors
riscv: split the declaration of __copy_user
NFSv4: Fix a typo in nfs41_sequence_process
NFSv4: Revert commit 5f83d86cf5 ("NFSv4.x: Fix wraparound issues..")
samples: mbochs: add DMA_SHARED_BUFFER dependency
x86/intel_rdt: Enable CMT and MBM on new Skylake stepping
block: fix use-after-free in block flush handling
net: bridge: Fix locking in br_fdb_find_port()
udp: fix rx queue len reported by diag and proc interface
cdc_ncm: avoid padding beyond end of skb
net/sched: act_simple: fix parsing of TCA_DEF_DATA
net: fddi: fix a possible null-ptr-deref
net: aquantia: fix unsigned numvecs comparison with less than zero
nfsd: fix error handling in nfs4_set_delegation()
nfsd: fix potential use-after-free in nfsd4_decode_getdeviceinfo
NFSv4: Return NFS4ERR_DELAY when a layout recall fails due to igrab()
NFSv4: Return NFS4ERR_DELAY when a delegation recall fails due to igrab()
Fix 16-byte memory leak in gssp_accept_sec_context_upcall
svcrdma: Fix incorrect return value/type in svc_rdma_post_recvs
nvme: cleanup double shift issue
nvme-pci: make CMB SQ mod-param read-only
nvme-pci: unquiesce dead controller queues
nvme-pci: remove HMB teardown on reset
nvme-pci: queue creation fixes
nvme-pci: remove unnecessary completion doorbell check
nvme-pci: remove unnecessary nested locking
nvmet: filter newlines from user input
nvme-rdma: correctly check for target keyed sgl support
nvme: don't hold nvmf_transports_rwsem for more than transport lookups
nvmet: return all zeroed buffer when we can't find an active namespace
bpf: implement dummy fops for bpf objects
xfs: replace do_mod with native operations
xfs: don't call xfs_da_shrink_inode with NULL bp
xfs: clean up MIN/MAX
xfs: move various type verifiers to common file
xfs: xfs_reflink_convert_cow() memory allocation deadlock
xfs: setup VFS i_rwsem lockdep state correctly
perf script: Show hw-cache events
perf c2c: Keep struct hist_entry at the end of struct c2c_hist_entry
vfio: platform: Fix using devices in PM Domains
vfio: use match_string() helper
vfio/mdev: Re-order sysfs attribute creation
vfio/mdev: Check globally for duplicate devices
vfio: platform: Make printed error messages more consistent
vfio: platform: Fix reset module leak in error path
sample: vfio bochs vbe display (host device for bochs-drm)
sample: vfio mdev display - guest driver
sample: vfio mdev display - host device
vfio/type1: Fix task tracking for QEMU vCPU hotplug
fb_omap2: add gpiolib dependency
video/omap: add module license tags
MAINTAINERS: make omapfb orphan
dm: add writecache target
dm: adjust structure members to improve alignment
net: stmmac: fix build failure due to missing COMMON_CLK dependency
md: Unify mddev destruction paths
dm: report which conflicting type caused error during table_load()
PCI/AER: Remove forward declarations
dm: use bioset_init_from_src() to copy bio_set
block: add bioset_init_from_src() helper
PCI: Collect all native drivers under drivers/pci/controller/
arm64: Fix syscall restarting around signal suppressed by tracer
platform/x86: silead_dmi: Add entry for Chuwi Hi8 tablet touchscreen
netfilter: remove include/net/netfilter/nft_dup.h
netfilter: x_tables: initialise match/target check parameter struct
gcov: remove CONFIG_GCOV_FORMAT_AUTODETECT
arm64: move GCC version check for ARCH_SUPPORTS_INT128 to Kconfig
kconfig: add CC_IS_CLANG and CLANG_VERSION
kconfig: add CC_IS_GCC and GCC_VERSION
stack-protector: test compiler capability in Kconfig and drop AUTO mode
kbuild: fix endless syncconfig in case arch Makefile sets CROSS_COMPILE
cpufreq: governors: Fix long idle detection logic in load calculation
cpufreq: intel_pstate: enable boost for Skylake Xeon
soc: renesas: rcar-sysc: Make PM domain initialization more robust
fix proc_fill_cache() in case of d_alloc_parallel() failure
cifs: fix a buffer leak in smb2_query_symlink
scsi: qla2xxx: Mask off Scope bits in retry delay
scsi: qla2xxx: Fix crash on qla2x00_mailbox_command
scsi: aic7xxx: aic79xx: fix potential null pointer dereference on ahd
autofs: small cleanup in autofs_getpath()
autofs: clean up includes
autofs: comment on selinux changes needed for module autoload
autofs: update MAINTAINERS entry for autofs
autofs: use autofs instead of autofs4 in documentation
autofs: rename autofs documentation files
autofs: create autofs Kconfig and Makefile
autofs: delete fs/autofs4 source files
autofs: update fs/autofs4/Makefile
autofs: update fs/autofs4/Kconfig
autofs: copy autofs4 to autofs
autofs4: use autofs instead of autofs4 everywhere
autofs4: merge auto_fs.h and auto_fs4.h
fs/binfmt_misc.c: do not allow offset overflow
checkpatch: improve patch recognition
lib/ucs2_string.c: add MODULE_LICENSE()
lib/mpi: headers cleanup
lib/percpu_ida.c: use _irqsave() instead of local_irq_save() + spin_lock
lib/idr.c: remove simple_ida_lock
lib/bitmap.c: micro-optimization for __bitmap_complement()
get_maintainer: improve patch recognition
kernel/hung_task.c: show all hung tasks before panic
include/linux/types.h: use fixed width types without double-underscore prefix
include/linux/types.h: define aligned_ types based on uapi header
int-ll64.h: define u{8,16,32,64} and s{8,16,32,64} based on uapi header
tools/testing/selftests/proc: test /proc/*/fd a bit (+ PF_KTHREAD is ABI!)
proc: use "unsigned int" for /proc/*/stack
proc: use "unsigned int" for sigqueue length
proc: use "unsigned int" in proc_fill_cache()
proc: smaller RCU section in ->getattr()
proc: deduplicate /proc/*/cmdline implementation
proc: simpler iterations for /proc/*/cmdline
proc: somewhat simpler code for /proc/*/cmdline
proc: more "unsigned int" in /proc/*/cmdline
mm: remove page_is_poisoned() from linux/mm.h
mem_cgroup: make sure moving_account, move_lock_task and stat_cpu in the same cacheline
mm: kvmalloc does not fallback to vmalloc for incompatible gfp flags
include/linux/gfp.h: fix the annotation of GFP_ZONE_TABLE
mm/shmem.c: zero out unused vma fields in shmem_pseudo_vma_init()
mm, page_alloc: do not break __GFP_THISNODE by zonelist reset
userfaultfd: prevent non-cooperative events vs mcopy_atomic races
mm: memcg: allow lowering memory.swap.max below the current usage
mm/shmem.c: use new return type vm_fault_t
slub: remove 'reserved' file from sysfs
slub: remove kmem_cache->reserved
slab,slub: remove rcu_head size checks
mm: add hmm_data to struct page
mm: add pt_mm to struct page
mm: improve struct page documentation
mm: combine LRU and main union in struct page
mm: move lru union within struct page
mm: use page->deferred_list
mm: combine first three unions in struct page
mm: move _refcount out of struct page union
mm: move 'private' union within struct page
mm: switch s_mem and slab_cache in struct page
mm: mark pages in use for page tables
mm: split page_type out from _mapcount
s390: use _refcount for pgtables
mm: save two stranded bits in gfp_mask
mm, hugetlbfs: pass fault address to no page handler
mm: change return type to vm_fault_t
mm: use new return type vm_fault_t
mm/page_alloc.c: remove useless parameter of finalise_ac()
mm/vmpressure.c: convert to use match_string() helper
mm/vmpressure.c: use kstrndup instead of kmalloc+strncpy
memcg: introduce memory.min
mm: move is_pageblock_removable_nolock() to mm/memory_hotplug.c
mm: /proc/pid/pagemap: hide swap entries from unprivileged users
mm/memblock: print memblock_remove
mm: memcontrol: drain memcg stock on force_empty
mm: memcontrol: drain stocks on resize limit
memcg: mark memcg1_events static const
memcg: writeback: use memcg->cgwb_list directly
tmpfs: allow decoding a file handle of an unlinked file
mm/ksm: move [set_]page_stable_node from ksm.h to ksm.c
mm/ksm: remove unused page_referenced_ksm declaration
lockdep: fix fs_reclaim annotation
mm: shmem: make stat.st_blksize return huge page size if THP is on
mm: vmalloc: pass proper vm_start into debugobjects
mm: vmalloc: avoid racy handling of debugobjects in vunmap
mm: vmalloc: clean up vunmap to avoid pgtable ops twice
mm/sparse.c: pass the __highest_present_section_nr + 1 to alloc_func()
mm/sparse.c: check __highest_present_section_nr only for a present section
mm, gup: prevent pmd checking race in follow_pmd_mask()
mm/docs: describe memory.low refinements
mm: treat memory.low value inclusive
mm: memory.low hierarchical behavior
mm: rename page_counter's count/limit into usage/max
mm/memblock: introduce PHYS_ADDR_MAX
mm: remove odd HAVE_PTE_SPECIAL
mm: introduce ARCH_HAS_PTE_SPECIAL
mm/page_alloc: remove realsize in free_area_init_core()
mm: restructure memfd code
mm/shmem: update file sealing comments and file checking
mm/shmem: add __rcu annotations and properly deref radix entry
zram: introduce zram memory tracking
zram: record accessed second
zram: mark incompressible page as ZRAM_HUGE
zram: correct flag name of ZRAM_ACCESS
mm, memcontrol: implement memory.swap.events
mm, memcontrol: move swap charge handling into get_swap_page()
mm: introduce arg_lock to protect arg_start|end and env_start|end in mm_struct
slab: clean up the code comment in slab kmem_cache struct
mm/slub: remove obsolete comment
mm/slub.c: add __printf verification to slab_err()
slab: __GFP_ZERO is incompatible with a constructor
net/9p/trans_xen.c: don't inclide rwlock.h directly
fs/9p: detect invalid options as much as possible
net/9p: detect invalid options as much as possible
fs: ocfs2: use new return type vm_fault_t
ocfs2: drop a VLA in ocfs2_orphan_del()
ocfs2: correct the comments position of struct ocfs2_dir_block_trailer
ocfs2: eliminate a misreported warning
ocfs2: ocfs2_inode_lock_tracker does not distinguish lock level
ocfs2: clean up redundant function declarations
scripts: use SPDX tag in get_maintainer and checkpatch
fs/dax.c: use new return type vm_fault_t
bpfilter: fix race in pipe access
bpf, xdp: fix crash in xdp_umem_unaccount_pages
xsk: Fix umem fill/completion queue mmap on 32-bit
tools/bpf: fix selftest get_cgroup_id_user
bpfilter: fix OUTPUT_FORMAT
umh: fix race condition
net: mscc: ocelot: Fix uninitialized error in ocelot_netdevice_event()
bonding: re-evaluate force_primary when the primary slave name changes
ip_tunnel: Fix name string concatenate in __ip_tunnel_create()
hv_netvsc: Fix a network regression after ifdown/ifup
x86/mce: Check for alternate indication of machine check recovery on Skylake
x86/mce: Improve error message when kernel cannot recover
net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds vlan
netfilter: nf_tables: add NFT_LOGLEVEL_* enumeration and use it
kselftest/cgroup: fix a signedness bug
selftests/ftrace: Add ppc support for kprobe args tests
bpf: reject passing modified ctx to helper functions
perf stat: Add event parsing error handling to add_default_attributes
perf stat: Allow to specify specific metric column len
perf stat: Fix metric column header display alignment
perf stat: Use only color_fprintf call in print_metric_only
perf stat: Add --interval-clear option
perf tools: Fix error index for pmu event parser
rtc: pxa: fix probe function
rtc: cros-ec: Switch to SPDX identifier.
rtc: cros-ec: Make license text and module license match.
rtc: ensure rtc_set_alarm fails when alarms are not supported
rtc: test: remove alarm support from the first device
rtc: test: convert to devm_rtc_allocate_device
rtc: ftrtc010: let the core handle range
rtc: ftrtc010: handle dates after 2106
rtc: ftrtc010: switch to devm_rtc_allocate_device
virtio_ring: switch to dma_XX barriers for rpmsg
perf hists: Reimplement hists__has_callchains()
perf hists browser gtk: Use hist_entry__has_callchains()
perf hists: Make hist_entry__has_callchains() work with 'perf c2c'
perf hists: Save the callchain_size in struct hist_entry
arm64: topology: Avoid checking numa mask for scheduler MC selection
btrfs: change return type of btrfs_page_mkwrite to vm_fault_t
riscv: no __user for probe_kernel_address()
riscv: use NULL instead of a plain 0
mtd: ubi: Update ubi-media.h to dual license
ubi: fastmap: Detect EBA mismatches on-the-fly
ubi: fastmap: Check each mapping only once
ubi: fastmap: Correctly handle interrupted erasures in EBA
ubi: fastmap: Cancel work upon detach
ubifs: lpt: Fix wrong pnode number range in comment
ubifs: gc: Fix typo
ubifs: log: Some spelling fixes
ubifs: Spelling fix someting -> something
ubifs: journal: Remove wrong comment
ubifs: remove set but never used variable
ubifs, xattr: remove misguided quota flags
fs: ubifs: Adding new return type vm_fault_t
smb3: do not allow insecure cifs mounts when using smb3
CIFS: Fix NULL ptr deref
regulator: gpio: Revert
block: always set partition number to '0' in blk_partition_remap()
Btrfs: fiemap: pass correct bytenr when fm_extent_count is zero
netfilter: nf_conntrack: Increase __IPS_MAX_BIT with new bit IPS_OFFLOAD_BIT
watchdog: da9063: remove duplicated timeout_to_sel calls
watchdog: da9063: rename helper function to avoid misunderstandings
apparmor: fix ptrace read check
apparmor: fix memory leak when deduping profile load
apparmor: fix mediation of prlimit
apparmor: fixup secid map conversion to using IDR
apparmor: Use an IDR to allocate apparmor secids
apparmor: Fix memory leak of rule on error exit path
apparmor: modify audit rule support to support profile stacks
apparmor: Add support for audit rule filtering
apparmor: update git and wiki locations in AppArmor docs
apparmor: Convert to use match_string() helper
apparmor: improve get_buffers macro by using get_cpu_ptr
drm/i915/icl: Don't update enabled dbuf slices struct until updated in hw
drm/i915/icl: fix icl_unmap/map_plls_to_ports
drm/i915: Remove bogus NV12 PLANE_COLOR_CTL setup
CIFS: fix encryption in SMB3.1.1
xfs: fix string handling in label get/set functions
xfs: convert to SPDX license tags
perf script python: Add dict fields introduction to Documentation
perf script python: Add more PMU fields to event handler dict
media: omap2: fix compile-testing with FB_OMAP2=m
treewide: Use struct_size() for devm_kmalloc() and friends
treewide: Use struct_size() for vmalloc()-family
treewide: Use struct_size() for kmalloc()-family
strparser: Add __strp_unpause and use it in ktls.
rxrpc: Fix terminal retransmission connection ID to include the channel
net: hns3: Optimize PF CMDQ interrupt switching process
net: hns3: Fix for VF mailbox receiving unknown message
net: hns3: Fix for VF mailbox cannot receiving PF response
dax: Use dax_write_cache* helpers
libnvdimm, pmem: Do not flush power-fail protected CPU caches
bnx2x: use the right constant
libnvdimm, pmem: Unconditionally deep flush on *sync
Revert "net: sched: cls: Fix offloading when ingress dev is vxlan"
net: dsa: b53: Fix for brcm tag issue in Cygnus SoC
libnvdimm, pmem: Complete REQ_FLUSH => REQ_PREFLUSH
netfilter: nft_set_rbtree: fix parameter of __nft_rbtree_lookup()
mailbox/drivers/hisi: Consolidate the Kconfig for the MAILBOX
mailbox: Add support for Qualcomm SDM845 SoCs
dt-bindings: mailbox: Add APSS shared binding for SDM845 SoCs
mailbox: bcm2835: Fix of_xlate return value
mailbox: qcom: Add msm8998 hmss compatible
mailbox: add STMicroelectronics STM32 IPCC driver
dt-bindings: mailbox: add STMicroelectronics STM32 IPCC binding
mailbox: Remove depends on HAS_DMA in case of platform dependency
perf script python: Move dsoname code to a new function
perf symbols: Add BSS symbols when reading from /proc/kallsyms
perf annnotate: Make __symbol__inc_addr_samples handle src->histograms == NULL
perf intel-pt: Fix "Unexpected indirect branch" error
perf intel-pt: Fix MTC timing after overflow
perf intel-pt: Fix decoding to accept CBR between FUP and corresponding TIP
perf intel-pt: Fix sync_switch INTEL_PT_SS_NOT_TRACING
perf script powerpc: Python script for hypervisor call statistics
perf test record+probe_libc_inet_pton: Ask 'nm' for dynamic symbols
perf map: Consider PTI entry trampolines in rip_2objdump()
perf test code-reading: Fix perf_env setup for PTI entry trampolines
perf tools: Fix pmu events parsing rule
perf stat: Display user and system time
perf record: Enable arbitrary event names thru name= modifier
perf tools: Fix symbol and object code resolution for vdso32 and vdsox32
perf tests kmod-path: Add tests for vdso32 and vdsox32
perf hists: Check if a hist_entry has callchains before using them
perf hists: Introduce hist_entry__has_callchain() method
NFSv4.0: Remove transport protocol name from non-UCS client ID
NFSv4.0: Remove cl_ipaddr from non-UCS client ID
xfs: validate btree records on retrieval
xfs: push corruption -> ESTALE conversion to xfs_nfs_get_inode()
xfs: verify root inode more thoroughly
xfs: verify COW extent size hint is valid in inode verifier
xfs: verify extent size hint is valid in inode verifier
xfs: catch bad stripe alignment configurations
block: pass failfast and driver-specific flags to flush requests
x86/apic/vector: Print APIC control bits in debugfs
genirq/affinity: Defer affinity setting if irq chip is busy
x86/platform/uv: Use apic_ack_irq()
x86/ioapic: Use apic_ack_irq()
irq_remapping: Use apic_ack_irq()
x86/apic: Provide apic_ack_irq()
genirq/migration: Avoid out of line call if pending is not set
genirq/generic_pending: Do not lose pending affinity update
x86/apic/vector: Prevent hlist corruption and leaks
enic: fix UDP rss bits
netfilter: ebtables: reject non-bridge targets
objtool: Fix GCC 8 cold subfunction detection for aliased functions
x86/bugs: Switch the selection of mitigation from CPU vendor to CPU features
x86/bugs: Add AMD's SPEC_CTRL MSR usage
x86/bugs: Add AMD's variant of SSB_NO
netfilter: ipset: forbid family for hash:mac sets
netfilter: ipset: Limit max timeout value
netfilter: ipset: List timing out entries with "timeout 1" instead of zero
netfilter: xt_set: Check hook mask correctly
x86/vector: Fix the args of vector_alloc tracepoint
x86/idt: Simplify the idt_setup_apic_and_irq_gates()
x86/platform/uv: Remove extra parentheses
x86/mm: Decouple dynamic __PHYSICAL_MASK from AMD SME
x86: Mark native_set_p4d() as __always_inline
irqchip/ls-scfg-msi: Map MSIs in the iommu
irqchip/stm32: Fix non-SMP build warning
rseq/selftests: Provide Makefile, scripts, gitignore
rseq/selftests: Provide parametrized tests
rseq/selftests: Provide basic percpu ops test
rseq/selftests: Provide basic test
rseq/selftests: Provide rseq library
selftests/lib.mk: Introduce OVERRIDE_TARGETS
powerpc: Wire up restartable sequences system call
powerpc: Add syscall detection for restartable sequences
powerpc: Add support for restartable sequences
x86: Wire up restartable sequence system call
x86: Add support for restartable sequences
arm: Wire up restartable sequences system call
arm: Add syscall detection for restartable sequences
arm: Add restartable sequences support
rseq: Introduce restartable sequences system call
uapi/headers: Provide types_32_64.h
powerpc/64s/radix: Fix missing ptesync in flush_cache_vmap
watchdog: da9062: remove unused code
watchdog: da9063: Fix timeout handling during probe
watchdog: da9063: Fix updating timeout value
watchdog: da9063: Fix setting/changing timeout
pwm: stm32: Fix build warning with CONFIG_DMA_ENGINE disabled
pwm: stm32: Enforce dependency on CONFIG_MFD_STM32_TIMERS
ACPI / LPSS: Add missing prv_offset setting for byt/cht PWM devices
pwm: lpss: platform: Save/restore the ctrl register over a suspend/resume
PM / wakeup: Export wakeup_count instead of event_count via sysfs
PM / Domains: Add dev_pm_domain_attach_by_id() to manage multi PM domains
PM / Domains: Add support for multi PM domains per device to genpd
PM / Domains: Split genpd_dev_pm_attach()
PM / Domains: Don't attach devices in genpd with multi PM domains
PM / Domains: dt: Allow power-domain property to be a list of specifiers
ACPICA: Update version to 20180531
ACPICA: Interpreter: Begin deprecation of Unload operator
ACPICA: AML parser: attempt to continue loading table after error
ACPICA: Debugger: Reduce verbosity for module-level code errors.
ACPICA: AML Parser: Add debug option to dump parse trees
ACPICA: Debugger: Add count of namespace nodes after namespace dump
ACPICA: IORT: Add PMCG node supprt
ACPICA: IORT: Update for revision D
ACPI / Documentation: update ACPI customize method feature docs
cpufreq: intel_pstate: New sysfs entry to control HWP boost
cpufreq: intel_pstate: HWP boost performance on IO wakeup
cpufreq: intel_pstate: Add HWP boost utility and sched util hooks
cpufreq: ti-cpufreq: Use devres managed API in probe()
cpufreq: ti-cpufreq: Fix an incorrect error return value
cpufreq: ACPI: make function acpi_cpufreq_fast_switch() static
cpufreq: kryo: allow building as a loadable module
scsi: mpt3sas: Add an I/O barrier
scsi: qla2xxx: Fix setting lower transfer speed if GPSC fails
scsi: hpsa: disable device during shutdown
scsi: sd_zbc: Fix sd_zbc_check_zone_size() error path
scsi: aacraid: remove bogus GFP_DMA32 specifies
vfs: change inode times to use struct timespec64
pstore: Convert internal records to timespec64
CIFS: Pass page offset for encrypting
CIFS: Pass page offset for calculating signature
CIFS: SMBD: Support page offset in memory registration
CIFS: SMBD: Support page offset in RDMA recv
CIFS: SMBD: Support page offset in RDMA send
CIFS: When sending data on socket, pass the correct page offset
CIFS: Introduce helper function to get page offset and length in smb_rqst
CIFS: Calculate the correct request length based on page offset and tail size
dt-bindings: submitting-patches: add guidance on patch content and subject
PCI/AER: Replace struct pcie_device with pci_dev
PCI/AER: Remove unused parameters
ide: don't enable/disable interrupts in force threaded-IRQ mode
ide: don't disable interrupts during kmap_atomic()
ide: Handle irq disabling consistently
alim15x3: move irq-restore before pci_dev_put()
tracing: Use match_string() instead of open coding it in trace_set_options()
RDMA/mlx5: Update SPDX tags to show proper license
RDMA/restrack: Change SPDX tag to properly reflect license
device: Use overflow helpers for devm_kmalloc()
mm: Use overflow helpers in kvmalloc()
mm: Use overflow helpers in kmalloc_array*()
test_overflow: Add memory allocation overflow tests
overflow.h: Add allocation size calculation helpers
test_overflow: Report test failures
test_overflow: macrofy some more, do more tests for free
lib: add runtime test of check_*_overflow functions
Smack: Fix memory leak in smack_inode_getsecctx
rtc: mrst: switch to devm functions
sparc: fix compat siginfo ABI regression
selftests: sparc64: char: Selftest for privileged ADI driver
char: sparc64: Add privileged ADI driver
netdev-FAQ: clarify DaveM's position for stable backports
Input: synaptics-rmi4 - convert irq distribution to irq_domain
Input: silead - add MSSL0002 ACPI HID
staging: ipx: delete it from the tree
ncpfs: remove uapi .h files
ncpfs: remove Documentation
ncpfs: remove compat functionality
staging: ncpfs: delete it
staging: lustre: delete the filesystem from the tree.
ACPI / PPTT: fix build when CONFIG_ACPI_PPTT is not enabled
iomap: fsync swap files before iterating mappings
rtnetlink: validate attributes in do_setlink()
mlxsw: Add extack messages for port_{un, }split failures
netdevsim: Add extack error message for devlink reload
devlink: Add extack to reload and port_{un, }split operations
net: metrics: add proper netlink validation
ipmr: fix error path when ipmr_new_table fails
ip6mr: only set ip6mr_table from setsockopt when ip6mr_new_table succeeds
net: hns3: remove unused hclgevf_cfg_func_mta_filter
MAINTAINERS: add Josh Poimboeuf as faddr2line maintainer
scripts/faddr2line: make the new code listing format optional
arm64: cpu_errata: include required headers
nbd: set discard_alignment to the granularity
nbd: Consistently use request pointer in debug messages.
jfs: Fix inconsistency between memory allocation and ea_buf->max_size
block: add verifier for cmdline partition
lightnvm: pblk: fix resource leak of invalid_bitmap
lightnvm: pblk: make symbol write_buffer_size static
loop: add recursion validation to LOOP_CHANGE_FD
netfilter: provide udp*_lib_lookup for nf_tproxy
qed*: Utilize FW 8.37.2.0
dm: Use kzalloc for all structs with embedded biosets/mempools
net-tcp: remove useless tw_timeout field
NFSv4: Fix a compiler warning when CONFIG_NFS_V4_1 is undefined
net: sched: cls: Fix offloading when ingress dev is vxlan
sctp: not allow transport timeout value less than HZ/5 for hb_timer
bpfilter: switch to CC from HOSTCC
net/mlx5e: fix error return code in mlx5e_alloc_rq()
net/mlx5e: Make function mlx5e_change_rep_mtu() static
net: qualcomm: rmnet: Fix use after free while sending command ack
net: ipv6: Generate random IID for addresses on RAWIP devices
btrfs: Check error of btrfs_iget in btrfs_search_path_in_tree_user
tcp: refactor tcp_ecn_check_ce to remove sk type cast
net/ipv6: prevent use after free in ip6_route_mpath_notify
media: media/radio/Kconfig: add back RADIO_ISA
media: v4l2-ioctl.c: fix missing unlock in __video_do_ioctl()
media: pxa_camera: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power
media: arch: sh: migor: Fix TW9910 PDN gpio
media: staging: tegra-vde: Reset VDE regardless of memory client resetting failure
samples/bpf: xdpsock: use skb Tx path for XDP_SKB
media: marvel-ccic: mmp: select VIDEOBUF2_VMALLOC/DMA_CONTIG
xsk: wire upp Tx zero-copy functions
net: added netdevice operation for Tx
xsk: add zero-copy support for Rx
media: marvel-ccic: allow ccic and mmp drivers to coexist
xdp: add MEM_TYPE_ZERO_COPY
net: xdp: added bpf_netdev_command XDP_{QUERY, SETUP}_XSK_UMEM
xsk: introduce xdp_umem_page
xsk: moved struct xdp_umem definition
net: phy: broadcom: Enable 125 MHz clock on LED4 pin for BCM54612E by default.
l2tp: fix refcount leakage on PPPoL2TP sockets
media: uvcvideo: Prevent setting unavailable flags
perf sched: Use sched->show_callchain where appropriate
perf script: Check if evsel has callchains before trying to use it
perf evsel: Add has_callchain() helper to make code more compact/clear
kconfig: Avoid format overflow warning from GCC 8.1
kbuild: Move last word of nconfig help to the previous line
kconfig: Add testconfig into make help output
net: phy: remove PM ops from MDIO bus
net: phy: add struct device_type representation of a PHY
cpuidle: powernv: Fix promotion from snooze if next state disabled
net: remove net_device operation ndo_xdp_flush
tun: remove ndo_xdp_flush call tun_xdp_flush
virtio_net: remove ndo_xdp_flush call virtnet_xdp_flush
ixgbe: remove ndo_xdp_flush call ixgbe_xdp_flush
i40e: remove ndo_xdp_flush call i40e_xdp_flush
printk: drop in_nmi check from printk_safe_flush_on_panic()
powerpc: fix build failure by disabling attribute-alias warning in pci_32
ocxl: Fix missing unlock on error in afu_ioctl_enable_p9_wait()
bpf, arm32: fix inconsistent naming about emit_a32_lsr_{r64,i64}
bpf, arm32: correct check_imm24
lib/vsprintf: Remove atomic-unsafe support for %pCr
serial: sh-sci: Stop using printk format %pCr
thermal: bcm2835: Stop using printk format %pCr
clk: renesas: cpg-mssr: Stop using printk format %pCr
powerpc-opal: fix spelling mistake "Uniterrupted" -> "Uninterrupted"
powerpc: fix spelling mistake: "Usupported" -> "Unsupported"
xfs: use xfs_trans_getsb in xfs_sync_sb_buf
xfs: don't assert on corrupted unlinked inode list
xfs: explicitly pass buffer size to xfs_corruption_error
xfs: don't assert when on-disk btree pointers are garbage
xfs: strengthen btree pointer checks before use
xfs: introduce xfs_btree_debug_check_ptr
xfs: check directory bestfree information in the verifier
powerpc/pkeys: Detach execute_only key on !PROT_EXEC
cifs: For SMB2 security informaion query, check for minimum sized security descriptor instead of sizeof FileAllInformation class
CIFS: Fix signing for SMB2/3
xfs: don't return garbage buffers in xfs_da3_node_read
xfs: don't ASSERT on short form btree root pointer of zero
xfs: btree lookup shouldn't ASSERT on empty btree nodes
xfs: xfs_alloc_get_rec should return EFSCORRUPTED for obvious bnobt corruption
xfs: remove redundant ASSERT on insufficient bestfree length in _leaf_addname
xfs: don't assert when reporting on-disk corruption while loading btree
xfs: don't forbid setting dax flag on directories if device doesn't dax
f2fs: fix to clear FI_VOLATILE_FILE correctly
f2fs: let sync node IO interrupt async one
net: hns: Fix the process of adding broadcast addresses to tcam
f2fs: don't change wbc->sync_mode
net: sched: return error code when tcf proto is not found
f2fs: fix to update mtime correctly
team: use netdev_features_t instead of u32
net_failover: Use netdev_features_t instead of u32
IB/hfi1: Fix comment on default hdr entry size
qed: use dma_zalloc_coherent instead of allocator/memset
branch-check: fix long->int truncation when profiling branches
ring-buffer: Fix typo in comment
ring-buffer: Fix a bunch of typos in comments
tracing/selftest: Add test to test simple snapshot trigger for trace_marker
wan/fsl_ucc_hdlc: use dma_zalloc_coherent instead of allocator/memset
IB/hfi1: Rename exp_lock to exp_mutex
docs: networking: fix minor typos in various documentation files
net: do not allow changing SO_REUSEADDR/SO_REUSEPORT on bound sockets
net-tcp: extend tcp_tw_reuse sysctl to enable loopback only optimization
qed: Add srq core support for RoCE and iWARP
net: ethernet: bnx2: Replace NULL comparison
net: ethernet: bnx2: Remove extra parentheses
net: gemini: fix spelling mistake: "it" -> "is"
cls_flower: Fix comparing of old filter mask with new filter
cls_flower: Fix missing free of rhashtable
perf: riscv: Add Document for Future Porting Guide
net: skbuff.h: drop unneeded <linux/slab.h>
perf: riscv: preliminary RISC-V support
IB/hfi1: Add bypass register defines and replace blind constants
IB/hfi1: Remove unused variable
MAINTAINERS: Update Albert's email, he's back at Berkeley
MAINTAINERS: Add myself as a maintainer for SiFive's drivers
Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
Input: goldfish_events - fix checkpatch warnings
Input: add Spreadtrum vibrator driver
riscv: Fix the bug in memory access fixup code
Input: goodix - add new ACPI id for GPD Win 2 touch screen
Input: xpad - add GPD Win 2 Controller USB IDs
net: chelsio: Use zeroing memory allocator instead of allocator/memset
rxrpc: Fix handling of call quietly cancelled out on server
Allow ethtool to change tun link settings
bpf: guard bpf_get_current_cgroup_id() with CONFIG_CGROUPS
rpmsg: smd: do not use mananged resources for endpoints and channels
IB/hfi1: Ensure VL index is within bounds
IB/hfi1: Fix user context tail allocation for DMA_RTAIL
sh_eth: use DIV_ROUND_UP() in sh_eth_soft_swap()
sh_eth: uninline sh_eth_soft_swap()
sh_eth: make sh_eth_soft_swap() work on ARM
NFS: Filter cache invalidation when holding a delegation
NFS: Ignore NFS_INO_REVAL_FORCED in nfs_check_inode_attributes()
NFS: Improve caching while holding a delegation
NFS: Fix attribute revalidation
NFS: fix up nfs_setattr_update_inode
NFSv4: Ensure the inode is clean when we set a delegation
NFSv4: Ignore NFS_INO_REVAL_FORCED in nfs4_proc_access
swait: strengthen language to discourage use
rbd: flush rbd_dev->watch_dwork after watch is unregistered
ceph: update description of some mount options
ceph: show ino32 if the value is different with default
ceph: strengthen rsize/wsize/readdir_max_bytes validation
ceph: fix alignment of rasize
ceph: fix use-after-free in ceph_statfs()
ceph: prevent i_version from going back
ceph: fix wrong check for the case of updating link count
libceph: allocate the locator string with GFP_NOFAIL
libceph: make abort_on_full a per-osdc setting
libceph: don't abort reads in ceph_osdc_abort_on_full()
libceph: avoid a use-after-free during map check
libceph: don't warn if req->r_abort_on_full is set
libceph: use for_each_request() in ceph_osdc_abort_on_full()
libceph: defer __complete_request() to a workqueue
libceph: move more code into __complete_request()
libceph: no need to call flush_workqueue() before destruction
ceph: flush pending works before shutdown super
ceph: abort osd requests on force umount
libceph: introduce ceph_osdc_abort_requests()
ceph: fix st_nlink stat for directories
ceph: support file lock on directory
ceph: show wsize only if non-default
ceph: handle the new nfiles/nsubdirs fields in cap message
ceph: define argument structure for handle_cap_grant
ceph: update i_files/i_subdirs only when Fs cap is issued
ceph: always get rstat from auth mds
ceph: use bit flags to define vxattr attributes
libceph: use MSG_TRUNC for discarding received bytes
libceph: get rid of more_kvec in try_write()
libceph, rbd: add error handling for osd_req_op_cls_init()
fs: aio ioprio use ioprio_check_cap ret val
fs: aio ioprio add explicit block layer dependence
blk-mq: return when hctx is stopped in blk_mq_run_work_fn
PCI: qcom: Include gpio/consumer.h
ixgbe: fix broken ipsec Rx with proper cast on spi
ixgbe: check ipsec ip addr against mgmt filters
mlxsw: spectrum_span: Suppress VLAN on BRIDGE_VLAN_INFO_UNTAGGED
mlxsw: spectrum_switchdev: Postpone respin on object deletion
ixgbe: fix possible race in reset subtask
bpf, i40e: add meta data support
ipv6: omit traffic class when calculating flow hash
ixgbe: introduce a helper to simplify code
Revert "ipv6: omit traffic class when calculating flow hash"
ixgbevf: fix possible race in the reset subtask
ipv6: omit traffic class when calculating flow hash
ixgbevf: Fix coexistence of malicious driver detection with XDP
igb: Wait 10ms just once after TX queues reset
PCI: Improve "partially hidden behind bridge" log message
PCI: Improve pci_scan_bridge() and pci_scan_bridge_extend() doc
PCI: Move resource distribution for single bridge outside loop
PCI: Account for all bridges on bus when distributing bus numbers
ACPI / hotplug / PCI: Drop unnecessary parentheses
ACPI / hotplug / PCI: Mark stale PCI devices disconnected
ACPI / hotplug / PCI: Don't scan bridges managed by native hotplug
PCI: hotplug: Add hotplug_is_native()
PCI: shpchp: Add shpchp_is_native()
PCI: shpchp: Fix AMD POGO identification
PCI: mobiveil: Add MSI support
PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver
igb: Clear TSICR interrupts together with ICR
netfilter: ebtables: fix compat entry padding
Documentation: e1000: Update kernel documentation
drm/msm: Fix NULL deref on bind/probe deferral
drm/msm: Switch to atomic_helper_commit()
drm/msm: Remove msm_commit/worker, use atomic helper commit
drm/msm: Issue queued events when disabling crtc
drm/msm: Move implicit sync handling to prepare_fb
drm/msm: Refactor complete_commit() to look more the helpers
IB/hns: Use zeroing memory allocator instead of allocator/memset
Documentation: e100: Update the Intel 10/100 driver doc
e1000e: Ignore TSYNCRXCTL when getting I219 clock attributes
ipvs: fix check on xmit to non-local addresses
netfilter: nft_reject_bridge: fix skb allocation size in nft_reject_br_send_v6_unreach
NFSv4: Don't ask for delegated attributes when adding a hard link
NFSv4: Don't ask for delegated attributes when revalidating the inode
NFS: Pass the inode down to the getattr() callback
NFSv4: Don't request size+change attribute if they are delegated to us
kvm: nVMX: Add support for "VMWRITE to any supported field"
kvm: nVMX: Restrict VMX capability MSR changes
KVM: VMX: Optimize tscdeadline timer latency
of: platform: stop accessing invalid dev in of_platform_device_destroy
infiniband: fix a possible use-after-free bug
net: mvpp2: mvpp2_percpu_read_relaxed() can be static
iw_cxgb4: add INFINIBAND_ADDR_TRANS dependency
net/packet: refine check for priv area size
dt-bindings: net: ravb: Add support for r8a77990 SoC
net: aquantia: make function aq_fw2x_get_mac_permanent static
samples/bpf: minor *_nb_free performance fix
samples/bpf: adapted to new uapi
xsk: new descriptor addressing scheme
xsk: proper Rx drop statistics update
xsk: proper fill queue descriptor validation
IB/isert: use T10-PI check mask definitions from core layer
IB/iser: use T10-PI check mask definitions from core layer
RDMA/core: introduce check masks for T10-PI offload
IB/isert: fix T10-pi check mask setting
MAINTAINERS: Add Andreas Gruenbacher as a maintainer for gfs2
MAINTAINERS: TCP gets its first maintainer
vrf: check the original netdevice for generating redirect
net: ethernet: mlx4: Remove unnecessary parentheses
net: stmmac: Add Flexible PPS support
qed: Fix use of incorrect shmem address.
qed: Fix shared memory inconsistency between driver and the MFW.
selftests: forwarding: mirror_vlan: Change test description
selftests: forwarding: mirror_vlan: Uninstall trap
ASoC: dapm: delete dapm_kcontrol_data paths list before freeing it
selftests/net: add packet socket packet_snd test
selftests/net: udpgso: test small gso_size boundary conditions
selftests/net: enable msg_zerocopy test
net: virtio: simplify the virtnet_find_vqs
perf report: No need to have report_callchain_help as a global
perf test: Use header file util/debug.h
perf annotate: Move objdump_path to struct annotation_options
perf hists browser: Pass annotation_options from tool to browser
perf annotate: Move disassembler_style global to annotation_options
perf annotate: Adopt anotation options from symbol_conf
perf annotate: Pass annotation_options to symbol__annotate()
perf srcline: Make hist_entry srcline helper consistent with map's
perf sort: Introduce addr_map_symbol__srcline() to make code more compact
perf srcline: Introduce map__srcline() to make code more compact
perf annotate stdio: Use annotation_options consistently
perf annotate: Add comment about annotated_src->nr_histograms
perf tools: Ditch the symbol_conf.nr_events global
perf annotate: Replace symbol__alloc_hists() with symbol__hists()
perf annotate: Stop using symbol_conf.nr_events global in symbol__hists()
perf annotate: Introduce symbol__cycle_hists()
perf annotate: Introduce symbol__hists()
perf annotate: __symbol__inc_addr_samples() needs just annotated_source
perf annotate: Introduce annotated_source__alloc_histograms
perf annotate: Introduce constructor/destructor for annotated_source
perf annotate: Split allocation of annotated_source struct
perf annotate: __symbol__acount_cycles doesn't need notes
perf annotate: Pass perf_evsel instead of just evsel->idx
perf tools: No need to check if the argument to __get() function is NULL
perf cgroup: Make evlist__find_cgroup() more compact
perf probe: Use return of map__get() to make code more compact
perf tools: Remove dead quote.[ch] code
powerpc/powernv: copy/paste - Mask SO bit in CR
gfs2: Iomap cleanups and improvements
gfs2: Remove ordered write mode handling from gfs2_trans_add_data
gfs2: gfs2_stuffed_write_end cleanup
gfs2: hole_size improvement
rtc: sunxi: fix possible race condition
GFS2: gfs2_free_extlen can return an extent that is too long
GFS2: Fix allocation error bug with recursive rgrp glocking
gfs2: Update find_metapath comment
ALSA: usb-audio: remove redundant check on err
platform/x86: dell-laptop: Fix keyboard backlight timeout on XPS 13 9370
platform/x86: dell-wmi: Ignore new rfkill and fn-lock events
mmc: renesas_sdhi: really fix WP logic regressions
xen/PVH: Make GDT selectors PVH-specific
xen/PVH: Set up GS segment for stack canary
mfd: cros_ec_dev: Don't advertise junk features on failure
mfd: cros_ec: Use devm_kzalloc for private data
mfd: intel-lpss: Fix Intel Cannon Lake LPSS I2C input clock
mfd: asic3: Fix broken MMC card detection
mfd: timberdale: Fix spelling mistake "Uknown" -> "Unknown"
mfd: omap-usb-host: Use match_string() helper
drm/qxl: Call qxl_bo_unref outside atomic context
pinctrl: cherryview: limit Strago DMI workarounds to version 1.0
mfd: stm32-timers: Fix pwm-stm32 linker issue with COMPILE_TEST
pwm: stm32: Initialize raw local variables
mfd: arizona: Update DT doc to support more standard Reset binding
dt-bindings: mfd: Add bindings for DA9063L
mfd: intel-lpss: Correct names of RESETS register bits
mfd: qcom-spmi-pmic: Add support for pm8005, pm8998 and pmi8998
bpf: flowlabel in bpf_fib_lookup should be flowinfo
tools/bpf: add a selftest for bpf_get_current_cgroup_id() helper
tools/bpf: sync uapi bpf.h for bpf_get_current_cgroup_id() helper
bpf: implement bpf_get_current_cgroup_id() helper
rpmsg: char: Switch to SPDX license identifier
rpmsg: glink: Switch to SPDX license identifier
rpmsg: smd: Switch to SPDX license identifier
rpmsg: virtio_rpmsg_bus: Switch to SPDX license identifier
rpmsg: Switch to SPDX license identifier
xfs: verify AGI unlinked list contains valid blocks
Linux 4.17
drm/msm: Don't subclass drm_atomic_state anymore
drm/msm/mdp5: Use the new private_obj state
drm/msm/mdp5: Add global state as a private atomic object
drm/msm: use correct aspace pointer in msm_gem_put_iova()
drm/msm: remove unbalanced mutex unlock
drm/msm: don't deref error pointer in the msm_fbdev_create error path
drm/msm/dsi: use correct enum in dsi_get_cmd_fmt
drm/msm: Fix possible null dereference on failure of get_pages()
drm/msm: Add modifier to mdp_get_format arguments
drm/msm: Mark the crtc->state->event consumed
drm/msm/dsi: implement auto PHY timing calculator for 10nm PHY
drm/msm/dsi: check video mode engine status before waiting
drm/msm/dsi: check return value for video done waits
acpi, nfit: Remove ecc_unit_size
Revert "fs: fold open_check_o_direct into do_dentry_open"
bpf/xdp: devmap can avoid calling ndo_xdp_flush
bpf/xdp: non-map redirect can avoid calling ndo_xdp_flush
xdp: done implementing ndo_xdp_xmit flush flag for all drivers
virtio_net: implement flush flag for ndo_xdp_xmit
tun: implement flush flag for ndo_xdp_xmit
ixgbe: implement flush flag for ndo_xdp_xmit
i40e: implement flush flag for ndo_xdp_xmit
xdp: add flags argument to ndo_xdp_xmit API
mlx4_core: restore optimal ICM memory allocation
vlan: use non-archaic spelling of failes
net: axienet: remove stale comment of axienet_open
bpf, doc: add missing patchwork url and libbpf to maintainers
bpf: sync bpf uapi header with tools
bpf: fix context access in tracing progs on 32 bit archs
bpf: fix cbpf parser bug for octal numbers
bpf: make sure to clear unused fields in tunnel/xfrm state fetch
bpf: add bpf_skb_cgroup_id helper
bpf: avoid retpoline for lookup/update/delete calls on maps
net/ncsi: Avoid GFP_KERNEL in response handler
bpf: show prog and map id in fdinfo
bpf: fixup error message from gpl helpers on license mismatch
bpf: add also cbpf long jump test cases with heavy expansion
bpf: test case for map pointer poison with calls/branches
net: netcp: ethss: remove unnecessary pointer set to NULL
powerpc: Remove core support for Marvell mv64x60 hostbridges
powerpc/boot: Remove core support for Marvell mv64x60 hostbridges
powerpc/boot: Remove support for Marvell mv64x60 i2c controller
powerpc/boot: Remove support for Marvell MPSC serial controller
powerpc/embedded6xx: Remove C2K board support
powerpc/lib: optimise PPC32 memcmp
powerpc/lib: optimise 32 bits __clear_user()
powerpc/time: inline arch_vtime_task_switch()
powerpc/Makefile: set -mcpu=860 flag for the 8xx
powerpc: Implement csum_ipv6_magic in assembly
powerpc/32: Optimise __csum_partial()
powerpc/lib: Adjust .balign inside string functions for PPC32
powerpc/signal32: Use fault_in_pages_readable() to prefault user context
powerpc/8xx: Remove RTC clock on 88x
powerpc/boot: remove unused variable in mpc8xx
powerpc/misc: merge reloc_offset() and add_reloc_offset()
powerpc/64: optimises from64to32()
powerpc/mm: Remove stale_map[] handling on non SMP processors
powerpc/mm: constify LAST_CONTEXT in mmu_context_nohash
powerpc/mm: Avoid unnecessary test and reduce code size
powerpc/mm: constify FIRST_CONTEXT in mmu_context_nohash
powerpc/dma: remove unnecessary BUG()
powerpc/sstep: Fix emulate_step test if VSX not present
powerpc/sstep: Fix kernel crash if VSX is not present
net/smc: fix error return code in smc_setsockopt()
net/mlx5: Make function mlx5_fpga_tls_send_teardown_cmd() static
hv_netvsc: fix error return code in netvsc_probe()
net: phy: consider PHY_IGNORE_INTERRUPT in state machine PHY_NOLINK handling
powerpc/sstep: Introduce GETTYPE macro
selftests/powerpc: Add perf breakpoint test
powerpc/64s: Enhance the information in cpu_show_spectre_v1()
powerpc/64: Use barrier_nospec in syscall entry
powerpc: Use barrier_nospec in copy_from_user()
powerpc/64s: Enable barrier_nospec based on firmware settings
powerpc/64s: Patch barrier_nospec in modules
powerpc/64s: Add support for ori barrier_nospec patching
powerpc/64s: Add barrier_nospec
powerpc/stacktrace: Update copyright
powerpc/64s: Wire up arch_trigger_cpumask_backtrace()
powerpc/nmi: Add an API for sending "safe" NMIs
powerpc/64: Save stack pointer when we hard disable interrupts
powerpc: Check address limit on user-mode return (TIF_FSCHECK)
powerpc: Rename thread_struct.fs to addr_limit
powerpc/ptrace: Use copy_{from, to}_user() rather than open-coding
powerpc/eeh: Refactor report functions
powerpc/eeh: Cleaner handling of EEH_DEV_NO_HANDLER
powerpc/eeh: Introduce eeh_set_irq_state()
powerpc/eeh: Introduce eeh_set_channel_state()
powerpc/eeh: Introduce eeh_edev_actionable()
powerpc/eeh: Introduce eeh_for_each_pe()
powerpc/eeh: Clean up pci_ers_result handling
powerpc/eeh: Add message when PE processing at parent
powerpc/eeh: Strengthen types of eeh traversal functions
powerpc/eeh: Remove unused eeh_pcid_name()
powerpc/eeh: Fix use-after-release of EEH driver
powerpc/eeh: Add final message for successful recovery
powerpc/perf: Unregister thread-imc if core-imc not supported
powerpc/perf: Return appropriate value for unknown domain
powerpc/perf: Replace the direct return with goto statement
powerpc/perf: Rearrange memory freeing in imc init
powerpc/xics: Add missing of_node_put() in error path
powerpc: cpm_gpio: Remove owner assignment from platform_driver
powerpc/xive: Remove (almost) unused macros
hvc_opal: don't set tb_ticks_per_usec in udbg_init_opal_common()
powerpc: remove unused to_tm() helper
powerpc: use time64_t in update_persistent_clock
powerpc: use time64_t in read_persistent_clock
powerpc: rtas: clean up time handling
powerpc: always enable RTC_LIB
powerpc/pasemi: Set PCI_SCAN_ALL_PCI_DEVS
powerpc/mm/hash: hard disable irq in the SLB insert path
powerpc/mm/hugetlb: Update hugetlb related locks
powerpc/mm/hash: Add missing isync prior to kernel stack SLB switch
powerpc/64s: Fix compiler store ordering to SLB shadow area
powerpc/64s/radix: flush remote CPUs out of single-threaded mm_cpumask
powerpc/64s/radix: optimise pte_update
powerpc/64s/radix: avoid ptesync after set_pte and ptep_set_access_flags
powerpc/64s/radix: prefetch user address in update_mmu_cache
powerpc/64s/radix: make ptep_get_and_clear_full non-atomic for the full case
powerpc/64s/radix: do not flush TLB on spurious fault
powerpc/64s/radix: do not flush TLB when relaxing access
powerpc/mm/radix: Change pte relax sequence to handle nest MMU hang
powerpc/mm: Change function prototype
powerpc/mm/radix: Move function from radix.h to pgtable-radix.c
powerpc/mm/hugetlb: Update huge_ptep_set_access_flags to call __ptep_set_access_flags directly
ocxl: Document new OCXL IOCTLs
ocxl: Add an IOCTL so userspace knows what OCXL features are available
ocxl: Expose the thread_id needed for wait on POWER9
ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action
powerpc: use task_pid_nr() for TID allocation
powerpc: Use TIDR CPU feature to control TIDR allocation
powerpc: Add TIDR CPU feature for POWER9
powerpc/powernv: process all OPAL event interrupts with kopald
powerpc/powernv: call OPAL_QUIESCE before OPAL_SIGNAL_SYSTEM_RESET
powerpc/64: change softe to irqmask in show_regs and xmon
powerpc/pmu/fsl: fix is_nmi test for irq mask change
powerpc/time: account broadcast timer event interrupts separately
powerpc: move a stray NMI IPI case under NMI_IPI ifdef
powerpc: move timer broadcast code under GENERIC_CLOCKEVENTS_BROADCAST ifdef
powerpc: allow soft-NMI watchdog to cover timer interrupts with large decrementers
powerpc: generic clockevents broadcast receiver call tick_receive_broadcast
powerpc/pseries: lparcfg calculate PURR on demand
powerpc/64: remove start_tb and accum_tb from thread_struct
powerpc/64s: micro-optimise __hard_irq_enable() for mtmsrd L=1 support
powerpc/pseries: put cede MSR[EE] check under IRQ_SOFT_MASK_DEBUG
powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled
powerpc/powernv/ioda2: Remove redundant free of TCE pages
powerpc/xmon: use match_string() helper
powerpc: Fix build by disabling attribute-alias warning for SYSCALL_DEFINEx
powerpc/64: Fix strncpy() related build failures with GCC 8.1
dax: dax_insert_mapping_entry always succeeds
blk-mq: update nr_requests when switching to 'none' scheduler
block: don't use blocking queue entered for recursive bio submits
dm-crypt: fix warning in shutdown path
PCI/AER: Decode Error Source Requester ID
PCI/AER: Remove aer_recover_work_func() forward declaration
PCI/DPC: Use the generic pcie_do_fatal_recovery() path
PCI/AER: Pass service type to pcie_do_fatal_recovery()
PCI/DPC: Disable ERR_NONFATAL handling by DPC
PCI/portdrv: Add generic pcie_port_find_device()
libnvdimm, e820: Register all pmem resources
libnvdimm: Debug probe times
CIFS: Add support for direct pages in wdata
CIFS: Use offset when reading pages
CIFS: Add support for direct pages in rdata
cifs: update multiplex loop to handle compounded responses
netfilter: nf_tables: handle chain name lookups via rhltable
netfilter: nf_tables: add connlimit support
netfilter: nf_tables: add destroy_clone expression
netfilter: nf_tables: garbage collection for stateful expressions
netfilter: nf_tables: pass ctx to nf_tables_expr_destroy()
netfilter: nf_conncount: expose connection list interface
netfilter: nf_tables: pass context to object destroy indirection
netfilter: Libify xt_TPROXY
netfilter: Decrease code duplication regarding transparent socket option
bpf: btf: Ensure t->type == 0 for BTF_KIND_FWD
bpf: btf: Check array t->size
vmw_balloon: fixing double free when batching mode is off
mm: fix the NULL mapping case in __isolate_lru_page()
mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty()
Revert "vfio/type1: Improve memory pinning process for raw PFN mapping"
arm64: KVM: Move VCPU_WORKAROUND_2_FLAG macros to the top of the file
ARM: dts: aspeed: Fix hwrng register address
ARM: tegra: fix compile-testing PCI host driver
clk: qcom: Export clk_fabia_pll_configure()
clk: bcm: Update and add Stingray clock entries
dt-bindings: clk: Update Stingray binding doc
clk-si544: Properly round requested frequency to nearest match
clk: ingenic: jz4770: Add 150us delay after enabling VPU clock
clk: ingenic: jz4770: Enable power of AHB1 bus after ungating VPU clock
clk: ingenic: jz4770: Modify C1CLK clock to disable CPU clock stop on idle
clk: ingenic: jz4770: Change OTG from custom to standard gated clock
clk: ingenic: Support specifying "wait for clock stable" delay
clk: ingenic: Add support for clocks whose gate bit is inverted
clk: use match_string() helper
clk: bcm2835: use match_string() helper
PCI: shpchp: Use dev_printk() for OSHP-related messages
PCI: shpchp: Remove get_hp_hw_control_from_firmware() wrapper
PCI: shpchp: Remove acpi_get_hp_hw_control_from_firmware() flags
PCI: shpchp: Rely on previous _OSC results
PCI: shpchp: Request SHPC control via _OSC when adding host bridge
PCI: shpchp: Convert SHPC to be builtin only
PCI: pciehp: Make pciehp_is_native() stricter
PCI: pciehp: Rename host->native_hotplug to host->native_pcie_hotplug
clk: Return void from debug_init op
IB/mlx5: Add counters read support
IB/mlx5: Add flow counters read support
IB/mlx5: Add flow counters binding support
IB/mlx5: Add counters create and destroy support
IB/uverbs: Add support for flow counters
IB/core: Add support for flow counters
IB/core: Support passing uhw for create_flow
IB/uverbs: Add read counters support
IB/core: Introduce counters read verb
IB/uverbs: Add create/destroy counters support
IB/core: Introduce counters object and its create/destroy
IB/uverbs: Add an ib_uobject getter to ioctl() infrastructure
net/mlx5: Export flow counter related API
net/mlx5: Use flow counter pointer as input to the query function
selftests/bpf: test_sockmap, print additional test options
selftests/bpf: test_sockmap, fix data verification
selftests/bpf: test_sockmap, timing improvements
selftests/bpf: test_sockmap, join cgroup in selftest mode
selftests/bpf: test_sockmap, check test failure
bpf: fix uapi hole for 32 bit compat applications
tools/power turbostat: update version number
tools/power turbostat: Add Node in output
tools/power turbostat: add node information into turbostat calculations
tools/power turbostat: remove num_ from cpu_topology struct
tools/power turbostat: rename num_cores_per_pkg to num_cores_per_node
tools/power turbostat: track thread ID in cpu_topology
tools/power turbostat: Calculate additional node information for a package
tools/power turbostat: Fix node and siblings lookup data
tools/power turbostat: set max_num_cpus equal to the cpumask length
tools/power turbostat: if --num_iterations, print for specific number of iterations
tools/power turbostat: Add Cannon Lake support
tools/power turbostat: delete duplicate #defines
x86: msr-index.h: Correct SNB_C1/C3_AUTO_UNDEMOTE defines
tools/power turbostat: Correct SNB_C1/C3_AUTO_UNDEMOTE defines
tools/power turbostat: add POLL and POLL% column
tools/power turbostat: Fix --hide Pk%pc10
tools/power turbostat: Build-in "Low Power Idle" counters support
clk: remove clk_debugfs_add_file()
clk: tegra: no need to check return value of debugfs_create functions
clk: davinci: no need to check return value of debugfs_create functions
clk: bcm2835: no need to check return value of debugfs_create functions
clk: no need to check return value of debugfs_create functions
clk: imx6: add EPIT clock support
fs: use ->is_partially_uptodate in page_cache_seek_hole_data
fs: remove the buffer_unwritten check in page_seek_hole_data
fs: move page_cache_seek_hole_data to iomap.c
xfs: use iomap_bmap
iomap: add an iomap-based bmap implementation
iomap: add a iomap_sector helper
iomap: use __bio_add_page in iomap_dio_zero
iomap: move IOMAP_F_BOUNDARY to gfs2
iomap: fix the comment describing IOMAP_NOWAIT
iomap: inline data should be an iomap type, not a flag
mm: split ->readpages calls to avoid non-contiguous pages lists
mm: return an unsigned int from __do_page_cache_readahead
mm: give the 'ret' variable a better name __do_page_cache_readahead
block: add a lower-level bio_add_page interface
net/mlx5e: TX, Separate cachelines of xmit and completion stats
net/mlx5e: RX, Always prefer Linear SKB configuration
net/mlx5e: RX, Enhance legacy Receive Queue memory scheme
net/mlx5e: RX, Use cyclic WQ in legacy RQ
net/mlx5e: RX, Split WQ objects for different RQ types
net/mlx5e: RX, Remove HW LRO support in legacy RQ
net/mlx5e: RX, Dedicate a function for copying SKB header
net/mlx5e: RX, Generalise function of SKB frag addition
net/mlx5e: RX, Generalise name of non-linear SKB head size
net/mlx5e: TX, Obsolete maintaining local copies of skb->len/data
net/mlx5: FPGA, Handle QP error event
net/mlx5e: Support configurable MTU for vport representors
net/mlx5e: Increase aRFS flow tables size
net/mlx5e: Remove redundant active_channels indication
net/mlx5e: Present SW stats when state is not opened
net/mlx5e: IPOIB, Add a missing skb_pull
net/mlx5e: IPOIB, Fix overflowing SQ WQE memset
ipvs: register conntrack hooks for ftp
thermal: qcom: tsens: Allow number of sensors to come from DT
thermal: tegra: soctherm: add const to struct thermal_cooling_device_ops
thermal: exynos: Reduce severity of too early temperature read
thermal: imx: Switch to SPDX identifier
thermal: qcom-spmi-temp-alarm: add support for GEN2 PMIC peripherals
thermal: ti-soc-thermal: fix incorrect entry in omap5430_adc_to_temp[]
tools/power turbostat: Don't make man pages executable
tools/power turbostat: remove blank lines
tools/power turbostat: a small C-states dump readability immprovement
tools/power turbostat: dump BDX, SKX automatic C-state conversion bit
tools/power turbostat: do not hard-code 25MHz crystal on SKX
tools/power turbostat: fix possible sprintf buffer overflow
thermal: rcar_thermal: add r8a77995 support
dt-bindings: thermal: rcar-thermal: add R8A77995 support
clk: mvebu: use correct bit for 98DX3236 NAND
clk/driver/hisi: Consolidate the Kconfig for the CLOCK_STUB
clk: imx7d: reset parent for mipi csi root
clk: imx7d: fix mipi dphy div parent
clk: qcom: gcc-msm8996: Disable halt check on UFS clocks
clk: aspeed: Add 24MHz fixed clock
ARM: dts: imx7: correct enet ipg clock
clk: imx7d: correct enet clock CCGR registers
clk: imx7d: correct enet phy ref clock gates
perf tools intel-pt-decoder: Update insn.h from the kernel sources
tools headers: Sync x86 cpufeatures.h with the kernel sources
tools headers: Synchronize prctl.h ABI header
perf trace beauty prctl: Default header_dir to cwd to work without parms
clk: imx6sl: correct ocram_podf clock type
clk: imx6sx: disable unnecessary clocks during clock initialization
orangefs: use sparse annotations for holding locks across function calls.
orangefs: make debug_help_fops static
orangefs: remove unused function orangefs_get_bufmap_init
orangefs: specify user pointers when using dev_map_desc and bufmap
orangefs: formatting cleanups
orangefs: set i_size on new symlink
orangefs: report attributes_mask and attributes for statx
clk: qcom: Add video clock controller driver for SDM845
dt-bindings: clock: Introduce QCOM Video clock bindings
orangefs: make struct orangefs_file_vm_ops static
orangefs: revamp block sizes
clk: msm8996-gcc: Mark halt check as no-op for USB/PCIE pipe_clk
net: hns3: Optimize the VF's process of updating multicast MAC
net: hns3: Optimize the PF's process of updating multicast MAC
net: hns3: Fix for vxlan tx checksum bug
net: hns3: Add missing break in misc_irq_handle
net: hns3: Fix for phy not link up problem after resetting
net: hns3: Fix for hclge_reset running repeatly problem
net: hns3: Fix for service_task not running problem after resetting
net: hns3: Fix setting mac address error
net: hns3: Add repeat address checking for setting mac address
net: hns3: Add support for IFF_ALLMULTI flag
net: hns3: Disable vf vlan filter when vf vlan table is full
staging: vc04_services: no need to save the log debufs dentries
staging: vc04_services: vchiq_debugfs_log_entry can be a void *
staging: vc04_services: remove struct vchiq_debugfs_info
staging: vc04_services: move client dbg directory into static variable
staging: vc04_services: remove odd vchiq_debugfs_top() wrapper
staging: vc04_services: no need to check debugfs return values
clk: qcom: mmcc-msm8996: leave all mmagic gdscs and clocks always enabled
clk: qcom: Register the gdscs before the clocks
clk: qcom: gdsc: Add support for ALWAYS_ON gdscs
selftests: forwarding: mirror_gre_bridge_1d_vlan: Add STP test
selftests: forwarding: mirror_gre_vlan_bridge_1q: Add more tests
selftests: forwarding: mirror_gre_vlan_bridge_1q: Rename two tests
selftests: forwarding: mirror_gre_vlan_bridge_1q: Test final config
selftests: forwarding: mirror_gre_vlan_bridge_1q: Fix tunnel name
selftests: forwarding: mirror_gre_lib: Add STP test
selftests: forwarding: mirror_lib: skip_hw the VLAN capture
selftests: forwarding: mirror_lib: Move here do_test_span_vlan_dir_ips()
selftests: forwarding: lib: Move here vlan_capture_{, un}install()
net: usb: cdc_mbim: add flag FLAG_SEND_ZLP
clk: berlin: switch to SPDX license identifier
xprtrdma: Remove transfertypes array
ip6_tunnel: remove magic mtu value 0xFFF8
xprtrdma: Add trace_xprtrdma_dma_map(mr)
xprtrdma: Wait on empty sendctx queue
xprtrdma: Move common wait_for_buffer_space call to parent function
xprtrdma: Return -ENOBUFS when no pages are available
ip_tunnel: restore binding to ifaces with a large mtu
KVM: docs: nVMX: Remove known limitations as they do not exist now
KVM: docs: mmu: KVM support exposing SLAT to guests
kvm: no need to check return value of debugfs_create functions
kvm: Make VM ioctl do valloc for some archs
kvm: Change return type to vm_fault_t
ASoC: topology: Move skl-tplg-interface.h to uapi
ASoC: topology: Move v4 manifest header data structures to uapi
ASoC: topology: Improve backwards compatibility with v4 topology files
platform/x86: mlx-platform: Add LED platform driver activation
platform/mellanox: Add new ODM system types to mlx-platform
platform/mellanox: mlxreg-hotplug: add extra cycle for hotplug work queue
hwmon: (asus_atk0110) Make use of device managed memory
hwmon: (asus_atk0110) Replace deprecated device register call
tools/power turbostat: fix MSR_IA32_MISC_ENABLE MWAIT printout
tools/power turbostat: fix printing on input
tools/power turbostat: end current interval upon newline input
tools/power turbostat: on SIGUSR1: sample, print and continue
tools/power turbostat: on SIGINT: sample, print and exit
tools/power turbostat: add --enable Time_Of_Day_Seconds
tools/power turbostat: fix Skylake Xeon package C-state display
MAINTAINERS: add turbostat utility
xfs: fix error handling in xfs_refcount_insert()
xfs: fix xfs_rtalloc_rec units
xfs: strengthen rtalloc query range checks
xfs: xfs_rtbuf_get should check the bmapi_read results
xfs: xfs_rtword_t should be unsigned, not signed
hwmon: (k10temp) Make function get_raw_temp static
powerpc/mm: Fix kernel crash on page table free
powerpc/prom: Fix %u/%llx usage since prom_printf() change
cxl: Configure PSL to not use APC virtual machines
cxl: Disable prefault_mode in Radix mode
ALSA: pci/hda: Remove unused, broken, header file
net: mvpp2: Split the PPv2 driver to a dedicated directory
mm: Remove return value of zap_vma_ptes()
RDMA/hns_roce: Don't check return value of zap_vma_ptes()
RDMA/mlx4: Don't crash machine if zap_vma_ptes() fails
RDMA/mlx5: Don't check return value of zap_vma_ptes()
RDMA/mad: Convert BUG_ONs to error flows
RDMA/mad: Delete inaccessible BUG_ON
RDMA/cma: Ignore unknown event
RDMA/cm: Abort loop in case of CM dequeue
RDMA/cxgb3: Don't crash kernel just because IDR is full
RDMA/mlx4: Discard unknown SQP work requests
RDMA/mlx4: Catch FW<->SW misalignment without machine crash
net: dsa: b53: Add BCM5389 support
net: sched: split tc_ctl_tfilter into three handlers
lightnvm: pblk: take bitmap alloc. out of critical section
lightnvm: pblk: kick writer on new flush points
lightnvm: pblk: only try to recover lines with written smeta
lightnvm: pblk: remove unnecessary bio_get/put
lightnvm: pblk: add possibility to set write buffer size manually
lightnvm: fix partial read error path
lightnvm: proper error handling for pblk_bio_add_pages
lightnvm: pblk: fix smeta write error path
lightnvm: pblk: garbage collect lines with failed writes
lightnvm: pblk: rework write error recovery path
arm64: signal: Report signal frame size to userspace via auxv
arm64/sve: Thin out initialisation sanity-checks for sve_max_vl
platform/x86: ideapad-laptop: Add E42-80 to no_hw_rfkill
platform/x86: silead_dmi: Add touchscreen info for the Onda V891w tablet
platform/x86: silead_dmi: Add info for the PoV mobii TAB-P800W (v2.0)
platform/x86: silead_dmi: Add touchscreen info for the Jumper EZpad 6 Pro
Revert "drm/amdgpu: Add an ATPX quirk for hybrid laptop"
drm/amdgpu/df: fix potential array out-of-bounds read
rtnetlink: Fix null-ptr-deref in rtnl_newlink
kcm: Fix use-after-free caused by clonned sockets
cifs: remove header_preamble_size where it is always 0
cifs: remove struct smb2_hdr
CIFS: 511c54a2f6 adds a check for session expiry, status STATUS_NETWORK_SESSION_EXPIRED, however the server can also respond with STATUS_USER_SESSION_DELETED in cases where the session has been idle for some time and the server reaps the session to recover resources.
lightnvm: pblk: remove dead function
lightnvm: pass flag on graceful teardown to targets
lightnvm: pblk: check for chunk size before allocating it
lightnvm: pblk: remove unnecessary argument
lightnvm: pblk: remove unnecessary indirection
lightnvm: pblk: return NVM_ error on failed submission
lightnvm: pblk: warn in case of corrupted write buffer
lightnvm: pblk: improve error msg on corrupted LBAs
lightnvm: pblk: check read lba on gc path
lightnvm: pblk: recheck for bad lines at runtime
lightnvm: pblk: fail gracefully on line alloc. failure
block: split the blk-mq case from elevator_init
block: move sysfs_lock into elevator_init
block: remove the always unused name argument to elevator_init
block: unexport elevator_init/exit
block: move initialization of elevator-related fields to blk_alloc_queue_node
powerpc/kbuild: Use flags variables rather than overriding LD/CC/AS
powerpc/kbuild: Remove CROSS32 defines from top level powerpc Makefile
powerpc/kbuild: Set default generic machine type for 32-bit compile
mtd: nand: Pass mode information to nand_page_io_req
nvme: use the changed namespaces list log to clear ns data changed AENs
nvme: mark nvme_queue_scan static
nvme: submit AEN event configuration on startup
nvmet: mask pending AENs
nvmet: add AEN configuration support
nvmet: implement the changed namespaces log
nvmet: split log page implementation
nvmet: add a new nvmet_zero_sgl helper
nvme.h: add AEN configuration symbols
ipvs: add ipv6 support to ftp
ipvs: add full ipv6 support to nfct
Revert "xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue"
xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers
xhci: Allow more than 32 quirks
usb: xhci: force all memory allocations to node
staging: mt7621-gpio: reorder includes alphabetically
staging: mt7621-gpio: change gc_map to don't use pointers
staging: mt7621-gpio: use GPIOF_DIR_OUT and GPIOF_DIR_IN macros instead of custom values
staging: mt7621-gpio: change 'to_mediatek_gpio' to make just a one line return
staging: mt7621-gpio: dt-bindings: update documentation for #interrupt-cells property
staging: mt7621-gpio: update #interrupt-cells for the gpio node
MAINTAINERS: add entry for LEGO MINDSTORMS EV3
ASoC: TSCS454: Add Support
ASoC: Intel: kbl: Move codec sysclk config to codec_init function
ASoC: simple-card: set cpu dai clk in hw_params
EVM: unlock on error path in evm_read_xattrs()
staging: mt7621-gpio: dt-bindings: complete documentation for the gpio
staging: mt7621-dts: add missing properties to gpio node
staging: mt7621-gpio: change lock place in irq mask and unmask functions
staging: mt7621-gpio: avoid locking in mediatek_gpio_get_direction
staging: mt7621-gpio: fix masks for gpio pin
staging: mt7621-gpio: use module_platform_driver() instead subsys initcall
staging: mt7621-gpio: rename MTK_MAX_BANK into MTK_BANK_CNT
staging: mt7621-mmc: Fix line size exceeding 80 columns
staging: rtl8192e: Correct indentation of switch statements - coding style
staging: rtl8192e: correct position of '{', '}', '(' and ')' - coding style
staging: rtl8192e: Add spaces where required by coding standard
staging: lustre: get rid of ldebugfs_remove()
staging: lustre: make ldebugfs_add_vars a void function
staging: lustre: remove last two users of ldebugfs_register()
staging: lustre: unwrap some ldebugfs_register() calls
staging: lustre: remove ldebugfs_obd_seq_create() wrapper function
staging: lustre: remove ldebugfs_seq_create() wrapper function
staging: lustre: remove ldebugfs_register_stats() wrapper function
staging: lustre: remove ldebugfs_add_simple() wrapper
staging: lustre: no need to check debugfs return values
staging: unisys: visornic: no need to check debugfs return values
staging: rtlwifi: don't check the return value of debugfs_create_file
staging: greybus: camera: no need to check debugfs return values
netfilter: nft_fwd_netdev: allow to forward packets via neighbour layer
netfilter: nf_tables: check msg_type before nft_trans_set(trans)
netfilter: xt_CT: Reject the non-null terminated string from user space
netfilter: nfnetlink: Remove VLA usage
netfilter: nf_flow_table: attach dst to skbs
netfilter: nf_tables: fix chain dependency validation
netfilter: nf_tables: Add audit support to log statement
netfilter: nf_tables: add support for native socket matching
ALSA: hda - Handle kzalloc() failure in snd_hda_attach_pcm_stream()
netfilter: fix ptr_ret.cocci warnings
linvdimm, pmem: Preserve read-only setting for pmem devices
net-sysfs: Fix memory leak in XPS configuration
ixgbe: fix parsing of TC actions for HW offload
virtio_net: fix error return code in virtnet_probe()
rtnetlink: Remove VLA usage
kbuild: add machine size to CHECKFLAGS
cifs: change smb2_get_data_area_len to take a smb2_sync_hdr as argument
cifs: update smb2_calc_size to use smb2_sync_hdr instead of smb2_hdr
cifs: remove struct smb2_oplock_break_rsp
cifs: remove rfc1002 header from all SMB2 response structures
smb3: on reconnect set PreviousSessionId field
smb3: Add posix create context for smb3.11 posix mounts
KVM: PPC: Book3S PR: Enable kvmppc_get/set_one_reg_pr() for HTM registers
KVM: PPC: Book3S: Remove load/put vcpu for KVM_GET_REGS/KVM_SET_REGS
KVM: PPC: Remove load/put vcpu for KVM_GET/SET_ONE_REG ioctl
KVM: PPC: Move vcpu_load/vcpu_put down to each ioctl case in kvm_arch_vcpu_ioctl
KVM: PPC: Book3S PR: Enable HTM for PR KVM for KVM_CHECK_EXTENSION ioctl
KVM: PPC: Book3S PR: Support TAR handling for PR KVM HTM
KVM: PPC: Book3S PR: Add guard code to prevent returning to guest with PR=0 and Transactional state
KVM: PPC: Book3S PR: Add emulation for tabort. in privileged state
KVM: PPC: Book3S PR: Add emulation for trechkpt.
KVM: PPC: Book3S PR: Add emulation for treclaim.
KVM: PPC: Book3S PR: Restore NV regs after emulating mfspr from TM SPRs
KVM: PPC: Book3S PR: Always fail transactions in guest privileged state
KVM: PPC: Book3S PR: Emulate mtspr/mfspr using active TM SPRs
KVM: PPC: Book3S PR: Add math support for PR KVM HTM
KVM: PPC: Book3S PR: Add transaction memory save/restore skeleton
KVM: PPC: Book3S PR: Add kvmppc_save/restore_tm_sprs() APIs
KVM: PPC: Book3S PR: Add new kvmppc_copyto/from_vcpu_tm APIs
KVM: PPC: Book3S PR: Avoid changing TS bits when exiting guest
KVM: PPC: Book3S PR: Implement RFID TM behavior to suppress change from S0 to N0
KVM: PPC: Book3S PR: Sync TM bits to shadow msr for problem state guest
KVM: PPC: Book3S PR: Pass through MSR TM and TS bits to shadow_msr
KVM: PPC: Book3S PR: Transition to Suspended state when injecting interrupt
KVM: PPC: Book3S PR: Add C function wrapper for _kvmppc_save/restore_tm()
KVM: PPC: Book3S PR: Turn on FP/VSX/VMX MSR bits in kvmppc_save_tm()
KVM: PPC: Book3S PR: Add guest MSR parameter for kvmppc_save_tm()/kvmppc_restore_tm()
compiler.h: enable builtin overflow checkers and add fallback code
ARM: spectre-v1: fix syscall entry
ARM: spectre-v1: add array_index_mask_nospec() implementation
ARM: spectre-v1: add speculation barrier (csdb) macros
i2c: qup: fix building without CONFIG_ACPI
rtc: test: remove irq sysfs file
rtc: test: emulate alarms using timers
rtc: test: store time as an offset to system time
rtc: test: allow registering many devices
rtc: test: remove useless proc info
rtc: ds1685: Add range
rtc: ds1685: fix possible race condition
rtc: sprd: Add new RTC power down check method
rtc: sun6i: Fix bit_idx value for clk_register_gate
rtc: jz4740: Fix a typo in Kconfig
net: ethernet: davinci_emac: fix error handling in probe()
net/ncsi: Fix array size in dumpit handler
net: dsa: mv88e6xxx: Be explicit about DT or pdata
net: ti: cpsw: include gpio/consumer.h
net/mlx5: Add FPGA QP error event
net/mlx5: Add temperature warning event to log
rtnetlink: Add more well known protocol values
cxgb4: Add FORCE_PAUSE bit to 32 bit port caps
cls_flower: Fix incorrect idr release when failing to modify rule
drm/amdgpu: Fix NULL pointer when load kfd driver with PP block is disabled
drm/gfx9: Update gc goldensetting for vega20.
drm/amd/pp: Allow underclocking when od table is empty in vbios
pnfs: Don't release the sequence slot until we've processed layoutget on open
pnfs: Don't call commit on failed layoutget-on-open
pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached data
NFSv4/pnfs: Don't switch off layoutget-on-open for transient errors
NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse uninitialised data
pnfs: Fix manipulation of NFS_LAYOUT_FIRST_LAYOUTGET
pnfs: Add barrier to prevent lgopen using LAYOUTGET during recall
pnfs: Stop attempting LAYOUTGET on OPEN on failure
pnfs: Add LAYOUTGET to OPEN of an existing file
pNFS: Refactor nfs4_layoutget_release()
pnfs: Add LAYOUTGET to OPEN of a new file
pnfs: Change pnfs_alloc_init_layoutget_args call signature
pnfs: Move nfs4_opendata into nfs4_fs.h
pnfs: Add conditional encode/decode of LAYOUTGET within OPEN compound
pnfs: move allocations out of nfs4_proc_layoutget
pnfs: refactor send_layoutget
pnfs: Add layout driver flag PNFS_LAYOUTGET_ON_OPEN
NFS4: move ctx into nfs4_run_open_task
pnfs: Store return value of decode_layoutget for later processing
pnfs: Remove redundant assignment from nfs4_proc_layoutget().
NFSv4: Don't add a new lock on an interrupted wait for LOCK
NFSv4: Always clear the pNFS layout when handling ESTALE
NFSv4: Fix possible 1-byte stack overflow in nfs_idmap_read_and_verify_message
NFS: Fix up nfs_post_op_update_inode() to force ctime updates
NFS: Ensure we revalidate the inode correctly after setacl
NFS: Ensure we revalidate the inode correctly after remove or rename
NFS: Set the force revalidate flag if the inode is not completely initialised
NFS: Fix up sillyrename()
NFSv4: Fix sillyrename to return the delegation when appropriate
NFSv4: Only pass the delegation to setattr if we're sending a truncate
NFS: Merge nfs41_free_stateid() with _nfs41_free_stateid()
NFS: Pass "privileged" value to nfs4_init_sequence()
NFS: Move call to nfs4_state_protect() to nfs4_commit_setup()
NFS: Move call to nfs4_state_protect_write() to nfs4_write_setup()
NFS: Avoid quadratic search when freeing delegations.
rculist: add list_for_each_entry_from_rcu()
NFS: use cond_resched() when restarting walk of delegation list.
NFS: slight optimization for walking list for delegations
fs: f2fs: insert space around that ':' and ', '
fs: f2fs: add missing blank lines after declarations
fs: f2fs: changed variable type of offset "unsigned" to "loff_t"
f2fs: clean up symbol namespace
f2fs: make set_de_type() static
f2fs: make __f2fs_write_data_pages() static
f2fs: fix to avoid accessing cross the boundary
f2fs: fix to let caller retry allocating block address
disable loading f2fs module on PAGE_SIZE > 4KB
f2fs: fix error path of move_data_page
f2fs: don't drop dentry pages after fs shutdown
f2fs: fix to avoid race during access gc_thread pointer
f2fs: clean up with clear_radix_tree_dirty_tag
f2fs: fix to don't trigger writeback during recovery
f2fs: clear discard_wake earlier
f2fs: let discard thread wait a little longer if dev is busy
f2fs: avoid stucking GC due to atomic write
f2fs: introduce sbi->gc_mode to determine the policy
f2fs: keep migration IO order in LFS mode
f2fs: fix to wait page writeback during revoking atomic write
f2fs: Fix deadlock in shutdown ioctl
f2fs: detect synchronous writeback more earlier
f2fs: clean up with is_valid_blkaddr()
f2fs: fix to initialize min_mtime with ULLONG_MAX
f2fs: fix to let checkpoint guarantee atomic page persistence
f2fs: fix to initialize i_current_depth according to inode type
Revert "f2fs: add ovp valid_blocks check for bg gc victim to fg_gc"
f2fs: don't drop any page on f2fs_cp_error() case
f2fs: fix spelling mistake: "extenstion" -> "extension"
f2fs: enhance sanity_check_raw_super() to avoid potential overflows
f2fs: treat volatile file's data as hot one
f2fs: introduce release_discard_addr() for cleanup
f2fs: fix potential overflow
f2fs: rename dio_rwsem to i_gc_rwsem
f2fs: move mnt_want_write_file after range check
f2fs: fix missing clear FI_NO_PREALLOC in some error case
f2fs: enforce fsync_mode=strict for renamed directory
f2fs: sanity check for total valid node blocks
f2fs: sanity check on sit entry
f2fs: avoid bug_on on corrupted inode
f2fs: give message and set need_fsck given broken node id
f2fs: fix features filename in sysfs documentation
f2fs: clean up commit_inmem_pages()
f2fs: do not check F2FS_INLINE_DOTS in recover
f2fs: remove duplicated dquot_initialize and fix error handling
f2fs: fix to detect failure of dquot_initialize
f2fs: stop issue discard if something wrong with f2fs
f2fs: fix return value in f2fs_ioc_commit_atomic_write
f2fs: allocate hot_data for atomic write more strictly
f2fs: check if inmem_pages list is empty correctly
f2fs: fix race in between GC and atomic open
fs: f2fs: Adding new return type vm_fault_t
f2fs: change le32 to le16 of f2fs_inode->i_extra_size
f2fs: check cur_valid_map_mir & raw_sit block count when flush sit entries
f2fs: correct return value of f2fs_trim_fs
f2fs: fix to show missing bits in FS_IOC_GETFLAGS
f2fs: remove unneeded F2FS_PROJINHERIT_FL
f2fs: don't use GFP_ZERO for page caches
f2fs: issue all big range discards in umount process
f2fs: remove redundant block plug
f2fs: remove unmatched zero_user_segment when convert inline dentry
f2fs: introduce private inode status mapping
net/sonic: Use dma_mapping_error()
mlxsw: spectrum_switchdev: Schedule respin during trans prepare
net: bridge: Notify about bridge VLANs
staging: fsl-dpaa2: ethsw: Ignore bridge VLAN events
dsa: port: Ignore bridge VLAN events
rocker: rocker_main: Ignore bridge VLAN events
mlxsw: spectrum_switchdev: Ignore bridge VLAN events
net: bridge: Extract br_vlan_add_existing()
net: bridge: Extract boilerplate around switchdev_port_obj_*()
drm/amd/display: Update color props when modeset is required
drm/amd/display: Make atomic-check validate underscan changes
qed*: Add link change count value to ethtool statistics display.
RDMA/qedr: fix spelling mistake: "adrresses" -> "addresses"
ALSA: oxygen: use match_string() helper
net: remove bypassed check in sch_direct_xmit()
f2fs: run fstrim asynchronously if runtime discard is on
tcp: minor optimization around tcp_hdr() usage in receive path
dt-bindings: Add vendor prefix for ArcherMind
dt-bindings: fsi-master-gpio: Document "no-gpio-delays" property
IB/iser: Do not reduce max_sectors
Staging:rtl888eu:include Fix CamelCase issue
staging: lustre: include linux/highmem.h when needed
arm64: KVM: Add ARCH_WORKAROUND_2 discovery through ARCH_FEATURES_FUNC_ID
arm64: KVM: Handle guest's ARCH_WORKAROUND_2 requests
arm64: KVM: Add ARCH_WORKAROUND_2 support for guests
staging: comedi: comedi_usb.h: SPDX License Identifier is added in the first line
arm64: KVM: Add HYP per-cpu accessors
staging: mt7621-pci: Fix line size exceeding 80 columns.
staging: rtlwifi: use single_open and single_release properly
staging: wlan-ng: remove unused declarations from p80211types.h
arm64: ssbd: Add prctl interface for per-thread mitigation
staging: lustre: mdc: excessive memory consumption by the xattr cache
staging: lustre: acl: increase ACL entries limitation
staging: lustre: llite: remove unused parameters from md_{get, set}xattr()
staging: lustre: llite: add support set_acl method in inode operations
staging: lustre: llite: create acl.c file
nvme.h: add the changed namespace list log
nvme.h: untangle AEN notice definitions
nvmet: fix error return code in nvmet_file_ns_enable()
nvmet: fix a typo in nvmet_file_ns_enable()
nvme-fabrics: allow internal passthrough command on deleting controllers
dma-direct: don't crash on device without dma_mask
arm64: ssbd: Introduce thread flag to control userspace mitigation
arm64: ssbd: Restore mitigation status on CPU resume
arm64: ssbd: Skip apply_ssbd if not using dynamic mitigation
arm64: ssbd: Add global mitigation state accessor
arm64: Add 'ssbd' command-line option
arm64: Add ARCH_WORKAROUND_2 probing
arm64: Add per-cpu infrastructure to call ARCH_WORKAROUND_2
arm64: Call ARCH_WORKAROUND_2 on transitions between EL0 and EL1
arm/arm64: smccc: Add SMCCC-specific return codes
ASoC: dapm: use match_string() helper
ASoC: max98095: use match_string() helper
ASoC: max98088: use match_string() helper
dax: change bdev_dax_supported() to support boolean returns
fs: allow per-device dax status checking for filesystems
selftests: add test for USB over IP driver
libata: Drop SanDisk SD7UB3Q*G1001 NOLPM quirk
block, bfq: prevent soft_rt_next_start from being stuck at infinity
block, bfq: increase weight-raising duration for interactive apps
block, bfq: remove slow-system class
block, bfq: add description of weight-raising heuristics
fs: iomap dio set bio prio from kiocb prio
fs: blkdev set bio prio from kiocb prio
fs: Add aio iopriority support
fs: Convert kiocb rw_hint from enum to u16
block: add ioprio_check_cap function
block, bfq: remove the removal of 'next' rq in bfq_requests_merged
block, bfq: remove wrong check in bfq_requests_merged
block, bfq: remove wrong lock in bfq_requests_merged
platform/x86: asus-wireless: Fix format specifier
EVM: prevent array underflow in evm_write_xattrs()
EVM: Fix null dereference on xattr when xattr fails to allocate
EVM: fix memory leak of temporary buffer 'temp'
IMA: use list_splice_tail_init_rcu() instead of its open coded variant
ima: use match_string() helper
USB: typec: fsusb302: no need to check return value of debugfs_create_dir()
mmc: mvsdio: Enable MMC_CAP_ERASE
mmc: mvsdio: Respect card busy time out from mmc core
platform/x86: asus-wmi: Fix NULL pointer dereference
platform/x86: asus-wmi: Fix NULL pointer dereference
drm/i915: Remove stale asserts from i915_gem_find_active_request()
Revert "drm/i915/edp: Allow alternate fixed mode for eDP if available."
drm/i915: Nul-terminate legacy debug string
USB: gadget: udc: s3c2410_udc: no need to check return value of debugfs_create functions
USB: gadget: udc: renesas_usb3: no need to check return value of debugfs_create functions
USB: gadget: udc: pxa27x_udc: no need to check return value of debugfs_create functions
USB: gadget: udc: gr_udc: no need to check return value of debugfs_create functions
USB: gadget: udc: bcm63xx_udc: no need to check return value of debugfs_create functions
USB: udc: atmel_usba_udc: no need to check return value of debugfs_create functions
USB: dwc3: no need to check return value of debugfs_create functions
USB: dwc2: no need to check return value of debugfs_create functions
USB: core: no need to check return value of debugfs_create functions
USB: chipidea: no need to check return value of debugfs_create functions
USB: ehci-hcd: no need to check return value of debugfs_create functions
USB: fhci-hcd: no need to check return value of debugfs_create functions
USB: fotg210-hcd: no need to check return value of debugfs_create functions
USB: imx21-hcd: no need to check return value of debugfs_create functions
USB: isp116x-hcd: no need to check return value of debugfs_create functions
USB: ohci: no need to check return value of debugfs_create functions
USB: uhci: no need to check return value of debugfs_create functions
USB: mon: no need to check return value of debugfs_create functions
USB: mtu3: no need to check return value of debugfs_create_dir()
USB: musb: clean up debugfs file and directory creation
USB: typec: tcpm: no need to check return value of debugfs_create_dir()
phy: tegra: select USB_COMMON
usb: hub: Per-port setting to reduce TRSTRCY to 10 ms
usb: hub: Per-port setting to use old enumeration scheme
usb: xhci: tegra: Fix runtime PM support
usb: chipidea: Fix ULPI on imx51
usbip: usbip_detach: fix to check for invalid ports
usbip: usbip_detach: Fix memory, udev context and udev leak
usb: musb: remove an unused variable
usb: dwc3: Remove DEBUG define from Qualcomm DWC3 glue driver
usb: host: ohci: fix sfr kernel warning in ohci-at91 driver
usb: core: message: remove extra endianness conversion in usb_set_isoch_delay
usbip: dynamically allocate idev by nports found in sysfs
NFC: pn533: don't send USB data off of the stack
perf/x86/intel/uncore: Clean up client IMC uncore
perf/x86/intel/uncore: Expose uncore_pmu_event*() functions
perf/x86/intel/uncore: Support IIO free-running counters on SKX
perf/x86/intel/uncore: Add infrastructure for free running counters
perf/x86/intel/uncore: Add new data structures for free running counters
perf/x86/intel/uncore: Correct fixed counter index check in generic code
perf/x86/intel/uncore: Correct fixed counter index check for NHM
perf/x86/intel/uncore: Introduce customized event_read() for client IMC uncore
ASoC: Intel: bytcr_rt5651: Set card long_name based on quirks
sched/headers: Fix typo
sched/deadline: Fix missing clock update
fuse: don't keep dead fuse_conn at fuse_fill_super().
fuse: fix control dir setup and teardown
fuse: fix congested state leak on aborted connections
fuse: Allow fully unprivileged mounts
fuse: Ensure posix acls are translated outside of init_user_ns
ASoC: mt6797-mt6351: add hostless phone call path
ASoC: mt6797: add Hostless DAI
ASoC: mt6797: add PCM interface
ASoC: mediatek: export mtk-afe symbols as needed
ASoC: codecs: PCM1789: include gpio/consumer.h
sched/core: Require cpu_active() in select_task_rq(), for user tasks
sched/core: Fix rules for running on online && !active CPUs
ARM: pxa, regulator: fix building ezx e680
spi: Fix typo on SPI_MEM help text
ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1
ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15
ARM: KVM: invalidate icache on guest exit for Cortex-A15
ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17
ARM: spectre-v2: warn about incorrect context switching functions
ARM: spectre-v2: add firmware based hardening
mmc: sdhci-msm: Remove NO_CARD_NO_RESET quirk
ARM: spectre-v2: harden user aborts in kernel space
ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit
ARM: spectre-v2: harden branch predictor on context switches
ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre
ARM: bugs: add support for per-processor bug checking
ARM: bugs: hook processor bug checking into SMP and suspend paths
ARM: bugs: prepare processor bug infrastructure
ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs
btrfs: Add unprivileged version of ino_lookup ioctl
btrfs: Add unprivileged ioctl which returns subvolume's ROOT_REF
btrfs: Add unprivileged ioctl which returns subvolume information
ovl: use inode_insert5() to hash a newly created inode
ovl: Pass argument to ovl_get_inode() in a structure
vfs: factor out inode_insert5()
ovl: clean up copy-up error paths
ovl: return EIO on internal error
ovl: make ovl_create_real() cope with vfs_mkdir() safely
ovl: create helper ovl_create_temp()
ovl: return dentry from ovl_create_real()
ovl: struct cattr cleanups
ovl: strip debug argument from ovl_do_ helpers
ovl: remove WARN_ON() real inode attributes mismatch
ovl: Kconfig documentation fixes
ovl: update documentation for unionmount-testsuite
driver core: hold dev's parent lock when needed
xfrm Fix potential error pointer dereference in xfrm_bundle_create.
drm: Fix possible race conditions while unplugging DRM device
ALSA: xen-front: fix a loop timeout
m68k: Set default dma mask for platform devices
selftests: lib: fix prime_numbers module search and skip logic
selftests: intel_pstate: notification about privilege required to run intel_pstate testing script
selftests: cgroup/memcontrol: add basic test for socket accounting
fs: clear writeback errors in inode_init_always
smb3: add tracepoints for smb2/smb3 open
KVM: PPC: Book3S PR: Move kvmppc_save_tm/kvmppc_restore_tm to separate file
block: fixup bioset_integrity_create() call
RDMA/hns: Implement the disassociate_ucontext API
RDMA/uverbs: Hoist the common process of disassociate_ucontext into ib core
RDMA/hns: Fix the illegal memory operation when cross page
RDMA/hns: Add reset process for RoCE in hip08
Input: ti_am335x_tsc - prevent system suspend when TSC is in use
Input: ti_am335x_tsc - ack pending IRQs at probe and before suspend
Input: cros_ec_keyb - mark cros_ec_keyb driver as wake enabled device.
KVM: PPC: Book3S HV: Factor fake-suspend handling out of kvmppc_save/restore_tm
KVM: PPC: Book3S PR: Allow KVM_PPC_CONFIGURE_V3_MMU to succeed
cifs: add debug output to show nocase mount option
smb3: add define for id for posix create context and corresponding struct
cifs: update smb2_check_message to handle PDUs without a 4 byte length header
block: Drop bioset_create()
xfs: convert to bioset_init()/mempool_init()
btrfs: convert to bioset_init()/mempool_init()
fs: convert block_dev.c to bioset_init()
target: convert to bioset_init()/mempool_init()
dm: convert to bioset_init()/mempool_init()
md: convert to bioset_init()/mempool_init()
bcache: convert to bioset_init()/mempool_init()
lightnvm: convert to bioset_init()/mempool_init()
pktcdvd: convert to bioset_init()/mempool_init()
drbd: convert to bioset_init()/mempool_init()
block: convert bounce, q->bio_split to bioset_init()/mempool_init()
selftest: intel_pstate: debug support message from aperf.c and return value
kselftest/cgroup: fix variable dereferenced before check warning
selftests/intel_pstate: Enhance table printing
selftests/intel_pstate: Improve test, minor fixes
selftests: cgroup/memcontrol: add basic test for swap controls
selftests: cgroup: add memory controller self-tests
selftests: memfd: split regular and hugetlbfs tests
selftests: net: return Kselftest Skip code for skipped tests
selftests: mqueue: return Kselftest Skip code for skipped tests
selftests: memory-hotplug: return Kselftest Skip code for skipped tests
selftests: memfd: return Kselftest Skip code for skipped tests
selftests: membarrier: return Kselftest Skip code for skipped tests
selftests: media_tests: return Kselftest Skip code for skipped tests
selftests: locking: return Kselftest Skip code for skipped tests
selftests: locking: add Makefile for locking test
selftests: lib: return Kselftest Skip code for skipped tests
selftests: lib: add prime_numbers.sh test to Makefile
selftests: kvm: return Kselftest Skip code for skipped tests
selftests: kmod: return Kselftest Skip code for skipped tests
selftests: ipc: return Kselftest Skip code for skipped tests
selftests: intel_pstate: return Kselftest Skip code for skipped tests
selftests: gpio: return Kselftest Skip code for skipped tests
selftests: firmware: return Kselftest Skip code for skipped tests
selftests: filesystems: return Kselftest Skip code for skipped tests
selftests: exec: return Kselftest Skip code for skipped tests
selftests: efivarfs: return Kselftest Skip code for skipped tests
selftests: cpufreq: return Kselftest Skip code for skipped tests
selftests: cpu-hotplug: return Kselftest Skip code for skipped tests
selftests: breakpoints: return Kselftest Skip code for skipped tests
selftests: android: ion: return Kselftest Skip code for skipped tests
selftests: memory-hotplug: delete RUN_TESTS and EMIT_TESTS overrides
selftests: mqueue: delete RUN_TESTS and EMIT_TESTS overrides
selftests: mount: delete RUN_TESTS and EMIT_TESTS overrides
selftests: futex: delete RUN_TESTS and EMIT_TESTS overrides
selftests: android: delete RUN_TESTS and EMIT_TESTS overrides
selftests: kselftest: change KSFT_SKIP=4 instead of KSFT_PASS
selftests: lib.mk: add test execute bit check to EMIT_TESTS
selftests: lib.mk: add SKIP handling and test suite name to EMIT_TESTS
selftests: lib.mk: Include test suite name in the RUN_TESTS output
selftests: lib.mk: move running and printing result to a new function
selftests: lib.mk: add SKIP handling to RUN_TESTS define
selftests: lib.mk: cleanup RUN_TESTS define and make it readable
selftests: rtc: rework rtctest
selftests: move RTC tests to rtc subfolder
selftests: timers: rtcpie: restore previous PIE rate
selftests: timers: move PIE tests out of rtctest
selftests/filesystems: devpts_pts included wrong header
selftests/x86: Detect -no-pie availability
selftests: filesystems: fix spelling mistake: "desciptor" -> "descriptor"
selftests: media_tests: fix spelling mistake: "iternations" -> "iterations"
selftests: kvm: update .gitignore with missing file
selftests: kvm: add .gitignore for generated files
bpf: Change bpf_fib_lookup to return -EAFNOSUPPORT for unsupported address families
cpuidle: governors: Consolidate PM QoS handling
cpuidle: governors: Drop redundant checks related to PM QoS
smb3: allow "posix" mount option to enable new SMB311 protocol extensions
smb3: add support for posix negotiate context
cifs: allow disabling less secure legacy dialects
cifs: make minor clarifications to module params for cifs.ko
cifs: show the "w" bit for writeable /proc/fs/cifs/* files
smb3: add module alias for smb3 to cifs.ko
cifs: return error on invalid value written to cifsFYI
cifs: invalidate cache when we truncate a file
smb3: print tree id in debugdata in proc to be able to help logging
smb3: add additional ftrace entry points for entry/exit to cifs.ko
smb3: fix various xid leaks
CIFS: Introduce offset for the 1st page in data transfer structures
bpf: devmap: remove redundant assignment of dev = dev
i2c: tegra: Remove suspend-resume
i2c: imx-lpi2c: Switch to SPDX identifier
i2c: mxs: Switch to SPDX identifier
clk: davinci: Fix link errors when not all SoCs are enabled
clk: davinci: psc: allow for dev == NULL
clk: davinci: da850-pll: change PLL0 to CLK_OF_DECLARE
clk: davinci: pll: allow dev == NULL
clk: davinci: psc-dm365: fix few clocks
clk: davinci: pll-dm646x: keep PLL2 SYSCLK1 always enabled
clk: davinci: psc-dm355: fix ASP0/1 clkdev lookups
clk: davinci: pll-dm355: fix SYSCLKn parent names
clk: davinci: pll-dm355: drop pll2_sysclk2
mtd: cfi_cmdset_0002: Change erase one block to enable XIP once
mtd: cfi_cmdset_0002: Change erase functions to check chip good only
mtd: cfi_cmdset_0002: Change erase functions to retry for error
mtd: cfi_cmdset_0002: Change definition naming to retry write operation
mtd: cfi_cmdset_0002: Change write buffer to check correct value
Btrfs: clean up error handling in btrfs_truncate()
qtnfmac: fix invalid STA state on EAPOL failure
qtnfmac: cancel scan on disconnect
qtnfmac: fix bg_scan_period parameter processing
qtnfmac: fix firmware command error path
qtnfmac: improve control path timeout handling
qtnfmac: cleanup wdev structure between its uses
qtnfmac: decode error codes from firmware replies
qtnfmac: simplify notation
qtnfmac: remove unused function declarations
drm/v3d: add CONFIG_MMU dependency
drm/vc4: Fix leak of the file_priv that stored the perfmon.
platform/chrome: Use to_cros_ec_dev more broadly
blk-throttle: return proper bool type to caller instead of 0/1
perf tools: Fix perf.data format description of NRCPUS header
perf script python: Add addr into perf sample dict
perf data: Update documentation section on cpu topology
perf cs-etm: Fix indexing for decoder packet queue
perf bpf: Fix NULL return handling in bpf__prepare_load()
drm/bridge/synopsys: dw-hdmi: fix dw_hdmi_setup_rx_sense
drm/amdgpu/display: check if ppfuncs exists before using it
drm/amd/pp: Connect display_clock_voltage_request to a function pointer
drm/amdgpu: typo fix for vega20 cg flags
drm/amd/powerplay: bug fixs for getsmuclockinfo
drm/amdgpu: correct SMU11 SYSPLL0 clock id values
drm/amdgpu: gds bo must not be per-vm-bo
drm/amdgpu: To get gds, gws and oa from adev->gds (v2)
blk-mq: only iterate over inflight requests in blk_mq_tagset_busy_iter
nbd: clear DISCONNECT_REQUESTED flag once disconnection occurs.
vhost_net: flush batched heads before trying to busy polling
MAINTAINERS: add myself as maintainer for QorIQ PTP clock driver
drivers/net: Fix various unnecessary characters after logging newlines
net: davinci: fix building davinci mdio code without CONFIG_OF
net: ethernet: freescale: fix false-positive string overflow warning
tpm: fix race condition in tpm_common_write()
btrfs: Factor out write portion of btrfs_get_blocks_direct
btrfs: Factor out read portion of btrfs_get_blocks_direct
blk-throttle: fix potential NULL pointer dereference in throtl_select_dispatch
block: kyber: make kyber more friendly with merging
blk-mq: abstract out blk-mq-sched rq list iteration bio merge helper
PCI: Enable PCI_DOMAINS along with generic PCI host controller
PCI: Add support for unbinding the generic PCI host controller
PCI: Rework of_pci_get_host_bridge_resources() to devm_of_pci_get_host_bridge_resources()
PCI: Use dev_printk() in of_pci_get_host_bridge_resources()
PCI: Pass struct device to of_pci_get_host_bridge_resources()
PCI: Rename of_pci_get_host_bridge_resources() device node parameter
PCI: Fix devm_pci_alloc_host_bridge() memory leak
crypto: chtls - free beyond end rspq_skb_cache
crypto: chtls - kbuild warnings
crypto: chtls - dereference null variable
crypto: chtls - wait for memory sendmsg, sendpage
crypto: chtls - key len correction
crypto: salsa20 - Revert "crypto: salsa20 - export generic helpers"
crypto: x86/salsa20 - remove x86 salsa20 implementations
crypto: ccp - Add GET_ID SEV command
crypto: ccp - Add DOWNLOAD_FIRMWARE SEV command
crypto: qat - Add MODULE_FIRMWARE for all qat drivers
crypto: ccree - silence debug prints
crypto: ccree - better clock handling
crypto: ccree - correct host regs offset
crypto: chelsio - Remove separate buffer used for DMA map B0 block in CCM
crypt: chelsio - Send IV as Immediate for cipher algo
crypto: chelsio - Return -ENOSPC for transient busy indication.
crypto: caam/qi - fix warning in init_cgr()
crypto: caam - fix rfc4543 descriptors
crypto: caam - fix MC firmware detection
crypto: clarify licensing of OpenSSL asm code
crypto: morus - Mark MORUS SIMD glue as x86-specific
crypto: testmgr - eliminate redundant decryption test vectors
crypto: testmgr - add extra kw(aes) encryption test vector
crypto: testmgr - add extra ecb(tnepres) encryption test vectors
crypto: testmgr - make an cbc(des) encryption test vector chunked
crypto: testmgr - add extra ecb(des) encryption test vectors
f2fs: turn down IO priority of discard from background
f2fs: don't split checkpoint in fstrim
f2fs: issue discard commands proactively in high fs utilization
ASoC: core: Fix return code shown on error for hw_params
btrfs: return ENOMEM if path allocation fails in btrfs_cross_ref_exist
PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver DT bindings
btrfs: raid56: Remove VLA usage
xfs: repair superblocks
xfs: add helpers to attach quotas to inodes
xfs: recover AG btree roots from rmap data
xfs: add helpers to dispose of old btree blocks after a repair
xfs: add helpers to collect and sift btree block pointers during repair
xfs: add helpers to allocate and initialize fresh btree roots
xfs: add helpers to deal with transaction allocation and rolling
xfs: grab the per-ag structure whenever relevant
btrfs: return error value if create_io_em failed in cow_file_range
btrfs: drop useless member qgroup_reserved of btrfs_pending_snapshot
btrfs: drop unused parameter qgroup_reserved
btrfs: balance dirty metadata pages in btrfs_finish_ordered_io
btrfs: lift some btrfs_cross_ref_exist checks in nocow path
btrfs: Remove fs_info argument from btrfs_uuid_tree_rem
btrfs: Remove fs_info argument from btrfs_uuid_tree_add
Btrfs: remove unused check of skip_locking
Btrfs: remove always true check in unlock_up
Btrfs: grab write lock directly if write_lock_level is the max level
Btrfs: move get root out of btrfs_search_slot to a helper
Btrfs: use more straightforward extent_buffer_uptodate check
Btrfs: remove superfluous free_extent_buffer in read_block_for_search
btrfs: drop unused space_info parameter from create_space_info
Btrfs: add parent_transid parameter to veirfy_level_key
btrfs: qgroup: show more meaningful qgroup_rescan_init error message
Btrfs: fix memory and mount leak in btrfs_ioctl_rm_dev_v2()
btrfs: lzo: Harden inline lzo compressed extent decompression
btrfs: lzo: Add header length check to avoid potential out-of-bounds access
perf test: "Session topology" dumps core on s390
regulator: Revert coupled regulator support again
regulator: wm8994: Fix shared GPIOs
regulator: max77686: Fix shared GPIOs
Bluetooth: btusb: Add additional device ID for RTL8822BE
perf parse-events: Handle uncore event aliases in small groups properly
mmc: sunxi: Use ifdef rather than __maybe_unused
mmc: mxmmc: Use ifdef rather than __maybe_unused
PM / Domains: Drop unused parameter in genpd_allocate_dev_data()
PM / Domains: Drop genpd as in-param for pm_genpd_remove_device()
PM / Domains: Drop __pm_genpd_add_device()
PM / Domains: Drop extern declarations of functions in pm_domain.h
PM / domains: Add perf_state attribute to genpd debugfs
ALSA: xen-front: freeing an error pointer
dt-bindings: cpufreq: Document operating-points-v2-kryo-cpu
cpufreq: Add Kryo CPU scaling driver
bpftool: Support sendmsg{4,6} attach types
bpf: add selftest for lirc_mode2 type program
media: rc: introduce BPF_PROG_LIRC_MODE2
bpf: bpf_prog_array_copy() should return -ENOENT if exclude_prog not found
ASoC: imx-audmux: add RXFS/RXCLK defines for 6-wire connections
ASoC: fix 0-day warnings with snd_soc_new_compress()
regulator: bd71837: BD71837 PMIC regulator driver
regulator: bd71837: Devicetree bindings for BD71837 regulators
OPP: Allow same OPP table to be used for multiple genpd
s390/zcrypt: Fix CCA and EP11 CPRB processing failure memory leak.
s390/archrandom: Rework arch random implementation.
s390/net: add pnetid support
cpufreq: Use static SRCU initializer
kernel/SRCU: provide a static initializer
cpufreq: Fix new policy initialization during limits updates via sysfs
gpio: davinci: fix build warning when !CONFIG_OF
iwlwifi: fix non_shared_ant for 9000 devices
iwlwifi: mvm: fix race in queue notification wait
iwlwifi: mvm: honor the max_amsdu_subframes limit
HID: rmi: use HID_QUIRK_NO_INPUT_SYNC
iwlwifi: mvm: open BA session only when sta is authorized
HID: multitouch: fix calculation of last slot field in multi-touch reports
HID: quirks: remove Delcom Visual Signal Indicator from hid_have_special_driver[]
HID: steam: select CONFIG_POWER_SUPPLY
iwlwifi: mvm: remove division by size of sizeof(struct ieee80211_wmm_rule)
Bluetooth: hci_serdev: Fix HCI_UART_INIT_PENDING not working
HID: i2c-hid: remove i2c_hid_open_mut
Bluetooth: hci_serdev: Move serdev_device_close/open into common hci_serdev code
thermal: int340x: processor_thermal: Add GeminiLake support
drivers: thermal: Update license to SPDX format
Bluetooth: hci_uart: Restore hci_dev->flush callback on open()
iwlwifi: pcie: fix race in Rx buffer allocator
iwlwifi: mvm: fix TSO with highly fragmented SKBs
iwlmvm: tdls: Check TDLS channel switch support
thermal: int340x: Prevent error in reading trip hysteresis attribute
Bluetooth: btmrvl: Re-use kstrtol_from_user()
Bluetooth: Re-use kstrtobool_from_user()
Bluetooth: hci_qca: Fix "Sleep inside atomic section" warning
iwlwifi: mvm: drop UNKNOWN security type frames
nvme-loop: add support for multiple ports
nvme-pci: simplify __nvme_submit_cmd
nvme-pci: Rate limit the nvme timeout warnings
nvme: allow duplicate controller if prior controller being deleted
ALSA: hda/realtek - Enable mic-mute hotkey for several Lenovo AIOs
aio: sanitize the limit checking in io_submit(2)
aio: fold do_io_submit() into callers
aio: shift copyin of iocb into io_submit_one()
aio_read_events_ring(): make a bit more readable
aio: all callers of aio_{read,write,fsync,poll} treat 0 and -EIOCBQUEUED the same way
aio: take list removal to (some) callers of aio_complete()
remoteproc: q6v5: Allow defining GLINK edge for mss remoteproc
remoteproc: q6v5: Add support for mss remoteproc on SDM845
remoteproc: q6v5: Introduce reset assert/deassert helper functions
dt-bindings: remoteproc: Add Q6v5 Modem PIL binding for SDM845
net/mlx5e: Get the number of offloaded TC rules from the correct table
net/mlx5: FPGA, Call DMA unmap with the right size
net/mlx5: FPGA, Properly initialize dma direction on fpga conn send
net/mlx5: FPGA, Abort FPGA init if the device reports no QP capability
net/mlx5: FPGA, print SBU identification on init
net/mlx5: FPGA, Add device name
net/mlx5: FPGA, Add doxygen for access type enum
selinux: KASAN: slab-out-of-bounds in xattr_getsecurity
Input: mk712 - update documentation web link
platform/chrome: chromeos_laptop: fix touchpad button mapping on Celes
RDMA/core: Remove indirection through ib_cache_setup()
IB/mlx5: Introduce a new mini-CQE format
IB/mlx5: Refactor CQE compression response
hwmon: (gpio-fan) Fix "#cooling-cells" property name in bindings
net/mlx5: Exposing a new mini-CQE format
ALSA: hda/realtek - Fixup for HP x360 laptops with B&O speakers
bpf: Verify flags in bpf_fib_lookup
bpf: Drop mpls from bpf_fib_lookup
bpf: hide the unused 'off' variable
bpf: clean up eBPF helpers documentation
drm/amd/display: Fix BUG_ON during CRTC atomic check update
bpfilter: fix a build err
f2fs: add fsync_mode=nobarrier for non-atomic files
f2fs: let fstrim issue discard commands in lower priority
drm/amd/display: Fix BUG_ON during CRTC atomic check update
drm/amd/display: Read DP_SINK_COUNT_ESI range on HPD for DP 1.4
block: remove parent device reference from struct bsg_class_device
drm/amd/display: Read DPCD link caps up to and including DP_ADAPTER_CAP
i2c: busses: make use of i2c_8bit_addr_from_msg
drm/amd/display: Do not program interrupt status on disabled crtc
i2c: algos: make use of i2c_8bit_addr_from_msg
nvme: fix extended data LBA supported setting
drm/amd/display: fix dscl_manual_ratio_init
drm/amd/display: Destroy connector state on reset
drm/amd/display: Set TMZ and DCC for secondary surface
drm/amd/display: DP component depth 16 bpc
drm/amd/display: check if audio clk enable is applicable
drm/amd/display: add register offset != 0 check.
drm/amd/display: Release fake sink
drm/amd/display: replace msleep with udelay in fbc path
drm/amd/display: Do not limit color depth to 8bpc
drm/amdgpu: remove unnecessary scheduler entity for VCN
drm/amdgpu: Add helper function to get buffer domain
drm/amdgpu: Use GTT for dumb buffer if sg display enabled (v2)
drm/amd/pp: Add cases for getting phys and disp clks for SMU10
drm/amd/display: Fix wrong latency assignment for VEGA clock levels
i2c: ocores: update HDL sources URL
IB/core: Fix error code for invalid GID entry
i2c: rcar: document R8A77980 bindings
i2c: qup: Add command-line parameter to override SCL frequency
i2c: qup: Correct duty cycle for FM and FM+
i2c: qup: Add support for Fast Mode Plus
i2c: qup: add probe path for Centriq ACPI devices
fs: xfs: Change return type to vm_fault_t
xfs: fix inobt magic number check
fs: clear writeback errors in inode_init_always
vfs: delete unnecessary assignment in vfs_listxattr
cpupower : Fix header name to read idle state name
btrfs: lzo: document the compressed data format
btrfs: compression: Add linux/sizes.h for compression.h
Btrfs: fix clone vs chattr NODATASUM race
btrfs: propagate failures of __exclude_logged_extent to upper caller
btrfs: Streamline shared ref check in alloc_reserved_tree_block
btrfs: Pass btrfs_delayed_extent_op to alloc_reserved_tree_block
btrfs: Simplify alloc_reserved_tree_block interface
btrfs: Remove fs_info argument from alloc_reserved_tree_block
btrfs: tests: drop newline from test_msg strings
btrfs: tests: add helper for error messages and update them
ARM: mcpm, perf/arm-cci: export mcpm_is_available
dlm: remove O_NONBLOCK flag in sctp_connect_to_sock
drivers/bus: arm-cci: fix build warnings
tun: Fix NULL pointer dereference in XDP redirect
signal/sh: Stop gcc warning about an impossible case in do_divide_error
block: don't print a message when the device went away
block: unexport check_disk_size_change
block: move ->timeout request member
blk-mq: simplify blk_mq_rq_timed_out
block: document the blk_eh_timer_return values
block: remove BLK_EH_HANDLED
libiscsi: don't try to bypass SCSI EH
mmc: complete requests from ->timeout
scsi_transport_fc: complete requests from ->timeout
null_blk: complete requests from ->timeout
mtip32xx: complete requests from ->timeout
nbd: complete requests from ->timeout
nvme: return BLK_EH_DONE from ->timeout
block: rename BLK_EH_NOT_HANDLED to BLK_EH_DONE
blk-mq: Remove generation seqeunce
iommu/io-pgtable-arm: Make allocations NUMA-aware
be2net: Fix error detection logic for BE3
net: qmi_wwan: Add Netgear Aircard 779S
regulator: gpio: Get enable GPIO using GPIO descriptor
regulator: fixed: Convert to use GPIO descriptor only
blk-mq: Fix timeout and state order
libata: remove ata_scsi_timed_out
ASoC: atmel-i2s: add driver for the new Atmel I2S controller
ASoC: atmel-i2s: dt-bindings: add DT bindings for I2S controller
ASoC: qdsp6: q6routing: Add support to all TDM Mixers
ASoC: qdsp6: q6routing: Add macros for mixers
ASoC: qdsp6: q6afe-dai: add support to tdm dais
ASoC: qdsp6: q6afe-dai: use q6afe_dai_prepare() for MI2S
ASoC: qdsp6: qdafe: add support to tdm ports
ASoC: qdsp6: dt-bindings: Add q6afe tdm dt binding
tcp: use data length instead of skb->len in tcp_probe
crypto: chtls: free beyond end rspq_skb_cache
crypto: chtls: kbuild warnings
crypto: chtls: dereference null variable
crypto: chtls: wait for memory sendmsg, sendpage
crypto:chtls: key len correction
selftests: fib_tests: Add prefix route tests with metric
net/ipv6: Add support for specifying metric of connected routes
net/ipv4: Add support for specifying metric of connected routes
net: Add IFA_RT_PRIORITY address attribute
net/ipv6: Pass ifa6_config struct to inet6_addr_modify
net/ipv6: Pass ifa6_config struct to inet6_addr_add
net/ipv6: Convert ipv6_add_addr to struct ifa6_config
nds32: use generic dma_noncoherent_ops
nds32: implement the unmap_sg DMA operation
nds32: consolidate DMA cache maintainance routines
mlxsw: pci: Utilize MRSR register to perform FW reset
mlxsw: cmd: Handle error after reset gracefully
mlxsw: reg: Add Management Reset and Shutdown Register
mlxsw: spectrum: Forbid creation of VLAN 1 over port/LAG
net: qcom/emac: fix device tree initialization
net/mlx5e: fix TLS dependency
atm: zatm: fix memcmp casting
Bluetooth: btusb: Add Dell Inspiron 5565 to btusb_needs_reset_resume_table
Bluetooth: hci_serdev: Removed unnecessary curly braces
Bluetooth: btmrvl: support sysfs initiated firmware coredump
Bluetooth: btusb: Apply QCA Rome patches for some ATH3012 models
Bluetooth: btusb: Add a new Realtek 8723DE ID 2ff8:b011
ASoC: dpcm: symmetry constraint on FE substream
ASoC: dpcm: fix BE dai not hw_free and shutdown
ASoC: AMD: make channel 1 dma as circular
ASoC: Intel: bytcr_rt5640: Add quirk for the ARCHOS 80 Cesium 8" windows tablet
net: remove unnecessary genlmsg_cancel() calls
net: bpfilter: make function bpfilter_mbox_request() static
nfp: abm: report correct MQ stats
net: sched: mq: request stats from offloads
nfp: abm: multi-queue RED offload
net: sched: mq: add simple offload notification
nfp: abm: expose all PF queues
nfp: abm: expose the internal stats in ethtool
nfp: allow apps to add extra stats to ports
nfp: abm: report statistics from RED offload
net: sched: add qstats.qlen to qlen
nfp: abm: add simple RED offload
nfp: abm: add helpers for configuring queue marking levels
nfp: abm: enable advanced queuing on demand
nfp: prefix vNIC phys_port_name with 'n'
nfp: return -EOPNOTSUPP from .ndo_get_phys_port_name for VFs
libata: zpodd: small read overflow in eject_tray()
kbuild: add endianness flag to CHEKCFLAGS
kbuild: $(CHECK) doesnt need NOSTDINC_FLAGS twice
scripts: Fixed printf format mismatch
netfilter: nf_tables: remove unused variables
netfilter: nf_tables: use call_rcu in netlink dumps
netfilter: nf_tables: fail batch if fatal signal is pending
netfilter: nf_tables: fix endian mismatch in return type
netfilter: nft_compat: use call_rcu for nfnl_compat_get
netfilter: nat: make symbol nat_hook static
netfilter: nf_tables: remove synchronize_rcu in commit phase
Documentation: document hung_task_panic kernel parameter
docs/admin-guide/mm: add high level concepts overview
docs/vm: move ksm and transhuge from "user" to "internals" section.
docs: Use the kerneldoc comments for memalloc_no*()
doc: document scope NOFS, NOIO APIs
tracing/selftest: Add test to test hist trigger between kernel event and trace_marker
tracing/selftest: Add selftests to test trace_marker histogram triggers
ftrace/selftest: Fix reset_trigger() to handle triggers with filters
ftrace/selftest: Have the reset_trigger code be a bit more careful
tracing: Document trace_marker triggers
tracing: Allow histogram triggers to access ftrace internal events
tracing: Prevent further users of zero size static arrays in trace events
tracing: Have zero size length in filter logic be full string
tracing: Add trigger file for trace_markers tracefs/ftrace/print
tracing: Do not show filter file for ftrace internal events
tracing: Add brackets in ftrace event dynamic arrays
tracing: Have event_trace_init() called by trace_init_tracefs()
tracing: Add __find_event_file() to find event files without restrictions
tracing: Do not reference event data in post call triggers
iwlwifi: add csr configuration for 6300 devices
bpfilter: fix building without CONFIG_INET
drm/i915/query: nospec expects no more than an unsigned long
mmc: mxmmc: include linux/highmem.h
mmc: sunxi: mark PM functions as __maybe_unused
mmc: Throttle calls to MMC_SEND_STATUS during mmc_do_erase()
mmc: au1xmmc: handle highmem pages
mmc: Allow non-sleeping GPIO cd
mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails
mmc: sd: Define name for default speed dtr
mmc: core: Move calls to ->prepare_hs400_tuning() closer to mmc code
ALSA: hda/realtek - Refactor alc269_fixup_hp_mute_led_mic*()
ALSA: hda/realtek - Fixup mute led on HP Spectre x360
mfd: intel-lpss: Program REMAP register in PIO mode
mfd: cros_ec_i2c: Moving the system sleep pm ops to late
mfd: cros_ec_i2c: Add ACPI module device table
mfd: cros_ec_dev: Register shutdown function for debugfs
mfd: cros_ec_dev: Register cros-ec-rtc driver as a subdevice
mfd: cros_ec: Don't try to grab log when suspended
mfd: cros_ec: Free IRQ automatically
mfd: cros_ec: Fail early if we cannot identify the EC
mfd: syscon: atmel-smc: Include string.h
MAINTAINERS: Add entry for STM32 timer and lptimer drivers
ALSA: usb-audio: Allow non-vmalloc buffer for PCM buffers
ALSA: hda: Add Intel NUC5i7RY to the power_save blacklist
iwlwifi: pcie: compare with number of IRQs requested for, not number of CPUs
Revert "rt2800: use TXOP_BACKOFF for probe frames"
rtlwifi: remove duplicate code
vfio: ccw: add tracepoints for interesting error paths
vfio: ccw: set ccw->cda to NULL defensively
vfio: ccw: refactor and improve pfn_array_alloc_pin()
vfio: ccw: shorten kernel doc description for pfn_array_pin()
vfio: ccw: push down unsupported IDA check
vfio: ccw: fix error return in vfio_ccw_sch_event
mwifiex: reserve passive scan time for radar channel
mwifiex: increase log level for internal scan fail result
mwifiex: mark expected switch fall-throughs
mwifiex: skip sending GT_REKEY_OFFLOAD_CFG if firmware has no support
mwifiex: handle race during mwifiex_usb_disconnect
mwifiex: avoid exporting mwifiex_send_cmd
rsi: fix spelling mistake "Uknown" -> "Unknown"
wlcore: sdio: check for valid platform device data before suspend
atmel: Add missing call to pci_disable_device()
rtlwifi: fix btmpinfo timeout while processing C2H_BT_INFO
rtlwifi: access skb->data to get C2H data by macro
rtlwifi: use sk_buff to queue C2H commands
rtlwifi: remove hal_op c2h_content_parsing
rtlwifi: remove hal_op rx_command_packet
rtlwifi: remove duplicate C2H handler
rtlwifi: Add hal_op c2h_ra_report_handler for special process
rtlwifi: remove dummy hal_op rx_command_packet from rtl8188ee and rtl8723ae
rtlwifi: remove unused fw C2H command ID
rtlwifi: remove duplicate C2H definition
rtlwifi: rename register-based C2H command IDs to V0
rtlwifi: remove duplicate rx_packet_type definition
rtlwifi: remove CONNECTION_MONITOR flag
rtlwifi: support accurate nullfunc frame tx ack report
wlcore: sdio: Fix flakey SDIO runtime PM handling
ALSA: xen: ensure nul-terminated device name
platform: chrome: Add input dependency for tablet switch driver
dmaengine: sprd: Add Spreadtrum DMA configuration
dmaengine: sprd: Optimize the sprd_dma_prep_dma_memcpy()
net: hns3: Fixes initalization of RoCE handle and makes it conditional
net: hns3: Adds support for led locate command for copper port
net: hns3: Remove unused led control code
net: hns3: Clear TX/RX rings when stopping port & un-initializing client
net: hns3: Removes unnecessary check when clearing TX/RX rings
net: hns3: Fixes the init of the VALID BD info in the descriptor
net: hns3: Fixes the state to indicate client-type initialization
net: hns3: Fix for PF mailbox receving unknown message
net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
net: hns3: Add STRP_TAGP field support for hardware revision 0x21
net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
net: hns3: Updates RX packet info fetch in case of multi BD
net: sched: shrink struct Qdisc
qmi_wwan: apply SET_DTR quirk to the SIMCOM shared device ID
net: netsec: reduce DMA mask to 40 bits
ipv6: sr: fix memory OOB access in seg6_do_srh_encap/inline
dt-bindings: stm32: add compatible for syscon
net: stmmac: add dwmac-4.20a compatible
dt-bindings: stm32-dwmac: add support of MPU families
net: ethernet: stmmac: add adaptation for stm32mp157c.
dt-bindings: ptp: add ptp-qoriq.txt
net: ethernet: gianfar_ethtool: get phc index through drvdata
ptp_qoriq: move some definitions to header file
ptp: rework gianfar_ptp as QorIQ common PTP driver
ifb: fix packets checksum
net: phy: realtek: add suspend/resume callbacks for RTL8211B
virtio_net: Extend virtio to use VF datapath when available
virtio_net: Introduce VIRTIO_NET_F_STANDBY feature bit
net: Introduce net_failover driver
netvsc: refactor notifier/event handling code to use the failover framework
net: Introduce generic failover module
vrf: add CRC32c offload to device features
net: stmmac: Use mutex instead of spinlock
bnx2x: Collect the device debug information during Tx timeout.
scsi: lpfc: update driver version to 12.0.0.4
scsi: lpfc: Fix port initialization failure.
scsi: lpfc: Fix 16gb hbas failing cq create.
scsi: lpfc: Fix crash in blk_mq layer when executing modprobe -r lpfc
scsi: lpfc: correct oversubscription of nvme io requests for an adapter
scsi: lpfc: Fix MDS diagnostics failure (Rx < Tx)
scsi: hisi_sas: Mark PHY as in reset for nexus reset
scsi: hisi_sas: Fix return value when get_free_slot() failed
scsi: hisi_sas: Terminate STP reject quickly for v2 hw
scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
scsi: hisi_sas: Try wait commands before before controller reset
scsi: hisi_sas: Init disks after controller reset
scsi: hisi_sas: Create a scsi_host_template per HW module
scsi: hisi_sas: Reset disks when discovered
scsi: hisi_sas: Add LED feature for v3 hw
scsi: hisi_sas: Change common allocation mode of device id
scsi: hisi_sas: change slot index allocation mode
scsi: hisi_sas: Introduce hisi_sas_phy_set_linkrate()
scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
scsi: target: fix spelling mistake "Uknown" -> "Unknown"
scsi: pm80xx: fix spelling mistake "UNSORPORTED" -> "SUPPORTED"
scsi: core: sanitize++ in progress
scsi: scsi_transport_srp: Fix shost to rport translation
powerpc/livepatch: Fix build error with kprobes disabled.
netfilter: nfnetlink: allow commit to fail
netfilter: nat: merge nf_nat_redirect into nf_nat
netfilter: nat: merge ipv4/ipv6 masquerade code into main nat module
netfilter: add includes to nf_socket.h
netfilter: nf_tables: increase nft_counters_enabled in nft_chain_stats_replace()
netfilter: nf_tables: fix NULL-ptr in nf_tables_dump_obj()
netfilter: nf_tables: disable preemption in nft_update_chain_stats()
media: ddbridge: conditionally enable fast TS for stv0910-equipped bridges
media: dvb-frontends/stv0910: make TS speed configurable
media: ddbridge/mci: add identifiers to function definition arguments
media: ddbridge/mci: protect against out-of-bounds array access in stop()
media: rc: ensure input/lirc device can be opened after register
media: rc: nuvoton: Keep device enabled during reg init
media: rc: nuvoton: Keep track of users on CIR enable/disable
media: rc: nuvoton: Tweak the interrupt enabling dance
PM / QoS: Drop redundant declaration of pm_qos_get_value()
media: uvcvideo: Support realtek's UVC 1.5 device
bcache: Replace bch_read_string_list() by __sysfs_match_string()
bcache: Move couple of functions to sysfs.c
bcache: Move couple of string arrays to sysfs.c
bcache: stop bcache device when backing device is offline
media: uvcvideo: Fix driver reference counting
media: gspca_zc3xx: Enable short exposure times for OV7648
media: gspca_zc3xx: Fix power line frequency settings for OV7648
media: gspca_zc3xx: Implement proper autogain and exposure control for OV7648
media: v4l2-core: push taking ioctl mutex down to ioctl handler
media: pvrusb2: replace pvr2_v4l2_ioctl by video_ioctl2
media: au8522: remove duplicate code
media: adv7511: fix incorrect clear of CEC receive interrupt
media: cec: fix wrong tx/rx_status values when canceling a msg
media: hdpvr: fix spelling mistake: "Hauppage" -> "Hauppauge"
media: pxa_camera: avoid duplicate s_power calls
media: staging: tegra-vde: Reset memory client
media: tw686x: Fix incorrect vb2_mem_ops GFP flags
media: m2m-deinterlace: Remove DMA_ENGINE dependency
media: stk1160: Add missing calls to mutex_destroy
media: stk1160: Fix typo s/therwise/Otherwise
media: Remove depends on HAS_DMA in case of platform dependency
media: vivid: potential integer overflow in vidioc_g_edid()
media: cec-pin-error-inj: avoid a false-positive Spectre detection
media: gspca: Kill all URBs before releasing any of them
media: gspca: fix g/s_parm handling
media: v4l2-ioctl: delete unused v4l2_disable_ioctl_locking
media: v4l2-ioctl: clear fields in s_parm
media: gspca: convert to vb2
media: videobuf2-core: don't call memop 'finish' when queueing
kconfig: add basic helper macros to scripts/Kconfig.include
kconfig: show compiler version text in the top comment
kconfig: test: add Kconfig macro language tests
Documentation: kconfig: document a new Kconfig macro language
kconfig: error out if a recursive variable references itself
kconfig: add 'filename' and 'lineno' built-in variables
kconfig: add 'info', 'warning-if', and 'error-if' built-in functions
kconfig: expand lefthand side of assignment statement
kconfig: support append assignment operator
kconfig: support simply expanded variable
kconfig: support user-defined function and recursively expanded variable
kconfig: begin PARAM state only when seeing a command keyword
kconfig: replace $(UNAME_RELEASE) with function call
kconfig: add 'shell' built-in function
kconfig: add built-in function support
kconfig: make default prompt of mainmenu less specific
kconfig: remove sym_expand_string_value()
kconfig: remove string expansion for mainmenu after yyparse()
kconfig: remove string expansion in file_lookup()
kconfig: reference environment variables directly and remove 'option env='
kbuild: remove CONFIG_CROSS_COMPILE support
kbuild: remove kbuild cache
media: ov772x: correct setting of banding filter
media: dt-bindings: ov772x: add device tree binding
media: imx258: get rid of an unused var
media: imx258: Add imx258 camera sensor driver
media: rcar-csi2: set default format if a unsupported one is requested
media: rcar-csi2: add Renesas R-Car MIPI CSI-2 receiver driver
IB/mlx4: Mark user MR as writable if actual virtual memory is writable
IB/core: Make testing MR flags for writability a static inline function
aio: add missing break for the IOCB_CMD_FDSYNC case
NFS: Optimise away lookups for rename targets
NFS: If the VFS sets LOOKUP_REVAL then force a lookup of the dentry
NFS: Optimise away the close-to-open GETATTR when we have NFSv4 OPEN
IB/rxe: avoid unnecessary export
media: rcar-csi2: add Renesas R-Car MIPI CSI-2 receiver documentation
tracepoints: Fix the descriptions of tracepoint_probe_register{_prio}
trace: Use -mcount-record for dynamic ftrace
tracing: Make the snapshot trigger work with instances
IB: Revert "remove redundant INFINIBAND kconfig dependencies"
btrfs: use error code returned by btrfs_read_fs_root_no_name in search ioctl
Btrfs: allow empty subvol= again
btrfs: fix describe_relocation when printing unknown flags
btrfs: use kvzalloc for EXTENT_SAME temporary data
Btrfs: reuse cmp workspace in EXTENT_SAME ioctl
Btrfs: dedupe_file_range ioctl: remove 16MiB restriction
Btrfs: split btrfs_extent_same
Btrfs: reserve space for O_TMPFILE orphan item deletion
Btrfs: renumber BTRFS_INODE_ runtime flags and switch to enums
Btrfs: get rid of unused orphan infrastructure
Btrfs: fix ENOSPC caused by orphan items reservations
Btrfs: refactor btrfs_evict_inode() reserve refill dance
Btrfs: don't return ino to ino cache if inode item removal fails
Btrfs: delete dead code in btrfs_orphan_commit_root()
Btrfs: get rid of BTRFS_INODE_HAS_ORPHAN_ITEM
Btrfs: stop creating orphan items for truncate
Btrfs: don't BUG_ON() in btrfs_truncate_inode_items()
Btrfs: fix error handling in btrfs_truncate_inode_items()
Btrfs: update stale comments referencing vmtruncate()
btrfs: Remove stale comment about select_delayed_ref
btrfs: sysfs: Add entry which shows if rmdir can work on subvolumes
btrfs: sysfs: Use enum/define value for feature array definitions
btrfs: add prefix "balance:" for log messages
btrfs: unify naming of flags variables for SETFLAGS and XFLAGS
btrfs: add FS_IOC_FSSETXATTR ioctl
btrfs: add FS_IOC_FSGETXATTR ioctl
btrfs: add helpers for FS_XFLAG_* conversion
btrfs: rename btrfs_flags_to_ioctl to reflect which flags it touches
btrfs: rename check_flags to reflect which flags it touches
btrfs: rename btrfs_mask_flags to reflect which flags it touches
btrfs: rename btrfs_update_iflags to reflect which flags it touches
btrfs: use common variable for fs_devices in btrfs_destroy_dev_replace_tgtdev
btrfs: drop uuid_mutex in btrfs_destroy_dev_replace_tgtdev
btrfs: drop uuid_mutex in btrfs_dev_replace_finishing
btrfs: replace uuid_mutex by device_list_mutex in btrfs_open_devices
btrfs: document uuid_mutex uasge in read_chunk_tree
btrfs: use existing cur_devices, cleanup btrfs_rm_device
btrfs: reduce uuid_mutex critical section while scanning devices
btrfs: Unexport and rename btrfs_invalidate_inodes
btrfs: replace waitqueue_actvie with cond_wake_up
btrfs: add barriers to btrfs_sync_log before log_commit_wait wakeups
btrfs: introduce conditional wakeup helpers
btrfs: qgroup: Finish rescan when hit the last leaf of extent tree
btrfs: qgroup: Search commit root for rescan to avoid missing extent
btrfs: take the last remnants of ->d_fsdata use out
btrfs: Do super block verification before writing it to disk
btrfs: Refactor btrfs_check_super_valid
btrfs: Move btrfs_check_super_valid() to avoid forward declaration
btrfs: Remove fs_info argument from populate_free_space_tree
btrfs: Remove fs_info argument from add_to_free_space_tree
btrfs: Remove fs_info argument from remove_from_free_space_tree
btrfs: Remove fs_info argument from __remove_from_free_space_tree
btrfs: Remove fs_info argument from remove_free_space_extent
btrfs: Remove fs_info argument from add_free_space_extent
btrfs: Remove fs_info argument from modify_free_space_bitmap
btrfs: Remove fs_info argument from update_free_space_extent_count
btrfs: Remove fs_info parameter from convert_free_space_to_extents
btrfs: Remove fs_info argument from convert_free_space_to_bitmaps
btrfs: Remove fs_info parameter from remove_block_group_free_space
btrfs: Remove fs_info argument from add_new_free_space
btrfs: Remove fs_info parameter from add_new_free_space_info
btrfs: Remove fs_info argument from __add_to_free_space_tree
btrfs: Remove fs_info argument from __add_block_group_free_space
btrfs: Remove fs_info argument from add_block_group_free_space
btrfs: Make btrfs_init_dummy_trans initialize trans' fs_info field
btrfs: Add assert in __btrfs_del_delalloc_inode
btrfs: incremental send, improve rmdir performance for large directory
btrfs: incremental send, move allocation until it's needed in orphan_dir_info
btrfs: split delayed ref head initialization and addition
btrfs: Use init_delayed_ref_head in add_delayed_ref_head
btrfs: Introduce init_delayed_ref_head
btrfs: Open-code add_delayed_data_ref
btrfs: Open-code add_delayed_tree_ref
btrfs: Use init_delayed_ref_common in add_delayed_data_ref
btrfs: Use init_delayed_ref_common in add_delayed_tree_ref
btrfs: Factor out common delayed refs init code
btrfs: return original error code when failing from option parsing
btrfs: remove redundant btrfs_balance_control::fs_info
btrfs: qgroup: Allow trace_btrfs_qgroup_account_extent() to record its transid
btrfs: send: fix spelling mistake: "send_in_progres" -> "send_in_progress"
btrfs: Remove devid parameter from btrfs_rmap_block
btrfs: trace: Allow trace_qgroup_update_counters() to record old rfer/excl value
btrfs: Unexport btrfs_alloc_delalloc_work
btrfs: Remove delayed_iput member from btrfs_delalloc_work
btrfs: Remove delay_iput parameter from __start_delalloc_inodes
btrfs: Remove delayed_iput parameter from btrfs_start_delalloc_inodes
btrfs: Remove delayed_iput parameter of btrfs_start_delalloc_roots
btrfs: do reverse path readahead in btrfs_shrink_device
btrfs: trace: Add trace points for unused block groups
btrfs: trace: Remove unnecessary fs_info parameter for btrfs__reserve_extent event class
btrfs: remove unused fs_info parameter
btrfs: move btrfs_raid_mindev_errorvalues to btrfs_raid_attr table
btrfs: move btrfs_raid_group values to btrfs_raid_attr table
btrfs: move btrfs_raid_type_names values to btrfs_raid_attr table
btrfs: print-tree: Add eb locking status output for debug build
btrfs: open code set_balance_control
btrfs: use mutex in btrfs_resume_balance_async
btrfs: drop lock parameter from update_ioctl_balance_args and rename
btrfs: move and comment read-only check in btrfs_cancel_balance
btrfs: track running balance in a simpler way
btrfs: kill btrfs_fs_info::volume_mutex
btrfs: remove wrong use of volume_mutex from btrfs_dev_replace_start
btrfs: cleanup helpers that reset balance state
btrfs: add sanity check when resuming balance after mount
btrfs: add proper safety check before resuming dev-replace
btrfs: move clearing of EXCL_OP out of __cancel_balance
btrfs: move volume_mutex to callers of btrfs_rm_device
btrfs: move btrfs_init_dev_replace_tgtdev to dev-replace.c and make static
btrfs: export and rename free_device
btrfs: make success path out of btrfs_init_dev_replace_tgtdev more clear
btrfs: squeeze btrfs_dev_replace_continue_on_mount to its caller
btrfs: cleanup btrfs_rm_device() promote fs_devices pointer
btrfs: cleanup find_device() drop list_head pointer
btrfs: rename __btrfs_open_devices to open_fs_devices
btrfs: rename __btrfs_close_devices to close_fs_devices
btrfs: cleanup __btrfs_open_devices() drop head pointer
btrfs: rename struct btrfs_fs_devices::list
btrfs: Drop fs_info parameter from btrfs_merge_delayed_refs
btrfs: Drop fs_info parameter from add_delayed_data_ref
btrfs: Drop add_delayed_ref_head fs_info parameter
btrfs: Remove btrfs_wait_and_free_delalloc_work
btrfs: Remove tree argument from extent_writepages
btrfs: Use list_empty instead of list_empty_careful
btrfs: Remove redundant tree argument from extent_readpages
btrfs: Remove map argument from try_release_extent_state
btrfs: Sink extent_tree arguments in try_release_extent_mapping
btrfs: Allow rmdir(2) to delete an empty subvolume
btrfs: Factor out the main deletion process from btrfs_ioctl_snap_destroy()
btrfs: Move may_destroy_subvol() from ioctl.c to inode.c
btrfs: remove unused le_test_bit()
btrfs: optimize free space tree bitmap conversion
btrfs: clean up le_bitmap_{set, clear}()
btrfs: use fs_info for btrfs_handle_em_exist tracepoint
btrfs: tests: pass fs_info to extent_map tests
btrfs: tracepoints, use extended format with UUID where possible
btrfs: tracepoints, fix whitespace in strings
btrfs: tracepoints, drop unnecessary ULL casts
btrfs: tracepoints, use %llu instead of %Lu
btrfs: tracepoints, use correct type for inode number
btrfs: Consolidate error checking for btrfs_alloc_chunk
btrfs: Fix lock release order
btrfs: Use while loop instead of labels in __endio_write_update_ordered
btrfs: add comment about BTRFS_FS_EXCL_OP
selftests/bpf: Selftest for sys_sendmsg hooks
selftests/bpf: Prepare test_sock_addr for extension
libbpf: Support guessing sendmsg{4,6} progs
bpf: Sync bpf.h to tools/
bpf: Hooks for sys_sendmsg
bpf: Define cgroup_bpf_enabled for CONFIG_CGROUP_BPF=n
selftests/bpf: missing headers test_lwt_seg6local
bpf: avoid -Wmaybe-uninitialized warning
bpf: btf: avoid -Wreturn-type warning
arm: dts: armada: Fix "#cooling-cells" property's name
ALSA: usb-audio: Avoid lowlevel device object
ALSA: usb-audio: Follow standard coding style
ALSA: usb-audio: Move autoresume call at the end of open
btrfs: Drop delayed_refs argument from btrfs_check_delayed_seq
btrfs: rename btrfs_get_block_group_info and make it static
btrfs: Replace owner argument in add_pinned_bytes with a boolean
x86/pci-dma: switch the VIA 32-bit DMA quirk to use the struct device flag
x86/pci-dma: remove the explicit nodac and allowdac option
x86/pci-dma: remove the experimental forcesac boot option
Documentation/x86: remove a stray reference to pci-nommu.c
core, dma-direct: add a flag 32-bit dma limits
mmc: sdhci-xenon: use match_string() helper
affs: fix potential memory leak when parsing option 'prefix'
drm/i915/query: Protect tainted function pointer lookup
drm/i915/lvds: Move acpi lid notification registration to registration phase
drm/i915: Disable LVDS on Radiant P845
ALSA: usb-audio: Simplify PCM open/close callbacks
ALSA: aloop: Reduced duplicated PCM ops definition
ALSA: xen-front: fix unsigned error check on return from to_sndif_format
ALSA: xen-front: remove redundant error check on ret
sound: Use octal not symbolic permissions
kconfig: drop localization support
kconfig: refactor ncurses package checks for building mconf and nconf
kconfig: refactor GTK+ package checks for building gconf
kconfig: refactor Qt package checks for building qconf
kbuild: do not display CHK for filechk
selftests/powerpc: Add core file test for Protection Key registers
selftests/powerpc: Add ptrace tests for Protection Key registers
powerpc/modules: remove unused mod_arch_specific.toc field
powerpc/powernv/cpuidle: Init all present cpus for deep states
MAINTAINERS: add NXP linux team maillist as i.MX reviewer
gpio: dwapb: Fix rework support for 1 interrupt per port A GPIO
tracing: Fix crash when freeing instances with event triggers
m68k: fix ColdFire PCI config reads and writes
m68k: introduce iomem() macro for __iomem conversions
m68k: allow ColdFire PCI bus on MMU and non-MMU configuration
m68k: fix ioremapping for internal ColdFire peripherals
m68k: fix read/write multi-byte IO for PCI on ColdFire
m68k: don't redefine access functions if we have PCI
m68k: remove old ColdFire IO access support code
m68k: use io_no.h for MMU and non-MMU enabled ColdFire
m68k: setup PCI support code in io_no.h
m68k: group io mapping definitions and functions
m68k: rework raw access macros for the non-MMU case
m68k: use asm-generic/io.h for non-MMU io access functions
m68k: put definition guards around virt_to_phys and phys_to_virt
m68k: move *_relaxed macros into io_no.h and io_mm.h
smb3: Add ftrace tracepoints for improved SMB3 debugging
smb3: rename encryption_required to smb3_encryption_required
cifs: update internal module version number for cifs.ko to 2.12
cifs: add a new SMB2_close_flags function
cifs: store the leaseKey in the fid on SMB2_open
cifs: fix build break when CONFIG_CIFS_DEBUG2 enabled
cifs: update calc_size to take a server argument
cifs: add server argument to the dump_detail method
smb3: fix redundant opens on root
libbpf: Install btf.h with libbpf
rmdir(),rename(): do shrink_dcache_parent() only on success
Linux 4.17-rc7
x86/microcode: Make the late update update_lock a raw lock for RT
ACPICA: Mark acpi_ut_create_internal_object_dbg() memory allocations as non-leaks
PM / runtime: Drop usage count for suppliers at device link removal
PM / runtime: Fixup reference counting of device link suppliers at probe
PM / tools: pm-graph: upgrade to v5.1
PM / hibernate: Fix oops at snapshot_write()
PM / wakeup: Make s2idle_lock a RAW_SPINLOCK
PM / s2idle: Make s2idle_wait_head swait based
PM / wakeup: Make events_lock a RAW_SPINLOCK
PM / suspend: Prevent might sleep splats
ALSA: dice: unuse second stream for MIDI conformant data channel for TC Electronic models
ALSA: dice: fix stream format parameters for TC Electronic Studio Konnekt 48
ALSA: seq: fix spelling mistake "Unamed" -> "Unnamed"
ARM: Fix i2c-gpio GPIO descriptor tables
switch the rest of procfs lookups to d_splice_alias()
procfs: switch instantiate_t to d_splice_alias()
don't bother with tid_fd_revalidate() in lookups
arm64: dts: hikey: Fix eMMC corruption regression
crypto: x86/aegis256 - Fix wrong key buffer size
crypto: testmgr - add more unkeyed crc32 and crc32c test vectors
crypto: testmgr - fix testing OPTIONAL_KEY hash algorithms
crypto: testmgr - remove bfin_crc "hmac(crc32)" test vectors
crypto: crc32-generic - remove __crc32_le()
crypto: crc32c-generic - remove cra_alignmask
crypto: crc32-generic - use unaligned access macros when needed
crypto: chtls - fix a missing-check bug
crypto: inside-secure - authenc(hmac(sha1), cbc(aes)) support
crypto: inside-secure - authenc(hmac(sha224), cbc(aes)) support
crypto: inside-secure - authenc(hmac(sha256), cbc(aes)) support
crypto: inside-secure - improve error reporting
crypto: inside-secure - fix the hash then encrypt/decrypt types
crypto: inside-secure - make the key and context size computation dynamic
crypto: inside-secure - make the context control size dynamic
crypto: inside-secure - rework the alg type settings in the context
crypto: inside-secure - rework cipher functions for future AEAD support
crypto: inside-secure - remove VLAs
crypto: chtls - generic handling of data and hdr
crypto: inside-secure - do not use memset on MMIO
KVM: docs: mmu: Fix link to NPT presentation from KVM Forum 2008
kvm: x86: Amend the KVM_GET_SUPPORTED_CPUID API documentation
KVM: x86: hyperv: declare KVM_CAP_HYPERV_TLBFLUSH capability
KVM: x86: hyperv: simplistic HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE}_EX implementation
KVM: x86: hyperv: simplistic HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE} implementation
KVM: introduce kvm_make_vcpus_request_mask() API
KVM: x86: hyperv: do rep check for each hypercall separately
KVM: x86: hyperv: use defines when parsing hypercall parameters
x86/hyper-v: move struct hv_flush_pcpu{,ex} definitions to common header
regulator: s2mps11: Fix boot on Odroid XU3
staging: lustre: fix more build errors in errno.c
Documentation: filesystems: update filesystem locking documentation
random: convert to ->poll_mask
timerfd: convert to ->poll_mask
eventfd: switch to ->poll_mask
pipe: convert to ->poll_mask
crypto: af_alg: convert to ->poll_mask
net/rxrpc: convert to ->poll_mask
net/iucv: convert to ->poll_mask
net/phonet: convert to ->poll_mask
net/nfc: convert to ->poll_mask
net/caif: convert to ->poll_mask
net/bluetooth: convert to ->poll_mask
net/sctp: convert to ->poll_mask
net/tipc: convert to ->poll_mask
net/vmw_vsock: convert to ->poll_mask
net/atm: convert to ->poll_mask
net/dccp: convert to ->poll_mask
net: convert datagram_poll users tp ->poll_mask
net/unix: convert to ->poll_mask
net/tcp: convert to ->poll_mask
net: remove sock_no_poll
net: add support for ->poll_mask in proto_ops
net: refactor socket_poll
aio: try to complete poll iocbs without context switch
aio: implement IOCB_CMD_POLL
aio: simplify cancellation
aio: simplify KIOCB_KEY handling
fs: introduce new ->get_poll_head and ->poll_mask methods
fs: add new vfs_poll and file_can_poll helpers
fs: update documentation to mention __poll_t and match the code
fs: cleanup do_pollfd
fs: unexport poll_schedule_timeout
uapi: turn __poll_t sparse checks on by default
staging: lustre: fix build error in errno.c
staging: lustre: fix build error in mdc_request.c
hwtracing: stm: fix build error on some arches
rtc: test: remove obsolete .set_mmss
kasan: fix memory hotplug during boot
kasan: free allocated shadow memory on MEM_CANCEL_ONLINE
checkpatch: fix macro argument precedence test
init/main.c: include <linux/mem_encrypt.h>
kernel/sys.c: fix potential Spectre v1 issue
mm/memory_hotplug: fix leftover use of struct page during hotplug
proc: fix smaps and meminfo alignment
mm: do not warn on offline nodes unless the specific node is explicitly requested
mm, memory_hotplug: make has_unmovable_pages more robust
mm/kasan: don't vfree() nonexistent vm_area
MAINTAINERS: change hugetlbfs maintainer and update files
ipc/shm: fix shmat() nil address after round-down when remapping
Revert "ipc/shm: Fix shmat mmap nil-page protection"
idr: fix invalid ptr dereference on item delete
ocfs2: revert "ocfs2/o2hb: check len for bio_add_page() to avoid getting incorrect bio"
mm: fix nr_rotate_swap leak in swapon() error case
xfs, proc: hide unused xfs procfs helpers
net/mlx5e: Avoid reset netdev stats on configuration changes
media: vsp1: Move video configuration to a cached dlb
media: vsp1: Adapt entities to configure into a body
media: vsp1: Refactor display list configure operations
media: vsp1: Use reference counting for bodies
media: vsp1: Convert display lists to use new body pool
media: vsp1: Provide a body pool
media: vsp1: Protect bodies against overflow
media: vsp1: Reword uses of 'fragment' as 'body'
media: vsp1: Move video suspend resume handling to video object
media: vsp1: Release buffers for each video node
media: vsp1: Drop OF dependency of VIDEO_RENESAS_VSP1
media: adv7511: fix clearing of the CEC receive buffer
udf: Simplify calls to udf_disk_stamp_to_time
fs: nfs: get rid of memcpys for inode times
ceph: make inode time prints to be long long
lustre: Use long long type to print inode time
fs: add timespec64_truncate()
PCI: Remove unused pcie_get_minimum_link()
ixgbe: Report PCIe link properties with pcie_print_link_status()
cxgb4: Report PCIe link properties with pcie_print_link_status()
bnxt_en: Report PCIe link properties with pcie_print_link_status()
bnx2x: Report PCIe link properties with pcie_print_link_status()
arm64: dts: sprd: whale2: Add the rtc enable clock for watchdog
arm64: dts: sprd: Add GPIO and GPIO keys device nodes
PCI: Prevent sysfs disable of device while driver is attached
ARM: stm32: Don't select DMA unconditionally on STM32MP157C
arm64: dts: sprd: fix typo in 'remote-endpoint'
arm64: dts: apq8096-db820c: Removed bt-en-1-8v regulator
arm64: dts: fix regulator property name for wlan pcie endpoint
arm64: dts: qcom: msm8996: Use UFS_GDSC for UFS
ARM: dts: pxa3xx: fix MMC clocks
ARM: pxa: dts: add pin definitions for extended GPIOs
ARM: pxa: dts: add gpio-ranges to gpio controller
net/mlx5e: Introducing new statistics rwlock
net/mlx5e: Move phy link down events counter out of SW stats
net/mlx5: Use order-0 allocations for all WQ types
net/mlx5i: Use compilation flag in IPOIB header
net/mlx5e: TX, Use actual WQE size for SQ edge fill
net/mlx5e: Use WQ API functions instead of direct fields access
net/mlx5e: Split offloaded eswitch TC rules for port mirroring
net/mlx5e: Parse mirroring action for offloaded TC eswitch flows
net/mlx5: E-switch, Create a second level FDB flow table
net/mlx5: Add cap bits for flow table destination in FDB table
net/mlx5: E-Switch, Reorganize and rename fdb flow tables
soc: qcom: smem: introduce qcom_smem_virt_to_phys()
soc: qcom: qmi: fix a buffer sizing bug
MAINTAINERS: Update pattern for qcom_scm
soc: Unconditionally include qcom Makefile
soc: qcom: smem: check sooner in qcom_smem_set_global_partition()
soc: qcom: smem: fix qcom_smem_set_global_partition()
soc: qcom: smem: fix off-by-one error in qcom_smem_alloc_private()
soc: qcom: smem: byte swap values properly
soc: qcom: smem: return proper type for cached entry functions
soc: qcom: smem: fix first cache entry calculation
soc: qcom: cmd-db: Make endian-agnostic
drivers: qcom: add command DB driver
arm64: defconfig: Enable PCIe on msm8996 and db820c
net: dsa: dsa_loop: Make dynamic debugging helpful
openvswitch: Support conntrack zone limit
openvswitch: Add conntrack limit netlink definition
ARM: dts: ipq8074: Enable few peripherals for hk01 board
ARM: dts: ipq8074: Add pcie nodes
ARM: dts: ipq8074: Add peripheral nodes
ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk07.1-c2 board file
ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk07.1-c1 board file
ARM: dts: ipq4019: Add ipq4019-ap.dk07.1 common data
ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk04.1-c3 board file
ARM: dts: ipq4019: Add ipq4019-ap.dk04.1-c1 board file
ARM: dts: ipq4019: Add ipq4019-ap.dk04.dtsi
ARM: dts: ipq4019: Change the max opp frequency
ARM: dts: ipq4019: Add a few peripheral nodes
ARM: dts: ipq4019: Add a default chosen node
ARM: pxa3xx: enable external wakeup pins
ARM: pxa: stargate2: use device properties for at24 eeprom
8139too: Remove unnecessary netif_napi_del()
ibmvnic: Fix partial success login retries
MAINTAINERS: hwmon: Add Documentation/devicetree/bindings/hwmon
qed*: Support drop action classification
qede: Support flow classification to the VFs.
qed*: Support other classification modes.
qede: Validate unsupported configurations
qede: Refactor ethtool rx classification flow.
media: st-hva: don't use GFP_DMA
media: bdisp: don't use GFP_DMA
media: cec: improve cec status documentation
media: soc_camera: fix compiler warning
media: renesas-ceu: fix compiler warning
KVM: x86: fix #UD address of failed Hyper-V hypercalls
media: imx: fix compiler warning
media: hdpvr: fix compiler warning
media: s5p-mfc: fix two sparse warnings
media: zoran: fix compiler warning
media: go7007: fix two sparse warnings
media: docs: selection: fix misleading sentence about the CROP API
media: docs: selection: improve formatting
media: docs: selection: rename files to something meaningful
media: docs: clarify relationship between crop and selection APIs
media: docs: selection: fix typos
media: zoran: move to staging in preparation for removal
media: i2c: adv748x: Fix pixel rate values
media: usbtv: Implement wait_prepare and wait_finish
selftests/net: Add missing config options for PMTU tests
cxgb4/cxgb4vf: Notify link changes to OS-dependent code
cxgb4: clean up init_one
cxgb4/cxgb4vf: link management changes for new SFP
net: fec: remove stale comment
sfc: stop the TX queue before pushing new buffers
net: bridge: add support for port isolation
regmap: slimbus: allow register offsets up to 16 bits
regmap: add missing prototype for devm_init_slimbus
ASoC: mt6797: combine DAI to register component
ASoC: mt6797: extract DAI adda in separate file
ASoC: mediatek: add sub dai to mtk_base_afe
ASoC: omap: fix compile-test building
RDMA/bnxt_re: Fix broken RoCE driver due to recent L2 driver changes
ext4: fix fencepost error in check for inode count overflow during resize
staging: mt7621-gpio: update TODO file
staging: mt7621-gpio: use MTK_BANK_WIDTH instead of magic number
staging: mt7621-gpio: use ternary operator in return in mediatek_gpio_get_direction
staging: mt7621-gpio: avoid devm_kzalloc() hidden inside declarations and refactor function a bit
staging: mt7621-gpio: dt-bindings: add interrupt nodes to bindings doc
staging: mt7621-dts: add interrupt device tree nodes for the gpio controller
staging: mt7621-gpio: avoid use of globals and use platform_data instead
staging: mt7621-gpio: replace 'mtk' to use correct one 'mediatek'
staging: mt7621-dts: update gpios related entries to use 'mediatek'
staging: mt7621-gpio: dt-bindings: add documentation for mt7621-gpio
staging: rtl8723bs: Fix grammar error in comment.
staging: rtl8723bs: Fix camel-case in 'struct rt_firmware_hdr'.
staging: rtl8723bs: Fix spelling/grammar errors in comment.
staging: rtl8723bs: Fix camel-case in 'struct rt_firmware'.
staging: rtl8723bs: Fix camel-case in IS_FW_HEADER_EXIST_8723B().
staging: rtl8723bs: Clean up whitespace in 'rtl8723_hal.h'.
staging: rtl8723bs: Rename 'Hal8723BPhyCfg.h' using snake case.
staging: rtl8723bs: Rename 'Hal8723bPhyReg.h' using snake case.
staging: rtl8723bs: Rename 'Hal8723BPwrSeq.{c, h}' to 'hal_pwr_seq.*'.
staging: fsl-dpaa2/rtc: fix PTP dependency
staging: wilc1000: Avoid overriding rates_no while parsing ies element.
staging: wlan-ng: convert P80211SKB_RXMETA to inline function in p80211conv
staging: wlan-ng: convert P80211SKB_FRMMETA to inline function in p80211conv
staging: rtl8192e: rtllib_tx: fix spelling issue.
staging: mt7621-mmc: fix spelling mistake: "Illgal" -> "Illegal"
staging: greybus: fix spelling mistake: "Inavlid" -> "Invalid"
staging: rtlwifi: fix spelling mistake: "Platfoem" -> "Platform"
staging: wilc1000: fix spelling mistake: "Preamle" -> "Preamble"
staging: lustre: libcfs: add parens around macros args
staging: lustre: Fix block comments style
staging: lustre: Fix "unsigned"->"unsigned int"
staging: lustre: Fix "Possible intergrate"->"Possibly integrate"
staging: lustre: Fix "from from"->"from"
staging: lustre: remove libcfs_all.h
staging: lustre: move all libcfs_all includes except in lustre/lnet/libcfs/
staging: lustre: remove remaining libcfs_all.h includes from lustre/lustre
staging: lustre: remove libcfs_all.h from fid, fld, obdclass
staging: lustre: remove libcfs_all from ptlrpc
staging: lustre: remove libcfs_all.h from remaining .h files.
staging: lustre: remove libcfs_all.h from lustre/include/*.h
staging: lustre: remove libcfs_all.h from includes lustre/lnet
staging: lustre: remove libcfs_all.h includes from lnet/klnd
staging: lustre: don't include libcfs.h in lnet/lib-lnet.h
staging: lustre: start moving includes out of libcfs.h
staging: lustre: discard libcfs_prim.h
staging: lustre: replace memory_presure funcitons by standard interfaces.
staging: lustre: move RESV_PORT definitions to lnet/lib-lnet.h
staging: lustre: move lnet_debug_log_upcall declaration to tracefile.h
staging: lustre: make lnet_debugfs_symlink_def local to libcfs/modules.c
staging: lustre: clean up __LIBCFS_H macro
staging: lustre: replace libcfs_register_ioctl with a blocking notifier_chain
staging: lustre: discard cfs_block_sigsinv()
staging: lustre: move LERRCHKSUM() to libcfs_debug.h
staging: lustre: discard CFS_TICK
staging: lustre: discard LOWEST_BIT_SET()
staging: lustre: discard cfs_cap_t, use kernel_cap_t
staging: lustre: simplify capability dropping.
staging: lustre: remove current_pid() and current_comm()
staging: lustre: remove conditional compilation from libcfs_cpu.c
staging: lustre: rename cfs_cpt_table to cfs_cpt_tab
staging: lustre: move files out of lustre/lnet/libcfs/linux/
staging: lustre: refactor libcfs initialization.
staging: lustre: osc: tidy up osc_init()
staging: comedi: comedidev.h: Fix SPDX-License-Identifier tag style
MAINTAINERS: Add driver-api/fpga path
fpga: clarify that unregister functions also free
documentation: fpga: move fpga-region.txt to driver-api
documentation: fpga: add bridge document to driver-api
documentation: fpga: move fpga-mgr.txt to driver-api
Documentation: fpga: move fpga overview to driver-api
fpga: region: kernel-doc fixes
fpga: bridge: kernel-doc fixes
fpga: mgr: kernel-doc fixes
fpga: use SPDX
fpga: region: change api, add fpga_region_create/free
fpga: bridge: change api, don't use drvdata
fpga: manager: change api, don't use drvdata
fpga: region: don't use drvdata in common fpga code
driver-core: return EINVAL error instead of BUG_ON()
intel_th: Use correct device when freeing buffers
stm class: Use vmalloc for the master map
drm/scheduler: fix a corner case in dependency optimization
drm/amdgpu: vcn_v1_0_is_idle() can be static
drm/amd/display: Implement dm_pp_get_clock_levels_by_type_with_latency
vt: Perform safe console erase only once
arm64: defconfig: Enable HISILICON_LPC
arm64: defconfig: enable drivers for Poplar support
serial: imx: disable UCR4_OREN on shutdown
serial: imx: drop CTS/RTS handling from shutdown
drm/amdgpu: fix 32-bit build warning
null_blk: add blocking description and remove lightnvm
nvme: fixup memory leak in nvme_init_identify()
nvme: fix KASAN warning when parsing host nqn
nvmet-loop: use nr_phys_segments when map rq to sgl
nvmet-fc: increase LS buffer count per fc port
nvmet: add simple file backed ns support
nvmet: remove duplicate NULL initialization for req->ns
nvmet: make a few error messages more generic
nvme-fabrics: allow duplicate connections to the discovery controller
nvme-fabrics: centralize discovery controller defaults
nvme-fabrics: remove unnecessary controller subnqn validation
nvme-fc: remove setting DNR on exception conditions
nvme-rdma: stop admin queue before freeing it
nvme-pci: Fix AER reset handling
nvme-pci: set nvmeq->cq_vector after alloc cq/sq
mlx4_core: allocate ICM memory in page size chunks
PCI/IOV: Allow PF drivers to limit total_VFs to 0
PCI: hv: Do not wait forever on a device that has disappeared
KVM: arm/arm64: Bump VGIC_V3_MAX_CPUS to 512
KVM: arm/arm64: Implement KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
KVM: arm/arm64: Add KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
KVM: arm/arm64: Check all vcpu redistributors are set on map_resources
KVM: arm/arm64: Check vcpu redist base before registering an iodev
KVM: arm/arm64: Remove kvm_vgic_vcpu_early_init
KVM: arm/arm64: Helper to register a new redistributor region
KVM: arm/arm64: Adapt vgic_v3_check_base to multiple rdist regions
KVM: arm/arm64: Revisit Redistributor TYPER last bit computation
KVM: arm/arm64: Helper to locate free rdist index
KVM: arm/arm64: Replace the single rdist region by a list
KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
KVM: arm/arm64: Set dist->spis to NULL after kfree
KVM: arm64: Invoke FPSIMD context switch trap from C
KVM: arm64: Fold redundant exit code checks out of fixup_guest_exit()
KVM: arm64: Remove redundant *exit_code changes in fpsimd_guest_exit()
KVM: arm64: Remove eager host SVE state saving
KVM: arm64: Save host SVE context as appropriate
arm64/sve: Move sve_pffr() to fpsimd.h and make inline
arm64/sve: Switch sve_pffr() argument from task to thread
arm64/sve: Move read_zcr_features() out of cpufeature.h
KVM: arm64: Optimise FPSIMD handling to reduce guest/host thrashing
KVM: arm64: Repurpose vcpu_arch.debug_flags for general-purpose flags
arm64/sve: Refactor user SVE trap maintenance for external use
arm64: fpsimd: Eliminate task->mm checks
arm64: fpsimd: Avoid FPSIMD context leakage for the init task
arm64: fpsimd: Generalise context saving for non-task contexts
KVM: arm64: Convert lazy FPSIMD context switch trap to C
KVM: arm/arm64: Introduce kvm_arch_vcpu_run_pid_change
arm64: Use update{,_tsk}_thread_flag()
thread_info: Add update_thread_flag() helpers
arm64: fpsimd: Fix TIF_FOREIGN_FPSTATE after invalidating cpu regs
wcn36xx: Add support for Factory Test Mode (FTM)
ath10k: DFS Host Confirmation
ath: add support to get the detected radar specifications
wcn36xx: improve debug and error messages for SMD
wcn36xx: simplify wcn36xx_smd_open()
wcn36xx: drain pending indicator messages on shutdown
wcn36xx: set PREASSOC and IDLE stated when BSS info changes
wcn36xx: consider CTRL_EOP bit when looking for valid descriptors
wcn36xx: only handle packets when ED or DONE bit is set
wcn36xx: clear all masks in RX interrupt
wcn36xx: don't disable RX IRQ from handler
wcn36xx: set DMA mask explicitly
wcn36xx: fix buffer commit logic on TX path
ath10k: remove useless test before clk_disable_unprepare
ath: Map Zimbabwe to ETSI1_WORLD
ath: Map Ukraine to ETSI9_WORLD
ath: Map Singapore to FCC3_WORLD
ath: Map Russia to ETSI8_WORLD
ath: Map Romania to ETSI1_WORLD
ath: Map Philippines to FCC3_WORLD
ath: Map Peru to APL1_WORLD
ath: Map New Zealand to FCC3_ETSIC
ath: Map Malasia to FCC1_WORLD
ath: Map Macedonia to ETSI1_WORLD
ath: Map Isreal to ETSI3_WORLD
ath: Map Honduras to FCC3_WORLD
ath: Map Czech to ETSI1_WORLD
ath: Map Colombia to FCC1_FCCA
ath: Map Bulgaria to ETSI1_WORLD
ath: Map Brunei Darussalam to APL6_WORLD
ath: Map Bangladesh to APL1_WORLD
ath: Map Australia to FCC3_WORLD
ath: Map Algeria to APL13_WORLD
ath: Map Albania to ETSI1_WORLD
ath: Add regulatory mapping for FCC3_ETSIC
ath: Add regulatory mapping for ETSI9_WORLD
ath: Add regulatory mapping for ETSI8_WORLD
ath: Add regulatory mapping for APL13_WORLD
ath: Add regulatory mapping for APL2_FCCA
ath: Add regulatory mapping for Uganda
ath: Add regulatory mapping for Tanzania
ath: Add regulatory mapping for Serbia
ath: Add regulatory mapping for Paraguya
ath: Add regulatory mapping for Nicaragua
ath: Add regulatory mapping for Montenegro
ath: Add regulatory mapping for Mauritius
ath: Add regulatory mapping for Kenya
ath: Add regulatory mapping for Bermuda
ath: Add regulatory mapping for Bahamas
ath10k: add support to configure channel dwell time
ath10k: add memory dump support for QCA9888 and QCA99X0
dma-mapping: remove unused gfp_t parameter to arch_dma_alloc_attrs
ACPI: EC: Dispatch the EC GPE directly on s2idle wake
ACPICA: Introduce acpi_dispatch_gpe()
powerpc/perf: Update raw-event code encoding comment for power8
s390/archrandom: Rework arch random implementation.
s390/net: add pnetid support
s390/dasd: simplify locking in dasd_times_out
locking/rwsem: Simplify the is-owner-spinnable checks
perf/x86: Store user space frame-pointer value on a sample
perf/core: Wire up compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
perf/core: Fix bad use of igrab()
perf/core: Fix group scheduling with mixed hw and sw events
sched/fair: Update util_est before updating schedutil
sched/cpufreq: Modify aggregate utilization to always include blocked FAIR utilization
sched, tracing: Fix trace_sched_pi_setprio() for deboosting
kthread: Allow kthread_park() on a parked kthread
sched/topology: Clarify root domain(s) debug string
drm/exynos: fimc: signedness bug in fimc_setup_clocks()
ARM: dts: qcom: msm8974: Add Sony Xperia Z1 Compact
arm64: defconfig: Enable UFS on msm8996
ARM: dts: Aspeed: Enable USB ports on eval board.
ARM: dts: Add Aspeed SoC USB controllers to device-tree
ARM: dts: aspeed: Add S2600WF BMC Machine
ARM: dts: aspeed: Add Inventec Lanyang BMC
ARM: dts: aspeed: Add Portwell Neptune machine
ARM: dts: aspeed: witherspoon: Set alternate boot
ARM: dts: aspeed: witherspoon: Add gpio keys for power supply presence
ARM: dts: aspeed: witherspoon: Enable checkstop and cooling gpio keys
ARM: dts: aspeed: zaius: Add pcie-e2b-present gpio key
ARM: dts: aspeed: romulus: Add id-button gpio key
drm/exynos: scaler: fix static checker warning
firmware: qcom: scm: Fix crash in qcom_scm_call_atomic1()
nfp: flower: compute link aggregation action
nfp: flower: implement host cmsg handler for LAG
nfp: flower: monitor and offload LAG groups
net: include hash policy in LAG changeupper info
nfp: flower: add per repr private data for LAG offload
nfp: flower: check for/turn on LAG support in firmware
nfp: nfpcore: add rtsym writing function
nfp: add ndo_set_mac_address for representors
hv_netvsc: fix bogus ifalias on network device
enic: set DMA mask to 47 bit
net/ipv4: Remove tracepoint in fib_validate_source
net/ipv6: Udate fib6_table_lookup tracepoint
net/ipv4: Udate fib_table_lookup tracepoint
net_sched: switch to rcu_work
ppp: remove the PPPIOCDETACH ioctl
selftests: forwarding: Test mirror-to-gre w/ UL 802.1d+VLAN
selftests: forwarding: Test mirror-to-gre w/ UL VLAN
selftests: forwarding: Test mirror-to-gre w/ UL VLAN+802.1q
selftests: forwarding: Test mirror-to-vlan
selftests: forwarding: lib: Extract trap_{, un}install()
selftests: forwarding: mirror_gre_lib: Support VLAN
selftests: forwarding: lib: Support VLAN devices
selftests: forwarding: Add $h3's clsact to mirror_topo_lib.sh
selftests: forwarding: mirror_gre_lib: Extract generic functions
selftests: forwarding: Split mirror_gre_topo_lib.sh
ibmvnic: Introduce hard reset recovery
ibmvnic: Set resetting state at earliest possible point
ibmvnic: Create separate initialization routine for resets
ibmvnic: Handle error case when setting link state
ibmvnic: Return error code if init interrupted by transport event
ibmvnic: Check CRQ command return codes
ibmvnic: Introduce active CRQ state
ibmvnic: Mark NAPI flag as disabled when released
ipv4: remove warning in ip_recv_error
selftests: forwarding: Test removal of mirroring
selftests: forwarding: Test removal of underlay route
selftests: forwarding: Test mirroring to deleted device
net : sched: cls_api: deal with egdev path only if needed
vhost: synchronize IOTLB message with dev cleanup
powerpc: Add a missing include header
powerpc/32: Add a missing include header
powerpc/chrp/time: Make some functions static, add missing header include
powerpc/tau: Make some function static
powerpc: Make function btext_initialize static
powerpc/tau: Synchronize function prototypes and body
powerpc: Add missing prototype
powerpc/52xx: Add missing functions prototypes
powerpc/powermac: Add missing prototype for note_bootable_part()
powerpc/powermac: Move pmac_pfunc_base_install prototype to header file
powerpc/chrp/pci: Make some functions static
powerpc/powermac: Mark variable x as unused
powerpc/chrp/setup: Remove idu_size variable and make some functions static
powerpc/wii: Make hlwd_pic_init function static
powerpc/mm/radix: Use do/while(0) trick for single statement block
powerpc/sparse: Fix plain integer as NULL pointer warning
powerpc/altivec: Add missing prototypes for altivec
powerpc: Add __printf verification to prom_printf
powerpc/xmon: Update paca fields dumped in xmon
powerpc/xmon: Realign paca dump fields
powerpc/xmon: Add __printf annotation to xmon_printf()
powerpc/xmon: Specify the full format in DUMP() macro
packet: fix reserve calculation
cxgb4: Check for kvzalloc allocation failure
samples/bpf: xdp_monitor use err code from tracepoint xdp:xdp_devmap_xmit
xdp/trace: extend tracepoint in devmap with an err
xdp: change ndo_xdp_xmit API to support bulking
xdp: introduce xdp_return_frame_rx_napi
samples/bpf: xdp_monitor use tracepoint xdp:xdp_devmap_xmit
xdp: add tracepoint for devmap like cpumap have
bpf: devmap prepare xdp frames for bulking
bpf: devmap introduce dev_map_enqueue
tools/bpftool: add perf subcommand
tools/bpf: add two BPF_TASK_FD_QUERY tests in test_progs
samples/bpf: add a samples/bpf test for BPF_TASK_FD_QUERY
tools/bpf: add ksym_get_addr() in trace_helpers
tools/bpf: sync kernel header bpf.h and add bpf_task_fd_query in libbpf
bpf: introduce bpf subcommand BPF_TASK_FD_QUERY
perf/core: add perf_get_event() to return perf_event given a struct file
RDMA/hns: Increase checking CMQ status timeout value
RDMA/hns: Modify uar allocation algorithm to avoid bitmap exhaust
net/mlx5: IPSec, Fix a race between concurrent sandbox QP commands
net/mlx5e: When RXFCS is set, add FCS data into checksum calculation
net/mlx5e: Receive buffer support for DCBX
net/mlx5e: Receive buffer configuration
net/mlx5: PPTB and PBMC register firmware command support
net/mlx5: Add pbmc and pptb in the port_access_reg_cap_mask
net/mlx5e: Move port speed code from en_ethtool.c to en/port.c
net/dcb: Add dcbnl buffer attribute
drm/amdgpu: Use dev_info() to report amdkfd is not supported for this ASIC
i2c: robotfuzz-osif: drop pointless test
i2c: robotfuzz-osif: remove pointless local variable
i2c: rk3x: Don't print visible virtual mapping MMIO address
ipmi: Properly release srcu locks on error conditions
leds: class: ensure workqueue is initialized before setting brightness
i2c: opal: don't check number of messages in the driver
i2c: ibm_iic: don't check number of messages in the driver
i2c: imx: Switch to SPDX identifier
block drivers/block: Use octal not symbolic permissions
net: phy: replace bool members in struct phy_device with bit-fields
dt-bindings: qcom_spmi: Document SAW support
regulator: qcom_spmi: Add support for SAW
hwspinlock/u8500: Switch to SPDX license identifier
hwspinlock: sprd: Switch to SPDX license identifier
hwspinlock/sirf: Switch to SPDX license identifier
hwspinlock: qcom: Switch to SPDX license identifier
hwspinlock/omap: Switch to SPDX license identifier
hwspinlock/core: Switch to SPDX license identifier
ALSA: hda - Fix runtime PM
KVM: x86: Expose CLDEMOTE CPU feature to guest VM
KVM: nVMX: Emulate L1 individual-address invvpid by L0 individual-address invvpid
KVM: nVMX: Don't flush TLB when vmcs12 uses VPID
KVM: nVMX: Use vmx local var for referencing vpid02
PCI: rcar: Remove IRQ mappings in rcar_pcie_enable_msi() failpath
PCI: rcar: Teardown MSI setup if rcar_pcie_enable() fails
PCI: rcar: Add missing irq_dispose_mapping() into failpath
PCI: rcar: Pull bus clock enable/disable from rcar_pcie_get_resources()
KVM: x86: prevent integer overflows in KVM_MEMORY_ENCRYPT_REG_REGION
KVM: x86: remove obsolete EXPORT... of handle_mmio_page_fault
PM / Domain: Return 0 on error from of_genpd_opp_to_performance_state()
Revert "mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE"
fs: Allow CAP_SYS_ADMIN in s_user_ns to freeze and thaw filesystems
capabilities: Allow privileged user in s_user_ns to set security.* xattrs
fs: Allow superblock owner to access do_remount_sb()
PCI: rcar: Poll more often in rcar_pcie_wait_for_dl()
blk-mq: avoid starving tag allocation after allocating process migrates
fs: Allow superblock owner to replace invalid owners of inodes
Input: atmel_mxt_ts - fix reset-gpio for level based irqs
vfs: Allow userns root to call mknod on owned filesystems.
vfs: Don't allow changing the link count of an inode with an invalid uid or gid
PCI: vmd: Add an additional VMD device id to driver device id table
x86/PCI: Add additional VMD device root ports to VMD AER quirk
PCI: vmd: Add offset to bus numbers if necessary
PCI: vmd: Assign membar addresses from shadow registers
PCI: Add Intel VMD devices to pci ids
tty: fix typo in ASYNCB_FOURPORT comment
kvm: x86: IA32_ARCH_CAPABILITIES is always supported
serial: samsung: check DMA engine capabilities before using DMA mode
Input: atmel_mxt_ts - require device properties present when probing
usb: xhci: tegra: Add support for managing powergates
usb: xhci: tegra: Add runtime PM support
usb: xhci: tegra: Prepare for adding runtime PM support
usb-storage: Add compatibility quirk flags for G-Technologies G-Drive
usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
usb: typec: wcove: Remove dependency on HW FSM
usb: roles: intel_xhci: Enable runtime PM
usb: typec: fusb302: Fix debugfs issue
platform: x86: intel_cht_int33fe: Fix dependencies
usb: roles: intel_xhci: Always allow user control
drm/omap: fix NULL deref crash with SDI displays
usb: typec: Fix htmldocs warning
usbip: vhci_sysfs: fix potential Spectre v1
usb: gadget: function: printer: avoid wrong list handling in printer_write()
typec: tcpm: Provide fwnode pointer as part of psy_cfg
power: supply: Add fwnode pointer to power_supply_config struct
usb: mtu3: fix warning of sleep in atomic context in notifier callback
usb: mtu3: reset gadget when VBUS_FALL interrupt arises
usb: mtu3: avoid sleep in atomic context when enter test mode
usb: mtu3: clear test_mode flag when reset
usb: mtu3: fix uncontinuous SeqN issue after disable EP
usb: mtu3: re-enable controller to accept LPM request after LPM resume
xhci: debugfs: add debugfs interface to enable compliance mode for a port
xhci: debugfs: add usb ports to xhci debugfs
xhci: xhci-mem: remove port_arrays and the code initializing them
xhci-mtk: use xhci hub structures to get number of ports in roothubs
xhci: xhci-hub: use port structure members instead of xhci_get_ports()
xhci: use port structures instead of port arrays in xhci.c functions
xhci: change xhci_test_and_clear_bit() to use new port structure
xhci: change xhci_set_link_state() to work with port structures
xhci: rename faked_port_index to hcd_portnum
xhci: xhci-ring: use port structures for port event handler
xhci: xhci-hub: use new port structures for cas and wake mask functions.
xhci: xhci-hub: use new port structures to get port address instead of port array
xhci: Add helper to get xhci roothub from hcd
xhci: set hcd pointers for xhci usb2 and usb3 roothub structures
xhci: Create new structures to store xhci port information
xhci: hisilicon: support HiSilicon STB xHCI host controller
dt-bindings: usb: add bindings doc for HiSilicon STB xHCI host controller
usb: xhci: dbc: Add SPDX identifiers to dbc files
KVM: x86: Update cpuid properly when CR4.OSXAVE or CR4.PKE is changed
regulator: tps65090: Pass descriptor instead of GPIO number
regulator: s5m8767: Pass descriptor instead of GPIO number
regulator: pfuze100: Delete reference to ena_gpio
regulator: max8952: Pass descriptor instead of GPIO number
regulator: lp8788-ldo: Pass descriptor instead of GPIO number
regulator: lm363x: Pass descriptor instead of GPIO number
regulator: max8973: Pass descriptor instead of GPIO number
IB/core: Introduce and use rdma_gid_table()
IB/core: Reduce the places that use zgid
IB/mlx5: Fetch soft WQE's on fatal error state
RDMA/ucm: Mark UCM interface as BROKEN
IB/core: Remove duplicate declaration of gid_cache_wq
RDMA/mlx5: Remove debug prints of VMA pointers
RDMA/hns: Rename the idx field of db
IB/qib: Fix DMA api warning with debug kernel
IB/isert: Fix for lib/dma_debug check_sync warning
IB/{rdmavt,hfi1}: Change hrtimer add to use pinned version
IB/hfi1: Set port number for errorinfo MAD response
IB/hfi1: Cleanup of exp_rcv
IB/hfi1: Add 16B Management Packet trace support
IB/hfi1: Add support for 16B Management Packets
IB/hfi1: Define 16B Management Packets
iw_cxgb4: provide detailed driver-specific MR information
iw_cxgb4: provide detailed driver-specific CQ information
iw_cxgb4: provide detailed provider-specific CM_ID information
bpf: properly enforce index mask to prevent out-of-bounds speculation
gpio: pxa: Include the right header
gpio: pl061: Include the right header
gpio: pch: Include the right header
gpio: pcf857x: Include the right header
gpio: pca953x: Include the right header
drm/amd/display: Remove use of division operator for long longs
drm/amdgpu: Update GFX info structure to match what vega20 used
drm/amdgpu/pp: remove duplicate assignment
drm/sched: add rcu_barrier after entity fini
drm/amdgpu: move VM BOs on LRU again
drm/amdgpu: consistenly use VM moved flag
drm/amdgpu: kmap PDs/PTs in amdgpu_vm_update_directories
drm/amdgpu: further optimize amdgpu_vm_handle_moved
drm/amdgpu: cleanup amdgpu_vm_validate_pt_bos v2
drm/amdgpu: rework VM state machine lock handling v2
drm/amdgpu: Add runtime VCN PG support
drm/amdgpu: Enable VCN static PG by default on RV
drm/amdgpu: Add VCN static PG support on RV
drm/amdgpu: Enable VCN CG by default on RV
drm/amdgpu: Add static CG control for VCN on RV
x86/kvm: fix LAPIC timer drift when guest uses periodic mode
regulator: mc13xxx-core: Switch to SPDX identifier
regulator: mc13892: Switch to SPDX identifier
regulator: mc13783: Switch to SPDX identifier
regulator: anatop: Switch to SPDX identifier
regulator: pfuze100: Switch to SPDX identifier
spi: sh-msiof: Fix setting SIRMDR1.SYNCAC to match SITMDR1.SYNCAC
powerpc/xmon: Also setup debugger hooks when single-stepping
powerpc/8xx: fix invalid register expression in head_8xx.S
selftests/powerpc: Add ptrace hw breakpoint test
selftests/powerpc: Add missing .gitignores
powerpc/mm: Only read faulting instruction when necessary in do_page_fault()
powerpc/mm: Use instruction symbolic names in store_updates_sp()
ahci: Add PCI ID for Cannon Lake PCH-LP AHCI
drm/psr: Fix missed entry in PSR setup time table.
livepatch: Remove not longer valid limitations from the documentation
bpfilter: don't pass O_CREAT when opening console for debug
bpfilter: fix build dependency
MIPS: ptrace: Fix PTRACE_PEEKUSR requests for 64-bit FGRs
PCI: hv: Use list_for_each_entry()
PCI: hv: Convert remove_lock to refcount
PCI: hv: Remove unused reason for refcount handler
MIPS: prctl: Disallow FRE without FR with PR_SET_FP_MODE requests
MIPS: ptrace: Make FPU context layout comments match reality
gpio: palmas: Include the right header
gpio: omap: Include the right header
MIPS: lantiq: gphy: Drop reboot/remove reset asserts
gpio: octeon: Include the right header
i2c: mux: pca954x: merge calls to of_match_device and of_device_get_match_data
i2c: mux: demux-pinctrl: use proper parent device for demux adapter
gpio: mxs: Switch to SPDX identifier
i2c: mux: improve error message for failed symlink
ARM: dts: stm32: Add exti support to stm32mp157 pinctrl
ARM: dts: stm32: Add exti support for stm32mp157c
pinctrl/stm32: Add irq_eoi for stm32gpio irqchip
irqchip/stm32: Add suspend/resume support for hierarchy domain
irqchip/stm32: Add stm32mp1 support with hierarchy domain
irqchip/stm32: Prepare common functions
irqchip/stm32: Add host and driver data structures
irqchip/stm32: Add suspend support
irqchip/stm32: Add falling pending register support
irqchip/stm32: Checkpatch fix
irqchip/stm32: Optimizes and cleans up stm32-exti irq_domain
irqchip/meson-gpio: Add support for Meson-AXG SoCs
dt-bindings: interrupt-controller: New binding for Meson-AXG SoC
dt-bindings: interrupt-controller: Fix the double quotes
i2c: mux: reg: failed memory allocation is logged elsewhere
arm64: Make sure permission updates happen for pmd/pud
m68k/mm: Adjust VM area to be unmapped by gap size for __iounmap()
selftests/bpf: test for seg6local End.BPF action
ipv6: sr: Add seg6local action End.BPF
bpf: Split lwt inout verifier structures
bpf: Add IPv6 Segment Routing helpers
ipv6: sr: export function lookup_nexthop
ipv6: sr: make seg6.h includable without IPv6
Btrfs: fix error handling in btrfs_truncate()
drm/exynos: Fix default value for zpos plane property
ALSA: echoaudio: Drop superfluous macro
ALSA: usb-audio: Drop superfluous ifndef
ALSA: memalloc: Drop superfluous ifndef
ACPI / watchdog: Prefer iTCO_wdt always when WDAT table uses RTC SRAM
pinctrl: at91-pio4: add missing of_node_put
gpio: Remove VLA from stmpe driver
cpufreq: schedutil: Avoid missing updates for one-CPU policies
PM: wakeup: Use pr_debug() for the "aborting suspend" message
pinctrl: armada-37xx: Fix spurious irq management
PCI / PM: Clean up outdated comments in pci_target_state()
PCI / PM: Do not clear state_saved for devices that remain suspended
gpio: mxc: Switch to SPDX identifier
gpio: mxc: add clock operation
gpiolib: discourage gpiochip_add_pin[group]_range for DT pinctrls
pinctrl: msm: fix gpio-hog related boot issues
drm/exynos: Fix error value in exynos_drm_crtc_get_by_type()
drm/exynos/dsi: mask frame-done interrupt
MAINTAINERS: update entry for Mediatek pin controller
pinctrl: mediatek: remove unused fields in struct mtk_eint_hw
pinctrl: mediatek: use generic EINT register maps for each SoC
pinctrl: mediatek: add EINT support to MT7622 SoC
pinctrl: mediatek: refactor EINT related code for all MediaTek pinctrl can fit
dt-bindings: pinctrl: add external interrupt support to MT7622 pinctrl
pinctrl: freescale: Switch to SPDX identifier
ARM: dts: berlin2q: move PMU node from soc to root
dma-debug: check scatterlist segments
tools: bpftool: add delimiters to multi-function JITed dumps
tools: bpf: sync bpf uapi header
bpf: get JITed image lengths of functions via syscall
bpf: fix multi-function JITed dump obtained via syscall
tools: bpftool: resolve calls without using imm field
tools: bpf: sync bpf uapi header
bpf: get kernel symbol addresses via syscall
bpf: powerpc64: add JIT support for multi-function programs
bpf: powerpc64: pad function address loads with NOPs
bpf: support 64-bit offsets for bpf function calls
ARM: dts: berlin*-dts: use SPDX-License-Identifier for berlin based board
ARM: dts: berlin*.dtsi: use SPDX-License-Identifier for berlin SoCs
ARM: dts: berlin2: fix irq type for arm twd timer
ARM: dts: berlin2q: fix irq type for arm twd timer
ARM: dts: berlin2q: add "cache-unified" to l2 node
ARM: dts: berlin2q: add interrupt-affinity to pmu node
bpf: btf: Avoid variable length array
ARM: dts: chromecast: use PWM for LEDs
ARM: dts: chromecast: override bad bootloader memory info
ARM: dts: berlin2cd: add Valve Steam Link board
ARM: dts: berlin2cd: add a label for the CPU node
ARM: dts: berlin2cd: add remaining nodes to apb subtrees
ARM: dts: berlin2cd: add remaining Cortex-A9 nodes
ARM: dts: berlin2cd: add ADC/thermal sensor node
ARM: dts: berlin2cd: move PMU node from soc to root
ARM: dts: berlin2cd: fix local timer interrupt flags
ARM: berlin: switch to SPDX license identifier
arm: berlin: remove non-necessary flush_cache_all()
ARM: berlin: extend BG2CD Kconfig entry
powerpc: Export tm_enable()/tm_disable/tm_abort() APIs
powerpc/reg: Add TEXASR related macros
powerpc: Export msr_check_and_set() to modules
arm64: dts: move berlin SoC files from marvell dir to synaptics dir
arm64: dts: berlin4ct-*.dts: use SPDX-License-Identifier
arm64: dts: berlin4ct: use SPDX-License-Identifier
drm/amdgpu: Add SOC15_WAIT_ON_RREG macro define
drm/amdgpu: Add CG/PG flags for VCN
drm/amd/pp: Add smu support for VCN powergating on RV
drm/amdgpu: skip CG for VCN when late_init/fini
drm/amd/pp: fix a couple locking issues
drm/amd/pp: Fix static checker warning
drm/amdgpu/gmc9: disable partial wr rmw if ECC is not enabled
drm/amdgpu: add a df 1.7 implementation of enable_ecc_force_par_wr_rmw
drm/amdgpu: add new DF callback for ECC setup
drm/amdgpu: add new DF 1.7 register defs
Remove calls to suspend/resume atomic helpers from amdgpu_device_gpu_recover. (v2)
fix io_destroy()/aio_complete() race
drm/exynos: decon: Add support for hardware windows no 4 and 5
dt-bindings: exynos5433-decon: add more required clocks
Input: psmouse-smbus - allow to control psmouse_deactivate
Input: elantech - detect new ICs and setup Host Notify for them
Input: elantech - add support for SMBus devices
Input: elantech - query the resolution in query_info
Input: elantech - split device info into a separate structure
Input: elan_i2c - add trackstick report
netfilter: provide correct argument to nla_strlcpy()
PCI: pciehp: Request control of native hotplug only if supported
PCI: pciehp: Clear Presence Detect and Data Link Layer Status Changed on resume
docs: update kernel versions and dates in tables
PCI: pnv_php: Add missing of_node_put()
RDMA/hns: Move the location for initializing tmp_len
RDMA/hns: Bugfix for cq record db for kernel
bdi: Move cgroup bdi_writeback to a dedicated low concurrency workqueue
nbd: set discard granularity properly
IB/uverbs: Fix uverbs_attr_get_obj
OMAP: CLK: CLKSRC: Add suspend resume hooks
RDMA/qedr: Fix doorbell bar mapping for dpi > 1
amd-xgbe: Improve SFP 100Mbps auto-negotiation
amd-xgbe: Update the BelFuse quirk to support SGMII
amd-xgbe: Advertise FEC support with the KR re-driver
amd-xgbe: Always attempt link training in KR mode
amd-xgbe: Add ethtool show/set channels support
amd-xgbe: Prepare for ethtool set-channel support
amd-xgbe: Add ethtool show/set ring parameter support
amd-xgbe: Add ethtool support to retrieve SFP module info
amd-xgbe: Remove field that indicates SFP diagnostic support
amd-xgbe: Remove use of comm_owned field
amd-xgbe: Read and save the port property registers during probe
amd-xgbe: Fix debug output of max channel counts
dt-bindings: Add vendor prefix for Logic PD
of: overlay: validate offset from property fixups
net/smc: longer delay when freeing client link groups
net/smc: urgent data support
net/smc: lock smc_lgr_list in port_terminate()
net/smc: return 0 for ioctl calls in states INIT and CLOSED
cxgb4: do L1 config when module is inserted
cxgb4: change the port capability bits definition
net/mlx4: Fix irq-unsafe spinlock usage
platform/chrome: chromeos_laptop - supply properties for ACPI devices
net: dsa: qca8k: Remove redundant parentheses
net: dsa: qca8k: Replace GPL boilerplate by SPDX
net: dsa: qca8k: Allow overwriting CPU port setting
net: dsa: qca8k: Force CPU port to its highest bandwidth
net: dsa: qca8k: Enable RXMAC when bringing up a port
net: dsa: qca8k: Add support for QCA8334 switch
net: dsa: qca8k: Add QCA8334 binding documentation
leds: lm3601x: Introduce the lm3601x LED driver
dt: bindings: lm3601x: Introduce the lm3601x driver
cxgb4: Add new T6 device ids
net: phy: broadcom: Fix bcm_write_exp()
selftests: uevent filtering
pinctrl: samsung: Fix suspend/resume for Exynos5433 GPF1..5 banks
net: phy: broadcom: Fix auxiliary control register reads
selftests: net: initial fib rule tests
ipv6: support sport, dport and ip_proto in RTM_GETROUTE
ipv4: support sport, dport and ip_proto in RTM_GETROUTE
net: ipv4: add missing RTA_TABLE to rtm_ipv4_policy
platform/chrome: chromeos_tbmc - add SPDX identifier
net/mlx4: fix spelling mistake: "Inrerface" -> "Interface" and rephrase message
platform: chrome: Add Tablet Switch ACPI driver
hv_netvsc: Add handlers for ethtool get/set msg level
ARM: AM43XX: Add functions to save/restore am43xx control registers
ibmvnic: Only do H_EOI for mobility events
net: vxge: fix spelling mistake in macro VXGE_HW_ERR_PRIVILAGED_OPEARATION
Input: elan_i2c_smbus - fix corrupted stack
gso: limit udp gso to egress-only virtual devices
udp: exclude gso from xfrm paths
soc: rockchip: power-domain: add power domain support for px30
dt-bindings: power: add binding for px30 power domains
dt-bindings: power: add PX30 SoCs header for power-domain
soc: rockchip: power-domain: add power domain support for rk3228
dt-bindings: power: add binding for rk3228 power domains
dt-bindings: power: add RK3228 SoCs header for power-domain
soc: rockchip: power-domain: add power domain support for rk3128
dt-bindings: power: add binding for rk3128 power domains
dt-bindings: power: add RK3128 SoCs header for power-domain
soc: rockchip: power-domain: add power domain support for rk3036
dt-bindings: power: add binding for rk3036 power domains
ASoC: ams_delta: use GPIO lookup table
ARM: OMAP1: ams-delta: add GPIO lookup tables
Input: synaptics - add Lenovo 80 series ids to SMBus
Input: synaptics - add Intertouch support on X1 Carbon 6th and X280
Input: synaptics - Lenovo Thinkpad X1 Carbon G5 (2017) with Elantech trackpoints should use RMI
Input: synaptics - Lenovo Carbon X1 Gen5 (2017) devices should use RMI
Documentation/bindings: net: the sfp i2c-bus property is now mandatory
net: phy: sfp: make the i2c-bus dt property mandatory
net: phy: sfp: warn the user when no tx_disable pin is available
tuntap: correctly set SOCKWQ_ASYNC_NOSPACE
ARM64: dts: meson: fix clock source of the pclk for UART_AO
ARM64: dts: meson-axg: add AO clock driver
nfp: assign vNIC id as phys_port_name of vNICs which are not ports
nfp: use split in naming of PCIe PF ports
nfp: abm: force Ethternet port up
nfp: abm: spawn port netdevs
nfp: add devlink_eswitch_mode_set callback
devlink: don't take instance lock around eswitch mode set
nfp: add app pointer to port representors
nfp: abm: create project-specific vNIC structure
nfp: abm: add initial active buffer management NIC skeleton
nfp: core: allow 4-byte aligned accesses to Memory Units
nfp: add shared buffer configuration
nfp: add support for per-PCI PF mailbox
nfp: move rtsym helpers to pf code
arm64: dts: exynos: Add more clocks to Exynos5433 Decon/DeconTV
tools/lib/libbpf.c: fix string format to allow build on arm32
workqueue: move function definitions within CONFIG_SMP block
cgroup: css_set_lock should nest inside tasklist_lock
virtio-net: fix leaking page for gso packet during mergeable XDP
virtio-net: correctly check num_buf during err path
virtio-net: correctly transmit XDP buff after linearizing
virtio-net: correctly redirect linearized packet
net: add skeleton of bpfilter kernel module
umh: introduce fork_usermode_blob() helper
ARM: meson: merge Kconfig symbol MACH_MESON8B into MACH_MESON8
ARM: dts: meson: build the Meson8b .dtbs with MACH_MESON8
ARM64: dts: meson-axg: enable i2c AO on the S400 board
ARM64: dts: meson-axg: add i2c AO pins
ARM64: dts: meson-axg: correct i2c AO clock
ARM64: dts: meson-axg: clean-up i2c nodes
brcmfmac: trigger memory dump on SDIO firmware halt message
brcmfmac: trigger memory dump upon firmware halt signal
brcmfmac: validate user provided data for memdump before copying
mwifiex: support sysfs initiated device coredump
brcmfmac: add support for sysfs initiated coredump
brcmfmac: move ALLFFMAC variable in flowring module
KVM: nVMX: Ensure that VMCS12 field offsets do not change
PCI: qcom: add runtime pm support to pcie_port
ext4: correctly handle a zero-length xattr with a non-zero e_value_offs
nvme: host: core: fix precedence of ternary operator
nvme: fix lockdep warning in nvme_mpath_clear_current_path
drm/vmwgfx: Schedule an fb dirty update after resume
KVM: nVMX: Restore the VMCS12 offsets for v4.0 fields
drm/vmwgfx: Fix host logging / guestinfo reading error paths
drm/vmwgfx: Fix 32-bit VMW_PORT_HB_[IN|OUT] macros
ALSA: hda: Add ASRock H81M-HDS to the power_save blacklist
ALSA: hda: Add Gigabyte P55A-UD3 and Z87-D3HP to the power_save blacklist
ALSA: hda: Add Clevo W35xSS_370SS to the power_save blacklist
ALSA: hda: Add Intel NUC7i3BNB to the power_save blacklist
ipmi: NPCM7xx KCS BMC: enable interrupt to the host
perf kcore_copy: Amend the offset of sections that remap kernel text
perf kcore_copy: Copy x86 PTI entry trampoline sections
perf kcore_copy: Get rid of kernel_map
perf kcore_copy: Iterate phdrs
perf kcore_copy: Layout sections
perf kcore_copy: Calculate offset from phnum
perf kcore_copy: Keep a count of phdrs
perf kcore_copy: Keep phdr data in a list
perf annotate: Show group event string for stdio
perf machine: Synthesize and process mmap events for x86 PTI entry trampolines
perf machine: Create maps for x86 PTI entry trampolines
KVM: x86: use timespec64 for KVM_HC_CLOCK_PAIRING
kvm: nVMX: Use nested_run_pending rather than from_vmentry
pinctrl: sh-pfc: rcar-gen3: Fix grammar in static pin comments
pinctrl: sh-pfc: r8a77965: Add I2C pin support
pinctrl: sh-pfc: r8a77990: Add EthernetAVB pins, groups and functions
pinctrl: sh-pfc: r8a77990: Add I2C{1,2,4,5,6,7} pins, groups and functions
pinctrl: sh-pfc: r8a77990: Add SCIF pins, groups and functions
pinctrl: sh-pfc: r8a77990: Add bias pinconf support
pinctrl: sh-pfc: Initial R8A77990 PFC support
pinctrl: sh-pfc: Add PORT_GP_11 helper macro
selftests/bpf: Makefile fix "missing" headers on build with -idirafter
gpio: Remove VLA from gpiolib
gpio: aspeed: Use a cache of output data registers
gpio: aspeed: Set output latch before changing direction
gpio: pca953x: fix address calculation for pcal6524
gpio: pca953x: define masks for addressing common and extended registers
gpio: pca953x: set the PCA_PCAL flag also when matching by DT
clk: rockchip: remove deprecated gate-clk code and dt-binding
afs: Implement network namespacing
dt-bindings: power: add RK3036 SoCs header for power-domain
afs: Mark afs_net::ws_cell as __rcu and set using rcu functions
arm64: Unify kernel fault reporting
arm64: make is_permission_fault() name clearer
arm64: Kconfig: Enable LSE atomics by default
afs: Fix a Sparse warning in xdr_decode_AFSFetchStatus()
selftests: net: reuseport_bpf_numa: don't fail if no numa support
netfilter: nf_tables: remove nft_af_info.
bpf: btf: Add tests for the btf uapi changes
bpf: btf: Sync bpf.h and btf.h to tools
bpf: btf: Rename btf_key_id and btf_value_id in bpf_map_info
bpf: btf: Remove unused bits from uapi/linux/btf.h
bpf: btf: Check array->index_type
bpf: btf: Change how section is supported in btf_header
bpf: Expose check_uarg_tail_zero()
nl80211: Reject disconnect commands except from conn_owner
gpio: pca953x: Clear irq trigger type on irq shutdown
pinctrl: berlin: switch to SPDX license identifier
gpio: zynq: Setup chip->base based on alias ID
pinctrl: rockchip: Add set_config callback support for gpiolib
gpio: dwapb: Rework support for 1 interrupt per port A GPIO
rfkill: Create rfkill-none LED trigger
rfkill: Rename rfkill_any_led_trigger* functions
ipvs: fix buffer overflow with sync daemon and service
nl80211: Update ERP info using NL80211_CMD_UPDATE_CONNECT_PARAMS
nl80211: add FILS related parameters to ROAM event
pinctrl: rockchip: Add pinctrl support for PX30
pinctrl: mvebu: update use "nand" function for "rb" pin
cfg80211: use separate struct for FILS parameters
nl80211: Optimize cfg80211_bss_expire invocations
mac80211: Support adding duration for prepare_tx() callback
x86/speculation: Simplify the CPU bug detection logic
KVM/VMX: Expose SSBD properly to guests
ASoC: Intel: cht_bsw_nau8824: Fix jack_type to include SND_JACK_MICROPHONE
schedutil: Allow cpufreq requests to be made even when kthread kicked
ASoC: rockchip: cdn-dp sound output use spdif
cpufreq: Rename cpufreq_can_do_remote_dvfs()
MAINTAINERS: Add Actions Semi S900 pinctrl entries
pinctrl: actions: Add gpio support for Actions S900 SoC
dt-bindings: pinctrl: Add gpio bindings for Actions S900 SoC
pinctrl: pinctrl-single: Add functions to save and restore pinctrl context
mtd: cmdlinepart: Update comment for introduction of OFFSET_CONTINUOUS
mtd: bcm47xxpart: add of_match_table with a new DT binding
dt-bindings: mtd: document Broadcom's BCM47xx partitions
gpio: syscon: allow fetching syscon from parent node
gpio: rcar: Add DT binding for r8a77990
rsi: add fix for corruption of auto rate table
rsi: add fix for crash during assertions
brcmfmac: add debugfs entry for reading firmware capabilities
mwifiex: correct histogram data with appropriate index
mt76: use udelay instead of usleep_range in mt76x2_mac_stop
mt76: wait for pending tx to complete before switching channel
mt76: move ieee80211_hw allocation to common core
mt76: prevent tx scheduling during channel change
mt76: only stop tx queues on offchannel, not during the entire scan
gpio: zynq: simplifly getting drvdata
mt76: discard early received packets if not running yet
mt76: fix sending encrypted broadcast packets for secondary interfaces
mt76x2: apply coverage class on slot time too
gpio: zynq: Remove call to platform_get_irq
netfilter: nft_limit: fix packet ratelimiting
arm64: dts: marvell: fix CP110 ICU node size
netfilter: nft_meta: fix wrong value dereference in nft_meta_set_eval
rtc: st-lpc: add range
netfilter: nfnetlink_queue: resolve clash for unconfirmed conntracks
netfilter: add struct nf_nat_hook and use it
netfilter: add struct nf_ct_hook and use it
netfilter: ip6t_rpfilter: provide input interface for route lookup
rtc: st-lpc: fix possible race condition
netfilter: nft_set_rbtree: add timeout support
netfilter: make NF_OSF non-visible symbol
netfilter: lift one-nat-hook-only restriction
netfilter: nf_nat: add nat type hooks to nat core
netfilter: nf_nat: add nat hook register functions to nf_nat
netfilter: core: export raw versions of add/delete hook functions
netfilter: nf_tables: allow chain type to override hook register
netfilter: xtables: allow table definitions not backed by hook_ops
netfilter: nf_nat: move common nat code to nat core
x86, nfit_test: Add unit test for memcpy_mcsafe()
pmem: Switch to copy_to_iter_mcsafe()
dax: Report bytes remaining in dax_iomap_actor()
dax: Introduce a ->copy_to_iter dax operation
uio, lib: Fix CONFIG_ARCH_HAS_UACCESS_MCSAFE compilation
s390/cio: add test for ccwgroup device
s390/cio: add helper to query utility strings per given ccw device
s390: remove no-op macro VMLINUX_SYMBOL()
s390/dasd: use blk_mq_rq_from_pdu for per request data
mfd: cros_ec: Retry commands when EC is known to be busy
dmaengine: imx-dma: Switch to SPDX identifier
dmaengine: mxs-dma: Switch to SPDX identifier
dmaengine: imx-sdma: Switch to SPDX identifier
clocksource/drivers/mxs_timer: Switch to SPDX identifier
clocksource/drivers/timer-imx-tpm: Switch to SPDX identifier
clocksource/drivers/timer-imx-gpt: Switch to SPDX identifier
clocksource/drivers/timer-imx-gpt: Remove outdated file path
nds32: Fix compiler warning, Wstringop-overflow, in vdso.c
nds32: Disable local irq before calling cpu_dcache_wb_page in copy_user_highpage
nds32: Flush the cache of the page at vmaddr instead of kaddr in flush_anon_page
nds32: Correct flush_dcache_page function
nds32: Fix the unaligned access handler
nds32: Renaming the file for unaligned access
nds32: To fix a cache inconsistency issue by setting correct cacheability of NTC
nds32: To refine readability of INT_MASK_INITAIAL_VAL
nds32: Fix the virtual address may map too much range by tlbop issue.
nds32: Fix the allmodconfig build. To make sure CONFIG_CPU_LITTLE_ENDIAN is default y
nds32: Fix build failed because arch_trace_hardirqs_off is changed to trace_hardirqs_off.
nds32: Fix the unknown type u8 issue.
nds32: Fix the symbols undefined issue by exporting them.
nds32: Fix xfs_buf built failed by export invalidate_kernel_vmap_range and flush_kernel_vmap_range
nds32: Fix drivers/gpu/drm/udl/udl_fb.c building error by defining PAGE_SHARED
nds32: Fix building error of crypto/xor.c by adding xor.h
nds32: Fix building error when CONFIG_FREEZE is enabled.
nds32: lib: To use generic lib instead of libgcc to prevent the symbol undefined issue.
arm64: dts: qcom: msm8996: Add ufs related nodes
arm64: dts: msm8996: fix gic_irq_domain_translate warnings
arm64: dts: qcom: sdm845: Sort nodes in the soc by address
arm64: dts: qcom: sdm845: Sort nodes in the reserved mem by address
arm64: dts: sdm845: Add command DB node
arm64: dts: sdm845: Fix xo_board clock name and speed
arm64: dts: qcom: Add SDM845 SMEM nodes
arm64: dts: qcom: Add APSS shared mailbox node to SDM845
arm64: dts: msm8916: fix gic_irq_domain_translate warnings
dt-bindings: introduce Command DB for QCOM SoCs
arm64: dts: apq8096-db820c: Add micro sd card supplies
dt-bindings: soc: qcom: Add device tree binding for GENI SE
dt-bindings: net: bluetooth: Add qualcomm-bluetooth
arm64: dts: apq8096-db820c: enable bluetooth node
arm64: dts: apq8096-db820c: Enable wlan and bt en pins
arm64: dts: qcom: rename qcom,pcie devices to pcie
arm64: dts: msm8992: add pstore-ramoops support
arm64: dts: sdm845: Add minimal dts/dtsi files for sdm845 SoC and MTP
arm64: dts: Enable onboard SDHCI on msm8992
qedi: Add get_generic_tlv_data handler.
qedi: Add support for populating ethernet TLVs.
qedf: Add get_generic_tlv_data handler.
qedf: Add support for populating ethernet TLVs.
qede: Add support for populating ethernet TLVs.
qed: Add driver infrastucture for handling mfw requests.
qed: Add support for processing iscsi tlv request.
qed: Add support for processing fcoe tlv request.
qed: Add support for tlv request processing.
qed: Add MFW interfaces for TLV request support.
alpha: io: reorder barriers to guarantee writeX() and iowriteX() ordering #2
alpha: simplify get_arch_dma_ops
alpha: use dma_direct_ops for jensen
platform/chrome: cros_ec_lpc: do not try DMI match when ACPI device found
rcu/x86: Provide early rcu_cpu_starting() callback
ext4: bubble errors from ext4_find_inline_data_nolock() up to ext4_iget()
ext4: do not allow external inodes for inline data
leds: sc27xx: Fix return value check in sc27xx_led_probe()
RDMA/ipoib: drop skb on path record lookup failure
tcp: do not aggressively quick ack after ECN events
tcp: add max_quickacks param to tcp_incr_quickack and tcp_enter_quickack_mode
pcnet32: add an error handling path in pcnet32_probe_pci()
net: sched: don't disable bh when accessing action idr
qed: Fix mask for physical address in ILT entry
ipmr: properly check rhltable_init() return value
ipmi:bt: Set the timeout before doing a capabilities check
selftests: fib_tests: Add ipv4 route add append replace tests
selftests: fib_tests: Add ipv6 route add append replace tests
selftests: fib_tests: Add option to pause after each test
selftests: fib_tests: Add command line options
selftests: fib_tests: Add success-fail counts
net/ipv6: Simplify route replace and appending into multipath route
mlxsw: spectrum_router: Add support for route append
RDMA/CMA: add rdma_iw_cm_id() and rdma_res_to_id() helpers
iw_cxgb4: always set iw_cm_id.provider_data
proc_lookupfd_common(): don't bother with instantiate unless the file is open
procfs: get rid of ancient BS in pid_revalidate() uses
cifs_lookup(): switch to d_splice_alias()
cifs_lookup(): cifs_get_inode_...() never returns 0 with *inode left NULL
9p: unify paths in v9fs_vfs_lookup()
ncp_lookup(): use d_splice_alias()
hfsplus: switch to d_splice_alias()
hfs: don't allow mounting over .../rsrc
hfs: use d_splice_alias()
omfs_lookup(): report IO errors, use d_splice_alias()
orangefs_lookup: simplify
openpromfs: switch to d_splice_alias()
xfs_vn_lookup: simplify a bit
adfs_lookup: do not fail with ENOENT on negatives, use d_splice_alias()
adfs_lookup_byname: .. *is* taken care of in fs/namei.c
romfs_lookup: switch to d_splice_alias()
qnx6_lookup: switch to d_splice_alias()
ubifs_lookup: use d_splice_alias()
sysv_lookup: use d_splice_alias()
qnx4_lookup: use d_splice_alias()
minix_lookup: use d_splice_alias()
freevxfs_lookup(): use d_splice_alias()
cramfs_lookup(): use d_splice_alias()
bfs_add_entry: pass name/len as qstr pointer
bfs_find_entry: pass name/len as qstr pointer
bfs_lookup(): use d_splice_alias()
rtc: stm32: add stm32mp1 rtc support
dt-bindings: rtc: update stm32-rtc documentation for stm32mp1 rtc
rtc: stm32: rework register management to prepare other version of RTC
rtc: stm32: fix misspelling and misalignment issues
blkdev_report_zones_ioctl(): Use vmalloc() to allocate large buffers
dccp: don't free ccid2_hc_tx_sock struct in dccp_disconnect()
isdn: eicon: fix a missing-check bug
block/ndb: add WQ_UNBOUND to the knbd-recv workqueue
net: fec: Add a SPDX identifier
net: fec: ptp: Switch to SPDX identifier
sctp: fix the issue that flags are ignored when using kernel_connect
iio: imu: inv_mpu6050: add comment about frequencies
of: unittest: for strings, account for trailing \0 in property length field
iio: dac: Add support for external reference voltage through the regulator framework.
iio: dac: fix missing of_match_table assignment in the LTC 2632 device
iio: adc: fix spelling mistake: "Freeacale" -> "Freescale"
ima: fix updating the ima_appraise flag
RDMA/ipoib: Update paths on CLIENT_REREG/SM_CHANGE events
iio: amplifiers: ad8366: move channel init before iio_device_register()
arm64: fault: Don't leak data in ESR context for user fault on kernel VA
drivers/perf: Remove ARM_SPE_PMU explicit PERF_EVENTS dependency
i40e: use the more traditional 'i' loop variable
i40e: add function doc headers for ethtool stats functions
i40e: update data pointer directly when copying to the buffer
i40e: fold prefix strings directly into stat names
i40e: use WARN_ONCE to replace the commented BUG_ON size check
i40e: split i40e_get_strings() into smaller functions
i40e: always return all queue stat strings
i40e: always return VEB stat strings
i40e: free skb after clearing lock in ptp_stop
blk-mq: remove wrong 'unlikely' check
xfs, dax: introduce xfs_break_dax_layouts()
xfs: prepare xfs_break_layouts() for another layout type
xfs: prepare xfs_break_layouts() to be called with XFS_MMAPLOCK_EXCL
mm, fs, dax: handle layout changes to pinned dax mappings
mm: fix __gup_device_huge vs unmap
scripts/tags.sh: use `find` for $ALLSOURCE_ARCHS generation
coccinelle: deref_null: improve performance
coccinelle: mini_lock: improve performance
mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS
perf machine: Allow for extra kernel maps
perf machine: Fix map_groups__split_kallsyms() for entry trampoline symbols
perf machine: Workaround missing maps for x86 PTI entry trampolines
perf machine: Add nr_cpus_avail()
MIPS: PCI: Use dev_printk() when possible
xtensa/PCI: Use dev_printk() when possible
xtensa/PCI: Make variables static
xtensa/PCI: Remove dead code
microblaze/PCI: Remove pcibios_claim_one_bus() dead code
microblaze/PCI: Remove pcibios_finish_adding_to_bus() dead code
sparc/PCI: Use dev_printk() when possible
PM / core: Fix direct_complete handling for devices with no callbacks
MAINTAINERS: change Kalle as wcn36xx maintainer
MAINTAINERS: change Kalle as ath.ko maintainer
MAINTAINERS: update Kalle's email address
HID: wacom: Support "in range" for Intuos/Bamboo tablets where possible
i2c: xlp9xx: Add MAINTAINERS entry
i2c: xlp9xx: Make sure the transfer size is not more than I2C_SMBUS_BLOCK_SIZE
i2c: xlp9xx: Fix issue seen when updating receive length
i2c: xlp9xx: Add support for SMBAlert
cpufreq: schedutil: Cleanup and document iowait boost
cpufreq: schedutil: Fix iowait boost reset
ALSA: hda/conexant - Add hp-mic-fix model string
ALSA: hda/conexant - Add fixup for HP Z2 G4 workstation
i2c: Export of_i2c_get_board_info()
i2c: Retain info->of_node in i2c_new_device()
ima: based on policy verify firmware signatures (pre-allocated buffer)
ima: define a new policy condition based on the filesystem name
clk: rockchip: use match_string() helper
PM / OPP: Fix shared OPP table support in dev_pm_opp_register_set_opp_helper()
PM / OPP: Fix shared OPP table support in dev_pm_opp_set_regulators()
PM / OPP: Fix shared OPP table support in dev_pm_opp_set_prop_name()
PM / OPP: Fix shared OPP table support in dev_pm_opp_set_supported_hw()
ASoC: codec: realtek: Make the node name generic
ASoC: codec: wolfson: Make the node name generic
ASoC: make wm8782 codec selectable in Kconfig
ASoC: wm8782: add device-tree matching table
ASoC: pxa-ssp: simplify pxa_ssp_set_dai_sysclk()
ASoC: pxa-ssp: allow more flexible setup order
mtd: devices: m25p80: Use spi_mem_set_drvdata() instead of spi_set_drvdata()
usb: musb: gadget: fix to_musb_ep() to not return NULL
usb: musb: gadget: fix to_musb_request() to not return NULL
USB: musb: dsps: propagate device-tree node
usb: musb: disable otg protocol support
usb: musb: remove references to default_a of struct usb_otg
usb: musb: break the huge isr musb_stage0_irq() into small functions
usb: musb: remove unused members in struct musb_hdrc_config
usb: musb: remove duplicated port mode enum
usb: musb: dsps: remove duplicated get_musb_port_mode()
usb: musb: remove duplicated quirks flag
usb: musb: remove some register access wrapper functions
usb: musb: remove adjust_channel_params() callback from musb_platform_ops
usb: musb: remove readl/writel from struct musb_platform_ops
usb: musb: merge musbhsdma.h into musbhsdma.c
KVM: PPC: Reimplement LOAD_VMX/STORE_VMX instruction mmio emulation with analyse_instr() input
KVM: PPC: Expand mmio_vsx_copy_type to cover VMX load/store element types
KVM: PPC: Reimplement LOAD_VSX/STORE_VSX instruction mmio emulation with analyse_instr() input
KVM: PPC: Reimplement LOAD_FP/STORE_FP instruction mmio emulation with analyse_instr() input
KVM: PPC: Add giveup_ext() hook to PPC KVM ops
KVM: PPC: Reimplement non-SIMD LOAD/STORE instruction mmio emulation with analyse_instr() input
KVM: PPC: Add KVMPPC_VSX_COPY_WORD_LOAD_DUMP type support for mmio emulation
cfg80211: add missing kernel-doc
platform/x86: dell-wmi: Set correct keycode for Fn + left arrow
platform/x86: acer-wmi: add another KEY_POWER keycode
platform/x86: ideapad-laptop: Add fn-lock setting
platform/x86: ideapad-laptop: Add MIIX 720-12IKB to no_hw_rfkill
bpf: Add mtu checking to FIB forwarding helper
net/ipv6: Add helper to return path MTU based on fib result
net/ipv4: Add helper to return path MTU based on fib result
m68k/defconfig: Update defconfigs for v4.17-rc3
m68k/uaccess: Revive 64-bit get_user()
m68k: Implement ndelay() as an inline function to force type checking/casting
zorro: Add a blank line after declarations
m68k: Use read_persistent_clock64() consistently
m68k: Fix off-by-one calendar month
m68k: Fix style, spelling, and grammar in siginfo_build_tests()
m68k/mac: Fix SWIM memory resource end address
xsk: convert atomic_t to refcount_t
xsk: simplified umem setup
xsk: add missing write- and data-dependency barrier
samples/bpf: adapt xdpsock to the new uapi
xsk: remove explicit ring structure from uapi
xsk: proper queue id check at bind
xsk: fill hole in struct sockaddr_xdp
xsk: remove rebind support
mac80211_hwsim: Fix radio dump for radio idx 0
cfg80211: fix NULL pointer derference when querying regdb
USB: serial: pl2303: add support for tx xon/xoff flow control
tty: add missing const to termios hw-change helper
rtc: mxc: Switch to SPDX identifier
rtc: snvs: Switch to SPDX identifier
ALSA: oxfw: use match_string() helper
nl80211: Fix compilation
powerpc/64s: Add support for a store forwarding barrier at kernel entry/exit
thermal: Use DEVICE_ATTR_{RO|RW|WO}() variants
thermal: Shorten name of sysfs callbacks
remoteproc: q6v5: Move proxy unvote to handover irq handler
remoteproc: q6v5: Return irq from q6v5_request_irq()
sparc32/PCI/PCIC: Converge device enable path
sparc32/PCI/LEON: Converge device enable path
rtc: nvmem: don't use IS_ERR_OR_NULL
rtc: ds1742: don't explicitly specify word_size and stride of nvmem
rtc: brcmstb-waketimer: add range
rtc: brcmstb-waketimer: switch to rtc_register_device
ti: ethernet: davinci: Fix cast to int warnings
net: ethernet: davinci_emac: Fix printing of base address
net: ethernet: ti: cpsw: Fix cpsw_add_ch_strings() printk format
net: ethernet: ti: cpts: Fix timestamp print
ti: ethernet: cpdma: Use correct format for genpool_*
dt-bindings: watchdog: renesas-wdt: Add R-Car Gen2 support
watchdog: mena21_wdt: Drop unnecessary mutex lock
watchdog: renesas-wdt: Add support for the R8A77965 WDT
watchdog: hpwdt: Claim NMIs generated by iLO5
watchdog: sp805: add restart handler
watchdog: renesas-wdt: Remove R-Car M2-W ES2.x from blacklist
watchdog: simplify getting .drvdata
loop: clear wb_err in bd_inode when detaching backing file
aio: fix io_destroy(2) vs. lookup_ioctx() race
ext2: fix a block leak
nfsd: vfs_mkdir() might succeed leaving dentry negative unhashed
cachefiles: vfs_mkdir() might succeed leaving dentry negative unhashed
unfuck sysfs_mount()
kernfs: deal with kernfs_fill_super() failures
cramfs: Fix IS_ENABLED typo
befs_lookup(): use d_splice_alias()
affs_lookup: switch to d_splice_alias()
affs_lookup(): close a race with affs_remove_link()
audit: Fix wrong task in comparison of session ID
sr: pass down correctly sized SCSI sense buffer
arm64: export tishift functions to modules
arm64: lse: Add early clobbers to some input/output asm operands
perf annotate: Support '--group' option
perf report: Use perf_evlist__force_leader to support '--group'
perf evlist: Introduce force_leader() method
drivers/perf: arm-ccn: don't log to dmesg in event_init
perf/arm-cci: Allow building as a module
perf/arm-cci: Remove pointless PMU disabling
perf/arm-cc*: Fix MODULE_LICENSE() tags
arm_pmu: simplify arm_pmu::handle_irq
perf/arm-cci: Remove unnecessary period adjustment
perf: simplify getting .drvdata
vmcore: move get_vmcore_size out of __init
MD: fix lock contention for flush bios
cxgb4: copy the length of cpl_tx_pkt_core to fw_wr
net: ethernet: Sort Kconfig sourcing alphabetically
net: phy: phylink: Don't release NULL GPIO
spi: omap2-mcspi: Remove unnecessary pm_runtime_force_suspend()
spi: Add missing pm_runtime_put_noidle() after failed get
ASoC: qcom: apq8096: Add db820c machine driver
ASoC: qdsp6: dt-bindings: Add apq8096 machine bindings
ASoC: qdsp6: q6asm: Add q6asm dai driver
ASoC: qdsp6: q6afe: Add q6afe dai driver
ASoC: qdsp6: q6routing: Add support to MI2S Mixers
ASoC: qdsp6: q6routing: Add support to all SLIMBus Mixers
ASoC: qdsp6: q6routing: Add q6routing driver
ASoC: qdsp6: q6asm: Add support to audio stream apis
ASoC: qdsp6: q6asm: Add support to memory map and unmap
ASoC: qdsp6: q6asm: Add q6asm driver
ASoC: qdsp6: q6adm: Add q6adm driver
docs/vm: transhuge: split userspace bits to admin-guide/mm/transhuge
docs/vm: transhuge: minor updates
docs/vm: transhuge: change sections order
libata: blacklist Micron 500IT SSD with MU01 firmware
ASoC: amd: dma driver changes for bt i2s instance
ASoC: AMD: Add const to snd_soc_ops instances
ASoC: AMD: Fix clocks in CZ DA7219 machine driver
ASoC: AMD: Move clk enable from hw_params/free to startup/shutdown
ASoC: amd: memory release for rtd structure
ASoC: amd: sram bank update changes
ASoC: amd: pte offset related dma driver changes
workqueue: Make sure struct worker is accessible for wq_worker_comm()
MIPS: memset.S: Reinstate delay slot indentation
hwmon: (ltc2990) support all measurement modes
hwmon: (ltc2990) add devicetree binding
hwmon: (ltc2990) Fix incorrect conversion of negative temperatures
hwmon: (core) check parent dev != NULL when chip != NULL
hwmon: (fschmd) fix typo 'can by' to 'can be'
hwmon: (k10temp) Display both Tctl and Tdie
hwmon: (k10temp) Add support for Stoney Ridge and Bristol Ridge CPUs
nvme-pci: fix race between poll and IRQ completions
ASoC: qdsp6: q6afe: Add support to MI2S sysclks
ASoC: qdsp6: q6afe: Add support to MI2S ports
ASoC: qdsp6: qdafe: Add SLIMBus port Support
ASoC: qdsp6: q6afe: Add q6afe driver
mmc: wbsd: handle highmem pages
mmc: ushc: handle highmem pages
mmc: mxcmmc: handle highmem pages
mmc: atmel-mci: use sg_copy_{from,to}_buffer
mmc: android-goldfish: use sg_copy_{from,to}_buffer
mmc: block: Don't switch to the same partition type in mmc_blk_remove()
PCI: mediatek: Implement chained IRQ handling setup
cpufreq: tegra20: Wrap cpufreq into platform driver
cpufreq: tegra20: Allow cpufreq driver to be built as loadable module
cpufreq: tegra20: Check if this is Tegra20 machine
cpufreq: tegra20: Remove unneeded variable initialization
cpufreq: tegra20: Remove unnecessary parentheses
cpufreq: tegra20: Remove unneeded check in tegra_cpu_init
cpufreq: tegra20: Release clocks properly
cpufreq: tegra20: Remove EMC clock usage
cpufreq: tegra20: Clean up included headers
cpufreq: tegra20: Clean up whitespaces in the code
cpufreq: tegra20: Change module description
mmc: sdhci-iproc: add SDHCI_QUIRK2_HOST_OFF_CARD_ON for cygnus
mmc: sdhci-iproc: fix 32bit writes for TRANSFER_MODE register
mmc: sdhci-iproc: remove hard coded mmc cap 1.8v
ASoC: core: fix return code in error message
ASoC: fsl: Mark 'big-endian' property as optional
ASoC: intel: skylake: fix spelling mistake: "Homogenous" -> "Homogeneous"
EDAC, ghes: Make platform-based whitelisting x86-only
ARM: dts: sun7i: Add Olimex A20-SOM-EVB-eMMC board
ALSA: dice: add stream format parameters for TC Electronic Digital Konnekt x32
clk: meson: axg: let mpll clocks round closest
clk: meson: mpll: add round closest support
mmc: block: propagate correct returned value in mmc_rpmb_ioctl
mmc: meson-gx: add device reset
dt-bindings: mmc: meson-gx: add reset
dt-bindings: mmc: Add binding for BlueField SoC
mmc: dw_mmc-bluefield: Add driver extension
mmc: core: add tunable delay waiting for power to be stable
Documentation: mmc: addtional description for post-power-on-delay-ms
mmc: renesas_sdhi: Add r8a77965 support
clk: meson: meson8b: mark fclk_div2 gate clocks as CLK_IS_CRITICAL
USB: serial: ftdi_sio: clean up flow control management
USB: serial: ftdi_sio: drop unnecessary urb_ variable prefixes
USB: serial: ftdi_sio: use non-underscore fixed types
USB: serial: ftdi_sio: fix IXON/IXOFF mixup
usb: dwc2: gadget: Fix coverity issue
usb: gadget: udc: renesas_usb3: fix double phy_put()
usb: gadget: udc: renesas_usb3: disable the controller's irqs for reconnecting
usb: gadget: udc: renesas_usb3: should fail if devm_phy_get() returns error
usb: gadget: udc: renesas_usb3: should call devm_phy_get() before add udc
usb: gadget: udc: renesas_usb3: should call pm_runtime_enable() before add udc
usb: gadget: udc: renesas_usb3: should remove debugfs
usb: gadget: composite Allow for larger configuration descriptors
usb: dwc3: gadget: Fix list_del corruption in dwc3_ep_dequeue
usb: dwc3: gadget: dwc3_gadget_del_and_unmap_request() can be static
usb: dwc2: pci: Fix error return code in dwc2_pci_probe()
usb: dwc2: WA for Full speed ISOC IN in DDMA mode.
usb: dwc2: dwc2_vbus_supply_init: fix error check
usb: gadget: f_phonet: fix pn_net_xmit()'s return type
usb: dwc2: Fix HiKey regression caused by power_down feature
usb: dwc2: Fix kernel doc's warnings.
usb: gadget: fsl: Introduce FSL_USB2_PHY_UTMI_DUAL for usb gadget
usb: dwc3: dwc3_get_extcon() can be static
usb: dwc3: gadget: init req->{direction,epnum} from alloc_request()
usb: dwc3: gadget: initialize transfer index from send_gadget_ep_cmd()
usb: dwc3: gadget: assign resource_index inside get_transfer_index()
usb: dwc3: gadget: always start isochronous aligned to dep->interval
usb: dwc3: gadget: don't issue End Transfer if we have started reqs
usb: dwc3: debug: decode uFrame from event too
usb: dwc3: gadget: move dwc3_calc_trbs_left() in place of prototype
usb: dwc3: gadget: move set_xfer_resource() in place of prototype
usb: dwc3: gadget: remove a few more dwc arguments
usb: dwc3: gadget: combine modify & restore into single argument
usb: dwc3: gadget: refactor dwc3_gadget_init_endpoints()
usb: dwc3: gadget: split dwc3_gadget_ep_cleanup_completed_requests()
usb: dwc3: gadget: get rid of the length variable
usb: dwc3: gadget: reduce scope of ret variable
usb: dwc3: gadget: one declaration per line
usb: dwc3: gadget: simplify IOC handling
usb: dwc3: gadget: simplify short packet event
usb: dwc3: trace: print out event status too
usb: dwc3: gadget: simplify unaligned and zlp handling
usb: dwc3: gadget: remove unnecessary 'chain' variable
usb: dwc3: gadget: remove PENDING handling from cleanup_completed
usb: dwc3: gadget: split scatterlist and linear handlers
usb: dwc3: gadget: simplify isoc case on cleanup_completed_requests
usb: dwc3: gadget: simplify queueing of isoc transfers
usb: dwc3: gadget: remove duplicated missed isoc handling
usb: dwc3: gadget: check for Missed Isoc from event status
usb: dwc3: gadget: remove unnecessary 'ioc' variable
usb: dwc3: gadget: make cleanup_completed_requests() return nothing
usb: dwc3: gadget: remove DWC3_EP_BUSY flag
usb: dwc3: gadget: start removing BUSY flag
usb: dwc3: gadget: update dep->frame_number from XferInprogress too
usb: dwc3: gadget: always use frame number from XferNotReady
usb: dwc3: gadget: remove unnecessary 'dwc' parameter
usb: dwc3: gadget: move handler closer to calling site
usb: dwc3: gadget: rename dwc3_gadget_start_isoc()
usb: dwc3: gadget: remove some pointless checks
usb: dwc3: gadget: remove allocated/queued request tracking
usb: dwc3: gadget: rename done_trbs and done_reqs
usb: dwc3: gadget: don't kick transfer all the time
usb: dwc3: gadget: rename dwc3_endpoint_transfer_complete()
usb: dwc3: gadget: XferComplete only for EP0
usb: dwc3: gadget: XferNotReady is Isoc-only
usb: dwc3: gadget: pre-issue Start Transfer for Interrupt EPs too
usb: dwc3: gadget: Correct the logic for queuing sgs
usb: dwc3: gadget: Correct handling of scattergather lists
hwmon: (ibmpowernv) Add energy sensors
hwmon: (ibmpowernv): Add support to read 64 bit sensors
powernv: opal-sensor: Add support to read 64bit sensor values
selftests/powerpc: Remove redundant cp_abort test
powerpc/fsl/dts: fix the i2c-mux compatible for t104xqds
powerpc/ptrace: Fix setting 512B aligned breakpoints with PTRACE_SET_DEBUGREG
powerpc/ptrace: Fix enforcement of DAWR constraints
ext4: report delalloc reserve as non-free in statfs for project quota
ext4: remove NULL check before calling kmem_cache_destroy()
jbd2: remove NULL check before calling kmem_cache_destroy()
jbd2: remove bunch of empty lines with jbd2 debug
mv88e6xxx: Fix uninitialized variable warning.
net: dsa: b53: Extend platform data to include DSA ports
net: dsa: mv88e6xxx: Add support for EEPROM via platform data
net: dsa: mv88e6xxx: Add minimal platform_data support
net: dsa: mv88e6xxx: Remove OF check for IRQ domain
sh_eth: fix typo in comment to BCULR write
sh_eth: fix comment grammar in 'struct sh_eth_cpu_data'
sh_eth: fix typo in EESR.TRO bit name
net: hns3: Fix for CMDQ and Misc. interrupt init order problem
net: hns3: Fixes kernel panic issue during rmmod hns3 driver
net: hns3: Fix for netdev not running problem after calling net_stop and net_open
net: hns3: Use enums instead of magic number in hclge_is_special_opcode
net: hns3: Fix for hns3 module is loaded multiple times problem
net: hns3: Fix the missing client list node initialization
net: hns3: cleanup of return values in hclge_init_client_instance()
net: hns3: Fixes API to fetch ethernet header length with kernel default
net: hns3: Fixes error reported by Kbuild and internal review
r8169: fix network error on resume from suspend
erspan: set bso bit based on mirrored packet's len
Linux 4.17-rc6
Revert "ixgbe: release lock for the duration of ixgbe_suspend_close()"
net: qcom/emac: Allocate buffers from local node
fscrypt: log the crypto algorithm implementations
fscrypt: add Speck128/256 support
fscrypt: only derive the needed portion of the key
fscrypt: separate key lookup from key derivation
fscrypt: use a common logging function
fscrypt: remove internal key size constants
fscrypt: remove unnecessary check for non-logon key type
fscrypt: make fscrypt_operations.max_namelen an integer
fscrypt: drop empty name check from fname_decrypt()
fscrypt: drop max_namelen check from fname_decrypt()
fscrypt: don't special-case EOPNOTSUPP from fscrypt_get_encryption_info()
fscrypt: don't clear flags on crypto transform
fscrypt: remove stale comment from fscrypt_d_revalidate()
fscrypt: remove error messages for skcipher_request_alloc() failure
fscrypt: remove unnecessary NULL check when allocating skcipher
fscrypt: clean up after fscrypt_prepare_lookup() conversions
fs, fscrypt: only define ->s_cop when FS_ENCRYPTION is enabled
fscrypt: use unbound workqueue for decryption
MAINTAINERS: drm: fsl-dcu: Update to Alison's NXP email address
phy: mediatek: add XS-PHY driver
dt-bindings: add MediaTek XS-PHY binding
phy: qcom-qusb2: Add QUSB2 PHYs support for sdm845
dt-bindings: phy-qcom-usb2: Add support to override tuning values
phy: qcom-qmp: Add QMP V3 USB3 UNI PHY support for sdm845
dt-bindings: phy-qcom-qmp: Update bindings for sdm845
phy: qcom-qusb2: Fix crash if nvmem cell not specified
phy: qcom-qmp: Enable pipe_clk before PHY initialization
phy: stm32: fix usbphyc static checker and checkpatch warnings
phy: mapphone-mdm6600: Add runtime PM support for n_gsm on USB suspend
phy: tegra: Convert to use match_string() helper
tools: iio: iio_generic_buffer: allow continuous looping
tools: iio: iio_generic_buffer: fix types to match
ARM: dts: imx28/imx53: enable edt-ft5x06 wakeup source
ARM: dts: imx51-zii-rdu1: cleanup eMMC node
ARM: dts: vf610-zii-dev: enable vf610 builtin temp sensor
staging: rtl8192e: Add blank space before '(' - coding style.
staging: rtl8192e: Remove blank space before ', ' - coding style.
ARM: dts: imx7d: use operating-points-v2 for cpu
staging: ks7010: avoid casting inside cpu_to_* assignments
staging: mt7621-mmc: fix spelling mistake: "Eanable" -> "Enable"
ARM: dts: imx7s-warp: remove unnecessary cpu regulator supply
ARM: dts: imx7d: correct cpu supply name for voltage scaling
ARM: dts: imx51-zii-rdu1: limit usbh1 to full-speed
staging: wlan-ng: fix coding style issues in p80211netdev.c
staging: wlan-ng: fix coding style issues in p80211netdev.h
Staging: goldfish: Kconfig: fixed code style issue
Delete the goldfish_nand driver.
ARM: dts: imx6/7: Remove unit-address from anatop regulators
staging:iio:meter: Drop ADE7759 driver
staging:iio:meter: Drop ADE7758 driver
staging:iio:meter: Drop ADE7754 driver
staging:iio:meter: Drop ADE7753 driver
staging: iio: ad2s1200: Move driver out of staging
staging: iio: ad2s1200: Add copyright
staging: iio: ad2s1200: Add scaling factor for angle channel
staging: iio: ad2s1200: Add scaling factor for angular velocity channel
staging: iio: ad2s1200: Add dt table
staging: iio: ad2s1200: Replace platform data with dt bindings
staging: iio: ad2s1200: Replace legacy gpio API with modern API
staging: iio: ad2s1200: Setup spi before iio device register
staging: iio: ad2s1200: Add kernel docs to driver state
staging: iio: ad2s1200: Remove unneeded initializations
staging: iio: ad2s1200: Remove unneeded newline in license
iio:dac:ad5686: Add AD5681R/AD5682R/AD5683/AD5683R support
arm64: KVM: Use lm_alias() for kvm_ksym_ref()
iio:dac:ad5686: Add AD5691R/AD5692R/AD5693/AD5693R support
iio: adc: stm32-dfsdm: include stm32-dfsdm-adc.h
dt-bindings: iio: afe: Spelling s/mesaurement/measurement/
iio: tsl2583: correct values in integration_time_available
drm: rcar-du: lvds: Fix crash in .atomic_check when disabling connector
net: ip6_gre: fix tunnel metadata device sharing.
sh_eth: add R8A77980 support
sh_eth: add EDMR.NBST support
sh_eth: add RGMII support
net: mvpp2: Add missing VLAN tag detection
i2c: mux: pca954x: force reset on probe if available
i2c: mux: demux-pinctrl: disable PM user interface
i2c: mux: ltc4306: switch to using .probe_new
mlxsw: use devlink helper to generate physical port name
dsa: set devlink port attrs for dsa ports
devlink: introduce a helper to generate physical port names
devlink: extend attrs_set for setting port flavours
devlink: introduce devlink_port_attrs_set
x86/Hyper-V/hv_apic: Build the Hyper-V APIC conditionally
bpf: Prevent memory disambiguation attack
ARM: fix kill( ,SIGFPE) breakage
mmap: relax file size limit for regular files
x86/Hyper-V/hv_apic: Include asm/apic.h
x86/MCE/AMD: Read MCx_MISC block addresses on any CPU
x86/MCE/AMD: Cache SMCA MISC block addresses
x86/apm: Fix spelling mistake: "caculate" -> "calculate"
x86: Convert x86_platform_ops to timespec64
timekeeping: Add more coarse clocktai/boottime interfaces
timekeeping: Add ktime_get_coarse_with_offset
timekeeping: Standardize on ktime_get_*() naming
timekeeping: Clean up ktime_get_real_ts64
timekeeping: Remove timespec64 hack
X86/Hyper-V: Consolidate the allocation of the hypercall input page
X86/Hyper-V: Consolidate code for converting cpumask to vpset
X86/Hyper-V: Enhanced IPI enlightenment
X86/Hyper-V: Enable IPI enlightenments
X86/Hyper-V: Enlighten APIC access
x86/intel_rdt/mba_sc: Feedback loop to dynamically update mem bandwidth
x86/intel_rdt/mba_sc: Prepare for feedback loop
x86/intel_rdt/mba_sc: Add schemata support
x86/intel_rdt/mba_sc: Add initialization support
x86/intel_rdt/mba_sc: Enable/disable MBA software controller
x86/intel_rdt/mba_sc: Documentation for MBA software controller(mba_sc)
ARM: 8774/1: remove no-op macro VMLINUX_SYMBOL()
ARM: 8773/1: amba: Export amba_bustype
ARM: 8768/1: uaccess: remove const to avoid duplicate specifier
ARM: 8767/1: add support for building ARM kernel with clang
ARM: 8766/1: drop no-thumb-interwork in EABI mode
ARM: 8765/1: smp: Move clear_tasks_mm_cpumask() call to __cpu_die()
ARM: 8764/1: kgdb: fix NUMREGBYTES so that gdb_regs[] is the correct size
ARM: 8763/1: dma-mapping: Use vma_pages()
ARM: 8757/1: NOMMU: Support PMSAv8 MPU
ARM: 8756/1: NOMMU: Postpone MPU activation till __after_proc_init
ARM: 8755/1: NOMMU: Reorganise __setup_mpu
ARM: 8754/1: NOMMU: Move PMSAv7 MPU under it's own namespace
ARM: 8752/1: Kconfig: default ARM_MODULE_PLTS to 'y'
ARM: 8772/1: kprobes: Prohibit kprobes on get_user functions
ARM: 8771/1: kprobes: Prohibit kprobes on do_undefinstr
ARM: 8770/1: kprobes: Prohibit probing on optimized_callback
ARM: 8769/1: kprobes: Fix to use get_kprobe_ctlblk after irq-disabed
ARM: replace unnecessary perl with sed and the shell $(( )) operator
ARM: kexec: record parent context registers for non-crash CPUs
ARM: kexec: fix kdump register saving on panic()
ARM: 8758/1: decompressor: restore r1 and r2 just before jumping to the kernel
ARM: 8753/1: decompressor: add a missing parameter to the addruart macro
x86/mm: Drop TS_COMPAT on 64-bit exec() syscall
x86/mm: Mark __pgtable_l5_enabled __initdata
x86/mm: Mark p4d_offset() __always_inline
x86/mm: Introduce the 'no5lvl' kernel parameter
x86/mm: Stop pretending pgtable_l5_enabled is a variable
x86/mm: Unify pgtable_l5_enabled usage in early boot code
x86/boot/compressed/64: Fix trampoline page table address calculation
perf tools: Fix kernel_start for PTI on x86
perf machine: Add machine__is() to identify machine arch
perf bpf: Fixup include and examples install messages
perf annotate: Create hotkey 'c' to show min/max cycles
rtc: mxc_v2: use rtc_time64_to_tm in mxc_rtc_read_alarm
rtc: mxc_v2: let the core handle rtc range
rtc: mxc_v2: fix possible race condition
c6x: use generic dma_noncoherent_ops
arc: use generic dma_noncoherent_ops
arc: fix arc_dma_{map,unmap}_page
arc: fix arc_dma_sync_sg_for_{cpu,device}
arc: simplify arc_dma_sync_single_for_{cpu,device}
dma-mapping: provide a generic dma-noncoherent implementation
dma-mapping: simplify Kconfig dependencies
riscv: add swiotlb support
riscv: only enable ZONE_DMA32 for 64-bit
riscv: simplify Kconfig magic for 32-bit vs 64-bit kernels
objtool: Detect RIP-relative switch table references, part 2
efi/libstub/arm64: Handle randomized TEXT_OFFSET
hfsplus: stop workqueue when fill_super() failed
mm: don't allow deferred pages with NEED_PER_CPU_KM
MAINTAINERS: add Q: entry to kselftest for patchwork project
radix tree: fix multi-order iteration race
radix tree test suite: multi-order iteration race
radix tree test suite: add item_delete_rcu()
radix tree test suite: fix compilation issue
radix tree test suite: fix mapshift build target
include/linux/mm.h: add new inline function vmf_error()
lib/test_bitmap.c: fix bitmap optimisation tests to report errors correctly
platform/x86: DELL_WMI use depends on instead of select for DELL_SMBIOS
drm/tegra: Add kerneldoc for UAPI
drm/amdgpu: fix insert nop for UVD4.2 ring
drm/amdgpu: fix insert nop for UVD5 ring
drm/amdgpu: fix insert nop for UVD6 ring
drm/amdgpu: fix insert nop for UVD7 ring
drm/amdgpu: fix insert nop for VCN decode ring
drm/amd/pp: Fix build warning in vegam
drm/amd/display: Clear connector's edid pointer
drm/amd/display: fix memory leaks
drm/amd/display: DCN1 link encoder
drm/amd/display: Clear underflow status for debug purposes
drm/amd/display: fix bug with index check
drm/amd/display: Add fullscreen transitions to log
drm/amd/display: constify a few dc_surface_update fields
drm/amd/display: Only limit VSR downscaling when actually downscaling
drm/amd/display: don't create new dc_sink if nothing changed at detection
drm/amd/display: use macro for logs
drm/amd/display: Fix up dm logging functionality
drm/amd/display: update dml to allow sync with DV
drm/amd/display: Log DTN only after the atomic commit in Diag
drm/amd/display: disable mpo if brightness adjusted
drm/amd/display: Add dc cap to restrict VSR downscaling src size
drm/amd/display: fix a 32 bit shift meant to be 64 warning
drm/amd/display: fix 31_32_fixpt shift functions
drm/amd/display: Update HW sequencer initialization
drm/amd/display: underflow/blankscreen recovery
drm/amd/display: truncate scaling ratios and inits to 19 bit precision
drm/amd/display: add fixed point fractional bit truncation function
drm/amd/display: Make DisplayStats work with just DC DisplayStats minor
drm/amd/display: inline more of fixed point code
drm/amd/display: get rid of 32.32 unsigned fixed point
drm/amd/display: Cleanup unused SetPlaneConfig
drm/amdgpu: Take vcn encode rings into account in idle work
drm/amdgpu: Take uvd encode rings into account in idle work (v2)
drm/amdgpu: count fences from all uvd instances in idle handler
drm/scheduler: fix function name prefix in comments
drm/amd/amdgpu: Code comments for the amdgpu_ttm.c driver. (v2)
drm/amd/pp: missing curly braces in smu7_enable_sclk_mclk_dpm()
drm/amdgpu/display: fix vega12/20 handling in dal_asic_id.h
drm/amdgpu/display: remove VEGA20 config option
drm/amdgpu/display: remove VEGAM config option
drm/scheduler: Remove obsolete spinlock.
drm/amdgpu: remove unused member
drm/amd/pp: Workaround flickering issue on RV
drm/amdgpu: Skip drm_sched_entity related ops for KIQ ring.
drm/amdgpu: flag Vega20 as experimental
drm/amdgpu: Add vega20 pci ids
drm/amdgpu: Switch to use df_v3_6_funcs for vega20 (v2)
drm/amdgpu/df: implement df v3_6 callback functions (v2)
drm/amdgpu: add df 3.6 headers
drm/amdgpu/vg20:Enable UVD/VCE for Vega20
drm/amdgpu/vg20:Enable 2nd instance queue maping for uvd 7.2
drm/amdgpu/vg20:Enable the 2nd instance IRQ for uvd 7.2
drm/amdgpu/vg20:Add IH client ID for the 2nd UVD
drm/amdgpu/vg20:Enable the 2nd instance for uvd
drm/amdgpu/vg20:increase 3 rings for AMDGPU_MAX_RINGS
drm/amdgpu/vg20:Restruct uvd.inst to support multiple instances
drm/amdgpu/vg20:Restruct uvd to support multiple uvds
drm/amdgpu: Disable ip modules that are not ready yet
drm/amd/powerplay: update vega20 cg flags (v2)
ARM: dts: am3517-evm: Add User LEDs and Pushbutton
ARM: dts: am3517-evm: Add I/O expander for User DIP switches and LEDS
clocksource/drivers/arc_timer: Add comments about locking while read GFRC
clocksource/drivers/mips-gic-timer: Add pr_fmt and reword pr_* messages
clocksource/drivers/sprd: Fix Kconfig dependency
dt-bindings: memory: tegra: Remove Tegra114 SATA and AFI reset definitions
memory: tegra: Remove Tegra114 SATA and AFI reset definitions
bpf: add sk_msg prog sk access tests to test_verifier
bpf: allow sk_msg programs to read sock fields
nvme-pci: drop IRQ disabling on submission queue lock
nvme-pci: split the nvme queue lock into submission and completion locks
nvme-pci: handle completions outside of the queue lock
nvme-pci: move ->cq_vector == -1 check outside of ->q_lock
nvme-pci: remove cq check after submission
nvme-pci: simplify nvme_cqe_valid
nvme: mark the result argument to nvme_complete_async_event volatile
PCI: Remove host driver Kconfig selection of CONFIG_PCIEPORTBUS
drm/tegra: vic: Track interface version
drm/tegra: gr3d: Track interface version
drm/tegra: gr2d: Track interface version
drm/tegra: Track client version
drm/tegra: dc: Support rotation property
drm/tegra: gem: Fill in missing export info
drm/tegra: Use proper arguments for DRM_TEGRA_CLOSE_CHANNEL IOCTL
gpu: host1x: Use not explicitly sized types
gpu: host1x: Rename relocarray -> relocs for consistency
gpu: host1x: Drop unnecessary host1x argument
gpu: host1x: Cleanup loop variable usage
gpu: host1x: Store pointer to client in jobs
gpu: host1x: Remove wait check support
audit: use existing session info function
selftests: bpf: config: enable NET_SCH_INGRESS for xdp_meta.sh
nfp: bpf: support arithmetic indirect right shift (BPF_ARSH | BPF_X)
nfp: bpf: support arithmetic right shift by constant (BPF_ARSH | BPF_K)
nfp: bpf: support logic indirect shifts (BPF_[L|R]SH | BPF_X)
EVM: Allow runtime modification of the set of verified xattrs
EVM: turn evm_config_xattrnames into a list
perf annotate: Record the min/max cycles
perf script: Show symbol offsets by default
drm/amdgpu: conditionally compile amdgpu's amdkfd files
xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent
net: stmmac: Populate missing callbacks in HWIF initialization
cxgb4: fix offset in collecting TX rate limit info
cxgb4: collect SGE PF/VF queue map
net: sched: red: avoid hashing NULL child
net: mvpp2: typo and cosmetic fixes
sock_diag: fix use-after-free read in __sk_free
sh_eth: Change platform check to CONFIG_ARCH_RENESAS
hippi: fix spelling mistake: "Framming" -> "Framing"
tcp: tcp_rack_reo_wnd() can be static
net/smc: restructure client and server code in af_smc
net/smc: change smc_buf_free function parameters
net/smc: do a few smc_core.c cleanups
net/smc: restructure CDC message reception
net/smc: move smc_core specific code from smc.h to smc_core
net/smc: calculate write offset in RMB only once per connection
net/smc: rename connection index to RMBE index
net/smc: move link group list to smc_core
net/smc: add common buffer size in send and receive buffer descriptors
ASoC: pcm512x: Add ACPI support
ARM: dts: armada-xp-98dx: Add NAND pinctrl information
ARM: dts: armada-39x: update NAND node with new bindings
ARM: dts: armada-38x: update NAND node with new bindings
ARM: dts: armada-375: update NAND node with new bindings
ARM: dts: armada-370-xp: update NAND node with new bindings
arm64: dts: marvell: armada-37xx: mark the gpio controllers as irq controller
scsi: snic: fix a couple of spelling mistakes: "COMPLETE"
scsi: target: transport should handle st FM/EOM/ILI reads
scsi: qlogicpti: Fix an error handling path in 'qpti_sbus_probe()'
scsi: ufs: Add clock ungating to a separate workqueue
scsi: ufs: make sure all interrupts are processed
scsi: ufs: ufs-qcom: remove broken hci version quirk
scsi: ufs: add reference counting for scsi block requests
scsi: ufs: ufshcd: fix possible unclocked register access
scsi: ufs: fix exception event handling
crypto: x86 - Add optimized MORUS implementations
crypto: morus - Add common SIMD glue code for MORUS
crypto: testmgr - Add test vectors for MORUS
crypto: morus - Add generic MORUS AEAD implementations
crypto: x86 - Add optimized AEGIS implementations
crypto: testmgr - Add test vectors for AEGIS
crypto: aegis - Add generic AEGIS AEAD implementations
crypto: testmgr - reorder paes test lexicographically
crypto: chelsio - request to HW should wrap
crypto: nx - fix spelling mistake: "seqeunce" -> "sequence"
hwrng: n2 - fix spelling mistake: "restesting" -> "retesting"
net: dsa: Do not register devlink for unused ports
net: Fix a bug in removing queues from XPS map
scsi: dpt_i2o: Remove VLA usage
ASoC: rt5677: Convert I2C driver to ->probe_new()
workqueue: Show the latest workqueue name in /proc/PID/{comm,stat,status}
proc: Consolidate task->comm formatting into proc_task_name()
workqueue: Set worker->desc to workqueue name by default
workqueue: Make worker_attach/detach_pool() update worker->pool
workqueue: Replace pool->attach_mutex with global wq_pool_attach_mutex
PCI: endpoint: Create configfs entry for each pci_epf_device_id table entry
tcp: add tcp_comp_sack_nr sysctl
tcp: add tcp_comp_sack_delay_ns sysctl
tcp: add TCPAckCompressed SNMP counter
tcp: add SACK compression
tcp: do not force quickack when receiving out-of-order packets
tcp: use __sock_put() instead of sock_put() in tcp_clear_xmit_timers()
net: mscc: Add SPDX identifier
scsi: ufs: Use freq table with devfreq
scsi: ufs: Extract devfreq registration
scsi: storvsc: Avoid allocating memory for temp cpumasks
scsi: zfcp: enhance comments on fc_link_speed and supported_speed
scsi: zfcp: add port speed capabilities
scsi: zfcp: assert that the ERP lock is held when tracing a recovery trigger
scsi: zfcp: cleanup indentation for posting FC events
scsi: zfcp: support SCSI_ADAPTER_RESET via scsi_host sysfs attribute host_reset
scsi: zfcp: explicitly support initiator in scsi_host_template
scsi: zfcp: remove unused return values of ERP trigger functions
scsi: zfcp: zfcp_erp_action_exists() does only check for running
scsi: zfcp: remove unused ERP enum values
scsi: zfcp: consistently use function name space prefix
scsi: zfcp: workqueue: set description for port work items with their WWPN as context
scsi: zfcp: decouple our scsi_eh callbacks from scsi_cmnd
scsi: zfcp: decouple TMFs from scsi_cmnd by using fc_block_rport
scsi: zfcp: decouple SCSI setup of TMF from scsi_cmnd
scsi: zfcp: decouple FSF request setup of TMF from scsi_cmnd
scsi: zfcp: split FCP_CMND IU setup between SCSI I/O and TMF again
scsi: zfcp: decouple TMF response handler from scsi_cmnd
scsi: zfcp: decouple SCSI traces for scsi_eh / TMF from scsi_cmnd
scsi: zfcp: fix missing REC trigger trace on enqueue without ERP thread
scsi: zfcp: fix missing REC trigger trace for all objects in ERP_FAILED
scsi: zfcp: fix missing REC trigger trace on terminate_rport_io for ERP_FAILED
scsi: zfcp: fix missing REC trigger trace on terminate_rport_io early return
scsi: zfcp: fix misleading REC trigger trace where erp_action setup failed
scsi: zfcp: fix missing SCSI trace for retry of abort / scsi_eh TMF
scsi: zfcp: fix missing SCSI trace for result of eh_host_reset_handler
scsi: cxlflash: Isolate external module dependencies
scsi: cxlflash: Abstract hardware dependent assignments
scsi: cxlflash: Add include guards to backend.h
scsi: cxlflash: Use local mutex for AFU serialization
scsi: cxlflash: Acquire semaphore before invoking ioctl services
scsi: cxlflash: Limit the debug logs in the IO path
scsi: cxlflash: Yield to active send threads
scsi: hisi_sas: add check of device in hisi_sas_task_exec()
scsi: hisi_sas: Use device lock to protect slot alloc/free
scsi: hisi_sas: Don't lock DQ for complete task sending
scsi: hisi_sas: allocate slot buffer earlier
scsi: hisi_sas: make return type of prep functions void
scsi: hisi_sas: relocate smp sg map
net: stmmac: Remove if condition by taking advantage of hwif return code
net: stmmac: Let descriptor code get skbuff address
net: stmmac: Uniformize set_rx_owner()
net: stmmac: Remove uneeded check for GMAC version in stmmac_xmit
net: stmmac: Uniformize the use of dma_init_* callbacks
net: stmmac: Move PTP and MMC base address calculation to hwif.c
net: stmmac: Remove uneeded checks for GMAC version
net: stmmac: Uniformize the use of dma_{rx/tx}_mode callbacks
net: stmmac: Let descriptor code clear the descriptor
net: stmmac: Let descriptor code set skbuff address
net: stmmac: Do not keep rearming the coalesce timer in stmmac_xmit
net: stmmac: Enable OSP for GMAC4
bus: ti-sysc: Fix optional clocks array access
scsi: ufs: make ufshcd_config_pwr_mode of non-static func
scsi: ufs: add quirk to enable host controller without hce
scsi: ufs: add quirk to disallow reset of interrupt aggregation
scsi: ufs: add quirk to fix mishandling utrlclr/utmrlclr
scsi: ufs: ufshcd: Remove VLA usage
blk-mq: clear hctx->dispatch_from when mappings change
ARM: OMAP2+: Make sure LOGICRETSTATE bits are not cleared
scsi: sg: allocate with __GFP_ZERO in sg_build_indirect()
parisc: Move ccio_cujo20_fixup() into init section
parisc: Move setup_profiling_timer() out of init section
parisc: Move find_pa_parent_type() out of init section
xsk: proper '=' alignment
xsk: fixed some cases of unnecessary parentheses
xsk: remove newline at end of file
xsk: clean up SPDX headers
ARM: OMAP2+: prm44xx: Inroduce cpu_pm notifiers for context save/restore
ARM: OMAP2+: prm44xx: Introduce context save/restore for am43 PRCM IO
usb: usbtmc: Remove rigol_quirk
ARM: OMAP2+: powerdomain: Introduce cpu_pm notifiers for context save/restore
ARM: OMAP2+: Add functions to save and restore powerdomain context
ARM: OMAP2+: clockdomain: Inroduce cpu_pm notifiers for context save/restore
drm/etnaviv: replace license text with SPDX tags
drm/etnaviv: mmuv2: support 40 bit phys address
drm/etnaviv: mmuv2: allocate 2nd level page tables on demand
drm/etnaviv: switch MMU page tables to writecombine memory
drm/etnaviv: remove register logging
drm/etnaviv: remove cycling through MMU address space
drm/etnaviv: correct timeout calculation
fsnotify: add fsnotify_add_inode_mark() wrappers
fanotify: generalize fanotify_should_send_event()
fsnotify: generalize send_to_group()
fsnotify: generalize iteration of marks by object type
fsnotify: introduce marks iteration helpers
fsnotify: remove redundant arguments to handle_event()
fsnotify: use type id to identify connector object type
powerpc/powernv: Use __raw_[rm_]writeq_be() in npu-dma.c
powerpc/powernv: Use __raw_[rm_]writeq_be() in pci-ioda.c
powerpc/io: Add __raw_writeq_be() __raw_rm_writeq_be()
powerpc/perf: Fix memory allocation for core-imc based on num_possible_cpus()
powerpc/rtas: Fix spelling mistake "Discharching" -> "Discharging"
KVM: PPC: Book3S PR: Enable use on POWER9 inside HPT-mode guests
mtd: spi-nor: Add support for EN25QH32
ALSA: dice: fix a bounds check in snd_dice_detect_tcelectronic_formats()
mtd: spi-nor: Add support for is25wp series chips
mtd: spi-nor: Add Winbond w25q32jv support
mtd: spi-nor: fsl-quadspi: add support for ls2080a/ls1080a
mtd: spi-nor: stm32-quadspi: explicitly request exclusive reset control
mtd: spi-nor: intel: provide a range for poll_timout
mtd: spi-nor: fsl-quadspi: fix api naming typo _init_ahb_read
mtd: spi-nor: intel-spi: Explicitly mark the driver as dangerous in Kconfig
mtd: spi-nor: intel-spi: Fix atomic sequence handling
proc: Add a way to make network proc files writable
afs: Rearrange fs/afs/proc.c to remove remaining predeclarations.
afs: Rearrange fs/afs/proc.c to move the show routines up
afs: Rearrange fs/afs/proc.c by moving fops and open functions down
afs: Move /proc management functions to the end of the file
cfg80211: release station info tidstats where needed
clk: tegra: Add quirk for getting CDEV1/2 clocks on Tegra20
clk: tegra20: Correct parents of CDEV1/2 clocks
clk: tegra20: Add DEV1/DEV2 OSC dividers
memory: tegra: Register SMMU after MC driver became ready
ASoC: ssm2305: fix header layout
clk: meson: use SPDX license identifiers consistently
mailbox: PCC: erroneous error message when parsing ACPI PCCT
arm64: dts: renesas: salvator-common: Add ADV7482 support
mac80211: allocate and fill tidstats only when needed
gpu: host1x: Fix compiler errors by converting to dma_addr_t
x86/bugs: Rename SSBD_NO to SSB_NO
ARM: tegra: Create platform device for tegra20-cpufreq driver
ASoC: wm2200,wm5100: fix spelling mistake: "Coefficeints" -> "Coefficients"
mac80211: fix TX aggregation stop race
cfg80211: fix spelling mistake: "uknown" -> "unknown"
cfg80211/mac80211: revert to stack allocation for sinfo
cfg80211: dynamically allocate per-tid stats for station info
ASoC: wm8904: fix spelling mistake: "Caputure" -> "Capture"
mac80211: mesh: fix premature update of rc stats
nl80211: fix nlmsg allocation in cfg80211_ft_event
cfg80211: further limit wiphy names to 64 bytes
rtc: ls1x: add range
ACPICA: Update version to 20180508
ACPICA: acpidump/acpixtract: Support for tables larger than 1MB
x86/io: Define readq()/writeq() to use 64-bit type
drm/nouveau/gr/gf100-: insert some WFIs during gr init
drm/nouveau/clk: Use list_for_each_entry_from_reverse
drm/nouveau: fix temp/pwm visibility, skip hwmon when no sensors exist
drm/nouveau: fix nouveau_dsm_get_client_id()'s return type
drm/nouveau: fix mode_valid's return type
sched/fair: Fix documentation file path
sched/deadline: Make the grub_reclaim() function static
sched/debug: Move the print_rt_rq() and print_dl_rq() declarations to kernel/sched/sched.h
tpm: reduce polling time to usecs for even finer granularity
ALSA: dice: add stream format parameters for Mytek devices
ALSA: timer: Assure timer resolution access always locked
ALSA: seq: Avoid open-code for getting timer resolution
ALSA: timer: Simplify timer hw resolution calls
ALSA: timer: Fix pause event notification
ALSA: usb: stream: fix potential memory leak during uac3 interface parsing
powerpc/64s: Clear PCR on boot
powerpc/lib: Fix "integer constant is too large" build failure
KVM: PPC: Book3S HV: Send kvmppc_bad_interrupt NMIs to Linux handlers
KVM: PPC: Book3S HV: Fix kvmppc_bad_host_intr for real mode interrupts
KVM: PPC: Book3S HV: radix: Do not clear partition PTE when RC or write bits do not match
KVM: PPC: Book3S HV: radix: Refine IO region partition scope attributes
KVM: PPC: Book3S HV: Make radix handle process scoped LPID flush in C, with relocation on
KVM: PPC: Book3S HV: Make radix use the Linux translation flush functions for partition scope
KVM: PPC: Book3S HV: Recursively unmap all page table entries when unmapping
KVM: PPC: Book3S HV: Use a helper to unmap ptes in the radix fault path
KVM: PPC: Book3S HV: Lockless tlbie for HPT hcalls
KVM: PPC: Fix a mmio_host_swabbed uninitialized usage issue
KVM: PPC: Move nip/ctr/lr/xer registers to pt_regs in kvm_vcpu_arch
KVM: PPC: Add pt_regs into kvm_vcpu_arch and move vcpu->arch.gpr[] into it
s390/purgatory: Fix endless interrupt loop
drm/nouveau/gr/gv100: initial support
drm/nouveau/ce/gv100: initial support
drm/nouveau/fifo/gv100: initial support
drm/nouveau/kms/gv100: initial support
drm/nouveau/disp/gv100: initial support
drm/nouveau/dma/gv100: initial support
drm/nouveau/therm/gv100: initial support
drm/nouveau/pmu/gv100: initial support
drm/nouveau/fault/gv100: initial support
drm/nouveau/bar/gv100: initial support
drm/nouveau/mmu/gv100: initial support
drm/nouveau/ltc/gv100: initial support
drm/nouveau/fb/gv100: initial support
drm/nouveau/imem/gv100: initial support
drm/nouveau/tmr/gv100: initial support
drm/nouveau/bus/gv100: initial support
drm/nouveau/mc/gv100: initial support
drm/nouveau/fuse/gv100: initial support
drm/nouveau/i2c/gv100: initial support
drm/nouveau/gpio/gv100: initial support
drm/nouveau/ibus/gv100: initial support
drm/nouveau/top/gv100: initial support
drm/nouveau/devinit/gv100: initial support
drm/nouveau/bios/pll: limits table 5.0
drm/nouveau/bios/gv100: initial support
drm/nouveau/pci/gv100: initial support
drm/nouveau/core: recognise gv100
drm/nouveau/core: increase maximum number of copy engines to 9
drm/nouveau/kms/nv50-: initial overlay support
drm/nouveau/kms/gk104-: add support for [XA]2R10G10B10 formats
drm/nouveau/kms/gk104-: support additional cursor sizes
drm/nouveau/kms/nv50-: separate blocklinear vs linear pitch
drm/nouveau/kms/nv50-: handle degamma LUT from window channels
drm/nouveau/kms/nv50-: plane updates don't always require image_set()
drm/nouveau/kms/nv50-: store window visibility in state
drm/nouveau/kms/nv50-: simplify swap interval handling
drm/nouveau/kms/nv50-: decouple window state changes, and update method submisssion
drm/nouveau/kms/nv50-: simplify tracking of channel interlocks
drm/nouveau/kms/nv50-: determine MST support from DP Info Table
drm/nouveau/kms/nv50-: extend window image data for stereo/planar formats
drm/nouveau/kms/nv50-: move drm format->hw conversion into common code
drm/nouveau/kms/nv50-: unify set/clr masks
drm/nouveau/kms/nv50-: allow specification of valid heads for a window
drm/nouveau/kms/nv50-: split base implementation by hardware class
drm/nouveau/kms/nv50-: split core implementation by hardware class
drm/nouveau/kms/nv50-: split each resource type into their own source files
drm/nouveau/kms/nv50: abstract OR interfaces so the code can be split
drm/nouveau/kms/nv50: handle SetControlOutputResource from head
drm/nouveau/kms/nv50-: abstract head interfaces so the code can be split
drm/nouveau/kms/nv50: modify core allocation so the code can be split
drm/nouveau/kms/nv50-: modify base allocation so the code can be split
drm/nouveau/kms/nv50-: modify cursor allocation so the code can be split
drm/nouveau/kms/nv50-: modify overlay allocation so the code can be split
drm/nouveau/kms/nv50-: move fb ctxdma tracking into windows
drm/nouveau/kms/nv50-: fix i2c-over-aux on anx9805
drm/nouveau/kms/nv50-: move code underneath dispnv50/
drm/nouveau/kms: move display class instantiation to library
drm/nouveau/drm/nv50-: remove allocation of sw class
drm/nouveau: no need to create ctxdma for push buffers on fermi and up
drm/nouveau: remove fence wait code from deferred client work handler
drm/nouveau/gem: tie deferred unmapping of buffers to VMA fence completion
drm/nouveau/gem: attach fences to VMAs to track GPU usage
drm/nouveau/gem: lookup VMAs for buffers referenced by pushbuf ioctl
drm/nouveau/gr/gp102-: setup stencil zbc
drm/nouveau/gr/gp100-: use correct registers for zbc colour/depth setup
drm/nouveau/gr/gp100-: fix attrib cb setup
drm/nouveau/gr/gp100-: fix pagepool setup
drm/nouveau/gr/gf100-gm10x: update register lists
drm/nouveau/gr/gf100-: swap bundle and pagepool
drm/nouveau/gr/gf100-: calculate and use sm mapping table
drm/nouveau/gr/gf100-: port zcull tile mapping calculations from NVGPU
drm/nouveau/gr/gf100-: port tile mapping calculations from NVGPU
drm/nouveau/gr/gf100-: virtualise trap_mp
drm/nouveau/gr/gf100-: add missing reset sequence before golden context init
drm/nouveau/gr/gf100-: delete duplicated grctx init code
drm/nouveau/gr/gf100-: update r408840 where required
drm/nouveau/gr/gf100-: update 419a3c where required
drm/nouveau/gr/gf100-: virtualise r418e94
drm/nouveau/gr/gf100-: virtualise r419e00
drm/nouveau/gr/gf100-: update 419eb0 where required
drm/nouveau/gr/gf100-: note missing 418800 modifications
drm/nouveau/gr/gf100-gf119: update 419cb8 where required
drm/nouveau/gr/gf100-: support firmware-provided bundle/method everywhere
drm/nouveau/gr/gf100-: virtualise tpc_mask + apply fixes from traces
drm/nouveau/gr/gf100-: virtualise r419f78 + apply fixes from traces
drm/nouveau/gr/gf100-: virtualise gpc_tpc_nr
drm/nouveau/gr/gf100-: virtualise r406500
drm/nouveau/gr/gf100-: virtualise dist_skip_table + improve algorithm
drm/nouveau/gr/gf100-gf119: modify max_ways_evict where required
drm/nouveau/gr/gf100-: virtualise alpha_beta_tables + improve algorithms
drm/nouveau/gr/gf100-: virtualise rop_mapping
drm/nouveau/gr/gf100-: virtualise r4060a8 + apply fixes from traces
drm/nouveau/gr/gf100-: virtualise tpc_per_gpc
drm/nouveau/gr/gf100-: virtualise sm_id/tpc_nr
drm/nouveau/gr/gf100-: virtualise patch_ltc, noting missing init
drm/nouveau/gr/gf100-: support firmware-provided sw_ctx everywhere
drm/nouveau/gr/gf100-: delete duplicated init code
drm/nouveau/gr/gf100-: virtualise init_400054
drm/nouveau/gr/gf100-: apply be exception fixes from traces
drm/nouveau/gr/gf100-: virtualise init_shader_exceptions
drm/nouveau/gr/gf100-: virtualise init_504430
drm/nouveau/gr/gf100-: virtualise init_tex_hww_esr
drm/nouveau/gr/gf100-: virtualise init_ppc_exceptions
drm/nouveau/gr/gf100-: virtualise init_419c9c + apply fixes from traces
drm/nouveau/gr/gf100-: virtualise init_419eb4 + apply fixes from traces
drm/nouveau/gr/gf100-: virtualise init_419cc0 + apply fixes from traces
drm/nouveau/gr/gf100-: virtualise init_sked_hww_esr
drm/nouveau/gr/gf100-: virtualise init_40601c
drm/nouveau/gr/gf100-: virtualise init_ds_hww_esr_2
drm/nouveau/gr/gf100-: virtualise init_fecs_exceptions + apply fixes from traces
drm/nouveau/gr/gf100: write 0x400124 during init
drm/nouveau/gr/gf100-: virtualise init_swdx_pes_mask
drm/nouveau/gr/gf100-: implement another chunk of bios-provided init
drm/nouveau/gr/gf100-: virtualise init_rop_active_fbps
drm/nouveau/gr/gf100-: virtualise init_num_active_ltcs
drm/nouveau/gr/gf100-: virtualise init_zcull
drm/nouveau/gr/gf100-: virtualise init_vsc_stream_master
drm/nouveau/gr/gf100-: virtualise init_bios
drm/nouveau/gr/gf100-: support clkgate_pack everywhere
drm/nouveau/gr/gf100-: virtualise r405a14
drm/nouveau/gr/gf100-: support firmware-provided sw_nonctx everywhere
drm/nouveau/gr/gf100-: virtualise init_gpc_mmu + apply fixes from traces
drm/nouveau/fifo/gp100-: force individual channels into a channel group
drm/nouveau/fifo/gm107-: write instance address in channel runlist entry
drm/nouveau/fifo/gk208-: write pbdma timeout regs during initialisation
drm/nouveau/fifo/gk110-: support writing channel group runlist entries
drm/nouveau/fifo/gk104-: poll for runlist update completion
drm/nouveau/fifo/gk104-: add interfaces to support different runlist layouts
drm/nouveau/fifo/gk104-: simplify definition of channel classes
drm/nouveau/fifo/gk104-: require explicit runlist selection for channel allocation
drm/nouveau/fifo/gk104-: support querying engines available on each runlist
drm/nouveau/fifo/gk104-: allow fault recovery code to be called by other subdevs
drm/nouveau/fifo/gk104-: accept engine contexts for CE3 and up
drm/nouveau/fifo: support channel count query
drm/nouveau/device: support querying available engines of a specific type
drm/nouveau/device: implement a generic method to query device-specific properties
drm/nouveau/disp/nv50-: pass nvkm_memory objects for channel push buffers
drm/nouveau/disp/nv50-: add channel interfaces to control error interrupts
drm/nouveau/disp/nv50-: add channel interfaces to determine the user area
drm/nouveau/disp/nv50-: merge handling of pio and dma channels
drm/nouveau/disp/nv50-: simplify definiton of core channels
drm/nouveau/disp/nv50-: simplify definition of cursor channels
drm/nouveau/disp/nv50-: simplify definition of base channels
drm/nouveau/disp/nv50-: simplify definition of overlay immediate channels
drm/nouveau/disp/nv50-: simplify definition of overlay channels
drm/nouveau/disp/nv50-: replace user object with engine pointer in channels
drm/nouveau/disp/nv50-: initialise from the engine, rather than the user object
drm/nouveau/disp/nv50-: fetch mask of available piors during oneinit
drm/nouveau/disp/nv50-: fetch mask of available sors during oneinit
drm/nouveau/disp/nv50-: fetch mask of available dacs during oneinit
drm/nouveau/disp/nv50-: fetch mask of available heads during oneinit
drm/nouveau/disp/nv50-: delay subunit construction until oneinit
drm/nouveau/fb/gm200-: fix overwriting of big page setting
drm/nouveau/fb/gf100-: bump size of mmu debug buffers to match big page size
drm/nouveau/fault/gp100: implement replayable fault buffer initialisation
drm/nouveau/fault: add infrastructure to support fault buffers
drm/nouveau/mc/gp100-: route fault buffer interrupts to FAULT
drm/nouveau/core: define FAULT subdev
drm/nouveau/secboot: remove VLA usage
drm/nouveau: nouveau: use larger buffer in nvif_vmm_map
Bluetooth: Add a new 13d3:3496 QCA_ROME device
Bluetooth: btqca: Add AR3002 rampatch support
Bluetooth: Add __hci_cmd_send function
Bluetooth: hci_ldisc: Provide a 'default' switch case
Bluetooth: btusb: add ID for LiteOn 04ca:301a
Bluetooth: use wait_event API instead of open-coding it
Bluetooth: Prevent buffer overflow for large advertisement data
Bluetooth: btbcm: btbcm_initialize(): Initialize hw_name to "BCM"
Bluetooth: btbcm: Remove duplicate code from btbcm_setup_patchram()
Bluetooth: btbcm: Allow using btbcm_initialize() for reinit
Bluetooth: btbcm: Make btbcm_initialize() also work for USB connected devices
Bluetooth: btbcm: Factor out common code to determine subversion
Bluetooth: btbcm: Stop using upper nibble of rev to chose between uart/USB paths
Bluetooth: hci_qca: Add serdev support
dt-bindings: net: bluetooth: Add qualcomm-bluetooth
arm64: dts: apq8096-db820c: enable bluetooth node
arm64: dts: apq8096-db820c: Enable wlan and bt en pins
Bluetooth: hci_qca: Avoid missing rampatch failure with userspace fw loader
Bluetooth: btqcomsmd: Fix rx/tx stats
Bluetooth: hci_bcm: Remove irq-active-low DMI quirk for the Thinkpad 8
Bluetooth: hci_bcm: Add broken-irq dmi blacklist and add Meegopad T08 to it
dmaengine: usb-dmac: Document R8A7799{0,5} bindings
vfs: namei: use path_equal() in follow_dotdot()
fs.h: fix outdated comment about file flags
net/mlx5e: Add HW vport counters to representor ethtool stats
net/mlx5e: Ignore attempts to offload multiple times a TC flow
net/mlx5e: Use shared table for offloaded TC eswitch flows
net/mlx5e: Prepare for shared table to keep TC eswitch flows
net/mlx5e: Add ingress/egress indication for offloaded TC flows
net/mlx5e: Offload TC eswitch rules for VFs belonging to different PFs
isdn/gigaset: add back gigaset_procinfo assignment
bpf: fix truncated jump targets on heavy expansions
fs/proc: simplify and clarify get_mm_cmdline() function
bpf: parse and verdict prog attach may race with bpf map update
bpf: sockmap update rollback on error can incorrectly dec prog refcnt
PCI/portdrv: Add generic pcie_port_find_service()
PCI/AER: Factor out error reporting to drivers/pci/pcie/err.c
PCI/AER: Rename error recovery interfaces to generic PCI naming
PCI/AER: Handle ERR_FATAL with removal and re-enumeration of devices
PCI: Add generic pcie_wait_for_link() interface
ARM: OMAP2+: Add functions to save and restore clockdomain context en-masse.
net/mlx5e: Explicitly set source e-switch in offloaded TC rules
net/mlx5: Add source e-switch owner
net/mlx5e: Explicitly set destination e-switch in FDB rules
net/mlx5: Add destination e-switch owner
net/mlx5: Properly handle a vport destination when setting FTE
net/mlx5: Add merged e-switch cap
net: phy: Allow MDIO_MOXART and MDIO_SUN4I with COMPILE_TEST
net: ethernet: freescale: Allow FEC with COMPILE_TEST
net: ethernet: ti: Allow most drivers with COMPILE_TEST
vlan: Add extack messages for link create
qede: Add build_skb() support.
net: test tailroom before appending to linear skb
rtc: ls1x: remove useless label and goto
rtc: ls1x: switch to rtc_register_device
rtc: tps6586x: let the core handle rtc range
rtc: tps6586x: fix possible race condition
rtc: vr41xx: add range
rtc: vr41xx: fix possible race condition
net: ip6_gre: Fix ip6erspan hlen calculation
net: ip6_gre: Split up ip6gre_changelink()
net: ip6_gre: Split up ip6gre_newlink()
net: ip6_gre: Split up ip6gre_tnl_change()
net: ip6_gre: Split up ip6gre_tnl_link_config()
net: ip6_gre: Fix headroom request in ip6erspan_tunnel_xmit()
net: ip6_gre: Request headroom in __gre6_xmit()
bpf: sockmap, fix double-free
bpf: sockmap, fix uninitialized variable
rtc: rx8581: switch to regmap
rtc: rx8581: error out when time invalid
audit: normalize loginuid read access
rtc: rx8581: remove useless declaration
rtc: rx8581: remove useless indirection
rtc: rx8581: let the core handle rtc range
rtc: rx8581: add RTC range
rtc: rx8581: switch to rtc_register_device
rtc: tps65910: add range
rtc: tps65910: allow platform power up
rtc: tps65910: fix possible race condition
tc-testing: fixed copy-pasting error in ife tests
net/ncsi: prevent a couple array underflows
net/smc: init conn.tx_work & conn.send_lock sooner
nfp: flower: fix error path during representor creation
rtc: ab-b5ze-s3: let the core handle the RTC range
rtc: ab-b5ze-s3: fix possible race conditions
rtc: 88pm80x: convert to rtc_tm_to_time64/rtc_time64_to_tm
rtc: 88pm80x: let the core handle the RTC range
rtc: 88pm80x: fix possible race condition
rtc: 88pm80x: remove unused pm80x_rtc_info members
rtc: 88pm80x: stop setting a default time
rtc: at91rm9200: add range
net: mvpp2: print rx error with rate-limit
net: mvpp2: set mac address does not require the stop/start sequence
net: mvpp2: avoid checking for free aggregated descriptors twice
selftests/bpf: check return value of fopen in test_verifier.c
net: mvpp2: 2500baseX support
net: mvpp2: 1000baseX support
phy: cp110-comphy: 2.5G SGMII mode
phy: add 2.5G SGMII mode to the phy_mode enum
net: mvpp2: phylink support
net: mvpp2: align the ethtool ops definition
fs/proc: re-factor proc_pid_cmdline_read() a bit
audit: use new audit_context access funciton for seccomp_actions_logged
vmxnet3: Replace msleep(1) with usleep_range()
perf script: Show virtual addresses instead of offsets
bonding: introduce link change helper
erspan: fix invalid erspan version.
tcp: don't mark recently sent packets lost on RTO
tcp: new helper tcp_rack_skb_timeout
tcp: separate loss marking and state update on RTO
tcp: new helper tcp_timeout_mark_lost
tcp: account lost retransmit after timeout
tcp: simpler NewReno implementation
tcp: disable RFC6675 loss detection
tcp: support DUPACK threshold in RACK
perf tools: No need to unconditionally read the max_stack sysctls
net: ethernet: ti: cpsw: disable mq feature for "AM33xx ES1.0" devices
perf tools: Read the cache line size lazily
x86/apic/x2apic: Initialize cluster ID properly
ibmvnic: Fix statistics buffers memory leak
ibmvnic: Fix non-fatal firmware error reset
ibmvnic: Free coherent DMA memory if FW map failed
net/ipv4: Initialize proto and ports in flow struct
tls: don't use stack memory in a scatterlist
tools include compiler-gcc: Add __pure attribute helper
ALSA: emu10k1: Rate-limit error messages about page errors
tools lib api fs tracing_path: Make tracing_events_path private
tools lib api fs tracing_path: Introduce opendir() method
perf parse-events: Use get/put_events_file()
perf tools: Reuse the path to the tracepoint /events/ directory
arm64/sve: Write ZCR_EL1 on context switch only if changed
kvm: rename KVM_HINTS_DEDICATED to KVM_HINTS_REALTIME
regulator: pfuze100: add .is_enable() for pfuze100_swb_regulator_ops
regulator: pfuze100: add enable/disable for switch
soc: qcom: apr: fix invalid msg_type check
ASoC: rt5670: improve PLL function's stability
ASoC: ssm2305: Add amplifier driver
md/raid5: Assigning NULL to sh->batch_head before testing bit R5_Overlap of a stripe
md/raid1: add error handling of read error from FailFast device
md: fix NULL dereference of mddev->pers in remove_and_add_spares()
raid5: copy write hint from origin bio to stripe
pfifo_fast: drop unneeded additional lock on dequeue
sched: replace __QDISC_STATE_RUNNING bit with a spin lock
arm64: topology: divorce MC scheduling domain from core_siblings
ACPI: Add PPTT to injectable table list
arm64: topology: enable ACPI/PPTT based CPU topology
arm64: topology: rename cluster_id
arm64: Add support for ACPI based firmware tables
drivers: base cacheinfo: Add support for ACPI based firmware tables
ACPI: Enable PPTT support on ARM64
ACPI/PPTT: Add Processor Properties Topology Table parsing
arm64/acpi: Create arch specific cpu to acpi id helper
cacheinfo: rename of_node to fw_token
drivers: base: cacheinfo: setup DT cache properties early
proc: do not access cmdline nor environ from file-backed areas
ice: Update NVM AQ command functions
ixgbevf: fix MAC address changes through ixgbevf_set_mac()
drivers: base: cacheinfo: move cache_setup_of_node()
ixgbe: force VF to grab new MAC on driver reload
ixgbe: release lock for the duration of ixgbe_suspend_close()
ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device
drm/tegra: Use drm_gem_fb_destroy
drm/tegra: Move fbdev unmap special case
drm/tegra: tegra_fb -> drm_framebuffer
drm/tegra: Move GEM BOs to drm_framebuffer
drm/tegra: Remove duplicate framebuffer num_planes
drm/tegra: Adding new typedef vm_fault_t
gpu: host1x: Acquire a reference to the IOVA cache
drm/tegra: Acquire a reference to the IOVA cache
drm/tegra: Fix order of teardown in IOMMU case
gpu: host1x: Fix dma_free_wc() argument in the error path
bcache: return 0 from bch_debug_init() if CONFIG_DEBUG_FS=n
bpf: change eBPF helper doc parsing script to allow for smaller indent
ixgbe: cleanup sparse warnings
IB/rxe: avoid calling WARN_ON_ONCE twice
drm/amdgpu: Set vega20 load_type to AMDGPU_FW_LOAD_DIRECT.
drm/amdgpu: Use vbios table for gpu info on vega20
drm/amdgpu/atomfirmware: add parser for gfx_info table
drm/amdgpu/atomfirmware: add new gfx_info data table v2.4 (v2)
drm/amd/display: Add harvest IP support for Vega20
drm/amd/display: Add BIOS smu_info v3_3 support for Vega20
drm/amd/display: Remove COMBO_DISPLAY_PLL0 from Vega20
drm/amd/display: Add Vega20 config. support
drm/amd: Add dce-12.1 gpio aux registers (v2)
drm/amdgpu: Add vega20 to dc support check (v2)
drm/amd/display/dm: Add vega20 support
drm/amdgpu: Add nbio support for vega20 (v2)
drm/amdgpu/soc15: Add ip blocks for vega20 (v2)
drm/amdgpu/soc15: dynamic initialize ip offset for vega20
drm/amdgpu/soc15: Set common clockgating for vega20.
drm/amdgpu/soc15:Add vega20 soc15_common_early_init support
drm/amdgpu/gfx9: Add clockgatting support for vega20
drm/amdgpu/gfx9: Add support for vega20
drm/amdgpu/gfx9: Add gfx config for vega20. (v4)
drm/amdgpu/gfx9: Add vega20 golden settings (v3)
drm/amdgpu/gfx9: Add support for vega20 firmware
drm/amdgpu/sdma4: Add clockgating support for vega20
drm/amdgpu/sdma4: Add vega20 golden settings (v3)
drm/amdgpu/sdma4: Specify vega20 firmware
drm/amdgpu/mmhub: Add clockgating support for vega20
drm/amdgpu/gmc9: Add vega20 support
drm/amdgpu/virtual_dce: Add vega20 support
drm/amdgpu: Specify vega20 vce firmware
drm/amdgpu: Specify vega20 uvd firmware
drm/amdgpu: Add vega20 ucode loading method
drm/amdgpu/psp: Add initial psp support for vega20
drm/amdgpu/powerplay: Add initial vega20 support v2
drm/amdgpu: Add smu firmware support for vega20
drm/amdgpu: set asic family for vega20.
drm/amdgpu: Add gpu_info firmware for vega20. (v2)
drm/amdgpu: Add vega20 to asic_type enum.
drm/amd/include/vg20: adjust VCE_BASE to reuse vce 4.0 header files
drm/amd: Add vega20_ip_offset.h headerfile for vega20. (v2)
KVM: SVM: Implement VIRT_SPEC_CTRL support for SSBD
x86/speculation, KVM: Implement support for VIRT_SPEC_CTRL/LS_CFG
x86/bugs: Rework spec_ctrl base and mask logic
x86/bugs: Remove x86_spec_ctrl_set()
x86/bugs: Expose x86_spec_ctrl_base directly
x86/bugs: Unify x86_spec_ctrl_{set_guest,restore_host}
x86/speculation: Rework speculative_store_bypass_update()
x86/speculation: Add virtualized speculative store bypass disable support
x86/bugs, KVM: Extend speculation control for VIRT_SPEC_CTRL
x86/speculation: Handle HT correctly on AMD
x86/cpufeatures: Add FEATURE_ZEN
x86/cpufeatures: Disentangle SSBD enumeration
x86/cpufeatures: Disentangle MSR_SPEC_CTRL enumeration from IBRS
x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP
KVM: SVM: Move spec control call after restore of GS
tools lib api fs tracing_path: Introduce get/put_events_file() helpers
i2c: pnx: move header into the driver
i2c: xiic: move header to platform_data
i2c: pca-platform: move header to platform_data
i2c: omap: move header to platform_data
i2c: ocores: move header to platform_data
i2c: mux: gpio: move header to platform_data
i2c: gpio: move header to platform_data
powerpc/powernv: Fix NVRAM sleep in invalid context when crashing
powerpc/powernv: Fix opal_event_shutdown() called with interrupts disabled
iomap: don't allow holes in swapfiles
powerpc/32: Use stmw/lmw for registers save/restore in asm
powerpc: Avoid an unnecessary test and branch in longjmp()
Revert "powerpc/64: Fix checksum folding in csum_add()"
powerpc: get rid of PMD_PAGE_SIZE() and _PMD_SIZE
MAINTAINERS: add entry for STM32 I2C driver
i2c: stm32f7: fix documentation typo
drm/amdgpu: Fix hardcoded base offset of vram pages
drm/amdgpu: Drop the unused header files in soc15.c.
drm/amd/powerplay: add a framework for perfroming pre display configuration change settings
drm/amd/powerplay: new framework to honour DAL clock limits
drm/amdgpu/gfx9: Update golden setting for gfx9_0.
i2c: i801: fix unused-function warning
i2c: xiic: fix spelling mistake: "unexpexted" -> "unexpected"
powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected
kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selectable if enabled
kbuild: LD_DEAD_CODE_DATA_ELIMINATION no -ffunction-sections/-fdata-sections for module build
kbuild: Fix asm-generic/vmlinux.lds.h for LD_DEAD_CODE_DATA_ELIMINATION
modpost: constify *modname function argument where possible
modpost: remove redundant is_vmlinux() test
modpost: use strstarts() helper more widely
modpost: pass struct elf_info pointer to get_modinfo()
checkpatch: remove VMLINUX_SYMBOL() check
vmlinux.lds.h: remove no-op macro VMLINUX_SYMBOL()
kbuild: remove CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
export.h: remove code for prefixing symbols with underscore
depmod.sh: remove symbol prefix support
kallsyms: remove symbol prefix support
genksyms: remove symbol prefix support
modpost: remove symbol prefix support
i2c: synquacer: fix fence-post error in retry loop
i2c: core: smbus: fix a potential missing-check bug
kbuild: deb-pkg improve maintainer address generation
Makefile: disable PIE before testing asm goto
kbuild: gcov: enable -fno-tree-loop-im if supported
btrfs: fix crash when trying to resume balance without the resume flag
btrfs: Fix delalloc inodes invalidation during transaction abort
arm64: dts: marvell: 7040-db: describe the 10G interface as fixed-link
arm64: dts: marvell: 8040-db: describe the 10G interfaces as fixed-link
arm64: dts: marvell: mcbin: enable the fourth network interface
arm64: dts: marvell: mcbin: add 10G SFP support
btrfs: Split btrfs_del_delalloc_inode into 2 functions
btrfs: fix reading stale metadata blocks after degraded raid1 mounts
btrfs: property: Set incompat flag if lzo/zstd compression is set
Btrfs: fix duplicate extents after fsync of file with prealloc extents
drm/tegra: dc: Rename supports_blending to has_legacy_blending
drm/tegra: plane: Implement zpos plane property for older Tegras
drm/tegra: dc: Enable plane scaling filters
drm/tegra: Refactor IOMMU attach/detach
drm/tegra: gr3d: Properly clean up resources
integrity: Add an integrity directory in securityfs
ima: Remove unused variable ima_initialized
netfilter: nft_hash: add map lookups for hashing operations
netfilter: nft_numgen: add map lookups for numgen random operations
netfilter: nf_tables: remove old nf_log based tracing
netfilter: fix fallout from xt/nf osf separation
ima: Unify logging
netfilter: ebtables: handle string from userspace with care
ima: Reflect correct permissions for policy
KVM: s390: vsie: simplify < 8k address checks
netfilter: nf_tables: fix NULL pointer dereference on nft_ct_helper_obj_dump()
dmaengine: qcom: bam_dma: fix some doc warnings.
dmaengine: qcom: bam_dma: fix invalid assignment warning
device property: Get rid of union aliasing
dmaengine: qcom: bam_dma: check if the runtime pm enabled
ACPI: APD: Add AMD misc clock handler support
clk: x86: Add ST oscout platform clock
PM / domains: Improve wording of dev_pm_domain_attach() comment
PM / AVS: rockchip-io: add io selectors and supplies for PX30
KVM: s390: vsie: fix < 8k check for the itdba
media: imx274: remove non-indexed pointers from mode_table
media: imx274: rename and reorder register address definitions
media: imx274: remove unused data from struct imx274_frmfmt
media: imx274: slightly simplify code
media: imx274: fix typo in comment
media: imx274: document reset delays more clearly
media: smiapp: fix timeout checking in smiapp_read_nvm
media: Add a driver for the ov7251 camera sensor
media: dt-bindings: media: Binding document for OV7251 camera sensor
media: ov5640: Program the visible resolution
media: ov5640: Add horizontal and vertical totals
media: ov5640: Change horizontal and vertical resolutions name
media: ov5640: Init properly the SCLK dividers
media: ov5640: Don't force the auto exposure state at start time
media: ov5640: Add light frequency control
media: ov2640: make s_ctrl() work in power-down mode
media: ov2640: make set_fmt() work in power-down mode
media: ov5645: Fix write_reg return code
media: ov5640: Use dev_fwnode() to obtain device's fwnode
media: drm: rcar-du: Add support for CRC computation
media: v4l: vsp1: Integrate DISCOM in display pipeline
media: v4l: vsp1: Add support for the DISCOM entity
media: v4l: vsp1: Extend the DU API to support CRC computation
media: v4l: vsp1: Document the vsp1_du_atomic_config structure
media: v4l: vsp1: Reset the crop and compose rectangles in the set_fmt helper
media: v4l: vsp1: Share the CLU, LIF and LUT set_fmt pad operation code
media: v4l: vsp1: Use SPDX license headers
media: v4l: cadence: Add Cadence MIPI-CSI2 TX driver
media: cadence: csi2rx: Fix csi2rx_start error handling
USB: serial: use tty_port_register_device()
tools/power/x86/intel_pstate_tracer: Add optional setting of trace buffer memory allocation
ALSA: emu10k1: fix spelling mistake: "Caputre" -> "Capture"
regulator: wm8994: Pass descriptor instead of GPIO number
regmap: Skip clk_put for attached clocks when freeing context
regulator: core: Change voltage setting path
regulator: core: Add voltage balancing mechanism
regulator: core: Resolve coupled regulators
regulator: core: Parse coupled regulators properties
regulator: bindings: Add properties for coupled regulators
regulator: core: Make locks re-entrant
KVM: s390: generalize kvm_s390_get_tod_clock_ext()
KVM: s390: no need to inititalize kvm->arch members to 0
KVM: s390: introduce defines for control registers
KVM: s390: reset crypto attributes for all vcpus
KVM: s390: Add storage key facility interpretation control
ASoC: qdsp6: q6core: Add q6core driver
ASoC: zte: remove duplicate includes
ASoC: davinci-mcasp: Only disable inactive serializer
ASoC: Intel: bytcr_rt5640: Set card long_name based on quirks
ASoC: Intel: bytcr_rt5640: Add quirks for various devices
ASoC: Intel: bytcr_rt5640: Use dmi_first_match() for DMI quirk handling
ASoC: Intel: bytcr_rt5640: Sort DMI quirk list alphabetically
ASoC: Intel: bytcr_rt5640: Add default jack-detect settings
ASoC: Intel: bytcr_rt5640: Unify BYTCR input defaults
ASoC: Intel: bytcr_rt5640: Change BYTCR default input to IN3
ASoC: Intel: bytcr_rt5640: Enable jack detection
ASoC: Intel: bytcr_rt5640: Fix Dell Venue 8 5830 Pro quirk
ASoC: Intel: bytcr_rt5640: Use device properties for setting up dmic
regulator: s2mps11: Pass descriptor instead of GPIO number
regulator: max77686: Pass descriptor instead of GPIO number
regulator: arizona-ldo1: Look up a descriptor and pass to the core
KVM: PPC: Book3S: Change return type to vm_fault_t
KVM: PPC: Book3S: Check KVM_CREATE_SPAPR_TCE_64 parameters
KVM: PPC: Book3S: Allow backing bigger guest IOMMU pages with smaller physical pages
KVM: PPC: Book3S: Use correct page shift in H_STUFF_TCE
xen/store: do not store local values in xen_start_info
KVM: PPC: Book3S HV: Fix inaccurate comment
KVM: PPC: Book3S HV: Set RWMR on POWER8 so PURR/SPURR count correctly
KVM: PPC: Book3S HV: Add 'online' register to ONE_REG interface
ALSA: core: Assure control device to be registered at last
ARM: dts: sun8i: r40: bananapi-m2-ultra: Enable GMAC ethernet controller
ARM: dts: sun8i: r40: Add device node and RGMII pinmux node for GMAC
ARM: dts: sun8i: r40: bananapi-m2-ultra: Sort device node dereferences
clk: sunxi-ng: r40: export a regmap to access the GMAC register
clk: sunxi-ng: r40: rewrite init code to a platform driver
KVM: PPC: Book 3S HV: Do ptesync in radix guest exit path
KVM: PPC: Book3S HV: XIVE: Resend re-routed interrupts on CPU priority change
KVM: PPC: Book3S HV: Make radix clear pte when unmapping
KVM: PPC: Book3S HV: Make radix use correct tlbie sequence in kvmppc_radix_tlbie_page
KVM: PPC: Book3S HV: Snapshot timebase offset on guest entry
regulator: max8998: Fix platform data retrieval.
regulator: of: add support for allowed modes configuration
regulator: of: add property for allowed modes specification
regulator: core: Allow for regulators that can't be read at bootup
drm: rcar-du: Fix build failure
drm: rcar-du: Fix rcar_du_of_init() stub
drm/amdgpu: include pagemap.h for release_pages()
spi: ti-qspi: Make sure res_mmap != NULL before dereferencing it
ASoC: rt5663: rt5663_set_jack_detect() can be static
ASoC: rt5663: Use the set_jack() instead of the export function
ASoC: omap: sdma-pcm: Correction for the include files
ASoC: omap: sdma-pcm: Fix modpost warning
dmaengine: sprd: fix an NULL vs IS_ERR() bug
spi: spi-s3c64xx: Fix system resume support
MAINTAINERS: update sound/soc/intel maintainers
powerpc/kvm: Prefer fault_in_pages_readable function
RDMA/hns: Add 64KB page size support for hip08
IB/ipoib: replace local_irq_disable() with proper locking
IB/mlx5: Expose MPLS related tunneling offloads
IB/mlx5: Add support for MPLS flow specification
IB/mlx5: Add support for GRE flow specification
IB/uverbs: Introduce a MPLS steering match filter
IB/uverbs: Expose MPLS flow spec to the user-kernel ABI header
IB/uverbs: Introduce a GRE steering match filter
IB/uverbs: Expose GRE flow spec to the user-kernel ABI header
powerpc/mm/radix: implement LPID based TLB flushes to be used by KVM
IB/mlx5: Use 'kvfree()' for memory allocated by 'kvzalloc()'
net/mlx5: Eswitch, Use 'kvfree()' for memory allocated by 'kvzalloc()'
net/mlx5: Vport, Use 'kvfree()' for memory allocated by 'kvzalloc()'
signal/mips: Report FPE_FLTUNK for undiagnosed floating point exceptions
bpf: sockmap, on update propagate errors back to userspace
bpf: fix sock hashmap kmalloc warning
libbpf: add ifindex to enable offload support
bpf: add __printf verification to bpf_verifier_vlog
PCI/DPC: Clear interrupt status in interrupt handler top half
afs: Fix mounting of backup volumes
afs: Fix directory permissions check
clocksource: Move inline keyword to the beginning of function declarations
IB/cm: Store and restore ah_attr during CM message processing
IB/cm: Store and restore ah_attr during LAP msg processing
IB/cm: Avoid AV ah_attr overwriting during LAP message handling
samples/bpf: Decrement ttl in fib forwarding example
bpf: bpftool, support for sockhash
bpf: selftest additions for SOCKHASH
tools lib api: Unexport 'tracing_path' variable
tools lib api: The tracing_mnt variable doesn't need to be global
i40iw: Extend port reuse support for listeners
Documentation: arm: clean up Marvell Berlin family info
perf config: Call perf_config__init() lazily
rtc: nvmem: don't return an error when not enabled
Documentation: gpio: driver: Fix a typo and some odd grammar
cxgb4: update LE-TCAM collection for T6
nbd: call nbd_bdev_reset instead of bd_set_size on disconnect
nbd: fix how we set bd_invalidated
nbd: clear_sock on netlink disconnect
nbd: use bd_set_size when updating disk size
nbd: update size when connected
nbd: fix nbd device deletion
tuntap: fix use after free during release
qed: Fix LL2 race during connection terminate
qed: Fix possibility of list corruption during rmmod flows
qed: LL2 flush isles when connection is closed
qed: Fix LL2 race during connection terminate
qed: Fix possibility of list corruption during rmmod flows
qed: LL2 flush isles when connection is closed
net: ethoc: Remove useless test before clk_disable_unprepare
net: stmmac: Remove useless test before clk_disable_unprepare
net/sched: fix refcnt leak in the error path of tcf_vlan_init()
block: fix MAINTAINERS email for nbd
net: 8390: ne: Fix accidentally removed RBTX4927 support
net: qcom/emac: Encapsulate sgmii ops under one structure
net: qualcomm: rmnet: Remove redundant command check
net: qualcomm: rmnet: Add support for ethtool private stats
net: qualcomm: rmnet: Capture all drops in transmit path
drivers: net: Remove device_node checks with of_mdiobus_register()
of: mdio: Fall back to mdiobus_register() with NULL device_node
iomap: provide more useful errors for invalid swap files
net: ethernet: ti: cpsw-phy-sel: check bus_find_device() ret value
net: dsa: bcm_sf2: Fix IPv6 rule half deletion
net: dsa: bcm_sf2: Fix IPv6 rules and chain ID
net: dsa: bcm_sf2: Fix RX_CLS_LOC_ANY overwrite for last rule
arm64: defconfig: enable the Armada thermal driver
ALSA: usb-audio: Apply rate limit to warning messages in URB complete callback
Revert "bonding: allow carrier and link status to determine link state"
tc-testing: updated mirred and vlan with more tests
tc-testing: fixed copy-pasting error in police tests
usbip: usbip_host: fix bad unlock balance during stub_probe()
sched: manipulate __QDISC_STATE_RUNNING in qdisc_run_* helpers
net: phy: micrel: add 125MHz reference clock workaround
tcp: purge write queue in tcp_connect_init()
net/mlx5: Fix build break when CONFIG_SMP=n
bonding: allow carrier and link status to determine link state
bonding: allow use of tx hashing in balance-alb
bonding: use common mac addr checks
bonding: don't queue up extraneous rlb updates
ipvlan: call netdevice notifier when master mac address changed
drm/dumb-buffers: Integer overflow in drm_mode_create_ioctl()
xfs: implement online get/set fs label
fs: copy BTRFS_IOC_[SG]ET_FSLABEL to vfs
net/smc: check for pending termination
net/smc: drop messages when link state is inactive
net/smc: set link inactive before calling smc_lgr_free()
net/smc: handle all error codes from smc_conn_create()
net/smc: use a workqueue to defer llc send
net/smc: move link llc initialization to llc layer
net/smc: simplify test_link function usage
net/smc: remove unnecessary cast
net/smc: register new rmbs with the peer
net/smc: no tx work trigger for fallback sockets
net: hns3: Fixes the missing PCI iounmap for various legs
net: hns3: Add support of .sriov_configure in HNS3 driver
net: hns3: Fix for fiber link up problem
net: hns3: Fixes the back pressure setting when sriov is enabled
net: hns3: Change return value in hnae3_register_client
net: hns3: Change return type of hnae3_register_ae_algo
net: hns3: Change return type of hnae3_register_ae_dev
net: hns3: Add a check for client instance init state
net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
media: dt-bindings: media: Add Cadence MIPI-CSI2 TX Device Tree bindings
media: v4l: cadence: Add Cadence MIPI-CSI2 RX driver
media: dt-bindings: media: Add Cadence MIPI-CSI2 RX Device Tree bindings
media: staging: atomisp: Remove driver
media: atomisp-mt9m114: comment out unused stuff
media: atomisp-mt9m114: remove dead data
media: atomisp-gc0310: return errors at gc0310_init()
media: atomisp: ov2680: don't declare unused vars
media: staging: atomisp: Comment out several unused sensor resolutions
media: staging: atomisp-gc2235: don't fill an unused var
media: atomisp: ov2680.h: fix identation
media: staging: atomisp: reenable warnings for I2C
media: staging: atomisp: get rid of __KERNEL macros
media: atomisp: fix misleading addr information
media: staging: atomisp: Using module_pci_driver
media: atomisp: fix spelling mistake: "diregard" -> "disregard"
pinctrl: nand: meson-gxl: fix missing data pins
pinctrl: nand: meson-gxbb: fix missing data pins
blk-mq: remove redundant insert case in blk_mq_make_request()
media: dvb_ca_en50221: prevent using slot_info for Spectre attacs
pinctrl: qcom: Print high/low status of gpios in debugfs
perf bpf: Fix NULL return handling in bpf__prepare_load()
perf parse-events: Handle uncore event aliases in small groups properly
vsprintf: Replace memory barrier with static_key for random_ptr_key update
pinctrl: mvebu: use correct MPP sel value for dev pins
pinctrl: qcom: fix wrong pull status display for no_keeper SoC
eeprom: at24: provide a separate routine for creating dummy i2c clients
eeprom: at24: provide and use a helper for releasing dummy i2c clients
eeprom: at24: use devm_nvmem_register()
eeprom: at24: fix retrieving the at24_chip_data structure
gpio: Convert to use match_string() helper
pca953x: add example how to use interrupt-controller and gpio-controller
DTS: Bindings: pca953x add an optional vcc-supply property
gpio: pca953x: add more register definitions for pcal6524
gpio: pca953x: add more register definitions for pcal953x
gpio: pca953x: convert register constants to hex
gpio: ge: Fix build warning
gpiolib: fix gpiochip_machine_hog()
gpio: xlp: Use of_device_get_match_data()
gpio: vf610: Use of_device_get_match_data()
gpio: ts4900: Use of_device_get_match_data()
gpio: syscon: Use of_device_get_match_data()
gpio: pxa: Use of_device_get_match_data()
gpio: pca953x: Use of_device_get_match_data()
gpio: palmas: Use of_device_get_match_data()
gpio: mxs: Use of_device_get_match_data()
gpio: ingenic: Use of_device_get_match_data()
gpio: ge: Use of_device_get_match_data()
gpio: dwapb: Use of_device_get_match_data()
gpio: 74xx-mmio: Use of_device_get_match_data()
gpio: mockup: use the SPDX identifier and remove license boilerplate
gpio: dwapb: Add support for 1 interrupt per port A GPIO
gpio: make several const arrays static, shrinks object size
dt-bindings: gpio: Add support for r8a77965
gpio: mxc: Remove reliance on <linux/gpio.h>
gpio: mvebu: Use the proper APIs
gpio: msic: Include the right header
gpio: mm-lantiq: Include the right header
gpio: ml_ioh: Include the right header
gpio: mc9s08dz60: Include the right header
gpio: mc33880: Include the right header
gpio: max730x: Include the right header
gpio: lynxpoint: Include the right header
gpio: lpc32xx: Include the right header
gpio: lp873x: Include the right header
gpio: lp3943: Include the right header
gpio: loongson: Use BIT() macros
gpio: loongson: Create a dynamic platform device
gpio: loongson: Use right include
gpiolib: add hogs support for machine code
gpio: 104-dio-48e: make array 'ports' static, shrinks object size
dt-bindings: gpio: rcar: Add r8a77470 (RZ/G1C) support
gpio: pmic_eic: Add edge trigger emulation for PMIC EIC
gpio: eic: Add edge trigger emulation for EIC
gpio: Add a reference to CEC on GPIO
pinctrl: tegra20: Provide CDEV1/2 clock muxes
pinctrl: sunxi: add support for H6 R_PIO pin controller
pinctrl: armada-37xx: Convert to use match_string() helper
pinctrl: bcm2835: Add support for output-low output-high properties
printk: fix possible reuse of va_list variable
pinctrl: bcm2835: Add support for generic pinctrl binding
pinctrl: sh-pfc: Add r8a77470 PFC support
pinctrl: sh-pfc: r8a77965: Add SDHI pins, groups and functions
pinctrl: sh-pfc: r8a77965: Add DU RGB output pins, groups and functions
pinctrl: sh-pfc: r8a77965: Fixup incorrect SPDX identifier
pinctrl: sh-pfc: r8a77970: Fix pin I/O voltage control support
pinctrl: sh-pfc: r8a77980: Add pin I/O voltage control support
dt-bindings: pinctrl: sh-pfc: Document r8a77470 PFC support
pinctrl: sh-pfc: r8a77965: Add PWM pins, groups and functions
pinctrl: sh-pfc: r8a7796: Fix comment for MSIOF3 SS2_E pin
pinctrl: sh-pfc: r8a7795: Fix comment for MSIOF3 SS2_E pin
pinctrl: sh-pfc: r8a77965: Add MSIOF pins, groups and functions
arm64: cmpwait: Clear event register before arming exclusive monitor
ARM: dts: da850-evm: add WP and CD to MMC
MAINTAINERS: Add ALSA: xen-front: maintainer entry
ALSA: xen-front: Implement ALSA virtual sound driver
ALSA: xen-front: Implement handling of shared buffers
ALSA: xen-front: Implement Xen event channel handling
ALSA: xen-front: Read sound driver configuration from Xen store
ALSA: xen-front: Introduce Xen para-virtualized sound frontend driver
arm64: Select ARCH_HAS_FAST_MULTIPLIER
x86/boot/compressed/64: Fix moving page table out of trampoline memory
x86/boot/compressed/64: Set up GOT for paging_prepare() and cleanup_trampoline()
dt-bindings: mfd: stm32-timers: Add support for dmas
PCI: qcom: Fix a bitwise vs logical NOT typo
PM / OPP: silence an uninitialized variable warning
locking/percpu-rwsem: Annotate rwsem ownership transfer by setting RWSEM_OWNER_UNKNOWN
locking/rwsem: Add a new RWSEM_ANONYMOUSLY_OWNED flag
HID: core: fix hid_hw_open() comment
ARM: multi_v7_defconfig: Enable RENESAS_WDT
ARM: shmobile: defconfig: Enable RENESAS_WDT_GEN
arm64: defconfig: enable R8A77990 SoC
HID: hid-plantronics: Re-resend Update to map button for PTT products
HID: multitouch: fix types returned from mt_need_to_apply_feature()
soc: renesas: r8a77990-sysc: Add workaround for 3DG-{A,B}
soc: renesas: rcar-sysc: Add support for R-Car E3 power areas
ARM: dts: r8a7740: Add CEU1
ARM: dts: r8a7740: Add CEU0
arm64: dts: renesas: salvator-common: enable VIN
arm64: dts: renesas: r8a77970: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a77965: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a7796: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a7795-es1: add CSI-2 node
arm64: dts: renesas: r8a7795: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a77965: add I2C support
arm64: dts: renesas: r8a77990: ebisu: Enable EthernetAVB
arm64: dts: renesas: r8a77990: Add EthernetAVB device nodes
arm64: dts: renesas: r8a77990: Add GPIO device nodes
arm64: dts: renesas: r8a77990: Add PFC device node
arm64: dts: renesas: initial V3HSK board device tree
arm64: dts: renesas: r8a77980: disable EtherAVB
arm64: dts: renesas: r8a77970: disable EtherAVB
arm64: dts: renesas: r8a77995: Add VIN4
arm64: dts: renesas: r8a77980: add resets property to CAN-FD node
arm64: dts: renesas: r8a77970: Add Cortex-A53 PMU node
arm64: dts: renesas: r8a77970: Add secondary CA53 CPU core
arm64: dts: renesas: r8a77965: Add SDHI device nodes
arm64: dts: renesas: ulcb: Add PMIC DDR Backup Power config
arm64: dts: renesas: salvator-common: Add PMIC DDR Backup Power config
arm64: dts: renesas: ulcb: Add BD9571 PMIC
arm64: dts: renesas: r8a77965: Correct whitespace
arm64: dts: renesas: r8a7796: Correct whitespace
arm64: dts: renesas: r8a7795: Correct whitespace
arm64: dts: renesas: r8a7795: salvator-xs: enable USB2.0 host channel 3
arm64: dts: renesas: r8a7795: salvator-xs: enable hsusb channel 3 node
arm64: dts: renesas: r8a7795: salvator-xs: enable usb2_phy3 node
arm64: dts: renesas: salvator-common: add eeprom
arm64: dts: renesas: condor: add CAN-FD support
arm64: dts: renesas: r8a77980: add CAN-FD support
arm64: dts: renesas: eagle: add CAN-FD support
arm64: dts: renesas: r8a77970: add CAN-FD support
arm64: dts: renesas: r8a77965: Add R-Car Gen3 thermal support
arm64: dts: renesas: r8a77965: use r8a77965-sysc binding definitions
arm64: dts: renesas: r8a77980: use SYSC power domain macros
arm64: dts: renesas: r8a77980: use CPG core clock macros
arm64: dts: renesas: r8a77965: Add address properties to rcar_sound port nodes
arm64: dts: renesas: r8a7796: Add address properties to rcar_sound port nodes
arm64: dts: renesas: r8a7795: Add address properties to rcar_sound port nodes
arm64: dts: renesas: v3msk: add DU/LVDS/HDMI support
arm64: dts: renesas: condor: add eMMC support
arm64: dts: renesas: r8a77965-salvator-xs: Enable DU external clocks and HDMI
arm64: dts: renesas: r8a77965-salvator-x: Enable DU external clocks and HDMI
arm64: dts: renesas: r8a77965: Add HDMI encoder instance
arm64: dts: renesas: r8a77965: Populate the DU instance placeholder
arm64: dts: renesas: r8a77965: Add VSP instances
arm64: dts: renesas: r8a77965: Add FCPF and FCPV instances
arm64: dts: renesas: r8a77990: Revise the cache controller node
arm64: dts: renesas: r8a77990: Revise the psci node
arm64: dts: renesas: r8a7795-es1: Enable IPMMU devices
arm64: dts: renesas: r8a7796-salvator-x: enable HDMI sound
arm64: dts: renesas: r8a7795-salvator-x: enable HDMI sound
arm64: dts: renesas: r8a7796-salvator-xs: enable HDMI sound
arm64: dts: renesas: r8a7795-salvator-xs: enable HDMI sound
arm64: dts: renesas: r8a7795-es1-salvator-x: enable HDMI sound
arm64: dts: renesas: salvator-common: use audio-graph-card for Sound
arm64: dts: renesas: r8a7796: add HDMI sound support
arm64: dts: renesas: r8a7795: add HDMI sound support
arm64: dts: renesas: r8a77980: add MMC support
arm64: dts: renesas: condor: add EtherAVB pins
arm64: dts: renesas: condor: add SCIF0 pins
arm64: dts: renesas: r8a77980: add PFC support
arm64: dts: renesas: v3msk: add EtherAVB pins
arm64: dts: renesas: eagle: add EtherAVB pins
arm64: dts: renesas: ulcb: Rename EtherAVB "mdc" pin group to "mdio"
arm64: dts: renesas: salvator-common: Rename EtherAVB "mdc" pin group to "mdio"
arm64: dts: renesas: draak: Rename EtherAVB "mdc" pin group to "mdio"
arm64: dts: renesas: r8a77995: Enable IPMMU devices
arm64: dts: renesas: r8a77970: Enable IPMMU devices
arm64: dts: renesas: r8a7796: Enable IPMMU devices
arm64: dts: renesas: r8a7795: Enable IPMMU devices
arm64: dts: renesas: Add Renesas Ebisu board support
arm64: dts: renesas: Add Renesas R8A77990 SoC support
arm64: dts: renesas: r8a77970: sort subnodes of the soc node
arm64: dts: renesas: r8a77965: sort subnodes of the soc node
arm64: dts: renesas: r8a77965: sort subnodes of the root node
arm64: dts: renesas: r8a77995: sort subnodes of the soc node
arm64: dts: renesas: r8a77995: sort subnodes of the root node
arm64: dts: renesas: eagle: Enable HDMI output
arm64: dts: renesas: r8a77970: add LVDS support
arm64: dts: renesas: r8a77970: add DU support
arm64: dts: renesas: r8a77970: add VSPD support
arm64: dts: renesas: r8a7796: decrease temperature hysteresis
arm64: dts: renesas: r8a7795: decrease temperature hysteresis
arm64: dts: renesas: Add Renesas R8A77990 Kconfig support
mfd: tps65911-comparator: Fix an off by one bug
mfd: rave-sp: Remove VLA
mfd: tps65911-comparator: Fix a build error
mfd: twl-core: Fix clock initialization
dt-bindings: mfd: motorola-cpcap: Document audio-codec
mfd: axp20x: Correct AXP806 POK interrupt prefix
mfd: axp20x: Use DEFINE_RES_IRQ to declare resources for mfd_cells
mfd: axp20x: Constify struct mfd_cell and struct resource
mfd: da9062: Use core helper regmap_reg_range macros
mfd: arizona: Update reset pin to use GPIOD
mfd: sprd: Add one syscon cell to access PMIC global registers
mfd: pcf50633: Fix some memory leaks in the error handling path of 'pcf50633_probe()'
mfd: viperboard: Delete an error message for a failed memory allocation in vprbrd_probe()
mfd: twl6030-irq: Delete an error message for a failed memory allocation in twl6030_init_irq()
mfd: tps80031: Delete an error message for a failed memory allocation in tps80031_probe()
mfd: tps65910: Move an assignment in tps65910_sleepinit()
mfd: tps65910: Delete an unnecessary variable initialisation in tps65910_sleepinit()
mfd: tps65910: Delete an unnecessary variable initialisation in four functions
mfd: tps65910: Delete an error message for a failed memory allocation in tps65910_parse_dt()
mfd: tps6586x: Delete an error message for a failed memory allocation in tps6586x_parse_dt()
mfd: tps65090: Delete an error message for a failed memory allocation in tps65090_i2c_probe()
mfd: ti_am335x_tscadc: Delete an error message for a failed memory allocation in ti_tscadc_probe()
mfd: smsc-ece1099: Improve a size determination in smsc_i2c_probe()
mfd: sm501: Adjust 12 checks for null pointers
mfd: sm501: Improve a size determination in two functions
mfd: si476x-i2c: Delete an error message for a failed memory allocation in si476x_core_probe()
mfd: abx500-core: Adjust 14 checks for null pointers
mfd: abx500-core: Improve two size determinations in abx500_register_ops()
mfd: abx500-core: Delete an error message for a failed memory allocation in abx500_register_ops()
mfd: rave-sp: Check received frame length before accepting next byte
mfd: rave-sp: Convert print_hex_dump() to print_hex_dump_debug()
mfd: rave-sp: Add code to print firmware versions
mfd: ab8500-debugfs: Use kasprintf
mfd: syscon: Set name of regmap_config
mfd: axp20x: Add battery power supply cell for AXP813
mfd: axp20x: Probe axp20x_adc driver for AXP813
mfd: axp20x: Make AXP209/22x cells probe their ADC via DT
Revert "mfd: cros_ec: Add ACPI GPE handler for LID0 devices"
mfd: Update to SPDX license identifier
mfd: tps65218: Reorder tps65218_regulator_id enum
mfd: syscon: Set regmap name to DT node name
mfd: omap-usb-tll: Allocate driver data at once
mfd: smsc-ece1099: Delete an error message for a failed memory allocation
mfd: sm501: Delete error message for a failed memory allocation in two places
mfd: rc5t583: Improve a size determination
mfd: rc5t583: Delete error message for a failed memory allocation
mfd: max8997: Delete error message for a failed memory allocation
mfd: jz4740-adc: Delete error message for a failed memory allocation
mfd: janz-cmodio: Delete error message for a failed memory allocation
mfd: htc-i2cpld: Delete error message for a failed memory allocation
mfd: syscon: Remove unused Exynos PMU headers
drm/i915/gen9: Add WaClearHIZ_WM_CHICKEN3 for bxt and glk
pwm: stm32: Use input prescaler to improve period capture
pwm: stm32: Improve capture by tuning counter prescaler
pwm: stm32: Add capture support
mfd: stm32-timers: Add support for DMAs
x86/mtrr: Convert to use strncpy_from_user() helper
x86/mtrr: Convert to use match_string() helper
clk: at91: PLL recalc_rate() now using cached MUL and DIV values
memremap: split devm_memremap_pages() and memremap() infrastructure
drm/vmwgfx: Set dmabuf_size when vmw_dmabuf_init is successful
USB: dwc3: get extcon device by OF graph bindings
usb: dwc3: support clocks and resets for DWC3 core
proc: update SIZEOF_PDE_INLINE_NAME for the new pde fields
tty: replace ->proc_fops with ->proc_show
ide: replace ->proc_fops with ->proc_show
ide: remove ide_driver_proc_write
isdn: replace ->proc_fops with ->proc_show
atm: switch to proc_create_seq_private
atm: simplify procfs code
bluetooth: switch to proc_create_seq_data
netfilter/x_tables: switch to proc_create_seq_private
netfilter/xt_hashlimit: switch to proc_create_{seq,single}_data
neigh: switch to proc_create_seq_data
hostap: switch to proc_create_{seq,single}_data
bonding: switch to proc_create_seq_data
rtc/proc: switch to proc_create_single_data
drbd: switch to proc_create_single
resource: switch to proc_create_seq_data
staging/rtl8192u: simplify procfs code
jfs: simplify procfs code
ext4: simplify procfs code
afs: simplify procfs code
sg: simplify procfs code
megaraid: simplify procfs code
sgi-gru: simplify procfs code
acpi/battery: simplify procfs code
proc: introduce proc_create_net_single
proc: introduce proc_create_net{,_data}
net: move seq_file_single_net to <linux/seq_file_net.h>
netfilter/x_tables: simplify ѕeq_file code
net/kcm: simplify proc registration
ipv6/flowlabel: simplify pid namespace lookup
ipv{4,6}/raw: simplify ѕeq_file code
ipv{4,6}/ping: simplify proc file creation
ipv{4,6}/tcp: simplify procfs registration
ipv{4,6}/udp{,lite}: simplify proc registration
proc: introduce proc_create_single{,_data}
proc: introduce proc_create_seq_private
proc: introduce proc_create_seq{,_data}
proc: add a proc_create_reg helper
proc: simplify proc_register calling conventions
proc: don't detour through seq->private to get the inode
proc: introduce a proc_pid_ns helper
xfs: factor the ag length extension code into libxfs
xfs: move growfs core to libxfs
xfs: rework secondary superblock updates in growfs
xfs: separate secondary sb update in growfs
xfs: make imaxpct changes in growfs separate
xfs: turn ag header initialisation into a table driven operation
xfs: factor ag btree root block initialisation
xfs: convert growfs AG header init to use buffer lists
xfs: factor out AG header initialisation from growfs core
xfs: one-shot cached buffers
xfs: implement the metadata repair ioctl flag
xfs: create tracepoints for online repair
xfs: teach xfs_bmapi_remap to accept some bmapi flags
xfs: make xfs_bmapi_remapi work with attribute forks
xfs: hoist xfs_scrub_agfl_walk to libxfs as xfs_agfl_walk
xfs: avoid ABBA deadlock when scrubbing parent pointers
xfs: scrub the data fork of the realtime inodes
xfs: quota scrub should use bmapbtd scrubber
xfs: don't continue scrub if already corrupt
xfs: refactor quota limits initialization
xfs: superblock scrub should use short-lived buffers
xfs: skip scrub xref if corruption already noted
xfs: clear sb->s_fs_info on mount failure
xfs: add mount delay debug option
xfs: factor out nodiscard helpers
iomap: add a swapfile activation function
xfs: halt auto-reclamation activities while rebuilding rmap
xfs: add BMAPI_NORMAP flag to perform block remapping without updating rmapbt
xfs: add repair helpers for the reference count btree
xfs: add repair helpers for the reverse mapping btree
xfs: expose various functions to repair code
xfs: add helpers to calculate btree size
xfs: refactor scrub transaction allocation function
xfs: btree scrub should check minrecs
xfs: clean up scrub usage of KM_NOFS
xfs: avoid ilock games in the quota scrubber
xfs: refactor dquot iteration
IB/umem: Use the correct mm during ib_umem_release
clk: stm32: fix: stm32 clock drivers are not compiled by default
clk: imx6ull: use OSC clock during AXI rate change
clk: davinci: psc-da830: fix USB0 48MHz PHY clock registration
clk: imx: Add new clo01 and clo2 controlled by CCOSR
IB/core: Remove redundant return
clk: mediatek: add g3dsys support for MT2701 and MT7623
dt-bindings: reset: mediatek: add entry for Mali-450 node to refer
dt-bindings: clock: mediatek: add entry for Mali-450 node to refer
dt-bindings: clock: mediatek: add g3dsys bindings
iw_cxgb4: remove wr_id attributes
clk: mediatek: correct the clocks for MT2701 HDMI PHY module
RDMA/NLDEV: remove mr iova attribute
clk: bulk: silently error out on EPROBE_DEFER
iw_cxgb4: fix uninitialized variable warnings
clk: hisilicon: add missing usb3 clocks for Hi3798CV200 SoC
clk:aspeed: Fix reset bits for PCI/VGA and PECI
clk: aspeed: Support second reset register
clk: socfpga: stratix10: suppress unbinding platform's clock driver
clk: socfpga: stratix10: use platform driver APIs
clk: uniphier: add LD11/LD20 stream demux system clock
clk: samsung: simplify getting .drvdata
mtd: rawnand: Do not check FAIL bit when executing a SET_FEATURES op
tick/broadcast: Use for_each_cpu() specially on UP kernels
MAINTAINERS: Add entry for Microsemi Ethernet switches
net: mscc: Add initial Ocelot switch support
dt-bindings: net: add DT bindings for Microsemi Ocelot Switch
net: phy: mscc-miim: Add MDIO driver
dt-bindings: net: add DT bindings for Microsemi MIIM
clk: stm32mp1: Fix a memory leak in 'clk_stm32_register_gate_ops()'
Remove jsflash driver
RDMA/uapi: Fix uapi breakage
Input: usbtouchscreen - add sysfs attribute for 3M MTouch firmware rev
Input: ati_remote2 - fix typo 'can by' to 'can be'
Input: replace hard coded string with __func__ in pr_err()
lib/string_helpers: Add missed declaration of struct task_struct
drm/scheduler: remove unused parameter
Add SPDX idenitifier and clarify license
drm/amdgpu: print the BO flags in the gem debugfs entry
drm/amdgpu: drop printing the BO offset in the gem debugfs (v2)
drm/amdgpu: Add support to change mtype for 2nd part of gart BOs on GFX9
drm/amd/powerplay: Add notify PWE function to SMU10
drm/amd/display: remove need of modeset flag for overlay planes (V2)
drm/amdgpu: fix null pointer for bo unmap trace function
drm/amdgpu/gmc9: remove unused register defs
drm/amdgpu: add HDP flush dummy for UVD 6/7
drm/amdgpu: set ttm bo priority before initialization
drm/ttm: remove priority hard code when initializing ttm bo
drm/amd/pp: Fix performance drop on Fiji
drm/amd/pp: Implement force_clock_level for RV
drm/amd/powerplay: add PME smu message for raven
drm/amd/display: clean up assignment of amdgpu_crtc
drm/amd/powerplay: fix spelling mistake: "contruct" -> "construct"
drm/amd/pp: Refine the output of pp_power_profile_mode on VI
drm/amdgpu: invalidate parent bo when shadow bo was invalidated
drm/amdgpu: abstract bo_base init function
drm/amd/amdgpu: Add some documentation to the debugfs entries
drm/amd/amdgpu: vcn10 Add callback for emit_reg_write_reg_wait
drm/amdgpu: Fix display corruption on CI with dpm enabled
drm/amd/pp: Skip fan attributes if fan not present
drm/amdgpu: Switch to interruptable wait to recover from ring hang.
drm/ttm: Use GFP_TRANSHUGE_LIGHT for allocating huge pages
drm/amd/display: disable FBC on underlay pipe
drm/amd/display: Use kvzalloc for potentially large allocations
drm/amdgpu/uvd7: add emit_reg_write_reg_wait ring callback
drm/amd/display: Don't return ddc result and read_bytes in same return value
drm/amd/display: Add get_firmware_info_v3_2 for VG12
drm/amd: Add BIOS smu_info v3_3 required struct def.
drm/amd/display: Add VG12 ASIC IDs
drm/amd/display: Couple formatting fixes
drm/amd/display: Use int for calculating vline start
drm/amd/display: dal 3.1.44
drm/amd/display: to synchronize the hubp and dpp programming in cursor control
drm/amd/display: Check dc_sink every time in MST hotplug
drm/amd/display: reprogram infoframe during apply_ctx_to_hw
drm/amd/display: Update MST edid property every time
drm/amd/display: Add assert that chroma pitch is non zero
drm/amd/display: compact the rq/dlg/ttu log
drm/amd/display: update dtn logging and goldens
drm/amd/display: add some DTN logs for input and output tf
drm/amd/display: add cursor TTU CRQ related
drm/amd/display: Add user_regamma to color module
drm/amd/display: dal 3.1.43
drm/amd/display: DP link validation bug for YUV422
drm/amd/display: Refactor otg_blank sequence
drm/amd/display: Make program_output_csc HWSS interface function
drm/amd/display: fix issue related to infopacket was not transmitted
drm/amd/display: Disallow enabling CRTC without primary plane with FB
drm/amd/display: Unify dm resume sequence into a single call
drm/amd/display: Fix deadlock when flushing irq
drm/amdgpu/sriov: Need to set in_gpu_reset flag to back after gpu reset
drm/amdgpu: For sriov reset, move IB test into exclusive mode
drm/scheduler: don't update last scheduled fence in TDR
drm/powerplay: Add powertune table for VEGAM
drm/amd/powerplay: add specific changes for VEGAM in smu7_hwmgr.c
drm/amd/powerplay: add smumgr support for VEGAM (v2)
drm/amd/powerplay: update process pptables
drm/amd/powerplay: update ppatomctrl.c (v2)
drm/amd: add a new struct in atombios.h
drm/amd/powerplay: add smu75 header files
drm/amd/display: Use HBR2 if eDP monitor it doesn't advertise link rate
drm/amdgpu: Add VEGAM support to the legacy DCE 11 module
drm/amd/display: Implement VEGAM device IDs in DM
drm/amd/display: Implement VEGAM device IDs in DC
drm/amdgpu: add VEGAM pci ids
drm/amdgpu: add VEGAM support to vi
drm/amdgpu: add VEGAM to VCE harvest config
drm/amdgpu: add VEGAM VCE firmware support
drm/amdgpu: add VEGAM UVD encode support
drm/amdgpu: add VEGAM UVD firmware support
drm/amdgpu: initialize VEGAM GFX
drm/amdgpu: add VEGAM GFX golden settings
drm/amdgpu: add VEGAM GFX firmware support
drm/amdgpu: add VEGAM SDMA golden settings
drm/amdgpu: add VEGAM SDMA firmware support
drm/amdgpu: initialize VEGAM GMC (v2)
drm/amdgpu: add VEGAM GMC golden settings
drm/amdgpu: skip VEGAM MC firmware load
drm/amdgpu: add VEGAM dc support check
drm/amdgpu/virtual_dce: add VEGAM support
drm/amdgpu: add VEGAM SMU firmware support
drm/amdgpu: specify VEGAM ucode SMU load method
drm/amdgpu: set VEGAM to ASIC family and ip blocks
drm/amdgpu: bypass GPU info firmware load for VEGAM
drm/amdgpu: add VEGAM ASIC type
drm/radeon: Change the default to PCI on PowerPC
drm/amd/pp: Add OVERDRIVE support on Vega10 (v2)
drm/admgpu: fix mode_valid's return type
drm/radeon: fix mode_valid's return type
drm/radeon: fix radeon_atpx_get_client_id()'s return type
drm/amdgpu: fix amdgpu_atpx_get_client_id()'s return type
drm/amdgpu: change pp_dpm clk/mclk/pcie input format.
drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders
drm/amdgpu: bo could be null when access in vm bo update
drm/amdgpu: Enable scatter gather display support
drm/amdgpu/powerplay: actually return the power with the new query
drm/amd/pp: Print out voltage/clock range in sysfs
drm/amd/pp: Change voltage/clk range for OD feature on VI
drm/amd/pp: Refine the OD state checking code in smu7
drm/amd/pp: Use dynamic gfx_clk rather than hardcoded values
drm/amd/pp: Change pstate_clk frequency unit to 10KHz on Rv
drm/amdgpu/pm: document pp_od_clk_voltage
drm/amdgpu/pm: document pp_power_profile_mode
drm/amdgpu/pm: document pp_dpm_sclk pp_dpm_mclk pp_dpm_pcie (v2)
drm/amdgpu/pm: document pp_table
drm/amdgpu/pm: document power_dpm_state
drm/amdgpu/pm: document power_dpm_force_performance_level
drm/amdgpu: Remove VRAM from shared bo domains.
drm/amdgpu: Rename amdgpu_display_framebuffer_domains()
drm/amd/powerplay: use the flag to decide whether send gfxoff smc message
drm/amdgpu: set CGPG if gfxoff is enabled for raven
drm/amdgpu: fix to disable powergating in hw_fini
drm/amdgpu: it should disable gfxoff when system is going to suspend
drm/amd/powerplay: add control gfxoff enabling in late init
drm/amdgpu: clear gfxoff feature mask if the asic is not raven
drm/amdgpu: use pp_feature member to store the mask
drm/amd/powerplay: enable/disable gfxoff through smu
drm/amd/powerplay: add gfx off control function
drm/amdgpu: set gfxoff disabled by default
drm/amdgpu: add gfxoff feature mask
drm/amdgpu: move PP_FEATURE_MASK to amd_shared header
drm/amd/powerplay: send CGPG smc message if PG is enabled for raven
drm/amdgpu: add setting powergating method for gfx9
drm/amdgpu: revise init_rlc_save_restore_list behavior to support latest register_list_format/register_restore table
drm/amdgpu: cleanup init power gating function
drm/amdgpu: enter rlc safe mode before set cgpg
drm/amdgpu: add save restore list cntl gpm and srm firmware support
drm/amdgpu: add new rlc firmware header format v2.1
drm/amdgpu: update psp gfx if header
drm/amd/powerplay: add registry key to disable ACG
drm/amdgpu: print DMA-buf status in debugfs
drm/amd/powerplay: header file interface to SMU update
drm/amdgpu: simplify bo_va list when vm bo update (v2)
drm/amdgpu: init gfx9 aperture settings
drm/amd/pp: Fix NULL point check error in smu_set_watermarks_for_clocks_ranges
drm/amdgpu: fix list not initialized
drm/amdgpu: optionally do a writeback but don't invalidate TC for IB fences
drm/amdgpu: handle domain mask checking v2
drm/amdgpu: set preferred_domain independent of fallback handling
drm/amdgpu: limit reg_write_reg_wait workaround to SRIOV v2
drm/scheduler: move last_sched fence updating prior to job popping (v2)
drm/scheduler: always put last_sched fence in entity_fini
drm/amdgpu: print the vbios version in the debugfs firmware info
drm/amd/pp: Fix bug voltage can't be OD separately on VI
drm/amd/pp: Remove dead interface
drm/amdgpu: Reserved vram for smu to save debug info.
drm/amdgpu: use amdgpu_bo_param for amdgpu_bo_create v2
drm/amdgpu: add amdgpu_bo_param
drm/amd/display: Use dig enable to determine fast boot optimization.
drm/amd/display: add missing colorspace for set black color
drm/amd/display: add calculated clock logging to DTN
drm/amd/display: add rq/dlg/ttu to dtn log
drm/amd/display: Check SCRATCH reg to determine S3 resume.
drm/amd/display: HDMI has no sound after Panel power off/on
drm/amd/display: Move DCC support functions into dchubbub
drm/amd/display: Do not create memory allocation if stats not enabled
drm/amd/display: Check lid state to determine fast boot optimization.
drm/amd/display: change dml init to use default structs
drm/amd/display: fix segfault on insufficient TG during validation
drm/amd/display: Fix regamma not affecting full-intensity color values
drm/amd/display: Move dp_pixel_encoding_type to stream_encoder include
drm/amd/display: fix brightness level after resume from suspend
drm/amd/display: dal 3.1.42
drm/amd/display: Don't program bypass on linear regamma LUT
drm/amdgpu: defer test IBs on the rings at boot (V3)
drm/amd/pp: Adding a function to store cc6 data in SMU10
drm/amd/pp: Adding set_watermarks_for_clocks_ranges for SMU10
drm/amdgpu: re-validate per VM BOs if required v2
drm/amdgpu: revert "Don't change preferred domian when fallback GTT v6"
drm/amdgpu: revert "add new bo flag that indicates BOs don't need fallback (v2)"
drm/amd/pp: Move common code to smu_helper.c
drm/amd/pp: Clear smu response register before send smu message
drm/amd/pp: Remove struct pp_gpu_power
drm/amd/pp: Refine get_gpu_power for VI
Revert "drm/amd/powerply: fix power reading on Fiji"
drm/gpu-sched: fix force APP kill hang(v4)
drm/amdgpu: Free VGA stolen memory as soon as possible.
drm/amdgpu/gmc: steal the appropriate amount of vram for fw hand-over (v3)
drm/amdgpu/gmc9: use amdgpu_ring_emit_reg_write_reg_wait in gpu tlb flush
drm/amdgpu/vcn1: add emit_reg_write_reg_wait ring callback
drm/amdgpu/vce4: add emit_reg_write_reg_wait ring callback
drm/amdgpu/uvd7: add emit_reg_write_reg_wait ring callback
drm/amdgpu/sdma4: add emit_reg_write_reg_wait ring callback (v2)
drm/amdgpu/gfx9: add emit_reg_write_reg_wait ring callback (v2)
drm/amdgpu: add emit_reg_write_reg_wait ring callback
drm/amdgpu/powerplay: rename smu7_upload_mc_firmware
drm/amdgpu/powerplay: fix smu7_get_memory_type for fiji
Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)"
Revert "drm/amd/display: fix dereferencing possible ERR_PTR()"
drm/amdgpu/gfx9: cache DB_DEBUG2 and make it available to userspace
drm/ttm: keep a reference to transfer pipelined BOs
drm/amd/pp: Remove useless smu7 running state check
drm/amd/pp: Remove dead function in smu7_smumgr.c
drm/amd/powerplay: initialzie the dpm intial enabled state
drm/amd/powerplay: Get more than 8 level gfxclk states
amd/powerplay: implement the vega12_force_clock_level interface
drm/amdgpu: Add APU support in vi_set_vce_clocks
drm/amdgpu: Add APU support in vi_set_uvd_clocks
drm/amd/pp: Remove unnecessary forward declaration
drm/amd/pp: Move same macro definitions to hwmgr.h
drm/amd/display: remove dummy is_blanked() to optimise boot time
drm/amd/display: Don't spam debug messages
drm/amd/display: Remove PRE_VEGA flag
drm/amd/display: Fix 64-bit division in hwss_edp_power_control
drm/amdgpu: fix and cleanup cpu visible VRAM handling
drm/amdgpu: use ctx bytes_moved
drm/amd/pp: fix the wrong readout engine clock in deep sleep
drm/amd/pp: use soc15 common macros instead of vega10 specific
drm/amdgpu: add MP1 and THM hw ip base reg offset
drm/amd/pp: Refine pp_atomfwctrl_get_vbios_bootup_values
drm/amdgpu: fix null pointer panic with direct fw loading on gpu reset
drm/radeon: add PX quirk for Asus K73TK
drm/amd/display: Fix memleak on input transfer function
drm/amd/display: Fix dim display on DCE11
drm/amd/display: Have DC manage its own allocation of gamma
drm/amd/display: Fix structure initialization of hdmi_info_packet
drm/amd/display: move color_transfer_func to color mod
drm/amd/display: Refactor color module
drm/amd/display: csc_transform to dc_csc_transform
drm/amd/display: Do not use os types
drm/amd/display: Remove unused fields
drm/amd/display: Get rid of unused input_tf
drm/amd/display: Updated HDR Static Metadata to directly take info packet raw
bpf: sockmap, add hash map support
PCI: Make pci_get_new_domain_nr() static
ARM: dts: logicpd-som-lv: Fix Touchscreen controller
ARM: dts: am3517-som: Add Seiko Instruments RTC s35390a
ARM: dts: am437x-sk-evm: add wilink8 support
ARM: dts: am3517-evm: Add LCD panel type 15 support
ARM: dts: am3517-som: Associate cpu to regulator supply
ARM: dts: am3517-som: Add TI TPS65023 regulators
ARM: dts: am3517-evm: Split off SOM features from baseboard
ARM: dts: am3517: Add pinmuxing, CD and WP for MMC1
RDMA/hfi1: Fix build error with debugfs disabled
clk: stm32mp1: Add CLK_IGNORE_UNUSED to ck_sys_dbg clock
ARM: dts: logicpd-som-lv: Add fixed 26MHz clock as fck for twl
ARM: dts: logicpd-torpedo: Add fixed 26MHz clock as fck for twl
ARM: dts: omap3-pandora-common: Use IRQ_TYPE specifier
ARM: dts: am335x-boneblue: Use IRQ_TYPE specifier
ARM: dts: am335x-baltos.dtsi: Use IRQ_TYPE specifier
ARM: dts: am335x-baltos-ir5221: Use IRQ_TYPE specifier
ARM: dts: am335x-baltos-ir3220: Use IRQ_TYPE specifier
Revert "ARM: dts: am437x-sk-evm: Correct tps65218 irq type"
ARM: dts: am437x-epos-evm: Fixup (again) tps65218 irq type
ARM: dts: am437x-cm-t43: Fixup (again) tps65218 irq type
ARM: dts: am437x-gp-evm: Fixup (again) tps65218 irq type
ARM: dts: am335x-evmsk: Add phandle for the backlight for the panel
ARM: dts: omap: fix OMAP3 CM-T3x OF graph video connectors
ARM: dts: omap: fix OF graph in omap3-devkit8000
torture: Make kvm-find-errors.sh find build warnings
rcutorture: Abbreviate kvm.sh summary lines
rcutorture: Print end-of-test state in kvm.sh summary
rcutorture: Print end-of-test state
torture: Fold parse-torture.sh into parse-console.sh
torture: Add a script to edit output from failed runs
perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore
perf bpf: Add probe() helper to reduce kprobes boilerplate
perf bpf: Add license(NAME) helper
perf bpf: Add kprobe example to catch 5s naps
perf bpf: Add bpf.h to be used in eBPF proggies
perf bpf: Add 'examples' directories
perf llvm-utils: Add bpf include path to clang command line
rcu: Update list of rcu_future_grace_period() trace events
rcu: Drop early GP request check from rcu_gp_kthread()
rcu: Simplify and inline cpu_needs_another_gp()
rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
rcu: Make rcu_start_this_gp() check for out-of-range requests
rcu: Add funnel locking to rcu_start_this_gp()
rcu: Make rcu_start_future_gp() caller select grace period
rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
rcu: Cleanup, don't put ->completed into an int
rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
rcu: Make rcu_migrate_callbacks wake GP kthread when needed
rcu: Convert ->need_future_gp[] array to boolean
rcu: Make rcu_future_needs_gp() check all ->need_future_gps[] elements
rcu: Avoid losing ->need_future_gp[] values due to GP start/end races
rcu: Make rcu_gp_cleanup() more accurately predict need for new GP
rcu: Make rcu_gp_kthread() check for early-boot activity
rcu: Add accessor macros for the ->need_future_gp[] array
rcu: Make rcu_start_future_gp()'s grace-period check more precise
rcu: Improve non-root rcu_cbs_completed() accuracy
doc: Ensure whatisRCU.txt actually says what RCU is
rcu: Add leaf-node macros
nvme: Avoid flush dependency in delete controller flow
srcu: Add cleanup_srcu_struct_quiesced()
rcu: Declare rcu_eqs_special_set() in public header
rcu: Update rcu_bind_gp_kthread() header comment
rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h
softirq: Eliminate unused cond_resched_softirq() macro
rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
rcu: Remove deprecated RCU debugfs tracing code
rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is high
rcu: Don't allocate rcu_nocb_mask if no one needs it
rcu: Inline rcu_preempt_do_callback() into its sole caller
rcu: exp: Protect all sync_rcu_preempt_exp_done() with rcu_node lock
rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
rcu: Parallelize expedited grace-period initialization
arm64: Remove duplicate include
arm64: remove no-op macro VMLINUX_SYMBOL()
ARM: dts: exynos: Add support for audio over HDMI for Odroid X/X2/U3
ALSA: hda/ca0132: constify parameter table for effects
ALSA: hda/ca0132: merge strings just for printk
ALSA: hda/ca0132: constify read-only members of string array
ALSA: hda/ca0132: constify templates for control element set
video: fbdev: pxafb: match_string() conversion fixup
thunderbolt: Handle NULL boot ACL entries properly
PCI: dwc: dra7xx: Use devm_ioremap_resource() instead of devm_ioremap()
PCI: dwc: artpec6: Use devm_ioremap_resource() instead of devm_ioremap()
bpf: sockmap, refactor sockmap routines to work with hashmap
misc: pci_endpoint_test: Use pci_irq_vector function
brcmfmac: fix initialization of struct cfg80211_inform_bss variable
misc: pci_endpoint_test: Add DesignWare EP entry
dt-bindings: PCI: designware: Add support for EP in DesignWare driver
MIPS: perf: Fix perf with MT counting other threads
PCI: dwc: Add support for EP mode
dt-bindings: PCI: designware: Example update
IB: Fix RDMA_RXE and INFINIBAND_RDMAVT dependencies for DMA_VIRT_OPS
iommu/amd: Prevent possible null pointer dereference and infinite loop
iommu/amd: Fix grammar of comments
iommu: Clean up the comments for iommu_group_alloc
iommu/vt-d: Remove unnecessary parentheses
iommu/vt-d: Clean up pasid quirk for pre-production devices
iommu/vt-d: Clean up unused variable in find_or_alloc_domain
iommu/vt-d: Fix iotlb psi missing for mappings
iommu/vt-d: Introduce __mapping_notify_one()
MIPS: perf: Use correct VPE ID when setting up VPE tracing
iommu: Remove extra NULL check when call strtobool()
MIPS: perf: More robustly probe for the presence of per-tc counters
PCI: endpoint: functions/pci-epf-test: Replace lower into upper case characters
misc: pci_endpoint_test: Replace lower into upper case characters
arm64: dts: hi3798cv200: enable emmc support for poplar board
arm64: dts: hi3798cv200: enable usb2 support for poplar board
arm64: dts: hi3798cv200: enable PCIe support for poplar board
arm64: dts: hisi: Enable Hisi LPC node for hip07
arm64: dts: hisi: Enable Hisi LPC node for hip06
arm64: dts: hi3660: Add pcie msi interrupt attribute
arm64: dts: hi3660: Add thermal cooling management
arm64: dts: hi3660: Add CPU frequency scaling support
arm64: dts: hi3660: Add stub clock node
arm64: dts: hi3660: Add mailbox node
perf buildid-cache: Warn --purge-all failures
perf tests parse-events: Add intel_pt parse test
drm: rcar-du: disable dtc graph-endpoint warnings on DT overlays
mtd: rawnand: Fix return type of __DIVIDE() when called with 32-bit
powerpc/embedded6xx/hlwd-pic: Prevent interrupts from being handled by Starlet
powerpc/embedded6xx/flipper-pic: Don't match all IRQ domains
MIPS: Probe for MIPS MT perf counters per TC
arm64: Increase ARCH_DMA_MINALIGN to 128
powerpc/book3s64: Enable split pmd ptlock.
powerpc/mm: Use page fragments for allocation page table at PMD level
powerpc/mm: Implement helpers for pagetable fragment support at PMD level
powerpc/book3s64/mm: Simplify the rcu callback for page table free
powerpc/mm/book3s64/4k: Switch 4k pagesize config to use pagetable fragment
powerpc/mm/nohash: Remove pte fragment dependency from nohash
powerpc/mm/book3e/64: Remove unsupported 64Kpage size from 64bit booke
powerpc/mm: Rename pte fragment functions
powerpc/mm: Use pmd_lockptr instead of opencoding it
powerpc/mm/book3s64: Move book3s64 code to pgtable-book3s64
powerpc/kvm: Switch kvm pmd allocator to custom allocator
clk: meson: drop CLK_SET_RATE_PARENT flag
clk: meson-axg: Add AO Clock and Reset controller driver
clk: meson: aoclk: refactor common code into dedicated file
clk: meson: migrate to devm_of_clk_add_hw_provider API
clk: meson: gxbb: add the video decoder clocks
clk: meson: meson8b: add support for the NAND clocks
dt-bindings: clock: reset: Add AXG AO Clock and Reset Bindings
dt-bindings: clock: axg-aoclkc: New binding for Meson-AXG SoC
media: siano: use GFP_DMA only for smssdio
KVM: arm/arm64: VGIC/ITS save/restore: protect kvm_read_guest() calls
KVM: arm/arm64: VGIC/ITS: protect kvm_read_guest() calls with SRCU lock
KVM: arm/arm64: VGIC/ITS: Promote irq_lock() in update_affinity
KVM: arm/arm64: Properly protect VGIC locks from IRQs
cxl: Report the tunneled operations status
cxl: Set the PBCQ Tunnel BAR register when enabling capi mode
drm/vc4: Fix leak of the file_priv that stored the perfmon.
video: fbdev: nvidia: fix spelling mistake: "scaleing" -> "scaling"
video: fbdev: fix spelling mistake: "frambuffer" -> "framebuffer"
video: fbdev: pxafb: Convert to use match_string() helper
video: fbdev: via: allow COMPILE_TEST build
KVM: X86: Lower the default timer frequency limit to 200us
HID: i2c-hid: check if device is there before really probing
EDAC, altera: Fix ARM64 build warning
ARM: davinci: board-dm646x-evm: set VPIF capture card name
ARM: davinci: board-dm646x-evm: pass correct I2C adapter id for VPIF
ARM: davinci: dm646x: fix timer interrupt generation
HID: steam: add missing fields in client initialization
HID: steam: add battery device.
HID: add driver for Valve Steam Controller
i2c: hix5hd2: remove some dead code
i2c: exynos5: simplify transfer function
i2c: Get rid of i2c_board_info->archdata
dt-bindings: i2c: fix typo 'can by' to 'can be'
i2c: designware: refactor low-level enable/disable
cpufreq: schedutil: Don't set next_freq to UINT_MAX
Revert "cpufreq: schedutil: Don't restrict kthread to related_cpus unnecessarily"
Revert "cpufreq: rcar: Add support for R8A7795 SoC"
Revert "cpufreq: dt: Add r8a7796 support to to use generic cpufreq driver"
ACPICA: Update version to 20180427
ACPICA: Debugger: Removed direct support for EC address space in "Test Objects"
ACPICA: Debugger: Add Package support for "test objects" command
ACPICA: Improve error messages for the namespace root node
ACPICA: Fix potential infinite loop in acpi_rs_dump_byte_list
ACPICA: vsnprintf: this statement may fall through
ACPICA: Tables: Fix spelling mistake in comment
ACPICA: iASL: Enhance the -tc option (create AML hex file in C)
selftests/bpf: make sure build-id is on
PM / Domains: Don't return -EEXIST at attach when PM domain exists
ARM: dts: imx: Switch NXP boards to SPDX identifier
usbip: usbip_host: fix NULL-ptr deref and use-after-free errors
usbip: usbip_host: run rebind from exit when module is removed
usbip: usbip_host: delete device from busid_table after rebind
usbip: usbip_host: refine probe and disconnect debug msgs to be useful
Drivers: hv: vmbus: Removed an unnecessary cast from void *
staging: android: ion: Switch to pr_warn_once in ion_buffer_destroy
staging: mt7621-gpio: add SPDX identifier
staging: mt7621-gpio: fix some warnings because of lines exceeded 80 characters
staging: lustre: obdclass: change object lookup to no wait mode
staging: mt7621-eth: Remove unused variable
staging: ks7010: Remove unused define
staging: rtl8723bs: Fix checkpatch.pl errors
staging: android: ion: Check return value of ion_buffer_kmap_get
staging: speakup: use true/false instead of 1/0
Staging:Comedi:comedi_compat32.c: Lindent changes
i2c: viperboard: return message count on master_xfer success
i2c: pmcmsp: fix error return from master_xfer
i2c: pmcmsp: return message count on master_xfer success
usb: gadget: udc: atmel: Fix indenting
usb: gadget: udc: atmel: Remove obsolete include
usb: gadget: udc: atmel: GPIO inversion is handled by gpiod
USB: rndis: Fix for handling garbled messages
usb: dwc3: use local copy of resource to fix-up register offset
usb: gadget: composite: fill bcdUSB as 0x0320 for SuperSpeed or higher speeds
usb: dwc3: core: Suspend PHYs on runtime suspend in host mode
usb: dwc3: Add Qualcomm DWC3 glue driver
dt-bindings: usb: Update documentation for Qualcomm DWC3 driver
usb: dwc3: of-simple: Add compatible for Allwinner H6 platform
dt-bindings: arm: document Renesas V3HSK board bindings
usb: gadget: f_ecm: fix host mac address for multiple instances
USB: Gadget Ethernet: Re-enable Jumbo frames.
usb: dwc2: Change reading of current frame number flow.
usb: dwc2: debugfs: Don't touch RX FIFO during register dump
usb: dwc2: Fix crash in incomplete isoc intr handlers.
usb: dwc2: Add Interpacket Gap(IPG) feature support
usb: dwc2: Enable BNA interrupt for IN endpoints
usb: dwc2: Change ISOC DDMA flow
usb: mtu3: make USB_MTU3_DUAL_ROLE depend on EXTCON but not USB_MTU3
usb: mtu3: fix operation failure when test TEST_J/K
usb: mtu3: fix an unrecognized issue when connected with PC
usb: mtu3: remove repeated setting of gadget state
usb: mtu3: avoid TX data length truncated in SS/SSP mode
usb: phy: simplify getting .drvdata
usb: mtu3: simplify getting .drvdata
usb: phy: Add Kconfig entry for Tegra PHY driver
usb: tegra: Move utmi-pads reset from ehci-tegra to tegra-phy
usb: phy: tegra: Cleanup error messages
ARM: dts: imx6qdl-phytec-pfla02: Use IRQ_TYPE specifier
usb: gadget: f_fs: Add compat_ioctl to epfiles
usb: gadget: f_midi: Use refcount when freeing f_midi_opts
usb/gadget: Add driver for Aspeed SoC virtual hub
usb/gadget: Constify usb_gadget_get_string "table" argument
ARM: dts: imx53-voipac-dmm-668: Use IRQ_TYPE specifier
ARM: dts: imx53-qsb: Use IRQ_TYPE specifier
ARM: dts: vf-colibri-eval-v3: Use IRQ_TYPE specifier
arm64: dts: fsl-ls1012a: Fix DTC aliases warnings
x86/asm/memcpy_mcsafe: Define copy_to_iter_mcsafe()
x86/asm/memcpy_mcsafe: Add write-protection-fault handling
x86/asm/memcpy_mcsafe: Return bytes remaining
x86/asm/memcpy_mcsafe: Add labels for __memcpy_mcsafe() write fault handling
x86/asm/memcpy_mcsafe: Remove loop unrolling
tools/memory-model: Add reference for 'Simplifying ARM concurrency'
tools/memory-model: Update ASPLOS information
MAINTAINERS, tools/memory-model: Update e-mail address for Andrea Parri
tools/memory-model: Fix coding style in 'lock.cat'
tools/memory-model: Remove out-of-date comments and code from lock.cat
tools/memory-model: Improve mixed-access checking in lock.cat
tools/memory-model: Improve comments in lock.cat
tools/memory-model: Remove duplicated code from lock.cat
tools/memory-model: Flag "cumulativity" and "propagation" tests
tools/memory-model: Add model support for spin_is_locked()
tools/memory-model: Add scripts to test memory model
tools/memory-model: Fix coding style in 'linux-kernel.def'
tools/memory-model: Model 'smp_store_mb()'
tools/memory-order: Update the cheat-sheet to show that smp_mb__after_atomic() orders later RMW operations
tools/memory-order: Improve key for SELF and SV
tools/memory-model: Fix cheat sheet typo
tools/memory-model: Update required version of herdtools7
tools/memory-model: Redefine rb in terms of rcu-fence
tools/memory-model: Rename link and rcu-path to rcu-link and rb
locking/spinlocks: Clean up comment and #ifndef for {,queued_}spin_is_locked()
locking/spinlocks/arm64: Remove smp_mb() from arch_spin_is_locked()
locking/spinlocks: Document the semantics of spin_is_locked()
locking/Documentation: Use `warning` RST directive
locking/Documentation: Fix incorrect example code
locking/memory-barriers.txt/kokr: Update Korean translation to de-emphasize smp_read_barrier_depends() some more
locking/memory-barriers.txt/kokr: Update Korean translation to fix description of data dependency barriers
locking/memory-barriers.txt/kokr: Update Korean translation to cross-reference "tools/memory-model/"
locking/memory-barriers.txt/kokr: Update Korean translation to de-emphasize smp_read_barrier_depends()
locking/memory-barriers.txt/kokr: Update Korean translation to indicate that READ_ONCE() now implies smp_barrier_depends()
locking/memory-barriers.txt: Fix broken DMA vs. MMIO ordering example
bpf, doc: howto use/run the BPF selftests
bpf, doc: convert bpf_devel_QA.rst to use RST formatting
bpf, doc: convert bpf_design_QA.rst to use RST formatting
bpf, doc: rename txt files to rst files
bpf, doc: add basic README.rst file
samples: bpf: make the build less noisy
samples: bpf: move libbpf from object dependencies to libs
samples: bpf: fix build after move to compiling full libbpf.a
samples: bpf: rename libbpf.h to bpf_insn.h
samples: bpf: include bpf/bpf.h instead of local libbpf.h
s390/qdio: don't release memory in qdio_setup_irq()
s390/qdio: fix access to uninitialized qdio_q fields
b43: fix transmit failure when VT is switched
rsi: Set wowlan flag while writing wowlan config parameters
rsi: reset hibernate_resume flag to work hibernate resume in coex mode.
rsi: Add null check for virtual interfaces in wowlan config
brcmfmac: set WIPHY_FLAG_HAVE_AP_SME flag
ALSA: usb-audio: UAC3: Parse Input Terminal number of channels.
ALSA: usb-audio: UAC3 Add support for connector insertion.
ALSA: usb-audio: UAC3. Add support for mixer unit.
x86/build/vdso: Put generated linker scripts to $(obj)/
x86/build/vdso: Remove unnecessary export in Makefile
x86/build/vdso: Remove unused $(vobjs-nox32) in Makefile
objtool: Detect RIP-relative switch table references
ALSA: usb-audio: Use Class Specific EP for UAC3 devices.
drm: set FMODE_UNSIGNED_OFFSET for drm files
sctp: checkpatch fixups
sctp: add asoc and packet to sctp_flush_ctx
sctp: add sctp_flush_ctx, a context struct on outq_flush routines
sctp: rework switch cases in sctp_outq_flush_data
sctp: make use of gfp on retransmissions
sctp: move transport flush code out of sctp_outq_flush
sctp: move flushing of data chunks out of sctp_outq_flush
sctp: move outq data rtx code out of sctp_outq_flush
sctp: move the flush of ctrl chunks into its own function
sctp: factor out sctp_outq_select_transport
sctp: add sctp_packet_singleton
scsi: mptlan: Fix mpt_lan_sdu_send()'s return type
cxgb4: add tc flower match support for tunnel VNI
scsi: core: clean up generated file scsi_devinfo_tbl.c
scsi: target: tcmu: fix error resetting qfull_time_out to default
vmxnet3: use DMA memory barriers where required
vmxnet3: set the DMA mask before the first DMA map operation
scsi: ipr: new IOASC update
cxgb4: Correct ntuple mask validation for hash filters
net: stmmac: Add Jose Abreu as co-maintainer
scsi: esas2r: fix spelling mistake: "requestss" -> "requests"
scsi: target: target/file: Add support of direct and async I/O
scsi: libosd: Remove VLA usage
bpf: add ld64 imm test cases
bpf, arm64: save 4 bytes in prologue when ebpf insns came from cbpf
bpf, arm64: optimize 32/64 immediate emission
bpf, arm64: save 4 bytes of unneeded stack space
bpf, arm32: save 4 bytes of unneeded stack space
bpf, x64: clean up retpoline emission slightly
bpf, sparc: remove unused variable
bpf, mips: remove unused function
kbuild: disable new dtc graph and unit-address warnings
scripts/dtc: Update to upstream version v1.4.6-21-g84e414b0b5bc
MIPS: mscc: Connect phys to ports on ocelot_pcb123
MIPS: mscc: Add switch to ocelot
MIPS: JZ4740: Drop old platform reset code
MIPS: qi_lb60: Enable the jz4740-wdt driver
MIPS: JZ4780: dts: Fix watchdog node
MIPS: JZ4740: dts: Add bindings for the jz4740-wdt driver
watchdog: JZ4740: Drop module remove function
watchdog: JZ4740: Register a restart handler
watchdog: JZ4740: Use devm_* functions
watchdog: JZ4740: Disable clock after stopping counter
MIPS: VPE: Fix spelling mistake: "uneeded" -> "unneeded"
MIPS: Re-use kstrtobool_from_user()
MIPS: Convert update_persistent_clock() to update_persistent_clock64()
MIPS: Convert read_persistent_clock() to read_persistent_clock64()
MIPS: sni: Remove the read_persistent_clock()
MIPS: Fix ptrace(2) PTRACE_PEEKUSR and PTRACE_POKEUSR accesses to o32 FGRs
MIPS: xilfpga: Actually include FDT in fitImage
MIPS: xilfpga: Stop generating useless dtb.o
KVM: Fix spelling mistake: "cop_unsuable" -> "cop_unusable"
MIPS: ptrace: Expose FIR register through FP regset
MIPS: Fix build with DEBUG_ZBOOT and MACH_JZ4770
MIPS: c-r4k: Fix data corruption related to cache coherence
net/mlx5e: Remove MLX5E_TEST_BIT macro
net/mlx5e: Use test bit in en accel xmit flow
net/mlx5e: Use __set_bit for adaptive-moderation bit in RQ state
net/mlx5e: Report all channels with min RX WQEs timeout
net/mlx5e: Support offloaded TC flows with no matches on headers
net/mlx5e: Get the required HW match level while parsing TC flow matches
net/mlx5e: Properly order min inline mode setup while parsing TC matches
net/mlx5e: Use local actions var while processing offloaded TC flow actions
net/mlx5e: Return success when TC offloaded fdb actions parsed ok
net/mlx5e: Avoid redundant zeroing of offloaded TC flow attributes
net/mlx5e: Clean static checker complaints on TC offload and VF reps code
net/mlx5e: Remove double defined DMAC header re-write element
net/mlx5e: Use bool as return type for mlx5e_xdp_handle
net/mlx5e: Use u8 instead of int for LRO number of segments
net/mlx5e: Skip redundant checks when providing NUD lastuse feedback
net/mlx5e: Remove redundant vport context vlan update
audit: use inline function to set audit context
samples/bpf: xdp_monitor, accept short options
cpufreq: intel_pstate: allow trace in passive mode
bpf: add selftest for stackmap with build_id in NMI context
bpf: enable stackmap with build_id in nmi context
audit: use inline function to get audit context
tracing/x86/xen: Remove zero data size trace events trace_xen_mmu_flush_tlb{_all}
spi: Respect all error codes from dev_pm_domain_attach()
soundwire: Respect all error codes from dev_pm_domain_attach()
mmc: sdio: Respect all error codes from dev_pm_domain_attach()
i2c: Respect all error codes from dev_pm_domain_attach()
driver core: Respect all error codes from dev_pm_domain_attach()
amba: Respect all error codes from dev_pm_domain_attach()
PM / Domains: Allow a better error handling of dev_pm_domain_attach()
PM / Domains: Check for existing PM domain in dev_pm_domain_attach()
PM / Domains: Drop redundant code in genpd while attaching devices
PM / Domains: Drop comment in genpd about legacy Samsung DT binding
PM / Domains: Fix error path during attach in genpd
cxgb4: do not fail vf instatiation in slave mode
mlxsw: spectrum_span: Support LAG under mirror-to-gretap
net/smc: check for missing nlattrs in SMC_PNETID messages
net/mlx4_core: Fix error handling in mlx4_init_port_info.
net: ethernet: ti: Use ERR_CAST instead of ERR_PTR(PTR_ERR())
cpufreq: armada-37xx: driver relies on cpufreq-dt
ACPICA: Add deferred package support for the Load and loadTable operators
ARM: dts: qcom-apq8064: use correct pci address for address translation
leds: Add Spreadtrum SC27xx breathing light controller driver
sched: cls: enable verbose logging
dt-bindings: leds: Add SC27xx breathing light controller documentation
ARM: dts: qcom-apq8064: fix gic_irq_domain_translate warnings
ARM: dts: Fix the RPM clock controller compatible string
ARM: dts: ipq4019: Add TZ and SMEM reserved regions
ARM: dts: qcom: pm8941: Add vadc nodes needed to estimate an ocv
ARM: dts: qcom-apq8064: disable i2c by default at soc dtsi
audit: convert sessionid unset to a macro
ALSA: hda/ca0132: fix array_size.cocci warnings
selinux: correctly handle sa_family cases in selinux_sctp_bind_connect()
selinux: fix address family in bind() and connect() to match address/port
selinux: add AF_UNSPEC and INADDR_ANY checks to selinux_socket_bind()
block: Add sysfs entry for fua support
block: Export bio check/set pages_dirty
block: Add warning for bi_next not NULL in bio_endio()
block: Add missing flush_dcache_page() call
block: Split out bio_list_copy_data()
block: Add bio_copy_data_iter(), zero_fill_bio_iter()
block: Use bioset_init() for fs_bio_set
block: Add bioset_init()/bioset_exit()
block: Convert bio_set to mempool_init()
mempool: Add mempool_init()/mempool_exit()
net: stmmac: dwmac-sun8i: Add support for GMAC on Allwinner R40 SoC
net: stmmac: dwmac-sun8i: Support different ranges for TX/RX delay chains
net: stmmac: dwmac-sun8i: Allow getting syscon regmap from external device
net: stmmac: dwmac-sun8i: Use regmap_field for syscon register access
dt-bindings: net: dwmac-sun8i: Add binding for GMAC on Allwinner R40 SoC
dt-bindings: net: dwmac-sun8i: simplify description of syscon property
dt-bindings: net: dwmac-sun8i: Sort syscon compatibles by alphabetical order
dt-bindings: net: dwmac-sun8i: Clean up clock delay chain descriptions
net: dsa: mv88e6xxx: add a stats setup function
net: dsa: mv88e6xxx: add IEEE and IP mapping ops
net: dsa: mv88e6xxx: use helper for 6390 histogram
tun: fix use after free for ptr_ring
sbitmap: fix race in wait batch accounting
cxgb4: collect hardware dump in second kernel
vmcore: append device dumps to vmcore as elf notes
vmcore: add API to collect hardware dump in second kernel
PCI: Move private DT related functions into private header
PCI: dwc: Move CONFIG_PCI depends to menu
PCI: dwc: Replace magic number by defines
ARM: keystone: fix platform_domain_notifier array overrun
kvm: mmu: Don't expose private memslots to L2
kvm: mmu: Add guest_mode to kvm_mmu_page_role
kvm: nVMX: Eliminate APIC access page sharing between L1 and L2
kvm: vmx: Basic APIC virtualization controls have three settings
kvm: vmx: Introduce lapic_mode enumeration
KVM: x86: VMX: hyper-v: Enlightened MSR-Bitmap support
kvm: x86: Refactor mmu_free_roots()
KVM: X86: Fix reserved bits check for MOV to CR3
PCI: dwc: Small computation improvement
PCI: dwc: Replace lower into upper case characters
PCI: dwc: Define maximum number of vectors
ALSA: isight: use position offset macro of TLV data
ALSA: hda: use position offset macro of TLV data
ALSA: vmaster: use position offset macro of TLV data
ALSA: control: complement TLV macro for db-minmax and db-linear types
ARM: dts: stihxxx-b2120: Fix complain about IRQ_TYPE_NONE usage
ARM: dts: stih410: Fix complain about IRQ_TYPE_NONE usage
ARM: dts: stih407: Fix complain about IRQ_TYPE_NONE usage
ARM: dts: stih407-pinctrl: Fix complain about IRQ_TYPE_NONE usage
ARM: dts: stih407-family: Fix complain about IRQ_TYPE_NONE usage
libata: Apply NOLPM quirk for SAMSUNG PM830 CXM13D1Q.
ARM: dts: socfpga: Fix NAND controller node compatible for Arria10
sata_fsl: use the right type for tag bitshift
ARM: dts: socfpga: Fix NAND controller node compatible
usb: musb: fix remote wakeup racing with suspend
driver core: add __printf verification to device_create_groups_vargs
block: consistently use GFP_NOIO instead of __GFP_NORECLAIM
block: use GFP_NOIO instead of __GFP_DIRECT_RECLAIM
block: pass an explicit gfp_t to get_request
block: sanitize blk_get_request calling conventions
block: fix __get_request documentation
scsi/osd: remove the gfp argument to osd_start_request
mm: memory_hotplug: use put_device() if device_register fail
base: core: fix typo 'can by' to 'can be'
ARM: dts: socfpga: Fix NAND controller clock supply
debugfs: inode: debugfs_create_dir uses mode permission from parent
debugfs: Re-use kstrtobool_from_user()
Documentation: clarify firmware_class provenance and why we can't rename the module
Documentation: remove stale firmware API reference
Documentation: fix few typos and clarifications for the firmware loader
ath10k: re-enable the firmware fallback mechanism for testmode
ath10k: use firmware_request_nowarn() to load firmware
firmware: add firmware_request_nowarn() - load firmware without warnings
firmware_loader: make firmware_fallback_sysfs() print more useful
firmware_loader: move kconfig FW_LOADER entries to its own file
firmware_loader: replace ---help--- with help
firmware_loader: enhance Kconfig documentation over FW_LOADER
firmware_loader: document firmware_sysfs_fallback()
firmware: rename fw_sysfs_fallback to firmware_fallback_sysfs()
firmware: use () to terminate kernel-doc function names
firmware: wrap FW_OPT_* into an enum
Btrfs: fix xattr loss after power failure
Btrfs: send, fix invalid access to commit roots due to concurrent snapshotting
ARM: dts: r8a7745: Add PMU device node
ARM: dts: r8a7743: Add PMU device node
ARM: dts: r8a7794: Add PMU device node
ARM: dts: r8a7793: Add PMU device node
ARM: dts: r8a7792: Add PMU device node
ARM: dts: r8a7791: Add PMU device node
ARM: dts: r8a7790: Add PMU device nodes
ARM: dts: r7s72100: Add PMU device node
ARM: dts: r7s72100: Correct RTC interrupt types
ARM: dts: r7s72100: Correct watchdog timer interrupt type
ARM: dts: emev2: Add missing interrupt-affinity to PMU node
ARM: dts: sh73a0: Add missing interrupt-affinity to PMU node
ARM: dts: r8a73a4: Correct mask for GIC PPI interrupts
ARM: dts: r8a7790: Correct mask for GIC PPI interrupts
driver core: Don't ignore class_dir_create_and_add() failure.
ver_linux: Drop redundant calls to system() to test if file is readable
ver_linux: Move stderr redirection from function parameter to function body
misc: IBM Virtual Management Channel Driver (VMC)
rpmsg: Correct support for MODULE_DEVICE_TABLE()
1wire: family module autoload fails because of upper/lower case mismatch.
w1: mxc_w1: Enable clock before calling clk_get_rate() on it
virt: vbox: Only copy_from_user the request-header once
memstick: remove unused variables
nubus: Call bus_register unconditionally
ARM: amba: Fix wrong indentation in driver_override_store()
misc: sgi-gru: Change return type to vm_fault_t
slimbus: qcom: remove unused variable
nvmem: properly handle returned value nvmem_reg_read
nvmem: core: describe add missing dev function parameter
nvmem: meson-efuse: add write support
nvmem: meson-efuse: simplify read callback
nvmem: meson-efuse: remove econfig global
nvmem: Add RAVE SP EEPROM driver
dt-bindings: nvmem: Add binding for RAVE SP EEPROM driver
drivers: nvmem: Export nvmem_add_cells()
coresight: Remove %px for printing pcsr value
coresight tmc etr: Removing extra newline
coresight tmc etr: Fix uninitialised variable
coresight tmc etr: Make memory check consistent in the same function
coresight: Moving framework and drivers to SPDX identifier
coresight: use put_device() instead of kfree()
xen-netfront: fix xennet_start_xmit()'s return type
uio: Prevent device destruction while fds are open
afs: Fix the non-encryption of calls
afs: Fix CB.CallBack handling
afs: Fix whole-volume callback handling
afs: Fix afs_find_server search loop
afs: Fix the handling of an unfound server in CM operations
afs: Add a tracepoint to record callbacks from unlisted servers
afs: Fix the handling of CB.InitCallBackState3 to find the server by UUID
afs: Fix VNOVOL handling in address rotation
afs: Fix AFSFetchStatus decoder to provide OpenAFS compatibility
net/can: single_open_net needs to be paired with single_release_net
uio: Reduce return paths from uio_write()
ARM: dts: imx6q-gk802: Do not hardcode input codes
ARM: dts: imx53-smd: Do not hardcode input codes
ARM: dts: imx53-ard: Do not hardcode input codes
ARM: dts: imx7: Fix error in coresight TPIU graph connection
ARM: dts: imx53: Fix LDB OF graph warning
ARM: dts: imx: fix IPU OF graph endpoint node names
ARM: dts: imx: Switch to SPDX identifier
ARM: dts: imx28-duckbill-2-enocean: Remove unnecessary #address/#size-cells
ARM: dts: imx28-cfa10049: Remove unnecessary #address/#size-cells
ARM: dts: imx: ba16: add "mfg" Q7 SPI-NOR partition
ARM: dts: imx6qdl-udoo: Switch to SPDX identifier
ARM: dts: imx6qdl-wandboard: Switch to SPDX identifier
ARM: dts: imx: replace underscore with hyphen in aliases name
ARM: dts: imx: drop 'clocks' container for board level clocks
ARM: dts: imx27: use label to override osc26m clock setting
ARM: dts: imx1: move clk32 clock into soc dtsi
ARM: dts: imx: drop unnecessary #address-cells/#size-cells
ARM: dts: imx6sx-sabreauto: add egalax touch screen support
ARM: dts: imx6sx-sabreauto: add debug LED support
ARM: dts: imx6sx-sabreauto: add wdog external reset
ARM: dts: imx6sx-sabreauto: add fec support
ARM: dts: imx6sx-sabreauto: add IO expander max7310 support
ARM: dts: imx6sx-sabreauto: add max7322 IO expander support
ARM: dts: imx6sx-sabreauto: add PMIC support
ARM: dts: imx6sx-sabreauto: drop board specific pinctrl container node
ARM: dts: imx6sx-sabreauto: drop 'regulators' container node
ARM: dts: imx6q-pistachio: Use 'uart-has-rtscts' property
ARM: dts: imx6q-var-dt6customboard: Remove #address/#size-cells from gpio-keys
ARM: dts: imx6q-utilite-pro: Remove #address/#size-cells from encoder
ARM: dts: imx6q-b850v3: Remove #address/#size-cells from stdp2690
ARM: dts: imx6dl-aristainetos2_4: Remove #address/#size-cells from display0
ARM: dts: imx53-ppd: Remove unnecessary #address/#size-cells
ARM: dts: imx6qdl-sabre: Remove #address/#size-cells from camera port nodes
ARM: dts: imx: Remove #address/#size-cells from stmpe nodes
ARM: dts: imx: Remove #address/#size-cells from switch nodes
doc: fix sysfs ABI documentation
Drivers: hv: vmbus: enable VMBus protocol version 5.0
android: binder: Change return type to vm_fault_t
ANDROID: binder: change down_write to down_read
ANDROID: binder: correct the cmd print for BINDER_WORK_RETURN_ERROR
ANDROID: binder: remove 32-bit binder interface.
i40evf: Fix a hardware reset support in VF driver
i40e: free the skb after clearing the bitlock
i40e: cleanup wording in a header comment
i40evf: remove MAX_QUEUES and just use I40EVF_MAX_REQ_QUEUES
i40e: add tx_busy to ethtool stats
i40e: Fix recalculation of MSI-X vectors for VMDq
i40e: cleanup whitespace for some ethtool stat definitions
i40e: remove duplicate pfc stats
i40e: calculate ethtool stats size in a separate function
i40evf: Fix client header define
virtchnl: Whitespace and parenthesis cleanup
__inode_security_revalidate() never gets NULL opt_dentry
make xattr_getsecurity() static
video: fbdev: remove unused sh_mobile_meram driver
drm: shmobile: remove unused MERAM support
video: fbdev: sh_mobile_lcdcfb: remove unused MERAM support
video: fbdev: remove unused auo_k190xfb drivers
PCI: imx6: Remove space before tabs
PCI: keystone: Do not treat link up message as error
ARM: dts: at91-sama5d2_xplained: Use IRQ_TYPE specifier
dt-bindings: rtc-2123: Make the node name generic
xen/privcmd: add IOCTL_PRIVCMD_MMAP_RESOURCE
powerpc/cell/spufs: Change return type to vm_fault_t
macintosh/windfarm: fix spelling mistake: "ttarged" -> "ttarget"
selftests/powerpc: fix exec benchmark
powerpc/ioda: Use ibm, supported-tce-sizes for IOMMU page size mask
mtd: rawnand: marvell: Fix read logic for layouts with ->nchunks > 2
mtd: Fix comparison in map_word_andequal()
xen: Change return type to vm_fault_t
drm/i915: Update DRIVER_DATE to 20180514
afs: Fix server rotation's handling of fileserver probe failure
afs: Fix refcounting in callback registration
afs: Fix giving up callbacks on server destruction
afs: Fix address list parsing
afs: Fix directory page locking
drm/i915/execlists: Use rmb() to order CSB reads
drm/i915/userptr: reject zero user_size
staging: ks7010: replace cast type in assignment in hostif_sme_set_pmksa
staging: ks7010: use 'u16' for casts in assignments in hostif_sme_set_rsn
staging: ks7010: change two parameter types in hostif_mic_failure_request
staging: ks7010: replace uint* type into the u* ones in hostif_bss_scan_request
staging: ks7010: replace cast types in assignments in hostif_phy_information_request
staging: ks7010: replace cast type in assignment in hostif_adhoc_set_request
staging: ks7010: replace cast type in assignments in hostif_infrastructure_set_request
staging: ks7010: use u16 as type for casting in hostif_ps_adhoc_set_request
staging: ks7010: replace casts to use type u16 in init_request
staging: ks7010: use u16 as cast type in hostif_start_request
staging: ks7010: avoid no needed cast in ks_wlan_cap
staging: ks7010: change parameter type in hostif_mib_get_request
staging: ks7010: change some cast type from uint16_t to u16 in hostif_data_request
staging: ks7010: use u16 as type for casting in hostif_data_indication_wpa
staging: ks7010: replace not standard uint type to unsigned int
staging: ks7010: replace uint8_t with u8 in ks_wlan_set_rx_gain
staging: ks7010: replace uint8_t with u8 in ks_wlan_set_tx_gain
staging: ks7010: change uint8_t casts to u8 in ks_wlan_set_rate
staging: ks7010: change parameter type in ks_wlan_hw_rx function
staging: ks7010: change cast from uint16_t to u16
staging: ks7010: replace unsigned char type with u8
staging: ks7010: remove no necessary blank line
staging: ks7010: remove not used definition WPA_CAPABILITY_PREAUTH
staging: bcm2835: Use BIT_ULL macro
staging: mt7621-eth: Refactor ethtool stats
staging: wilc1000: refactor host_int_parse_assoc_resp_info() to remove unused code
staging: wilc1000: remove s8idxarray to avoid datatype in variable name
staging: wilc1000: remove unused 'lock' varible in 'wilc_priv' structure
staging: wilc1000: added comments for mutex and spinlock_t
staging: wilc1000: remove 'flag' argument from wilc_mac_indicate()
staging: wilc1000: added #define for setting radiotap header
staging: wilc1000: fix line over 80 chars in wilc_sdio struct
staging: wilc1000: refactor del_station() to avoid parenthesis misalignment
staging: wilc1000: rename u8security to avoid datatype in variable name
staging: wilc1000: fix line over 80 chars issue in connect()
staging: wilc1000: fix line over 80 chars in scan()
staging: wilc1000: fix line over 80 characters in add_key()
staging: wilc1000: fix line over 80 chars in wilc_create_wiphy() declaration
staging: wilc1000: fix line over 80 chars in get_station()
staging: wilc1000: fix line over 80 chars in wilc_wfi_cfg_tx_vendor_spec()
staging: wilc1000: fix line over 80 charas in wilc_wfi_remain_on_channel_expired()
staging: wilc1000: use kmemdup instead of kmalloc in add_network_to_shadow()
staging: wilc1000: fix line over 80 chars in add_network_to_shadow()
staging: wilc1000: rename clear_duringIP() to avoid camelCase issue
staging: wilc1000: use kmalloc(sizeof(*mgmt_tx)...) in mgmt_tx()
staging: wilc1000: use sizeof(*wdev) to allocate memory in wilc_wfi_cfg_alloc()
staging: wilc1000: fix line over 80 chars in linux_mon
staging: wilc1000: replace kmalloc with kmemdup() in handle_connect_timeout()
staging: wilc1000: fix line over 80 chars in host_int_parse_assoc_resp_info()
staging: wilc1000: fix line over 80 characters in host_int_parse_join_bss_param()
staging: wilc1000: fix line over 80 chars issue in host_int_handle_disconnect()
staging: wilc1000: fix line over 80 characters issue in handle_connect()
staging: wilc1000: fix line over 80 chars in handle_key()
staging: wilc1000: remove 'ret' variable in handle_key()
staging: wilc1000: added complete() call for error scenario in handle_key()
staging: mt7621-eth: Fix quoted string split across lines
staging: mt7621-eth: Fix line over 80 characters
staging: mt7621-eth: Prefer unsigned int to bare use of unsigned
staging: bcm2835-camera: Replace open-coded idr with a struct idr.
staging: lustre: Use 'kvfree()' for memory allocated by 'kvzalloc()'
staging: lustre: Fix an error handling path in 'client_common_fill_super()'
staging: lustre: fix spelling mistake: "req_ulinked" -> "req_unlinked"
staging: lustre: o2iblnd: Fix crash in kiblnd_handle_early_rxs()
tty: Fix data race in tty_insert_flip_string_fixed_flag
tty: serial: msm_geni_serial: Fix TX infinite loop
serial: 8250_dw: Fix runtime PM handling
serial: 8250: omap: Fix idling of clocks for unused uarts
tty: serial: drop ATH79 specific SoC symbols
serial: 8250: Add missing rxtrig_bytes on Altera 16550 UART
serial/aspeed-vuart: fix a couple mod_timer() calls
serial: sh-sci: Use spin_{try}lock_irqsave instead of open coding version
serial: 8250_of: Add IO space support
tty/serial: atmel: use port->name as name in request_irq()
serial: imx: dma_unmap_sg buffers on shutdown
serial: imx: cleanup imx_uart_disable_dma()
tty: serial: qcom_geni_serial: Add early console support
tty: serial: qcom_geni_serial: Return IRQ_NONE for spurious interrupts
tty: serial: qcom_geni_serial: Use iowrite32_rep to write to FIFO
tty: serial: qcom_geni_serial: Remove unnecessary memory barrier
tty: serial: qcom_geni_serial: Initialize console port statically
tty: serial: qcom_geni_serial: Use min3 to find minimum of 3 values
tty: serial: qcom_geni_serial: Cleanup redundant code
tty: serial: qcom_geni_serial: Add comments for clarification
serial: samsung: fix maxburst parameter for DMA transactions
tty: serial: msm_serial: Add __maybe_unused to suspend/resume callbacks
earlycon: Remove hardcoded port->uartclk initialization in of_setup_earlycon
tty: pl011: Avoid spuriously stuck-off interrupts
staging: speakup: Fix coding style
media: gp8psk: don't abuse of GFP_DMA
media: rc: ite-cir: lower timeout and extend allowed timeout range
media: rc: winbond: do not send reset and timeout raw events on startup
media: rc: decoders do not need to check for transitions
media: rc: drivers should produce alternate pulse and space timing events
media: rc: default to idle on at startup or after reset
media: lirc-func.rst: new ioctl LIRC_GET_REC_TIMEOUT is not in a separate file
media: mceusb: add missing break
media: mceusb: filter out bogus timing irdata of duration 0
media: mceusb: MCE_CMD_SETIRTIMEOUT cause strange behaviour on device
tpm: replace kmalloc() + memcpy() with kmemdup()
tpm: replace kmalloc() + memcpy() with kmemdup()
tpm: fix use after free in tpm2_load_context()
drm/i915: Mark up nested spinlocks
tpm: reduce poll sleep time in tpm_transmit()
tpm_tis: verify locality released before returning from release_locality
soc: mediatek: remove unneeded semicolon
soc: mediatek: add a fixed wait for SRAM stable
soc: mediatek: introduce a CAPS flag for scp_domain_data
soc: mediatek: reuse regmap_read_poll_timeout helpers
ARM: dts: da850-lego-ev3: remove unnecessary gpio-keys properties
soc: rockchip: power-domain: Fix wrong value when power up pd with writemask
staging: most: video: fix build warnings
x86/asm/64: Micro-optimize __clear_user() - Use immediate constants
EDAC, skx: Fix skx_edac build error when ACPI_NFIT=m
staging: bcm2835-camera: Fix module section mismatch warnings.
powerpc/powernv: Fix memtrace build when NUMA=n
softirq/s390: Move default mutators of overwritten softirq mask to s390
softirq/x86: Switch to generic local_softirq_pending() implementation
softirq/sparc: Switch to generic local_softirq_pending() implementation
softirq/powerpc: Switch to generic local_softirq_pending() implementation
softirq/parisc: Switch to generic local_softirq_pending() implementation
softirq/ia64: Switch to generic local_softirq_pending() implementation
softirq/core: Consolidate default local_softirq_pending() implementations
softirq/core: Turn default irq_cpustat_t to standard per-cpu
softirq/sh: Use nmi_count() on /proc/interrupts print out
softirq/sparc: Convert local_softirq_pending() to use per-cpu op
softirq/ia64: Convert local_softirq_pending() to per-cpu ops
x86/pkeys: Do not special case protection key 0
x86/pkeys/selftests: Add a test for pkey 0
x86/pkeys/selftests: Save off 'prot' for allocations
x86/pkeys/selftests: Fix pointer math
x86/pkeys: Override pkey when moving away from PROT_EXEC
x86/pkeys/selftests: Fix pkey exhaustion test off-by-one
x86/pkeys/selftests: Add PROT_EXEC test
x86/pkeys/selftests: Factor out "instruction page"
x86/pkeys/selftests: Allow faults on unknown keys
x86/pkeys/selftests: Avoid printf-in-signal deadlocks
x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal
x86/pkeys/selftests: Stop using assert()
x86/pkeys/selftests: Give better unexpected fault error messages
x86/selftests: Add mov_to_ss test
x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI
x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
x86/boot/64/clang: Use fixup_pointer() to access '__supported_pte_mask'
xhci: Fix USB3 NULL pointer dereference at logical disconnect.
gpu: drm: qxl: Adding new typedef vm_fault_t
drm/virtio: add define for second capset to the virgl code.
drm/i915/execlists: Relax CSB force-mmio for VT-d
x86/cpu: Make alternative_msr_write work for 32-bit code
bus: arm-cci: remove unnecessary unreachable()
objtool: Support GCC 8 switch tables
objtool: Support GCC 8's cold subfunctions
objtool: Fix "noreturn" detection for recursive sibling calls
ARM: stm32: Select DMA, DMAMUX and MDMA support on STM32MP157C
ARM: multi_v7_defconfig: Add STM32F7 I2C & STM32 USBPHYC support
objtool, kprobes/x86: Sync the latest <asm/insn.h> header with tools/objtool/arch/x86/include/asm/insn.h
arm64: dts: exynos: Fix interrupt type for I2S1 device on Exynos5433
xfrm6: avoid potential infinite loop in _decode_session6()
batman-adv: enable B.A.T.M.A.N. V compilation by default
batman-adv: disable ethtool link speed detection when auto negotiation off
locking/lockdep: Move sanity check to inside lockdep_print_held_locks()
locking/lockdep: Use for_each_process_thread() for debug_show_all_locks()
sched/deadline/Documentation: Add overrun signal and GRUB-PA documentation
sched/core: Distinguish between idle_cpu() calls based on desired effect, introduce available_idle_cpu()
sched/wait: Include <linux/wait.h> in <linux/swait.h>
sched/numa: Stagger NUMA balancing scan periods for new threads
efi/capsule-loader: Don't output reset log when reset flags are not set
efi/x86: Ignore unrealistically large option ROMs
efi/x86: Fold __setup_efi_pci32() and __setup_efi_pci64() into one function
efi: Align efi_pci_io_protocol typedefs to type naming convention
efi/libstub/tpm: Make function efi_retrieve_tpm2_eventlog_1_2() static
efi: Decode IA32/X64 Context Info structure
efi: Decode IA32/X64 MS Check structure
efi: Decode additional IA32/X64 Bus Check fields
efi: Decode IA32/X64 Cache, TLB, and Bus Check structures
efi: Decode UEFI-defined IA32/X64 Error Structure GUIDs
efi: Decode IA32/X64 Processor Error Info Structure
efi: Decode IA32/X64 Processor Error Section
efi: Fix IA32/X64 Processor Error Record definition
efi/cper: Remove the INDENT_SP silliness
x86/xen/efi: Initialize UEFI secure boot state during dom0 boot
efi: Avoid potential crashes, fix the 'struct efi_pci_io_protocol_32' definition for mixed mode
drm: Fix render node numbering regression from control node removal.
ext4: handle errors on ext4_commit_super
ext4: do not update s_last_mounted of a frozen fs
ext4: factor out helper ext4_sample_last_mounted()
vfs: add the sb_start_intwrite_trylock() helper
net: ipv4: ipconfig: fix unused variable
qede: Fix ref-cnt usage count
3c59x: convert to generic DMA API
packet: in packet_snd start writing at link layer allocation
ext4: update mtime in ext4_punch_hole even if no blocks are released
drm/exynos/dsi: remove mode_set callback
netfilter: nf_tables: fix memory leak on error exit return
Revert "drm/i915/gvt: set max priority for gvt context"
drm/i915/gvt: let force_to_nonpriv cmd handler only valid for LRI cmd
drm/i915/gvt: do not return error on handling force_to_nonpriv registers
drm/i915/gvt: let NOPID be the default value of force_to_nonpriv registers
drm/i915/gvt: Remove disable_warn_untrack and print untracked mmio with debug level
ext4: add verifier check for symlink with append/immutable flags
fs: ext4: add new return type vm_fault_t
x86/cpufeature: Guard asm_volatile_goto usage for BPF compilation
fix breakage caused by d_find_alias() semantics change
x86/mtrr: Rename main.c to mtrr.c and remove duplicate prefixes
x86: Remove pr_fmt duplicate logging prefixes
x86/early-quirks: Rename duplicate define of dev_err
uprobes/x86: Prohibit probing on MOV SS instruction
kprobes/x86: Prohibit probing on exception masking instructions
x86/kexec: Avoid double free_page() upon do_kexec_load() failure
ALSA: hda/realtek - Clevo P950ER ALC1220 Fixup
arm64: defconfig: Increase CMA size for VC4
ALSA: usb: mixer: volume quirk for CM102-A+/102S+
vfat: simplify checks in vfat_lookup()
get rid of dead code in d_find_alias()
hwmon: (k10temp) Use API function to access System Management Network
x86/amd_nb: Add support for Raven Ridge CPUs
ALSA: hda: Add Lenovo C50 All in one to the power_save blacklist
x86/CPU: Move x86_cpuinfo::x86_max_cores assignment to detect_num_cpu_cores()
x86/Centaur: Report correct CPU/cache topology
x86/CPU: Move cpu_detect_cache_sizes() into init_intel_cacheinfo()
dt-bindings/gic-v3: Add documentation for MBI support
irqchip/gic-v3: Add PCI/MSI support to the GICv3 MBI sub-driver
irqchip/gic-v3: Add support for Message Based Interrupts as an MSI controller
irqchip/gic-v3: Mark the base irq domain as DOMAIN_BUS_WIRED
irqdomain: Let irq_find_host default to DOMAIN_BUS_WIRED
dma-iommu: Fix compilation when !CONFIG_IOMMU_DMA
irqchip/mvebu-gicp: Use level-triggered MSIs between ICU and GICP
genirq/msi: Limit level-triggered MSI to platform devices
genirq/msi: Allow level-triggered MSIs to be exposed by MSI providers
timer_list: Remove unused function pointer typedef
timers: Adjust a kernel-doc comment
ARM: dts: exynos: Update x and y properties for mms114 touchscreen
x86/build: Remove no-op macro VMLINUX_SYMBOL()
tick: Prefer a lower rating device only if it's CPU local device
ARM: exynos: Remove unused soc_is_exynos{4,5}
ARM: exynos: Remove static mapping of SCU SFR
ALSA: usb-audio: add boot quirk for Axe-Fx III
ALSA: core api: define offsets for TLV items
x86/CPU: Make intel_num_cpu_cores() generic
x86/CPU: Move cpu local function declarations to local header
drm/i915/gen9: Add WaClearHIZ_WM_CHICKEN3 for bxt and glk
drm/i915/selftests: scrub 64K
arm64: dts: exynos: Add mem-2-mem Scaler devices
ARM: dts: exynos: Add mem-2-mem Scaler devices
ACPI: Add missing prototype_for arch_post_acpi_subsys_init()
cpufreq: optimize cpufreq_notify_transition()
mtd: rawnand: use bit-wise majority to recover the ONFI param page
dt-bindings: timer: renesas, cmt: Document r8a774[35] CMT support
ALSA: hda/ca0132: Add new control changes for SBZ + R3Di
ALSA: hda/ca0132: add ca0132_alt_set_vipsource
ALSA: hda/ca0132: Add DSP Volume set and New mixers for SBZ + R3Di
ALSA: hda/ca0132: add alt_select_in/out for R3Di + SBZ
ALSA: hda/ca0132: add the ability to set src_id on scp commands
ALSA: hda/ca0132: Add dsp setup + gpio functions for r3di
ALSA: hda/ca0132: add dsp setup related commands for the sbz
ALSA: hda/ca0132: update core functions for sbz + r3di
ALSA: hda/ca0132: add extra init functions for r3di + sbz
ALSA: hda/ca0132: Add extra exit functions for R3Di and SBZ
ALSA: hda/ca0132: Add PCI region2 iomap for SBZ
ALSA: hda/ca0132: Add pincfg for SBZ + R3Di, add fp hp auto-detect
ALSA: hda/ca0132: R3Di and SBZ quirk entires + alt firmware loading
ALSA: control: fix a redundant-copy issue
ALSA: usb: add UAC3 BADD profiles support
ASoC: Intel: bytcr_rt5640: Fix compile error
spi: bcm-qspi: Fix build failure caused by spi_flash_read() API removal
ASoC: hisilicon: fix spelling mistake: "uknown" -> "unknown"
ext4: fix hole length detection in ext4_ind_map_blocks()
platform/x86: DELL_WMI use depends on instead of select for DELL_SMBIOS
platform/mellanox: mlxreg-hotplug: Document fixes for hotplug private data
platform_data/mlxreg: Document fixes for hotplug device
batman-adv: prevent TT request storms by not sending inconsistent TT TLVLs
batman-adv: Fix TT sync flags for intermediate TT responses
ext4: mark block bitmap corrupted when found
ext4: mark inode bitmap corrupted when found
ext4: add new ext4_mark_group_bitmap_corrupted() helper
ext4: fix wrong return value in ext4_read_inode_bitmap()
EDAC, ghes: Use BIT() macro
EDAC, ghes: Add DDR4 and NVDIMM memory types
ACPI / tables: improve comments regarding acpi_parse_entries_array()
staging: iio: tsl2x7x/tsl2772: move out of staging
ARM: dts: Fix DTC warnings
ARM: dts: Add second ATA to NAS4220B
ARM: dts: Fix bootargs for Gemini D-Link devices
ARM: dts: Fix the DNS-313 flash compatible
ARM: dts: Set DNS-685 LEDs to use better triggers
ARM: dtd: Set DNS-313 LEDs to use better triggers
ARM: dts: gemini: Fix "debounce-interval" property misspelling
staging: iio: tsl2x7x: rename driver to tsl2772
staging: iio: tsl2x7x: add range checking to tsl2x7x_write_raw
staging: iio: tsl2x7x: correct IIO_EV_INFO_PERIOD values
staging: iio: tsl2x7x: convert to use read_avail
staging: iio: tsl2x7x: use macro to populate tsl2X7X_device_info
staging: iio: tsl2x7x: turn chip off if IIO device registration fails
staging: iio: tsl2x7x: use direct returns
staging: iio: tsl2x7x: remove unnecessary whitespace
iio: accell: mma8452: Reduce sleep time when data not ready
iio: adc: ti-ads8688: add trigger and buffer support
EDAC, altera: Handle SDRAM Uncorrectable Errors on Stratix10
iio: potentiostat: lmp91000: add LMP91002 support
iio: magnetometer: mag3110: Add ability to run in continuous mode
Documentation: dt: edac: Move Altera SOCFPGA EDAC file
x86/bugs: Fix the parameters alignment and missing void
wil6210: rate limit wil_rx_refill error
wil6210: remove unused rx_reorder members
wil6210: Initialize reply struct of the WMI commands
wil6210: move WMI functionality out of wil_cfg80211_mgmt_tx
wil6210: change reply_size arg to u16 in wmi_call
wil6210: fix call to wil6210_disconnect during unload
wil6210: align to latest auto generated wmi.h
wil6210: disable tracing config option
ath10k: replace bit shifts with the BIT() macro for rx desc bits
ath10k: hw: make consistent usage of ATH10K_FW_DIR in paths
iio: adc: stm32-dfsdm: Add support for stm32mp1
ath10k: remove variables which set but not used
EDAC, altera: Add support for Stratix10 SDRAM EDAC
Documentation: dt: socfpga: Add Stratix10 ECC Manager binding
ath10k: fix return value check in wake_tx_q op
ath10k: snoc: Remove owner assignment from platform_driver
iio: imu: inv_mpu6050: make loop a do-while
ath10k: add quiet mode support for QCA6174/QCA9377
EDAC, ghes: Remove unused argument to ghes_edac_report_mem_error()
rsi: fix spelling mistake: "thead" -> "thread"
mt76x2: add a polling delay in mt76x2_mac_stop routine
wireless-drivers: Dynamically allocate struct station_info
ssb: make SSB_PCICORE_HOSTMODE depend on SSB = y
Revert "ssb: Prevent build of PCI host features in module"
bcma: fix buffer size caused crash in bcma_core_mips_print_irq()
mtd: cfi_cmdset_0002: Fix coding style issues
mtd: bcm47xxpart: improve handling TRX partition size
ps3disk: handle highmem pages
jsflash: handle highmem pages
aoe: handle highmem pages
mtd_blkdevs: handle highmem pages
memstick: don't call blk_queue_bounce_limit
DAC960: don't use block layer bounce buffers
mtip32xx: don't use block layer bounce buffers
net: phy: DP83TC811: Introduce support for the DP83TC811 phy
cxgb4: avoid schedule while atomic
cxgb4: enable inner header checksum calculation
cxgb4: Fix {vxlan/geneve}_port initialization
cxgb4: Add new T5 device id
ahci: enable full queue depth of 32
libata: don't clamp queue depth to ATA_MAX_QUEUE - 1
libata: add extra internal command
sata_nv: set host can_queue count appropriately
libata: remove assumption that ATA_MAX_QUEUE - 1 is the max
libata: use ata_tag_internal() consistently
libata: bump ->qc_active to a 64-bit type
libata: convert core and drivers to ->hw_tag usage
libata: introduce notion of separate hardware tags
net: doc: fix spelling mistake: "modrobe.d" -> "modprobe.d"
bonding: use the skb_get/set_queue_mapping
bonding: replace the return value type
dh key: get rid of stack allocated array for zeroes
dh key: get rid of stack allocated array
big key: get rid of stack array allocation
erspan: auto detect truncated ipv6 packets.
mlxsw: spectrum_span: Use a more fitting error code
mlxsw: spectrum_span: Rename misnamed variable l3edev
nvme/pci: Sync controller reset for AER slot_reset
svcrdma: Remove unused svc_rdma_op_ctxt
svcrdma: Persistently allocate and DMA-map Send buffers
svcrdma: Simplify svc_rdma_send()
svcrdma: Remove post_send_wr
svcrdma: Don't overrun the SGE array in svc_rdma_send_ctxt
svcrdma: Introduce svc_rdma_send_ctxt
svcrdma: Clean up Send SGE accounting
svcrdma: Refactor svc_rdma_dma_map_buf
svcrdma: Allocate recv_ctxt's on CPU handling Receives
svcrdma: Persistently allocate and DMA-map Receive buffers
svcrdma: Preserve Receive buffer until svc_rdma_sendto
svcrdma: Simplify svc_rdma_recv_ctxt_put
svcrdma: Remove sc_rq_depth
svcrdma: Introduce svc_rdma_recv_ctxt
svcrdma: Trace key RDMA API events
svcrdma: Trace key RPC/RDMA protocol events
xprtrdma: Prepare RPC/RDMA includes for server-side trace points
svcrdma: Use passed-in net namespace when creating RDMA listener
svcrdma: Add proper SPDX tags for NetApp-contributed source
nfsd: Do not refuse to serve out of cache
fs: don't scan the inode cache before SB_BORN is set
do d_instantiate/unlock_new_inode combinations safely
ARM: dts: BCM5301X: Switch D-Link DIR-885L to the new partitions syntax
arm64: dts: mt7622: add audio related device nodes
arm64: dts: mt7622: add High-Speed DMA device nodes
media: dvb_frontend: cleanup some coding style errors
udp: avoid refcount_t saturation in __udp_gso_segment()
tcp: switch pacing timer to softirq based hrtimer
nfsd: make nfsd4_scsi_identify_device retry with a larger buffer
soundwire: intel: Add audio DAI ops
soundwire: intel: Add stream initialization
soundwire: cdns: Add stream routines
soundwire: cdns: Add port routines
soundwire: Remove cdns_master_ops
drm/i915/oa: Check that OA is disabled before unpinning
ASoC: Add SoundWire stream programming interface
soundwire: Add stream configuration APIs
soundwire: Add bank switch routine
soundwire: Add helpers for ports operations
soundwire: Add Master and Slave port programming
soundwire: Add support for port management
soundwire: Add support for SoundWire stream management
Documentation: soundwire: Add more documentation
soundwire: Update email address for Vinod
crypto: vmx - Remove overly verbose printk from AES XTS init
crypto: vmx - Remove overly verbose printk from AES init routines
crypto: arm64/sha512-ce - yield NEON after every block of input
crypto: arm64/sha3-ce - yield NEON after every block of input
crypto: arm64/crct10dif-ce - yield NEON after every block of input
crypto: arm64/crc32-ce - yield NEON after every block of input
crypto: arm64/aes-ghash - yield NEON after every block of input
crypto: arm64/aes-bs - yield NEON after every block of input
crypto: arm64/aes-blk - yield NEON after every block of input
crypto: arm64/aes-ccm - yield NEON after every block of input
crypto: arm64/sha2-ce - yield NEON after every block of input
crypto: arm64/sha1-ce - yield NEON after every block of input
media: dvbdev: add a mutex protecting the "mdev" pointer
net: dsa: bcm_sf2: Get rid of PHYLIB functions
net: dsa: Plug in PHYLINK support
net: dsa: mv88e6xxx: add PHYLINK support
net: dsa: Eliminate dsa_slave_get_link()
net: dsa: bcm_sf2: Implement phylink_mac_ops
net: dsa: Add PHYLINK switch operations
net: phy: phylink: Poll link GPIOs
net: phy: phylink: Release link GPIO
net: phy: phylink: Use gpiod_get_value_cansleep()
arm: dts: mt7623: add MT7623N reference board with eMMC
arm: dts: mt7623: add MT7623A reference boards
arm: dts: mt7623: add MT7623A SoC level DTS
Revert "drm/i915/cnl: Use mmio access to context status buffer"
drm/i915/execlists: Use rmb() to order CSB reads
media: lgdt330x.h: fix compiler warning
media: rcar-vin: fix crop and compose handling for Gen3
media: Revert "media: rcar-vin: enable field toggle after a set number of lines for Gen3"
media: dvb_frontends: fix spelling mistake: "unexpcted" -> "unexpected"
media: usb: cx231xx-417: include linux/slab.h header
media: i2c: tda1997: Fix an error handling path 'tda1997x_probe()'
arm: dts: mt7623: extend common file reused by all boards with MT7623 SoCs
media: saa7146: fix error return from master_xfer
media: em28xx: Demote several dev_err to dev_info
media: cx231xx: Fix spelling mistake: "senario" -> "scenario"
media: cx23885: Add some missing register documentation
media: cx23885: Expand registers in dma tsport reg dump
media: cx23885: Ryzen DMA related RiSC engine stall fixes
media: cx23885: Use PCI and TS masks in irq functions
media: cx23885: Handle additional bufs on interrupt
media: v4l2-device.h: always expose mdev
media: v4l2-ioctl: replace IOCTL_INFO_STD with stub functions
media: hackrf: group device capabilities
media: xilinx: regroup caps on querycap
media: staging: media: use relevant lock
media: rcar_jpu: Add missing clk_disable_unprepare() on error in jpu_open()
arm: dts: mt6323: move node mt6323 leds to mt6323.dtsi
arm: dts: mt7623: add BTIF, HSDMA and SPI-NOR device nodes
arm: dts: mt7623: fix all Warnings (unit_address_vs_reg)
perf tools: Add missing newline when parsing empty BPF proggie
arm: dts: mt7623: fix available memory size on bananapi-r2
arm: dts: mt7623: fix invalid memory node being generated
media: dt-bindings: media: renesas-ceu: Add R-Mobile R8A7740
perf cs-etm: Remove redundant space
perf cs-etm: Support unknown_thread in cs_etm_auxtrace
powerpc/prom: Drop support for old FDT versions
powerpc/lib: Add alt patching test of branching past the last instruction
powerpc/lib: Rename ftr_fixup_test7 to ftr_fixup_test_too_big
powerpc/lib: Fix the feature fixup tests to actually work
powerpc/lib: Fix feature fixup test of external branch
Revert "arm64: Increase the max granular size"
ARM: dts: vexpress: replace '_' with '-' in node names
ARM: dts: vexpress: use standard gpio bindings for sys_{led,mci,flash}
drm: Match sysfs name in link removal to link creation
drm/i915/icl: WaForwardProgressSoftReset
drm/i915/icl: Wa_1406838659
drm/i915/icl: Wa_1604302699
drm/i915/icl: Wa_1406680159
drm/i915/icl: Wa_1405779004
drm/i915/icl: WaDisCtxReload
drm/i915/icl: WaCL2SFHalfMaxAlloc
drm/i915/icl: WaDisableCleanEvicts
drm/i915/icl: WaModifyGamTlbPartitioning
drm/i915/icl: WaL3BankAddressHashing
drm/i915/icl: WaGAPZPriorityScheme
drm/i915/icl: Enable Sampler DFR
drm/i915/icl: Introduce initial Icelake Workarounds
drm/i915/gtt: Trust the uncached store to flush wcb
staging: wlan-ng: fix block comment alignment in p80211metastruct.h
staging: bcm2835: Fix mmal_port_parameter_get() signed/unsigned warnings.
staging: bcm2835: Remove dead code related to framerate.
staging: bcm2835-camera: Fix warnings about string ops on v4l2 uapi.
staging: bcm2835-camera: Fix indentation of tables
staging: bcm2835-camera: Fix comment typos.
staging: bcm2835-camera: Replace BUG_ON with return error
staging: bcm2835-camera: Move struct vchiq_mmal_rect
staging: bcm2835-camera: Add multiple include protection
staging: bcm2835-camera: Remove V4L2/MMAL buffer remapping
staging: bcm2835-camera: Match MMAL buffer count to V4L2.
staging: bcm2835-camera: Remove bulk_mutex as it is not required
staging: bcm2835-camera: Allocate context once per buffer
staging: bcm2835-camera: Skip ISP pass to eliminate padding.
staging/bcm2835-camera: Set ourselves up as a platform driver.
staging/vc04_services: Register a platform device for the camera driver.
MAINTAINERS: Update Layerscape PCIe driver maintainers list
staging:r8188eu: Remove rx_handler_data unnecessary read
staging: lustre: lnet: add static to libcfs_dev declaration
staging: rtlwifi: fix spelling mistake: "traking" -> "tracking"
staging: most: video: remove debugging code
staging: rtl8723bs: Replace license boilerplate with SPDX identifiers
arm64: defconfig: update config for Rockchip PCIe
dt-bindings: PCI: rockchip: Add DT bindings for Rockchip PCIe EP driver
PCI: rockchip: Add EP driver for Rockchip PCIe controller
KVM: vmx: update sec exec controls for UMIP iff emulating UMIP
kvm: x86: Suppress CR3_PCID_INVD bit only when PCIDs are enabled
KVM: selftests: exit with 0 status code when tests cannot be run
KVM: hyperv: idr_find needs RCU protection
x86: Delay skip of emulated hypercall instruction
KVM: Extend MAX_IRQ_ROUTES to 4096 for all archs
drm/i915: Add NV12 as supported format for sprite plane
drm/i915: Add NV12 as supported format for primary plane
drm/i915: Add NV12 support to intel_framebuffer_init
drm/i915: Add skl_check_nv12_surface for NV12
drm/i915: Enable Display WA 0528
ARM: dts: sun8i: h3: Add SY8106A regulator to Orange Pi PC
drm/i915: Enable display workaround 827 for all planes, v2.
drm: Add and handle new aspect ratios in DRM layer
drm: Add aspect ratio parsing in DRM layer
drm: Expose modes with aspect ratio, only if requested
drm: Handle aspect ratio info in legacy modeset path
drm: Add DRM client cap for aspect-ratio
video/hdmi: Reject illegal picture aspect ratios
drm/edid: Don't send bogus aspect ratios in AVI infoframes
drm/edid: Fix cea mode aspect ratio handling
drm/edid: Use drm_mode_match_no_clocks_no_stereo() for consistentcy
drm/modes: Introduce drm_mode_match()
ARM: dts: imx51-zii-rdu1: fix touchscreen bindings
ASoC: compress: Fix up some trivial formatting issues
ASoC: compress: Only assign compr->ops->copy once
ASoC: qdsp6: q6common: Add qdsp6 helper functions
ASoC: qdsp6: dt-bindings: Add q6asm dt bindings
ASoC: qdsp6: dt-bindings: Add q6adm dt bindings
ASoC: qdsp6: dt-bindings: Add q6afe dt bindings
ASoC: qdsp6: dt-bindings: Add q6core dt bindings
soc: qcom: Add APR bus driver
soc: qcom dt-bindings: Add APR bus bindings
ASoC: amd: removed separate byte count variables for playback and capture
ASoC: amd: added byte count register offset variables to rtd
ASoC: amd: dma config parameters changes
spi: Get rid of the spi_flash_read() API
mtd: spi-nor: Use the spi_mem_xx() API
spi: ti-qspi: Implement the spi_mem interface
spi: bcm-qspi: Implement the spi_mem interface
spi: Make support for regular transfers optional when ->mem_ops != NULL
spi: Extend the core to ease integration of SPI memory controllers
ASoC: cirrus: i2s: IRQ-based stream watchdog
ARM: ep93xx: i2s: Add IRQ to platform device resources
ASoC: cirrus: i2s: Stop enabling I2S2 and I2S3 FIFOs
ASoC: rt5645: Add platform-data for Lenovo Ideapad Mixx 320
ASoC: rt5645: Add platform-data for Lenovo Ideapad Mixx 310
ASoC: omap: Delete the obsolete omap-pcm
ASoC: davinci-mcasp: Convert to use the sdma-pcm instead of omap-pcm
ASoC: Intel: bytcr_rt5640: Use device-property for differential mics
ASoC: Intel: bytcr_rt5640: Configure PLL1 before using it
ASoC: rt5640: Add button press support
ASoC: rt5640: Add jack-detect support
ASoC: rt5640: Allow specifying dmic data pins through device-properties
ASoC: rt5640: Move checking of device-properties to component probe callback
ASoC: rt5640: Remove unused rt5640_platform_data
ASoC: rt5640: Add devicetree-bindings for dmic, jack-detect
ASoC: rt5640: Remove is_sys_clk_from_pll, it has ordering issues
ASoC: zx-i2s: fix spelling mistake: "timeing" -> "timing"
ARM: dts: meson8m2: add support for the Tronsmart MXIII Plus
ARM: dts: meson8: add the uart_A pins
ARM: dts: meson: add support for the Meson8m2 SoC
ARM: meson: add support for the Meson8m2 SoCs
samples: bpf: convert some XDP samples from bpf_load to libbpf
tools: bpf: don't complain about no kernel version for networking code
tools: bpf: improve comments in libbpf.h
tools: bpf: move the event reading loop to libbpf
samples: bpf: compile and link against full libbpf
samples: bpf: rename struct bpf_map_def to avoid conflict with libbpf
tools: bpftool: use PERF_SAMPLE_TIME instead of reading the clock
bpf: sync tools bpf.h uapi header
selftests/bpf: Fix bash reference in Makefile
PCI: Add "pci=noats" boot parameter
tools: bpf: handle NULL return in bpf_prog_load_xattr()
samples/bpf: Add example of ipv4 and ipv6 forwarding in XDP
bpf: Provide helper to do forwarding lookups in kernel FIB table
net/ipv6: Add fib lookup stubs for use in bpf helper
net/ipv6: Update fib6 tracepoint to take fib6_info
net/ipv6: Add fib6_lookup
net/ipv6: Refactor fib6_rule_action
net/ipv6: Extract table lookup from ip6_pol_route
net/ipv6: Rename rt6_multipath_select
net/ipv6: Rename fib6_lookup to fib6_node_lookup
bpf, doc: clarification for the meaning of 'id'
rocker: Postpone filtering of !added_by_user FDB
tls: Fix tls_device initialization
cxgb4: fix the wrong conversion of Mbps to Kbps
mlxsw: spectrum_span: Support VLAN under mirror-to-gretap
mlxsw: spectrum_span: Support mirror-to-VLAN
mlxsw: reg: Add MLXSW_REG_MPAT_SPAN_TYPE_REMOTE_ETH
net: bridge: Allow bridge master in br_vlan_get_info()
PCI: Clean up whitespace in quirks.c
PCI: Reorder quirks infrastructure code
tcp: Add mark for TIMEWAIT sockets
net: ipv4: remove define INET_CSK_DEBUG and unnecessary EXPORT_SYMBOL
docs: ranoops.rst: fix location of ramoops.txt
scripts/documentation-file-ref-check: rewrite it in perl with auto-fix mode
docs: uio-howto.rst: use a code block to solve a warning
mm, THP, doc: Add document for thp_swpout/thp_swpout_fallback
w1: w1_io.c: fix a kernel-doc warning
Documentation/process/posting: wrap text at 80 cols
docs: admin-guide: add cgroup-v2 documentation
Revert "Documentation/features/vm: Remove arch support status file for 'pte_special'"
liquidio: bump up driver version to 1.7.2 to match newer NIC firmware
liquidio: monitor all of Octeon's cores in watchdog thread
net/ipv6: fix lock imbalance in ip6_route_del()
net: hns3: refactor the loopback related function
net: hns3: fix for cleaning ring problem
net: hns3: remove add/del_tunnel_udp in hns3_enet module
net: hns3: Fix for setting mac address when resetting
hv_netvsc: typo in NDIS RSS parameters structure
x86/bugs: Make cpu_show_common() static
x86/bugs: Fix __ssb_select_mitigation() return type
drivers: net: davinci_mdio: prevent spurious timeout
net: dsa: mv88e6xxx: add RMU disable op
net: dsa: mv88e6xxx: set device number
net: dsa: mv88e6xxx: add a cascade port op
net/mlx4_core: Use msi_x module param to limit num of MSI-X irqs
net/mlx4_core: Add PCI calls for suspend/resume
net/mlx4_core: Report driver version to FW
net: dsa: fix added_by_user switchdev notification
tipc: clean up removal of binding table items
tun: Do SIOCGSKNS out of rtnl_lock()
net/udp: Update udp_encap_needed static key to modern api
net: Update generic_xdp_needed static key to modern api
net: Update netstamp_needed static key to modern api
net: Update [e/in]gress_needed static key to modern api
net/sock: Update memalloc_socks static key to modern api
net/ipv4: Update ip_tunnel_metadata_cnt static key to modern api
it's SB_BORN, not MS_BORN...
clk: qcom: Base rcg parent rate off plan frequency
libata: Fix command retry decision
libata: Honor RQF_QUIET flag
libata: Make ata_dev_set_mode() less verbose
libata: Fix ata_err_string()
libata: Fix comment typo in ata_eh_analyze_tf()
sata_nv: don't use block layer bounce buffer
perf annotate: Display all available events on --stdio
perf test: "probe libc's inet_pton" fails on s390 due to missing inline
net: dsa: mv88e6xxx: 88E6141/6341 SERDES support
net: stmmac: Add support for U32 TC filter using Flexible RX Parser
net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
microchip_t1: Add driver for Microchip LAN87XX T1 PHYs
sbitmap: warn if using smaller shallow depth than was setup
kyber-iosched: update shallow depth when setting up hardware queue
bfq-iosched: update shallow depth to smallest one used
sbitmap: fix missed wakeups caused by sbitmap_queue_get_shallow()
bfq-iosched: remove unused variable
bfq: calculate shallow depths at init time
bfq-iosched: don't worry about reserved tags in limit_depth
blk-mq: don't call into depth limiting for reserved tags
HISI LPC: Add ACPI UART support
HISI LPC: Re-Add ACPI child enumeration support
HISI LPC: Stop using MFD APIs
cpupower: fix spelling mistake: "logilename" -> "logfilename"
block, bfq: postpone rq preparation to insert or merge
xfs: rename on-disk dquot counter zap functions
xfs: replace XFS_QMOPT_DQALLOC with a simple boolean
xfs: remove direct calls to _qm_dqread
xfs: refactor xfs_qm_dqtobp and xfs_qm_dqalloc
xfs: refactor incore dquot initialization functions
xfs: fetch dquots directly during quotacheck
xfs: split out dqget for inodes from regular dqget
xfs: remove unnecessary xfs_qm_dqattach parameter
xfs: delegate dqget input checks to helper function
xfs: refactor dquot cache handling
xfs: refactor XFS_QMOPT_DQNEXT out of existence
xfs: don't spray logs when dquot flush/purge fail
xfs: release new dquot buffer on defer_finish error
xfs: don't discard on free of unwritten extents
xfs: skip online discard during eofblocks trims
xfs: add bmapi nodiscard flag
xfs: get rid of the log item descriptor
xfs: add some more debug checks to buffer log item reuse
xfs: fix double ijoin in xfs_reflink_clear_inode_flag()
xfs: fix double ijoin in xfs_reflink_cancel_cow_range
xfs: fix double ijoin in xfs_inactive_symlink_rmt()
xfs: don't assert fail with AIL lock held
xfs: adder caller IP to xfs_defer* tracepoints
xfs: add tracing to high level transaction operations
xfs: log item flags are racy
xfs: add missing rmap error return
ext4: use raw i_version value for ea_inode
ext4: use XATTR_CREATE in ext4_initxattrs()
ext4: make function ‘ext4_getfsmap_find_fixed_metadata’ static
drm: panel-orientation-quirks: Convert to use match_string() helper
ACPICA: Convert acpi_gbl_hardware lock back to an acpi_raw_spinlock
ACPICA: provide abstraction for raw_spinlock_t
ACPI / CPPC: Fix invalid PCC channel status errors
ACPI / AC: Add quirk to avoid checking for PMIC with native driver
ACPI / battery: Add quirk to avoid checking for PMIC with native driver
ACPI / LPSS: Only call pwm_add_table() for Bay Trail PWM if PMIC HRV is 2
mtip32xx: Fix an error handling path in 'mtip_pci_probe()'
batman-adv: Avoid race in TT TVLV allocator helper
PCI/AER: Add TLP header information to tracepoint
spi: remove forgotten CONFIG_SPI_BCM53XX
powerpc: Make it clearer that systbl check errors are errors
powerpc/syscalls: timer_create can be handle by perfectly normal COMPAT_SYS_SPU
powerpc/syscalls: kill ppc32_select()
powerpc/syscalls: Add COMPAT_SPU_NEW() macro
powerpc/syscalls: switch rtas(2) to SYSCALL_DEFINE
powerpc/syscalls: signal_{32, 64} - switch to SYSCALL_DEFINE
powerpc/syscalls: Switch trivial cases to SYSCALL_DEFINE
powerpc/livepatch: Implement reliable stack tracing for the consistency model
powerpc/watchdog: provide more data in watchdog messages
powerpc/watchdog: don't update the watchdog timestamp if a lockup is detected
powerpc/xive: prepare all hcalls to support long busy delays
powerpc/xive: shutdown XIVE when kexec or kdump is performed
powerpc/xive: fix hcall H_INT_RESET to support long busy delays
powerpc/64/kexec: fix race in kexec when XIVE is shutdown
powerpc/config: powernv_defconfig updates
powerpc: wii_defconfig: Disable BCMA support
powerpc: wii_defconfig: Enable Wii SDHCI driver
powerpc: wii_defconfig: Enable GPIO-related options
powerpc: wii_defconfig: Disable Ethernet driver support code
powerpc/watchdog: fix typo 'can by' to 'can be'
powerpc/pseries: hcall_exit tracepoint retval should be signed
media: update/fix my e-mail on some places
dt-bindings: PCI: rockchip: Rename rockchip-pcie.txt to rockchip-pcie-host.txt
PCI: rockchip: Split out common function to init controller
media: dvbsky: use just one mutex for serializing device R/W ops
PCI: rockchip: Split out rockchip_pcie_parse_dt() to parse DT
PCI: rockchip: Separate common code from RC driver
qm1d1b0004: fix a warning about an unused default_cfg var
i2c: designware: fix poll-after-enable regression
arm64: dts: juno/rtsm: re-structure motherboard includes
arm64: dts: juno: replace '_' with '-' in node names
PM / core: Drop unused internal inline functions for sysfs
PM / core: Drop unused internal functions for pm_qos sysfs
PM / core: Drop unused internal inline functions for wakeirqs
PM / core: Drop internal unused inline functions for wakeups
firmware: arm_scmi: simplify exit path by returning on error
firmware: arm_scmi: improve exit paths and code readability
firmware: arm_scmi: remove unnecessary bitmap_zero
firmware: arm_scmi: drop unused `con_priv` structure member
firmware: arm_scmi: rename scmi_xfer_{init,get,put}
cpufreq: s3c2440: fix spelling mistake: "divsiors" -> "divisors"
firmware: arm_scmi: rename get_transition_latency and add_opps_to_device
arm64: dts: juno: Fix "debounce-interval" property misspelling
powerpc/pkeys: Drop private VM_PKEY definitions
cpufreq: speedstep: fix speedstep_detect_processor()'s return type
cpufreq: add suspend/resume support in Armada 37xx DVFS driver
cpufreq: armada: Free resources on error paths
cpufreq: dt: Allow platform specific suspend/resume callbacks
PM / wakeup: Only update last time for active wakeup sources
PM / wakeup: Use seq_open() to show wakeup stats
PM / core: Use dev_printk() and symbols in suspend/resume diagnostics
PM / core: Simplify initcall_debug_report() timing
PM / core: Remove unused initcall_debug_report() arguments
ARM: dts: da850-evm: use phandles to extend nodes
drm/exynos: Add driver for Exynos Scaler module
drm/exynos: fimc: Convert driver to IPP v2 core API
drm/exynos: gsc: Convert driver to IPP v2 core API
drm/exynos: rotator: Convert driver to IPP v2 core API
drm/exynos: ipp: Add IPP v2 framework
selftests/bpf: ignore build products
selftests/bpf: add architecture-agnostic headers
ARM: dts: meson8b: odroid-c1: enable the IR receiver
ARM: dts: meson8b: odroid-c1: sort nodes alphabetically
tpm: tpm_crb: relinquish locality on error path.
dt-bindings: arm: amlogic: add support for the Tronsmart MXIII Plus
dt-bindings: arm: amlogic: add support for the Meson8m2 SoC
ARM64: dts: meson-axg: enable AP6255 wifi module
ARM64: dts: meson: add MMC resets
ARM64: dts: meson-axg: add an 32K alt aoclk
ARM64: dts: meson-axg: add tdm pins
ARM64: dts: meson-axg: add GPIO interrupt controller support
ARM64: dts: meson-axg: enable the eMMC controller
remoteproc/ste: remove abandoned include file
remoteproc/davinci: use octal permissions for module_param()
remoteproc/davinci: prepare and unprepare the clock where needed
remoteproc/davinci: add the missing retval check for clk_enable()
media: omap3isp: Don't use GFP_DMA
media: omap3isp: Remove useless NULL check in omap3isp_stat_config
media: omap3isp: support 64-bit version of omap3isp_stat_data
media: media-device: fix ioctl function types
media: imx-csi: fix burst size for 16 bit
media: imx: add 16-bit grayscale support
media: Revert cleanup ktime_set() usage
media: Use ktime_set() in pt1.c
Input: add support for ChipOne icn8505 based touchscreens
media: pvrusb2: delete unneeded include
media: saa7164: Fix driver name in debug output
media: renesas-ceu: Set mbus_fmt on subdev operations
media: cec: Kconfig coding style issue
media: intel-ipu3: Kconfig coding style issue
media: em28xx: Fix DualHD broken second tuner
media: videobuf-dma-sg: Fix dma_{sync,unmap}_sg() calls
media: media/usbvision: fix spelling mistake: "compresion" -> "compression"
media: coda: set colorimetry on coded queue
media: coda: do not try to propagate format if capture queue busy
media: coda: reuse coda_s_fmt_vid_cap to propagate format in coda_s_fmt_vid_out
media: sta2x11: Use gpio_is_valid() and remove unnecessary check
media: platform: Use gpio_is_valid()
media: v4l2-dev.h: fix doc warning
media: vpbe_venc: potential uninitialized variable in ven_sub_dev_init()
media: cec-gpio: use GPIOD_OUT_HIGH_OPEN_DRAIN
media: platform: am437x: simplify getting .drvdata
media: videobuf: Change return type to vm_fault_t
media: vcodec: fix ptr_ret.cocci warnings
media: v4l2-core: Rename array 'video_driver' to 'video_drivers'
IB/{hfi1, qib, rdmavt}: Move logic to allocate receive WQE into rdmavt
IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support
IB/hfi1: Create common functions for affinity CPU mask operations
IB/hfi1: Optimize kthread pointer locking when queuing CQ entries
IB/Hfi1: Read CCE Revision register to verify the device is responsive
IB/hfi1: Rework fault injection machinery
IB/{hfi1, qib}: Add handling of kernel restart
IB/hfi1: Reorder incorrect send context disable
IB/hfi1: Return correct value for device state
IB/hfi1: Fix fault injection init/exit issues
IB/hfi1: Complete check for locally terminated smp
IB/hfi1: Return actual error value from program_rcvarray()
IB/hfi1: Prevent LNI hang when LCB can't obtain lanes
media: entity: fix spelling for media_entity_get_fwnode_pad()
media: intel-ipu3: cio2: Handle IRQs until INT_STS is cleared
Documentation/spec_ctrl: Do some minor cleanups
proc: Use underscores for SSBD in 'status'
x86/bugs: Rename _RDS to _SSBD
ARM: dts: BCM5301X: Relicense Asus RT-AC87U file to the GPL 2.0+ / MIT
ARM: dts: BCM5301X: Add DT for Luxul XAP-1610
ARM: dts: BCM5301X: Add DT for Luxul XWR-3150 V1
memory: brcmstb: dpfe: Remove need for dpfe_dev
ARM: brcmstb: Add support for the V7 memory map
ARM: add Broadcom Brahma-B15 main ID definition
ARM: add Broadcom Brahma-B53 main ID definition
ARM: Allow this header to be included by assembly files
MAINTAINERS: add keyword for devicetree overlay notifiers
ipmi: Remove the proc interface
xfs: bmap debugging should never panic the system
xfs: defer agfl frees from directory op transactions
xfs: defer frees from common inode allocation paths
xfs: defer agfl frees from inode inactivation
xfs: defer agfl block frees from deferred ops processing context
xfs: defer agfl block frees when dfops is available
xfs: create agfl block free helper function
xfs: print specific dqblk that failed verifiers
xfs: add full xfs_dqblk verifier
xfs: pass full xfs_dqblk to repair during quotacheck
xfs: check type in quota verifier during quotacheck
xfs: remove unused flags arg from xfs_dquot_verify
xfs: clean up locking in xfs_file_iomap_begin
xfs: simplify xfs_file_iomap_begin() logic
iomap: Use FUA for pure data O_DSYNC DIO writes
iomap: iomap_dio_rw() handles all sync writes
xfs: move generic_write_sync calls inwards
xfs: don't retry xfs_buf_find on XBF_TRYLOCK failure
xfs: make xfs_buf_incore out of line
xfs: trace ATTR flags in xattr tracepoints
xfs: validate allocated inode number
xfs: validate cached inodes are free when allocated
drm/tilcdc: Fix setting clock divider for omap-l138
firmware: arm_scmi: fix kernel-docs documentation
firmware: arm_scmi: improve code readability using bitfield accessor macros
arm64: dts: juno: fix OF graph endpoint node names
arm64: dts: juno: fix missing Coresight STM graph connection
ARM: dts: vexpress: Restructure motherboard includes
clk: renesas: cpg-mssr: Add support for R-Car E3
nfp: bpf: allow zero-length capabilities
xsk: fix 64-bit division
IB/mlx5: posting klm/mtt list inline in the send queue for reg_wr
RDMA/hns: Drop local zgid in favor of core defined variable
IB/core: Reuse gid_table_release_one() in table allocation failure
IB/core: Make gid_table_reserve_default() return void
nfp: bpf: support setting the RX queue index
bpf: xdp: allow offloads to store into rx_queue_index
fm10k: don't protect fm10k_queue_mac_request by fm10k_host_mbx_ready
fm10k: warn if the stat size is unknown
fm10k: use macro to avoid passing the array and size separately
fm10k: use variadic arguments to fm10k_add_stat_strings
fm10k: reduce duplicate fm10k_stat macro code
bpf: btf: Tests for BPF_OBJ_GET_INFO_BY_FD and BPF_BTF_GET_FD_BY_ID
bpf: btf: Update tools/include/uapi/linux/btf.h with BTF ID
bpf: btf: Some test_btf clean up
bpf: btf: Add struct bpf_btf_info
bpf: btf: Introduce BTF ID
bpf: btf: Avoid WARN_ON when CONFIG_REFCOUNT_FULL=y
eeprom: at24: fix retrieving the at24_chip_data structure
iw_cxgb4: Fix an error handling path in 'c4iw_get_dma_mr()'
RDMA/i40iw: Avoid panic when reading back the IRQ affinity hint
RDMA/i40iw: Avoid reference leaks when processing the AEQ
RDMA/i40iw: Avoid panic when objects are being created and destroyed
RDMA/hns: Fix the bug with NULL pointer
RDMA/hns: Set NULL for __internal_mr
RDMA/hns: Enable inner_pa_vld filed of mpt
RDMA/hns: Set desc_dma_addr for zero when free cmq desc
RDMA/hns: Fix the bug with rq sge
RDMA/hns: Not support qp transition from reset to reset for hip06
RDMA/hns: Add return operation when configured global param fail
RDMA/hns: Update convert function of endian format
RDMA/hns: Load the RoCE dirver automatically
RDMA/hns: Bugfix for rq record db for kernel
RDMA/hns: Add rq inline flags judgement
brd: Mark as non-rotational
nvmet,rxe: defer ip datagram sending to tasklet
i40iw: Use correct address in dst_neigh_lookup for IPv6
i40iw: Fix memory leak in error path of create QP
RDMA/mlx5: Use proper spec flow label type
RDMA/mlx5: Don't assume that medium blueFlame register exists
IB/hfi1: Use after free race condition in send context error path
arm64: defconfig: enable rockchip efuse
block: consolidate struct request timestamp fields
block: move blk_stat_add() to __blk_mq_end_request()
block: use ktime_get_ns() instead of sched_clock() for cfq and bfq
block: get rid of struct blk_issue_stat
block: replace bio->bi_issue_stat with bio-specific type
block: pass struct request instead of struct blk_issue_stat to wbt
block: move some wbt helpers to blk-wbt.c
mtd: rawnand.h: use nested union kernel-doc markups
fm10k: setup VLANs for l2 accelerated macvlan interfaces
mtd: rawnand: fsl_ifc: fix FSL NAND driver to read all ONFI parameter pages
MAINTAINERS: Remove bouncing @mellanox.com addresses
IB: remove redundant INFINIBAND kconfig dependencies
drm/i915/psr: Check if VBT says PSR can be enabled.
tpm/st33zp24: Fix spelling mistake in macro ST33ZP24_TISREGISTER_UKNOWN
tpm: Move eventlog declarations to its own header
tpm: Move shared eventlog functions to common.c
tpm: Move eventlog files to a subdirectory
tpm: Add explicit endianness cast
tpm: st33zp24: remove redundant null check on chip
tpm: move the delay_msec increment after sleep in tpm_transmit()
mwifiex: increase TX threashold to avoid TX timeout during ED MAC test
mwifiex: delete unneeded include
brcmfmac: Add support for bcm43364 wireless chipset
rtlwifi: remove duplicate definition of antenna number for btcoex
ASoC: uniphier: add digital output volume for UniPhier sound system
ASoC: soc-core: remove legacy_dai_naming from snd_soc_register_dais()
ASoC: soc-core: remove snd_soc_component_add_unlocked()
ASoC: soc.h: merge CONFIG_DEBUG_FS
ASoC: convert platform explanation to component
ASoC: add component_list_show()
ASoC: remove Codec related code
ASoC: remove unneeded .pcm_new/free
ASoC: remove .get_regmap
ASoC: remove codec reg_cache
ASoC: remove codec hw_write/control_data
regulator: add support for SY8106A regulator
regulator: add binding for the SY8106A voltage regulator
ASoC: omap-mcbsp: Convert to use the sdma-pcm instead of omap-pcm
ASoC: omap-mcpdm: Convert to use the sdma-pcm instead of omap-pcm
ASoC: omap-dmic: Convert to use the sdma-pcm instead of omap-pcm
ASoC: omap-hdmi-audio: Convert to use the sdma-pcm instead of omap-pcm
ASoC: omap: Introduce the generic_dmaengine_pcm based sdma-pcm
ASoC: uniphier: evea: use DAPM to change source of line-in
ASoC: nau8824: fix spelling mistake: "semaphone" -> "semaphore"
s390: remove closung punctuation from spectre messages
s390: introduce compile time check for empty .bss section
s390/early: move functions which may not access bss section to extra file
s390/early: get rid of #ifdef CONFIG_BLK_DEV_INITRD
s390/early: get rid of memmove_early
s390/cpum_sf: Add data entry sizes to sampling trailer entry
perf: fix invalid bit in diagnostic entry
spi: remove the older/duplicated bcm53xx driver
ASoC: fix return value check in mt6351_codec_driver_probe()
drm/i915/guc: Make submission tasklet hardirq safe
drm/i915/execlists: Make submission tasklet hardirq safe
drm/i915/selftests: Only switch to kernel context when locked
netfilter: nf_tables: bogus EBUSY in chain deletions
netfilter: nft_compat: fix handling of large matchinfo size
netfilter: nft_compat: prepare for indirect info storage
swiotlb: update comments to refer to physical instead of virtual addresses
ARM: dts: sun8i: Add enable-method for SMP support for the A83T SoC
ARM: dts: sun8i: a83t: Add CCI-400 node
ARM: dts: sun8i: Add R_CPUCFG device node for the A83T dtsi
ARM: dts: sun8i: Add CPUCFG device node for A83T dtsi
drm/i915/selftests: Create mock_engine() under struct_mutex
dmaengine: sprd: Use devm_ioremap_resource() to map memory
swiotlb: remove the CONFIG_DMA_DIRECT_OPS ifdefs
swiotlb: move the SWIOTLB config symbol to lib/Kconfig
mips,unicore32: swiotlb doesn't need sg->dma_length
arm: don't build swiotlb by default
PCI: remove CONFIG_PCI_BUS_ADDR_T_64BIT
arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig
arch: remove the ARCH_PHYS_ADDR_T_64BIT config symbol
dma-mapping: move the NEED_DMA_MAP_STATE config symbol to lib/Kconfig
scatterlist: move the NEED_SG_DMA_LENGTH config symbol to lib/Kconfig
iommu-helper: move the IOMMU_HELPER config symbol to lib/
iommu-helper: mark iommu_is_span_boundary as inline
iommu-helper: unexport iommu_area_alloc
iommu-common: move to arch/sparc
PM / OPP: Remove dev_pm_opp_{un}register_get_pstate_helper()
PM / OPP: Get performance state using genpd helper
PM / Domain: Implement of_genpd_opp_to_performance_state()
PM / Domain: Add support to parse domain's OPP table
PM / Domain: Add struct device to genpd
PM / OPP: Implement dev_pm_opp_get_of_node()
PM / OPP: Implement of_dev_pm_opp_find_required_opp()
PM / OPP: Implement dev_pm_opp_of_add_table_indexed()
PM / OPP: "opp-hz" is optional for power domains
PM / OPP: dt-bindings: Make "opp-hz" optional for power domains
udp: Do not copy destructor if one is not present
udp: Add support for software checksum and GSO_PARTIAL with GSO offload
udp: Partially unroll handling of first segment and last segment
udp: Do not pass checksum as a parameter to GSO segmentation
udp: Do not pass MSS as parameter to GSO segmentation
udp: Record gso_segs when supporting UDP segmentation offload
mm/pkeys, x86, powerpc: Display pkey in smaps if arch supports pkeys
mm/pkeys: Add an empty arch_pkeys_enabled()
x86/pkeys: Add arch_pkeys_enabled()
x86/pkeys: Move vma_pkey() into asm/pkeys.h
mm/pkeys, powerpc, x86: Provide an empty vma_pkey() in linux/pkeys.h
mm/pkeys: Remove include of asm/mmu_context.h from pkeys.h
mm, powerpc, x86: introduce an additional vma bit for powerpc pkey
drm/exynos: Allow DRM_EXYNOS on s5pv210.
drm/exynos: fimd: Add support for S5PV210 FIMD variant
dt-bindings: dsa: Remove unnecessary #address/#size-cells
gpu: drm: exynos: Change return type to vm_fault_t
net: phy: sfp: handle cases where neither BR, min nor BR, max is given
Input: gamecon - avoid using __set_bit() for capabilities
Input: as5011 - avoid using __set_bit() for capabilities
Input: xpad - avoid using __set_bit() for capabilities
Input: xpad - fix some coding style issues
libata: Blacklist some Sandisk SSDs for NCQ
i2c: busses: remove superfluous ignoring of children for RPM
i2c: axxia: enable clock before calling clk_get_rate()
blk-wbt: throttle discards like background writes
blk-wbt: pass in enum wbt_flags to get_rq_wait()
blk-wbt: account any writing command as a write
block: break discard submissions into the user defined size
Documentation: refcount-vs-atomic: Update reference to LKMM doc.
drm/i915: Annotate timeline lock nesting
drm/i915: Remove unused i915_flip tracepoints
drm/dp: Correctly mask DP_TRAINING_AUX_RD_INTERVAL values for DP 1.4
drm/dp: Add DP_DPCD_REV_XX to drm_dp_helper
clk: qcom: Add Global Clock controller (GCC) driver for SDM845
clk: qcom: Add support for BRANCH_HALT_SKIP flag for branch clocks
clk: qcom: Add DT bindings for SDM845 gcc clock controller
clk: qcom: Simplify gdsc status checking logic
clk: qcom: Configure the RCGs to a safe source as needed
firmware: arm_scmi: Use after free in scmi_create_protocol_device()
docs: driver-api: add clk documentation
docs: core-api: add circular-buffers documentation
docs: core-api: add cachetlb documentation
docs: admin-guide: add bcache documentation
docs: */index.rst: Add newer documents to their respective index.rst
apparmor: fix '*seclen' is never less than zero
docs/vm: move numa_memory_policy.rst to Documentation/admin-guide/mm
docs/vm: numa_memory_policy: s/Linux memory policy/NUMA memory policy/
docs/vm: numa_memory_policy: formatting and spelling updates
Documentation/features/vm: Remove arch support status file for 'pte_special'
Documentation/features/lib: Remove arch support status file for 'strncasecmp'
Documentation/features/locking: Use '!RWSEM_GENERIC_SPINLOCK' as Kconfig for 'rwsem-optimized'
Documentation/features/core: Add arch support status files for 'cBPF-JIT' and 'eBPF-JIT'
Documentation/features: Refresh the arch support status files in place
Documentation/features: Add script that refreshes the arch support status files in place
Documentation: block: cmdline-partition.txt fixes and additions
vfio: fix documentation
doc: botching-up-ioctls: Make it clearer why structs must be padded
mm, powerpc, x86: define VM_PKEY_BITx bits if CONFIG_ARCH_HAS_PKEYS is enabled
bnxt_en: Always forward VF MAC address to the PF.
bnxt_en: Read phy eeprom A2h address only when optical diagnostics is supported.
bnxt_en: Check unsupported speeds in bnxt_update_link() on PF only.
bnxt_en: Fix firmware message delay loop regression.
drm/i915: Disable tasklet scheduling across initial scheduling
drm/i915: Flush submission tasklet after bumping priority
drm/i915/selftests: Return to kernel context after each test
s390/cpum_sf: ensure sample frequency of perf event attributes is non-zero
ARM: shmobile: r8a7794: alt: add EEPROM to DTS
arm64: dts: stratix10: add sdram ecc
mac80211: ethtool: avoid 32 bit multiplication overflow
ARM: sun8i: smp: Add support for A83T
ARM: sun9i: smp: Add is_a83t field
ARM: sun9i: smp: Rename clusters's power-off
ARM: shmobile: Convert file to use cntvoff
ARM: sunxi: Add initialization of CNTVOFF
ARM: smp: Add initialization of CNTVOFF
ARM: sunxi: smp: Move assembly code into a file
ARM: Allow this header to be included by assembly files
drm/i915: don't leak the pin_map on error
netfilter: nf_tables: don't assume chain stats are set when jumplabel is set
netfilter: x_tables: add module alias for icmp matches
netfilter: prefer nla_strlcpy for dealing with NLA_STRING attributes
netfilter: core: add missing __rcu annotation
ipvs: fix stats update from local clients
ipvs: fix refcount usage for conns in ops mode
netfilter: nf_tables: nft_compat: fix refcount leak on xt module
netfilter: bridge: stp fix reference to uninitialized data
staging: mt7621-eth: Alignment should match open parenthesis
staging: mt7621-eth: Add missing blank lines after declarations
staging: mt7621-eth: Remove unnecessary blank lines
staging: mt7621-eth: Fix compilation error
staging: lustre: o2iblnd: Enable Multiple OPA Endpoints between Nodes
staging: ks7010: Remove unnecessary limit checks
drm/i915/selftests: Flush GPU activity before completing live_contexts
drm/i915/selftests: Refactor common flush_test()
staging: most: usb: remove local variable
staging: most: usb: fix usb_disconnect race condition
staging: most: usb: don't set URB_ZERO_PACKET flag for synchronous data
staging: most: dim2: use device to allocate coherent memory
staging: most: dim2: read clock speed from the device
staging: most: dim2: use device tree
staging: most: cdev: fix race condition
staging: most: dim2: fix startup sequence
staging: most: cdev: fix function return value
staging: most: usb: add ep number to log
staging: most: cdev: fix chrdev_region leak
staging: most: cdev: avoid warning about potentially uninitialized variable
staging: most: sound: call snd_card_new with struct device
staging: most: make interface drivers allocate coherent memory
staging: most: i2c: reduce parameters inconsistency
staging: most: i2c: remove redundant list_mutex
staging: most: i2c: remove redundant is_open
staging: most: i2c: trace real polling rate
staging: most: i2c: prevent zero delay polling
staging: most: i2c: avoid polling in case of misconfig
staging: most: i2c: do not wait in work function
staging: most: i2c: shorten lifetime of IRQ handler
staging: most: aim-sound: add flexible format support
staging: most: add channel property dbr_size
staging: most: i2c: remove unnecessary poison_channel call
staging: most: i2c: prevent division by zero
staging: most: dim2: remove clock speed processing from the HDM
staging: most: allocate only all requested memory
staging: android: ion: Remove unnecessary blank line
staging: android: ion: Fix license identifier comment format
mac80211: Support the new cfg80211 TXQ stats API
drm/i915/userptr: reject zero user_size
staging: android: vsoc: Fix ending '(' warnings in vsoc_probe_device
staging: android: vsoc: Fix ending '(' warnings in vsoc_ioctl
staging: android: vsoc: Fix ending '(' warnings in do_destroy_fd_scoped_permission
staging: android: vsoc: Fix ending '(' warnings in function defintions
staging: android: Clean up license identifiers
staging: android: Kconfig; Remove excessive hyphens
cfg80211: Expose TXQ stats and parameters to userspace
drm/xen-front: Fix loop timeout
drm/xen-front: fix xen_drm_front_shbuf_alloc() error handling
drm/xen-front: checking for NULL instead of IS_ERR
staging: lustre: fix error deref in ll_splice_alias().
staging: lustre: move remaining code from linux-module.c to module.c
staging: lustre: move misc-device registration closer to related code.
staging: lustre: llite: remove redundant lookup in dump_pgcache
staging: lustre: llite: use more private data in dump_pgcache
staging: lustre: fold lu_object_new() into lu_object_find_at()
staging: lustre: lu_object: move retry logic inside htable_lookup
staging: lustre: lu_object: discard extra lru count.
staging: lustre: make struct lu_site_bkt_data private
PCI: rcar: Reuse generic pci_parse_request_of_pci_ranges() function
dma-debug: remove CONFIG_HAVE_DMA_API_DEBUG
dma-debug: unexport dma_debug_resize_entries and debug_dma_dump_mappings
dma-debug: simplify counting of preallocated requests
dma-debug: move initialization to common code
PCI: endpoint: Replace mdelay with usleep_range() in pci_epf_test_write()
mmc: tegra: remove redundant return statement
drm/i915/execlists: Cache the priolist when rescheduling
drm/i915/execlists: Drop unused parameter to lookup_priolist()
drm/i915: Don't request a bug report for unsafe module parameters
mmc: core: Drop unused define for timeout
mmc: rtsx_usb: Enable MMC_CAP_ERASE to allow erase/discard/trim requests
mmc: rtsx_usb: Use the provided busy timeout from the mmc core
mmc: rtsx_usb: Use MMC_CAP2_NO_SDIO
mmc: core: Implement ->sw_reset bus ops for SDIO
mmc: core: Share internal function to set initial signal voltage
mmc: core: Export a function mmc_sw_reset() to allow soft reset of cards
mmc: core: Rename ->reset() bus ops to ->hw_reset()
mmc: core: Re-factor some code for SDIO re-initialization
seccomp: Don't special case audited processes when logging
seccomp: Audit attempts to modify the actions_logged sysctl
seccomp: Configurable separator for the actions_logged string
seccomp: Separate read and write code for actions_logged sysctl
scsi: tcmu: refactor nl wr_cache attr with new helpers
scsi: tcmu: refactor nl dev_size attr with new helpers
scsi: tcmu: refactor nl dev_cfg attr with new nl helpers
scsi: tcmu: refactor rm_device cmd with new nl helpers
scsi: tcmu: refactor add_device cmd with new nl helpers
scsi: tcmu: add new netlink events helpers
scsi: 3w-xxxx: fix a missing-check bug
scsi: 3w-9xxx: fix a missing-check bug
scsi: mpt3sas: fix header path in ioctl documentation
scsi: mpt3sas: remove obsolete path "drivers/scsi/mpt2sas/" from MAINTAINERS
scsi: megaraid: silence a static checker bug
scsi: mptsas: fix spelling mistake: "matchs" -> "matches"
scsi: lpfc: fix spelling mistakes: "mabilbox" and "maibox"
scsi: qla2xxx: remove the unused tcm_qla2xxx_cmd_wq
scsi: mptfusion: fix spelling mistake: "initators" -> "initiators"
scsi: hisi_sas: workaround a v3 hw hilink bug
scsi: hisi_sas: add readl poll timeout helper wrappers
scsi: hisi_sas: remove redundant handling to event95 for v3
scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
scsi: hisi_sas: update PHY linkrate after a controller reset
scsi: hisi_sas: stop controller timer for reset
scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
scsi: hisi_sas: fix PI memory size
scsi: hisi_sas: check host frozen before calling "done" function
scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
scsi: hisi_sas: optimise the usage of DQ locking
scsi: lpfc: Comment cleanup regarding Broadcom copyright header
scsi: lpfc: update driver version to 12.0.0.3
scsi: lpfc: Enhance log messages when reporting CQE errors
scsi: lpfc: Fix up log messages and stats counters in IO submit code path
scsi: lpfc: Driver NVME load fails when CPU cnt > WQ resource cnt
scsi: lpfc: Handle new link fault code returned by adapter firmware.
scsi: lpfc: Correct fw download error message
scsi: lpfc: enhance LE data structure copies to hardware
scsi: lpfc: Change IO submit return to EBUSY if remote port is recovering
PM / OPP: dt-bindings: Rename "required-opp" as "required-opps"
soc/tegra: pmc: Don't allocate struct tegra_powergate on stack
scsi: qedf: Update version number to 8.33.16.20
scsi: qedf: Update copyright for 2018
scsi: qedf: Add more defensive checks for concurrent error conditions
scsi: qedf: Set the UNLOADING flag when removing a vport
scsi: qedf: Add additional checks when restarting an rport due to ABTS timeout
scsi: qedf: If qed fails to enable MSI-X fail PCI probe
scsi: qedf: Honor default_prio module parameter even if DCBX does not converge
scsi: qedf: Improve firmware debug dump handling
scsi: qedf: Remove setting DCBX pending during soft context reset
scsi: qedf: Add task id to kref_get_unless_zero() debug messages when flushing requests
scsi: qedf: Check if link is already up when receiving a link up event from qed
scsi: qedf: Return request as DID_NO_CONNECT if MSI-X is not enabled
scsi: qedf: Release RRQ reference correctly when RRQ command times out
scsi: qedf: Honor priority from DCBX FCoE App tag
scsi: qedf: Add dcbx_not_wait module parameter so we won't wait for DCBX convergence to start discovery
scsi: qedf: Sanity check FCoE/FIP priority value to make sure it's between 0 and 7
scsi: qedf: Add check for offload before flushing I/Os for target
scsi: qedf: Fix VLAN display when printing sent FIP frames
scsi: qedf: Add missing skb frees in error path
scsi: qedf: Increase the number of default FIP VLAN request retries to 60
scsi: qedf: Synchronize rport restarts when multiple ELS commands time out
scsi: qla2xxx: Update driver version to 10.00.00.07-k
scsi: qla2xxx: Fix TMF and Multi-Queue config
scsi: qla2xxx: Prevent relogin loop by removing stale code
scsi: qla2xxx: Remove stale debug value for login_retry flag
scsi: qla2xxx: Use predefined get_datalen_for_atio() inline function
scsi: qla2xxx: Fix Inquiry command being dropped in Target mode
scsi: qla2xxx: Move GPSC and GFPNID out of session management
scsi: qla2xxx: Reduce redundant ADISC command for RSCNs
scsi: qla2xxx: Delete session for nport id change
scsi: qla2xxx: Fix Rport and session state getting out of sync
scsi: qla2xxx: Fix sending ADISC command for login
scsi: mpt3sas: Update driver version "25.100.00.00"
scsi: mpt3sas: fix possible memory leak.
scsi: mpt3sas: For NVME device, issue a protocol level reset
scsi: mpt3sas: Update MPI Headers
scsi: mpt3sas: Report Firmware Package Version from HBA Driver.
scsi: mpt3sas: Cache enclosure pages during enclosure add.
scsi: mpt3sas: Allow processing of events during driver unload.
scsi: mpt3sas: Increase event log buffer to support 24 port HBA's.
scsi: mpt3sas: Added support for SAS Device Discovery Error Event.
scsi: mpt3sas: Enhanced handling of Sense Buffer.
scsi: mpt3sas: Optimize I/O memory consumption in driver.
scsi: mpt3sas: Lockless access for chain buffers.
scsi: mpt3sas: Pre-allocate RDPQ Array at driver boot time.
scsi: mpt3sas: Bug fix for big endian systems.
net-next/hinic: add pci device ids for 25ge and 100ge card
flow_dissector: do not rely on implicit casts
net: core: rework basic flow dissection helper
scsi: zfcp: fix infinite iteration on ERP ready list
net: ipv6/gre: Add GRO support
net: ipv6: Fix typo in ipv6_find_hdr() documentation
qed: Add support for Unified Fabric Port.
qed: Add support for multi function mode with 802.1ad tagging.
qed: Remove unused data member 'is_mf_default'.
qed*: Refactor mf_mode to consist of bits.
net/9p: correct the variable name in v9fs_get_trans_by_name() comment
vlan: correct the file path in vlan_dev_change_flags() comment
liquidio: support use of ethtool to set link speed of CN23XX-225 cards
net: 3com: 3c59x: irq save variant of ISR
net: 3com: 3c59x: Pull locking out of ISR
net: 3com: 3c59x: Move boomerang/vortex conditional into function
net: u64_stats_sync: Remove functions without user
selftests: net: add udpgso* to TEST_GEN_FILES
drm/i915/icl: compute the MG PLL registers
drm/i915/icl: compute the combo PHY (DPLL) DP registers
drm/i915/icl: compute the combo PHY (DPLL) HDMI registers
drm/i915/icl: add basic support for the ICL clocks
PCI/AER: Unify error bit printing for native and CPER reporting
PCI: Check whether bridges allow access to extended config space
loop: remember whether sysfs_create_group() was done
block: Shorten interrupt disabled regions
block: Remove redundant WARN_ON()
block: don't disable interrupts during kmap_atomic()
PCI: pciehp: Add quirk for Command Completed errata
dt-bindings: define vendor prefix for Wi2Wi, Inc.
dt-bindings: Add vendor prefix for Avnet, Inc.
PCI: Add Qualcomm vendor ID
mac80211: average ack rssi support for data frames
cfg80211: average ack rssi support for data frames
s390: use expoline thunks in the BPF JIT
s390: extend expoline to BC instructions
s390: remove indirect branch from do_softirq_own_stack
s390: move spectre sysfs attribute code
s390/kernel: use expoline for indirect branches
s390/ftrace: use expoline for indirect branches
cfg80211: Call reg_notifier for self managed hints conditionally
nl80211: Add wmm rule attribute to NL80211_CMD_GET_WIPHY dump command
mac80211: add api to set CSA counter in mac80211
mac80211: remove pointless flags=0 assignment
mac80211: ethtool: memset the whole sinfo struct to 0
mac80211: clean up rate info bandwidth setting
mac80211: rename rtap_vendor_space to rtap_space
ARM: dts: s3c64xx: Remove skeleton.dtsi and fix DTC warnings for /memory
ARM: dts: s3c24xx: Fix unnecessary address/size cells DTC warnings
ARM: dts: s3c24xx: Remove skeleton.dtsi and fix DTC warning for /memory
ARM: dts: cygnus: fix irq type for arm global timer
ARM: dts: BCM5301X: Relicense Buffalo files to the GPL 2.0+ / MIT
iio: adc: stm32-adc: add support for STM32MP1
dt-bindings: iio: stm32-adc: add support for STM32MP1
iio: iio.h: use nested struct support on kernel-doc markup
nfsd: restrict rd_maxcount to svc_max_payload in nfsd_encode_readdir
rdmacg: Convert to use match_string() helper
ata: hpt37x: Convert to use match_string() helper
Revert "ARM: dts: logicpd-som-lv: Fix pinmux controller references"
drm/i915: Add documentation to gen9_set_dc_state()
nvme/pci: Hold controller reference during async probe
dma-buf: Remove unneeded stubs around sync_debug interfaces
xprtrdma: Make rpcrdma_sendctx_put_locked() a static function
xprtrdma: Remove rpcrdma_buffer_get_rep_locked()
xprtrdma: Remove rpcrdma_buffer_get_req_locked()
xprtrdma: Remove rpcrdma_ep_{post_recv, post_extra_recv}
xprtrdma: Move Receive posting to Receive handler
xprtrdma: Clean up Receive trace points
xprtrdma: Make rpc_rqst part of rpcrdma_req
xprtrdma: Introduce ->alloc_slot call-out for xprtrdma
SUNRPC: Add a ->free_slot transport callout
SUNRPC: Initialize rpc_rqst outside of xprt->reserve_lock
xprtrdma: Fix max_send_wr computation
xprtrdma: Create transport's CM ID in the correct network namespace
xprtrdma: Try to fail quickly if proto=rdma
xprtrdma: Add proper SPDX tags for NetApp-contributed source
fixdep: suppress consecutive / from file paths in dependency list files
platform/x86: thinkpad_acpi: silence false-positive-prone pr_warn
platform/x86: thinkpad_acpi: do not report thermal sensor state for tablet mode switch
platform/x86: thinkpad_acpi: silence HKEY 0x6032, 0x60f0, 0x6030
Revert "powerpc/powernv: Increase memory block size to 1GB on radix"
powerpc/nohash: Use IS_ENABLED() to simplify __set_pte_at()
powerpc/nohash: Remove _PAGE_BUSY
powerpc/nohash: Remove hash related code from nohash headers.
tee: check shm references are consistent in offset/size
tee: shm: fix use-after-free via temporarily dropped reference
mtd: move code adding (registering) partitions to the parse_mtd_partitions()
dmaengine: sprd: Fix potential NULL dereference in sprd_dma_probe()
s390/lib: use expoline for indirect branches
s390/crc32-vx: use expoline for indirect branches
s390: move expoline assembler macros to a header
PCI: remove PCI_DMA_BUS_IS_PHYS
net: remove the PCI_DMA_BUS_IS_PHYS check in illegal_highdma
ide: remove the PCI_DMA_BUS_IS_PHYS check
ide: kill ide_toggle_bounce
scsi: reduce use of block bounce buffers
dma-direct: try reallocation with GFP_DMA32 if possible
swiotlb: remove an unecessary NULL check
staging: greybus: Remove unused local variable
staging: board: Replace license boilerplate with SPDX identifiers
staging: wilc1000: Remove unnecessary array index check
staging: wilc1000: Remove useless function
staging: wilc1000: Remove unused variables
staging: r8822be: fix typo in variable name "offest" -> "offset"
staging: mt7621-dts: update nor-flash info for gnubee1
staging: mt7621-pci: remove some dead code.
staging: mt7621-pci: remove unnecessary resource details.
staging: mt7621-pci: remove conditional compilation.
staging: mt7621-pci: white-space cleanups.
staging: mt7621-pci: improve interrupt mapping
staging: mt7621-spi: remove unused lock.
staging: mt7621-eth: Lock is never unlocked.
staging: mt7621-mmc: Remove unused barrier macros
staging: mt7621-mmc: Cleanup includes
staging: mt7621-mmc: Remove unused macro HOST_MAX_NUM
staging: mt7621-mmc: Always use linked DMA mode
staging: mt7621-mmc: Change return value of msdc_dma_config to void
staging: mt7621-mmc: Don't disables DMA
staging: mt7621-mmc: Inline function msdc_set_blknum
staging: mt7621-mmc: Remove initialisation in msdc_dma_config
staging: mt7621-mmc: Remove redundant check for card status
staging: mt7621-mmc: Do not BUG() if mrq set in msdc_ops_request
staging: mt7621-mmc: Remove unused sdio irq code
staging: mt7621-mmc: Remove unused field abort from msdc_host
staging: mt7621-mmc: Fix error number assignment
staging: mt7621-mmc: Remove unused variable dma_xfer from msdc_host
staging: mt7621-mmc: Remove non-DMA transfer code
staging: mt7621-mmc: Remove unused global dma_size
staging: mt7621-mmc: Remove transfer mode setting variable
staging: mt7621-mmc: Remove transfer mode setting from proc
staging: mt7621-mmc: Remove unused static msdc_regs
staging: mt7621-mmc: Replace macro sdr_get_field with function
staging: mt7621-mmc: Replace macro sdr_set_field with function
staging: mt7621-mmc: Remove function uffs
staging: mt7621-mmc: Remove unused macros sdr_{read,write}16
staging: mt7621-mmc: Remove unused macro msdc_init_gpd_ex
staging: mt7621-mmc: Remove unused field clk_drv from msdc_hw
staging: mt7621-mmc: Remove unused field cmd_drv from msdc_hw
staging: mt7621-mmc: Remove unused field dat_drv from msdc_hw
staging: mt7621-mmc: Remove unused field data_edge from msdc_hw
staging: mt7621-mmc: Remove unused field cmd_edge from msdc_hw
staging: mt7621-mmc: Fix typo in function parameters
staging: vc04_services: Remove stack hog issue from TODO
staging: vchiq_shim: Remove unnecessary break
staging: vchiq_arm: remove unnecessary return
staging: vchiq_2835_arm: Fix whitespace issue in create_pagelist
staging: vc04_services: Remove defines from Makefile
staging: vchiq_arm: Make index variable more self-explaining
staging: vchiq_arm: Rework second abort criterion
staging: vchiq_arm: Clear VLA warning
staging: vchiq_arm: print real dump limit
staging: speakup: Add pause command used on switching to graphical mode
staging: rtlwifi: Replace license boilerplate with SPDX identifiers
staging: ks7010: review local variable types in hostif_phy_information_confirm
staging: ks7010: use u32 instead of unsigned int in hostif_bss_scan_confirm
staging: ks7010: use u16 instead of unsigned short in hostif_connect_indication
staging: ks7010: use u16 instead of unsigned short in hostif_data_indication
staging: ks7010: use u16 instead of unsigned short in hostif_event_check
staging: ks7010: refactor LOCAL_EEPROM_SUM case in hostif_mib_get_confirm
staging: ks7010: use CIRC_CNT_TO_END macro in cnt_smeqbody
staging: ks7010: refactor ks_get_wireless_stats function
staging: ks7010: refactor ks_wlan_set_mlme function
staging: ks7010: refactor ks_wlan_set_phy_type function
staging: ks7010: refactor ks_wlan_set_sleep_mode function
staging: ks7010: use ether_addr_copy in ks_wlan_net_start
staging: ks7010: use ether_addr_copy in ks_wlan_set_mac_address
staging: ks7010: refactor hostif_sme_power_mgmt_set function
staging: ks7010: change parameter types in hostif_power_mgmt_request
staging: ks7010: refactor hostif_sme_set_rsn function
staging: ks7010: add blank line between after definitions
staging: ks7010: fix some style issues in ks_hostif.c
staging: ks7010: factor out send_request_to_device function
staging: ks7010: move WLAN_EID_DS_PARAMS to different place inside switch
staging: ks7010: use ether_addr_copy in get_ap_information function
staging: ks7010: use ether_addr_copy to copy ethernet address sa_data
staging: ks7010: change type for rsn_enabled in wpa_status struct
staging: ks7010: remove non sense comments in ks_hostif.c source file
staging: ks7010: avoid two long lines in hostif_sme_mode_setup
staging: ks7010: move two preprocessor definitions to ks_wlan.h
staging: ks7010: use ether_addr_copy in get_current_ap
staging: ks7010: add new helpers to achieve mib set request and simplify code
staging: ks7010: change parameter types and reorder them in hostif_mib_set_request
staging: ks7010: change some casts from uint8_t to u8 in ks_hostif header
staging: ks7010: conver MIB attributes preprocessor defs into an enum
staging: ks7010: convert MIB preprocessor defs into an enum
staging: ks7010: clean SME_MIC_FAILURE_REQUEST case in hostif_sme_execute
staging: ks7010: remove nonsense comment in ks_wlan.h file
staging: ks7010: change local variable type in ks_wlan_hw_rx
staging: ks7010: refactor ks7010_sme_enqueue_events function
staging: ks7010: use the same parameter for 'event' in hostif_sme_enqueue
staging: ks7010: change local variable type in ks7010_sdio_init_irqs
staging: ks7010: change some local variables type in ks_sdio_interrupt
staging: ks7010: change local variable type in ks7010_rw_function
staging: ks7010: change local variable type in _ks_wlan_hw_power_save
staging: ks7010: use u8 instead of unsigned char in write_to_device function
staging: ks7010: remove missing WPS preprocessor conditional code
staging: ks7010: change netdev_dbg msg to avoid a long line
staging: ks7010: avoid ks_sdio_card dependency in ks_wlan header
staging: ks7010: move tx and rx queues definitions into ks_wlan.h header
staging: ks7010: add SPDX identifiers to all files
staging: rtl8723bs: fix spelling mistakes: "dismatch" and "Inviation"
staging: wlan-ng: fix SPDX comment style in headers
staging: wlan-ng: fix line-break style issue
staging: wlan-ng: add missing parameter name to prototype
staging: wlan-ng: prism2sta: fix indent coding-style issues
staging: sm750fb: add drm development branch details
ion: Consider ion pool pages as indirectly reclaimable
staging: lustre: obdclass: guarantee all keys filled
staging: lustre: obdclass: hoist locking in lu_context_exit()
staging: lustre: obdclass: change spinlock of key to rwlock
staging: lustre: o2iblnd: fix race at kiblnd_connect_peer
staging: lustre: o2iblnd: Fix FastReg map/unmap for MLX5
staging: lustre: llite: fix potential missing-check bug when copying lumv
staging: lustre: ldlm: store name directly in namespace.
ARM: dts: imx7s: Pass the 'fsl,sec-era' property
thermal: mediatek: use of_device_get_match_data()
thermal: exynos: remove trip reporting to user-space
thermal: exynos: remove unused defines for Exynos5433
thermal: exynos: cleanup code for enabling threshold interrupts
thermal: exynos: check return values of ->get_trip_[temp, hyst] methods
thermal: exynos: move trips setting to exynos_tmu_initialize()
thermal: exynos: set trips in ascending order in exynos7_tmu_initialize()
thermal: exynos: do not use trips structure directly in ->tmu_initialize
thermal: exynos: add exynos*_tmu_set_[trip,hyst]() helpers
thermal: exynos: move IRQs clearing to exynos_tmu_initialize()
thermal: exynos: clear IRQs later in exynos4412_tmu_initialize()
thermal: exynos: make ->tmu_initialize method void
thermal: exynos: remove threshold_code checking from exynos4210_tmu_initialize()
thermal: exynos: fix trips limit checking in get_th_reg()
thermal: exynos: use sanitize_temp_error() in exynos7_tmu_initialize()
thermal: exynos: check STATUS register in exynos_tmu_initialize()
thermal: exynos: always check for critical trip points existence
thermal: exynos: always check for trips points existence
thermal: exynos: fix setting rising_threshold for Exynos5433
thermal: samsung: Remove support for Exynos5440
thermal: rcar_gen3_thermal: add r8a77965 support
dt-bindings: thermal: rcar-gen3-thermal: add r8a77965
thermal: rcar_gen3_thermal: update max temperature clamp
thermal: rcar_gen3_thermal: Update calculation formula due to HW evaluation
netfilter: nft_dynset: fix timeout updates on 32bit
netfilter: ctnetlink: export nf_conntrack_max
netfilter: extract Passive OS fingerprint infrastructure from xt_osf
thermal: tegra: Nuke clk_{readl,writel} helpers
thermal: uniphier: add UniPhier PXs3 support
dt-bindings: thermal: uniphier: add a compatible string for PXs3
thermal: exynos: remove separate exynos_tmu.h header file
thermal: exynos: remove parsing of samsung, tmu_cal_type property
thermal: exynos: remove parsing of samsung,tmu_gain property
thermal: exynos: remove parsing of samsung, tmu_reference_voltage property
thermal: exynos: remove parsing of samsung, tmu[_min, _max]_efuse_value properties
thermal: exynos: remove parsing of samsung, tmu_noise_cancel_mode property
netfilter: nf_tables: Provide NFT_{RT,CT}_MAX for userspace
thermal: exynos: remove parsing of samsung, tmu_[first, second]_point_trim properties
netfilter: nf_nat: remove unused ct arg from lookup functions
netfilter: ip6t_srh: extend SRH matching for previous, next and last SID
netfilter: nft_numgen: enable hashing of one element
thermal: exynos: remove parsing of samsung, tmu_default_temp_offset property
thermal: exynos: remove unused "type" field from struct exynos_tmu_platform_data
netfilter: nft_numgen: add map lookups for numgen statements
thermal: exynos: Read soc_type from match data
thermal: exynos: Propagate error value from tmu_read()
thermal: exynos: Reading temperature makes sense only when TMU is turned on
thermal: imx: add i.MX7 thermal sensor support
thermal: mediatek: add support for MT7622 SoC
dt-bindings: thermal: add binding for MT7622 SoC
rtc: stm32: get DBP register and mask from DT st, syscfg property
dt-bindings: rtc: update stm32-rtc documentation for st, syscfg property
rtc: stm32: fix alarm interrupt flags by removing IRQF_TRIGGER_RISING
rtc: stm32: fix copyright and adopt SPDX identifier
staging: iio: tsl2x7x: add device ids for code readability
staging: iio: tsl2x7x: correct integration time and lux equation
staging: iio: tsl2x7x: use IIO_CONST_ATTR for calibscale_available
staging: iio: tsl2x7x: move calibscale_available attribute to IIO_INTENSITY channel
staging: iio: tsl2x7x: don't setup event handlers if interrupts are not configured
staging: iio: tsl2x7x: add range checking to three sysfs attributes
staging: iio: tsl2x7x: use GPL-2.0+ SPDX license identifier
iio: ti-dac5571: Add DT binding documentation
iio: dac: add TI DAC5571 family support
iio: imu: inv_mpu6050: minor wording fixes
iio: imu: inv_mpu6050: fix user_ctrl register overwritten
iio: imu: inv_mpu6050: skip first sample when gyro is on
iio: imu: inv_mpu6050: fix possible deadlock between mutex and iio
iio: imu: inv_mpu6050: use i2c mux only for chip with i2c aux bus
x86/CPU/AMD: Derive CPU topology from CPUID function 0xB when available
x86/CPU: Modify detect_extended_topology() to return result
x86/CPU/AMD: Calculate last level cache ID from number of sharing threads
x86/CPU: Rename intel_cacheinfo.c to cacheinfo.c
perf/events/amd/uncore: Fix amd_uncore_llc ID to use pre-defined cpu_llc_id
x86/CPU/AMD: Have smp_num_siblings and cpu_llc_id always be present
x86/MCE: Fix stack out-of-bounds write in mce-inject.c: Flags_read()
x86/MCE: Enable MCE broadcasting on new Centaur CPUs
x86/vdso: Remove unused file
media: include/video/omapfb_dss.h: use IS_ENABLED()
media: cx231xx: Fix recursive dependency
media: gspca: Stop using GFP_DMA for buffers for USB bulk transfers
media: meye: allow building it with COMPILE_TEST on non-x86
media: cxd2880: Changed version information
media: cxd2880:Optimized spi drive current and BER/PER set/get condition
media: cxd2880-spi: Modified how to declare structure
media: docs: update em28xx and cx23885 cardlists
media: em28xx: Add new dvb-t board ":Zolid Hybrid Tv Stick"
media: em28xx: merge two identical cases inside a switch()
media: rcar-vin: enable field toggle after a set number of lines for Gen3
media: rcar-vin: add support for MEDIA_BUS_FMT_UYVY8_1X16
media: rcar-vin: fix null pointer dereference in rvin_group_get()
media: rcar-vin: remove generic gen3 compatible string
media: cx88: Get rid of spurious call to cx8800_start_vbi_dma()
media: dvb_net: fix dvb_net_tx()'s return type
media: lgdt3306a: fix lgdt3306a_search()'s return type
drm: rcar-du: Track dma-buf fences
media: frontends: fix ops get_algo()'s return type
drm: rcar-du: Add R8A77965 support
drm: rcar-du: Allow DU groups to work with hardware indexing
drm: rcar-du: Split CRTC handling to support hardware indexing
dt-bindings: display: renesas: Add R-Car M3-N HDMI TX DT bindings
drm: rcar-du: Use the correct naming for ODPM fields in DEFR6
dt-bindings: display: renesas: du: Document the r8a77965 bindings
dt-bindings: display: renesas: du: Increase indent in output table
drm: rcar-du: Use NULL for table initialisation
drm: rcar-du: of: Include header to define prototypes
media: drivers: media: platform: make VIDEO_VIU depend on I2C
media: ngene: fix ci_tsfix modparam description typo
media: ngene: cleanup superfluous I2C adapter evaluation
media: pt1: use #ifdef CONFIG_PM_SLEEP instead of #if
media: include/media: fix missing | operator when setting cfg
media: cx231xx: remove a now unused var
media: cx231xx: Add I2C_MUX dependency
media: cx231xx: Remove RC_CORE dependency
media: cx231xx: Remove unnecessary parameter clear
media: cx231xx: Update 955Q from dvb attach to i2c device
media: cx231xx: Switch to using new dvb i2c helpers
media: cx231xx: Ignore an i2c mux adapter
media: cx231xx: Style fix for struct zero init
media: cx231xx: Use board profile values for addresses
media: cx231xx: Fix several incorrect demod addresses
media: dvb-usb: Replace GFP_ATOMIC with GFP_KERNEL
media: pt1: fix strncmp() size warning
media: dvb: earth-pt1: replace schedule_timeout with usleep_range
media: dvb: earth-pt1: add support for suspend/resume
media: dvb: earth-pt1: decompose pt1 driver into sub drivers
media: tuners: add new i2c driver for Sharp qm1d1b0004 ISDB-S tuner
media: dvb-frontends/dvb-pll: add tda6651 ISDB-T pll_desc
media: dvb-usb-v2/gl861: ensure USB message buffers DMA'able
media: dvb-usb-v2/gl861: use usleep_range() for short delay
media: dvb-frontends/dvb-pll: add tua6034 ISDB-T tuner used in Friio
media: dvb-frontends/dvb-pll: add i2c driver support
crypto: ghash-clmulni - fix spelling mistake: "acclerated" -> "accelerated"
crypto: caam - fix size of RSA prime factor q
crypto: tcrypt - Remove VLA usage
crypto: arm64 - add support for SM4 encryption using special instructions
crypto: sm4 - export encrypt/decrypt routines to other drivers
hwrng: stm32 - fix pm_suspend issue
hwrng: stm32 - define default state for rng driver
crypto: ccree - use proper printk format
crypto: ccree - enable support for hardware keys
ARM: dts: k2g-evm: Add DCAN dt nodes
firmware: ti_sci: Switch to SPDX Licensing
clk: imx6sx: add missing lvds2 clock to the clock tree
clk: imx6ul: fix periph clk2 clock mux selection
media: i2c: tda1997: replace codec to component
ASoC: rt5663: Optimize the power consumption
regulator: add dummy function of_find_regulator_by_node
ASoC: cs42xx8: Make the node name generic
ASoC: wm8960: Make the node name generic
ASoC: wm8962: Make the node name generic
ASoC: sgtl5000: Make the node name generic
regulator: pfuze100: Make the node name generic
ASoC: cs35l35: Add use_single_rw to regmap config
net/ipv6: rename rt6_next to fib6_next
x86/speculation: Make "seccomp" the default mode for Speculative Store Bypass
seccomp: Move speculation migitation control to arch code
seccomp: Add filter flag to opt-out of SSB mitigation
seccomp: Use PR_SPEC_FORCE_DISABLE
prctl: Add force disable speculation
x86/bugs: Make boot modes __ro_after_init
bpf, xskmap: fix crash in xsk_map_alloc error path handling
bpf: fix references to free_bpf_prog_info() in comments
tools: bpftool: add simple perf event output reader
tools: bpftool: move get_possible_cpus() to common code
tools: bpftool: fold hex keyword in command help
nfp: bpf: rewrite map pointers with NFP TIDs
nfp: bpf: perf event output helpers support
bpf: replace map pointer loads before calling into offloads
bpf: export bpf_event_output()
nfp: bpf: record offload neutral maps in the driver
bpf: offload: allow offloaded programs to use perf event arrays
drm/i915/selftests: Skip the execlists tests on !execlists machines
media: v4l2-dev: use pr_foo() for printing messages
media: platform: video-mux: propagate format from sink to source
media: i2c: tvp5150: Fix open brace placement codding style
media: i2c: tvp5150: Use the correct comment style
media: i2c: tvp5150: Add a space after commas
media: i2c: tvp5150: Use parentheses for sizeof
smack: provide socketpair callback
selinux: provide socketpair callback
net: hook socketpair() into LSM
security: add hook for socketpair()
drm/i915: Fix drm:intel_enable_lvds ERROR message in kernel log
media: bttv: Fixed oops error when capturing at yuv410p
net/mlx5: fix spelling mistake: "modfiy" -> "modify"
net/mlx5: Cleanup unused field in Work Queue parameters
net/mlx5: Fix dump_command mailbox length printed
net/mlx5: Refactor num of blocks in mailbox calculation
net/mlx5: Decrease level of prints about non-existent MKEY
media: tuners/qm1d1c0042: use SPDX License Identifier
media: tuners/mxl301rf: use SPDX License Identifier
media: dvb/pci/pt3: use SPDX License Identifier
media: dvb-frontends/tc90522: use SPDX License Identifier
media: dvb-core/dvb_frontend: set better default for ISDB-T
media: dvb-frontends/tc90522: fix bit shift mistakes
media: ov13858: Remove owner assignment from i2c_driver
media: ov5695: Remove owner assignment from i2c_driver
media: em28xx-cards: output regular messages as info
media: pt3: no need to check if null for dvb_module_release()
media: media/dvb: earth-pt3: use the new i2c binding helper
media: dvb: add alternative USB PID for Hauppauge WinTV-soloHD
media: ddbridge, cxd2099: include guard, fix unneeded NULL init, strings
f2fs: avoid fsync() failure caused by EAGAIN in writepage()
ALSA: pcm: Hide local_irq_disable/enable() and local_irqsave/restore()
net/mlx4_en: optimizes get_fixed_ipv6_csum()
drm/i915: Include priority and completed status in request in/out tracepoints
smc: add support for splice()
smc: allocate RMBs as compound pages
smc: make smc_rx_wait_data() generic
smc: simplify abort logic
ARM: dts: tegra20: Revert "Fix ULPI regression on Tegra20"
media: cxd2880-spi: avoid out-of-bounds access warning
ARM: dts: tegra114: Add IOMMU nodes to Host1x and its clients
ARM: dts: tegra30: Add IOMMU nodes to Host1x and its clients
media: lgdt330x: don't use an uninitialized state
media: lgdt330x: add block error counts via DVBv5
arm64: allwinner: h6: add PCF8563 RTC on Pine H64 board
media: lgdt330x: get rid of read_ber stub
media: lgdt330x: provide DVBv5 Carrier S/N measurements
arm64: allwinner: h6: add R_I2C controller
media: lgdt330x: move *read_status functions
media: lgdt330x: constify several register init arrays
media: lgdt330x: do some cleanups at status logic
arm64: allwinner: h6: add R_INTC interrupt controller
media: lgdt330x: convert it to the new I2C binding way
arm64: allwinner: h6: add node for R_PIO pin controller
drm/tegra: gr2d: Properly clean up resources
drm/tegra: dc: Free syncpoint on errors
media: lgdt330x: print info when device gets probed
media: lgdt330x: use pr_foo() macros
arm64: allwinner: h6: add PRCM CCU device node
clk: sunxi-ng: add support for H6 PRCM CCU
media: lgdt330x: fix coding style issues
media: lgdt330x: use kernel-doc instead of inlined comments
media: em28xx: fix a regression with HVR-950
media: v4l2-core: get rid of videobuf-dvb
media: cx231xx: get rid of videobuf-dvb dependency
media: dvb-usb-v2: stop using coherent memory for URBs
media: dvbsky: fix driver unregister logic
media: dvbsky: use the new dvb_module_probe() API
media: ddbridge: set driver version to 0.9.33-integrated
media: ddbridge: recognize and attach the MaxSX8 cards
media: ddbridge: add hardware defs and PCI IDs for MCI cards
media: ddbridge/max: implement MCI/MaxSX8 attach function
media: ddbridge: initial support for MCI-based MaxSX8 cards
media: ddbridge: support dummy tuners with 125MByte/s dummy data stream
media: ddbridge: make DMA buffer count and size modparam-configurable
media: ddbridge: set devid entry for link 0
media: ddbridge: fix output buffer check
media: ddbridge: use spin_lock_irqsave() in output_work()
media: ddbridge: improve separated MSI IRQ handling
media: ddbridge: add macros to handle IRQs in nibble and byte blocks
media: ddbridge: add helper for IRQ handler setup
media: ddbridge: request/free_irq using pci_irq_vector, enable MSI-X
media: ddbridge: move MSI IRQ cleanup to a helper function
media: ddbridge: move ddb_wq and the wq+class initialisation to -core
media: ddbridge: move modparams to ddbridge-core.c
media: dvb-frontends/stv0910: fix CNR reporting in read_snr()
media: dvb-frontends/stv0910: add init values for TSINSDELM/L
media: video-i2c: get rid of two gcc warnings
media: omap2: allow building it with COMPILE_TEST && DRM_OMAP
media: omapfb: omapfb_dss.h: add stubs to build with COMPILE_TEST && DRM_OMAP
media: ipu3: allow building it with COMPILE_TEST on non-x86 archs
media: rc: allow build pnp-dependent drivers with COMPILE_TEST
media: sta2x11_vip: allow build with COMPILE_TEST
sh_eth: WARN_ON() access to unimplemented TSU register
sh_eth: use TSU register accessors for TSU_POST<n>
media: radio: allow building ISA drivers with COMPILE_TEST
media: flexcop-i2c: get rid of KERN_CONT
media: davinci: don't override the error code
EDAC, i7core: Fix spelling mistake: "redundacy" -> "redundancy"
media: em28xx: Don't use ops->resume if NULL
media: s5p-jpeg: don't return a value on a void function
media: siano: be sure to not override devpath size
media: siano: get rid of __le32/__le16 cast warnings
mt76x2: fix avg_rssi estimation
ipw2200: fix spelling mistake: "functionalitis" -> "functionalities"
mt76x2: remove unnecessary break in mt76x2_mac_process_tx_rate()
rtlwifi: fix spelling mistake: "dismatch" -> "mismatch"
rt2x00: check against flushing empty queue
rt2x00: call sta_add/remove directly in rt2800
drivers: omap2: Kconfig: make FB_OMAP2_DSS_INIT depend on OF
media: rc: probe zilog transmitter when zilog receiver is found
media: rc: imon decoder: support the stick
media: rc: only register protocol for rc device if enabled
drm/tegra: gr3d: Add IOMMU support
drm/tegra: gr2d: Add IOMMU support
drm/tegra: dc: Balance IOMMU group refcounting
media: v4l: vsp1: Rename BRU to BRx
media: v4l: vsp1: Add BRx dynamic assignment debugging messages
media: v4l: vsp1: Assign BRU and BRS to pipelines dynamically
media: v4l: vsp1: Generalize detection of entity removal from DRM pipeline
media: v4l: vsp1: Add per-display list internal completion notification support
media: v4l: vsp1: Turn frame end completion status into a bitfield
media: v4l: vsp1: Move DRM pipeline output setup code to a function
media: v4l: vsp1: Replace manual DRM pipeline input setup in vsp1_du_setup_lif
media: v4l: vsp1: Setup BRU at atomic commit time
media: v4l: vsp1: Move DRM atomic commit pipeline setup to separate function
media: v4l: vsp1: Share duplicated DRM pipeline configuration code
media: v4l: vsp1: Use vsp1_entity.pipe to check if entity belongs to a pipeline
media: v4l: vsp1: Store pipeline pointer in vsp1_entity
media: v4l: vsp1: Remove unused field from vsp1_drm_pipeline structure
drm/i915: Remove assertion of active_rings must be non-empty if active_requests
PCI: mediatek: Set up vendor ID and class type for MT7622
media: v4l: vsp1: Don't start/stop media pipeline for DRM
media: usbtv: Use the constant for supported standards
media: usbtv: Enforce standard for color decoding
media: usbtv: Keep norm parameter specific
media: usbtv: Use V4L2 defines to select capture resolution
media: usbtv: Add SECAM support
media: usbtv: Use same decoder sequence as Windows driver
media: video-i2c: add video-i2c driver
media: dt-bindings: Add bindings for panasonic,amg88xx
media: staging: tegra-vde: Correct included header
media: staging: tegra-vde: Do not handle spurious interrupts
media: staging: tegra-vde: Correct minimum size of U/V planes
media: staging: tegra-vde: Silence some of checkpatch warnings
media: staging: tegra-vde: Align bitstream size to 16K
drm/i915/gtt: Tidy up duplicate branches in gen8_gmch_probe()
bpf: add faked "ending" subprog
bpf: centre subprog information fields
bpf: unify main prog and subprog
drm/tegra: hub: Use state directly
drm/selftests: Add drm helper selftest
drm/selftests: Rename the Kconfig option to CONFIG_DRM_DEBUG_SELFTEST
drm/i915: Do not adjust scale when out of bounds, v2.
DT: pci: rcar-pci: document R8A77980 bindings
PCI: rcar: Factor out rcar_pcie_hw_init() call
PCI: rcar: Add R-Car gen3 PHY support
ARM: ux500: Drop the U8540 device trees
ARM: dts: Ux500: Fix "debounce-interval" property misspelling
drm/rect: Handle rounding errors in drm_rect_clip_scaled, v3.
PCI: rcar: Remove PHYRDY polling from rcar_pcie_hw_init_h1()
ARM: imx_v6_v7_defconfig: Select CONFIG_GPIO_MAX732X by default
ARM: ux500: Cut down Kconfig options
ARM: ux500: Drop U8540/9540 support
PCI: rcar: Poll PHYRDY in rcar_pcie_hw_init()
drm/rect: Round above 1 << 16 upwards to correct scale calculation functions.
xfrm: use a dedicated slab cache for struct xfrm_state
locking/mutex: Optimize __mutex_trylock_fast()
sched/core: Don't schedule threads on pre-empted vCPUs
sched/fair: Avoid calling sync_entity_load_avg() unnecessarily
sched/fair: Rearrange select_task_rq_fair() to optimize it
mtd: cfi: Add early fixup for S70GL02GS
mtd: cfi: Support early CFI fixups
ARM: dts: stm32: update pwm-cells for LPTimer on stm32h743
ARM: dts: stm32: Add I2C1 support for stm32h743i-eval Board
ARM: dts: stm32: Add I2C support for STM32H743 SoC
ARM: dts: stm32: Add I2C1 support for stm32f746-disco Board
ARM: dts: stm32: Add I2C1 support for stm32f769-disco Board
ARM: dts: stm32: Append additional I2Cs for STM32F746 SoC
ARM: dts: stm32: Add display support on stm32f469-disco
ARM: dts: stm32: Add new stm32f469 dtsi file with mipi dsi
ARM: dts: stm32: Use gpio bindings in stm32f469-disco
ARM: dts: stm32: Fix IRQ_TYPE_NONE warnings on stm32mp157c
ARM: dts: stm32: Fix DTC warnings for stm32mp157
ARM: dts: stm32: add flash nor support on stm32mp157c eval board
ARM: dts: stm32: add qspi support for stm32mp157c
ARM: dts: stm32: add cec support on stm32mp157c-ev1
ARM: dts: stm32: add cec pins to stm32mp157c
ARM: dts: stm32: add cec support on stm32mp157c
ARM: dts: stm32: add USB Host (USBH) support to stm32mp157c
ARM: dts: stm32: enable USBPHYC on stm32mp157c-ev1
ARM: dts: stm32: add supplies to usbphyc ports on stm32mp157c-ed1
ARM: dts: stm32: add USBPHYC support to stm32mp157c
ARM: dts: stm32: add dsi support on stm32mp157c
ARM: dts: stm32: add ltdc support on stm32mp157c
ARM: dts: stm32: Add I2C2/5 support for STM32MP157C-EV1
ARM: dts: stm32: Add I2C4 support for STM32MP157C-ED1
ARM: dts: stm32: Add I2Cs pins used on STM32MP157C
ARM: dts: stm32: Add STM32F7 I2C support for STM32MP157C SoC
ARM: dts: stm32: Add CRC support on stm32mp157c
ARM: dts: stm32: Add CRYP support on stm32mp157c
ARM: dts: stm32: Enable RNG for stm32mp157c-ed1
ARM: dts: stm32: Add RNG support on stm32mp157c
ARM: dts: stm32: Add MDMA support on STM32MP157C
ARM: dts: stm32: Add DMAMUX support on STM32MP157C
ARM: dts: stm32: Add DMAv2 support on STM32MP157C
include: usb: audio-v3: add BADD-specific values
ALSA: usb: mixer: make string parsing independent of mixer_build state
ALSA: usb: Only get AudioControl header for UAC1 class.
ALSA: usb: stream: refactor uac3 audio interface parsing
ALSA: usb: stream: refactor uac1/2 audio interface parsing
ALSA: usb: stream: move audioformat alloc/init into separate function
arm64: dts: ls208xa-rdb: Pass unit name to SPI flash node
i915: Convert to use match_string() helper
drm/i915/execlists: Drop preemption arbitrations points along the ring
drm/i915: Keep one request in our ring_list
drm/i915: Lazily unbind vma on close
drm/i915/selftests: fix spelling mistake: "parmaters" -> "parameters"
gpu: drm: bridge: adv7511: Replace mdelay with usleep_range in adv7511_probe
drm/bridge: adv7511: fix spelling of driver name in Kconfig
ARM: dts: BCM5301X: Relicense most DTS files to the GPL 2.0+ / MIT
bpf: sync tools bpf.h uapi header
bpf, x32: remove ld_abs/ld_ind
bpf, s390x: remove ld_abs/ld_ind
bpf, ppc64: remove ld_abs/ld_ind
bpf, mips64: remove ld_abs/ld_ind
bpf, arm32: remove ld_abs/ld_ind
bpf, sparc64: remove ld_abs/ld_ind
bpf, arm64: remove ld_abs/ld_ind
bpf, x64: remove ld_abs/ld_ind
bpf: add skb_load_bytes_relative helper
bpf: implement ld_abs/ld_ind in native bpf
bpf: migrate ebpf ld_abs/ld_ind tests to test_verifier
bpf: prefix cbpf internal helpers with bpf_
drm/i915/icl: Add configuring MOCS in new Icelake engines
spi: pxa2xx: check clk_prepare_enable() return value
drm/v3d: Introduce a new DRM driver for Broadcom V3D V3.x+
ASoC: tas6424: Allow disabling auto diagnostics for faster power-on
ASoC: nau8810: change input PGA mixer stage
spi: bcm2835aux: ensure interrupts are enabled for shared handler
samples/bpf: sample application and documentation for AF_XDP sockets
xsk: statistics support
xsk: support for Tx
dev: packet: make packet_direct_xmit a common function
xsk: add Tx queue setup and mmap support
xsk: add umem completion queue support and mmap
xsk: wire up XDP_SKB side of AF_XDP
xsk: wire up XDP_DRV side of AF_XDP
bpf: introduce new bpf AF_XDP map type BPF_MAP_TYPE_XSKMAP
xsk: add Rx receive functions and poll support
xsk: add support for bind for Rx
xsk: add Rx queue setup and mmap support
xsk: add umem fill queue support and mmap
xsk: add user memory registration support sockopt
net: initial AF_XDP skeleton
dt-bindings: Add a new binding for Broadcom V3D 3.x and newer GPUs.
drm/vc4: Add a pad field to align drm_vc4_submit_cl to 64 bits.
drm/pl111: Fix module probe bug
staging: wilc1000: rename WILC_WFI_band_2ghz variable to avoid mixedcase
staging: wilc1000: rename 'during_ip_time' macro to have uppercase name for macro
staging: wilc1000: use is_broadcast_ether_addr check for broadcast address
staging: wilc1000: move macro after the #include file in wilc_wfi_netdevice
staging: wilc1000: remove unnecessary header file inclusion for wilc
staging: wilc1000: remove unnecessary static function defination in wilc_spi
staging: wilc1000: remove unused macros in host_interface
staging: wilc1000: remove the use of cur_byte variable in functions
staging: wilc1000: remove static variable 'del_beacon' and null check
staging: wilc1000: rename WILC_WFI_deinit_mon_interface to avoid uppercase for function name
staging: wilc1000: rename WILC_WFI_init_mon_interface to avoid uppercase in function name
staging: wilc1000: rename WILC_WFI_mon_xmit to avoid uppercase for function name
staging: wilc1000: rename WILC_WFI_mon_priv to avoid uppercase for struct name
staging: wilc1000: rename WILC_WFI_monitor_rx to avoid uppercase for function name
staging: wilc1000: remove unnecessary file and function header comments
staging: wilc1000: use 'else if' condition in get_station()
staging: wilc1000: fix line over 80 chars in remove_network_from_shadow()
staging: wilc1000: remove unnecessary bracket used in switch in wilc_mgmt_frame_register()
staging: wilc1000: modified NULL check used for 'if' condition in delete_key()
staging: wilc1000: remove unnecessary 'out of memory' message in handle_key()
staging: wilc1000: remove inner block in wilc_netdev_init()
staging: wilc1000: fix infinite loop and out-of-bounds access
staging: wilc1000: allocate less memory
staging: Android: asoc: Fix sparse warnings in vsoc driver.
staging: Android: vsoc: Fix a i386-randconfig warning.
staging: Android: vsoc: Create wc kernel mapping for region shm.
usbip: usbip_host: run rebind from exit when module is removed
usbip: usbip_host: delete device from busid_table after rebind
rtc: tps6586x: remove mktime usage
rtc: ls1x: remove mktime usage
rtc: vr41xx: remove mktime usage
rtc: ds1340: Add support for trickle charger.
rtc: sprd: Add RTC hardware range
rtc: sprd: Change to use devm_rtc_allocate_device()
rtc: simplify getting .drvdata
iw_cxgb4: dump detailed driver-specific QP information
RDMA/nldev: helper functions to add driver attributes
RDMA/nldev: add driver-specific resource tracking
RDMA/nldev: Add explicit pad attribute
leds: wm831x-status: Use sysfs_match_string() helper
drm: remove all control node code
drm/msm: Don't setup control node debugfs files
ARM: dts: exynos/s3c: Remove leading 0x and 0s from bindings notation
net: bridge: Notify about !added_by_user FDB entries
switchdev: Add fdb.added_by_user to switchdev notifications
mlxsw: pci: Check number of CQEs for CQE version 2
mlxsw: pci: Allow to use CQEs of version 1 and version 2
mlxsw: pci: Introduce helpers to work with multiple CQE versions
mlxsw: resources: Add CQE versions resources
net: bridge: avoid duplicate notification on up/down/change netdev events
selftests: forwarding: mirror_gre_nh: Unset RP filter
selftests: forwarding: Use sysctl_set(), sysctl_restore()
selftests: forwarding: lib: Add sysctl_set(), sysctl_restore()
Documentation: ARM: Add new MMC requirements for DRA7/K2G
ARM: dts: dra7: Add high speed modes capability to MMC1/MMC2 dt node
ARM: dts: dra7: Use sdhci-omap programming model
ARM: dts: dra76-evm: Add wilink8 wlan support
ARM: dts: dra7-evm: Add wilink8 wlan support
ARM: dts: dra7-evm: Model EVM_3V6 regulator
ARM: dts: dra72-evm-common: Add wilink8 wlan support
ARM: dts: am57xx-beagle-x15/am57xx-idk: Fix pinctrl-names
ARM: dts: am574x-idk: Add pinmux configuration for MMC
ARM: dts: dra71-evm: Use pinctrl group from dra7-mmc-iodelay.dtsi to select pulldown
ARM: dts: am57xx-idk: Use pinctrl group from dra7-mmc-iodelay.dtsi to select pulldown
ARM: dts: dra7-mmc-iodelay: Add a new pinctrl group for clk line without pullup
ARM: dts: dra71-evm: Add "vqmmc-supply" property for mmc2
ARM: dts: dra72-evm-common: Remove mmc specific pinmux
ARM: dts: correct missing "compatible" entry for ti81xx SoCs
ARM: OMAP1: ams-delta: fix deferred_fiq handler
ARM: dts: correct invalid I/O definition for MMC/SD card detect on T410
selftests: forwarding: Allow running specific tests
selftests: forwarding: Increase maximum deviation in multipath test
cxgb4: update latest firmware version supported
evm: Don't update hmacs in user ns mounts
ARM: exynos: no need to select ARCH_HAS_BANDGAP any longer
bpf, x86_32: add eBPF JIT compiler for ia32
ip6_gre: correct the function name in ip6gre_tnl_addr_conflict() comment
tc-testing: Updated csum action tests batch create w/wo cookies.
net sched: Implemented get_fill_size routine for act_csum.
drm/i915: Correctly populate user mode h/vdisplay with pipe src size during readout
drm/i915: Remove redundant check for negative timeout while doing an atomic pipe update
iommu/amd: Update logging information for new event type
iommu/amd: Update the PASID information printed to the system log
iommu/tegra: gart: Fix gart_iommu_unmap()
iommu/tegra: gart: Add debugging facility
drivers: remove force dma flag from buses
dma-mapping: move dma configuration to bus infrastructure
drm/atomic: Handling the case when setting old crtc for plane
drm/i915: Adjust eDP's logical vco in a reliable place.
iommu/io-pgtable-arm: Use for_each_set_bit to simplify code
powerpc/fadump: Unregister fadump on kexec down path.
iommu/qcom: Simplify getting .drvdata
powerpc/fadump: Do not use hugepages when fadump is active
powerpc/fadump: exclude memory holes while reserving memory in second kernel
tracing: Remove PPC32 wart from config TRACING_SUPPORT
iommu: Remove depends on HAS_DMA in case of platform dependency
iommu/vt-d: Ratelimit each dmar fault printing
arm64: dts: rockchip: enable hdmi on rk3399-puma-haikou
arm64: dts: rockchip: use canonical compatible for touchpad/touchscreen on gru-kevin
powerpc: remove retired sbc834x support
powerpc: Only support DYNAMIC_FTRACE not static
powerpc64/ftrace: Implement support for ftrace_regs_caller()
powerpc64/ftrace: Use the generic version of ftrace_replace_code()
powerpc64/module: Tighten detection of mcount call sites with -mprofile-kernel
powerpc64/kexec: Hard disable ftrace before switching to the new kernel
powerpc64/ftrace: Disable ftrace during kvm entry/exit
powerpc64/ftrace: Disable ftrace during hotplug
powerpc64/ftrace: Delay enabling ftrace on secondary cpus
powerpc64/ftrace: Add helpers to hard disable ftrace
powerpc64/ftrace: Rearrange #ifdef sections in ftrace.h
powerpc64/ftrace: Add a field in paca to disable ftrace in unsafe code paths
seccomp: Enable speculation flaw mitigations
proc: Provide details on speculation flaw mitigations
nospec: Allow getting/setting on non-current task
x86/speculation: Add prctl for Speculative Store Bypass mitigation
x86/process: Allow runtime control of Speculative Store Bypass
prctl: Add speculation control prctls
x86/speculation: Create spec-ctrl.h to avoid include hell
x86/KVM/VMX: Expose SPEC_CTRL Bit(2) to the guest
x86/bugs/AMD: Add support to disable RDS on Fam[15,16,17]h if requested
x86/bugs: Whitelist allowed SPEC_CTRL MSR values
x86/bugs/intel: Set proper CPU features and setup RDS
x86/bugs: Provide boot parameters for the spec_store_bypass_disable mitigation
x86/cpufeatures: Add X86_FEATURE_RDS
x86/bugs: Expose /sys/../spec_store_bypass
x86/bugs, KVM: Support the combination of guest and host IBRS
x86/bugs: Read SPEC_CTRL MSR during boot and re-use reserved bits
x86/bugs: Concentrate bug reporting into a separate function
x86/bugs: Concentrate bug detection into a separate function
x86/nospec: Simplify alternative_msr_write()
Revert 190c462d5be19ba622a82f5fd0625087c870a1e6..bf3012ada1b2222e770de5c35c1bb16f73b3a01d"
ALSA: usb-audio: Clean up mixer element list traverse
drm/qxl: Remove unecessary dma_fence_ops
drm: Remove unecessary dma_fence_ops
dma-fence: Make ->wait callback optional
dma-fence: Allow wait_any_timeout for all fences
dma-fence: Make ->enable_signaling optional
arm64: tegra: Make BCM89610 PHY interrupt as active low
dma-fence: remove fill_driver_data callback
ARM: tegra: apalis-tk1: Fix high speed UART compatible
drm/i915: Mark the hangcheck as idle when unparking the engines
drm/i915: Reset the hangcheck timestamp before repeating a seqno
mtd: maps: pismo: Remove owner assignment from i2c_driver
drm/vmwgfx: Drop DRM_CONTROL_ALLOW
drm/i915: Drop DRM_CONTROL_ALLOW
drm: Drop DRM_CONTROL_ALLOW from ioctls
drm/i915: Silence debugging DRM_ERROR for failing to suspend vlv powerwells
dmaengine: pl330: flush before wait, and add dev burst support.
ALSA: sparc: Use GFP_KERNEL for non-atomic allocation
drm/i915/execlists: Emit i915_trace_request_out for preemption
mmc: core: Add tunable delay before detecting card after card is inserted
mmc: dt-bindings: Add optional cd-debounce-delay-ms
apparmor: fix typo "preconfinement"
apparmor: fix typo "independent"
apparmor: fix typo "traverse"
apparmor: fix typo "type"
apparmor: fix typo "replace"
apparmor: fix typo "comparison"
apparmor: fix typo "loosen"
mmc: sdhci-omap: Get IODelay values for 3.3v DDR mode
dt-bindings: sdhci-omap: Add pinctrl bindings
mmc: sdhci-omap: Add sdhci_omap specific ops for enable_sdio_irq
mmc: sdhci-omap: Add support for MMC/SD controller in k2g SoC
dt-bindings: sdhci-omap: Add K2G specific binding
mmc: sdhci-omap: Workaround for Errata i834
mmc: sdhci: Program a relatively accurate SW timeout value
mmc: sdhci: Factor out target_timeout calculation
mmc: sdhci: Add quirk to disable HW timeout
mmc: sdhci: Disable 1.8v modes (HS200/HS400/UHS) if controller can't support 1.8v
mmc: sdhci-omap: Invoke sdhci_get_of_property to read sdhci dt properties
mmc: sdhci-omap: Workaround for Errata i843
mmc: sdhci-omap: Remove setting ADMA capability in driver
mmc: sdhci-omap: Fix when capabilities are obtained from SDHCI_CAPABILITIES reg
ARM: dts: imx6qdl: Remove #address/#size-cells from mipi_dsi
ASoC: fsl_spdif: Switch to SPDX identifier
ASoC: fsl_esai: Switch to SPDX identifier
ASoC: fsl_sai: Switch to SPDX identifier
ASoC: fsl_ssi: Switch to SPDX identifier
spi: lpspi: Switch to SPDX identifier
spi: mxs: Switch to SPDX identifier
spi: imx: Switch to SPDX identifier
ASoC: Intel: bytcr_rt565: fix missing assignment to ret_val
drm/i915: Split i915_gem_timeline into individual timelines
drm/i915: Move timeline from GTT to ring
PCI/portdrv: Remove unused pcie_port_acpi_setup()
f2fs: clear PageError on writepage
f2fs: check cap_resource only for data blocks
Revert "f2fs: introduce f2fs_set_page_dirty_nobuffer"
f2fs: call unlock_new_inode() before d_instantiate()
f2fs: refactor read path to allow multiple postprocessing steps
fscrypt: allow synchronous bio decryption
drm/i915/firmware: Correct URL for firmware
r8169: replace get_protocol with vlan_get_protocol
r8169: avoid potentially misaligned access when getting mac address
r8169: improve PCI config space access
r8169: drop rtl_generic_op
r8169: replace longer if statements with switch statements
r8169: simplify code by using ranges in switch clauses
r8169: drop member pll_power_ops from struct rtl8169_private
r8169: merge r810x_pll_power_down/up into r8168_pll_power_down/up
r8169: remove 810x_phy_power_up/down
r8169: remove unneeded check in r8168_pll_power_down
drm/rect: Fix drm_rect_rotation_inv() docs
iov_iter: fix memory leak in pipe_get_pages_alloc()
iov_iter: fix return type of __pipe_get_pages()
aio: implement io_pgetevents
aio: implement IOCB_CMD_FSYNC and IOCB_CMD_FDSYNC
aio: refactor read/write iocb setup
aio: remove the extra get_file/fput pair in io_submit_one
aio: sanitize ki_list handling
aio: remove an outdated BUG_ON and comment in aio_complete
aio: don't print the page size at boot time
net/smc: determine vlan_id of stacked net_device
net/smc: handle ioctls SIOCINQ, SIOCOUTQ, and SIOCOUTQNSD
net/smc: ipv6 support for smc_diag.c
net/smc: periodic testlink support
nvme: only reconfigure discard if necessary
mlxsw: spectrum_router: Return an error for routes added after abort
mlxsw: spectrum_router: Return an error for non-default FIB rules
drm/pl111: Enable device-specific assigned memory
drm/pl111: Support the Versatile Express
pinctrl: samsung: Remove support for Exynos5440
cxgb4: add new T5 device id's
ARM: exynos: Remove support for Exynos5440
ARM: dts: exynos: Remove Exynos5440
drm/i915/guc: Assert we have the doorbell before setting it up
bpf: relax constraints on formatting for eBPF helper documentation
drm/i915: Disable some extra clang warnings
pinctrl: sunxi: Use of_clk_get_parent_count() instead of open coding
soc/tegra: pmc: Use of_clk_get_parent_count() instead of open coding
soc: rockchip: power-domain: Use of_clk_get_parent_count() instead of open coding
ARM: timer-sp: Use of_clk_get_parent_count() instead of open coding
clk: Extract OF clock helpers in <linux/of_clk.h>
dlm: make sctp_connect_to_sock() return in specified time
dlm: fix a clerical error when set SCTP_NODELAY
ARM: dts: stm32: Add DAC support to stm32mp157c
ARM: dts: stm32: add reset binding on stm32mp157c
ARM: dts: stm32: Add LPtimer support to stm32mp157c
ARM: dts: stm32: Add vrefbuf support to stm32mp157c
ARM: dts: stm32: enable timer trigger 6 on stm32mp157c-ed1
ARM: dts: stm32: add PWM and triggers on stm32mp157c-ev1 board
ARM: dts: stm32: add PWM pins used on stm32mp157c-ev1 board
net: stmmac: Avoid VLA usage
dt-bindings: clock: Introduce QCOM RPMh clock bindings
liquidio VF: indicate that disabling rx vlan offload is not allowed
PCI: hv: Make sure the bus domain is really unique
udp: Complement partial checksum for GSO packet
nvme/pci: Use async_schedule for initial reset work
drm/i915: Show ring->start for the ELSP context/request queue
x86/bpf: Clean up non-standard comments, to make the code more readable
clocksource: Remove kthread
ALSA: usb-audio: Give proper vendor/product name for Dell WD15 Dock
ALSA: usb-audio: Allow to override the longname string
ALSA: usb-audio: Add "Keep Interface" control
ALSA: usb-audio: Add keep_iface flag
ALSA: usb-audio: Avoid superfluous usb_set_interface() calls
ALSA: usb-audio: Initialize Dell Dock playback volumes
ALSA: dice: remove local frag of force_two_pcms
ALSA: dice: use cache for PCM constraints and rules
ALSA: dice: use stream formats to add MIDI substreams
ALSA: dice: enable to change current sampling transmission frequency
ALSA: dice: add a helper function to restart all of available streams
ALSA: dice: use cache of stream format to check running stream
ALSA: dice: use extended protocol to detect available stream formats
ALSA: dice: add parameters of stream formats for models produced by Alesis
ALSA: dice: add parameters of stream formats for models produced by TC Electronic
ALSA: dice: cache stream formats at current mode of sampling transmission frequency
ALSA: dice: add proc node for stream formation
ALSA: dice: add 'firewire' directory for proc nodes
ALSA: dice: add cache of stream formats
ALSA: sc6000: fix spelling mistake: "iomaped" -> "iomapped"
ALSA: hda/ca0132: fix build failure when a local macro is defined
ARM: dts: imx53-ppd: Use IRQ_TYPE_* constants
ARM: dts: imx6sx-sabreauto: add external 24MHz clock source
mmc: mediatek: add 64G DRAM DMA support
mmc: mmci: Remove bogus local_irq_save()
mmc: sdhci-esdhc-imx: Set maximum watermark levels for PIO access
mmc: sdhci-msm: support voltage pad switching
mmc: sdhci-msm: Add support to store supported vdd-io voltages
mmc: renesas_sdhi_internal_dmac: add R8A77980 to whitelist
mmc: sdhci-cadence: fix logically and structurally dead code
mmc: host: simplify getting .drvdata
mmc: mediatek: use of_device_get_match_data()
mmc: sdhci-pci: Fix 3.3V voltage switch for some BYT-based Intel controllers
mmc: dt: tmio_mmc: document R8A77980 bindings
mmc: renesas_sdhi_internal_dmac: remove superfluous WARN
mmc: renesas_sdhi_internal_dmac: use more generic whitelisting
mmc: renesas_sdhi: Fix alignment check of sg buffer
mmc: renesas_sdhi: use helpers to access struct scatterlist members
mmc: sdhci-pci: Avoid 3.3V signaling on some NI 904x
mmc: core: Add capability to avoid 3.3V signaling
mmc: Remove depends on HAS_DMA in case of platform dependency
mmc: sunxi: Drop the init / reset of the controller from set_ios
mmc: sunxi: Add runtime_pm support
mmc: sunxi: Move the card power configuration to a function
mmc: sunxi: Move clock configuration to a function
mmc: sunxi: Move bus width configuration to a function
mmc: sunxi: Change sunxi_mmc_init_host argument type
mmc: sunxi: Reorder the headers
MIPS: configs: ci20: Enable ext4
mmc: core: sdio: Set SDIO clock of SDR104 to 150MHz for Marvell 8887 chip
mmc: core: Add a new quirk for limiting clock rate
mmc: dw_mmc: fix misleading comment in dw_mci_rk3288_set_ios
mmc: sdhci-cadence: send tune request twice to work around errata
mmc: meson: update doc to support Meson-AXG platform
mmc: meson-axg: add support for the Meson-AXG platform
mmc: dt-bindings: update bindings doc to support Meson-AXG SoC
mmc: card: Don't show eMMC RPMB and BOOT areas in /proc/partitions
MIPS: configs: ci20: Enable DMA and MMC support
MIPS: dts: ci20: Enable MMC in the devicetree
MIPS: dts: jz4780: Add MMC controller node to the devicetree
MIPS: dts: jz4780: Add DMA controller node to the devicetree
mmc: jz4740: Use dma_request_chan()
mmc: jz4740: Add support for the JZ4780
mmc: jz4740: Set clock rate to mmc->f_max rather than JZ_MMC_CLK_RATE
mmc: dt-bindings: add MMC support to JZ4740 SoC
mmc: jz4740: Introduce devicetree probe
mmc: jz4740: Reset the device requesting the interrupt
mmc: jz4740: Use dev_get_platdata
mmc: jz4780: Order headers alphabetically
mmc: jz4740: Fix error exit path in driver's probe
mmc: dw_mmc: update actual clock for mmc debugfs
mmc: pwrseq: Use kmalloc_array instead of stack VLA
mmc: sdhci-of-arasan: Add quirk to avoid unexpected interrupt msgs
pinctrl: imx: use seq_puts() instead of seq_printf()
pinctrl: pinctrl-imx: improve the code comments of PIN_FUNC_ID
pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
pinctrl: uniphier: add LD11 MPEG2-TS I/O pin-mux settings
pinctrl: uniphier: add LD20 MPEG2-TS I/O pin-mux settings
pinctrl: actions: Fix Kconfig dependency and help text
pinctrl: actions: fix missing break in PIN_CONFIG_DRIVE_STRENGTH case.
pinctrl: actions: make s900_functions, s900_padinfo and s900_pads static
pinctrl: meson: axg: add tdm pins
pinctrl: meson: meson8: add the RGMII RXD2/RXD3 and TXD2/TXD3 signals
pinctrl: meson: meson8: add support for the Meson8m2 SoC
dt-bindings: pinctrl: meson: add support for the Meson8m2 SoC
pinctrl: mediatek: update pinmux defintions for MT7623
dt-bindings: pinctrl: mcp23s08: Clarify gpiospec flags cell usage
dt-bindings: pinctrl: bcm2835-gpio: Add generic pinctrl support
pinctrl: qcom: qdf2xxx: add support for new ACPI HID QCOM8002
pinctrl: qcom: remove static globals to allow multiple TLMMs
pinctrl: actions: Add Actions S900 pinctrl driver
pinctrl: samsung: add pin_dbg_show callback for debugfs
ARM: sun8i: v3s: fix spelling mistake: "disbaled" -> "disabled"
EDAC, ghes: Add a null pointer check in ghes_edac_unregister()
ghes, EDAC: Fix ghes_edac registration
gpu: drm: sti: fix spelling mistake: "initialze" -> "initialize"
ACPI / battery: Ignore AC state in handle_discharging on systems where it is broken
ACPI / battery: Add handling for devices which wrongly report discharging state
ACPI / battery: Remove initializer for unused ident dmi_system_id
ACPI / AC: Remove initializer for unused ident dmi_system_id
ACPI: add missing newline to printk
drm/i915/selftests: Fix error checking for wait_var_timeout
drm/i915: add support for specifying DMC firmware override by module param
ARM: davinci: dm644x: remove unnecessary postcore_initcall()
ARM: davinci: aemif: stop using pdev->id as nand chipselect
mtd: rawnand: davinci: stop using pdev->id as chipselect
ARM: davinci: neuros-osd2: specify the chipselect in davinci_nand_pdata
ARM: davinci: dm646x-evm: specify the chipselect in davinci_nand_pdata
ARM: davinci: mityomapl138: specify the chipselect in davinci_nand_pdata
ARM: davinci: dm644x-evm: specify the chipselect in davinci_nand_pdata
ARM: davinci: dm365-evm: specify the chipselect in davinci_nand_pdata
ARM: davinci: dm355-leopard: specify the chipselect in davinci_nand_pdata
ARM: davinci: dm355-evm: specify the chipselect in davinci_nand_pdata
ARM: davinci: da850-evm: specify the chipselect in davinci_nand_pdata
ARM: davinci: da830-evm: specify the chipselect in davinci_nand_pdata
mtd: rawnand: davinci: store the core chipselect number in platform data
ARM: davinci: fix GPIO lookup for I2C
arm: dts: mediatek: converted to using SPDX identifiers
ARM: dts: imx6ull: add UART5 RTS input select register
drm/i915: Print error state times relative to capture
dma-fence: Some kerneldoc polish for dma-fence.h
apparmor: add the ability to get a task's secid
apparmor: add support for mapping secids and using secctxes
ARM: dts: at91: sama5d4ek: use canonical compatible for touchscreen
ARM: dts: imx6ul: Add CAAM support
USB: serial: option: blacklist unused dwm-158 interfaces
ALSA: hda - Enforce CONFIG_SND_DYNAMIC_MINORS for HDMI/DP codec
ARM: imx_v6_v7_defconfig: enable imx6sll by default
ARM: imx: select imx6sll pinctrl when imx6sll enabled
ARM: dts: kzm9d: Drop unnecessary address properties from gpio_keys node
ARM: dts: silk: Drop unnecessary address properties from vin port node
ARM: dts: alt: Drop unnecessary address properties from vin port node
ARM: dts: koelsch: Drop unnecessary address properties from port nodes
ARM: dts: gose: Drop unnecessary address properties from port nodes
ARM: dts: porter: Drop unnecessary address properties from vin port node
ARM: dts: lager: Drop unnecessary address properties from port node
arm64: defconfig: Enable CONFIG_SND_AUDIO_GRAPH_CARD
arm64: defconfig: makes SND_SIMPLE_CARD to module
dt-bindings: arm: consistently name r8a77965 as M3-N
drm/mediatek: Using the function drm_display_mode_to_videomode
dmaengine: axi-dmac: Request IRQ with IRQF_SHARED
dmaengine: stm32-mdma: fix spelling mistake: "avalaible" -> "available"
scsi: mpt3sas: fix spelling mistake: "disbale" -> "disable"
scsi: megaraid_sas: fix spelling mistake: "disbale" -> "disable"
scsi: esas2r: fix spelling mistake: "asynchromous" -> "asynchronous"
scsi: isci: remove redundant check on in_connection_align_insertion_frequency
scsi: a100u2w: Use module_pci_driver
scsi: wd719x: Use module_pci_driver
scsi: am53c974: Use module_pci_driver
scsi: aacraid: Correct hba_send to include iu_type
scsi: vmw-pvscsi: return DID_BUS_BUSY for adapter-initated aborts
scsi: scsi_transport_sas: don't bounce highmem pages for the smp handler
clk: qcom: gdsc: Add support to poll CFG register to check GDSC state
selftest: add test for TCP_INQ
tcp: send in-queue bytes in cmsg upon read
clk: npcm7xx: fix return value check in npcm7xx_clk_init()
tools: bpftool: change time format for program 'loaded at:' information
spi: omap2-mcspi: Idle hardware during suspend and resume
spi: omap2-mcspi: Restore context always in runtime_resume
regulator: ltc3676: Assure PGOOD mask is set before changing voltage
spi: meson-spicc: Fix error handling in meson_spicc_probe()
spi: bcm-qspi: Always read and set BSPI_MAST_N_BOOT_CTRL
spi: bcm-qspi: Avoid setting MSPI_CDRAM_PCS for spi-nor master
ASoC: dai playback and capture active may be greater than 1
ASoC: cirrus: i2s: Fix {TX|RX}LinCtrlData setup
ASoC: cirrus: i2s: Fix LRCLK configuration
ASoC: amd: fix spelling mistake: "failer" -> "failure"
ASoC: mediatek: add the .probe() callback in mt2701_afe_pcm_dai_component
ASoC: Intel: cht-bsw-rt5672: allow for topology-defined codec-dai setup
ASoC: mediatek: avoid using snd_soc_platform
drm/i915/execlists: Don't trigger preemption if complete
drm/rockchip: Disable blending for win0
net: hns3: Remove packet statistics in the range of 8192~12287
net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
net: hns3: fix a dead loop in hclge_cmd_csq_clean
net: hns3: Fix to support autoneg only for port attached with phy
net: hns3: fix for phy_addr error in hclge_mac_mdio_config
net: hns3: Fixes the error legs in hclge_init_ae_dev function
net: hns3: Fixes the out of bounds access in hclge_map_tqp
net: hns3: fix to correctly fetch l4 protocol outer header
net: hns3: Remove error log when getting pfc stats fails
connector: add parent pid and tgid to coredump and exit events
net: core: Inline netdev_features_size_check()
udp: disable gso with no_check_tx
cls_flower: Support multiple masks per priority
md: fix two problems with setting the "re-add" device state.
raid10: check bio in r10buf_pool_free to void NULL pointer dereference
md: fix an error code format and remove unsed bio_sector
dt-bindings: Relocate Tegra20 memory controller bindings
dt-bindings: Add "sifive" vendor prefix
sctp: add sctp_make_op_error_limited and reuse inner functions
sctp: allow sctp_init_cause to return errors
ARM: dts: logicpd-som-lv: Fix pinmux controller references
RDMA/qedr: fix spelling mistake: "failes" -> "fails"
ARM: dts: omap2420-n810: Correct the audio codec (tlv320aic33) node
ARM: dts: omap2420-n810: Enable McBSP2 for audio
ARM: dts: am437x-sk-evm: Correct tps65218 irq type
ARM: dts: am437x-epos-evm: Correct tps65218 irq type
ARM: dts: am437x-cm-t43: Correct tps65218 irq type
ARM: dts: am437x-gp-evm: Correct tps65218 irq type
net: stmmac: dwmac-meson: extend phy mode setting
dt-bindings: net: meson-dwmac: new compatible name for AXG SoC
ARM: dts: Add am335x-pocketbeagle
IB/cxgb4: use skb_put_zero()/__skb_put_zero
ARM: dts: am33xx: Add pinmux data for mmc1 in am335x-evm, evmsk and beaglebone
PCI: Improve host drivers compile test coverage
ARM: dts: omap3-gta04: Add fixed 26MHz clock as fck for twl
ARM: dts: omap3-pandora: Add fixed 26MHz clock as fck for twl
ARM: dts: omap3-beagle-xm: Add fixed 26MHz clock as fck for twl
IB/core: Use CONFIG_SECURITY_INFINIBAND to compile out security code
ARM: omap1: osk: use device properties for at24 eeprom
ARM: dts: logicpd-som-lv: Enable Touchscreen controller
ARM: dts: logicpd-som-lv: Fix Audio Mute
ARM: dts: logicpd-som-lv: Fix WL127x Startup Issues
ARM: OMAP2+: powerdomain: use raw_smp_processor_id() for trace
netns: restrict uevents
uevent: add alloc_uevent_skb() helper
bus: ti-sysc: Show module information for suspend if DEBUG is enabled
bus: ti-sysc: Tag sdio and wdt with legacy mode for suspend
bus: ti-sysc: Detect UARTs for SYSC_QUIRK_LEGACY_IDLE quirk on omap4
bus: ti-sysc: Detect omap4 type timers for quirk
bus: ti-sysc: Add initial support for external resets
bus: ti-sysc: Improve suspend and resume handling
bus: ti-sysc: Tag some modules resource providers for noirq suspend
MAINTAINERS: Update TLS maintainers
MAINTAINERS: Update mlx5 innova driver maintainers
net/mlx5e: TLS, Add error statistics
net/mlx5e: TLS, Add Innova TLS TX offload data path
net/mlx5e: TLS, Add Innova TLS TX support
net/mlx5: Accel, Add TLS tx offload interface
net/mlx5e: Move defines out of ipsec code
net/tls: Add generic NIC offload infrastructure
net/tls: Split conf to rx + tx
net: Add TLS TX offload features
net: Add TLS offload netdev ops
net: Add Software fallback infrastructure for socket dependent offloads
net: Rename and export copy_skb_header
tcp: Add clean acked data hook
ARM: davinci: board-dm355-evm: fix broken networking
ARM: davinci: board-omapl138-hawk: fix GPIO numbers for MMC/SD lookup
ARM: davinci: board-da850-evm: fix GPIO lookup for MMC/SD
ARM: davinci: board-da830-evm: fix GPIO lookup for MMC/SD
fasync: Fix deadlock between task-context and interrupt-context kill_fasync()
power: supply: ab8500_charger: fix spelling mistake: "faile" -> "failed"
PCI: rcar: Clean up the macros
PCI: rcar: Use runtime PM to control controller clock
change the comment of vti6_ioctl
ARM: dts: r8a7790: Fix sort order of VSP1/FDP1 nodes
drm/i915/icl: Fix the DP Max Voltage for ICL
drm/i915/icl: Implement voltage swing programming sequence for Combo PHY DDI
drm/vc4: Enable syncobj support
drm/vc4: Export fence through syncobj
drm/vc4: Syncobj import support
drm/panel: Enable DSI transactions on the RPi panel.
drm/vc4: Skip ULPS latching when we're in that ULPS state already.
bus: ti-sysc: Add handling for clkctrl opt clocks
bus: ti-sysc: Make child clock alias handling more generic
bus: ti-sysc: Handle simple-bus for nested children
ARM: OMAP2+: Make display related init into device_initcall
ARM: OMAP2+: Initialize SoC PM later
ARM: OMAP2+: Only probe SDMA via ti-sysc if configured in dts
ARM: OMAP2+: Use signed value for sysc register offsets
ARM: OMAP2+: Allow using ti-sysc for system timers
drm/vc4: make function vc4_allocate_bin_bo static
drm: Make the prime vmap/vunmap hooks optional.
mlxsw: spectrum_span: Allow bridge for gretap mirror
mlxsw: Respin SPAN on switchdev events
mlxsw: spectrum: Register SPAN before switchdev
mlxsw: spectrum_switchdev: Publish two functions
mlxsw: spectrum: Extract mlxsw_sp_stp_spms_state()
net: bridge: Publish bridge accessor functions
i40e: use %pI4b instead of byte swapping before dev_err
i40e/i40evf: take into account queue map from vf when handling queues
i40e: avoid overflow in i40e_ptp_adjfreq()
i40e: Fix multiple issues with UDP tunnel offload filter configuration
i40evf: Fix turning TSO, GSO and GRO on after
i40e: Add advertising 10G LR mode
ipv6: sr: extract the right key values for "seg6_make_flowlabel"
i40e: fix reading LLDP configuration
i40e/i40evf: cleanup incorrect function doxygen comments
typec: tcpm: Fix incorrect 'and' operator
tools, include: Grab a copy of linux/erspan.h
libcxgb,cxgb4: use __skb_put_zero to simplfy code
erspan: auto detect truncated packets.
perf machine: Ditch find_kernel_function variants
i40evf: Replace GFP_ATOMIC with GFP_KERNEL in i40evf_add_vlan
perf tools: Fix spelling mistake: "builid" -> "buildid"
drm/i915: Only track live rings for retiring
drm/i915: Retire requests along rings
drm/i915: Wrap engine->context_pin() and engine->context_unpin()
drm/i915: Stop tracking timeline->inflight_seqnos
mtd: nftl: Remove VLA usage
r8169: move common initializations to tp->hw_start
r8169: remove calls to rtl_set_rx_mode
r8169: simplify rtl_hw_start_8169
r8169: improve handling of CPCMD quirk mask
r8169: improve CPlusCmd handling
r8169: replace magic number for INTT mask with a constant
r8169: improve rtl8169_set_features
r8169: remove unneeded call to __rtl8169_set_features in rtl_open
liquidio: fix spelling mistake: "mac_tx_multi_collison" -> "mac_tx_multi_collision"
liquidio: enhanced ethtool --set-channels feature
liquidio: Moved common function setup_glists to lio_core.c
liquidio: Moved common definition octnic_gather to octeon_network.h
liquidio: Moved common function delete_glists to lio_core.c
liquidio: Moved common function list_delete_head to octeon_network.h
liquidio: Moved common function if_cfg_callback to lio_core.c
MAINTAINERS: Add dri-devel for backlight subsystem patches
backlight: Nuke BL_CORE_DRIVER1
staging: fbtft: Stop using BL_CORE_DRIVER1
backlight: pandora: Stop using BL_CORE_DRIVER1
backlight: generic-bl: Remove DRIVER1 state
backlight: Nuke unused backlight.props.state states
bpf: update bpf.h uapi header for tools
bpf: fix formatting for bpf_get_stack() helper doc
bpf: fix formatting for bpf_perf_event_read() helper doc
drm/i915/lrc: Scrub the GPU state of the guilty hanging request
brcmfmac: coarse support for PCIe shared structure rev7
brcmfmac: add hostready indication
brcmfmac: constify firmware mapping tables
brcmfmac: use nl80211_band directly to get ieee80211 channel
brcmfmac: reports boottime_ns while informing bss
brcmfmac: check p2pdev mac address uniqueness
ipw2100: fix spelling mistake: "decsribed" -> "described"
rt2x00: fix spelling mistake in various macros, UKNOWN -> UNKNOWN
rsi_91x: fix uninitialized variable
rsi_91x: fix structurally dead code
wlcore: sdio: allow pm to handle sdio power
qtnfmac: fix qtnf_netdev_hard_start_xmit()'s return type
net: wireless: b43legacy: Replace GFP_ATOMIC with GFP_KERNEL in dma_tx_fragment
mwifiex: keep user configured mac address during changing virtual interface
mwifiex: always configure firmware mac address during changing virtual interface
mwifiex: make firmware mac address consistent with host configuration
mwifiex: fix mwifiex_hard_start_xmit()'s return type
mt76: check for pending reset before attempting to schedule tx
mt76: add rcu locking around tx scheduling
mt76: add rcu locking in tid reorder function
mt76: fix concurrent rx calls on A-MPDU release
mt76x2: fix is_mt7612 routine
backlight: otm3225a: Add support for ORISE OTM3225A LCD SoC
backlight: pwm_bl: Don't use GPIOF_* with gpiod_get_direction
pwm-backlight: Add support for PWM delays proprieties.
dt-bindings: pwm-backlight: Add PWM delay proprieties.
pwm-backlight: Enable/disable the PWM before/after LCD enable toggle.
dt-bindings: backlight: Add binding for RAVE SP backlight driver
backlight: Add RAVE SP backlight driver
i2c: rcar: enhance comment to avoid regressions
drm/tinydrm/mi0283qt: Always set rotation value
bpf: remove tracepoints from bpf core
i2c: core: ACPI: Log device not acking errors at dbg loglevel
i2c: core: ACPI: Improve OpRegion read errors
pwm: simplify getting .drvdata
i2c: mlxcpld: Add capability register description to documentation
i2c: mlxcpld: Allow configurable adapter id for mlxcpld
i2c: mlxcpld: Fix adapter functionality support callback
i2c: mlxcpld: Add support for smbus block read transaction
i2c: mlxcpld: Add support for extended transaction length for i2c-mlxcpld
i2c: mediatek: use of_device_get_match_data()
i2c: s3c2410: Remove support for Exynos5440
i2c: i801: Don't restore config registers on runtime PM
i2c: at91: Read all available bytes at once
i2c: i2c-stm32f7: Implement I2C release mechanism
i2c: i2c-stm32f7: Add DMA support
i2c: i2c-stm32: Add generic DMA API
i2c: i2c-stm32f7: Add initial SMBus protocols support
i2c: i2c-stm32f7: Add slave support
i2c: i2c-stm32f7: Add 10-bit address support
pwm: meson: Fix allocation of PWM channel array
memory: tegra: Add Tegra210 memory controller hot resets
memory: tegra: Add Tegra124 memory controller hot resets
memory: tegra: Add Tegra114 memory controller hot resets
memory: tegra: Add Tegra30 memory controller hot resets
memory: tegra: Add Tegra20 memory controller hot resets
memory: tegra: Introduce memory client hot reset
memory: tegra: Squash tegra20-mc into common tegra-mc driver
ARM: dts: iwg23s-sbc: Add EtherAVB support
ARM: dts: r8a77470: Add EtherAVB support
ARM: dts: aspeed: Describe random number device
samples/bpf: fix kprobe attachment issue on x64
net: core: Assert the size of netdev_featres_t
net: Revoke export for __skb_tx_hash, update it to just be static skb_tx_hash
mlx4: Don't bother using skb_tx_hash in mlx4_en_select_queue
opa_vnic: Just use skb_get_hash instead of skb_tx_hash
lan78xx: Modify error messages
lan78xx: Remove DRIVER_VERSION for lan78xx driver
lan78xx: Lan7801 Support for Fixed PHY
selftests: net: tcp_mmap must use TCP_ZEROCOPY_RECEIVE
tcp: add TCP_ZEROCOPY_RECEIVE support for zerocopy receive
net: dsa: mv88e6xxx: remove Global 2 setup
net: dsa: mv88e6xxx: move device mapping setup
net: dsa: mv88e6xxx: move trunk setup
hwmon: (k10temp) Fix reading critical temperature register
ARM: dts: exynos: Remove unnecessary address/size properties in dp-controller of Exynos5
ARM: dts: exynos: Bring order in fixed-regulators naming in Midas boards
ARM: dts: exynos: Remove regulators node container in Origen and N710x
ARM: dts: exynos: Remove unnecessary address/size properties in Origen
ARM: dts: exynos: Remove unnecessary address/size properties in Midas boards
arm64: dts: exynos: Remove unneeded address space mapping for soc node
bpf: Allow bpf_current_task_under_cgroup in interrupt
bpf: Sync bpf.h to tools/
bpf: Fix helpers ctx struct types in uapi doc
tools/bpf: add a test for bpf_get_stack with tracepoint prog
tools/bpf: add a test for bpf_get_stack with raw tracepoint prog
tools/bpf: add a verifier test case for bpf_get_stack helper and ARSH
samples/bpf: move common-purpose trace functions to selftests
tools/bpf: add bpf_get_stack helper to tools headers
bpf/verifier: improve register value range tracking with ARSH
bpf: remove never-hit branches in verifier adjust_scalar_min_max_vals
bpf/verifier: refine retval R0 state for bpf_get_stack helper
bpf: add bpf_get_stack helper
bpf: change prototype for stack_map_get_build_id_offset
usb-misc: sisusbvga: fix spelling mistake: "asymmeric" -> "asymmetric"
staging: greybus: Use gpio_is_valid()
staging: bcm2835-audio: Disconnect and free vchi_instance on module_exit()
staging: fsl-mc/dpio: Fix the error handling in probe()
staging: fsl-dpaa2/rtc: support phc_index of ethtool_ts_info
staging: fsl-dpaa2/eth: add the get_ts_info interface for ethtool
staging: fsl-dpaa2/eth: Add support for hardware timestamping
dt-bindings: mtd: mtk-nand: Update properties description
mtd: nand: add myself as NAND co-maintainer
mtd: rawnand: gpmi: remove unnecessary variables
mtd: rawnand: gpmi: return valid value from bch_set_geometry()
mtd: rawnand: gpmi: remove direct_dma_map_ok from driver data struct
mtd: rawnand: gpmi: put only once used functions inline
mtd: rawnand: gpmi: pass buffer and len around
mtd: rawnand: gpmi: drop dma_ops_type
mtd: rawnand: add a way to pass an ID table with nand_scan()
mtd: rawnand: lpc32xx_slc: fix the probe function error path
mtd: rawnand: lpc32xx_slc: clean the probe function
mtd: rawnand: lpc32xx_mlc: fix the probe function error path
mtd: rawnand: lpc32xx_mlc: clean the probe function
mtd: rawnand: hisi504: fix the probe function error path
mtd: rawnand: hisi504: clean the probe function error path
mtd: rawnand: fsmc: fix the probe function error path
mtd: rawnand: fsmc: clean the probe function style
mtd: rawnand: fsl_ifc: fix probe function error path
mtd: rawnand: fsl_elbc: fix probe function error path
mtd: onenand: simplify getting .drvdata
MAINTAINERS: Add entry for Mediatek NAND controller driver
mtd: rawnand: mtk: use of_device_get_match_data()
mtd: rawnand: diskonchip: Replace mdelay with usleep_range in doc_probe
mtd: rawnand: sunxi: Remove support for GPIO-based Ready/Busy polling
dt-bindings: mtd: rawnand: gpmi: document specific ECC strength
mtd: rawnand: gpmi: add support for specific ECC strength
net: phy: Fix modular PHYLIB build
staging: iio: Documentation: Add missing sysfs docs for angle channel
staging: iio: ad2s1200: Improve readability with be16_to_cpup
iio: afe: rescale: new driver
dt-bindings: iio: afe: add binding for current-sense-amplifier
dt-bindings: iio: afe: add binding for voltage-divider
dt-bindings: iio: afe: add binding for current-sense-shunt
iio: accel: bcm150: Remove handling for regmap raw_read_max
iio: imu: inv_mpu6050: clean read channel data error path
iio: imu: inv_mpu6050: clean read raw by factorizing out raw data
iio: imu: inv_mpu6050: use devm_* at init and delete remove
iio: imu: inv_mpu6050: fix error path not turning chip back off
arm64: dts: uniphier: stabilize ethernet of LD20 reference board
iio: adc: stm32-dfsdm: add check on spi-max-frequency
iio: adc: stm32-dfsdm: add check on max filter id
iio: adc: stm32-dfsdm: misc style improvements and fixes
staging: iio: ad2s1200: Add blank lines
staging: iio: ad2s1200: Reverse Christmas tree ordering
staging: iio: ad2s1200: Sort includes alphabetically
staging: iio: ad2s1200: Remove unneeded include
staging: iio: tsl2x7x: rename prox_config to als_prox_config
staging: iio: tsl2x7x: various comment cleanups
staging: iio: tsl2x7x: use device defaults for als_time, prox_time and wait_time
staging: iio: tsl2x7x: rename prx to prox for consistency
staging: iio: tsl2x7x: move power and diode settings into header file
staging: iio: tsl2x7x: simplify device id verification
staging: iio: tsl2x7x: simplify tsl2x7x_write_interrupt_config return
staging: iio: tsl2x7x: remove unnecessary chip status checks in suspend/resume
staging: iio: tsl2x7x: simplify tsl2x7x_clear_interrupts function
staging: iio: tsl2x7x: don't return error in IRQ handler
staging: iio: tsl2x7x: move integration_time* attributes to IIO_INTENSITY channel
staging: iio: adc: simplify getting .drvdata
iio: common: hid-sensors: simplify getting .drvdata
iio: common: cros_ec_sensors: simplify getting .drvdata
signal/um: More carefully relay signals in relay_signal.
crypto: crypto4xx - put temporary dst sg into request ctx
crypto: crypto4xx - extend aead fallback checks
crypto: crypto4xx - properly set IV after de- and encrypt
crypto: crypto4xx - add aes-ctr support
crypto: crypto4xx - avoid VLA use
crypto: crypto4xx - convert to skcipher
crypto: crypto4xx - performance optimizations
crypto: cavium - Remove unnecessary parentheses
crypto: drivers - simplify getting .drvdata
crypto: omap-sham - fix memleak
crypto: drivers - Remove depends on HAS_DMA in case of platform dependency
dmaengine: rcar-dmac: Document R-Car D3 bindings
udp: remove stray export symbol
ipv6: sr: Add documentation for seg_flowlabel sysctl
drm/i915/icl: add definitions for the ICL PLL registers
drivers: net: replace UINT64_MAX with U64_MAX
drm/i915/icl: update ddb entry start/end mask during hw ddb readout
drm/i915/icl: Enable 2nd DBuf slice only when needed
drm/i915/icl: track dbuf slice-2 status
docs/vm: ksm: split userspace interface to admin-guide/mm/ksm.rst
docs/vm: ksm: udpate description of stable_node_{dups,chains}
docs/vm: ksm: update stable_node_chains_prune_millisecs description
docs/vm: ksm: reshuffle text between "sysfs" and "design" sections
docs/vm: ksm: add "Design" section
docs/vm: ksm: (mostly) formatting updates
mm/ksm: docs: extend overview comment and make it "DOC:"
Documentation: driver-api: fix device_connection.rst kernel-doc error
documentation: core-api: rearrange a few kernel-api chapters and sections
docs/admin-guide/mm: convert plain text cross references to hyperlinks
docs/admin-guide/mm: start moving here files from Documentation/vm
docs/admin-guide: introduce basic index for mm documentation
docs/vm: pagemap: change document title
docs/vm: pagemap: formatting and spelling updates
docs/vm: hugetlbpage: move section about kernel development to hugetlbfs_reserv
docs/vm: hugetlbpage: minor improvements
coresight: Grouping all perf tools oriented section together
coresight: Add section for integration with the perf tools
coresight: Remove obsolete reference to "owner" in CoreSight descriptor
doc: dev-tools: kselftest.rst: update contributing new tests
docs: kernel-parameters.txt: Fix whitespace
scripts: Add SPDX checker script
LICENSES: Add Linux-OpenIB license text
LICENSES: Add CC-BY-SA-4.0 license text
LICENSES: Add CDDL-1.0 license text
LICENSES: Add Apache 2.0 license text
LICENSES: Add X11 license
LICENSES/GPL2.0: Add GPL-2.0-only/or-later as valid identifiers
linux-next: ftrace/docs: Fix spelling typos in ftrace-users.rst
dt-bindings: exynos: move ADC binding to iio/adc/ directory
dt-bindings: powerpc/4xx: move 4xx NDFC and EMAC bindings to subsystem directories
dt-bindings: move various RNG bindings to rng/ directory
dt-bindings: move various timer bindings to timer/ directory
x86/PCI: Make pci=earlydump output neat
drm/i915/icl: Don't set pipe CSC/Gamma in PLANE_COLOR_CTL
ALSA: cs46xx: fix spelling mistake: "amplifer" -> "amplifier"
ptp_pch: use helpers function for converting between ns and timespec
ARM: dts: meson8b: add the cortex-a5-pmu compatible PMU
ARM: dts: meson8: add the cortex-a9-pmu compatible PMU
net: qrtr: Expose tunneling endpoint to user space
ARM: multi_v7_defconfig: enable the Meson PWM controller
arm: multi_v7_defconfig: enable the Amlogic Meson I2C driver
perf symbols: Move split_kallsyms to struct map_groups
selftests: forwarding: Test changes in mirror-to-gretap
selftests: forwarding: Test neighbor updates when mirroring to gretap
selftests: forwarding: Test flower mirror to gretap
selftests: forwarding: Test mirror to gretap w/ bound dev
selftests: forwarding: Test gretap mirror with next-hop remote
selftests: forwarding: Add test for mirror to gretap
selftests: forwarding: Add libs for gretap mirror testing
bnxt_en: Reserve rings at driver open if none was reserved at probe time.
bnxt_en: Reserve RSS and L2 contexts for VF.
bnxt_en: Don't reserve rings on VF when min rings were not provisioned by PF.
bnxt_en: Reserve rings in bnxt_set_channels() if device is down.
bnxt_en: add debugfs support for DIM
bnxt_en: reduce timeout on initial HWRM calls
bnxt_en: Increase RING_IDLE minimum threshold to 50
bnxt_en: Do not allow VF to read EEPROM.
bnxt_en: Display function level rx/tx_discard_pkts via ethtool
bnxt_en: Simplify ring alloc/free error messages.
bnxt_en: Do not set firmware time from VF driver on older firmware.
bnxt_en: Check the lengths of encapsulated firmware responses.
bnxt_en: Remap TC to hardware queues when configuring PFC.
bnxt_en: Add TC to hardware QoS queue mapping logic.
perf symbols: kallsyms__delta() needs the kmap, not the map
hv_netvsc: simplify receive side calling arguments
perf symbols: Remove unused dso__load_all_kallsyms() 'map' parameter
sctp: allow unsetting sockopt MAXSEG
sctp: consider idata chunks when setting SCTP_MAXSEG
sctp: honor PMTU_DISABLED when handling icmp
sctp: re-use sctp_transport_pmtu in sctp_transport_route
sctp: remove sctp_transport_pmtu_check
sctp: introduce sctp_dst_mtu
sctp: remove sctp_assoc_pending_pmtu
sctp: introduce sctp_assoc_update_frag_point
sctp: introduce sctp_mtu_payload
sctp: introduce sctp_assoc_set_pmtu
sctp: remove an if() that is always true
sctp: move transport pathmtu calc away of sctp_assoc_add_peer
sctp: remove old and unused SCTP_MIN_PMTU
selftests: pmtu: Minimum MTU for vti6 is 68
ASoC: tas6424: Add support for the mute pin
ASoC: tas6424: Add support for the standby pin
ASoC: core: Allow codec_conf DT lookups to match parent of_node
perf symbols: Split kernel symbol processing from dso__load_sym()
PCI: Add ACS quirk for Intel 300 series
tcp: remove mss check in tcp_select_initial_window()
PCI: Add ACS quirk for Intel 7th & 8th Gen mobile
net/smc: handle sockopt TCP_DEFER_ACCEPT
net/smc: sockopts TCP_NODELAY and TCP_CORK
net/smc: handle sockopts forcing fallback
net/smc: fix structure size
net: intel: Cleanup the copyright/license headers
IB/hfi1: Replace custom hfi1 macros with PCIe macros
net: Fix coccinelle warning
geneve: fix build with modular IPV6
PCI: Add PCI_EXP_LNKCTL2_TLS* macros
s390/qeth: improve fallback to random MAC address
s390/qeth: add IPv6 RX checksum offload support
s390/qeth: add IPv6 TX checksum offload support
s390/qeth: extend Checksum Offload Assists for IPv6
s390/qeth: query IPv6 assists during hardsetup
s390/qeth: add stats counter for RX csum offload
s390/qeth: disregard IPv4 header for RX csum offload
s390/qeth: extract csum offload helpers
s390/qeth: de-indent else after return
s390/net: set HW port number in netdevice
s390/qeth: don't worry about IPs on VLAN removal
s390/qeth: convert vlan spinlock to mutex
s390/qeth: skip QDIO queue handler indirection
bridge: use hlist_entry_safe
liquidio: add support for ndo_get_stats64 instead of ndo_get_stats
liquidio: move a couple of functions to lio_core.c
phy: Temporary build fix after phylib changes.
IB/rxe: remove unused function variable
IB/rxe: change rxe_set_mtu function type to void
IB/rxe: Change rxe_rcv to return void
infiniband: hw: qib: Change return type to vm_fault_t
infiniband: hw: hfi1: Change return type to vm_fault_t
net: dsa: loop: Hook PHY statistics
net: dsa: b53: Add support for reading PHY statistics
net: dsa: Allow providing PHY statistics from CPU port
net: dsa: Add helper function to obtain PHY device of a given port
net: dsa: Pass stringset to ethtool operations
net: dsa: Do not check for ethtool_ops validity
net: Allow network devices to have PHY statistics
net: Move PHY statistics code into PHY library helpers
ARM64: dts: marvell: armada-cp110: Add mg_core_clk for ethernet node
ARM64: dts: marvell: armada-cp110: Add clocks for the xmdio node
arm64: defconfig: enable CONFIG_SPI_ARMADA_3700
arm64: dts: marvell: mark CP110 ahci as dma-coherent
arm64: dts: armada-3720-espressobin: wire up spi flash
ARM: dts: stm32: add timers support to stm32mp157c
l2tp: consistent reference counting in procfs and debufs
tipc: introduce ioctl for fetching node identity
x86/i8237: Register device based on FADT legacy boot flag
perf symbols: Remove needless goto
perf symbols: Unify symbol maps
drm: Don't pass the index to drm_property_add_enum()
drm/dp: Rename the edp_sdp_header as dp_sdp_header
stop_machine: Use raw spinlocks
delayacct: Use raw_spinlocks
ath10k: sdio: jump to correct label in error handling path
ath10k: fix spelling mistake: "servive" -> "service"
ath6kl: fix ath6kl_data_tx()'s return type
ath10k: fix kernel panic while reading tpc_stats
ath10k: fix information leak in debugfs
spi: mpc52xx: Use gpio_is_valid()
ASoC: mediatek: preallocate pages use platform device
ASoC: mediatek: preallocate pages use platform device
ASoC: omap: Remove OMAP_MUX dependency from Nokia N810 audio support
ASoC: omap: n810: HS mic is not working, add a widget for it with comment
ASoC: omap: n810: Correct the cpu_dai, platform and codec name
ASoC: omap: n810: Correct the card level dapm_route
locking/qspinlock: Remove duplicate clear_pending() function from PV code
ASoC: mt6797: switch to SPDX license tag
ASoC: mt6797: add structure define and clock control function for 6797
x86/bpf: Clean up non-standard comments, to make the code more readable
ASoC: add mt6797-mt6351 driver and config option
ASoC: mt6351 switch to SPDX license tag
ASoC: uniphier: remove boilerplate from lisence comment
bpf, doc: Update bpf_jit_enable limitation for CONFIG_BPF_JIT_ALWAYS_ON
reset: uniphier: add LD11/LD20 stream demux system reset control
reset: uniphier: add SATA reset control support and change SATA-PHY ID
reset: uniphier: add PCIe reset control support
reset: uniphier: fix USB clock line for LD20
arm64: defconfig: Enable CONFIG_PINCTRL_MT7622 by default
memory: tegra: Remove unused headers inclusions
memory: tegra: Apply interrupts mask per SoC
memory: tegra: Setup interrupts mask before requesting IRQ
memory: tegra: Do not handle spurious interrupts
dt-bindings: memory: tegra: Add hot resets definitions
dt-bindings: Relocate Tegra20 memory controller bindings
dt-bindings: arm: tegra: Document #reset-cells property of the Tegra20 MC
dt-bindings: memory: tegra: Document #reset-cells property of the Tegra30 MC
dt-bindings: arm: tegra: Remove duplicated Tegra30+ MC binding
drm/i915/glk: Add MODULE_FIRMWARE for Geminilake
drm/stm: ltdc: fix warnings in ltdc_plane_create()
drm/stm: ltdc: add mode_valid()
drm/stm: ltdc: fix deferred endpoint management
MAINTAINERS: Add myself as a co-maintainer for the locking subsystem
locking/qspinlock: Add stat tracking for pending vs. slowpath
locking/qspinlock: Use try_cmpxchg() instead of cmpxchg() when locking
locking/qspinlock: Elide back-to-back RELEASE operations with smp_wmb()
locking/qspinlock: Use smp_store_release() in queued_spin_unlock()
locking/qspinlock: Use smp_cond_load_relaxed() to wait for next node
locking/mcs: Use smp_cond_load_acquire() in MCS spin loop
locking/qspinlock: Use atomic_cond_read_acquire()
locking/qspinlock: Kill cmpxchg() loop when claiming lock from head of queue
locking/qspinlock: Remove unbounded cmpxchg() loop from locking slowpath
locking/qspinlock/x86: Increase _Q_PENDING_LOOPS upper bound
locking/qspinlock: Bound spinning on pending->locked transition in slowpath
locking/qspinlock: Merge 'struct __qspinlock' into 'struct qspinlock'
locking/barriers: Introduce smp_cond_load_relaxed() and atomic_cond_read_relaxed()
qxl: drop dummy functions
qxl: hook monitors_config updates into crtc, not encoder.
qxl: move qxl_send_monitors_config()
qxl: remove qxl_io_log()
dmaengine: sprd: Move DMA request mode and interrupt type into head file
dmaengine: sprd: Define the DMA data width type
dmaengine: sprd: Define the DMA transfer step type
vfio: ccw: fix cleanup if cp_prefetch fails
s390/kexec_file: add declaration of purgatory related globals
s390: update defconfigs
MAINTAINERS: update s390 zcrypt maintainers email address
signal: Extend siginfo_layout with SIL_FAULT_{MCEERR|BNDERR|PKUERR}
signal: Remove unncessary #ifdef SEGV_PKUERR in 32bit compat code
signal/signalfd: Add support for SIGSYS
signal/signalfd: Remove __put_user from signalfd_copyinfo
gpio: xra1403: Switch to a fixed upper bound for registers
samples, bpf: remove redundant ret assignment in bpf_load_program()
netfilter: nf_tables: skip synchronize_rcu if transaction log is empty
netfilter: x_tables: check name length in find_match/target, too
netfilter: Fix handling simultaneous open in TCP conntrack
drm/i915/psr/cnl: Set y-coordinate as valid in SDP
drm/i915/debugfs: Print sink PSR status
drm/i915/psr/skl+: Print information about what caused a PSR exit
drm/i915/psr: Prevent PSR exit when a non-pipe related register is written
bpf: update bpf.h uapi header for tools
bpf: add documentation for eBPF helpers (65-66)
bpf: add documentation for eBPF helpers (58-64)
bpf: add documentation for eBPF helpers (51-57)
bpf: add documentation for eBPF helpers (42-50)
bpf: add documentation for eBPF helpers (33-41)
bpf: add documentation for eBPF helpers (23-32)
bpf: add documentation for eBPF helpers (12-22)
bpf: add documentation for eBPF helpers (01-11)
bpf: add script and prepare bpf.h for new helpers documentation
ipvs: initialize tbl->entries in ip_vs_lblc_init_svc()
ipvs: initialize tbl->entries after allocation
samples/bpf: remove the bpf tunnel testsuite.
selftests/bpf: bpf tunnel test.
netfilter: nf_tables: merge exthdr expression into nft core
netfilter: nf_tables: merge rt expression into nft core
netfilter: nf_tables: make meta expression builtin
cgroup: Make cgroup_rstat_updated() ready for root cgroup usage
cgroup: Add memory barriers to plug cgroup_rstat_updated() race window
cgroup: Add cgroup_subsys->css_rstat_flush()
cgroup: Replace cgroup_rstat_mutex with a spinlock
cgroup: Factor out and expose cgroup_rstat_*() interface functions
cgroup: Reorganize kernel/cgroup/rstat.c
cgroup: Distinguish base resource stat implementation from rstat
cgroup: Rename stat to rstat
cgroup: Rename kernel/cgroup/stat.c to kernel/cgroup/rstat.c
cgroup: Limit event generation frequency
cgroup: Explicitly remove core interface files
bpf: fix xdp_generic for bpf_adjust_tail usecase
tools, bpftool: Display license GPL compatible in prog show/list
tools, bpf: Sync bpf.h uapi header
bpf: Add gpl_compatible flag to struct bpf_prog_info
genirq/irq_sim: Use the SPDX license identifier in the header
genirq/irq_sim: Remove the license boilerplate
nvme: lightnvm: add granby support
NVMe: Add Quirk Delay before CHK RDY for Seagate Nytro Flash Storage
nvme: change order of qid and cmdid in completion trace
nvme: fc: provide a descriptive error
perf symbols: Use map->prot in place of type==MAP__FUNCTION
selftests: udp gso benchmark
selftests: udp gso with corking
selftests: udp gso with connected sockets
selftests: udp gso
udp: add gso support to virtual devices
udp: add gso segment cmsg
perf map: Use map->prot in place of type==MAP__FUNCTION
udp: paged allocation with gso
udp: better wmem accounting on gso
udp: generate gso with UDP_SEGMENT
udp: add udp gso
udp: expose inet cork to udp
mtd: rawnand: davinci: don't acquire and enable clock
perf symbols: Use symbol type instead of map->type
perf symbols: No need to special case MAP__FUNCTION in fixup
perf sort: Use mmap->prot on "dcacheline" formatting
perf machine: Set PROT_EXEC for executable PERF_RECORD_MMAP records
perf symbols: Store the ELF symbol type in the symbol struct
perf map: Remove map_type arg from map_groups__find()
perf thread: Make thread__find_map() search all maps
perf thread: Ditch __thread__find_symbol()
perf machine: Use machine__find_kernel_function() instead of open coded version
perf thread: Remove addr_type arg from thread__find_cpumode_addr_location()
perf symbols: Remove map_type arg from dso__find_symbol()
perf map: Remove enum_type arg to map_groups__first()
perf symbols: Unexport symbol_type__is_a()
perf tools: Use kallsyms__is_function()
tools lib symbols: Introduce kallsyms__is_function()
perf symbols: Shorten dso__(first|last)_symbol()
perf ui stdio: Use map_groups__fprintf()
perf map: Shorten map_groups__find() signature
perf tests vmlinux-kallsyms: Use map__for_each_symbol() instead of open coded equivalent
perf tests vmlinux-kallsyms: Use machine__find_kernel_function(_by_name)
perf machine: Remove needless map_type from machine__load_vmlinux_path()
perf machine: Shorten machine__load_kallsyms() signature
perf machine: Introduce machine__kernel_maps()
perf Documentation: Support for asciidoctor
perf map: Shorten map_groups__find_by_name() signature
perf thread: Make thread__find_symbol() return the symbol searched
perf thread: Make thread__find_map() return the map
perf script: Use thread__find_symbol() instead of ad-hoc equivalent
perf thread: Introduce thread__find_symbol()
perf tests: Let 'perf test list' display subtests
perf thread: Introduce thread__find_map()
perf map: Introduce map__has_symbols()
perf dso: Add dso__has_symbols() method
perf symbols: Use __map__is_kernel() instead of ad-hoc equivalent code
drm/i915/selftests: Wait for idle between idle resets as well
drm/i915/dp: fix compliance test adjustments
drm/i915/dp: abstract link config selection
drm/i915/dp: group link config limits in a struct
drm/i915/dp: move eDP VBT bpp clamping code to intel_dp_compute_bpp()
drm/i915/dp: abstract dp link config computation from the rest
drm/i915/dp: move link_bw and rate_select debugging where used
drm/i915/dp: remove stale comment about bw constants
drm/i915: prefer INTEL_GEN() over INTEL_INFO()->gen
ASoC: fsl_ssi: Use u32 variable type when using regmap_read()
ASoC: amd: rename audio_substream_data variable
x86/dumpstack: Explain the reasoning for the prologue and buffer size
x86/dumpstack: Save first regs set for the executive summary
x86/dumpstack: Add a show_ip() function
x86/fault: Dump user opcode bytes on fatal faults
x86/dumpstack: Add loglevel argument to show_opcodes()
x86/dumpstack: Improve opcodes dumping in the code section
x86/dumpstack: Carve out code-dumping into a function
x86/dumpstack: Unexport oops_begin()
x86/dumpstack: Remove code_bytes
drm/i915: Compile out engine debug for release
ASoC: mediatek: switch to SPDX license tag
ASoC: mediatek: add MT7622 AFE compatible in documentation
ASoC: mediatek: add MT7622 AFE support
ASoC: mediatek: Add MTK_STREAM_NUM to mtk-base-afe.h
ASoC: mediatek: simplify the control logic of MT2701 I2S
arm64: defconfig: Enable bluetooth USB support
arm64: defconfig: Enable Marvell WiFi-Ex PCIe driver
arm64: defconfig: Enable Atmel Maxtouch driver
arm64: defconfig: Enable HID over I2C drivers
arm64: defconfig: Enable ChromeOS EC drivers for supported Chromebooks.
arm64: defconfig: Enable Rockchip io-domain driver
arm64: defconfig: Enable typec-phy and extcon-usbc-cros-ec for rk3399
spi: Check presence the of ->transfer[_xxx]() before registering a controller
HID: alps: Fix some style in 't4_read_write_register()'
HID: alps: Check errors returned by 't4_read_write_register()'
HID: alps: Save a memory allocation in 't4_read_write_register()' when writing data
HID: alps: Report an error if we receive invalid data in 't4_read_write_register()'
perf top: Use __map__is_kernel()
perf stat: Display length strings of each run for --table option
perf stat: Add --table option to display time of each run
perf stat: Display time in precision based on std deviation
perf check-headers.sh: Add support to check 2 independent files
perf check-headers.sh: Simplify arguments passing
perf buildid-cache: Support --purge-all option
perf buildid-cache: Support --list option
iwlwifi: mvm: set wakeup filters for wowlan "any" configuration
iwlwifi: mvm: remove check for non low latency TIDs
iwlwifi: make bitfield a u32 instead of u16
iwlwifi: pcie: remove non-responsive device
iwlwifi: fw: combine loading of last page block into main copy loop
iwlwifi: fw: harden page loading code
iwlwifi: mvm: move skb padding reservation earlier
iwlwifi: support new csr addresses for hw address
iwlwifi: pcie: allow sending pre-built A-MSDUs
iwlwifi: cfg: remove unnecessary cfg data in non-dvm devices
iwlwifi: introduce Image Loader (IML) - new firmware image
iwlwifi: allow different csr flags for different device families
HID: multitouch: implement precision touchpad latency and switches
HID: multitouch: simplify the settings of the various features
HID: multitouch: make use of HID_QUIRK_INPUT_PER_APP
HID: input: append a suffix matching the application
HID: generic: create one input report per application type
HID: store the full list of reports in the hidinput
ASoC: add mt6351 codec driver
spi/bcm63xx-hspi: Enable the clock before calling clk_get_rate().
ASoC: compress: Add helper functions for component open/free
ASoC: Remove platform code now everything is componentised
ASoC: compress: Only call free for components which have been opened
ASoC: Update email address for Vinod
drm: rcar-du: Zero-out sg_tables when duplicating plane state
video: omap: Improve a size determination in omapfb_do_probe()
video: sm501fb: Improve a size determination in sm501fb_probe()
video: fbdev-MMP: Improve a size determination in path_init()
video: fbdev-MMP: Delete an error message for a failed memory allocation in two functions
video: auo_k190x: Delete an error message for a failed memory allocation in auok190x_common_probe()
video: sh_mobile_lcdcfb: Delete an error message for a failed memory allocation in two functions
video: sh_mobile_meram: Delete an error message for a failed memory allocation in sh_mobile_meram_probe()
drm/i915: Use seqlock in engine stats
sgi-xp: fix xpnet_dev_hard_start_xmit()'s return type
staging: wilc1000: reorder functions to avoid forward declaration in linux_wlan
staging: wilc1000: change function to static in linux_wlan
staging: wilc1000: remove inner block '{}' in handle_remain_on_chan()
staging: wilc1000: rename P2P_LISTEN_STATE variable to use lowercase
staging: wilc1000: remove unused enum 'stats_flags'
staging: wilc1000: remove unused elements in 'wilc_priv' struct
staging: wilc1000: rename wlan init and deinit function prefixed with wil1000
staging: wilc1000: rename num_reg_frame macro to have uppercase in macro name
staging: wilc1000: rename WILC_WFI_stats to avoid uppercase
staging: wilc1000: rename mac status macros and moved related #define together
staging: wilc1000: remove unused #define related to MAC status
staging: wilc1000: remove used #define HIF_SDIO_GPIO_IRQ
staging: wilc1000: remove unsed typedef wilc_debug_func
staging: wilc1000: remove unused variable scan_while_connected
staging: wilc1000: simplified if conditions in spi_data_write()
staging: wilc1000: remove inner {} in wilc_parse_network_info()
staging: wicl1000: removed the unsed variables in wilc_parse_network_info()
staging: wilc1000: remove 'cmd' variable in wilc_spi functions
staging: wilc1000: remove unnecessary assingment from 'if' conditions
staging: wilc1000: align the #define in wilc_spi file
staging: ks7010: refactor ks_wlan_translate_scan function
staging: ks7010: avoid blank line between declarations in ks_wlan_get_aplist
staging: ks7010: use ether_addr_copy in ks_wlan_get_aplist
staging: ks7010: avoid if-else condition in ks_wlan_get_power
staging: ks7010: avoid an 'else' in ks_wlan_set_power
staging: ks7010: use ether_addr_copy in ks_wlan_get_wap
staging: ks7010: refactor ks_wlan_set_wap function
staging: ks7010: align values in frequency_list array
staging: ks7010: use ether_addr_copy in ks_wlan_set_encode_ext
staging: ks7010: refactor ks_wlan_set_pmksa function
staging: ks7010: refactor ks_wlan_set_cts_mode function
staging: ks7010: refactor ks_wlan_set_preamble function
staging: ks7010: refactor ks_wlan_set_power_mgmt function
staging: ks7010: refactor ks_wlan_set_scan_type function
staging: ks7010: refactor ks_wlan_set_beacon_lost function
staging: gdm724x: remove redundant license information
staging: gdm724x: add SPDX identifiers to all files.
staging: kernel.h: Prevent macro expantion bug in container_of_safe()
dmaengine: Update email address for Vinod
drm/bridge/synopsys: dsi: use adjusted_mode in mode_set
xfrm: remove VLA usage in __xfrm6_sort()
remoteproc: Remove depends on HAS_DMA in case of platform dependency
rpmsg: qcom_smd: Access APCS through mailbox framework
rpmsg: Add driver_override device attribute for rpmsg_device
power: supply: axp288_fuel_gauge: Remove polling from the driver
power: supply: axp288_fuelguage: Do not bind when the fg function is not used
power: supply: axp288_charger: Do not bind when the charge function is not used
power: supply: axp288_charger: Support 3500 and 4000 mA input current limit
power: supply: s3c-adc-battery: fix driver data initialization
power: supply: charger-manager: Verify polling interval only when polling requested
power: supply: sysfs: Use enum to specify property
power: supply: ab8500: Drop AB8540/9540 support
power: supply: ab8500_fg: fix spelling mistake: "Disharge" -> "Discharge"
power: supply: simplify getting .drvdata
power: supply: bq27xxx: Add support for BQ27426
gpio-poweroff: Use gpiod_set_value_cansleep
drm/todo: Fallout from v3d review
mkiss: remove redundant check for len > 0
net: amd8111e: remove redundant duplicated if statement
sctp: remove the unused sctp_assoc_is_match function
igb: Add support for adding offloaded clsflower filters
nfp: flower: ignore duplicate cb requests for same rule
nfp: flower: support offloading multiple rules with same cookie
nfp: print PCIe link bandwidth on probe
nfp: reset local locks on init
ASoC: mediatek: use snd_soc_dai_get_drvdata() to get the private data
igb: Add the skeletons for tc-flower offloading
igb: Add MAC address support for ethtool nftuple filters
igb: Enable nfc filters to specify MAC addresses
ASoC: mediatek: add documents for mt6797
igb: Allow filters to be added for the local MAC address
ASoC: mt6797: add mt6797 platform driver
igb: Add support for enabling queue steering in filters
igb: Add support for MAC address filters specifying source addresses
batman-adv: fix batadv_interface_tx()'s return type
igb: Enable the hardware traffic class feature bit for igb models
igb: Fix queue selection on MAC filters on i210
net: rules: Move l3mdev attribute validation to a helper
sctp: fix identification of new acks for SFR-CACC
sctp: fix const parameter violation in sctp_make_sack
neighbour: support for NTF_EXT_LEARNED flag
ipv6: addrconf: don't evaluate keep_addr_on_down twice
ipv6: sr: Compute flowlabel for outer IPv6 header of seg6 encap mode
igb: Fix not adding filter elements to the list
signal/xtensa: Use force_sig_fault where appropriate
signal/xtensa: Consistenly use SIGBUS in do_unaligned_user
signal/um: Use force_sig_fault where appropriate
signal/sparc: Use force_sig_fault where appropriate
signal/sparc: Use send_sig_fault where appropriate
signal/sh: Use force_sig_fault where appropriate
signal/s390: Use force_sig_fault where appropriate
signal/riscv: Replace do_trap_siginfo with force_sig_fault
signal/riscv: Use force_sig_fault where appropriate
signal/parisc: Use force_sig_fault where appropriate
signal/parisc: Use force_sig_mceerr where appropriate
signal/openrisc: Use force_sig_fault where appropriate
signal/nios2: Use force_sig_fault where appropriate
signal/nds32: Use force_sig_fault where appropriate
signal/mips: Use force_sig_fault where appropriate
signal/microblaze: Use force_sig_fault where appropriate
signal/microblaze: Remove the commented out force_sig_info in do_page_fault
signal/m68k: Use force_sig_fault where appropriate
signal/hexagon: Use force_sig_fault as appropriate
signal/c6x: Use force_sig_fault where appropriate
signal/alpha: Use force_sig_fault where appropriate
signal/alpha: Use send_sig_fault where appropriate
signal/powerpc: Replace TRAP_FIXME with TRAP_UNK
signal/alpha: Replace TRAP_FIXME with TRAP_UNK
signal: Add TRAP_UNK si_code for undiagnosted trap exceptions
signal/unicore32: Use FPE_FLTUNK instead of 0 in ucf64_raise_sigfpe
signal/powerpc: Replace FPE_FIXME with FPE_FLTUNK
signal/ia64: Replace FPE_FIXME with FPE_FLTUNK
signal/alpha: Replace FPE_FIXME with FPE_FLTUNK
signal: Remove ifdefs for BUS_MCEERR_AR and BUS_MCEERR_AO
signal: Remove SEGV_BNDERR ifdefs
signal: Stop special casing TRAP_FIXME and FPE_FIXME in siginfo_layout
signal: Reduce copy_siginfo_to_user to just copy_to_user
signal: Ensure every siginfo we send has all bits initialized
signal/nds32: Use force_sig(SIGILL) in do_revisn
signal/nds32: Use force_sig in unhandled_interruption and unhandled_exceptions
ixgbe: Avoid performing unnecessary resets for macvlan offload
ixgbe: Drop real_adapter from l2 fwd acceleration structure
ixgbe/fm10k: Only support macvlan offload for types that support destination filtering
macvlan: Provide function for interfaces to release HW offload
macvlan: Add function to test for destination filtering support
macvlan: macvlan_count_rx shouldn't be static inline AND extern
ixgbe/fm10k: Drop tracking stats for macvlan broadcast/multicast
macvlan: Use software path for offloaded local, broadcast, and multicast traffic
macvlan: Rename fwd_priv to accel_priv and add accessor function
ixgbe: Drop support for macvlan specific unicast lists
drm/i915/icl: Correctly clear lost ctx-switch interrupts across reset for Gen11
drm/i915: Remove obsolete min/max freq setters from debugfs
drm/i915: Use memset64() to align the ring with MI_NOOP
staging: vboxvideo: fix mode_valid's return type
staging: pi433: break long lines in pi433_if.c
staging: gdm724x: fix gdm_lte_tx()'s return type
staging: rtl8723bs: fix rtw_cfg80211_monitor_if_xmit_entry()'s return type
staging: visornic: fix visornic_xmit()'s return type
staging: wlan-ng: fix p80211knetdev_hard_start_xmit()'s return type
staging/wilc1000: fix wilc_mac_xmit()'s return type
staging: wilc1000: updated TODO list
staging: wilc1000: remove registering of ndo_do_ioctl callback
staging: wilc1000: rename pu32InactiveTime to avoid camelCase issue
staging: wilc1000: remove the use of goto label in wilc_spi_clear_int_ext()
staging: wilc1000: rename goto labels starting with '_' in wilc1000_wlan_init()
staging: wilc1000: rename goto label '_fail_' linux naming convension
staging: wilc1000: remove the use of goto label in wilc_init()
staging: wilc1000: remove goto label '_done_' in handle_listen_state_expired()
staging: wilc1000: remove the use of goto label in wilc_spi_read_int()
staging: wilc1000: remove the use of goto label in wilc_spi_read_size()
staging: wilc1000: remove the use of goto label in spi_cmd_complete()
staging: wilc1000: remove multiple define for mac connect and disconnect
staging: wilc1000: remove multiple define used for MAX_SSID_LEN
staging: wilc1000: remove unused macros in wilc module
staging: wilc1000: added identifiers name in function definations
staging: wilc1000: rename WID_LOGTerminal_Switch to avoid camelCase
staging: wilc1000: fix line over 80 chars in change_station()
staging: wilc1000: use sizeof(variable) for memory allocated to store key info
staging: wilc1000: handle error condition in add_key() and remove auth_type variable
staging: wilc1000: refactor add_key() to avoid duplicated code
staging: wilc1000: remove inner block {} and resetting of mode variable
staging: wilc1000: split add_key() to avoid line over 80 chars
staging: wilc1000: rename variable using datatype in their name in add_key()
staging: wilc1000: rename WILC_WFI_wep_key & WILC_WFI_wep_key_len
staging: wilc1000: remove line over 80 char warning in few functions
staging: wilc1000: remove unused 'struct add_key_params'
staging: wilc1000: remove line over 80 char in cfg_connect_result()
staging: wilc1000: fix line over 80 char issue in clear_shadow_scan()
staging: wilc1000: rename hAgingTimer to avoid camelCase issue
staging: wilc1000: refactor mgmt_tx to fix line over 80 chars
staging: wilc1000: rename WILC_WFI_p2p_rx & s32Freq to avoid camelCase
staging: wilc1000: refactor WILC_WFI_p2p_rx() to avoid line over 80 char
staging: wilc1000: remove line over 80 char warnings in set_wiphy_params()
staging: wilc1000: removed unused static variables for gtk and ptk information
staging: wilc1000: refactor scan() to free kmalloc memory on failure cases
staging: ks7010: refactor hostif_sme_set_pmksa function
staging: ks7010: use ether_addr_copy in hostif_sme_multicast_set
staging: ks7010: use ether_addr_equal in hostif_data_request
staging: ks7010: use ether_addr_equal in hostif_data_indication
staging: ks7010: use ether_addr_copy in hostif_mib_get_confirm
staging: ks7010: use ether_addr_copy() instead of custom copy
staging: ks7010: remove duplicated ks_wlan_handler_def declaration
staging: ks7010: remove WPS definition conditional code
staging: ks7010: fix line exceding 80 characters in ks_wlan_get_range
staging: ks7010: refactor ks_wlan_get_mode function
staging: ks7010: refactor ks_wlan_set_mode function
staging: ks7010: remove some duplicated definitions in ks_wlan_net.c
staging: ks7010: avoid use of brackets in single line if
staging: ks7010: refactor hostif_sme_power_mgmt_set function
staging: ks7010: use definitions from kernel headers in hostif_data_indication function
staging: ks7010: join some debug traces in get_current_ap function
staging: ks7010: avoid some if-else code in get_current_ap function
staging: ks7010: remove KSC_OPNOTSUPP related code
staging: ks7010: use IW_HANDLER macro in ks_wlan_handler
staging: ks7010: review includes of ks_hostif file
staging: ks7010: removes data_buff field of ks_wlan_private struct
staging: ks7010: remove two fields of ks_wlan_private struct
staging: ks7010: avoid blank line between definitions in hostif_data_request
staging: ks7010: fix warning aout long line in init_request
staging: ks7010: remove superfluous comments in ks_hostif source file
staging: ks7010: avoid one level indentation in devio_rec_ind function
staging: ks7010: change name and type for device_open_status field
staging: ks7010: assign dev_alloc_name() result to variable before check it
staging: ks7010: use u8 instead of unsigned char for firmware buffers
staging: ks7010: fix error paths in ks7010_sdio_remove function
staging: ks7010: check sdio_set_block_size return value
staging: ks7010: replace create_workqueue with alloc_workqueue
staging: ks7010: move MODULE_DEVICE_TABLE related code
staging: ks7010: avoid one extra level indentation in ks_wlan_hw_rx function
staging: ks7010: review debug and error messages in ks7010_sdio source
staging: ks7010: review comment style in ks7010_sdio source file
staging: ks7010: add REG suffix to sdio register definitions
staging: ks7010: delete not used definitions in ks7010_sdio source
staging: ks7010: move sdio specific register definitions into source file
staging: ks7010: move ROM_FILE definition into source file
staging: ks7010: avoid casts in michael_mic_function calls
staging: mt7621-mmc: Fix calculation typo in msdc_init_gpd_bd
staging: mt7621-mmc: Remove unused card_workqueue from msdc_host
staging: mt7621-mmc: Remove old references to tasklet
staging: mt7621-mmc: Add annotations about held locks
staging: mt7621-mmc: Correct datatypes for io and sanitize io access
staging: mt7621-mmc: Replace dma dir with mmc_get_dma_dir
staging: mt7621-mmc: Fix dma_map_sg may map to fewer entries
staging: mt7621-mmc: Remove multiple assignments
staging: mt7621-mmc: Fix dereference before check in msdc_drv_pm
serial: uartps: Remove static port array
serial: uartps: Move cnds_uart_get_port to probe
serial: uartps: Use dynamic array for console port
serial: uartps: Remove console_initcall from the driver
sc16is7xx: Check for an error when the clock is enabled.
tty: n_gsm: fix gsm_mux_net_start_xmit()'s return type
serial: 8250_early: Setup divider when uartclk is passed
tty/nozomi: fix inconsistent indentation
tty/nozomi: cleanup DUMP() macro
spi: s3c64xx: samsung: Remove support for Exynos5440
typec: tcpm: fix compiler warning about stupid things
typec: tcpm: Add support for sink PPS related messages
typec: tcpm: Represent source supply through power_supply
power: supply: Add 'usb_type' property and supporting code
power: supply: Add error checking of psy desc during registration
Documentation: power: Initial effort to document power_supply ABI
typec: tcpm: Add core support for sink side PPS
doc: usb: ci-hdrc-usb2: Add property "mux-controls"
usb: do not reset if a low-speed or full-speed device timed out
clk: meson: gxbb: expose VDEC_1 and VDEC_HEVC clocks
printk: wake up klogd in vprintk_emit
dt-bindings: clock: meson8b: export the NAND clock
dmaengine: ti: New directory for Texas Instruments DMA drivers
dmaengine: shdmac: Change platform check to CONFIG_ARCH_RENESAS
dmaengine: stm32-mdma: Fix incomplete Hw descriptors allocator
dmaengine: stm32-mdma: align TLEN and buffer length on burst
qtnfmac: pearl: pcie: fix memory leak in qtnf_fw_work_handler
rt2x00: rt2800: add antenna diversity for RT5370G
brcmsmac: phy_lcn: remove duplicate code
brcmfmac: add support for BCM4366E chipset
drm/virtio: fix mode_valid's return type
mwifiex: pcie: tighten a check in mwifiex_pcie_process_event_ready()
mwifiex: uap: support cfg80211 ignore_broadcast_ssid=2
mwifiex: uap: filter duplicate ERP IE
nfp: bpf: optimize comparisons to negative constants
nfp: bpf: tabularize generations of compare operations
nfp: bpf: optimize add/sub of a negative constant
nfp: bpf: remove double space
drm/i2c: tda998x: fix mode_valid's return type
drm/qxl: fix mode_valid's return type
drm/gma500: fix psb_intel_lvds_mode_valid()'s return type
drm/gma500: fix mode_valid's return type
drm/bridge: tc358767: fix mode_valid's return type
drm/bochs: fix mode_valid's return type
arm64: dts: allwinner: Add dts file for Libre Computer Board ALL-H3-CC H5 ver.
arm64: dts: allwinner: Sort dtb entries in Makefile
arm64: dts: allwinner: h5: Add cpu0 label for first cpu
ARM: dts: sun8i: h2+: Add Libre Computer Board ALL-H3-CC H2+ ver.
ARM: dts: sun8i: h2-plus: Sort dtb entries in Makefile
arm: dts: sun8i: h3: libretech-all-h3-cc: Move board definition to common dtsi
drm/udl: fix mode_valid's return type
drm/mgag200: fix mode_valid's return type
drm/hisilicon: fix mode_valid's return type
drm/bridge: adv7511: fix mode_valid's return type
drm/ast: fix mode_valid's return type
ARM: dts: sun8i: h3: fix ALL-H3-CC H3 ver VCC-1V2 regulator voltage
ARM: dts: nes: add Nintendo NES/SuperNES Classic Edition support
ARM: dts: sun8i: a23/a33: declare NAND pins
ARM: dts: renesas: r8a7790: Add FDP1 instances
ARM: dts: r8a77470: Add SCIF DMA support
ARM: dts: r8a77470: Add SCIF support
ARM: dts: silk: Enable watchdog support
ARM: dts: alt: Enable watchdog support
ARM: dts: gose: Enable watchdog support
ARM: dts: wheat: Enable watchdog support
ARM: dts: blanche: Enable watchdog support
ARM: dts: porter: Enable watchdog support
ARM: dts: koelsch: Enable watchdog support
ARM: dts: lager: Enable watchdog support
ARM: dts: r8a7793: Add RWDT node
ARM: dts: r8a7792: Add RWDT node
ARM: dts: iwg22m: Add watchdog support to SoM dtsi
ARM: dts: iwg20m: Add watchdog support to SoM dtsi
ARM: dts: r8a7794: Add watchdog support to SoC dtsi
ARM: dts: r8a7791: Add watchdog support to SoC dtsi
ARM: dts: r8a7790: Add watchdog support to SoC dtsi
ARM: dts: r8a7745: Add watchdog support to SoC dtsi
ARM: dts: r8a7743: Add watchdog support to SoC dtsi
ARM: dts: r8a7794: Adjust SMP routine size
ARM: dts: r8a7793: Adjust SMP routine size
ARM: dts: r8a7792: Adjust SMP routine size
ARM: dts: r8a7791: Adjust SMP routine size
ARM: dts: r8a7790: Adjust SMP routine size
ARM: dts: r8a7745: Adjust SMP routine size
ARM: dts: r8a7743: Adjust SMP routine size
ARM: dts: r7s72100: Add Capture Engine Unit (CEU)
ARM: dts: r8a77470: Add IRQC support
ARM: dts: r8a77470: Add SYS-DMAC support
ARM: dts: renesas: r8a7794: Add FDP1 instances
ARM: dts: renesas: r8a7793: Add FDP1 instances
ARM: dts: renesas: r8a7791: Add FDP1 instances
drm/mediatek: Use ERR_CAST instead of ERR_PTR(PTR_ERR())
drm: adv7511: Add support for i2c_new_secondary_device
dt-bindings: adv7511: Extend bindings to allow specifying slave map addresses
phy: Add a driver for the ATH79 USB phy
phy: core: Allow phy_pm_runtime_xxx API calls with NULL phy
phy: exynos-mipi-video: Simplify code by using regmap_update_bits()
soc: qcom: Add GENI based QUP Wrapper driver
soc: qcom: smd-rpm: Add msm8998 compatible
firmware: qcom: scm: Add ipq4019 soc compatible
rslib: Allocate decoder buffers to avoid VLAs
mtd: rawnand: diskonchip: Allocate rs control per instance
rslib: Split rs control struct
rslib: Simplify error path
rslib: Remove GPL boilerplate
rslib: Add SPDX identifiers
rslib: Cleanup top level comments
rslib: Cleanup whitespace damage
dm/verity_fec: Use GFP aware reed solomon init
rslib: Add GFP aware init function
bpf: reduce runtime of test_sockmap tests
drm/atomic: Print debug message on atomic check failure
bpf: sockmap, remove samples program
bpf: sockmap, add selftests
bpf: sockmap, add a set of tests to run by default
bpf: sockmap, code sockmap_test in C
tools/bpf: remove test_sock_addr from TEST_GEN_PROGS
selftests: bpf: update .gitignore with missing file
nvme-pci: Use pci_sriov_configure_simple() to enable VFs
net: ena: Use pci_sriov_configure_simple() to enable VFs
PCI/IOV: Add pci-pf-stub driver for PFs that only enable VFs
PCI/IOV: Add pci_sriov_configure_simple()
tools/bpf: add verifier tests for accesses to map values
bpf: allow map helpers access to map values directly
samples/bpf: extend test_tunnel_bpf.sh with xfrm state test
bpf: add helper for getting xfrm states
liquidio: Swap VF representor Tx and Rx statistics
net/ipv6: fix LOCKDEP issue in rt6_remove_exception_rt()
net/tls: remove redundant second null check on sgout
fsl/fman_port: remove redundant check on port->rev_info.major
drm: Don't EXPORT drm_add/reset_display_info
qed: Fix copying 2 strings
ipconfig: Write NTP server IPs to /proc/net/ipconfig/ntp_servers
ipconfig: Create /proc/net/ipconfig directory
ipconfig: Correctly initialise ic_nameservers
ipconfig: Document /proc/net/pnp
ipconfig: BOOTP: Request CONF_NAMESERVERS_MAX name servers
ipconfig: BOOTP: Don't request IEN-116 name servers
ipconfig: Tidy up reporting of name servers
ipconfig: Document setting of NIS domain name
mt76x2: fix TXD_INFO bitmask definition
mt7601u: run calibration works after finishing scanning
mt7601u: use EWMA to calculate avg_rssi
mt76x2: set default values in TX_ALC_CFG_{1, 2} for tempetaure compensation
mt76x2: fix tx_alc_enabled check
mt76x2: remove unnecessary MT_TX_ALC_CFG_4 configuration
mt76: check qos ack policy before reordering packets
mt76: set RX_FLAG_DUP_VALIDATED for A-MPDU reordered packets
mt76: fix potential sleep in atomic context
mt76: rework tx power handling
mt76: toggle driver station powersave bit before notifying mac80211
mt76: add missing VHT maximum A-MPDU length capability
mt76: stop tx queues from the driver callback instead of common code
mt76x2: make mt76x2_mac_reset routine static
mt76x2: fix tssi initialization for 5GHz band
mt7601u: phy: mark expected switch fall-through
rtlwifi: btcoex: remove identical statements within if-else branches
rsi: Fix 'invalid vdd' warning in mmc
rsi: fix nommu_map_sg overflow kernel panic
rsi: advertise 5GHz support based on device capability
rsi: enable power save by default for coex
rsi: parse TID from data frame correctly
rsi: increase max supported aggregation subframes
rsi: use appropriate interface for power save configuration
rsi: device bootup parameter configuration
rsi: disable fw watchdog timer during reset
rsi: remove unecessary PTR_ALIGN()s
rsi: roaming enhancements
rsi: enable 80MHz clock by default
rsi: move descriptor preparation to core
rsi: move xtend_desc structure from rsi_main.h to rsi_mgmt.h
cw1200: fix spelling mistake: "Mailformed" -> "Malformed"
qtnfmac: add DFS offload support
rhashtable: improve rhashtable_walk stability when stop/start used.
rhashtable: reset iter when rhashtable_walk_start sees new table
rhashtable: Revise incorrect comment on r{hl, hash}table_walk_enter()
rhashtable: remove outdated comments about grow_decision etc
tcp: md5: only call tp->af_specific->md5_lookup() for md5 sockets
regmap: include <linux/ktime.h> from include/linux/regmap.h
platform/x86: apple-gmux: fix gmux_get_client_id()'s return type
drm/i915/breadcrumbs: Keep the fake irq armed across reset
video: fbdev: sh_mobile_meram: Drop SUPERH platform dependency
video: fbdev: omap2: omapfb: displays: simplify getting .drvdata
video: fbdev: simplify getting .drvdata
video: fbdev: core: Change return type to vm_fault_t
video: fbdev: aty: radeon_pm: Replace mdelay with msleep in radeonfb_pci_suspend
video: fbdev: aty: aty128fb: Replace mdelay with msleep in aty128_set_suspend
video: fbdev: savage: Replace mdelay with usleep_range in savage_init_hw
ARM: dts: exynos: Fix invalid node referenced by i2c20 alias in Peach Pit and Pi
ASoC: wm_adsp: Account for name prefixes when toggling preloader
drm/i915/selftests: Fix uninitialized variable
arm64: dts: uniphier: fix input delay value for legacy mode of eMMC
ARM: dts: uniphier: add syscon-phy-mode property to each ethernet node
ARM: dts: uniphier: add required clocks and resets to Pro4 ethernet node
arm64: dts: uniphier: add syscon-phy-mode property to each ethernet node
arm64: dts: uniphier: add clock-names and reset-names to ethernet node
ALSA: hda - Sanity check of access to SPDIF controls array
ALSA: dice: improve support for ancient firmware for DICE
audit: allow not equal op for audit by executable
Revert "net: init sk_cookie for inet socket"
arm64: dts: stratix10: Change pad skew values for EMAC0 PHY driver
spi: pxa2xx: Allow 64-bit DMA
ARM: dts: consistently use 'atmel' as at24 manufacturer in cyclone5
dt-bindings: thermal: rcar-gen3-thermal: update register size in example
net/mlx5e: Enable adaptive-TX moderation
net/dim: Support adaptive TX moderation
net/dim: Rename *_get_profile() functions to *_get_rx_moderation()
drm/i915/fbdev: Enable late fbdev initial configuration
vhost_net: use packet weight for rx handler, too
doc: Add vendor prefix for Kaohsiung
of: Don't create device for OPP tables
drm/i915: Skip printing global offsets for per-engine scratch pages
drm/i915: Don't dump umpteen thousand requests
drm/i915: Build request info on stack before printk
drm/i915: Add compiler barrier to wait_for
drm/i915: Use ktime on wait_for
arm64: dts: allwinner: a64: bananapi-m64: add usb otg
arm64: dts: allwinner: axp803: Add drivevbus regulator
drm/xen-front: use simple display pipe prepare_fb helper
drm/atomic: better doc for implicit vs explicit fencing
drm/mxsfb: Use simple_display_pipe prepare_fb helper
drm/pl111: Use simple_display_pipe prepare_fb helper
drm/tve200: Use simple_display_pipe prepare_fb helper
drm: Move simple_display_pipe prepare_fb helper into gem fb helpers
drm/vmwgfx: Remove no-op prepare/cleanup_fb callbacks
drm: panel-orientation-quirks: Add quirk for Lenovo Ideapad Mixx 320
drm: panel-orientation-quirks: Add quirk for Lenovo Ideapad Mixx 310
ALSA: hda - Use a macro for snd_array iteration loops
ACPI / CPPC: Document CPPC sysfs interface
cpufreq / CPPC: Support for CPPC v3
ACPI / CPPC: Check for valid PCC subspace only if PCC is used
ACPI / CPPC: Add support for CPPC v3
PM / core: fix deferred probe breaking suspend resume order
dt-bindings: tda998x: add the calibration gpio
drm/i2c: tda998x: add CEC support
drm/i2c: tda9950: add CEC driver
ARM: dts: da850: fix W=1 warnings with pinmux node
ARM: dts: da850-lcdk: add unit name for memory node
ARM: dts: da850: get rid of skeleton.dtsi
netfilter: merge meta_bridge into nft_meta
netfilter: nf_tables: always use an upper set size for dynsets
netfilter: nf_tables: support timeouts larger than 23 days
netfilter: xtables: use ipt_get_target_c instead of ipt_get_target
netfilter: ebtables: add ebt_get_target and ebt_get_target_c
netfilter: x_tables: remove duplicate ip6t_get_target function call
netfilter: ebtables: remove EBT_MATCH and EBT_NOMATCH
netfilter: ebtables: add ebt_free_table_info function
netfilter: add __exit mark to helper modules
netfilter: add NAT support for shifted portmap ranges
netfilter: nf_tables: Simplify set backend selection
netfilter: nf_tables: initial support for extended ACK reporting
netfilter: nf_tables: simplify lookup functions
netfilter: nf_flow_table: fix offloading connections with SNAT+DNAT
netfilter: nf_flow_table: add missing condition for TCP state check
netfilter: nf_flow_table: tear down TCP flows if RST or FIN was seen
netfilter: nf_flow_table: add support for sending flows back to the slow path
netfilter: nf_flow_table: in flow_offload_lookup, skip entries being deleted
netfilter: nf_flow_table: add a new flow state for tearing down offloading
netfilter: nf_flow_table: make flow_offload_dead inline
netfilter: nf_flow_table: track flow tables in nf_flow_table directly
netfilter: nf_flow_table: fix priv pointer for netdev hook
netfilter: nf_flow_table: move init code to nf_flow_table_core.c
netfilter: nf_flow_table: relax mixed ipv4/ipv6 flowtable dependencies
netfilter: nf_flow_table: move ipv6 offload hook code to nf_flow_table
netfilter: nf_flow_table: move ip header check out of nf_flow_exceeds_mtu
netfilter: nf_flow_table: move ipv4 offload hook code to nf_flow_table
clk: renesas: Add r8a77990 CPG Core Clock Definitions
memory: omap-gpmc: Avoid redundant NULL check
drm/rockchip: psr: Remove flush by CRTC
drm/rockchip: Disallow PSR for the whole atomic commit
drm/rockchip: psr: Sanitize semantics of allow/inhibit API
drm/rockchip: psr: Avoid redundant calls to .set() callback
drm/rockchip: analogix_dp: Do not call Analogix code before bind
drm/bridge: analogix_dp: Split the platform-specific poweron in two parts
drm/rockchip: pre dither down when output bpc is 8bit
drm/bridge: analogix_dp: Properly disable aux chan retries on rockchip
drm/bridge: analogix_dp: Properly log AUX CH errors
drm/bridge: analogix_dp: Reorder plat_data->power_off to happen sooner
drm/bridge: analogix_dp: Move fast link training detect to set_bridge
drm/bridge: analogix_dp: Fix incorrect operations with register ANALOGIX_DP_FUNC_EN_1
drm/bridge: analogix_dp: Fix timeout of video streamclk config
drm/bridge: analogix_dp: Don't use ANALOGIX_DP_PLL_CTL to control pll
drm/rockchip: Restore psr->state when enable/disable psr failed
drm/bridge: analogix_dp: Reset aux channel if an error occurred
drm/bridge: analogix_dp: Fix AUX_PD bit for Rockchip
drm/bridge: analogix_dp: Check dpcd write/read status
drm/bridge: analogix_dp: Fix incorrect usage of enhanced mode
drm/bridge: analogix_dp: Extend hpd check time to 100ms
drm/bridge: analogix_dp: Ensure edp is disabled when shutting down the panel
drm/bridge: analogix_dp: Set PD_INC_BG first when powering up edp phy
drm/bridge: analogix_dp: Wait for HPD signal before configuring link
drm/bridge: analogix_dp: Retry bridge enable when it failed
drm/bridge: analogix_dp: Don't use fast link training when panel just powered up
drm/bridge: analogix_dp: Check AUX_EN status when doing AUX transfer
drm/bridge: analogix_dp: Move enable video into config_video()
wcn36xx: pass information elements in scan requests
wcn36xx: send bss_type in scan requests
wcn36xx: handle scan cancellation when firmware support is missing
wcn36xx: cancel pending scan request when interface goes down
wcn36xx: abort scan request when 'dequeued' indicator is sent
ath10k: enable sta idle power save
ath10k: enable SRRI/DRRI support on ddr for WCN3990
ath10k: add support for shadow register for WNC3990
ath10k: add hw params for shadow register support
ath10k: enable hw checksum for wcn3990
wcn36xx: pass correct BSS index when deleting BSS keys
ath10k: convert wow pattern from 802.3 to 802.11
ath10k: support MAC address randomization in scan
ath10k: add WMI_SERVICE_AVAILABLE_EVENT support
net: fib_rules: fix l3mdev netlink attr processing
ARM: dts: sun8i: h3: set the cpu-supply to VDD-CPUX on ALL-H3-CC H3 ver
ARM: dts: sun8i: h3: fix ALL-H3-CC H3 ver VDD-CPUX voltage
selftests: net: update .gitignore with missing test
dca: make function dca_common_get_tag static
Input: alps - demystify trackstick initialization for v3 and v6 protocols
drm/i915/kbl: Add KBL GT2 sku
arm64: dts: broadcom: Add reference to Raspberry Pi 3 B+
media: v4l: fwnode: Fix comment incorrectly mentioning v4l2_fwnode_parse_endpoint
arm64: defconfig: Enable LAN and BT support for RPi 3 B+
ARM: multi_v7_defconfig: Enable LAN and BT for RPi 3 B+
ARM: bcm2835_defconfig: Enable VCHIQ driver
ARM: bcm2835_defconfig: Enable LAN78XX driver
net/ipv6: Fix missing rcu dereferences on from
net/ipv6: add rcu locking to ip6_negative_advice
ARM: dts: bcm2837: Add Raspberry Pi 3 B+
dt-bindings: bcm: Add Raspberry Pi 3 B+
ARM: dts: bcm2837: Add missing GPIOs of Expander
ARM: dts: bcm283x: Fix PWM pin assignment
drm/vc4: Add CTM registers to debugfs
drm/vc4: Add CTM support
media: tda1997x: Use bitwise or for setting subdev flags
media: ov7740: Set subdev HAS_EVENT flag
media: ov7740: Fix control handler error at the end of control init
media: ov7740: Check for possible NULL return value in control creation
media: ov7740: Fix number of controls hint
media: omap3isp: make omap3isp_prev_csc and omap3isp_prev_rgbtorgb const
drm/vc4: Add support for plane alpha
gpu: drm: vc4: simplify getting .drvdata
media: v4l: omap3isp: make v4l2_file_operations const
dt-bindings: drm/bridge: Document Cadence DSI bridge bindings
drm/bridge: Add Cadence DSI driver
regulator: bd9571mwv: Add support for backup mode
mfd: bd9571mwv: Allow DDR Backup Power register access
mfd: bd9571mwv: Add DDR Backup Power register bit definitions
dt-bindings: mfd: bd9571mwv: Document DDR Backup Mode properties
Revert "staging: nvec: Augment TODO file with GPIO work item"
qed: Add configuration information to register dump and debug data
qed: Delete unused parameter p_ptt from mcp APIs
net: stmmac: Implement logic to automatically select HW Interface
r8169: don't use netif_info et al before net_device has been registered
net: init sk_cookie for inet socket
platform/x86: Kconfig: Fix dell-laptop dependency chain.
platform/x86: Simplify getting .drvdata
platform/x86: asus-wireless: Fix NULL pointer dereference
platform/x86: dell-smbios: Match on www.dell.com in OEM strings too
MIPS: BCM47XX: Use __initdata for the bcm47xx_leds_pdata
MIPS: Use generic GCC library routines from lib/
MIPS: vmlinuz: Use generic ashldi3
lib: Rename compiler intrinsic selects to GENERIC_LIB_*
Add notrace to lib/ucmpdi2.c
firmware: bcm47xx_nvram: Support small (0x6000 B) NVRAM partitions
MIPS: BCM47XX: Add support for Netgear WNR1000 V3
MIPS: dts: Avoid unneeded built-in.a in DTS dirs
ARM: s3c24xx: Fix invalid SPDX identifier
ARM: davinci_all_defconfig: enable support for remoteproc drivers
spi: Add an helper to flush the message queue
spi: Expose spi_{map,unmap}_buf() for internal use
regulator: axp20x: add drivevbus support for axp803
platform: x86: intel_scu_ipc: Replace mdelay with usleep_range in intel_scu_ipc_i2c_cntrl
net: fib_rules: add extack support
fib_rules: move common handling of newrule delrule msgs into fib_nl2rule
tc-testing: updated ife test cases
net: introduce a new tracepoint for tcp_rcv_space_adjust
MAINTAINERS: add maintainer for the DPAA2 PTP clock driver
staging: fsl-dpaa2/rtc: add rtc driver
drivers/staging/fsl-mc: Fix DPIO error path issue
drivers/staging/fsl-mc: Use devm_memremap/devm_ioremap for DPIO
staging: rtl8192u: Replace mdelay with usleep_range in dm_TXPowerTrackingCallback_TSSI
staging: rtl8192u: Replace mdelay with usleep_range in rtl8192_usb_disconnect
staging: rtl8192u: Replace GFP_ATOMIC with GFP_KERNEL in ieee80211_softmac_init
staging: rtl8192u: Replace GFP_ATOMIC with GFP_KERNEL in prism2_wep_init
staging: rtl8192u: Replace GFP_ATOMIC with GFP_KERNEL in ieee80211_tkip_init
staging: rtl8192u: Replace GFP_ATOMIC with GFP_KERNEL in ieee80211_ccmp_init
staging: rtl8192e: Fixed coding style around a plus sign
staging: comedi: cb_pcidas64: fix alignment of function parameters
staging: vc04_services: Remove depends on HAS_DMA in case of platform dependency
staging: vchiq_core: Free kthreads in error case
staging: vchiq_core: Move all wake-ups to one point
staging: vchiq_arm: Avoid long udelay
staging: vchiq_arm: Fix multiline dereferences
staging: vc04_services: Use __func__ macro
staging: vchiq_core: remove BITSET_ZERO
staging: vchiq_core: Remove stackhog in process_free_queue
staging: vchiq_core: Fix missing semaphore release in error case
staging: vboxvideo: Fix line size exceeding 80 columns.
staging: wilc1000: Remove unnecessary braces {} around single statement block
Staging: most: Move comments to the end of line
staging: pi433: Fixed typos and grammar in documentation
staging: pi433: use help in Kconfig description
staging: pi433: break long lines in rf69.c
staging: pi433: break long lines
staging: pi433: cleanup tx_fifo locking
staging: greybus: simplify getting .drvdata
staging: greybus: Fix warning to limit chars per line
staging: mt7621-mmc: Remove unused field dma_addr of msdc_host
staging: mt7621-mmc: Remove unused field cmd_rsp_done of msdc_host
staging: mt7621-mmc: Remove unused field cmd_r1b_done in msdc_host
staging: mt7621-mmc: Remove unused field dma_left_size of msdc_host
staging: mt7621:mmc: Remove unused field reserved from msdc_host
staging: mt7621-mmc: Remove unused field starttime from msdc_host
staging: mt7621-mmc: Change default transfer mode to DMA
staging: mt7621-mmc: Refactor msdc_init_gpd_bd
staging: mt7621-mmc: Remove unused field xfersz from msdc_dma
staging: mt7621-mmc: Remove flags from msdc_dma
staging: mt7621-mmc: Remove unused fields from msdc_dma
staging: mt7621-mmc: Start cleanup of msdc_dma_config
staging: mt7621-mmc: Remove unused function msdc_dma_dump
staging: mt7621-mmc: Remove unused field burstsz from msdc_dma
staging: mt7621-mmc: Remove unused field data_offset from msdc_hw
staging: mt7621-mmc: Relax cpu while waiting for stable clock
staging: mt7621-mmc: Remove code for not existent config
staging: mt7621-mmc: Refactor and rename msdc_reset to msdc_reset_hw
staging: mt7621-mmc: Remove power callbacks from msdc_hw
staging: mt7621-mmc: Fix null pointer deref if ext sdio irq enabled
staging: mt7621-mmc: Remove unused field disable_cd_eirq
staging: mt7621-mmc: Remove unused field enable_cd_eirq from msdc_hw
staging: mt7621-mmc: Remove unused field get_cd_status from msdc_hw
staging: mt7621-mmc: Remove unused code from board.h
staging: mt7621-spi: Remove redundant owner assignment
staging: mt7621-pinctrl: Remove redundant owner assignment
staging: mt7621-pci: Remove redundant owner assignment
staging: mt7621-mmc: Remove redundant opcode check
staging: mt7621-mmc: Fix: copy_from_user() returns a positive value
staging: mt7621-mmc: Fix debug file world writable
staging: mt7621-mmc: Remove error message in debug
staging: mt7621-mmc: Remove constant flag MSDC_HIGHSPEED
staging: mt7621-mmc: Remove unused functions
staging: mt7621-mmc: Remove unused global: msdc_6575_host
staging: mt7621-mmc: Remove constant flag
staging: mt7621-mmc: Fix power management by removing old api
staging: mt7621-mmc: Remove duplicate defines
staging: mt7621-mmc: Fix requesting of irq
staging: mt7621-mmc: Fix dma_alloc_coherent should get device as first param
staging: mt7621-mmc: Remove dead codepath from probe function
staging: mt7621-mmc: Fix different caps for different devices
staging: mt7621-mmc: Remove unnecessary field from struct msdc_hw
staging: mt7621-mmc: Remove unnecessary setting of dev.platform_data
staging: mt7621-mmc: Fix bug on dma_alloc_coherent fail
staging: mt7621-mmc: Fix unmatched release_mem_regin
staging: mt7621-mmc: Remove code checking for old kernel versions
staging: mt7621-mmc: Fix memory leek in case of error in probe
staging: mt7621-mmc: Refactor suspend, resume
staging: mt7621-mmc: Cleanup function mt_msdc_init
staging: mt7621-mmc: Remove unused datastructures
staging: mt7621-mmc: Remove code for different soc types
staging: mt7621-mmc: Remove code guarded by nonexistent config option
staging: mt7621-mmc: Replace seq_printf with seq_puts where possible
staging: mt7621-mmc: Remove redundant driver owner assignment
staging: mt7621-mmc: Fix style of braces
staging: mt7621-mmc: Remove global initialise to 0
staging: mt7621-mmc: Fix trailing statements
staging: mt7621-mmc: Remove unnecessary typedefs
staging: mt7621-mmc: Fix Pointer Location
staging: mt7621-mmc: Fix spacing
staging: mt7621-mmc: Fix indent for sd.c
staging: mt7621-mmc: Fix indent for mt6575_sd.h
staging: mt7621-mmc: Fix indent for dbg.h
staging: mt7621-mmc: Fix indent for board.h
staging: mt7621-mmc: Fix indent for dbg.c
staging: mt7621-mmc: Remove whitespace errors in sd.c
staging: mt7621-mmc: Remove whitespace errors in mt6575_sd.h
staging: mt7621-mmc: Remove whitespace errors in dbg.h
staging: mt7621-mmc: Remove whitespace errors in dbg.c
staging: mt7621-mmc: Remove whitespace errors in board.h
staging: mt7621-gpio: prefer unsigned int to bare unsigned
staging: mt7621-pci: Hack 2 more PCI interrupts for gnubee1
staging: mt7621-eth: Fix sparse warning in ethtool.c
staging: vt6655: remove unnecessary line breaks in function definition.
staging: vt6655: add handling memory leak on vnt_start()
staging: vt6655: check for memory allocation failures
usb: core: hcd: mark expected switch fall-through
PCI/ACPI: Request LTR control from platform before using it
staging: lustre: add container_of_safe()
staging: lustre: rearrange placement of CPU partition management code.
staging: lustre: remove include/linux/libcfs/linux/linux-cpu.h
staging: lustre: convert osc_quota hash to rhashtable
staging: lustre: convert obd uuid hash to rhashtable
staging: lustre: convert lov_pool to use rhashtable
staging: lustre: ptlrpc: convert conn_hash to rhashtable
staging: lustre: remove libcfs/linux/libcfs.h
staging: lustre: move stack-check macros to libcfs_debug.h
staging: lustre: llite: correct removexattr detection
staging: lustre: llite: use xattr_handler name for ACLs
staging: lustre: llite: style changes in xattr.c
staging: lustre: llite: cleanup xattr code comments
staging: lustre: llite: use proper types in the xattr code
staging: lustre: llite: cleanup posix acl xattr code
staging: lustre: llite: record in stats attempted removal of lma/link xattr
staging: lustre: llite: remove newline in fullname strings
staging: lustre: llite: fix invalid size test in ll_setstripe_ea()
staging: lustre: llite: eat -EEXIST on setting trusted.lov
staging: lustre: llite: return from ll_adjust_lum() if lump is NULL
staging: lustre: llite: break up ll_setstripe_ea function
staging: lustre: llite: add simple comment about lustre.lov xattrs
staging: lustre: llite: refactor lustre.lov xattr handling
staging: lustre: llite: Remove filtering of seclabel xattr
staging: lustre: llite: handle xattr cache refill race
staging: lustre: ldlm: xattr locks are lost on mdt
staging: lustre: obd: change debug reporting in lmv_enqueue()
staging: lustre: obd: create it_has_reply_body()
staging: lustre: llite: initialize xattr->xe_namelen
staging: lustre: libcfs: use dynamic minors for /dev/{lnet, obd}
staging: lustre: remove cruft from libcfs/linux/libcfs.h
staging: lustre: discard linux-time.h
staging: lustre: discard cfs_time_before_64()
staging: lustre: discard cfs_duration_sec()
staging: lustre: libcfs: remove cfs_timeout_cap()
staging: lustre: libcfs: discard cfs_time_after()
staging: lustre: libcfs: discard cfs_time_shift().
staging: lustre: libcfs: discard cfs_time_add/sub
staging: lustre: cfs_time_current() -> jiffies.
staging: Android: Add 'vsoc' driver for cuttlefish.
staging: android: ion: remove duplicate buffer field initializes
staging: lustre: ldlm: free resource when ldlm_lock_create() fails.
staging: lustre: tidy up ldlm_resource_putref()
staging: lustre: remove unneeded include.
staging: lustre: remove unused hash tables.
staging: lustre: remove unused ldlm_completion_ast_async()
staging: lustre: remove invariant in cl_io_read_ahead()
staging: nvec: convert to use GPIO descriptors
staging: nvec: cleanup use of dev in probe function
staging: nvec: simplify getting .drvdata
staging: fbtft: Fixed lines exceeding columns limit
staging: wilc1000: Augment TODO file with GPIO work item
staging: olpc_dcon: Augment TODO file with GPIO work item
staging: nvec: Augment TODO file with GPIO work item
staging: gpio-mt7621: Include the right header
staging: atomisp: Augment TODO file with GPIO work item
staging: iio: Augment TODO file with GPIO work item
staging: greybus: Add TODO file with GPIO work items
staging: fbtft: Add TODO file with GPIO work item
staging: emxx_udc: Add GPIO descriptor work to TODO
staging: ks7010: init local variables when they are declared in ks7010_sdio_probe
staging: ks7010: align comments in ks_wlan_private_handler
staging: ks7010: review includes of michael_mic.c file
staging: ks7010: review includes of ks7010_sdio file
staging: ks7010: remove enum from ks_wlan.h header
staging: ks7010: review includes of ks_wlan.h file
staging: ks7010: review includes of ks_wlan_net.c file
staging: ks7010: refactor ks_wlan_set_wps_enable function
staging: ks7010: refactor ks_wlan_set_tx_gain function
staging: ks7010: refactor ks_wlan_set_rx_gain function
staging: ks7010: change if-else condition assignment to use ternary operator
staging: ks7010: refactor ks_wlan_set_encode function
staging: ks7010: remove auxiliar zeros buffer in ks_wlan_get_encode
staging: ks7010: remove not used enum in eap_packet header file
staging: ks7010: remove struct ieee802_1x_eapol_key
staging: ks7010: group some cases in switch-case block in hostif_mib_set_confirm
staging: ks7010: refactor code for hostif_sme_sleep_set function
staging: ks7010: remove nonsense break from case block
staging: ks7010: change return value of ks_wlan_do_power_save function
staging: ks7010: use linux circular buffer header macros to handle tx and rx queues
staging: ks7010: use msecs_to_jiffies in ks7010_rw_function function
staging: ks7010: change sdio related read/write function parameter types
staging: ks7010: fix remaining long line warnings in ks7010_sdio source
staging: ks7010: remove nonsense comment
staging: ks7010: remove '\' character from michael_block function
staging: ks7010: remove nosense #if 1 directive
staging: ks7010: remove KS_WLAN_MEM_FLAG definition
staging: ks7010: rewrite hif_align_size inline function
staging: ks7010: remove KS_ATOM preprocessor condtional code
staging: ks7010: move and rename DEVICE_ALIGNMENT into correct header
staging: ks7010: indent enum properly in eap_packet.h header file
staging: ks7010: change ETHER_HDR_SIZE definition to use the size of struct ether_hdr
staging: ks7010: remove two redefined defines in eap_packet.h header
staging: ks7010: remove EAPOL_VERSION preprocessor definition
staging: ks7010: remove not used enum values from eap_packet.h header
staging: ks7010_sdio: fix NULL pointer dereference and memory leak
staging: ks7010: Replace mdelay with usleep_range in ks7010_upload_firmware
staging: ks7010: replace kmalloc() + memcpy() with kmemdup()
staging: ks7010: fix some style issues about long lines
staging: ks7010: ks7010: factor out firmware copy process into ks7010_copy_firmware
staging: ks7010: fix error handling in ks7010_upload_firmware
staging: ks7010: factor out initial enqueue process into ks7010_sme_enqueue_events
staging: ks7010: factor out ks_wlan_private init process into ks7010_private_init
staging: ks7010: factor out irq setup process to ks7010_sdio_setup_irqs
staging: ks7010: fix label to jump to in error case
staging: ks7010: factor out irq enable process to ks7010_sdio_init_irqs
staging: ks7010: remove unnecessary 'out of memory' message
staging: ks7010: Remove unnecessary casts in 'struct ks_wlan_handler_def'.
staging: ks7010: Change 'device_open_status' to a bool.
staging: ks7010: Rename ks_wlan_set_multicast_list()
staging: ks7010: Remove trailing _t from 'struct michael_mic_t'.
staging: ks7010: Remove trailing _t from 'struct wps_status_t'.
staging: ks7010: Remove trailing _t from 'struct pmk_t'.
staging: ks7010: Remove trailing _t from 'struct pmk_list_t'.
staging: ks7010: Remove trailing _t from 'struct wpa_status_t'.
staging: ks7010: Remove trailing _t from 'struct mic_failure_t'.
staging: ks7010: Remove trailing _t from 'struct wpa_key_t'.
staging: ks7010: Remove trailing _t from 'struct scan_ext_t'.
staging: ks7010: Remove trailing _t from 'struct sleep_status_t'.
staging: ks7010: Remove trailing _t from 'struct power_save_status_t'.
staging: ks7010: Remove trailing _t from 'struct local_eeprom_sum_t'.
staging: ks7010: Remove trailing _t from 'struct local_gain_t'.
staging: ks7010: Remove trailing _t from 'struct local_aplist_t'.
staging: ks7010: Remove trailing _t from 'struct local_ap_t'.
staging: ks7010: Remove trailing _t from 'struct wps_ie_t'.
staging: ks7010: Remove trailing _t from 'struct rsn_ie_t'.
staging: ks7010: Remove trailing _t from 'struct hostt_t'.
staging: ks7010: Remove unused 'struct hostif_mic_failure_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_mic_failure_request_t'.
staging: ks7010: Remove unused 'struct hostif_sleep_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_sleep_request_t'.
staging: ks7010: Remove unused 'struct hostif_phy_information_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_phy_information_request_t'.
staging: ks7010: Remove unused 'struct hostif_bss_scan_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_bss_scan_request_t'.
staging: ks7010: Remove unused 'struct hostif_associate_indication_t'.
staging: ks7010: Remove trailing _t from 'struct association_response_t'.
staging: ks7010: Remove trailing _t from 'struct association_request_t'.
staging: ks7010: Remove unused 'struct last_associate_t'.
staging: ks7010: Remove unused 'struct hostif_adhoc_set_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_adhoc_set2_request_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_adhoc_set_request_t'.
staging: ks7010: Remove unused 'struct hostif_infrastructure_set_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_infrastructure_set_request_t'.
staging: ks7010: Remove unused 'struct hostif_ps_adhoc_set_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_ps_adhoc_set_request_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_request_t'.
staging: ks7010: Remove unused 'struct hostif_stop_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_stop_request_t'.
staging: ks7010: Remove unused 'struct hostif_connect_indication_t'.
staging: ks7010: Remove trailing _t from 'struct link_ap_info_t'.
staging: ks7010: Remove trailing _t from 'struct ap_info_t'.
staging: ks7010: Remove trailing _t from 'struct rate_set16_t'.
staging: ks7010: Remove trailing _t from 'struct ibss_parms_t'.
staging: ks7010: Remove trailing _t from 'struct cf_parms_t'.
staging: ks7010: Remove trailing _t from 'struct ds_parms_t'.
staging: ks7010: Remove trailing _t from 'struct fh_parms_t'.
staging: ks7010: Remove trailing _t from 'struct rate_set8_t'.
staging: ks7010: Remove trailing _t from 'struct ssid_t'.
staging: ks7010: Remove unused 'struct hostif_start_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_start_request_t'.
staging: ks7010: Remove unused 'struct hostif_power_mgmt_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_power_mgmt_request_t'.
staging: ks7010: Remove unused 'struct hostif_mib_set_confirm_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_mib_value_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_mib_get_request_t'.
staging: ks7010: Remove trailing _t from 'struct channel_list_t'.
staging: ks7010: Remove unused 'struct hostif_data_indication_t'.
staging: ks7010: Remove trailing _t from 'struct hostif_data_request_t'.
staging: ks7010: Remove trailing _t from 'struct pmk_cache_t'.
staging: ks7010: Remove trailing _t from 'struct rsn_mode_t'.
staging: ks7010: Remove trailing _t from 'struct wpa_suite_t'.
staging: ks7010: Use the ARRAY_SIZE() macro to calculate array sizes.
staging: ks7010: replace IS_HIF_CONF with inline function
staging: ks7010: replace IS_HIF_IND with inline function
staging: ks7010: IS_OFDM_EXT_RATE macro with inline function
staging: ks7010: replace IS_11BG_RATE macro with inline function
staging: ks7010: replace IS_OFDM_RATE macro with inline function
staging: ks7010: replace IS_11B_RATE macro with inline function
fs: kernfs: Adding new return type vm_fault_t
char: mspec: change return type to vm_fault_t
ASoC: sgtl5000: Switch to SPDX identifier
ASoC: sgtl5000: Fix the spelling of 'exceed'
firmware: coreboot: Add coreboot framebuffer driver
firmware: coreboot: Remove unused coreboot_table_find
firmware: vpd: Probe via coreboot bus
firmware: memconsole: Probe via coreboot bus
firmware: coreboot: Expose the coreboot table as a bus
fpga: fpga-region: comment on fpga_region_program_fpga locking
fpga: lattice machxo2: Add Lattice MachXO2 support
dt: bindings: fpga: add lattice machxo2 slave spi binding description
fpga: Remove depends on HAS_DMA in case of platform dependency
uio: uio_fsl_elbc_gpcm: Remove owner assignment from platform_driver
mux: adg792a: switch to using .probe_new
misc: ti-st: Replace GFP_ATOMIC with GFP_KERNEL in kim_probe
misc: tifm: Remove VLA
uio: Change return type to vm_fault_t
misc: cxl: Change return type to vm_fault_t
regulator: wm8350: fix missing increment of loop index i
ARM: multi_v7_defconfig: Disable CONFIG_FB_SH_MOBILE_MERAM
ARM: shmobile: defconfig: Disable CONFIG_FB_SH_MOBILE_MERAM
usb: gadget: udc: core: Document the relation between usb_ep_queue() and completion callback
microblaze: dts: replace 'linux,stdout-path' with 'stdout-path'
microblaze: remove redundant early_printk support
microblaze: remove unnecessary prom.h includes
ARM: dts: r8a7793: Convert to new LVDS DT bindings
ARM: dts: r8a7791: Convert to new LVDS DT bindings
serial: core: Make sure compiler barfs for 16-byte earlycon names
ARM: dts: r8a7790: Convert to new LVDS DT bindings
ANDROID: binder: re-order some conditions
arm: shmobile: Add the RZ/N1D (R9A06G032) to the shmobile Kconfig
bpf: btf: Clean up btf.h in uapi
bpf: fix virtio-net's length calc for XDP_PASS
ARM: dts: imx6: RDU2: add eGalax touchscreen
ARM: dts: imx6: RDU2+: add assigned clocks for GPU 3D
ARM: dts: imx6: RDU2: bump SoC/PU operating points by 25mV
ARM: dts: imx6qdl-tx6: Remove 'bus-format-override' property
soc: imx: gpc: Do not pass static memory as platform data
soc: imx: gpcv2: Do not pass static memory as platform data
tty: nozomi: fix spelling mistake in macro NOZOMI_STATE_UKNOWN
tty: ipwireless: Replace GFP_ATOMIC with GFP_KERNEL in ipwireless_network_create
microblaze: Fix simpleImage format generation
staging: fsl-dpaa2/ethsw: Fix tag control information value overwrite
staging: fsl-dpaa2/ethsw: Remove unused variable irq
ARM: dts: tpc: Device tree description of the iMX6Q TPC board
staging: emxx_udc: Change platform dependency to ARCH_RENESAS
serial/aspeed-vuart: Implement quick throttle mechanism
serial/aspeed-vuart: Implement rx throttling
serial/8250: export serial8250_read_char
serial: Introduce UPSTAT_SYNC_FIFO for synchronised FIFOs
serial: Remove depends on HAS_DMA in case of platform dependency
earlycon: Initialize port->uartclk based on clock-frequency property
tty: serial: 8250: pass IRQ shared flag to UART ports
serial: 8250: omap: Provide ability to enable/disable UART as wakeup source
serial: 8250_dw: Limit dw8250_tx_wait_empty quirk to armada-38x devices
serial: sh-sci: Support for HSCIF RX sampling point adjustment
serial: sh-sci: Add support for dynamic instances
usb: phy: Add Kconfig entry for Tegra PHY driver
usb: tegra: Move utmi-pads reset from ehci-tegra to tegra-phy
usb: phy: tegra: Cleanup error messages
arm: shmobile: Change platform dependency to ARCH_RENESAS
arm64: allwinner: h6: restore the usage of CCU slice macros
ARM: dts: sun4i: Fix incorrect clocks for displays
drm: dw-hdmi-i2s: Remove owner assignment from platform_driver
ALSA: usb-audio: add more quirks for DSD interfaces
ALSA: cmi8328: array_find() can be static
drm/i915/gvt: Mark expected switch fall-through in handle_g2v_notification
drm/i915/gvt/scheduler: Remove unnecessary NULL checks in sr_oa_regs
drm/i915/gvt: scan non-privileged batch buffer for debug purpose
drm/i915/gvt: Update time slice more frequently
drm/i915/gvt: Use real time to do timer check
hv_netvsc: select needed ucs2_string routine
mtd: Add sysfs attribute for mtd OOB available size
mtd: dataflash: replace msleep with usleep_range
mtd: devices: simplify getting .drvdata
dmaengine: txx9dmac: simplify getting .drvdata
dmaengine: ste_dma40: simplify getting .drvdata
dmaengine: idma64: simplify getting .drvdata
dmaengine: fsldma: simplify getting .drvdata
dmaengine: at_xdmac: simplify getting .drvdata
dmaengine: at_hdmac: simplify getting .drvdata
serial: mvebu-uart: add suspend/resume support
tty: serial: msm_serial: Add support for suspend/resume
tty: serial: simplify getting .drvdata
Documentation sysfs-bus-usb: Add rx_lanes and tx_lanes introduced in USB 3.2
USB: USB 3.2 Add sysfs entries for a usb device rx_lanes and tx_lanes
USB: show USB 3.2 Dual-lane devices as Gen Xx2 during device enumeration
usb: set root hub lane counts
USB: Add support to store lane count used by USB 3.2
usb: define HCD_USB32 speed option for hosts that support USB 3.2 dual-lane
dt-bindings: usb: rt1711h device tree binding document
staging: typec: rt1711h typec chip driver
usb: host: xhci-plat: Fix clock resource by adding a register clock
usb: host: xhci-plat: Remove useless test before clk_disable_unprepare
usb: typec: tcpm: remove max_snk_mv/ma/mw
usb: typec: wcove: remove max_snk_* for sink config
dt-bindings: usb: fusb302: remove max-sink-* properties
usb: typec: fusb302: remove max_snk_* for sink config
usb: typec: tcpm: pdo matching optimization
usb: hub: Don't wait for connect state at resume for powered-off ports
usb: mtu3: simplify getting .drvdata
usb: phy: simplify getting .drvdata
USB: phy: drop legacy board-file support
USB: renesas_usbhs: drop unused legacy-phy support
USB: musb: omap2430: drop non-DT support
USB: ehci-omap: drop unused legacy phy support
USB: core: hcd: drop support for legacy phys
USB: phy: drop unused legacy controller-phy bind helper
usbip: usbip_host: refine probe and disconnect debug msgs to be useful
usb: Remove depends on HAS_DMA in case of platform dependency
usb: isp1760: Replace mdelay with msleep in isp1760_stop
usb: isp1760: Replace mdelay with msleep in isp1760_init_core
usb: storage: Replace mdelay with msleep in init_freecom
usb: audio-v2: Correct the comment for struct uac_clock_selector_descriptor
usb: roles: Fix potential NULL dereference in intel_xhci_usb_probe()
usb: mon: Change return type to vm_fault_t
batman-adv: Remove unused dentry without DEBUGFS
batman-adv: Avoid bool in structures
batman-adv: Avoid old nodes disabling multicast optimizations completely
batman-adv: Disable CONFIG_BATMAN_ADV_DEBUGFS by default
batman-adv: Start new development cycle
batman-adv: don't pass a NULL hard_iface to batadv_hardif_put
MAINTAINERS: add maintainer for Qualcomm HIDMA drivers
dmaengine: dw: simplify getting .drvdata
dmaengine: qcom: simplify getting .drvdata
net/ipv6: Remove unncessary check on f6i in fib6_check
net/ipv6: Make from in rt6_info rcu protected
net/ipv6: Move release of fib6_info from pcpu routes to helper
net/ipv6: Move rcu locking to callers of fib6_get_cookie_safe
net/ipv6: Move rcu_read_lock to callers of ip6_rt_cache_alloc
net/ipv6: Rename rt6_get_cookie_safe
net/ipv6: Clean up rt expires helpers
netfilter: nf_flow_table: rename nf_flow_table.c to nf_flow_table_core.c
netfilter: nf_flow_table: cache mtu in struct flow_offload_tuple
ipv6: make ip6_dst_mtu_forward inline
ARM: samsung: simplify getting .drvdata
arm64: dts: exynos: Move syscon poweroff and restart nodes under the PMU
ARM: dts: exynos: Move syscon poweroff and restart nodes under the PMU
iio: accel: st_accel: Add support for the SMO8840 ACPI id
dt-bindings: iio:imu:mpu6050: support more interrupt types
iio:imu: inv_mpu6050: support more interrupt types
iio: imu: inv_mpu6050: use set_power_itg function in i2c mux
iio: imu: inv_mpu6050: clean set_power_itg and fix usage
dt-bindings: iio: adc: mcp320x: Use vendor prefix compatible strings
iio: adc: select buffer for at91-sama5d2_adc
iio: hid-sensor-trigger: Fix sometimes not powering up the sensor after resume
staging: iio: ad7746: Fix bound checkings
mtd: Remove depends on HAS_DMA in case of platform dependency
drm/i915: Do NOT skip the first 4k of stolen memory for pre-allocated buffers v2
mtd: spi-nor: clear Winbond Extended Address Reg on switch to 3-byte addressing.
scsi: ips: fix firmware timestamps for 32-bit
scsi: esas2r: use ktime_get_real_seconds()
scsi: mvumi: Using module_pci_driver
scsi: target: add driver-api document
scsi: target: target_core_user.[ch]: convert comments into DOC:
scsi: target: target_core_transport.c: enable+fix kernel-doc
scsi: target: target_core_transport.c: fix kernel-doc warnings
scsi: st: Replace GFP_ATOMIC with GFP_KERNEL in new_tape_buffer
scsi: st: Replace GFP_ATOMIC with GFP_KERNEL in st_probe
scsi: devinfo: BLIST_RETRY_ASC_C1 for Fujitsu ETERNUS
scsi: devinfo: add BLIST_RETRY_ITF for EMC Symmetrix
scsi: devinfo: warn on undefined blist flags
scsi: devinfo: change blist_flag_t to 64bit
scsi: devinfo: use const_ilog2 for array indices
drm/i915/psr: Timestamps for PSR entry and exit interrupts.
drm/i915/psr: Control PSR interrupts via debugfs
drm/i915: Enable edp psr error interrupts on bdw+
drm/i915: Enable edp psr error interrupts on hsw
mtd: spi-nor: Add support for XM25QH64A and XM25QH128A
mtd: spi-nor: hisi: Avoid generic function names
mtd: spi-nor: cadence-quadspi: Add DMA support for direct mode reads
mtd: spi-nor: add support for ISSI is25lp256
mtd: spi-nor: Add Micron MT25QU02 support
scsi: ilog2: create truly constant version for sparse
scsi: storvsc: Select channel based on available percentage of ring buffer to write
audit: add syscall information to FEATURE_CHANGE records
PCI: ibmphp: Fix use-before-set in get_max_bus_speed()
soc: ti: knav_qmss: Use percpu instead atomic for stats counter
memory: aemif: add support for board files
memory: aemif: don't rely on kbuild for driver's name
crypto: caam: - Use kmemdup() function
crypto: caam - strip input zeros from RSA input buffer
hwrng: via - support new Centaur CPU
crypto: rsa - Remove unneeded error assignment
crypto: testmgr - Allow different compression results
crypto: caam - allow retrieving 'era' from register
crypto: caam - staticize caam_get_era()
crypto: cavium - Fix smp_processor_id() warnings
crypto: cavium - Fix statistics pending request value
crypto: cavium - Prevent division by zero
crypto: cavium - Limit result reading attempts
crypto: cavium - Fix fallout from CONFIG_VMAP_STACK
crypto: remove several VLAs
crypto: api - laying defines and checks for statically allocated buffers
crypto: chelsio - remove redundant assignment to cdev->ports
crypto: chelsio - don't leak information from the stack to userspace
crypto: chelsio - Fix potential NULL pointer dereferences
crypto: authencesn - don't leak pointers to authenc keys
crypto: authenc - don't leak pointers to authenc keys
crypto: zstd - Add zstd support
crypto: ecc - Actually remove stack VLA usage
crypto: caam/qi - fix IV DMA mapping and updating
crypto: caam - fix IV DMA mapping and updating
crypto: caam - fix DMA mapping dir for generated IV
spi: simplify getting .drvdata
ASoC: sh: Update menu title and platform dependency
ASoC: sh: Drop SUPERH platform dependency
ASoC: Intel: kbl_rt5663_rt5514_max98927: Replace GFP_ATOMIC with GFP_KERNEL
ASoC: Intel: kbl_rt5663_max98927: Replace GFP_ATOMIC with GFP_KERNEL
ASoC: Intel: kbl_da7219_max98357a: Replace GFP_ATOMIC with GFP_KERNEL
ASoC: Intel: cht_bsw_nau8824: Replace GFP_ATOMIC with GFP_KERNEL
ASoC: Intel: bytcr_rt5651: Replace GFP_ATOMIC with GFP_KERNEL
ASoC: Intel: bytcht_es8316: Replace GFP_ATOMIC with GFP_KERNEL
ASoC: Intel: byt-max98090: Replace GFP_ATOMIC with GFP_KERNEL
tun: do not compute the rxhash, if not needed
lan78xx: Add support to dump lan78xx registers
dt-bindings: Document the DT bindings for lan78xx
lan78xx: Read LED states from Device Tree
lan78xx: Read MAC address from DT if present
sfc: set and clear interrupt affinity hints
net/ipv6: Fix ip6_convert_metrics() bug
qed* : Add new TLV to request PF to update MAC in bulletin board
qed* : use trust mode to allow VF to override forced MAC
geneve: configure MTU based on a lower device
geneve: check MTU for a minimum in geneve_change_mtu()
geneve: cleanup hard coded value for Ethernet header length
geneve: remove white-space before '#if IS_ENABLED(CONFIG_IPV6)'
team: account for oper state
tipc: confgiure and apply UDP bearer MTU on running links
tipc: implement configuration of UDP media MTU
tipc: set default MTU for UDP media
liquidio: Added ndo_get_vf_stats support
media: sound, isapnp: allow building more drivers with COMPILE_TEST
media: sound, media: allow building ISA drivers it with COMPILE_TEST
media: omap3isp: Allow it to build with COMPILE_TEST
net: ethernet: ave: add support for phy-mode setting of system controller
dt-bindings: net: ave: add syscon-phy-mode property to configure phy-mode setting
net: ethernet: ave: add multiple clocks and resets support as required property
media: omap3isp: Enable driver compilation on ARM with COMPILE_TEST
media: omap: omap-iommu.h: allow building drivers with COMPILE_TEST
media: rcar-vin: enable support for r8a77970
media: rcar-vin: enable support for r8a7796
media: rcar-vin: enable support for r8a7795
media: rcar-vin: extend {start, stop}_streaming to work with media controller
net: phy: mdio-boardinfo: Allow recursive mdiobus_register()
media: rcar-vin: add link notify for Gen3
media: rcar-vin: parse Gen3 OF and setup media graph
y2038: ipc: Redirect ipc(SEMTIMEDOP, ...) to compat_ksys_semtimedop
y2038: ipc: Enable COMPAT_32BIT_TIME
y2038: ipc: Use __kernel_timespec
y2038: ipc: Report long times to user space
y2038: ipc: Use ktime_get_real_seconds consistently
y2038: xtensa: Extend sysvipc data structures
y2038: powerpc: Extend sysvipc data structures
y2038: sparc: Extend sysvipc data structures
y2038: parisc: Extend sysvipc data structures
y2038: mips: Extend sysvipc data structures
y2038: arm64: Extend sysvipc compat data structures
y2038: s390: Remove unneeded ipc uapi header files
y2038: ia64: Remove unneeded ipc uapi header files
y2038: alpha: Remove unneeded ipc uapi header files
y2038: x86: Extend sysvipc data structures
media: rcar-vin: add chsel information to rvin_info
media: rcar-vin: change name of video device
media: rcar-vin: add group allocator functions
media: rcar-vin: prepare for media controller mode initialization
media: rcar-vin: force default colorspace for media centric mode
media: rcar-vin: use different v4l2 operations in media controller mode
media: rcar-vin: add flag to switch to media controller mode
media: rcar-vin: add function to manipulate Gen3 chsel value
media: rcar-vin: enable Gen3 hardware configuration
media: rcar-vin: move media bus configuration to struct rvin_dev
media: rcar-vin: cache video standard
y2038: asm-generic: Extend sysvipc data structures
media: rcar-vin: simplify how formats are set and reset
media: rcar-vin: break out format alignment and checking
media: rcar-vin: align pixelformat check
media: rcar-vin: update bytesperline and sizeimage calculation
media: rcar-vin: fix handling of single field frames (top, bottom and alternate fields)
media: rcar-vin: set a default field to fallback on
media: rcar-vin: all Gen2 boards can scale simplify logic
media: rcar-vin: move functions regarding scaling
media: rcar-vin: move max width and height information to chip information
media: rcar-vin: move model information to own struct
media: rcar-vin: move subdevice handling to async callbacks
media: rcar-vin: unregister video device on driver removal
media: rcar-vin: rename poorly named initialize and cleanup functions
media: rcar-vin: add Gen3 devicetree bindings documentation
media: dt-bindings: media: rcar_vin: add device tree support for r8a774[35]
media: dt-bindings: media: rcar_vin: Reverse SoC part number list
media: rc: mtk-cir: use of_device_get_match_data()
media: rc: ir-spi: update Andi's e-mail
media: cx88: enable IR transmitter on HVR-1300
media: rc: mceusb: allow the timeout to be configurable
media: rc: mceusb: IR of length 0 means IR timeout, not reset
media: rc: mce_kbd decoder: fix race condition
media: rc: mce_kbd decoder: remove superfluous call to input_sync
media: rc: mce_kbd decoder: fix stuck keys
media: rc: mce_kbd protocol encodes two scancodes
media: rc: mce_kbd decoder: low timeout values cause double keydowns
media: rc: per-protocol repeat period and minimum keyup timer
media: rc: add ioctl to get the current timeout
media: rc: set timeout to smallest value required by enabled protocols
media: rc: report receiver and transmitter type on device register
ARM: dts: rockchip: default serial for rk3288 Tinker Board
media: rcar-vin: Fix image alignment for setting pre clipping
media: cec: set ev rather than v with CEC_PIN_EVENT_FL_DROPPED bit
media: cx231xx: Add support for AverMedia DVD EZMaker 7
media: omap3isp: fix unbalanced dma_iommu_mapping
media: v4l2-compat-ioctl32: better document the code
media: v4l2-compat-ioctl32: simplify casts
media: v4l2-compat-ioctl32: better name userspace pointers
media: v4l2-compat-ioctl32: fix several __user annotations
regulator: Don't return or expect -errno from of_map_mode()
regulator: tps6586x: Add support for TPS658624
soc: renesas: r8a77995-sysc: Cleanups
x86/Centaur: Initialize supported CPU features properly
drm/i915: Remove skl dc6 enable/disable functions
drm: bridge: Add thc63lvd1024 LVDS decoder driver
dt-bindings: display: bridge: Document THC63LVD1024 LVDS decoder
drm/i915: Enable display WA#1183 from its correct spot
libbpf: fixed build error for samples/bpf/
iwlwifi: mvm: support 22000 HW opening agg before traffic
iwlwifi: get rid of fw/nvm.c
iwlwifi: remove upper case letters in sku_capa_band_*_enable
iwlwifi: use flags to denote modifiers for the channel maps
iwlwifi: support api ver2 of NVM_GET_INFO resp
iwlwifi: mvm: update rs-fw API
iwlwifi: mvm: set the MFP flag for keys that are used by MFP stations
iwlwifi: pcie: gen2: fix race in cmd fifo write ptr
iwlwifi: mvm: use the new get_tid function
iwlwifi: move all NVM parsing code to the common files
iwlwifi: mvm: use shorter queues for mgmt and auxilary queues
iwlwifi: pcie: use the queue size as sent by opmode
iwlwifi: add TX queue size parameter to TX queue allocation
iwlwifi: Revert "iwlwifi: pcie: dynamic Tx command queue size"
iwlwifi: pcie: allocate shorter TX queues for 22000 devices
iwlwifi: move timestamp functions from debugfs.h to dbg.h
iwlwifi: pcie: implement the overlow queue for Gen2 devices
iwlwifi: mvm: support offload of AMSDU rate control
iwlwifi: mvm: fix OOC priority in scans
iwlwifi: mvm: clean up scan capability checks
iwlwifi: mvm: detect low latency and traffic load per band
iwlwifi: mvm: detect U-APSD breaking aggregation
iwlwifi: mvm: BT Coex - make the primary / secondary pick traffic aware
iwlwifi: mvm: use TCM data to decide scan priority
iwlwifi: mvm: add traffic condition monitoring (TCM)
ARM: dts: sun8i: h3: add SY8113B regulator used by Orange Pi One board
ARM: dts: sun8i: h2+: add SY8113B regulator used by Orange Pi Zero board
ARM: dts: sun8i: h3: add operating-points-v2 table for CPU
ARM: dts: sunxi: h3/h5: Add r_i2c I2C controller
ARM: dts: sunxi: h3/h5: Add r_i2c pinmux node
msdos_rmdir(): kill BS comment
restore cond_resched() in shrink_dcache_parent()
platform/x86: fujitsu-laptop: Simplify soft key handling
signal/sh: Use force_sig_fault in hw_breakpoint_handler
sparc: fix compat siginfo ABI regression
clk: Remove clk_init_cb typedef
net-next: New ax88796 platform driver for Amiga X-Surf 100 Zorro board (m68k)
net-next: ax88796: release platform device drvdata on probe error and module remove
net-next: ax88796: set IRQF_SHARED flag when IRQ resource is marked as shareable
net-next: ax88796: add interrupt status callback to platform data
net-next: ax88796: Add block_input/output hooks to ax_plat_data
net-next: ax88796: Do not free IRQ in ax_remove() (already freed in ax_close()).
net-next: ax88796: Attach MII bus only when open
net-next: ax88796: Fix MAC address reading
net-next: phy: new Asix Electronics PHY driver
net: phy: mdio-gpio: Remove redundant platform data header
net: phy: mdio-gpio: Add #defines for the GPIO index's
net: phy: mdio-gpio: Parse properties directly into bitbang structure
net: phy: mdio-gpio: Move allocation for bitbanging data
net: phy: mdio-gpio: Swap to using gpio descriptors
net: phy: mdio-gpio: Remove support for IRQs in platform data
net: phy: mdio-gpio: remove support for phy mask
net: phy: mdio-gpio: remove support for ignoring turn around
net: phy: mdio-bitbang: Remove reset support
net: phy: mdio-gpio: Remove reset function
net: phy_ mdio-gpio: Fixup , which should be ;
bpf: btf: Add BTF tests
bpf: btf: Add BTF support to libbpf
bpf: btf: Sync bpf.h and btf.h to tools/
bpf: btf: Add pretty print support to the basic arraymap
bpf: btf: Add BPF_OBJ_GET_INFO_BY_FD support to BTF fd
bpf: btf: Add BPF_BTF_LOAD command
bpf: btf: Add pretty print capability for data with BTF type info
bpf: btf: Check members of struct/union
bpf: btf: Validate type reference
bpf: btf: Introduce BPF Type Format (BTF)
net/ipv6: Fix gfp_flags arg to addrconf_prefix_route
net/ipv6: Remove fib6_idev
net/ipv6: Remove compare of fib6_idev from rt6_duplicate_nexthop
net/ipv6: Change ip6_route_get_saddr to get dev from route
net/ipv6: Remove unnecessary checks on fib6_idev
net/ipv6: Remove aca_idev
net/ipv6: Rename addrconf_dst_alloc
net/ipv6: Rename fib6_info struct elements
IB/rxe: replace refcount_inc with skb_get
IB/rxe: optimize the function duplicate_request
IB/rxe: make rxe_release_udp_tunnel static
net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends
ARM64: dts: meson-gx: fix gxl clock controller compatible
ARM64: dts: meson-axg: use hhi syscon for the clock controller
ARM64: dts: meson-gx: sysctrl is the parent of the clock controller
dt-bindings: clock: meson: update documentation with hhi syscon
net-next/hinic: add arm64 support
netfilter: nf_flow_table: clean up flow_offload_alloc
netfilter: nf_flow_table: use IP_CT_DIR_* values for FLOW_OFFLOAD_DIR_*
spi: pxa2xx: Allow 64-bit DMA
tcp: export packets delivery info
tcp: track total bytes delivered with ECN CE marks
tcp: new helper to calculate newly delivered
tcp: better delivery accounting for SYN-ACK and SYN-data
wcn36xx: use READ_ONCE() to access desc->ctrl
ath10k: fix fw path name for WCN3990 target
ath10k: add inlined wrappers for htt rx ops
ath10k: add inlined wrappers for htt tx ops
ath10k: search all IEs for variant before falling back
rtc: cmos: introduce quirks to enable use_acpi_alarm mode
rtc: cmos: acknowledge ACPI driven wake alarms upon resume
rtc: cmos: allow using ACPI for RTC alarm instead of HPET
ath10k: fix a typo in ath10k_wmi_set_wmm_param()
ath10k: correct target assert problem due to CE5 stuck
ath6kl: fix spelling mistake: "chache" -> "cache"
dt: bindings: add bindings for wcn3990 wifi block
ath10k: vote for hardware resources for WCN3990
ath10k: check all CE for data if irq summary is not retained
ath10k: add support to get target info from hif ops
ath10k: modify hif tx paddr to dma_addr_t type
ath10k: add hif rx methods for wcn3990
ath10k: add hif tx methods for wcn3990
ath10k: add hif power-up/power-down methods
ath10k: map HTC services to tx/rx pipes for wcn3990
bpf: reserve xdp_frame size in xdp headroom
ath10k: add HTC services for WCN3990
ath10k: add hif start/stop methods for wcn3990 snoc layer
ath10k: add resource init and deinit for WCN3990
ath10k: platform driver for WCN3990 SNOC WLAN module
ath10k: build ce layer in ath10k core module
ath10k: Add tx ack signal support for management frames
drm/i915: Protect PIPE_CONF_CHECK macros with do {} while(0)
ARM: dts: sunxi: Add sid for a83t
regulatory: Rename confusing 'country IE' in log output
ASoC: atmel: simplify getting .drvdata
ASoC: rt5668: fix incorrect 'and' operator
udf: Add support for decoding UTF-16 characters
udf: Add support for encoding UTF-16 characters
udf: Push sb argument to udf_name_[to|from]_CS0()
udf: Convert ident strings to proper charset
udf: Use UTF-32 <-> UTF-8 conversion functions from NLS
udf: Always require NLS support
mac80211_hwsim: indicate support for powersave.
ipmi_ssif: Fix uninitialized variable issue
drm/i915/dsi: improve dphy param limits logging
ASoC: Intel: Disable SND_SOC_INTEL_BAYTRAIL when SND_SST_ATOM_HIFI2_PLATFORM is enabled
time: Change nanosleep to safe __kernel_* types
time: Change types to new y2038 safe __kernel_* types
time: Fix get_timespec64() for y2038 safe compat interfaces
time: Add new y2038 safe __kernel_timespec
posix-timers: Make compat syscalls depend on CONFIG_COMPAT_32BIT_TIME
time: Introduce CONFIG_COMPAT_32BIT_TIME
time: Introduce CONFIG_64BIT_TIME in architectures
compat: Enable compat_get/put_timespec64 always
compat: Move compat_timespec/ timeval to compat_time.h
sparc: compat: Allow including asm/compat.h for 32-bit
time: Add an asm-generic/compat.h file
compat: Make compat helpers independent of CONFIG_COMPAT
ASoC: topology: Revert recent changes while boot errors are investigated
netfilter: xt_NFLOG: use nf_log_packet instead of nfulnl_log_packet.
drm/bridge/synopsys: dsi: Adopt SPDX identifiers
drm/stm: ltdc: fix warning in ltdc_crtc_update_clut()
drm/stm: ltdc: add user update info in plane print state
drm/stm: move enable/disable_vblank to crtc
ALSA: usb-audio: add implicit fb quirk for Axe-Fx III
ALSA: usb-audio: simplify set_sync_ep_implicit_fb_quirk
drm/i915/audio: set minimum CD clock to twice the BCLK
scsi: target: Change return type to vm_fault_t
scsi: target: prefer dbroot of /etc/target over /var/target
scsi: mptfc: fix spelling mistake in macro names
scsi: sd_zbc: Let the SCSI core handle ILLEGAL REQUEST / ASC 0x21
scsi: sd_zbc: Change the type of the ZBC fields into u32
scsi: storsvc: don't set a bounce limit
scsi: iscsi_tcp: don't set a bounce limit
scsi: sg: Change return type to vm_fault_t
scsi: zorro_esp: New driver for Amiga Zorro NCR53C9x boards
ipv6: frags: fix a lockdep false positive
hv_netvsc: Add NetVSP v6 and v6.1 into version negotiation
hv_netvsc: propogate Hyper-V friendly name into interface alias
r8169: remove jumbo_tx_csum from chip config struct
r8169: improve pci region handling
r8169: drop member txd_version from struct rtl8169_private
r8169: improve rtl8169_get_mac_version
r8169: don't display tp->mmio_addr address
r8169: drop member opts1_mask from struct rtl8169_private
r8169: change interrupt handler argument type
r8169: change argument type of counters handling functions
r8169: change hw_start argument type
r8169: remove rtl8169_map_to_asic
r8169: replace rx_buf_sz with a constant
r8169: remove unneeded check in rtl8169_rx_fill
r8169: improve rtl8169_init_ring
r8169: simplify rtl8169_alloc_rx_data
r8169: switch to napi_schedule_irqoff
r8169: use constant NAPI_POLL_WAIT
r8169: use skb_copy_to_linear_data in rtl8169_try_rx_copy
r8169: remove member align from struct rtl_cfg_info
r8169: remove unused member features from struct
net: netcp: ethss: k2g: add promiscuous mode support
net: netcp: add api to support set rx mode in netcp modules
net: netcp: support probe deferral
Revert "net: netcp: remove dead code from the driver"
net: netcp: ethss: use of_get_phy_mode() to support different RGMII modes
net: netcp: ethss: re-use stats handling code for 2u hardware
net: netcp: ethss: map vlan priorities to zero flow
net: netcp: ethss: use rgmii link status for 2u cpsw hardware
net: netcp: ethss: add support for handling rgmii link interface
net: netcp: ethss: make sgmii configuration conditional
net: netcp: ethss: use macro for checking ss_version consistently
soc: ti: K2G: provide APIs to support driver probe deferral
soc: ti: K2G: enhancement to support QMSS in K2G NAVSS
scsi: scsi_dh: replace too broad "TP9" string with the exact models
scsi: devinfo: delete duplicate "Generic"/"USB Storage-SMC" device
scsi: lpfc: update driver version to 12.0.0.2
scsi: lpfc: Correct missing remoteport registration during link bounces
scsi: lpfc: Fix NULL pointer reference when resetting adapter
scsi: lpfc: Fix nvme remoteport registration race conditions
scsi: lpfc: Fix driver not recovering NVME rports during target link faults
scsi: lpfc: Fix WQ/CQ creation for older asic's.
scsi: lpfc: Fix NULL pointer access in lpfc_nvme_info_show
scsi: lpfc: Fix lingering lpfc_wq resource after driver unload
scsi: lpfc: Fix Abort request WQ selection
scsi: lpfc: Enlarge nvmet asynchronous receive buffer counts
scsi: lpfc: Add per io channel NVME IO statistics
scsi: lpfc: Correct target queue depth application changes
scsi: lpfc: Fix multiple PRLI completion error path
scsi: megaraid_sas: driver version upgrade
scsi: megaraid_sas: Increase timeout by 1 sec for non-RAID fastpath IOs
scsi: megaraid_sas: Use zeroing memory allocator than allocator/memset
scsi: netvsc: Use the vmbus function to calculate ring buffer percentage
scsi: vmbus: Add function to report available ring buffer to write in total ring size percentage
scsi: libsas: add transport class for ATA devices
scsi: hisi_sas: remove some unneeded structure members
scsi: hisi_sas: print device id for errors
scsi: hisi_sas: check IPTT is valid before using it for v3 hw
scsi: hisi_sas: consolidate command check in hisi_sas_get_ata_protocol()
scsi: hisi_sas: use dma_zalloc_coherent()
scsi: hisi_sas: delete timer when removing hisi_sas driver
scsi: hisi_sas: update RAS feature for later revision of v3 HW
scsi: hisi_sas: make SAS address of SATA disks unique
scsi: cxlflash: Handle spurious interrupts
scsi: cxlflash: Remove commmands from pending list on timeout
scsi: cxlflash: Synchronize reset and remove ops
scsi: cxlflash: Enable OCXL operations
scsi: cxlflash: Support AFU reset
scsi: cxlflash: Register for translation errors
scsi: cxlflash: Introduce OCXL context state machine
scsi: cxlflash: Update synchronous interrupt status bits
scsi: cxlflash: Setup LISNs for master contexts
scsi: cxlflash: Setup LISNs for user contexts
scsi: cxlflash: Introduce object handle fop
scsi: cxlflash: Support file descriptor mapping
scsi: cxlflash: Support adapter context mmap and release
scsi: cxlflash: Support adapter context reading
scsi: cxlflash: Support adapter context polling
scsi: cxlflash: Support starting user contexts
scsi: cxlflash: Support AFU interrupt mapping and registration
scsi: cxlflash: Support AFU interrupt management
scsi: cxlflash: Support process element lifecycle
scsi: cxlflash: Setup OCXL transaction layer
scsi: cxlflash: Setup function OCXL link
scsi: cxlflash: Support reading adapter VPD data
scsi: cxlflash: Support AFU state toggling
scsi: cxlflash: Support process specific mappings
scsi: cxlflash: Support starting an adapter context
scsi: cxlflash: MMIO map the AFU
scsi: cxlflash: Support image reload policy modification
scsi: cxlflash: Support adapter context discovery
scsi: cxlflash: Support adapter file descriptors for OCXL
scsi: cxlflash: Use IDR to manage adapter contexts
scsi: cxlflash: Adapter context support for OCXL
scsi: cxlflash: Setup AFU PASID
scsi: cxlflash: Setup AFU acTag range
scsi: cxlflash: Read host AFU configuration
scsi: cxlflash: Setup function acTag range
scsi: cxlflash: Read host function configuration
scsi: cxlflash: Hardware AFU for OCXL
scsi: cxlflash: Introduce OCXL backend
scsi: cxlflash: Add argument identifier names
scsi: cxlflash: Avoid clobbering context control register value
scsi: cxlflash: Preserve number of interrupts for master contexts
bpf: add bpf_xdp_adjust_tail sample prog
bpf: adding tests for bpf_xdp_adjust_tail
bpf: making bpf_prog_test run aware of possible data_end ptr change
bpf: make virtio compatible w/ bpf_xdp_adjust_tail
bpf: make tun compatible w/ bpf_xdp_adjust_tail
bpf: make netronome nfp compatible w/ bpf_xdp_adjust_tail
bpf: make cavium thunder compatible w/ bpf_xdp_adjust_tail
bpf: make bnxt compatible w/ bpf_xdp_adjust_tail
bpf: make mlx4 compatible w/ bpf_xdp_adjust_tail
bpf: make generic xdp compatible w/ bpf_xdp_adjust_tail
bpf: adding bpf_xdp_adjust_tail helper
PCI/ASPM: Disable ASPM L1.2 Substate if we don't have LTR
drm/i915: Pack params to engine->schedule() into a struct
drm/i915: Rename priotree to sched
drm/i915: Move the priotree struct to its own headers
media: si470x: fix a typo at the Makefile causing build issues
pinctrl: samsung: Document required order of banks
pinctrl: samsung: Correct EINTG banks order
ipmi: add an NPCM7xx KCS BMC driver
ipmi_si: Clean up shutdown a bit
ipmi_si: Rename intf_num to si_num
ipmi: Remove smi->intf checks
ipmi_ssif: Get rid of unused intf_num
ipmi: Get rid of ipmi_user_t and ipmi_smi_t in include files
ipmi: ipmi_unregister_smi() cannot fail, have it return void
ipmi_devintf: Add an error return on invalid ioctls
ipmi: Remove usecount function from interfaces
ipmi_ssif: Remove usecount handling
ipmi: Remove condition on interface shutdown
ipmi_ssif: Convert over to a shutdown handler
ipmi_si: Convert over to a shutdown handler
ipmi: Rework locking and shutdown for hot remove
ipmi: Fix some counter issues
ipmi: Change ipmi_smi_t to struct ipmi_smi *
ipmi: Rename ipmi_user_t to struct ipmi_user *
ipmi: Add shutdown functions for users and interfaces
ipmi_devintf: Small lock rework
ipmi: Clean up some style issues in the message handler
ipmi: Break up i_ipmi_request
ipmi: Clean up comments in include files.
ipmi:devintf: Clean up some coding style issues
ipmi: Clean up some debug code
ipmi:watchdog: Use the IPMI panic handler instead of the system one
ipmi: Add a panic handler for IPMI users
ipmi:watchdog: Replace printk() with pr_xxx()
ipmi:watchdog: Rework locking and handling
ipmi: Add a maintenance mode for IPMB messages
ipmi: Add a way to tune some timeouts
soc: mediatek: reuse read[l,x]_poll_timeout helpers
ASoC: topology: Fix build errors
ARM: dts: renesas: replace toshiba, mmc-wrprotect-disable with disable-wp
dt-bindings: more status property removal from examples
of/numa: drop export of of_node_to_nid
tools: bpftool: make it easier to feed hex bytes to bpftool
samples/bpf: fix xdp_monitor user output for tracepoint exception
samples/bpf: correct comment in sock_example.c
libbpf: Type functions for raw tracepoints
libbpf: Support guessing post_bind{4,6} progs
bpftool: Support new prog types and attach types
regulator: pfuze100: update voltage setting for pfuze3000 sw1a
spi: spi-s3c64xx: Allow higher transfer lengths in polling IO mode
spi: spi-s3c64xx: Use local variable for FIFO length
spi: pxa2xx: pxa2xx_spi_transfer_one() can be static
vsprintf: Tweak pF/pf comment
spi: spi-s3c64xx: Add missing s3c64xx_ prefix to function names
spi: spi-s3c64xx: Drop unused enable_datapath() function argument
spi: cadence: Add usleep_range() for cdns_spi_fill_tx_fifo()
spi: Remove depends on HAS_DMA in case of platform dependency
ASoC: Remove depends on HAS_DMA in case of platform dependency
drm/i915/audio: Fix audio detection issue on GLK
drm/xen-front: Remove CMA support
drm/atomic: Add sanity checks to drm_atomic_helper_async_commit()
udp: enable UDP checksum offload for ESP
net/ipv6: Remove unused code and variables for rt6_info
net/ipv6: Flip FIB entries to fib6_info
net/ipv6: separate handling of FIB entries from dst based routes
net/ipv6: introduce fib6_info struct and helpers
net/ipv6: Cleanup exception and cache route handling
net/ipv6: Add gfp_flags to route add functions
net/ipv6: Create a neigh_lookup for FIB entries
net/ipv6: Move dst flags to booleans in fib entries
net/ipv6: Add rt6_info create function for ip6_pol_route_lookup
net/ipv6: Add fib6_null_entry
net/ipv6: move expires into rt6_info
net/ipv6: move metrics from dst to rt6_info
net/ipv6: Defer initialization of dst to data path
net/ipv6: Move nexthop data to fib6_nh
net/ipv6: Save route type in rt6_info
net/ipv6: Move support functions up in route.c
net/ipv6: Pass net namespace to route functions
net/ipv6: Pass net to fib6_update_sernum
vrf: Move fib6_table into net_vrf
net: Handle null dst in rtnl_put_cacheinfo
net: Move fib_convert_metrics to metrics file
ARM: imx: pcm037: use device properties for at24 eeprom
ARM: imx: pca100: use device properties for at24 eeprom
ARM: imx: pcm043: use device properties for at24 eeprom
ARM: imx: vpr200: drop at24_platform_data
ARM: imx: Update spi_imx platform data to reflect current state
ARM: dts: imx6ull: add UART5 input select register definitions
ARM: dts: imx6q: Add Engicam i.CoreM6 1.5 Quad/Dual MIPI starter kit support
ARM: dts: imx6q-icore-ofcap12: Switch LVDS timings from panel-simple
infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_l2param_change
infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_make_listen_node
infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_add_mqh_4
IB/rxe: avoid export symbols
IB/rxe: make the variable static
RDMA/rdma_cm: Delete rdma_addr_client
RDMA/rdma_cm: Make rdma_addr_cancel into a fence
RDMA/rdma_cm: Remove process_req and timer sorting
signal/alpha: Document a conflict with SI_USER for SIGFPE
drm/vc4: update cursors asynchronously through atomic
drm/vc4: Move CRTC state to header
drm/vc4: Expose gamma as atomic property
drm/vc4: Add some missing HVS register definitions.
audit: normalize MAC_POLICY_LOAD record
hwspinlock: Introduce one new mode for hwspinlock
hwspinlock: Convert to use 'switch' statement
remoteproc: Prevent incorrect rproc state on xfer mem ownership failure
audit: normalize MAC_STATUS record
ipv6: send netlink notifications for manually configured addresses
cxgb4vf: display pause settings
vxlan: add ttl inherit support
net/ncsi: Refactor MAC, VLAN filters
KEYS: DNS: limit the length of option strings
selftest: tc_flower: add testcase for 'ip_flags'
ipv6: Count interface receive statistics on the ingress netdev
net/ipv6: Make __inet6_bind static
ASoC: topology: Add support for compressed PCMs
ASoC: topology: Add callback for DAPM route load/unload
ASoC: topology: Give more data to clients via callbacks
ASoC: core: Add name prefix for machines with topology rewrites
ASoC: core: Allow topology to override machine driver FE DAI link config.
ASoC: nau8824: user configuration of key detection
ASoC: amd: fixed checkpatch pl warnings
spi: pxa2xx: Use core message processing loop
spi: pxa2xx: Remove pump_transfers string from dev_ prints
spi: pxa2xx: Remove unused argument from pxa2xx_spi_dma_prepare()
ARM: dts: exynos: Remove obsolete clock properties from power domains
soc: samsung: pm_domains: Deprecate support for clocks
xdp: avoid leaking info stored in frame data on page reuse
xdp: transition into using xdp_frame for ndo_xdp_xmit
xdp: transition into using xdp_frame for return API
mlx5: use page_pool for xdp_return_frame call
xdp: allow page_pool as an allocator type in xdp_return_frame
page_pool: refurbish version of page_pool code
xdp: rhashtable with allocator ID to pointer mapping
mlx5: register a memory model when XDP is enabled
i40e: convert to use generic xdp_frame and xdp_return_frame API
bpf: cpumap convert to use generic xdp_frame
virtio_net: convert to use generic xdp_frame and xdp_return_frame API
tun: convert to use generic xdp_frame and xdp_return_frame API
xdp: introduce a new xdp_frame type
xdp: move struct xdp_buff from filter.h to xdp.h
ixgbe: use xdp_return_frame API
xdp: introduce xdp_return_frame API and use in cpumap
mlx5: basic XDP_REDIRECT forward support
soc: mediatek: use of_device_get_match_data()
arm64: dts: mt2712: add pintcrl device node.
arm64: dts: mt2712: add pintcrl file
arm: dts: mediatek: modify audio related nodes for both MT2701 and MT7623
arm64: dts: add clock device nodes of MT2712
hsi: clients: Change return type to vm_fault_t
liquidio: Enhanced ethtool stats
HID: input: do not increment usages when a duplicate is found
HID: redragon: Fix modifier keys for Redragon Asura Keyboard
selftests: add xfrm state-policy-monitor to rtnetlink.sh
ALSA: pcm: Unify delay calculation in snd_pcm_status() and snd_pcm_delay()
spi: spi-s3c64xx: Fix indentation in the register offset definitions
spi: spi-s3c64xx: Do not ignore timeout errors in polling I/O mode
spi: spi-s3c64xx: Remove unused s3c64xx_spi_hwinit() function argument
spi: spi-s3c64xx: Remove unused driver data structure tgl_spi field
spi: zynqmp: Add pm runtime support
spi: sh-msiof: Simplify calculation of divisors for transfer rate
spi: stm32: Fix error handling in stm32_spi_probe()
drm/i915/selftests: Handle a potential failure of intel_ring_begin
ASoC: Intel: Skylake: Reset stream to link mapping
ASoC: Intel: Skylake: Reset DSP Pipelines in prepare
ASoC: Intel: Skylake: Unify the fw ops for SKL and KBL
ASoC: Intel: Skylake: Reset DSP pipe in skl_pcm_hw_free
regulator: lp87565: Enable LP87565_BUCK_CTRL_1_FPWM_MP_0_2
regulator: lp87565: Add margin while populating ramp_delay
ASoC: rt1305: fix platform_no_drv_owner.cocci warnings
ASoC: rt1305: fix ACPI_PTR compile error
media: ddbridge: don't uselessly check for dma in start/stop functions
media: mantis: prevent staying forever in a loop at IRQ
media: st_rc: Don't stay on an IRQ handler forever
media: atomisp: get rid of a warning
media: atomisp: compat32: fix __user annotations
media: staging: atomisp: add missing include
media: atomisp: compat32: use get_user() before referencing user data
media: v4l2-compat-ioctl32: prevent go past max size
media: platform: fix some 64-bits warnings
media: atomisp: remove an impossible condition
media: cec: fix smatch error
media: v4l2-fwnode: simplify v4l2_fwnode_reference_parse_int_props()
media: dvb_frontend: fix locking issues at dvb_frontend_get_event()
media: staging: atomisp: fix string comparation logic
media: atomisp: fix __user annotations
media: staging: atomisp: don't declare the same vars as both private and public
media: staging: atomisp: fix number conversion
media: omap_vout: fix wrong identing
media: fsl-viu: fix __iomem annotations
media: fsl-viu: use %p to print pointers
media: isppreview: fix __user annotations
media: ispstat: use %p to print the address of a buffer
media: vpbe_display: get rid of warnings
media: vpbe_display: properly handle error case
media: mmp-driver: add needed __iomem marks to power_regs
media: davinci: fix an inconsistent ident
media: isif: reorder a statement to match coding style
media: si470x: fix __be16 annotations
media: davinci_vpfe: fix __user annotations
media: davinci_vpfe: cleanup ipipe_[g|s]_config logic
media: davinci_vpfe: fix a typo for "default"
media: davinci_vpfe: don't use kernel-doc markup for simple comments
media: davinci_vpfe: vpfe_video: remove an unused var
media: davinci_vpfe: get rid of an unused var at dm365_isif.c
media: davinci_vpfe: mark __iomem as such
media: davinci_vpfe: fix vpfe_ipipe_init() error handling
media: dm365_ipipe: remove an unused var
media: davinci_vpfe: remove useless checks from ipipe
media: staging: davinci_vpfe: allow building with COMPILE_TEST
ARM: dts: sun8i: h3: Re-enable EMAC on Orange Pi One
media: si470x: allow build both USB and I2C at the same time
media: omap4iss: make it build with COMPILE_TEST
media: omap: allow building it with COMPILE_TEST
media: omap2: omapfb: allow building it with COMPILE_TEST
media: davinci: get rid of lots of kernel-doc warnings
media: vpbe_venc: don't store return codes if they won't be used
media: davinci: allow build vpbe_display with COMPILE_TEST
media: davinci: allow building isif code
media: mmp-driver: make two functions static
media: marvel-ccic: re-enable mmp-driver build
media: mmp-camera.h: add missing platform data
media: exymos4-is: allow compile test for EXYNOS FIMC-LITE
media: cec_gpio: allow building CEC_GPIO with COMPILE_TEST
media: fsl-viu: allow building it with COMPILE_TEST
media: fsl-viu: mark static functions as such
media: omap3isp/isp: remove an unused static var
clk: qcom: Add MSM8998 Global Clock Control (GCC) driver
ALSA: pcm: Unify playback and capture poll callbacks
ALSA: pcm: Clean up with snd_pcm_avail() and snd_pcm_hw_avail() helpers
security: remove security_settime
clk: qcom: gdsc: Add support to poll for higher timeout value
clk: qcom: gdsc: Add support to reset AON and block reset logic
clk: npcm7xx: add clock controller
drm/i915/kvmgt: Check the pfn got from vfio_pin_pages
drm/rockchip: fix VOP vblank race
net: Remove unused tcp_set_state tracepoint
r8169: replace magic numbers with PCI MRRS constant
PCI: Add two more values for PCIe Max_Read_Request_Size
net: stmmac: Switch stmmac_mode_ops to generic HW Interface Helpers
net: stmmac: Switch stmmac_hwtimestamp to generic HW Interface Helpers
net: stmmac: Switch stmmac_ops to generic HW Interface Helpers
net: stmmac: Switch stmmac_dma_ops to generic HW Interface Helpers
net: stmmac: Switch stmmac_desc_ops to generic HW Interface Helpers
sparc/PCI: Request legacy VGA framebuffer only for VGA devices
selftests: net: add tcp_mmap program
tcp: implement mmap() for zero copy receive
tcp: avoid extra wakeups for SO_RCVLOWAT users
tcp: fix delayed acks behavior for SO_RCVLOWAT
tcp: fix SO_RCVLOWAT and RCVBUF autotuning
ARM: dts: BCM5301X: Switch Luxul XWC-1000 to the new fixed partitions syntax
tc-testing: add sample action tests
ARM: B15: Update to support Brahma-B53
ipv6: remove unnecessary check in addrconf_prefix_rcv_add_addr()
security: selinux: Change return type to vm_fault_t
ARM: bcm283x: Add missing interrupt for RNG block
dt-binding: rng: Add interrupt property for BCM2835
module: Allow to always show the status of modsign
module: Do not access sig_enforce directly
arm64: dts: stratix10: Add PL330 DMAC to Stratix10 dts
Docs: tell maintainers to put [GIT PULL] in their subject lines
Documentation: typec.rst: Use literal-block element with ascii art
docs/vm: add index.rst and link MM documentation to top level index
docs/vm: rename documentation files to .rst
docs/vm: zswap.txt: convert to ReST format
docs/vm: zsmalloc.txt: convert to ReST format
docs/vm: z3fold.txt: convert to ReST format
docs/vm: userfaultfd.txt: convert to ReST format
docs/vm: unevictable-lru.txt: convert to ReST format
docs/vm: transhuge.txt: convert to ReST format
docs/vm: swap_numa.txt: convert to ReST format
docs/vm: split_page_table_lock: convert to ReST format
docs/vm: soft-dirty.txt: convert to ReST format
docs/vm: slub.txt: convert to ReST format
docs/vm: remap_file_pages.txt: conert to ReST format
docs/vm: page_owner: convert to ReST format
docs/vm: page_migration: convert to ReST format
docs/vm: pagemap.txt: convert to ReST format
docs/vm: numa: convert to ReST format
docs/vm: page_frags convert to ReST format
docs/vm: overcommit-accounting: convert to ReST format
docs/vm: numa_memory_policy.txt: convert to ReST format
docs/vm: mmu_notifier.txt: convert to ReST format
docs/vm: ksm.txt: convert to ReST format
docs/vm: idle_page_tracking.txt: convert to ReST format
docs/vm: hwpoison.txt: convert to ReST format
docs/vm: hugetlbfs_reserv.txt: convert to ReST format
docs/vm: hugetlbpage.txt: convert to ReST format
docs/vm: hmm.txt: convert to ReST format
docs/vm: highmem.txt: convert to ReST format
docs/vm: frontswap.txt: convert to ReST format
docs/vm: cleancache.txt: convert to ReST format
docs/vm: balance: convert to ReST format
docs/vm: active_mm.txt convert to ReST format
Documentation: ftrace: clarify filters with dynamic ftrace and graph
Documentation/process: updates to the PGP guide
Some files where renamed from .txt to .rst, but the Documentation was not fixed yet.
net/mlx5: remove some extraneous spaces in indentations
drm/docs: Remove the rcar alpha from the csv file
drm/sun4i: Add support for plane alpha
drm/rcar-du: Convert to the new generic alpha property
drm/atmel-hclcdc: Convert to the new generic alpha property
drm/blend: Add a generic alpha property
ASoC: topology: Modify clock gating parameter parsing to switch
ASoC: rt5668: add rt5668B codec driver
ARM: multi_v7_config: enable S6E63J0X03 panel driver
ARM: exynos_defconfig: enable S6E63J0X03 panel driver
remove rpc_rmdir()
ARM: dts: exynos: Add serial path for Rinato board to get earlycon support
ARM: s3c24xx: mini2440: Use device properties for at24 eeprom
leds: add LED driver for CR0014114 board
dt-bindings: Add vendor prefix and docs for CR0014114
ASoC: rt1305: Add RT1305/RT1306 amplifier driver
net: socionext: reset hardware in ndo_stop
net: netsec: enable tx-irq during open callback
net: mediatek: use of_device_get_match_data()
ARM: OMAP2+: Drop unused pm-noop
ARM: dts: exynos: Add support for USB OTG port on Origen board
ASoC: amd: acp-da7219-max98357: Make symbol da7219_dai_clk static
ASoC: topology: Add definitions for mclk_direction values
ASoC: topology: Add missing clock gating parameter when parsing hw_configs
ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
gfs2: Remove sdp->sd_jheightsize
dmaengine: dmatest: Remove use of VLAs
arm64: dts: stratix10: enable i2c, add i2c periperals
spi: sh-msiof: Fix bit field overflow writes to TSCR/RSCR
ARM: imx_v6_v7_defconfig: enable Vybrid OCOTP driver
ARM: imx_v6_v7_defconfig: add mwifiex driver
ARM: imx_v6_v7_defconfig: add RN5T618 PMIC family support
ARM: dts: imx6q: Add support for the DHCOM iMX6 SoM and PDK2
mfd: mt6397: Add PMIC keys support to MT6397 driver
input: Add MediaTek PMIC keys support
dt-bindings: mfd: Add bindings for the keys as subnode of PMIC
dt-bindings: input: Add document bindings for mtk-pmic-keys
mfd: mt6397: Create irq mappings in mfd core driver
ARM: dts: imx7s: add anatop vdd1p2 regulator
arm64: dts: renesas: r8a77970: add FCPVD support
ARM: dts: wheat: Fix ADV7513 address usage
arm64: dts: stratix10: use clock bindings for the Stratix10 platform
arm64: dts: renesas: r8a77965: Add PWM device nodes
arm64: dts: renesas: r8a77965: Add all MSIOF device nodes
arm64: dts: renesas: r8a7795: sort subnodes of the soc node
arm64: dts: renesas: r8a7795: sort subnodes of the root node
arm64: dts: renesas: r8a7796: sort subnodes of the soc node
arm64: dts: renesas: r8a7796: sort subnodes of the root node
arm64: dts: renesas: r8a77970: Update IPMMU DS1 bit number
arm64: dts: renesas: r8a77965: add USB 3.0 peripheral node
arm64: dts: renesas: r8a77965: add USB 3.0 host node
arm64: dts: renesas: r8a77965: add HS-USB node
arm64: dts: renesas: r8a77965: add usb_dmac nodes
arm64: dts: renesas: r8a77965: add USB 2.0 host nodes
arm64: dts: renesas: r8a77965: add usb3_phy node
arm64: dts: renesas: r8a77965: add usb2_phy nodes
ARM: multi_v7_defconfig: Enable r8a77470 SoC
ARM: shmobile: defconfig: Enable r8a77470 SoC
dt-bindings: arm: Document Renesas Ebisu board DT bindings
dt-bindings: arm: Document R-Car E3 SoC DT bindings
dt-bindings: arm: Document iW-RainboW-G23S single board computer
ARM: dts: iwg23s-sbc: Add support for iWave G23S-SBC based on RZ/G1C
ARM: dts: r8a77470: Initial SoC device tree
ARM: dts: r7s72100: sort subnodes of root node
ARM: dts: r7s72100: stop grouping clocks under a "clocks" subnode
ARM: dts: r7s72100: sort subnodes of soc node
ARM: dts: r7s72100: add soc node
ARM: dts: r7s72100: add USB device to device tree
soc: renesas: rcar-rst: Add support for R-Car E3
soc: renesas: Add r8a77990 SYSC PM Domain Binding Definitions
soc: renesas: identify R-Car E3
ARM: debug-ll: Add support for r8a77470
ARM: shmobile: Add the RZ/N1 arch to the shmobile Kconfig
ARM: shmobile: r8a77470: basic SoC support
soc: renesas: rcar-sysc: Add r8a77470 support
soc: renesas: rcar-rst: Add support for RZ/G1C
soc: renesas: Identify RZ/G1C
ARM: dts: imx7d-sdb: add gpio key support
ARM: dts: imx7: Move tempmon node out of bus
ARM: dts: imx7d-pinfunc: update sai select input value
ARM: dts: hummingboard: convert onboard audio to simple-audio-card
ARM: dts: sun8i: a33: Add the DSI-related nodes
ARM: dts: sunxi: Change sun7i-a20-olimex-som204-evb to not use cd-inverted
ARM: sun8i: v40: enable USB host ports for Banana Pi M2 Berry
HID: i2c-hid: Silently fail probe for CHPN0001 touchscreen
HID: i2c-hid: Move i2c_hid_acpi_pdata error reporting to inside the function
arm64: dts: rockchip: add clocks in iommu nodes
arm64: dts: rockchip: add usb3-phy otg-port support for rk3399
arm64: dts: rockchip: remove PCIe assigned-clocks in excavator baseboard
arm64: dts: rockchip: move rk3399-sapphire PCIe to excavator baseboard
arm64: dts: rockchip: assign clock rate for cpll child clocks on rk3399
arm64: dts: rockchip: enable typec-phy0 for rk3399-puma-haikou
arm64: dts: rockchip: enable typec-phy1 for rk3399-puma
arm64: dts: rockchip: enable typec-phy for rk3399-firefly
arm64: dts: rockchip: enable typec-phy for rk3399-sapphire
ARM: dts: rockchip: set PWM delay backlight settings for Minnie
ARM: dts: rockchip: set PWM delay backlight settings for Veyron
ARM: dts: rockchip: add clocks in iommu nodes
ARM: dts: rockchip: Add dp83867 CLK_OUT muxing on rk3288-phycore-som
ARM: dts: rockchip: fix uart4 pin-numbers for rk3288
regulator: ab8500: Drop AB8540/9540 support
ASoC: fsl_esai: Add freq check in set_dai_sysclk()
ALSA: emu10k1: Reduce GFP_ATOMIC allocation
hwmon: MC13783: Add uid and die temperature sensor inputs
ALSA: cmipci: Allocate with GFP_KERNEL instead of GFP_ATOMIC
ASoC: adau17x1: Do not reload dsp-fw if samplerate has not changed
ALSA: ad1889: Replace mdelay with usleep_range in snd_ad1889_ac97_ready
ALSA: ad1889: Replace mdelay with usleep_range in snd_ad1889_init
clk: renesas: rcar-gen2: Centralize quirks handling
clk: renesas: r8a77980: Correct parent clock of PCIEC0
clk: renesas: r8a7794: Fix LB clock divider
clk: renesas: r8a7792: Fix LB clock divider
clk: renesas: r8a7791/r8a7793: Fix LB clock divider
clk: renesas: r8a7745: Fix LB clock divider
clk: renesas: r8a7743: Fix LB clock divider
clk: renesas: cpg-mssr: Add r8a77470 support
clk: renesas: Add r8a77470 CPG Core Clock Definitions
clk: renesas: r8a77965: Add MSIOF controller clocks
ASoC: rsnd: ssi: wait maximum 5ms for status check
ASoC: rsnd: Enable IPMMU v2
ASoC: max9860: switch to SPDX license tag
ASoC: AMD: Support headset button on Stoney DA7219
ASoC: tfa9879: switch to SPDX license tag
ASoC: rsnd: don't assume node full path name for HDMI probing
ASoC: rsnd: add RSND_GEN3 for R-Car Gen3
ASoC: tfa9879: switch to using .probe_new
ASoC: tfa9879: fix whitespace issues caused by mindless conversion
ASoC: max9860: fix whitespace issues caused by mindless conversion
ASoC: TSCS42xx: Add CCF support to get sysclk
ASoC: TSCS42xx: Cleanup private data members
ASoC: TSCS42xx: Shorten lines and other cleanup
ASoC: rsnd: makes rsnd_cmd_mod_get() static
ASoC: intel: skl_rt286: Replace GFP_ATOMIC with GFP_KERNEL in skylake_audio_probe
ASoC: intel: skl_nau88l25_ssm4567: Replace GFP_ATOMIC with GFP_KERNEL in skylake_audio_probe
ASoC: intel: skl_nau88l25_max98357a: Replace GFP_ATOMIC with GFP_KERNEL in skylake_audio_probe
ASoC: intel: cht_bsw_rt5645: Replace GFP_ATOMIC with GFP_KERNEL in snd_cht_mc_probe
ASoC: intel: cht_bsw_max98090_ti: Replace GFP_ATOMIC with GFP_KERNEL in snd_cht_mc_probe
ASoC: intel: bytcr_rt5640: Replace GFP_ATOMIC with GFP_KERNEL in snd_byt_rt5640_mc_probe
ASoC: intel: bxt_rt298: Replace GFP_ATOMIC with GFP_KERNEL in broxton_audio_probe
ASoC: intel: bxt_da7219_max98357a: Replace GFP_ATOMIC with GFP_KERNEL in broxton_audio_probe
ASoC: max9860: switch to using .probe_new
ASoC: wm8350: remove snd_soc_codec
ASoC: atmel_ssc_dai: fix spelling mistake: "Stoping" -> "Stopping"
ASoC: trace: remove snd_soc_codec
ASoC: doc: replace codec to component
ARM: dts: stm32: Enable stm32mp1 clock driver on stm32mp157c
drm/i915/gvt: Dereference msi eventfd_ctx when it isn't used anymore
ARM: dts: i.MX6: Add BTicino i.MX6DL Mamoj initial support
dt-bindings: Add vendor prefix for Bticino
ARM: dts: imx6qdl-wandboard: Let the codec control MCLK pinctrl
ARM: dts: imx53-tx53: Remove unneeded 'codec-handle' property
ARM: dts: imx25-pdk: Remove unneeded 'codec-handle' property
ARM: dts: da850: use gpio-ranges
ARM: dts: da850-evm: Enable usb_phy, usb0 and usb1
dput(): turn into explicit while() loop
dcache: move cond_resched() into the end of __dentry_kill()
d_walk(): kill 'finish' callback
d_invalidate(): unhash immediately
fs: avoid fdput() after failed fdget() in vfs_dedupe_file_range()
iio: adc: at91-sama5d2_adc: fix channel configuration for differential channels
iio: sca3000: Handle errors returned by 'sca3000_configure_ring()' in 'sca3000_probe()'
iio: sca3000: Fix an error handling path in 'sca3000_probe()'
iio:dac:ad5686: Add AD5671R/75R/94/94R/95R/96/96R support
iio:dac:ad5686: Refactor the driver
iio:dac:ad5686: Add AD5672R/76/76R/84R/86R support
iio:dac:ad5686: Add support for AD5685R
iio:dac:ad5686: Add support for various number of channels
iio:dac:ad5686: Change license description
iio:dac:ad5686: Style fixes no functional changes
iio: imu: Add mpu9255 support to mpu6050 driver
iio: chemical: atlas-ph-sensor: use msleep() for long uncritical delays
iio: potentiometer: mcp4531: switch to using .probe_new
iio: potentiometer: mcp4018: switch to using .probe_new
iio: imu: inv_mpu6050: do not flush fifo when iio buffer is full
staging: iio: ad7746: Reorder variable declarations
staging: iio: ad7746: Reorder includes alphabetically
staging: iio: ad7746: Fix multiple line dereference
staging: iio: ad7746: Adjust arguments to match open parenthesis
staging: iio: ad7746: Automatically swap values in readings/writings
drm/i915: Call i915_perf_fini() on init_hw error unwind
drm/i915: Check whitelist registers across resets
drm/amdkfd: Remove vla
drm/amdkfd: Add sanity checks in IRQ handlers
drm/amdkfd: Remove queue node when destroy queue failed
drm/amdkfd: Locking PM mutex while allocating IB buffer
drm/amdkfd: Remove initialization of cp_hqd_ib_control on CIK
drm/amdkfd: Fix signal handling performance again
drm/amdkfd: Fix CP soft hang on APUs
drm/amdkfd: Separate trap handler assembly code and its hex values
drm/amdkfd: Remove redundant include of amd-iommu.h
drm/amdkfd: use %px to print user space address instead of %p
drm/amdkfd: Use volatile MTYPE in default/alternate apertures
drm/amdkfd: Reduce priority of context-saving waves before spin-wait
drm/amdkfd: Dump HQD of HIQ
drm/amdkfd: Integer overflows in ioctl
drm/i915/guc: Remove GUC_CTL_DEVICE_INFO parameter
spi: imx: Update MODULE_DESCRIPTION to "SPI Controller driver"
drm/i915: Update DRIVER_DATE to 20180413
drm/i915/cnl: Use mmio access to context status buffer
auxdisplay: Replace licenses with SPDX identifiers
auxdisplay: make PANEL a menuconfig
auxdisplay: fix broken menu
auxdisplay: charlcd: Fix and clean up handling of x/y commands
auxdisplay: charlcd: fix hex literal ranges for graphics command
auxdisplay: charlcd: fix two-line command ^[[LN not marked as processed
auxdisplay: charlcd: replace octal literal with form-feed escape sequence
auxdisplay: charlcd: use null character instead of zero literal to terminate strings
auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes
auxdisplay: cfag12864bfb: constify fb_fix_screeninfo and fb_var_screeninfo structures
auxdisplay: img-ascii-lcd: fix typo on select SYSCON/MFD_SYSCON
auxdisplay: img-ascii-lcd: kconfig: Remove MIPS_SEAD3 reference
auxdisplay: arm-charlcd: Fix struct charlcd doc line
MAINTAINERS: auxdisplay: remove obsolete webpages
Doc: misc-devices: move lcd-panel-cgram.txt to auxdisplay/
drm/i915/bios: reduce the scope of some local variables in parse_ddi_port()
drm/i915/bios: filter out invalid DDC pins from VBT child devices
drm/i915/gvt: Fix the validation on size field of dp aux header
drm/i915: Split out functions for different kinds of workarounds
drm/i915: Move a bunch of workaround-related code to its own file
drm/amd/display: dal 3.1.41
drm/amd/display: Fix FBC text console corruption
drm/amd/display: csc updates require FULL update
drm/amd/display: Make DCN stream encoder shareable
drm/amd/display: Update scaler v_active data if interlaced
drm/amd/display: Change disable backlight ramp change threshold from 0 to maximum value.
drm/amd/display: Fill calcs date from stream src/dst if available
drm/amd/display: fix link bw calculation for 422 and 420 encoding
drm/amd/display: remove unused enum
drm/amd/display: Refactor stream encoder for HW review
drm/amd/display: Set all update flags when we have full update
drm/amd/display: add delay between panel pwr off to on.
drm/amd/display: Implement dm_get_timestamp
drm/amd/display: Add vmax/min_sel prints to dcn10_log_hw_state
drm/amd/display: Add Dynamic debug prints
drm/amd/display: Fix potential access beyond end of array in CM
drm/amd/display: Non-HDMI DP active dongle should not support YUV pixel format
drm/amd/display: Set ignore_msa_timing_param
drm/amd/display: Program v_total_min/max after v_total_cntl
drm/amd/display: Don't register backlight on connector_destroy
drm/amd/display: Only register backlight device if embedded panel connected
drm/amd/display: Don't access legacy properties
drm/amdgpu: Added support for MV packet
drm/sched: Extend the documentation.
drm/amdgpu: add new bo flag that indicates BOs don't need fallback (v2)
drm/amdgpu: Don't change preferred domian when fallback GTT v6
drm/scheduler: move the tracepoints file from the include directory
drm/scheduler: fix param documentation
drm/amd/display: fix spelling mistake: "Usupported" -> "Unsupported"
drm/amdgpu: use new asic need_full_reset callback
drm/amdgpu/soc15: implement asic need_full_reset callback
drm/amdgpu/vi: implement asic need_full_reset callback
drm/amdgpu/cik: implement asic need_full_reset callback
drm/amdgpu/si: implement asic need_full_reset callback
drm/amdgpu: add asic need_full_reset callback
drm/amdgpu: add documentation on hwmon interfaces exposed (v3)
drm/amdgpu: Move GEM BO to drm_framebuffer
drm/radeon: radeon_framebuffer -> drm_framebuffer
drm/radeon: Move GEM BO to drm_framebuffer
drm/amd/display: Disentangle dc.h include from amdgpu.h
drm/amdgpu: switch to use df callback functions
drm/amdgpu/df: implement df v1_7 callback functions
drm/amdgpu: add df callback functions structure
drm/amdgpu: add df v1_7 header files
drm/amdgpu/sdma4: use a helper for SDMA_OP_POLL_REGMEM
drm/amdgpu: remove duplicate cg/pg wrapper functions
drm/amdgpu: Delete some cgs functions
drm/amd/pp: Not call cgs interface to get display info
drm/amdgpu: Set pm_display_cfg in non-dc mode
drm/amd/pp: Use atombios api directly in powerplay (v2)
drm/amd/dc: Use atombios api directly in DC
drm/amdgpu: Get pci resource directly through adev
drm/amd/pp: Use gfx rlc funcs directly in powerplay
drm/amd/pp: Fix spelling mistake: "suppported" -> "supported"
drm/amdgpu: Use dpm_enabled as dpm state flag
drm/amd/pp: Use release_firmware directly in powerplay
drm/amd/pp: Save vf state in pp context
drm/amd/pp: Lock pm_funcs when set pp table
drm/amd/pp: Add hwmgr_sw_init/fini functioins
drm/amd/pp: Remove useless fw load error handler on Polaris
drm/amd/display: Move commit_planes_to_stream to amdgpu_dm
drm/amd/display: Only program MSA_TIMING_PARAM if it changed
drm/amd/display: Add double buffer machanism to OCSC
drm/amd/display: Add vline IRQ programming for DCN
drm/amd/display: Rename encoder_info_packet to dc_info_packet
drm/amd/display: Couple bug fixes in stats module
drm/amd/display: Add double buffer machanism to ICSC
drm/amd/display: Add num_active_wb to DML
drm/amd/display: Correct print types in DC_LOGS
drm/amd/display: Add dc_lut_mode enum
drm/amd/display: hide inconsistent mpcc programming from dtn log
drm/amd/display: Only update mpc blend config if not full update
drm/amd/display: Separate mem input constuctors for dce 112 and 120
drm/amd/display: add assert in enable FBC
drm/amd/display: align dtn logs and add mpc idle bit print
drm/amd/display: dal 3.1.40
drm/amd/display: Implementing new bandwidth registers for DCE120
drm/amd/display: drop dc_validate_guaranteed
drm/amd/display: Change wb_h/vratio to double
drm/amd/display: Adding stutter entry wm to dce bw struct
drm/amd/display: Don't call amdgpu_dm_display_resume as it doesn't exist
drm/amd/display: Add debug prints for bandwidth calculations
drm/amd/display: add mpc to dtn log
drm/amd/display: Don't read EDID in atomic_check
drm/amd/display: Rename feature-specific register address init macro
drm/amd/display: fix Polaris 12 bw bounding box
drm/amd/display: Update ASIC header files
drm/amd/display: Retry when read dpcd caps failed.
drm/amd/display: dal 3.1.39
drm/amd/display: correct the condition in setting cursor not visible beyond left edge
drm/amdgpu: Add CM_TEST_DEBUG regs for DCN
drm/i915/execlists: Set queue priority from secondary port
drm/i915/bios: remove duplicated code
drm/sun4i: Tie the DSI controller in the TCON
drm/sun4i: Add Allwinner A31 MIPI-DSI controller support
dt-bindings: display: Add Allwinner MIPI-DSI bindings
drm/sun4i: tcon: Add TRI finish interrupt for vblank
lib/vsprintf: Mark expected switch fall-through
lib/vsprintf: Replace space with '_' before crng is ready
lib/vsprintf: Deduplicate pointer_string()
drm/i915/pmu: Inspect runtime PM state more carefully while estimating RC6
lib/vsprintf: Move pointer_string() upper
lib/vsprintf: Make flag_spec global
lib/vsprintf: Make strspec global
lib/vsprintf: Make dec_spec global
lib/test_printf: Mark big constant with UL
drm/i915/gvt: fix memory leak of a cmd_entry struct on error exit path
drm/amdkfd: Add Vega10 topology and device info
drm/amdkfd: Try to enable atomics for all GPUs
drm/amdkfd: Add GFXv9 CWSR trap handler
drm/amdkfd: Support flat memory apertures for GFXv9
drm/amdkfd: Remove limit on number of GPUs (follow-up)
drm/i915/guc: Replace %phn with %ph
drm/i915: Don't fiddle with rps/rc6 across GPU reset
wcn36xx: allocate skbs with GFP_KERNEL during init
wcn36xx: Remove useless skb spinlock
wcn36xx: Add missing fall through comment in smd.c
wcn36xx: don't delete invalid bss indices
wcn36xx: don't keep reference to skb if transmission failed
wcn36xx: check for DMA mapping errors in wcn36xx_dxe_tx_frame()
ath9k: dfs: remove accidental use of stack VLA
ath10k: fix spelling mistake: "tiggers" -> "triggers"
ath10k: sdio: fix memory leak for probe allocations
drm/i915: Add debugfs file to clear FIFO underruns.
wil6210: fix potential null dereference of ndev before null check
ath10k: avoid possible string overflow
drm/i915/psr: Chase psr.enabled only under the psr.lock
drm/i915/gen9_lp: Increase DDI PHY0 power well enabling timeout
drm/i915: Remove last references to drm_atomic_get_existing* macros
drm/i915: Remove get_existing_crtc_state
drm/i915: Change use get_new_plane_state instead of existing plane state
drm/i915/execlists: Log fence context & seqno throughout GEM_TRACE
drm/i915: Enclose for_each_engine_masked macro arguments in parentheses
drm/i915: Upscale scaler max scale for NV12
drm/i915: Update format_is_yuv() to include NV12
drm/i915: Set scaler mode for NV12
drm/i915: Enable YUV to RGB for Gen10 in Plane Ctrl Reg
drm/i915: Display WA 827
drm/i915/skl: split skl_compute_ddb function
drm/i915/skl+: nv12 workaround disable WM level 1-7
drm/i915/skl+: make sure higher latency level has higher wm value
drm/i915/skl+: pass skl_wm_level struct to wm compute func
drm/i915/skl+: NV12 related changes for WM
drm/i915/skl+: support verification of DDB HW state for NV12
drm/i915/skl+: add NV12 in skl_format_to_fourcc
drm/i915/skl+: refactor WM calculation for NV12
drm/i915/skl+: rename skl_wm_values struct to skl_ddb_values
ipvs: fix multiplicative hashing in sh/dh/lblc/lblcr algorithms
netfilter: ipvs: Add configurations of Maglev hashing
netfilter: ipvs: Add Maglev hashing scheduler
netfilter: ipvs: Keep latest weight of destination
netfilter: ipvs: Fix space before '[' error.
drm/amdkfd: Add 64-bit doorbell and wptr support to kernel queue
drm/amdkfd: Fix kernel queue rollback_packet
drm/amdkfd: Fix goto usage
drm/amdkfd: Add SOC15 interrupt processing support
drm/amdkfd: Add GFXv9 device queue manager
drm/amdkfd: Add GFXv9 MQD manager
drm/amdkfd: Add GFXv9 PM4 packet writer functions
drm/amdkfd: Move packet writer functions into ASIC-specific file
drm/amdkfd: Implement doorbell allocation for SOC15
drm/amdkfd: Clean up KFD_MMAP_ offset handling
drm/amdkfd: Make doorbell size ASIC-dependent
drm/amdgpu: Add doorbell routing info to kgd2kfd_shared_resources
drm/amdgpu: Add GFXv9 kfd2kgd interface functions
drm/amdgpu: Add GFXv9 TLB invalidation packet definition
drm/amd: Update GFXv9 SDMA MQD structure
drm/amdgpu: Remove unused interface from kfd2kgd interface
Documentation: dt: iio: imu: st_lsm6dsx: add ism330dlc sensor device binding
iio: imu: st_lsm6dsx: add support to ism330dlc
iio: imu: st_lsm6dsx: fix FIFO threshold mask for LSM6DSM/LSM6DSL
drm/i915/dp: Send DPCD ON for MST before phy_up
drm/i915: Pass the set of guilty engines to i915_reset()
drm/i915: Treat i915_reset_engine() as guilty until proven innocent
clk: actions: Add S900 SoC clock support
clk: actions: Add pll clock support
clk: actions: Add composite clock support
clk: actions: Add fixed factor clock support
clk: actions: Add factor clock support
clk: actions: Add divider clock support
clk: actions: Add mux clock support
clk: actions: Add gate clock support
clk: actions: Add common clock driver support
clk: spear: fix WDT clock definition on SPEAr600
drm/i915: Split out parking from the idle worker for reuse
drm/i915/selftests: Rename wait_for_hang() to wait_until_running()
drm/i915/icl: Enable RC6 and RPS in Gen11
drm/i915/icl: Deal with GT INT DW correctly
drm/i915/icl: Handle RPS interrupts correctly for Gen11
drm/i915/icl: Use hw engine class, instance to find irq handler
drm/i915/icl: Add reset control register changes
drm/i915: Describe the bottom of stack in processing a batchbuffer
drm/i915: Add link to documentation in i915_gem_execbuffer.c
drm/i915: Narration overview on GEM
drm/i915/selftests: Avoid repeatedly harming the same innocent context
drm/i915/audio: Fix audio enumeration issue on BXT
drm/i915: Fix memory leak in intel_hdcp auth
drm/i915: Only call finish_reset after a prepare_reset
drm/sti: Depend on OF rather than selecting it
drm/i915/selftests: Add basic sanitychecks for execlists
drm/i915: Do no use kfree() to free a kmem_cache_alloc() return value
drm/i915: Check hdcp key loadability
drm/i915: Read Vprime thrice incase of mismatch
drm/i915: Read HDCP R0 thrice in case of mismatch
drm/i915: Store preemption capability in engine->flags
MAINTAINERS: Add drm/xen-front maintainer entry
drm/xen-front: Add support for Xen PV display frontend
drm/i915/execlists: Track begin/end of execlists submission sequences
drm/i2c: tda998x: always disable and clear interrupts at probe
drm/i2c: tda998x: move CEC device initialisation later
drm/i2c: tda998x: fix error cleanup paths
drm/i2c: tda998x: move mutex/waitqueue/timer/work init early
drm/i915/psr: Set DPCD PSR2 enable bit when needed
drm/i915/psr: Cache sink synchronization latency
drm/i915/psr: Use PSR2 macro for PSR2
drm/i915/psr: Do not override PSR2 sink support
drm/i915/psr/cnl: Enable Y-coordinate support in source
drm/i915/psr: Tie PSR2 support to Y coordinate requirement
drm/i915/psr: Nuke aux frame sync
drm: Add DP last received PSR SDP VSC register and bits
drm: Add DP PSR2 sink enable bit
drm: Reshuffle getfb error returns
Staging: iio: adis16209: Move adis16209 driver out of staging
Staging: iio: adis16209: Use GENMASK
Staging: iio: adis16209: Remove unused headers
Staging: iio: adis16209: Add a blank line after return statements
Staging: iio: adis16209: Prefer reverse christmas tree ordering
Staging: iio: adis16209: Indent the field definitions
iio: imu: inv_mpu6050: clean double declaration of set_power_itg
iio: adc: meson-saradc: add support for Meson AXG
dt-bindings: iio: adc: document the Meson AXG support
iio: adc: meson-saradc: squash and share the common adc platform data
iio:kfifo_buf: check for uint overflow
iio:buffer: make length types match kfifo types
drm/i915: Only warn for might_sleep() before a slow wait_for_register
drm/i915: Avoid sleeping inside per-engine reset
drm/i915: Make force_load_detect effective even w/ DMI quirks/hotplug
drm/i915: Restore planes after load detection
drm/zte: Stop consulting plane->crtc
drm/vmwgfx: Stop consulting plane->fb
drm/sti: Stop consulting plane->fb
drm/i915: Stop consulting plane->fb
drm: Use plane->state->fb over plane->fb
drm: Make the fb refcount handover less magic
drm: Adjust whitespace for legibility
drm: Add local 'plane' variable for primary/cursor planes
drm/atomic-helper: WARN if legacy plane fb pointers are bogus when committing duplicated state
drm: Clear crtc->primary->crtc when disabling the crtc via setcrtc()
drm/atomic-helper: Drop plane->fb references only for drm_atomic_helper_shutdown()
drm/i915/perf: add more debug message on perf open & configs
drm/i915: rename PPGTT/GGTT fields OA registers
drm/i915/perf: remove empty line
drm/i915/perf: simplify OA unit enabling on gen7
drm/i915/perf: check the value of PROP_SAMPLE_OA uapi parameter
drm/i915/perf: enable perf support on ICL
drm/i915: Include the HW breadcrumb whenever we trace the global_seqno
drm/i915/guc: enable guc interrupts unconditionally in uc_resume
drm: Use srcu to protect drm_device.unplugged
drm: add parameter explanation for some gem dmabuf_ops
drm/i915/guc: Trace messages from CT while in debug
drm/i915/guc: Handle default action received over CT
drm/i915/guc: Prepare to process incoming requests from CT
drm/i915/guc: Implement response handling in send_ct()
drm/i915/guc: Use better name for helper wait function
drm/i915/guc: Prepare to handle messages from CT RECV buffer
drm/i915/guc: Make event handler a virtual function
drm/i915/guc: Implement response handling in send_mmio()
drm/i915/guc: Prepare send() function to accept bigger response
drm/i915/guc: Add support for data reporting in GuC responses
drm/i915/guc: Add documentation for MMIO based communication
drm/i915/execlists: Reset ring registers on rebinding contexts
drm/i915/gen11: add support for reading the timestamp frequency
drm/tinydrm: Make fb_dirty into a lower level hook
drm/simple-kms-helper: Plumb plane state to the enable hook
drm/udl: Get rid of dev->struct_mutex usage
drm/rockchip: fixup comment for gem_free_object_unlocked
staging/vboxvideo: Use gem_free_object_unlocked
drm/i915: Use correct reST syntax for WOPCM and GuC kernel-doc diagrams
drm/omap: Use normalized zpos for plane placement
drm: rcar-du: Let core take care of normalizing the zpos
drm/sti: Let core take care of normalizing the zpos
drm/tegra: Let core take care of normalizing the zpos
drm/exynos: Let core take care of normalizing the zpos
drm: Add drm_mode_config->normalize_zpos boolean
drm: make drm_core_check_feature() bool that it is
drm: remove old documentation comment cruft from drmP.h
drm: prefer inline over __inline__
drm/dp/mst: Fix off-by-one typo when dump payload table
drm/i915: reorder dpll_info members
drm/i915: use flags from dpll_info embedded in intel_shared_dpll
drm/i915: use id from intel_shared_dpll.info
drm/i915: use name from intel_shared_dpll.info
drm/i915: use funcs from intel_shared_dpll.info
drm/i915: add dpll_info inside intel_shared_dpll
drm/i915: move dpll_info to header
drm/i915: Reword warning for missing cases
drm/i915/execlists: Avoid kicking the submission too early for rescheduling
drm/i915: Include submission tasklet state in engine dump
drm/i915/execlists: Clear user-active flag on preemption completion
drm/tinydrm: Use gem_free_object_unlocked
drm/scdc-helper: Convert errors into debug messages
drm/gem: Document that handle_create must be the last step
gpu: drm: nouveau: Use list_{next/prev}_entry instead of list_entry
gpu: drm/lease:: Use list_{next/prev}_entry instead of list_entry
staging: iio: tsl2x7x: use either direction for IIO_EV_INFO_{ENABLE,PERIOD}
staging: iio: tsl2x7x: use auto increment I2C protocol
Staging: iio: accel: adis16201: Move adis16201 driver out of staging
Staging: iio: accel: adis16201: Fix 80 character line limit
Staging: iio: accel: adis16201: Use GENMASK
Staging: iio: accel: adis16201: Remove unused headers
staging: iio: tsl2x7x: add copyright
staging: iio: tsl2x7x: put local variables in reverse Christmas tree order
staging: iio: tsl2x7x: remove ch0 and ch1 variables from tsl2x7x_get_lux()
staging: iio: tsl2x7x: remove unused variables from tsl2x7x_get_lux()
staging: iio: tsl2x7x: split out als and prox persistence settings
staging: iio: tsl2x7x: make logging consistent and correct newlines
staging: iio: tsl2x7x: split out als and prox interrupt settings
staging: iio: tsl2x7x: simplify tsl2x7x_prox_cal()
staging: iio: tsl2x7x: no need to clear interrupt flag when getting lux
staging: iio: tsl2x7x: correct interrupt handler trigger
staging: iio: tsl2x7x: remove unnecessary code
staging:iio:ade7854: Remove read_reg_* duplications
staging:iio:ade7854: Rework SPI read function
staging:iio:ade7854: Rework I2C read function
staging:iio:ade7854: Remove write_reg_* duplications
staging:iio:ade7854: Rework SPI write function
staging:iio:ade7854: Rework I2C write function
staging:iio:ade7854: Fix the wrong number of bits to read
staging:iio:ade7854: Fix error handling on read/write
drm/i915: protect macro parameters in SWING_SEL_{UPP,LO}WER
drm/i915/icl: Added 5k source scaling support for Gen11 platform
drm/i915/icl: HPD pin for port F
drm/i915/icl: Add Voltage swing table for MG PHY DDI Buffer
drm/i915/icl: Add register defs for voltage swing sequences for MG PHY DDI
drm/i915/icl: Add Combo PHY DDI Buffer translation tables for Icelake.
drm/i915/icl: Add register definitions for Combo PHY vswing sequences.
drm/amdgpu: Add userptr support for KFD
drm/amdkfd: Add quiesce_mm and resume_mm to kgd2kfd_calls
drm/amdkfd: GFP_NOIO while holding locks taken in MMU notifier
drm/amdgpu: Avoid reclaim while holding locks taken in MMU notifier
drm/amdgpu: Enable amdgpu_ttm_tt_get_user_pages in worker threads
drm/amdgpu: Add MMU notifier type for KFD userptr
drm/i915: Fix hibernation with ACPI S0 target state
dt-binding: clk: npcm750: Add binding for Nuvoton NPCM7XX Clock
drm/i915: Actually flush interrupts on reset not just wedging
drm/i915/uc: Fetch uC firmware in init_early
drm/i915: Reorder early initialization
drm/i915/guc: Fix null pointer dereference when GuC FW is not available
drm/i915: Don't spew errors when resetting HDMI scrambling/bit clock ratio fails
drm/i915: Skip logging impossible slices
drm/i915: Avoid setting ring freq on invalid rps freqs
drm/i915: Flush pending interrupt following a GPU reset
drm/i915: Use full serialisation around engine->irq_posted
drm/i915/selftests: Stress resets-vs-request-priority
drm/i915/selftests: Include the trace as a debug aide
drm/i915: Remove local timeline var from submit/unsubmit
drm/i915: Fix tracing of submit seqno
drm: Remove drm_property_{un/reference}_blob aliases
drm/i915/psr: Remove open-coded PSR AUX transactions for SKL+
drm/i915/psr: Move PSR aux setup to it's own function.
drm/i915/execlists: Use a locked clear_bit() for synchronisation with interrupt
drm/i915/guc: Unify parameters of public CT functions
drm/i915/guc: Handle GuC log flush event in dedicated function
drm/i915/guc: Move enable/disable msg functions to GuC header
drm/i915/guc: Drop union guc_log_control
drm/i915/guc: Unify naming of private GuC action functions
drm/i915/huc: Check HuC status in dedicated function
drm/i915/icl: Added ICL 11 slice, subslice and EU fuse detection
fuse: add writeback documentation
fuse: honor AT_STATX_FORCE_SYNC
fuse: honor AT_STATX_DONT_SYNC
fuse: Restrict allow_other to the superblock's namespace or a descendant
fuse: Support fuse filesystems outside of init_user_ns
fuse: Fail all requests with invalid uids or gids
fuse: Remove the buggy retranslation of pids in fuse_dev_do_read
fuse: return -ECONNABORTED on /dev/fuse read after abort
fuse: atomic_o_trunc should truncate pagecache
drm/i915: Add control flags to i915_handle_error()
drm/i915: Specify which engines to reset following semaphore/event lockups
drm/i915/guc: Don't try to enable GuC logging when we're not using GuC
drm/i915/icl: Update subslice define for ICL 11
drm/i915/icl: Enable the extra video decode and enhancement boxes for Icelake 11
drm/i915/icl: Check for fused-off VDBOX and VEBOX instances
drm/i915: Select STACKDEPOT for DRM_I915_DEBUG
dt-bindings: clock: Add Actions S900 clock bindings
clk: qcom: Add support for controlling Fabia PLL
clk: qcom: Clear hardware clock control bit of RCG
drm/i915: Trim error mask to known engines
drm/i915: Prefer memset64() when filling the iomap
drm/i915/guc: Demote GuC error messages
drm/i915/guc: Default to non-verbose GuC logging
drm/i915/guc: Allow user to control default GuC logging
drm/i915/guc: Don't print out relay statistics when relay is disabled
drm/i915/guc: Always print log stats in i915_guc_info when using GuC
drm/i915/guc: Get rid of GuC log runtime
drm/i915/guc: Move check for fast memcpy_wc to relay creation
drm/i915/guc: Split relay control and GuC log level
drm/i915/guc: Flush directly in log unregister
drm/i915/guc: Merge log relay file and channel creation
drm/i915/guc: Log runtime should consist of both mapping and relay
drm/i915/guc: Keep GuC interrupts enabled when using GuC
drm/i915/dp: Write to SET_POWER dpcd to enable MST hub.
Staging: iio: accel: adis16201: Adjust argument to match open parentheses
Staging: iio: accel: adis16201: Prefer reverse christmas tree ordering
Staging: iio: accel: adis16201: Use sign_extend32 function
Staging: iio: accel: adis16201: Add comments about units in read_raw()
Staging: iio: accel: adis16201: Group register definitions
Staging: iio: accel: adis16201: Add _REG suffix to registers
Staging: iio: accel: adis16201: Remove unnecessary comments
Staging: iio: accel: adis16201: Rename few macro definitions
iio: adc: stm32-dfsdm: fix sample rate for div2 spi clock
iio: adc: stm32-dfsdm: fix successive oversampling settings
iio: adc: ad7780: remove IIO_CHAN_INFO_SAMP_FREQ support
iio: adc: ad7791: implement IIO_CHAN_INFO_SAMP_FREQ
iio: adc: ad7791: remove sample freq sysfs attributes
iio: ad7793: implement IIO_CHAN_INFO_SAMP_FREQ
iio: cros_ec: Move cros_ec_sensors_core.h in /include
iio: stx104: Implement get_multiple callback
clk: Print the clock name and warning cause
drm/i915: Kill the remaining CHV HBR2 leftovers
i915: Re-use DEFINE_SHOW_ATTRIBUTE() macro
drm/i915: Don't initialize plane_to_crtc_mapping[] on SKL+
drm/i915/stolen: Deduce base of reserved portion as top-size on vlv
drm/i915/stolen: Checkpatch cleansing
drm/i915/stolen: Switch from DEBUG_KMS to DEBUG_DRIVER
drm/i915: Stop engines when declaring the machine wedged
drm/i915: Trace GEM steps between submit and wedging
drm/i915/guc: Fix build break on config without DEBUG_FS
drm/i915/guc: Update syntax of GuC log functions
drm/i915: Split GPU commands definitions into separate header
drm/i915: move gen8 irq shifts to intel_lrc.c
drm/i915: use engine->irq_keep_mask when resetting irqs
drm/i915: add a selftest for the mmio_bases table
drm/i915: store all mmio bases in intel_engines
drm/i915/cnl: Kill _MMIO_PORT6 macro
drm/i915/cnl; Add macro to get PORT_TX register
drm/i915/pmu: Work around compiler warnings on some kernel configs
drm/i915: Check rq->timeline before deference
drm/i915/guc: Check the locking status of GuC WOPCM registers
drm/i915: Add HuC firmware size related restriction for Gen9 and CNL A0
drm/i915: Add support to return CNL specific reserved WOPCM size
drm/i915: Implement dynamic GuC WOPCM offset and size calculation
drm/i915/guc: Rename guc_ggtt_offset to intel_guc_ggtt_offset
drm/i915/psr: Comment to clarify SRD_DEBUG is called PSR_MASK SKL+
drm/i915: Show GEM_TRACE when detecting a failed GPU idle
drm/i915: Move CUR SURFLIVE definition to a better place.
drm/i915/psr: Remove PSR active flag from debugfs
drm/i915/psr: Use more PSR HW tracking.
drm/i915/frontbuffer: HW tracking for cursor moves to fix PSR lags.
drm/i915/frontbuffer: Pull frontbuffer_flush out of gem_obj_pin_to_display
drm/i915: Use sseu size for determining eu_regs[]
drm/i915: Warn against variable length arrays
drm/i915: Remove variable length arrays from sseu debugfs printers
drm/i915/uc: Sanitize uC together with GEM
drm/i915/uc: Sanitize uC options early
drm/i915: Remove the impedance mismatch around intel_engine_enable_signaling
drm/i915/psr: Display WA 0884 applied broadly for more HW tracking.
drm/i915: Move i915_gpu_error into its own header
drm/i915: Make header i915_pmu.h more robust
drm/i915: Change parameters order in i915_gem_batch_pool_init
drm/i915: Include i915_reg.h in intel_ringbuffer.h
drm/i915/guc: Move GuC notification handling to separate function
drm/i915/guc: Create common entry points for log register/unregister
drm/i915/guc: Tidy guc_log_control
drm/i915: Remove unused DP_LINK_CHECK_TIMEOUT
drm/i915: Only call tasklet_kill() on the first prepare_reset
drm/i915: Wrap engine->schedule in RCU locks for set-wedge protection
drm/i915: Include ring->emit in debugging
drm/i915: Update ring position from request on retiring
drm/i915: Finish the wait-for-wedge by retiring all the inflight requests
drm/i915/icl: do not save DDI A/E sharing bit for ICL
drm/i915: Push irq_shift from gen8_cs_irq_handler() to caller
drm/i915: Index the ring frequency table by HW frequency range
drm/i915: Kick the rps worker when changing the boost frequency
drm/i915: Handle pipe CRC around enabling/disabling pipe.
drm/i915: Only prune fences after wait-for-all
PCI: armada8k: Fix clock resource by adding a register clock
PCI: armada8k: Remove useless test before clk_disable_unprepare()
PCI: dwc: Fix enumeration end when reaching root subordinate
[rishabhb@codeaurora.org: Disable CONFIG_LSE_ATOMICS, HARDEN_BRANCH_PREDICTOR
and CONFIG_SSBD by default. Correct the self assignment in lib/rhashtable.c.
Fixed minor conflicts.]
Change-Id: I911a1bb8f844854f5ef760a89d33aed3c1e25db1
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
6768 lines
198 KiB
Perl
Executable File
6768 lines
198 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# (c) 2001, Dave Jones. (the file handling bit)
|
|
# (c) 2005, Joel Schopp <jschopp@austin.ibm.com> (the ugly bit)
|
|
# (c) 2007,2008, Andy Whitcroft <apw@uk.ibm.com> (new conditions, test suite)
|
|
# (c) 2008-2010 Andy Whitcroft <apw@canonical.com>
|
|
# (c) 2010-2018 Joe Perches <joe@perches.com>
|
|
|
|
use strict;
|
|
use warnings;
|
|
use POSIX;
|
|
use File::Basename;
|
|
use Cwd 'abs_path';
|
|
use Term::ANSIColor qw(:constants);
|
|
|
|
use constant BEFORE_SHORTTEXT => 0;
|
|
use constant IN_SHORTTEXT_BLANKLINE => 1;
|
|
use constant IN_SHORTTEXT => 2;
|
|
use constant AFTER_SHORTTEXT => 3;
|
|
use constant CHECK_NEXT_SHORTTEXT => 4;
|
|
use constant SHORTTEXT_LIMIT => 75;
|
|
|
|
my $P = $0;
|
|
my $D = dirname(abs_path($P));
|
|
|
|
my $V = '0.32';
|
|
|
|
use Getopt::Long qw(:config no_auto_abbrev);
|
|
|
|
my $quiet = 0;
|
|
my $tree = 1;
|
|
my $chk_signoff = 1;
|
|
my $chk_patch = 1;
|
|
my $tst_only;
|
|
my $emacs = 0;
|
|
my $terse = 0;
|
|
my $showfile = 0;
|
|
my $file = 0;
|
|
my $git = 0;
|
|
my %git_commits = ();
|
|
my $check = 0;
|
|
my $check_orig = 0;
|
|
my $summary = 1;
|
|
my $mailback = 0;
|
|
my $summary_file = 0;
|
|
my $show_types = 0;
|
|
my $list_types = 0;
|
|
my $fix = 0;
|
|
my $fix_inplace = 0;
|
|
my $root;
|
|
my %debug;
|
|
my %camelcase = ();
|
|
my %use_type = ();
|
|
my @use = ();
|
|
my %ignore_type = ();
|
|
my @ignore = ();
|
|
my $help = 0;
|
|
my $configuration_file = ".checkpatch.conf";
|
|
my $max_line_length = 80;
|
|
my $ignore_perl_version = 0;
|
|
my $minimum_perl_version = 5.10.0;
|
|
my $min_conf_desc_length = 4;
|
|
my $spelling_file = "$D/spelling.txt";
|
|
my $codespell = 0;
|
|
my $codespellfile = "/usr/share/codespell/dictionary.txt";
|
|
my $conststructsfile = "$D/const_structs.checkpatch";
|
|
my $typedefsfile = "";
|
|
my $color = "auto";
|
|
my $allow_c99_comments = 1;
|
|
|
|
sub help {
|
|
my ($exitcode) = @_;
|
|
|
|
print << "EOM";
|
|
Usage: $P [OPTION]... [FILE]...
|
|
Version: $V
|
|
|
|
Options:
|
|
-q, --quiet quiet
|
|
--no-tree run without a kernel tree
|
|
--no-signoff do not check for 'Signed-off-by' line
|
|
--patch treat FILE as patchfile (default)
|
|
--emacs emacs compile window format
|
|
--terse one line per report
|
|
--showfile emit diffed file position, not input file position
|
|
-g, --git treat FILE as a single commit or git revision range
|
|
single git commit with:
|
|
<rev>
|
|
<rev>^
|
|
<rev>~n
|
|
multiple git commits with:
|
|
<rev1>..<rev2>
|
|
<rev1>...<rev2>
|
|
<rev>-<count>
|
|
git merges are ignored
|
|
-f, --file treat FILE as regular source file
|
|
--subjective, --strict enable more subjective tests
|
|
--list-types list the possible message types
|
|
--types TYPE(,TYPE2...) show only these comma separated message types
|
|
--ignore TYPE(,TYPE2...) ignore various comma separated message types
|
|
--show-types show the specific message type in the output
|
|
--max-line-length=n set the maximum line length, if exceeded, warn
|
|
--min-conf-desc-length=n set the min description length, if shorter, warn
|
|
--root=PATH PATH to the kernel tree root
|
|
--no-summary suppress the per-file summary
|
|
--mailback only produce a report in case of warnings/errors
|
|
--summary-file include the filename in summary
|
|
--debug KEY=[0|1] turn on/off debugging of KEY, where KEY is one of
|
|
'values', 'possible', 'type', and 'attr' (default
|
|
is all off)
|
|
--test-only=WORD report only warnings/errors containing WORD
|
|
literally
|
|
--fix EXPERIMENTAL - may create horrible results
|
|
If correctable single-line errors exist, create
|
|
"<inputfile>.EXPERIMENTAL-checkpatch-fixes"
|
|
with potential errors corrected to the preferred
|
|
checkpatch style
|
|
--fix-inplace EXPERIMENTAL - may create horrible results
|
|
Is the same as --fix, but overwrites the input
|
|
file. It's your fault if there's no backup or git
|
|
--ignore-perl-version override checking of perl version. expect
|
|
runtime errors.
|
|
--codespell Use the codespell dictionary for spelling/typos
|
|
(default:/usr/share/codespell/dictionary.txt)
|
|
--codespellfile Use this codespell dictionary
|
|
--typedefsfile Read additional types from this file
|
|
--color[=WHEN] Use colors 'always', 'never', or only when output
|
|
is a terminal ('auto'). Default is 'auto'.
|
|
-h, --help, --version display this help and exit
|
|
|
|
When FILE is - read standard input.
|
|
EOM
|
|
|
|
exit($exitcode);
|
|
}
|
|
|
|
sub uniq {
|
|
my %seen;
|
|
return grep { !$seen{$_}++ } @_;
|
|
}
|
|
|
|
sub list_types {
|
|
my ($exitcode) = @_;
|
|
|
|
my $count = 0;
|
|
|
|
local $/ = undef;
|
|
|
|
open(my $script, '<', abs_path($P)) or
|
|
die "$P: Can't read '$P' $!\n";
|
|
|
|
my $text = <$script>;
|
|
close($script);
|
|
|
|
my @types = ();
|
|
# Also catch when type or level is passed through a variable
|
|
for ($text =~ /(?:(?:\bCHK|\bWARN|\bERROR|&\{\$msg_level})\s*\(|\$msg_type\s*=)\s*"([^"]+)"/g) {
|
|
push (@types, $_);
|
|
}
|
|
@types = sort(uniq(@types));
|
|
print("#\tMessage type\n\n");
|
|
foreach my $type (@types) {
|
|
print(++$count . "\t" . $type . "\n");
|
|
}
|
|
|
|
exit($exitcode);
|
|
}
|
|
|
|
my $conf = which_conf($configuration_file);
|
|
if (-f $conf) {
|
|
my @conf_args;
|
|
open(my $conffile, '<', "$conf")
|
|
or warn "$P: Can't find a readable $configuration_file file $!\n";
|
|
|
|
while (<$conffile>) {
|
|
my $line = $_;
|
|
|
|
$line =~ s/\s*\n?$//g;
|
|
$line =~ s/^\s*//g;
|
|
$line =~ s/\s+/ /g;
|
|
|
|
next if ($line =~ m/^\s*#/);
|
|
next if ($line =~ m/^\s*$/);
|
|
|
|
my @words = split(" ", $line);
|
|
foreach my $word (@words) {
|
|
last if ($word =~ m/^#/);
|
|
push (@conf_args, $word);
|
|
}
|
|
}
|
|
close($conffile);
|
|
unshift(@ARGV, @conf_args) if @conf_args;
|
|
}
|
|
|
|
# Perl's Getopt::Long allows options to take optional arguments after a space.
|
|
# Prevent --color by itself from consuming other arguments
|
|
foreach (@ARGV) {
|
|
if ($_ eq "--color" || $_ eq "-color") {
|
|
$_ = "--color=$color";
|
|
}
|
|
}
|
|
|
|
GetOptions(
|
|
'q|quiet+' => \$quiet,
|
|
'tree!' => \$tree,
|
|
'signoff!' => \$chk_signoff,
|
|
'patch!' => \$chk_patch,
|
|
'emacs!' => \$emacs,
|
|
'terse!' => \$terse,
|
|
'showfile!' => \$showfile,
|
|
'f|file!' => \$file,
|
|
'g|git!' => \$git,
|
|
'subjective!' => \$check,
|
|
'strict!' => \$check,
|
|
'ignore=s' => \@ignore,
|
|
'types=s' => \@use,
|
|
'show-types!' => \$show_types,
|
|
'list-types!' => \$list_types,
|
|
'max-line-length=i' => \$max_line_length,
|
|
'min-conf-desc-length=i' => \$min_conf_desc_length,
|
|
'root=s' => \$root,
|
|
'summary!' => \$summary,
|
|
'mailback!' => \$mailback,
|
|
'summary-file!' => \$summary_file,
|
|
'fix!' => \$fix,
|
|
'fix-inplace!' => \$fix_inplace,
|
|
'ignore-perl-version!' => \$ignore_perl_version,
|
|
'debug=s' => \%debug,
|
|
'test-only=s' => \$tst_only,
|
|
'codespell!' => \$codespell,
|
|
'codespellfile=s' => \$codespellfile,
|
|
'typedefsfile=s' => \$typedefsfile,
|
|
'color=s' => \$color,
|
|
'no-color' => \$color, #keep old behaviors of -nocolor
|
|
'nocolor' => \$color, #keep old behaviors of -nocolor
|
|
'h|help' => \$help,
|
|
'version' => \$help
|
|
) or help(1);
|
|
|
|
help(0) if ($help);
|
|
|
|
list_types(0) if ($list_types);
|
|
|
|
$fix = 1 if ($fix_inplace);
|
|
$check_orig = $check;
|
|
|
|
my $exit = 0;
|
|
|
|
if ($^V && $^V lt $minimum_perl_version) {
|
|
printf "$P: requires at least perl version %vd\n", $minimum_perl_version;
|
|
if (!$ignore_perl_version) {
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
#if no filenames are given, push '-' to read patch from stdin
|
|
if ($#ARGV < 0) {
|
|
push(@ARGV, '-');
|
|
}
|
|
|
|
if ($color =~ /^[01]$/) {
|
|
$color = !$color;
|
|
} elsif ($color =~ /^always$/i) {
|
|
$color = 1;
|
|
} elsif ($color =~ /^never$/i) {
|
|
$color = 0;
|
|
} elsif ($color =~ /^auto$/i) {
|
|
$color = (-t STDOUT);
|
|
} else {
|
|
die "Invalid color mode: $color\n";
|
|
}
|
|
|
|
sub hash_save_array_words {
|
|
my ($hashRef, $arrayRef) = @_;
|
|
|
|
my @array = split(/,/, join(',', @$arrayRef));
|
|
foreach my $word (@array) {
|
|
$word =~ s/\s*\n?$//g;
|
|
$word =~ s/^\s*//g;
|
|
$word =~ s/\s+/ /g;
|
|
$word =~ tr/[a-z]/[A-Z]/;
|
|
|
|
next if ($word =~ m/^\s*#/);
|
|
next if ($word =~ m/^\s*$/);
|
|
|
|
$hashRef->{$word}++;
|
|
}
|
|
}
|
|
|
|
sub hash_show_words {
|
|
my ($hashRef, $prefix) = @_;
|
|
|
|
if (keys %$hashRef) {
|
|
print "\nNOTE: $prefix message types:";
|
|
foreach my $word (sort keys %$hashRef) {
|
|
print " $word";
|
|
}
|
|
print "\n";
|
|
}
|
|
}
|
|
|
|
hash_save_array_words(\%ignore_type, \@ignore);
|
|
hash_save_array_words(\%use_type, \@use);
|
|
|
|
my $dbg_values = 0;
|
|
my $dbg_possible = 0;
|
|
my $dbg_type = 0;
|
|
my $dbg_attr = 0;
|
|
for my $key (keys %debug) {
|
|
## no critic
|
|
eval "\${dbg_$key} = '$debug{$key}';";
|
|
die "$@" if ($@);
|
|
}
|
|
|
|
my $rpt_cleaners = 0;
|
|
|
|
if ($terse) {
|
|
$emacs = 1;
|
|
$quiet++;
|
|
}
|
|
|
|
if ($tree) {
|
|
if (defined $root) {
|
|
if (!top_of_kernel_tree($root)) {
|
|
die "$P: $root: --root does not point at a valid tree\n";
|
|
}
|
|
} else {
|
|
if (top_of_kernel_tree('.')) {
|
|
$root = '.';
|
|
} elsif ($0 =~ m@(.*)/scripts/[^/]*$@ &&
|
|
top_of_kernel_tree($1)) {
|
|
$root = $1;
|
|
}
|
|
}
|
|
|
|
if (!defined $root) {
|
|
print "Must be run from the top-level dir. of a kernel tree\n";
|
|
exit(2);
|
|
}
|
|
}
|
|
|
|
my $emitted_corrupt = 0;
|
|
|
|
our $Ident = qr{
|
|
[A-Za-z_][A-Za-z\d_]*
|
|
(?:\s*\#\#\s*[A-Za-z_][A-Za-z\d_]*)*
|
|
}x;
|
|
our $Storage = qr{extern|static|asmlinkage};
|
|
our $Sparse = qr{
|
|
__user|
|
|
__kernel|
|
|
__force|
|
|
__iomem|
|
|
__must_check|
|
|
__init_refok|
|
|
__kprobes|
|
|
__ref|
|
|
__rcu|
|
|
__private
|
|
}x;
|
|
our $InitAttributePrefix = qr{__(?:mem|cpu|dev|net_|)};
|
|
our $InitAttributeData = qr{$InitAttributePrefix(?:initdata\b)};
|
|
our $InitAttributeConst = qr{$InitAttributePrefix(?:initconst\b)};
|
|
our $InitAttributeInit = qr{$InitAttributePrefix(?:init\b)};
|
|
our $InitAttribute = qr{$InitAttributeData|$InitAttributeConst|$InitAttributeInit};
|
|
|
|
# Notes to $Attribute:
|
|
# We need \b after 'init' otherwise 'initconst' will cause a false positive in a check
|
|
our $Attribute = qr{
|
|
const|
|
|
__percpu|
|
|
__nocast|
|
|
__safe|
|
|
__bitwise|
|
|
__packed__|
|
|
__packed2__|
|
|
__naked|
|
|
__maybe_unused|
|
|
__always_unused|
|
|
__noreturn|
|
|
__used|
|
|
__cold|
|
|
__pure|
|
|
__noclone|
|
|
__deprecated|
|
|
__read_mostly|
|
|
__kprobes|
|
|
$InitAttribute|
|
|
____cacheline_aligned|
|
|
____cacheline_aligned_in_smp|
|
|
____cacheline_internodealigned_in_smp|
|
|
__weak
|
|
}x;
|
|
our $Modifier;
|
|
our $Inline = qr{inline|__always_inline|noinline|__inline|__inline__};
|
|
our $Member = qr{->$Ident|\.$Ident|\[[^]]*\]};
|
|
our $Lval = qr{$Ident(?:$Member)*};
|
|
|
|
our $Int_type = qr{(?i)llu|ull|ll|lu|ul|l|u};
|
|
our $Binary = qr{(?i)0b[01]+$Int_type?};
|
|
our $Hex = qr{(?i)0x[0-9a-f]+$Int_type?};
|
|
our $Int = qr{[0-9]+$Int_type?};
|
|
our $Octal = qr{0[0-7]+$Int_type?};
|
|
our $String = qr{"[X\t]*"};
|
|
our $Float_hex = qr{(?i)0x[0-9a-f]+p-?[0-9]+[fl]?};
|
|
our $Float_dec = qr{(?i)(?:[0-9]+\.[0-9]*|[0-9]*\.[0-9]+)(?:e-?[0-9]+)?[fl]?};
|
|
our $Float_int = qr{(?i)[0-9]+e-?[0-9]+[fl]?};
|
|
our $Float = qr{$Float_hex|$Float_dec|$Float_int};
|
|
our $Constant = qr{$Float|$Binary|$Octal|$Hex|$Int};
|
|
our $Assignment = qr{\*\=|/=|%=|\+=|-=|<<=|>>=|&=|\^=|\|=|=};
|
|
our $Compare = qr{<=|>=|==|!=|<|(?<!-)>};
|
|
our $Arithmetic = qr{\+|-|\*|\/|%};
|
|
our $Operators = qr{
|
|
<=|>=|==|!=|
|
|
=>|->|<<|>>|<|>|!|~|
|
|
&&|\|\||,|\^|\+\+|--|&|\||$Arithmetic
|
|
}x;
|
|
|
|
our $c90_Keywords = qr{do|for|while|if|else|return|goto|continue|switch|default|case|break}x;
|
|
|
|
our $BasicType;
|
|
our $NonptrType;
|
|
our $NonptrTypeMisordered;
|
|
our $NonptrTypeWithAttr;
|
|
our $Type;
|
|
our $TypeMisordered;
|
|
our $Declare;
|
|
our $DeclareMisordered;
|
|
|
|
our $NON_ASCII_UTF8 = qr{
|
|
[\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
|
|
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
|
|
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
|
|
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
|
|
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|
|
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|
|
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
|
|
}x;
|
|
|
|
our $UTF8 = qr{
|
|
[\x09\x0A\x0D\x20-\x7E] # ASCII
|
|
| $NON_ASCII_UTF8
|
|
}x;
|
|
|
|
our $typeC99Typedefs = qr{(?:__)?(?:[us]_?)?int_?(?:8|16|32|64)_t};
|
|
our $typeOtherOSTypedefs = qr{(?x:
|
|
u_(?:char|short|int|long) | # bsd
|
|
u(?:nchar|short|int|long) # sysv
|
|
)};
|
|
our $typeKernelTypedefs = qr{(?x:
|
|
(?:__)?(?:u|s|be|le)(?:8|16|32|64)|
|
|
atomic_t
|
|
)};
|
|
our $typeTypedefs = qr{(?x:
|
|
$typeC99Typedefs\b|
|
|
$typeOtherOSTypedefs\b|
|
|
$typeKernelTypedefs\b
|
|
)};
|
|
|
|
our $zero_initializer = qr{(?:(?:0[xX])?0+$Int_type?|NULL|false)\b};
|
|
|
|
our $logFunctions = qr{(?x:
|
|
printk(?:_ratelimited|_once|_deferred_once|_deferred|)|
|
|
(?:[a-z0-9]+_){1,2}(?:printk|emerg|alert|crit|err|warning|warn|notice|info|debug|dbg|vdbg|devel|cont|WARN)(?:_ratelimited|_once|)|
|
|
TP_printk|
|
|
WARN(?:_RATELIMIT|_ONCE|)|
|
|
panic|
|
|
MODULE_[A-Z_]+|
|
|
seq_vprintf|seq_printf|seq_puts
|
|
)};
|
|
|
|
our $signature_tags = qr{(?xi:
|
|
Signed-off-by:|
|
|
Acked-by:|
|
|
Tested-by:|
|
|
Reviewed-by:|
|
|
Reported-by:|
|
|
Suggested-by:|
|
|
To:|
|
|
Cc:
|
|
)};
|
|
|
|
our @typeListMisordered = (
|
|
qr{char\s+(?:un)?signed},
|
|
qr{int\s+(?:(?:un)?signed\s+)?short\s},
|
|
qr{int\s+short(?:\s+(?:un)?signed)},
|
|
qr{short\s+int(?:\s+(?:un)?signed)},
|
|
qr{(?:un)?signed\s+int\s+short},
|
|
qr{short\s+(?:un)?signed},
|
|
qr{long\s+int\s+(?:un)?signed},
|
|
qr{int\s+long\s+(?:un)?signed},
|
|
qr{long\s+(?:un)?signed\s+int},
|
|
qr{int\s+(?:un)?signed\s+long},
|
|
qr{int\s+(?:un)?signed},
|
|
qr{int\s+long\s+long\s+(?:un)?signed},
|
|
qr{long\s+long\s+int\s+(?:un)?signed},
|
|
qr{long\s+long\s+(?:un)?signed\s+int},
|
|
qr{long\s+long\s+(?:un)?signed},
|
|
qr{long\s+(?:un)?signed},
|
|
);
|
|
|
|
our @typeList = (
|
|
qr{void},
|
|
qr{(?:(?:un)?signed\s+)?char},
|
|
qr{(?:(?:un)?signed\s+)?short\s+int},
|
|
qr{(?:(?:un)?signed\s+)?short},
|
|
qr{(?:(?:un)?signed\s+)?int},
|
|
qr{(?:(?:un)?signed\s+)?long\s+int},
|
|
qr{(?:(?:un)?signed\s+)?long\s+long\s+int},
|
|
qr{(?:(?:un)?signed\s+)?long\s+long},
|
|
qr{(?:(?:un)?signed\s+)?long},
|
|
qr{(?:un)?signed},
|
|
qr{float},
|
|
qr{double},
|
|
qr{bool},
|
|
qr{struct\s+$Ident},
|
|
qr{union\s+$Ident},
|
|
qr{enum\s+$Ident},
|
|
qr{${Ident}_t},
|
|
qr{${Ident}_handler},
|
|
qr{${Ident}_handler_fn},
|
|
@typeListMisordered,
|
|
);
|
|
|
|
our $C90_int_types = qr{(?x:
|
|
long\s+long\s+int\s+(?:un)?signed|
|
|
long\s+long\s+(?:un)?signed\s+int|
|
|
long\s+long\s+(?:un)?signed|
|
|
(?:(?:un)?signed\s+)?long\s+long\s+int|
|
|
(?:(?:un)?signed\s+)?long\s+long|
|
|
int\s+long\s+long\s+(?:un)?signed|
|
|
int\s+(?:(?:un)?signed\s+)?long\s+long|
|
|
|
|
long\s+int\s+(?:un)?signed|
|
|
long\s+(?:un)?signed\s+int|
|
|
long\s+(?:un)?signed|
|
|
(?:(?:un)?signed\s+)?long\s+int|
|
|
(?:(?:un)?signed\s+)?long|
|
|
int\s+long\s+(?:un)?signed|
|
|
int\s+(?:(?:un)?signed\s+)?long|
|
|
|
|
int\s+(?:un)?signed|
|
|
(?:(?:un)?signed\s+)?int
|
|
)};
|
|
|
|
our @typeListFile = ();
|
|
our @typeListWithAttr = (
|
|
@typeList,
|
|
qr{struct\s+$InitAttribute\s+$Ident},
|
|
qr{union\s+$InitAttribute\s+$Ident},
|
|
);
|
|
|
|
our @modifierList = (
|
|
qr{fastcall},
|
|
);
|
|
our @modifierListFile = ();
|
|
|
|
our @mode_permission_funcs = (
|
|
["module_param", 3],
|
|
["module_param_(?:array|named|string)", 4],
|
|
["module_param_array_named", 5],
|
|
["debugfs_create_(?:file|u8|u16|u32|u64|x8|x16|x32|x64|size_t|atomic_t|bool|blob|regset32|u32_array)", 2],
|
|
["proc_create(?:_data|)", 2],
|
|
["(?:CLASS|DEVICE|SENSOR|SENSOR_DEVICE|IIO_DEVICE)_ATTR", 2],
|
|
["IIO_DEV_ATTR_[A-Z_]+", 1],
|
|
["SENSOR_(?:DEVICE_|)ATTR_2", 2],
|
|
["SENSOR_TEMPLATE(?:_2|)", 3],
|
|
["__ATTR", 2],
|
|
);
|
|
|
|
#Create a search pattern for all these functions to speed up a loop below
|
|
our $mode_perms_search = "";
|
|
foreach my $entry (@mode_permission_funcs) {
|
|
$mode_perms_search .= '|' if ($mode_perms_search ne "");
|
|
$mode_perms_search .= $entry->[0];
|
|
}
|
|
$mode_perms_search = "(?:${mode_perms_search})";
|
|
|
|
our $mode_perms_world_writable = qr{
|
|
S_IWUGO |
|
|
S_IWOTH |
|
|
S_IRWXUGO |
|
|
S_IALLUGO |
|
|
0[0-7][0-7][2367]
|
|
}x;
|
|
|
|
our %mode_permission_string_types = (
|
|
"S_IRWXU" => 0700,
|
|
"S_IRUSR" => 0400,
|
|
"S_IWUSR" => 0200,
|
|
"S_IXUSR" => 0100,
|
|
"S_IRWXG" => 0070,
|
|
"S_IRGRP" => 0040,
|
|
"S_IWGRP" => 0020,
|
|
"S_IXGRP" => 0010,
|
|
"S_IRWXO" => 0007,
|
|
"S_IROTH" => 0004,
|
|
"S_IWOTH" => 0002,
|
|
"S_IXOTH" => 0001,
|
|
"S_IRWXUGO" => 0777,
|
|
"S_IRUGO" => 0444,
|
|
"S_IWUGO" => 0222,
|
|
"S_IXUGO" => 0111,
|
|
);
|
|
|
|
#Create a search pattern for all these strings to speed up a loop below
|
|
our $mode_perms_string_search = "";
|
|
foreach my $entry (keys %mode_permission_string_types) {
|
|
$mode_perms_string_search .= '|' if ($mode_perms_string_search ne "");
|
|
$mode_perms_string_search .= $entry;
|
|
}
|
|
our $single_mode_perms_string_search = "(?:${mode_perms_string_search})";
|
|
our $multi_mode_perms_string_search = qr{
|
|
${single_mode_perms_string_search}
|
|
(?:\s*\|\s*${single_mode_perms_string_search})*
|
|
}x;
|
|
|
|
sub perms_to_octal {
|
|
my ($string) = @_;
|
|
|
|
return trim($string) if ($string =~ /^\s*0[0-7]{3,3}\s*$/);
|
|
|
|
my $val = "";
|
|
my $oval = "";
|
|
my $to = 0;
|
|
my $curpos = 0;
|
|
my $lastpos = 0;
|
|
while ($string =~ /\b(($single_mode_perms_string_search)\b(?:\s*\|\s*)?\s*)/g) {
|
|
$curpos = pos($string);
|
|
my $match = $2;
|
|
my $omatch = $1;
|
|
last if ($lastpos > 0 && ($curpos - length($omatch) != $lastpos));
|
|
$lastpos = $curpos;
|
|
$to |= $mode_permission_string_types{$match};
|
|
$val .= '\s*\|\s*' if ($val ne "");
|
|
$val .= $match;
|
|
$oval .= $omatch;
|
|
}
|
|
$oval =~ s/^\s*\|\s*//;
|
|
$oval =~ s/\s*\|\s*$//;
|
|
return sprintf("%04o", $to);
|
|
}
|
|
|
|
our $allowed_asm_includes = qr{(?x:
|
|
irq|
|
|
memory|
|
|
time|
|
|
reboot
|
|
)};
|
|
# memory.h: ARM has a custom one
|
|
|
|
# Load common spelling mistakes and build regular expression list.
|
|
my $misspellings;
|
|
my %spelling_fix;
|
|
|
|
if (open(my $spelling, '<', $spelling_file)) {
|
|
while (<$spelling>) {
|
|
my $line = $_;
|
|
|
|
$line =~ s/\s*\n?$//g;
|
|
$line =~ s/^\s*//g;
|
|
|
|
next if ($line =~ m/^\s*#/);
|
|
next if ($line =~ m/^\s*$/);
|
|
|
|
my ($suspect, $fix) = split(/\|\|/, $line);
|
|
|
|
$spelling_fix{$suspect} = $fix;
|
|
}
|
|
close($spelling);
|
|
} else {
|
|
warn "No typos will be found - file '$spelling_file': $!\n";
|
|
}
|
|
|
|
if ($codespell) {
|
|
if (open(my $spelling, '<', $codespellfile)) {
|
|
while (<$spelling>) {
|
|
my $line = $_;
|
|
|
|
$line =~ s/\s*\n?$//g;
|
|
$line =~ s/^\s*//g;
|
|
|
|
next if ($line =~ m/^\s*#/);
|
|
next if ($line =~ m/^\s*$/);
|
|
next if ($line =~ m/, disabled/i);
|
|
|
|
$line =~ s/,.*$//;
|
|
|
|
my ($suspect, $fix) = split(/->/, $line);
|
|
|
|
$spelling_fix{$suspect} = $fix;
|
|
}
|
|
close($spelling);
|
|
} else {
|
|
warn "No codespell typos will be found - file '$codespellfile': $!\n";
|
|
}
|
|
}
|
|
|
|
$misspellings = join("|", sort keys %spelling_fix) if keys %spelling_fix;
|
|
|
|
sub read_words {
|
|
my ($wordsRef, $file) = @_;
|
|
|
|
if (open(my $words, '<', $file)) {
|
|
while (<$words>) {
|
|
my $line = $_;
|
|
|
|
$line =~ s/\s*\n?$//g;
|
|
$line =~ s/^\s*//g;
|
|
|
|
next if ($line =~ m/^\s*#/);
|
|
next if ($line =~ m/^\s*$/);
|
|
if ($line =~ /\s/) {
|
|
print("$file: '$line' invalid - ignored\n");
|
|
next;
|
|
}
|
|
|
|
$$wordsRef .= '|' if ($$wordsRef ne "");
|
|
$$wordsRef .= $line;
|
|
}
|
|
close($file);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
my $const_structs = "";
|
|
read_words(\$const_structs, $conststructsfile)
|
|
or warn "No structs that should be const will be found - file '$conststructsfile': $!\n";
|
|
|
|
my $typeOtherTypedefs = "";
|
|
if (length($typedefsfile)) {
|
|
read_words(\$typeOtherTypedefs, $typedefsfile)
|
|
or warn "No additional types will be considered - file '$typedefsfile': $!\n";
|
|
}
|
|
$typeTypedefs .= '|' . $typeOtherTypedefs if ($typeOtherTypedefs ne "");
|
|
|
|
sub build_types {
|
|
my $mods = "(?x: \n" . join("|\n ", (@modifierList, @modifierListFile)) . "\n)";
|
|
my $all = "(?x: \n" . join("|\n ", (@typeList, @typeListFile)) . "\n)";
|
|
my $Misordered = "(?x: \n" . join("|\n ", @typeListMisordered) . "\n)";
|
|
my $allWithAttr = "(?x: \n" . join("|\n ", @typeListWithAttr) . "\n)";
|
|
$Modifier = qr{(?:$Attribute|$Sparse|$mods)};
|
|
$BasicType = qr{
|
|
(?:$typeTypedefs\b)|
|
|
(?:${all}\b)
|
|
}x;
|
|
$NonptrType = qr{
|
|
(?:$Modifier\s+|const\s+)*
|
|
(?:
|
|
(?:typeof|__typeof__)\s*\([^\)]*\)|
|
|
(?:$typeTypedefs\b)|
|
|
(?:${all}\b)
|
|
)
|
|
(?:\s+$Modifier|\s+const)*
|
|
}x;
|
|
$NonptrTypeMisordered = qr{
|
|
(?:$Modifier\s+|const\s+)*
|
|
(?:
|
|
(?:${Misordered}\b)
|
|
)
|
|
(?:\s+$Modifier|\s+const)*
|
|
}x;
|
|
$NonptrTypeWithAttr = qr{
|
|
(?:$Modifier\s+|const\s+)*
|
|
(?:
|
|
(?:typeof|__typeof__)\s*\([^\)]*\)|
|
|
(?:$typeTypedefs\b)|
|
|
(?:${allWithAttr}\b)
|
|
)
|
|
(?:\s+$Modifier|\s+const)*
|
|
}x;
|
|
$Type = qr{
|
|
$NonptrType
|
|
(?:(?:\s|\*|\[\])+\s*const|(?:\s|\*\s*(?:const\s*)?|\[\])+|(?:\s*\[\s*\])+)?
|
|
(?:\s+$Inline|\s+$Modifier)*
|
|
}x;
|
|
$TypeMisordered = qr{
|
|
$NonptrTypeMisordered
|
|
(?:(?:\s|\*|\[\])+\s*const|(?:\s|\*\s*(?:const\s*)?|\[\])+|(?:\s*\[\s*\])+)?
|
|
(?:\s+$Inline|\s+$Modifier)*
|
|
}x;
|
|
$Declare = qr{(?:$Storage\s+(?:$Inline\s+)?)?$Type};
|
|
$DeclareMisordered = qr{(?:$Storage\s+(?:$Inline\s+)?)?$TypeMisordered};
|
|
}
|
|
build_types();
|
|
|
|
our $Typecast = qr{\s*(\(\s*$NonptrType\s*\)){0,1}\s*};
|
|
|
|
# Using $balanced_parens, $LvalOrFunc, or $FuncArg
|
|
# requires at least perl version v5.10.0
|
|
# Any use must be runtime checked with $^V
|
|
|
|
our $balanced_parens = qr/(\((?:[^\(\)]++|(?-1))*\))/;
|
|
our $LvalOrFunc = qr{((?:[\&\*]\s*)?$Lval)\s*($balanced_parens{0,1})\s*};
|
|
our $FuncArg = qr{$Typecast{0,1}($LvalOrFunc|$Constant|$String)};
|
|
|
|
our $declaration_macros = qr{(?x:
|
|
(?:$Storage\s+)?(?:[A-Z_][A-Z0-9]*_){0,2}(?:DEFINE|DECLARE)(?:_[A-Z0-9]+){1,6}\s*\(|
|
|
(?:$Storage\s+)?[HLP]?LIST_HEAD\s*\(|
|
|
(?:$Storage\s+)?${Type}\s+uninitialized_var\s*\(|
|
|
(?:SKCIPHER_REQUEST|SHASH_DESC|AHASH_REQUEST)_ON_STACK\s*\(
|
|
)};
|
|
|
|
sub deparenthesize {
|
|
my ($string) = @_;
|
|
return "" if (!defined($string));
|
|
|
|
while ($string =~ /^\s*\(.*\)\s*$/) {
|
|
$string =~ s@^\s*\(\s*@@;
|
|
$string =~ s@\s*\)\s*$@@;
|
|
}
|
|
|
|
$string =~ s@\s+@ @g;
|
|
|
|
return $string;
|
|
}
|
|
|
|
sub seed_camelcase_file {
|
|
my ($file) = @_;
|
|
|
|
return if (!(-f $file));
|
|
|
|
local $/;
|
|
|
|
open(my $include_file, '<', "$file")
|
|
or warn "$P: Can't read '$file' $!\n";
|
|
my $text = <$include_file>;
|
|
close($include_file);
|
|
|
|
my @lines = split('\n', $text);
|
|
|
|
foreach my $line (@lines) {
|
|
next if ($line !~ /(?:[A-Z][a-z]|[a-z][A-Z])/);
|
|
if ($line =~ /^[ \t]*(?:#[ \t]*define|typedef\s+$Type)\s+(\w*(?:[A-Z][a-z]|[a-z][A-Z])\w*)/) {
|
|
$camelcase{$1} = 1;
|
|
} elsif ($line =~ /^\s*$Declare\s+(\w*(?:[A-Z][a-z]|[a-z][A-Z])\w*)\s*[\(\[,;]/) {
|
|
$camelcase{$1} = 1;
|
|
} elsif ($line =~ /^\s*(?:union|struct|enum)\s+(\w*(?:[A-Z][a-z]|[a-z][A-Z])\w*)\s*[;\{]/) {
|
|
$camelcase{$1} = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
sub is_maintained_obsolete {
|
|
my ($filename) = @_;
|
|
|
|
return 0 if (!$tree || !(-e "$root/scripts/get_maintainer.pl"));
|
|
|
|
my $status = `perl $root/scripts/get_maintainer.pl --status --nom --nol --nogit --nogit-fallback -f $filename 2>&1`;
|
|
|
|
return $status =~ /obsolete/i;
|
|
}
|
|
|
|
my $camelcase_seeded = 0;
|
|
sub seed_camelcase_includes {
|
|
return if ($camelcase_seeded);
|
|
|
|
my $files;
|
|
my $camelcase_cache = "";
|
|
my @include_files = ();
|
|
|
|
$camelcase_seeded = 1;
|
|
|
|
if (-e ".git") {
|
|
my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;
|
|
chomp $git_last_include_commit;
|
|
$camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
|
|
} else {
|
|
my $last_mod_date = 0;
|
|
$files = `find $root/include -name "*.h"`;
|
|
@include_files = split('\n', $files);
|
|
foreach my $file (@include_files) {
|
|
my $date = POSIX::strftime("%Y%m%d%H%M",
|
|
localtime((stat $file)[9]));
|
|
$last_mod_date = $date if ($last_mod_date < $date);
|
|
}
|
|
$camelcase_cache = ".checkpatch-camelcase.date.$last_mod_date";
|
|
}
|
|
|
|
if ($camelcase_cache ne "" && -f $camelcase_cache) {
|
|
open(my $camelcase_file, '<', "$camelcase_cache")
|
|
or warn "$P: Can't read '$camelcase_cache' $!\n";
|
|
while (<$camelcase_file>) {
|
|
chomp;
|
|
$camelcase{$_} = 1;
|
|
}
|
|
close($camelcase_file);
|
|
|
|
return;
|
|
}
|
|
|
|
if (-e ".git") {
|
|
$files = `git ls-files "include/*.h"`;
|
|
@include_files = split('\n', $files);
|
|
}
|
|
|
|
foreach my $file (@include_files) {
|
|
seed_camelcase_file($file);
|
|
}
|
|
|
|
if ($camelcase_cache ne "") {
|
|
unlink glob ".checkpatch-camelcase.*";
|
|
open(my $camelcase_file, '>', "$camelcase_cache")
|
|
or warn "$P: Can't write '$camelcase_cache' $!\n";
|
|
foreach (sort { lc($a) cmp lc($b) } keys(%camelcase)) {
|
|
print $camelcase_file ("$_\n");
|
|
}
|
|
close($camelcase_file);
|
|
}
|
|
}
|
|
|
|
sub git_commit_info {
|
|
my ($commit, $id, $desc) = @_;
|
|
|
|
return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));
|
|
|
|
my $output = `git log --no-color --format='%H %s' -1 $commit 2>&1`;
|
|
$output =~ s/^\s*//gm;
|
|
my @lines = split("\n", $output);
|
|
|
|
return ($id, $desc) if ($#lines < 0);
|
|
|
|
if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
|
|
# Maybe one day convert this block of bash into something that returns
|
|
# all matching commit ids, but it's very slow...
|
|
#
|
|
# echo "checking commits $1..."
|
|
# git rev-list --remotes | grep -i "^$1" |
|
|
# while read line ; do
|
|
# git log --format='%H %s' -1 $line |
|
|
# echo "commit $(cut -c 1-12,41-)"
|
|
# done
|
|
} elsif ($lines[0] =~ /^fatal: ambiguous argument '$commit': unknown revision or path not in the working tree\./) {
|
|
$id = undef;
|
|
} else {
|
|
$id = substr($lines[0], 0, 12);
|
|
$desc = substr($lines[0], 41);
|
|
}
|
|
|
|
return ($id, $desc);
|
|
}
|
|
|
|
$chk_signoff = 0 if ($file);
|
|
|
|
my @rawlines = ();
|
|
my @lines = ();
|
|
my @fixed = ();
|
|
my @fixed_inserted = ();
|
|
my @fixed_deleted = ();
|
|
my $fixlinenr = -1;
|
|
|
|
# If input is git commits, extract all commits from the commit expressions.
|
|
# For example, HEAD-3 means we need check 'HEAD, HEAD~1, HEAD~2'.
|
|
die "$P: No git repository found\n" if ($git && !-e ".git");
|
|
|
|
if ($git) {
|
|
my @commits = ();
|
|
foreach my $commit_expr (@ARGV) {
|
|
my $git_range;
|
|
if ($commit_expr =~ m/^(.*)-(\d+)$/) {
|
|
$git_range = "-$2 $1";
|
|
} elsif ($commit_expr =~ m/\.\./) {
|
|
$git_range = "$commit_expr";
|
|
} else {
|
|
$git_range = "-1 $commit_expr";
|
|
}
|
|
my $lines = `git log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
|
|
foreach my $line (split(/\n/, $lines)) {
|
|
$line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;
|
|
next if (!defined($1) || !defined($2));
|
|
my $sha1 = $1;
|
|
my $subject = $2;
|
|
unshift(@commits, $sha1);
|
|
$git_commits{$sha1} = $subject;
|
|
}
|
|
}
|
|
die "$P: no git commits after extraction!\n" if (@commits == 0);
|
|
@ARGV = @commits;
|
|
}
|
|
|
|
my $vname;
|
|
for my $filename (@ARGV) {
|
|
my $FILE;
|
|
if ($git) {
|
|
open($FILE, '-|', "git format-patch -M --stdout -1 $filename") ||
|
|
die "$P: $filename: git format-patch failed - $!\n";
|
|
} elsif ($file) {
|
|
open($FILE, '-|', "diff -u /dev/null $filename") ||
|
|
die "$P: $filename: diff failed - $!\n";
|
|
} elsif ($filename eq '-') {
|
|
open($FILE, '<&STDIN');
|
|
} else {
|
|
open($FILE, '<', "$filename") ||
|
|
die "$P: $filename: open failed - $!\n";
|
|
}
|
|
if ($filename eq '-') {
|
|
$vname = 'Your patch';
|
|
} elsif ($git) {
|
|
$vname = "Commit " . substr($filename, 0, 12) . ' ("' . $git_commits{$filename} . '")';
|
|
} else {
|
|
$vname = $filename;
|
|
}
|
|
while (<$FILE>) {
|
|
chomp;
|
|
push(@rawlines, $_);
|
|
}
|
|
close($FILE);
|
|
|
|
if ($#ARGV > 0 && $quiet == 0) {
|
|
print '-' x length($vname) . "\n";
|
|
print "$vname\n";
|
|
print '-' x length($vname) . "\n";
|
|
}
|
|
|
|
if (!process($filename)) {
|
|
$exit = 1;
|
|
}
|
|
@rawlines = ();
|
|
@lines = ();
|
|
@fixed = ();
|
|
@fixed_inserted = ();
|
|
@fixed_deleted = ();
|
|
$fixlinenr = -1;
|
|
@modifierListFile = ();
|
|
@typeListFile = ();
|
|
build_types();
|
|
}
|
|
|
|
if (!$quiet) {
|
|
hash_show_words(\%use_type, "Used");
|
|
hash_show_words(\%ignore_type, "Ignored");
|
|
|
|
if ($^V lt 5.10.0) {
|
|
print << "EOM"
|
|
|
|
NOTE: perl $^V is not modern enough to detect all possible issues.
|
|
An upgrade to at least perl v5.10.0 is suggested.
|
|
EOM
|
|
}
|
|
if ($exit) {
|
|
print << "EOM"
|
|
|
|
NOTE: If any of the errors are false positives, please report
|
|
them to the maintainer, see CHECKPATCH in MAINTAINERS.
|
|
EOM
|
|
}
|
|
}
|
|
|
|
exit($exit);
|
|
|
|
sub top_of_kernel_tree {
|
|
my ($root) = @_;
|
|
|
|
my @tree_check = (
|
|
"COPYING", "CREDITS", "Kbuild", "MAINTAINERS", "Makefile",
|
|
"README", "Documentation", "arch", "include", "drivers",
|
|
"fs", "init", "ipc", "kernel", "lib", "scripts",
|
|
);
|
|
|
|
foreach my $check (@tree_check) {
|
|
if (! -e $root . '/' . $check) {
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
sub parse_email {
|
|
my ($formatted_email) = @_;
|
|
|
|
my $name = "";
|
|
my $address = "";
|
|
my $comment = "";
|
|
|
|
if ($formatted_email =~ /^(.*)<(\S+\@\S+)>(.*)$/) {
|
|
$name = $1;
|
|
$address = $2;
|
|
$comment = $3 if defined $3;
|
|
} elsif ($formatted_email =~ /^\s*<(\S+\@\S+)>(.*)$/) {
|
|
$address = $1;
|
|
$comment = $2 if defined $2;
|
|
} elsif ($formatted_email =~ /(\S+\@\S+)(.*)$/) {
|
|
$address = $1;
|
|
$comment = $2 if defined $2;
|
|
$formatted_email =~ s/\Q$address\E.*$//;
|
|
$name = $formatted_email;
|
|
$name = trim($name);
|
|
$name =~ s/^\"|\"$//g;
|
|
# If there's a name left after stripping spaces and
|
|
# leading quotes, and the address doesn't have both
|
|
# leading and trailing angle brackets, the address
|
|
# is invalid. ie:
|
|
# "joe smith joe@smith.com" bad
|
|
# "joe smith <joe@smith.com" bad
|
|
if ($name ne "" && $address !~ /^<[^>]+>$/) {
|
|
$name = "";
|
|
$address = "";
|
|
$comment = "";
|
|
}
|
|
}
|
|
|
|
$name = trim($name);
|
|
$name =~ s/^\"|\"$//g;
|
|
$address = trim($address);
|
|
$address =~ s/^\<|\>$//g;
|
|
|
|
if ($name =~ /[^\w \-]/i) { ##has "must quote" chars
|
|
$name =~ s/(?<!\\)"/\\"/g; ##escape quotes
|
|
$name = "\"$name\"";
|
|
}
|
|
|
|
return ($name, $address, $comment);
|
|
}
|
|
|
|
sub format_email {
|
|
my ($name, $address) = @_;
|
|
|
|
my $formatted_email;
|
|
|
|
$name = trim($name);
|
|
$name =~ s/^\"|\"$//g;
|
|
$address = trim($address);
|
|
|
|
if ($name =~ /[^\w \-]/i) { ##has "must quote" chars
|
|
$name =~ s/(?<!\\)"/\\"/g; ##escape quotes
|
|
$name = "\"$name\"";
|
|
}
|
|
|
|
if ("$name" eq "") {
|
|
$formatted_email = "$address";
|
|
} else {
|
|
$formatted_email = "$name <$address>";
|
|
}
|
|
|
|
return $formatted_email;
|
|
}
|
|
|
|
sub which {
|
|
my ($bin) = @_;
|
|
|
|
foreach my $path (split(/:/, $ENV{PATH})) {
|
|
if (-e "$path/$bin") {
|
|
return "$path/$bin";
|
|
}
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
sub which_conf {
|
|
my ($conf) = @_;
|
|
|
|
foreach my $path (split(/:/, ".:$ENV{HOME}:.scripts")) {
|
|
if (-e "$path/$conf") {
|
|
return "$path/$conf";
|
|
}
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
sub expand_tabs {
|
|
my ($str) = @_;
|
|
|
|
my $res = '';
|
|
my $n = 0;
|
|
for my $c (split(//, $str)) {
|
|
if ($c eq "\t") {
|
|
$res .= ' ';
|
|
$n++;
|
|
for (; ($n % 8) != 0; $n++) {
|
|
$res .= ' ';
|
|
}
|
|
next;
|
|
}
|
|
$res .= $c;
|
|
$n++;
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
sub copy_spacing {
|
|
(my $res = shift) =~ tr/\t/ /c;
|
|
return $res;
|
|
}
|
|
|
|
sub line_stats {
|
|
my ($line) = @_;
|
|
|
|
# Drop the diff line leader and expand tabs
|
|
$line =~ s/^.//;
|
|
$line = expand_tabs($line);
|
|
|
|
# Pick the indent from the front of the line.
|
|
my ($white) = ($line =~ /^(\s*)/);
|
|
|
|
return (length($line), length($white));
|
|
}
|
|
|
|
my $sanitise_quote = '';
|
|
|
|
sub sanitise_line_reset {
|
|
my ($in_comment) = @_;
|
|
|
|
if ($in_comment) {
|
|
$sanitise_quote = '*/';
|
|
} else {
|
|
$sanitise_quote = '';
|
|
}
|
|
}
|
|
sub sanitise_line {
|
|
my ($line) = @_;
|
|
|
|
my $res = '';
|
|
my $l = '';
|
|
|
|
my $qlen = 0;
|
|
my $off = 0;
|
|
my $c;
|
|
|
|
# Always copy over the diff marker.
|
|
$res = substr($line, 0, 1);
|
|
|
|
for ($off = 1; $off < length($line); $off++) {
|
|
$c = substr($line, $off, 1);
|
|
|
|
# Comments we are whacking completely including the begin
|
|
# and end, all to $;.
|
|
if ($sanitise_quote eq '' && substr($line, $off, 2) eq '/*') {
|
|
$sanitise_quote = '*/';
|
|
|
|
substr($res, $off, 2, "$;$;");
|
|
$off++;
|
|
next;
|
|
}
|
|
if ($sanitise_quote eq '*/' && substr($line, $off, 2) eq '*/') {
|
|
$sanitise_quote = '';
|
|
substr($res, $off, 2, "$;$;");
|
|
$off++;
|
|
next;
|
|
}
|
|
if ($sanitise_quote eq '' && substr($line, $off, 2) eq '//') {
|
|
$sanitise_quote = '//';
|
|
|
|
substr($res, $off, 2, $sanitise_quote);
|
|
$off++;
|
|
next;
|
|
}
|
|
|
|
# A \ in a string means ignore the next character.
|
|
if (($sanitise_quote eq "'" || $sanitise_quote eq '"') &&
|
|
$c eq "\\") {
|
|
substr($res, $off, 2, 'XX');
|
|
$off++;
|
|
next;
|
|
}
|
|
# Regular quotes.
|
|
if ($c eq "'" || $c eq '"') {
|
|
if ($sanitise_quote eq '') {
|
|
$sanitise_quote = $c;
|
|
|
|
substr($res, $off, 1, $c);
|
|
next;
|
|
} elsif ($sanitise_quote eq $c) {
|
|
$sanitise_quote = '';
|
|
}
|
|
}
|
|
|
|
#print "c<$c> SQ<$sanitise_quote>\n";
|
|
if ($off != 0 && $sanitise_quote eq '*/' && $c ne "\t") {
|
|
substr($res, $off, 1, $;);
|
|
} elsif ($off != 0 && $sanitise_quote eq '//' && $c ne "\t") {
|
|
substr($res, $off, 1, $;);
|
|
} elsif ($off != 0 && $sanitise_quote && $c ne "\t") {
|
|
substr($res, $off, 1, 'X');
|
|
} else {
|
|
substr($res, $off, 1, $c);
|
|
}
|
|
}
|
|
|
|
if ($sanitise_quote eq '//') {
|
|
$sanitise_quote = '';
|
|
}
|
|
|
|
# The pathname on a #include may be surrounded by '<' and '>'.
|
|
if ($res =~ /^.\s*\#\s*include\s+\<(.*)\>/) {
|
|
my $clean = 'X' x length($1);
|
|
$res =~ s@\<.*\>@<$clean>@;
|
|
|
|
# The whole of a #error is a string.
|
|
} elsif ($res =~ /^.\s*\#\s*(?:error|warning)\s+(.*)\b/) {
|
|
my $clean = 'X' x length($1);
|
|
$res =~ s@(\#\s*(?:error|warning)\s+).*@$1$clean@;
|
|
}
|
|
|
|
if ($allow_c99_comments && $res =~ m@(//.*$)@) {
|
|
my $match = $1;
|
|
$res =~ s/\Q$match\E/"$;" x length($match)/e;
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
sub get_quoted_string {
|
|
my ($line, $rawline) = @_;
|
|
|
|
return "" if (!defined($line) || !defined($rawline));
|
|
return "" if ($line !~ m/($String)/g);
|
|
return substr($rawline, $-[0], $+[0] - $-[0]);
|
|
}
|
|
|
|
sub ctx_statement_block {
|
|
my ($linenr, $remain, $off) = @_;
|
|
my $line = $linenr - 1;
|
|
my $blk = '';
|
|
my $soff = $off;
|
|
my $coff = $off - 1;
|
|
my $coff_set = 0;
|
|
|
|
my $loff = 0;
|
|
|
|
my $type = '';
|
|
my $level = 0;
|
|
my @stack = ();
|
|
my $p;
|
|
my $c;
|
|
my $len = 0;
|
|
|
|
my $remainder;
|
|
while (1) {
|
|
@stack = (['', 0]) if ($#stack == -1);
|
|
|
|
#warn "CSB: blk<$blk> remain<$remain>\n";
|
|
# If we are about to drop off the end, pull in more
|
|
# context.
|
|
if ($off >= $len) {
|
|
for (; $remain > 0; $line++) {
|
|
last if (!defined $lines[$line]);
|
|
next if ($lines[$line] =~ /^-/);
|
|
$remain--;
|
|
$loff = $len;
|
|
$blk .= $lines[$line] . "\n";
|
|
$len = length($blk);
|
|
$line++;
|
|
last;
|
|
}
|
|
# Bail if there is no further context.
|
|
#warn "CSB: blk<$blk> off<$off> len<$len>\n";
|
|
if ($off >= $len) {
|
|
last;
|
|
}
|
|
if ($level == 0 && substr($blk, $off) =~ /^.\s*#\s*define/) {
|
|
$level++;
|
|
$type = '#';
|
|
}
|
|
}
|
|
$p = $c;
|
|
$c = substr($blk, $off, 1);
|
|
$remainder = substr($blk, $off);
|
|
|
|
#warn "CSB: c<$c> type<$type> level<$level> remainder<$remainder> coff_set<$coff_set>\n";
|
|
|
|
# Handle nested #if/#else.
|
|
if ($remainder =~ /^#\s*(?:ifndef|ifdef|if)\s/) {
|
|
push(@stack, [ $type, $level ]);
|
|
} elsif ($remainder =~ /^#\s*(?:else|elif)\b/) {
|
|
($type, $level) = @{$stack[$#stack - 1]};
|
|
} elsif ($remainder =~ /^#\s*endif\b/) {
|
|
($type, $level) = @{pop(@stack)};
|
|
}
|
|
|
|
# Statement ends at the ';' or a close '}' at the
|
|
# outermost level.
|
|
if ($level == 0 && $c eq ';') {
|
|
last;
|
|
}
|
|
|
|
# An else is really a conditional as long as its not else if
|
|
if ($level == 0 && $coff_set == 0 &&
|
|
(!defined($p) || $p =~ /(?:\s|\}|\+)/) &&
|
|
$remainder =~ /^(else)(?:\s|{)/ &&
|
|
$remainder !~ /^else\s+if\b/) {
|
|
$coff = $off + length($1) - 1;
|
|
$coff_set = 1;
|
|
#warn "CSB: mark coff<$coff> soff<$soff> 1<$1>\n";
|
|
#warn "[" . substr($blk, $soff, $coff - $soff + 1) . "]\n";
|
|
}
|
|
|
|
if (($type eq '' || $type eq '(') && $c eq '(') {
|
|
$level++;
|
|
$type = '(';
|
|
}
|
|
if ($type eq '(' && $c eq ')') {
|
|
$level--;
|
|
$type = ($level != 0)? '(' : '';
|
|
|
|
if ($level == 0 && $coff < $soff) {
|
|
$coff = $off;
|
|
$coff_set = 1;
|
|
#warn "CSB: mark coff<$coff>\n";
|
|
}
|
|
}
|
|
if (($type eq '' || $type eq '{') && $c eq '{') {
|
|
$level++;
|
|
$type = '{';
|
|
}
|
|
if ($type eq '{' && $c eq '}') {
|
|
$level--;
|
|
$type = ($level != 0)? '{' : '';
|
|
|
|
if ($level == 0) {
|
|
if (substr($blk, $off + 1, 1) eq ';') {
|
|
$off++;
|
|
}
|
|
last;
|
|
}
|
|
}
|
|
# Preprocessor commands end at the newline unless escaped.
|
|
if ($type eq '#' && $c eq "\n" && $p ne "\\") {
|
|
$level--;
|
|
$type = '';
|
|
$off++;
|
|
last;
|
|
}
|
|
$off++;
|
|
}
|
|
# We are truly at the end, so shuffle to the next line.
|
|
if ($off == $len) {
|
|
$loff = $len + 1;
|
|
$line++;
|
|
$remain--;
|
|
}
|
|
|
|
my $statement = substr($blk, $soff, $off - $soff + 1);
|
|
my $condition = substr($blk, $soff, $coff - $soff + 1);
|
|
|
|
#warn "STATEMENT<$statement>\n";
|
|
#warn "CONDITION<$condition>\n";
|
|
|
|
#print "coff<$coff> soff<$off> loff<$loff>\n";
|
|
|
|
return ($statement, $condition,
|
|
$line, $remain + 1, $off - $loff + 1, $level);
|
|
}
|
|
|
|
sub statement_lines {
|
|
my ($stmt) = @_;
|
|
|
|
# Strip the diff line prefixes and rip blank lines at start and end.
|
|
$stmt =~ s/(^|\n)./$1/g;
|
|
$stmt =~ s/^\s*//;
|
|
$stmt =~ s/\s*$//;
|
|
|
|
my @stmt_lines = ($stmt =~ /\n/g);
|
|
|
|
return $#stmt_lines + 2;
|
|
}
|
|
|
|
sub statement_rawlines {
|
|
my ($stmt) = @_;
|
|
|
|
my @stmt_lines = ($stmt =~ /\n/g);
|
|
|
|
return $#stmt_lines + 2;
|
|
}
|
|
|
|
sub statement_block_size {
|
|
my ($stmt) = @_;
|
|
|
|
$stmt =~ s/(^|\n)./$1/g;
|
|
$stmt =~ s/^\s*{//;
|
|
$stmt =~ s/}\s*$//;
|
|
$stmt =~ s/^\s*//;
|
|
$stmt =~ s/\s*$//;
|
|
|
|
my @stmt_lines = ($stmt =~ /\n/g);
|
|
my @stmt_statements = ($stmt =~ /;/g);
|
|
|
|
my $stmt_lines = $#stmt_lines + 2;
|
|
my $stmt_statements = $#stmt_statements + 1;
|
|
|
|
if ($stmt_lines > $stmt_statements) {
|
|
return $stmt_lines;
|
|
} else {
|
|
return $stmt_statements;
|
|
}
|
|
}
|
|
|
|
sub ctx_statement_full {
|
|
my ($linenr, $remain, $off) = @_;
|
|
my ($statement, $condition, $level);
|
|
|
|
my (@chunks);
|
|
|
|
# Grab the first conditional/block pair.
|
|
($statement, $condition, $linenr, $remain, $off, $level) =
|
|
ctx_statement_block($linenr, $remain, $off);
|
|
#print "F: c<$condition> s<$statement> remain<$remain>\n";
|
|
push(@chunks, [ $condition, $statement ]);
|
|
if (!($remain > 0 && $condition =~ /^\s*(?:\n[+-])?\s*(?:if|else|do)\b/s)) {
|
|
return ($level, $linenr, @chunks);
|
|
}
|
|
|
|
# Pull in the following conditional/block pairs and see if they
|
|
# could continue the statement.
|
|
for (;;) {
|
|
($statement, $condition, $linenr, $remain, $off, $level) =
|
|
ctx_statement_block($linenr, $remain, $off);
|
|
#print "C: c<$condition> s<$statement> remain<$remain>\n";
|
|
last if (!($remain > 0 && $condition =~ /^(?:\s*\n[+-])*\s*(?:else|do)\b/s));
|
|
#print "C: push\n";
|
|
push(@chunks, [ $condition, $statement ]);
|
|
}
|
|
|
|
return ($level, $linenr, @chunks);
|
|
}
|
|
|
|
sub ctx_block_get {
|
|
my ($linenr, $remain, $outer, $open, $close, $off) = @_;
|
|
my $line;
|
|
my $start = $linenr - 1;
|
|
my $blk = '';
|
|
my @o;
|
|
my @c;
|
|
my @res = ();
|
|
|
|
my $level = 0;
|
|
my @stack = ($level);
|
|
for ($line = $start; $remain > 0; $line++) {
|
|
next if ($rawlines[$line] =~ /^-/);
|
|
$remain--;
|
|
|
|
$blk .= $rawlines[$line];
|
|
|
|
# Handle nested #if/#else.
|
|
if ($lines[$line] =~ /^.\s*#\s*(?:ifndef|ifdef|if)\s/) {
|
|
push(@stack, $level);
|
|
} elsif ($lines[$line] =~ /^.\s*#\s*(?:else|elif)\b/) {
|
|
$level = $stack[$#stack - 1];
|
|
} elsif ($lines[$line] =~ /^.\s*#\s*endif\b/) {
|
|
$level = pop(@stack);
|
|
}
|
|
|
|
foreach my $c (split(//, $lines[$line])) {
|
|
##print "C<$c>L<$level><$open$close>O<$off>\n";
|
|
if ($off > 0) {
|
|
$off--;
|
|
next;
|
|
}
|
|
|
|
if ($c eq $close && $level > 0) {
|
|
$level--;
|
|
last if ($level == 0);
|
|
} elsif ($c eq $open) {
|
|
$level++;
|
|
}
|
|
}
|
|
|
|
if (!$outer || $level <= 1) {
|
|
push(@res, $rawlines[$line]);
|
|
}
|
|
|
|
last if ($level == 0);
|
|
}
|
|
|
|
return ($level, @res);
|
|
}
|
|
sub ctx_block_outer {
|
|
my ($linenr, $remain) = @_;
|
|
|
|
my ($level, @r) = ctx_block_get($linenr, $remain, 1, '{', '}', 0);
|
|
return @r;
|
|
}
|
|
sub ctx_block {
|
|
my ($linenr, $remain) = @_;
|
|
|
|
my ($level, @r) = ctx_block_get($linenr, $remain, 0, '{', '}', 0);
|
|
return @r;
|
|
}
|
|
sub ctx_statement {
|
|
my ($linenr, $remain, $off) = @_;
|
|
|
|
my ($level, @r) = ctx_block_get($linenr, $remain, 0, '(', ')', $off);
|
|
return @r;
|
|
}
|
|
sub ctx_block_level {
|
|
my ($linenr, $remain) = @_;
|
|
|
|
return ctx_block_get($linenr, $remain, 0, '{', '}', 0);
|
|
}
|
|
sub ctx_statement_level {
|
|
my ($linenr, $remain, $off) = @_;
|
|
|
|
return ctx_block_get($linenr, $remain, 0, '(', ')', $off);
|
|
}
|
|
|
|
sub ctx_locate_comment {
|
|
my ($first_line, $end_line) = @_;
|
|
|
|
# Catch a comment on the end of the line itself.
|
|
my ($current_comment) = ($rawlines[$end_line - 1] =~ m@.*(/\*.*\*/)\s*(?:\\\s*)?$@);
|
|
return $current_comment if (defined $current_comment);
|
|
|
|
# Look through the context and try and figure out if there is a
|
|
# comment.
|
|
my $in_comment = 0;
|
|
$current_comment = '';
|
|
for (my $linenr = $first_line; $linenr < $end_line; $linenr++) {
|
|
my $line = $rawlines[$linenr - 1];
|
|
#warn " $line\n";
|
|
if ($linenr == $first_line and $line =~ m@^.\s*\*@) {
|
|
$in_comment = 1;
|
|
}
|
|
if ($line =~ m@/\*@) {
|
|
$in_comment = 1;
|
|
}
|
|
if (!$in_comment && $current_comment ne '') {
|
|
$current_comment = '';
|
|
}
|
|
$current_comment .= $line . "\n" if ($in_comment);
|
|
if ($line =~ m@\*/@) {
|
|
$in_comment = 0;
|
|
}
|
|
}
|
|
|
|
chomp($current_comment);
|
|
return($current_comment);
|
|
}
|
|
sub ctx_has_comment {
|
|
my ($first_line, $end_line) = @_;
|
|
my $cmt = ctx_locate_comment($first_line, $end_line);
|
|
|
|
##print "LINE: $rawlines[$end_line - 1 ]\n";
|
|
##print "CMMT: $cmt\n";
|
|
|
|
return ($cmt ne '');
|
|
}
|
|
|
|
sub raw_line {
|
|
my ($linenr, $cnt) = @_;
|
|
|
|
my $offset = $linenr - 1;
|
|
$cnt++;
|
|
|
|
my $line;
|
|
while ($cnt) {
|
|
$line = $rawlines[$offset++];
|
|
next if (defined($line) && $line =~ /^-/);
|
|
$cnt--;
|
|
}
|
|
|
|
return $line;
|
|
}
|
|
|
|
sub get_stat_real {
|
|
my ($linenr, $lc) = @_;
|
|
|
|
my $stat_real = raw_line($linenr, 0);
|
|
for (my $count = $linenr + 1; $count <= $lc; $count++) {
|
|
$stat_real = $stat_real . "\n" . raw_line($count, 0);
|
|
}
|
|
|
|
return $stat_real;
|
|
}
|
|
|
|
sub get_stat_here {
|
|
my ($linenr, $cnt, $here) = @_;
|
|
|
|
my $herectx = $here . "\n";
|
|
for (my $n = 0; $n < $cnt; $n++) {
|
|
$herectx .= raw_line($linenr, $n) . "\n";
|
|
}
|
|
|
|
return $herectx;
|
|
}
|
|
|
|
sub cat_vet {
|
|
my ($vet) = @_;
|
|
my ($res, $coded);
|
|
|
|
$res = '';
|
|
while ($vet =~ /([^[:cntrl:]]*)([[:cntrl:]]|$)/g) {
|
|
$res .= $1;
|
|
if ($2 ne '') {
|
|
$coded = sprintf("^%c", unpack('C', $2) + 64);
|
|
$res .= $coded;
|
|
}
|
|
}
|
|
$res =~ s/$/\$/;
|
|
|
|
return $res;
|
|
}
|
|
|
|
my $av_preprocessor = 0;
|
|
my $av_pending;
|
|
my @av_paren_type;
|
|
my $av_pend_colon;
|
|
|
|
sub annotate_reset {
|
|
$av_preprocessor = 0;
|
|
$av_pending = '_';
|
|
@av_paren_type = ('E');
|
|
$av_pend_colon = 'O';
|
|
}
|
|
|
|
sub annotate_values {
|
|
my ($stream, $type) = @_;
|
|
|
|
my $res;
|
|
my $var = '_' x length($stream);
|
|
my $cur = $stream;
|
|
|
|
print "$stream\n" if ($dbg_values > 1);
|
|
|
|
while (length($cur)) {
|
|
@av_paren_type = ('E') if ($#av_paren_type < 0);
|
|
print " <" . join('', @av_paren_type) .
|
|
"> <$type> <$av_pending>" if ($dbg_values > 1);
|
|
if ($cur =~ /^(\s+)/o) {
|
|
print "WS($1)\n" if ($dbg_values > 1);
|
|
if ($1 =~ /\n/ && $av_preprocessor) {
|
|
$type = pop(@av_paren_type);
|
|
$av_preprocessor = 0;
|
|
}
|
|
|
|
} elsif ($cur =~ /^(\(\s*$Type\s*)\)/ && $av_pending eq '_') {
|
|
print "CAST($1)\n" if ($dbg_values > 1);
|
|
push(@av_paren_type, $type);
|
|
$type = 'c';
|
|
|
|
} elsif ($cur =~ /^($Type)\s*(?:$Ident|,|\)|\(|\s*$)/) {
|
|
print "DECLARE($1)\n" if ($dbg_values > 1);
|
|
$type = 'T';
|
|
|
|
} elsif ($cur =~ /^($Modifier)\s*/) {
|
|
print "MODIFIER($1)\n" if ($dbg_values > 1);
|
|
$type = 'T';
|
|
|
|
} elsif ($cur =~ /^(\#\s*define\s*$Ident)(\(?)/o) {
|
|
print "DEFINE($1,$2)\n" if ($dbg_values > 1);
|
|
$av_preprocessor = 1;
|
|
push(@av_paren_type, $type);
|
|
if ($2 ne '') {
|
|
$av_pending = 'N';
|
|
}
|
|
$type = 'E';
|
|
|
|
} elsif ($cur =~ /^(\#\s*(?:undef\s*$Ident|include\b))/o) {
|
|
print "UNDEF($1)\n" if ($dbg_values > 1);
|
|
$av_preprocessor = 1;
|
|
push(@av_paren_type, $type);
|
|
|
|
} elsif ($cur =~ /^(\#\s*(?:ifdef|ifndef|if))/o) {
|
|
print "PRE_START($1)\n" if ($dbg_values > 1);
|
|
$av_preprocessor = 1;
|
|
|
|
push(@av_paren_type, $type);
|
|
push(@av_paren_type, $type);
|
|
$type = 'E';
|
|
|
|
} elsif ($cur =~ /^(\#\s*(?:else|elif))/o) {
|
|
print "PRE_RESTART($1)\n" if ($dbg_values > 1);
|
|
$av_preprocessor = 1;
|
|
|
|
push(@av_paren_type, $av_paren_type[$#av_paren_type]);
|
|
|
|
$type = 'E';
|
|
|
|
} elsif ($cur =~ /^(\#\s*(?:endif))/o) {
|
|
print "PRE_END($1)\n" if ($dbg_values > 1);
|
|
|
|
$av_preprocessor = 1;
|
|
|
|
# Assume all arms of the conditional end as this
|
|
# one does, and continue as if the #endif was not here.
|
|
pop(@av_paren_type);
|
|
push(@av_paren_type, $type);
|
|
$type = 'E';
|
|
|
|
} elsif ($cur =~ /^(\\\n)/o) {
|
|
print "PRECONT($1)\n" if ($dbg_values > 1);
|
|
|
|
} elsif ($cur =~ /^(__attribute__)\s*\(?/o) {
|
|
print "ATTR($1)\n" if ($dbg_values > 1);
|
|
$av_pending = $type;
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^(sizeof)\s*(\()?/o) {
|
|
print "SIZEOF($1)\n" if ($dbg_values > 1);
|
|
if (defined $2) {
|
|
$av_pending = 'V';
|
|
}
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^(if|while|for)\b/o) {
|
|
print "COND($1)\n" if ($dbg_values > 1);
|
|
$av_pending = 'E';
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~/^(case)/o) {
|
|
print "CASE($1)\n" if ($dbg_values > 1);
|
|
$av_pend_colon = 'C';
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~/^(return|else|goto|typeof|__typeof__)\b/o) {
|
|
print "KEYWORD($1)\n" if ($dbg_values > 1);
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^(\()/o) {
|
|
print "PAREN('$1')\n" if ($dbg_values > 1);
|
|
push(@av_paren_type, $av_pending);
|
|
$av_pending = '_';
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^(\))/o) {
|
|
my $new_type = pop(@av_paren_type);
|
|
if ($new_type ne '_') {
|
|
$type = $new_type;
|
|
print "PAREN('$1') -> $type\n"
|
|
if ($dbg_values > 1);
|
|
} else {
|
|
print "PAREN('$1')\n" if ($dbg_values > 1);
|
|
}
|
|
|
|
} elsif ($cur =~ /^($Ident)\s*\(/o) {
|
|
print "FUNC($1)\n" if ($dbg_values > 1);
|
|
$type = 'V';
|
|
$av_pending = 'V';
|
|
|
|
} elsif ($cur =~ /^($Ident\s*):(?:\s*\d+\s*(,|=|;))?/) {
|
|
if (defined $2 && $type eq 'C' || $type eq 'T') {
|
|
$av_pend_colon = 'B';
|
|
} elsif ($type eq 'E') {
|
|
$av_pend_colon = 'L';
|
|
}
|
|
print "IDENT_COLON($1,$type>$av_pend_colon)\n" if ($dbg_values > 1);
|
|
$type = 'V';
|
|
|
|
} elsif ($cur =~ /^($Ident|$Constant)/o) {
|
|
print "IDENT($1)\n" if ($dbg_values > 1);
|
|
$type = 'V';
|
|
|
|
} elsif ($cur =~ /^($Assignment)/o) {
|
|
print "ASSIGN($1)\n" if ($dbg_values > 1);
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~/^(;|{|})/) {
|
|
print "END($1)\n" if ($dbg_values > 1);
|
|
$type = 'E';
|
|
$av_pend_colon = 'O';
|
|
|
|
} elsif ($cur =~/^(,)/) {
|
|
print "COMMA($1)\n" if ($dbg_values > 1);
|
|
$type = 'C';
|
|
|
|
} elsif ($cur =~ /^(\?)/o) {
|
|
print "QUESTION($1)\n" if ($dbg_values > 1);
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^(:)/o) {
|
|
print "COLON($1,$av_pend_colon)\n" if ($dbg_values > 1);
|
|
|
|
substr($var, length($res), 1, $av_pend_colon);
|
|
if ($av_pend_colon eq 'C' || $av_pend_colon eq 'L') {
|
|
$type = 'E';
|
|
} else {
|
|
$type = 'N';
|
|
}
|
|
$av_pend_colon = 'O';
|
|
|
|
} elsif ($cur =~ /^(\[)/o) {
|
|
print "CLOSE($1)\n" if ($dbg_values > 1);
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^(-(?![->])|\+(?!\+)|\*|\&\&|\&)/o) {
|
|
my $variant;
|
|
|
|
print "OPV($1)\n" if ($dbg_values > 1);
|
|
if ($type eq 'V') {
|
|
$variant = 'B';
|
|
} else {
|
|
$variant = 'U';
|
|
}
|
|
|
|
substr($var, length($res), 1, $variant);
|
|
$type = 'N';
|
|
|
|
} elsif ($cur =~ /^($Operators)/o) {
|
|
print "OP($1)\n" if ($dbg_values > 1);
|
|
if ($1 ne '++' && $1 ne '--') {
|
|
$type = 'N';
|
|
}
|
|
|
|
} elsif ($cur =~ /(^.)/o) {
|
|
print "C($1)\n" if ($dbg_values > 1);
|
|
}
|
|
if (defined $1) {
|
|
$cur = substr($cur, length($1));
|
|
$res .= $type x length($1);
|
|
}
|
|
}
|
|
|
|
return ($res, $var);
|
|
}
|
|
|
|
sub possible {
|
|
my ($possible, $line) = @_;
|
|
my $notPermitted = qr{(?:
|
|
^(?:
|
|
$Modifier|
|
|
$Storage|
|
|
$Type|
|
|
DEFINE_\S+
|
|
)$|
|
|
^(?:
|
|
goto|
|
|
return|
|
|
case|
|
|
else|
|
|
asm|__asm__|
|
|
do|
|
|
\#|
|
|
\#\#|
|
|
)(?:\s|$)|
|
|
^(?:typedef|struct|enum)\b
|
|
)}x;
|
|
warn "CHECK<$possible> ($line)\n" if ($dbg_possible > 2);
|
|
if ($possible !~ $notPermitted) {
|
|
# Check for modifiers.
|
|
$possible =~ s/\s*$Storage\s*//g;
|
|
$possible =~ s/\s*$Sparse\s*//g;
|
|
if ($possible =~ /^\s*$/) {
|
|
|
|
} elsif ($possible =~ /\s/) {
|
|
$possible =~ s/\s*$Type\s*//g;
|
|
for my $modifier (split(' ', $possible)) {
|
|
if ($modifier !~ $notPermitted) {
|
|
warn "MODIFIER: $modifier ($possible) ($line)\n" if ($dbg_possible);
|
|
push(@modifierListFile, $modifier);
|
|
}
|
|
}
|
|
|
|
} else {
|
|
warn "POSSIBLE: $possible ($line)\n" if ($dbg_possible);
|
|
push(@typeListFile, $possible);
|
|
}
|
|
build_types();
|
|
} else {
|
|
warn "NOTPOSS: $possible ($line)\n" if ($dbg_possible > 1);
|
|
}
|
|
}
|
|
|
|
my $prefix = '';
|
|
|
|
sub show_type {
|
|
my ($type) = @_;
|
|
|
|
$type =~ tr/[a-z]/[A-Z]/;
|
|
|
|
return defined $use_type{$type} if (scalar keys %use_type > 0);
|
|
|
|
return !defined $ignore_type{$type};
|
|
}
|
|
|
|
sub report {
|
|
my ($level, $type, $msg) = @_;
|
|
|
|
if (!show_type($type) ||
|
|
(defined $tst_only && $msg !~ /\Q$tst_only\E/)) {
|
|
return 0;
|
|
}
|
|
my $output = '';
|
|
if ($color) {
|
|
if ($level eq 'ERROR') {
|
|
$output .= RED;
|
|
} elsif ($level eq 'WARNING') {
|
|
$output .= YELLOW;
|
|
} else {
|
|
$output .= GREEN;
|
|
}
|
|
}
|
|
$output .= $prefix . $level . ':';
|
|
if ($show_types) {
|
|
$output .= BLUE if ($color);
|
|
$output .= "$type:";
|
|
}
|
|
$output .= RESET if ($color);
|
|
$output .= ' ' . $msg . "\n";
|
|
|
|
if ($showfile) {
|
|
my @lines = split("\n", $output, -1);
|
|
splice(@lines, 1, 1);
|
|
$output = join("\n", @lines);
|
|
}
|
|
$output = (split('\n', $output))[0] . "\n" if ($terse);
|
|
|
|
push(our @report, $output);
|
|
|
|
return 1;
|
|
}
|
|
|
|
sub report_dump {
|
|
our @report;
|
|
}
|
|
|
|
sub fixup_current_range {
|
|
my ($lineRef, $offset, $length) = @_;
|
|
|
|
if ($$lineRef =~ /^\@\@ -\d+,\d+ \+(\d+),(\d+) \@\@/) {
|
|
my $o = $1;
|
|
my $l = $2;
|
|
my $no = $o + $offset;
|
|
my $nl = $l + $length;
|
|
$$lineRef =~ s/\+$o,$l \@\@/\+$no,$nl \@\@/;
|
|
}
|
|
}
|
|
|
|
sub fix_inserted_deleted_lines {
|
|
my ($linesRef, $insertedRef, $deletedRef) = @_;
|
|
|
|
my $range_last_linenr = 0;
|
|
my $delta_offset = 0;
|
|
|
|
my $old_linenr = 0;
|
|
my $new_linenr = 0;
|
|
|
|
my $next_insert = 0;
|
|
my $next_delete = 0;
|
|
|
|
my @lines = ();
|
|
|
|
my $inserted = @{$insertedRef}[$next_insert++];
|
|
my $deleted = @{$deletedRef}[$next_delete++];
|
|
|
|
foreach my $old_line (@{$linesRef}) {
|
|
my $save_line = 1;
|
|
my $line = $old_line; #don't modify the array
|
|
if ($line =~ /^(?:\+\+\+|\-\-\-)\s+\S+/) { #new filename
|
|
$delta_offset = 0;
|
|
} elsif ($line =~ /^\@\@ -\d+,\d+ \+\d+,\d+ \@\@/) { #new hunk
|
|
$range_last_linenr = $new_linenr;
|
|
fixup_current_range(\$line, $delta_offset, 0);
|
|
}
|
|
|
|
while (defined($deleted) && ${$deleted}{'LINENR'} == $old_linenr) {
|
|
$deleted = @{$deletedRef}[$next_delete++];
|
|
$save_line = 0;
|
|
fixup_current_range(\$lines[$range_last_linenr], $delta_offset--, -1);
|
|
}
|
|
|
|
while (defined($inserted) && ${$inserted}{'LINENR'} == $old_linenr) {
|
|
push(@lines, ${$inserted}{'LINE'});
|
|
$inserted = @{$insertedRef}[$next_insert++];
|
|
$new_linenr++;
|
|
fixup_current_range(\$lines[$range_last_linenr], $delta_offset++, 1);
|
|
}
|
|
|
|
if ($save_line) {
|
|
push(@lines, $line);
|
|
$new_linenr++;
|
|
}
|
|
|
|
$old_linenr++;
|
|
}
|
|
|
|
return @lines;
|
|
}
|
|
|
|
sub fix_insert_line {
|
|
my ($linenr, $line) = @_;
|
|
|
|
my $inserted = {
|
|
LINENR => $linenr,
|
|
LINE => $line,
|
|
};
|
|
push(@fixed_inserted, $inserted);
|
|
}
|
|
|
|
sub fix_delete_line {
|
|
my ($linenr, $line) = @_;
|
|
|
|
my $deleted = {
|
|
LINENR => $linenr,
|
|
LINE => $line,
|
|
};
|
|
|
|
push(@fixed_deleted, $deleted);
|
|
}
|
|
|
|
sub ERROR {
|
|
my ($type, $msg) = @_;
|
|
|
|
if (report("ERROR", $type, $msg)) {
|
|
our $clean = 0;
|
|
our $cnt_error++;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
sub WARN {
|
|
my ($type, $msg) = @_;
|
|
|
|
if (report("WARNING", $type, $msg)) {
|
|
our $clean = 0;
|
|
our $cnt_warn++;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
sub CHK {
|
|
my ($type, $msg) = @_;
|
|
|
|
if ($check && report("CHECK", $type, $msg)) {
|
|
our $clean = 0;
|
|
our $cnt_chk++;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
sub check_absolute_file {
|
|
my ($absolute, $herecurr) = @_;
|
|
my $file = $absolute;
|
|
|
|
##print "absolute<$absolute>\n";
|
|
|
|
# See if any suffix of this path is a path within the tree.
|
|
while ($file =~ s@^[^/]*/@@) {
|
|
if (-f "$root/$file") {
|
|
##print "file<$file>\n";
|
|
last;
|
|
}
|
|
}
|
|
if (! -f _) {
|
|
return 0;
|
|
}
|
|
|
|
# It is, so see if the prefix is acceptable.
|
|
my $prefix = $absolute;
|
|
substr($prefix, -length($file)) = '';
|
|
|
|
##print "prefix<$prefix>\n";
|
|
if ($prefix ne ".../") {
|
|
WARN("USE_RELATIVE_PATH",
|
|
"use relative pathname instead of absolute in changelog text\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
sub trim {
|
|
my ($string) = @_;
|
|
|
|
$string =~ s/^\s+|\s+$//g;
|
|
|
|
return $string;
|
|
}
|
|
|
|
sub ltrim {
|
|
my ($string) = @_;
|
|
|
|
$string =~ s/^\s+//;
|
|
|
|
return $string;
|
|
}
|
|
|
|
sub rtrim {
|
|
my ($string) = @_;
|
|
|
|
$string =~ s/\s+$//;
|
|
|
|
return $string;
|
|
}
|
|
|
|
sub string_find_replace {
|
|
my ($string, $find, $replace) = @_;
|
|
|
|
$string =~ s/$find/$replace/g;
|
|
|
|
return $string;
|
|
}
|
|
|
|
sub tabify {
|
|
my ($leading) = @_;
|
|
|
|
my $source_indent = 8;
|
|
my $max_spaces_before_tab = $source_indent - 1;
|
|
my $spaces_to_tab = " " x $source_indent;
|
|
|
|
#convert leading spaces to tabs
|
|
1 while $leading =~ s@^([\t]*)$spaces_to_tab@$1\t@g;
|
|
#Remove spaces before a tab
|
|
1 while $leading =~ s@^([\t]*)( {1,$max_spaces_before_tab})\t@$1\t@g;
|
|
|
|
return "$leading";
|
|
}
|
|
|
|
sub pos_last_openparen {
|
|
my ($line) = @_;
|
|
|
|
my $pos = 0;
|
|
|
|
my $opens = $line =~ tr/\(/\(/;
|
|
my $closes = $line =~ tr/\)/\)/;
|
|
|
|
my $last_openparen = 0;
|
|
|
|
if (($opens == 0) || ($closes >= $opens)) {
|
|
return -1;
|
|
}
|
|
|
|
my $len = length($line);
|
|
|
|
for ($pos = 0; $pos < $len; $pos++) {
|
|
my $string = substr($line, $pos);
|
|
if ($string =~ /^($FuncArg|$balanced_parens)/) {
|
|
$pos += length($1) - 1;
|
|
} elsif (substr($line, $pos, 1) eq '(') {
|
|
$last_openparen = $pos;
|
|
} elsif (index($string, '(') == -1) {
|
|
last;
|
|
}
|
|
}
|
|
|
|
return length(expand_tabs(substr($line, 0, $last_openparen))) + 1;
|
|
}
|
|
|
|
sub process {
|
|
my $filename = shift;
|
|
|
|
my $linenr=0;
|
|
my $prevline="";
|
|
my $prevrawline="";
|
|
my $stashline="";
|
|
my $stashrawline="";
|
|
my $subjectline="";
|
|
my $sublinenr="";
|
|
|
|
my $length;
|
|
my $indent;
|
|
my $previndent=0;
|
|
my $stashindent=0;
|
|
|
|
our $clean = 1;
|
|
my $signoff = 0;
|
|
my $is_patch = 0;
|
|
my $in_header_lines = $file ? 0 : 1;
|
|
my $in_commit_log = 0; #Scanning lines before patch
|
|
my $has_commit_log = 0; #Encountered lines before patch
|
|
my $commit_log_possible_stack_dump = 0;
|
|
my $commit_log_long_line = 0;
|
|
my $commit_log_has_diff = 0;
|
|
my $reported_maintainer_file = 0;
|
|
my $non_utf8_charset = 0;
|
|
|
|
my $last_blank_line = 0;
|
|
my $last_coalesced_string_linenr = -1;
|
|
|
|
our @report = ();
|
|
our $cnt_lines = 0;
|
|
our $cnt_error = 0;
|
|
our $cnt_warn = 0;
|
|
our $cnt_chk = 0;
|
|
|
|
# Trace the real file/line as we go.
|
|
my $realfile = '';
|
|
my $realline = 0;
|
|
my $realcnt = 0;
|
|
my $here = '';
|
|
my $context_function; #undef'd unless there's a known function
|
|
my $in_comment = 0;
|
|
my $comment_edge = 0;
|
|
my $first_line = 0;
|
|
my $p1_prefix = '';
|
|
|
|
my $prev_values = 'E';
|
|
|
|
# suppression flags
|
|
my %suppress_ifbraces;
|
|
my %suppress_whiletrailers;
|
|
my %suppress_export;
|
|
my $suppress_statement = 0;
|
|
|
|
my %signatures = ();
|
|
|
|
# Pre-scan the patch sanitizing the lines.
|
|
# Pre-scan the patch looking for any __setup documentation.
|
|
#
|
|
my @setup_docs = ();
|
|
my $setup_docs = 0;
|
|
|
|
my $camelcase_file_seeded = 0;
|
|
my $shorttext = BEFORE_SHORTTEXT;
|
|
my $shorttext_exspc = 0;
|
|
my $commit_text_present = 0;
|
|
|
|
my $checklicenseline = 1;
|
|
|
|
sanitise_line_reset();
|
|
my $line;
|
|
foreach my $rawline (@rawlines) {
|
|
$linenr++;
|
|
$line = $rawline;
|
|
|
|
push(@fixed, $rawline) if ($fix);
|
|
|
|
if ($rawline=~/^\+\+\+\s+(\S+)/) {
|
|
$setup_docs = 0;
|
|
if ($1 =~ m@Documentation/admin-guide/kernel-parameters.rst$@) {
|
|
$setup_docs = 1;
|
|
}
|
|
#next;
|
|
}
|
|
if ($rawline =~ /^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
|
|
$realline=$1-1;
|
|
if (defined $2) {
|
|
$realcnt=$3+1;
|
|
} else {
|
|
$realcnt=1+1;
|
|
}
|
|
$in_comment = 0;
|
|
|
|
# Guestimate if this is a continuing comment. Run
|
|
# the context looking for a comment "edge". If this
|
|
# edge is a close comment then we must be in a comment
|
|
# at context start.
|
|
my $edge;
|
|
my $cnt = $realcnt;
|
|
for (my $ln = $linenr + 1; $cnt > 0; $ln++) {
|
|
next if (defined $rawlines[$ln - 1] &&
|
|
$rawlines[$ln - 1] =~ /^-/);
|
|
$cnt--;
|
|
#print "RAW<$rawlines[$ln - 1]>\n";
|
|
last if (!defined $rawlines[$ln - 1]);
|
|
if ($rawlines[$ln - 1] =~ m@(/\*|\*/)@ &&
|
|
$rawlines[$ln - 1] !~ m@"[^"]*(?:/\*|\*/)[^"]*"@) {
|
|
($edge) = $1;
|
|
last;
|
|
}
|
|
}
|
|
if (defined $edge && $edge eq '*/') {
|
|
$in_comment = 1;
|
|
}
|
|
|
|
# Guestimate if this is a continuing comment. If this
|
|
# is the start of a diff block and this line starts
|
|
# ' *' then it is very likely a comment.
|
|
if (!defined $edge &&
|
|
$rawlines[$linenr] =~ m@^.\s*(?:\*\*+| \*)(?:\s|$)@)
|
|
{
|
|
$in_comment = 1;
|
|
}
|
|
|
|
##print "COMMENT:$in_comment edge<$edge> $rawline\n";
|
|
sanitise_line_reset($in_comment);
|
|
|
|
} elsif ($realcnt && $rawline =~ /^(?:\+| |$)/) {
|
|
# Standardise the strings and chars within the input to
|
|
# simplify matching -- only bother with positive lines.
|
|
$line = sanitise_line($rawline);
|
|
}
|
|
push(@lines, $line);
|
|
|
|
if ($realcnt > 1) {
|
|
$realcnt-- if ($line =~ /^(?:\+| |$)/);
|
|
} else {
|
|
$realcnt = 0;
|
|
}
|
|
|
|
#print "==>$rawline\n";
|
|
#print "-->$line\n";
|
|
|
|
if ($setup_docs && $line =~ /^\+/) {
|
|
push(@setup_docs, $line);
|
|
}
|
|
}
|
|
|
|
$prefix = '';
|
|
|
|
$realcnt = 0;
|
|
$linenr = 0;
|
|
$fixlinenr = -1;
|
|
foreach my $line (@lines) {
|
|
$linenr++;
|
|
$fixlinenr++;
|
|
my $sline = $line; #copy of $line
|
|
$sline =~ s/$;/ /g; #with comments as spaces
|
|
|
|
my $rawline = $rawlines[$linenr - 1];
|
|
|
|
# check if it's a mode change, rename or start of a patch
|
|
if (!$in_commit_log &&
|
|
($line =~ /^ mode change [0-7]+ => [0-7]+ \S+\s*$/ ||
|
|
($line =~ /^rename (?:from|to) \S+\s*$/ ||
|
|
$line =~ /^diff --git a\/[\w\/\.\_\-]+ b\/\S+\s*$/))) {
|
|
$is_patch = 1;
|
|
}
|
|
|
|
#extract the line range in the file after the patch is applied
|
|
if (!$in_commit_log &&
|
|
$line =~ /^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@(.*)/) {
|
|
my $context = $4;
|
|
$is_patch = 1;
|
|
$first_line = $linenr + 1;
|
|
$realline=$1-1;
|
|
if (defined $2) {
|
|
$realcnt=$3+1;
|
|
} else {
|
|
$realcnt=1+1;
|
|
}
|
|
annotate_reset();
|
|
$prev_values = 'E';
|
|
|
|
%suppress_ifbraces = ();
|
|
%suppress_whiletrailers = ();
|
|
%suppress_export = ();
|
|
$suppress_statement = 0;
|
|
if ($context =~ /\b(\w+)\s*\(/) {
|
|
$context_function = $1;
|
|
} else {
|
|
undef $context_function;
|
|
}
|
|
next;
|
|
|
|
# track the line number as we move through the hunk, note that
|
|
# new versions of GNU diff omit the leading space on completely
|
|
# blank context lines so we need to count that too.
|
|
} elsif ($line =~ /^( |\+|$)/) {
|
|
$realline++;
|
|
$realcnt-- if ($realcnt != 0);
|
|
|
|
# Measure the line length and indent.
|
|
($length, $indent) = line_stats($rawline);
|
|
|
|
# Track the previous line.
|
|
($prevline, $stashline) = ($stashline, $line);
|
|
($previndent, $stashindent) = ($stashindent, $indent);
|
|
($prevrawline, $stashrawline) = ($stashrawline, $rawline);
|
|
|
|
#warn "line<$line>\n";
|
|
|
|
} elsif ($realcnt == 1) {
|
|
$realcnt--;
|
|
}
|
|
|
|
my $hunk_line = ($realcnt != 0);
|
|
|
|
$here = "#$linenr: " if (!$file);
|
|
$here = "#$realline: " if ($file);
|
|
|
|
my $found_file = 0;
|
|
# extract the filename as it passes
|
|
if ($line =~ /^diff --git.*?(\S+)$/) {
|
|
$realfile = $1;
|
|
$realfile =~ s@^([^/]*)/@@ if (!$file);
|
|
$in_commit_log = 0;
|
|
$found_file = 1;
|
|
} elsif ($line =~ /^\+\+\+\s+(\S+)/) {
|
|
$realfile = $1;
|
|
$realfile =~ s@^([^/]*)/@@ if (!$file);
|
|
$in_commit_log = 0;
|
|
|
|
$p1_prefix = $1;
|
|
if (!$file && $tree && $p1_prefix ne '' &&
|
|
-e "$root/$p1_prefix") {
|
|
WARN("PATCH_PREFIX",
|
|
"patch prefix '$p1_prefix' exists, appears to be a -p0 patch\n");
|
|
}
|
|
|
|
if ($realfile =~ m@^include/asm/@) {
|
|
ERROR("MODIFIED_INCLUDE_ASM",
|
|
"do not modify files in include/asm, change architecture specific files in include/asm-<architecture>\n" . "$here$rawline\n");
|
|
}
|
|
$found_file = 1;
|
|
}
|
|
|
|
#make up the handle for any error we report on this line
|
|
if ($showfile) {
|
|
$prefix = "$realfile:$realline: "
|
|
} elsif ($emacs) {
|
|
if ($file) {
|
|
$prefix = "$filename:$realline: ";
|
|
} else {
|
|
$prefix = "$filename:$linenr: ";
|
|
}
|
|
}
|
|
|
|
if ($found_file) {
|
|
if (is_maintained_obsolete($realfile)) {
|
|
WARN("OBSOLETE",
|
|
"$realfile is marked as 'obsolete' in the MAINTAINERS hierarchy. No unnecessary modifications please.\n");
|
|
}
|
|
if ($realfile =~ m@^(?:drivers/net/|net/|drivers/staging/)@) {
|
|
$check = 1;
|
|
} else {
|
|
$check = $check_orig;
|
|
}
|
|
$checklicenseline = 1;
|
|
next;
|
|
}
|
|
$here .= "FILE: $realfile:$realline:" if ($realcnt != 0);
|
|
|
|
my $hereline = "$here\n$rawline\n";
|
|
my $herecurr = "$here\n$rawline\n";
|
|
my $hereprev = "$here\n$prevrawline\n$rawline\n";
|
|
|
|
if ($shorttext != AFTER_SHORTTEXT) {
|
|
if ($shorttext == IN_SHORTTEXT_BLANKLINE && $line=~/\S/) {
|
|
# the subject line was just processed,
|
|
# a blank line must be next
|
|
WARN("NONBLANK_AFTER_SUMMARY",
|
|
"non-blank line after summary line\n" . $herecurr);
|
|
$shorttext = IN_SHORTTEXT;
|
|
# this non-blank line may or may not be commit text -
|
|
# a warning has been generated so assume it is commit
|
|
# text and move on
|
|
$commit_text_present = 1;
|
|
# fall through and treat this line as IN_SHORTTEXT
|
|
}
|
|
if ($shorttext == IN_SHORTTEXT) {
|
|
if ($line=~/^---/ || $line=~/^diff.*/) {
|
|
if ($commit_text_present == 0) {
|
|
WARN("NO_COMMIT_TEXT",
|
|
"please add commit text explaining " .
|
|
"*why* the change is needed\n" .
|
|
$herecurr);
|
|
}
|
|
$shorttext = AFTER_SHORTTEXT;
|
|
} elsif ($line=~/^\s*change-id:/i ||
|
|
$line=~/^\s*signed-off-by:/i ||
|
|
$line=~/^\s*crs-fixed:/i ||
|
|
$line=~/^\s*acked-by:/i) {
|
|
# this is a tag, there must be commit
|
|
# text by now
|
|
if ($commit_text_present == 0) {
|
|
WARN("NO_COMMIT_TEXT",
|
|
"please add commit text explaining " .
|
|
"*why* the change is needed\n" .
|
|
$herecurr);
|
|
# prevent duplicate warnings
|
|
$commit_text_present = 1;
|
|
}
|
|
} elsif ($line=~/\S/) {
|
|
$commit_text_present = 1;
|
|
}
|
|
} elsif ($shorttext == IN_SHORTTEXT_BLANKLINE) {
|
|
# case of non-blank line in this state handled above
|
|
$shorttext = IN_SHORTTEXT;
|
|
} elsif ($shorttext == CHECK_NEXT_SHORTTEXT) {
|
|
# The Subject line doesn't have to be the last header in the patch.
|
|
# Avoid moving to the IN_SHORTTEXT state until clear of all headers.
|
|
# Per RFC5322, continuation lines must be folded, so any left-justified
|
|
# text which looks like a header is definitely a header.
|
|
if ($line!~/^[\x21-\x39\x3b-\x7e]+:/) {
|
|
$shorttext = IN_SHORTTEXT;
|
|
# Check for Subject line followed by a blank line.
|
|
if (length($line) != 0) {
|
|
WARN("NONBLANK_AFTER_SUMMARY",
|
|
"non-blank line after " .
|
|
"summary line\n" .
|
|
$sublinenr . $here .
|
|
"\n" . $subjectline .
|
|
"\n" . $line . "\n");
|
|
# this non-blank line may or may not
|
|
# be commit text - a warning has been
|
|
# generated so assume it is commit
|
|
# text and move on
|
|
$commit_text_present = 1;
|
|
}
|
|
}
|
|
# The next two cases are BEFORE_SHORTTEXT.
|
|
} elsif ($line=~/^Subject: \[[^\]]*\] (.*)/) {
|
|
# This is the subject line. Go to
|
|
# CHECK_NEXT_SHORTTEXT to wait for the commit
|
|
# text to show up.
|
|
$shorttext = CHECK_NEXT_SHORTTEXT;
|
|
$subjectline = $line;
|
|
$sublinenr = "#$linenr & ";
|
|
# Check for Subject line less than line limit
|
|
if (length($1) > SHORTTEXT_LIMIT && !($1 =~ m/Revert\ \"/)) {
|
|
WARN("LONG_SUMMARY_LINE",
|
|
"summary line over " .
|
|
SHORTTEXT_LIMIT .
|
|
" characters\n" . $herecurr);
|
|
}
|
|
} elsif ($line=~/^ (.*)/) {
|
|
# Indented format, this must be the summary
|
|
# line (i.e. git show). There will be no more
|
|
# headers so we are now in the shorttext.
|
|
$shorttext = IN_SHORTTEXT_BLANKLINE;
|
|
$shorttext_exspc = 4;
|
|
if (length($1) > SHORTTEXT_LIMIT && !($1 =~ m/Revert\ \"/)) {
|
|
WARN("LONG_SUMMARY_LINE",
|
|
"summary line over " .
|
|
SHORTTEXT_LIMIT .
|
|
" characters\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
|
|
$cnt_lines++ if ($realcnt != 0);
|
|
|
|
# Check if the commit log has what seems like a diff which can confuse patch
|
|
if ($in_commit_log && !$commit_log_has_diff &&
|
|
(($line =~ m@^\s+diff\b.*a/[\w/]+@ &&
|
|
$line =~ m@^\s+diff\b.*a/([\w/]+)\s+b/$1\b@) ||
|
|
$line =~ m@^\s*(?:\-\-\-\s+a/|\+\+\+\s+b/)@ ||
|
|
$line =~ m/^\s*\@\@ \-\d+,\d+ \+\d+,\d+ \@\@/)) {
|
|
ERROR("DIFF_IN_COMMIT_MSG",
|
|
"Avoid using diff content in the commit message - patch(1) might not work\n" . $herecurr);
|
|
$commit_log_has_diff = 1;
|
|
}
|
|
|
|
# Check for incorrect file permissions
|
|
if ($line =~ /^new (file )?mode.*[7531]\d{0,2}$/) {
|
|
my $permhere = $here . "FILE: $realfile\n";
|
|
if ($realfile !~ m@scripts/@ &&
|
|
$realfile !~ /\.(py|pl|awk|sh)$/) {
|
|
ERROR("EXECUTE_PERMISSIONS",
|
|
"do not set execute permissions for source files\n" . $permhere);
|
|
}
|
|
}
|
|
|
|
# Check the patch for a signoff:
|
|
if ($line =~ /^\s*signed-off-by:/i) {
|
|
$signoff++;
|
|
$in_commit_log = 0;
|
|
}
|
|
|
|
# Check if MAINTAINERS is being updated. If so, there's probably no need to
|
|
# emit the "does MAINTAINERS need updating?" message on file add/move/delete
|
|
if ($line =~ /^\s*MAINTAINERS\s*\|/) {
|
|
$reported_maintainer_file = 1;
|
|
}
|
|
|
|
# Check signature styles
|
|
if (!$in_header_lines &&
|
|
$line =~ /^(\s*)([a-z0-9_-]+by:|$signature_tags)(\s*)(.*)/i) {
|
|
my $space_before = $1;
|
|
my $sign_off = $2;
|
|
my $space_after = $3;
|
|
my $email = $4;
|
|
my $ucfirst_sign_off = ucfirst(lc($sign_off));
|
|
|
|
if ($sign_off !~ /$signature_tags/) {
|
|
WARN("BAD_SIGN_OFF",
|
|
"Non-standard signature: $sign_off\n" . $herecurr);
|
|
}
|
|
if (defined $space_before && $space_before ne "") {
|
|
if (WARN("BAD_SIGN_OFF",
|
|
"Do not use whitespace before $ucfirst_sign_off\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =
|
|
"$ucfirst_sign_off $email";
|
|
}
|
|
}
|
|
if ($sign_off =~ /-by:$/i && $sign_off ne $ucfirst_sign_off) {
|
|
if (WARN("BAD_SIGN_OFF",
|
|
"'$ucfirst_sign_off' is the preferred signature form\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =
|
|
"$ucfirst_sign_off $email";
|
|
}
|
|
|
|
}
|
|
if (!defined $space_after || $space_after ne " ") {
|
|
if (WARN("BAD_SIGN_OFF",
|
|
"Use a single space after $ucfirst_sign_off\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =
|
|
"$ucfirst_sign_off $email";
|
|
}
|
|
}
|
|
|
|
my ($email_name, $email_address, $comment) = parse_email($email);
|
|
my $suggested_email = format_email(($email_name, $email_address));
|
|
if ($suggested_email eq "") {
|
|
ERROR("BAD_SIGN_OFF",
|
|
"Unrecognized email address: '$email'\n" . $herecurr);
|
|
} else {
|
|
my $dequoted = $suggested_email;
|
|
$dequoted =~ s/^"//;
|
|
$dequoted =~ s/" </ </;
|
|
# Don't force email to have quotes
|
|
# Allow just an angle bracketed address
|
|
if ("$dequoted$comment" ne $email &&
|
|
"<$email_address>$comment" ne $email &&
|
|
"$suggested_email$comment" ne $email) {
|
|
WARN("BAD_SIGN_OFF",
|
|
"email address '$email' might be better as '$suggested_email$comment'\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# Check for duplicate signatures
|
|
my $sig_nospace = $line;
|
|
$sig_nospace =~ s/\s//g;
|
|
$sig_nospace = lc($sig_nospace);
|
|
if (defined $signatures{$sig_nospace}) {
|
|
WARN("BAD_SIGN_OFF",
|
|
"Duplicate signature\n" . $herecurr);
|
|
} else {
|
|
$signatures{$sig_nospace} = 1;
|
|
}
|
|
}
|
|
|
|
# Check email subject for common tools that don't need to be mentioned
|
|
if ($in_header_lines &&
|
|
$line =~ /^Subject:.*\b(?:checkpatch|sparse|smatch)\b[^:]/i) {
|
|
WARN("EMAIL_SUBJECT",
|
|
"A patch subject line should describe the change not the tool that found it\n" . $herecurr);
|
|
}
|
|
|
|
# Check for unwanted Gerrit info
|
|
if ($in_commit_log && $line =~ /^\s*change-id:/i) {
|
|
ERROR("GERRIT_CHANGE_ID",
|
|
"Remove Gerrit Change-Id's before submitting upstream.\n" . $herecurr);
|
|
}
|
|
|
|
# Check if the commit log is in a possible stack dump
|
|
if ($in_commit_log && !$commit_log_possible_stack_dump &&
|
|
($line =~ /^\s*(?:WARNING:|BUG:)/ ||
|
|
$line =~ /^\s*\[\s*\d+\.\d{6,6}\s*\]/ ||
|
|
# timestamp
|
|
$line =~ /^\s*\[\<[0-9a-fA-F]{8,}\>\]/)) {
|
|
# stack dump address
|
|
$commit_log_possible_stack_dump = 1;
|
|
}
|
|
|
|
# Check for line lengths > 75 in commit log, warn once
|
|
if ($in_commit_log && !$commit_log_long_line &&
|
|
length($line) > 75 &&
|
|
!($line =~ /^\s*[a-zA-Z0-9_\/\.]+\s+\|\s+\d+/ ||
|
|
# file delta changes
|
|
$line =~ /^\s*(?:[\w\.\-]+\/)++[\w\.\-]+:/ ||
|
|
# filename then :
|
|
$line =~ /^\s*(?:Fixes:|Link:)/i ||
|
|
# A Fixes: or Link: line
|
|
$commit_log_possible_stack_dump)) {
|
|
WARN("COMMIT_LOG_LONG_LINE",
|
|
"Possible unwrapped commit description (prefer a maximum 75 chars per line)\n" . $herecurr);
|
|
$commit_log_long_line = 1;
|
|
}
|
|
|
|
# Reset possible stack dump if a blank line is found
|
|
if ($in_commit_log && $commit_log_possible_stack_dump &&
|
|
$line =~ /^\s*$/) {
|
|
$commit_log_possible_stack_dump = 0;
|
|
}
|
|
|
|
# Check for git id commit length and improperly formed commit descriptions
|
|
if ($in_commit_log && !$commit_log_possible_stack_dump &&
|
|
$line !~ /^\s*(?:Link|Patchwork|http|https|BugLink):/i &&
|
|
$line !~ /^This reverts commit [0-9a-f]{7,40}/ &&
|
|
($line =~ /\bcommit\s+[0-9a-f]{5,}\b/i ||
|
|
($line =~ /(?:\s|^)[0-9a-f]{12,40}(?:[\s"'\(\[]|$)/i &&
|
|
$line !~ /[\<\[][0-9a-f]{12,40}[\>\]]/i &&
|
|
$line !~ /\bfixes:\s*[0-9a-f]{12,40}/i))) {
|
|
my $init_char = "c";
|
|
my $orig_commit = "";
|
|
my $short = 1;
|
|
my $long = 0;
|
|
my $case = 1;
|
|
my $space = 1;
|
|
my $hasdesc = 0;
|
|
my $hasparens = 0;
|
|
my $id = '0123456789ab';
|
|
my $orig_desc = "commit description";
|
|
my $description = "";
|
|
|
|
if ($line =~ /\b(c)ommit\s+([0-9a-f]{5,})\b/i) {
|
|
$init_char = $1;
|
|
$orig_commit = lc($2);
|
|
} elsif ($line =~ /\b([0-9a-f]{12,40})\b/i) {
|
|
$orig_commit = lc($1);
|
|
}
|
|
|
|
$short = 0 if ($line =~ /\bcommit\s+[0-9a-f]{12,40}/i);
|
|
$long = 1 if ($line =~ /\bcommit\s+[0-9a-f]{41,}/i);
|
|
$space = 0 if ($line =~ /\bcommit [0-9a-f]/i);
|
|
$case = 0 if ($line =~ /\b[Cc]ommit\s+[0-9a-f]{5,40}[^A-F]/);
|
|
if ($line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("([^"]+)"\)/i) {
|
|
$orig_desc = $1;
|
|
$hasparens = 1;
|
|
} elsif ($line =~ /\bcommit\s+[0-9a-f]{5,}\s*$/i &&
|
|
defined $rawlines[$linenr] &&
|
|
$rawlines[$linenr] =~ /^\s*\("([^"]+)"\)/) {
|
|
$orig_desc = $1;
|
|
$hasparens = 1;
|
|
} elsif ($line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("[^"]+$/i &&
|
|
defined $rawlines[$linenr] &&
|
|
$rawlines[$linenr] =~ /^\s*[^"]+"\)/) {
|
|
$line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("([^"]+)$/i;
|
|
$orig_desc = $1;
|
|
$rawlines[$linenr] =~ /^\s*([^"]+)"\)/;
|
|
$orig_desc .= " " . $1;
|
|
$hasparens = 1;
|
|
}
|
|
|
|
($id, $description) = git_commit_info($orig_commit,
|
|
$id, $orig_desc);
|
|
|
|
if (defined($id) &&
|
|
($short || $long || $space || $case || ($orig_desc ne $description) || !$hasparens)) {
|
|
ERROR("GIT_COMMIT_ID",
|
|
"Please use git commit description style 'commit <12+ chars of sha1> (\"<title line>\")' - ie: '${init_char}ommit $id (\"$description\")'\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# Check for added, moved or deleted files
|
|
if (!$reported_maintainer_file && !$in_commit_log &&
|
|
($line =~ /^(?:new|deleted) file mode\s*\d+\s*$/ ||
|
|
$line =~ /^rename (?:from|to) [\w\/\.\-]+\s*$/ ||
|
|
($line =~ /\{\s*([\w\/\.\-]*)\s*\=\>\s*([\w\/\.\-]*)\s*\}/ &&
|
|
(defined($1) || defined($2))))) {
|
|
$is_patch = 1;
|
|
$reported_maintainer_file = 1;
|
|
WARN("FILE_PATH_CHANGES",
|
|
"added, moved or deleted file(s), does MAINTAINERS need updating?\n" . $herecurr);
|
|
}
|
|
|
|
# Check for wrappage within a valid hunk of the file
|
|
if ($realcnt != 0 && $line !~ m{^(?:\+|-| |\\ No newline|$)}) {
|
|
ERROR("CORRUPTED_PATCH",
|
|
"patch seems to be corrupt (line wrapped?)\n" .
|
|
$herecurr) if (!$emitted_corrupt++);
|
|
}
|
|
|
|
# UTF-8 regex found at http://www.w3.org/International/questions/qa-forms-utf-8.en.php
|
|
if (($realfile =~ /^$/ || $line =~ /^\+/) &&
|
|
$rawline !~ m/^$UTF8*$/) {
|
|
my ($utf8_prefix) = ($rawline =~ /^($UTF8*)/);
|
|
|
|
my $blank = copy_spacing($rawline);
|
|
my $ptr = substr($blank, 0, length($utf8_prefix)) . "^";
|
|
my $hereptr = "$hereline$ptr\n";
|
|
|
|
CHK("INVALID_UTF8",
|
|
"Invalid UTF-8, patch and commit message should be encoded in UTF-8\n" . $hereptr);
|
|
}
|
|
|
|
# Check if it's the start of a commit log
|
|
# (not a header line and we haven't seen the patch filename)
|
|
if ($in_header_lines && $realfile =~ /^$/ &&
|
|
!($rawline =~ /^\s+(?:\S|$)/ ||
|
|
$rawline =~ /^(?:commit\b|from\b|[\w-]+:)/i)) {
|
|
$in_header_lines = 0;
|
|
$in_commit_log = 1;
|
|
$has_commit_log = 1;
|
|
}
|
|
|
|
# Check if there is UTF-8 in a commit log when a mail header has explicitly
|
|
# declined it, i.e defined some charset where it is missing.
|
|
if ($in_header_lines &&
|
|
$rawline =~ /^Content-Type:.+charset="(.+)".*$/ &&
|
|
$1 !~ /utf-8/i) {
|
|
$non_utf8_charset = 1;
|
|
}
|
|
|
|
if ($in_commit_log && $non_utf8_charset && $realfile =~ /^$/ &&
|
|
$rawline =~ /$NON_ASCII_UTF8/) {
|
|
WARN("UTF8_BEFORE_PATCH",
|
|
"8-bit UTF-8 used in possible commit log\n" . $herecurr);
|
|
}
|
|
|
|
# Check for absolute kernel paths in commit message
|
|
if ($tree && $in_commit_log) {
|
|
while ($line =~ m{(?:^|\s)(/\S*)}g) {
|
|
my $file = $1;
|
|
|
|
if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
|
|
check_absolute_file($1, $herecurr)) {
|
|
#
|
|
} else {
|
|
check_absolute_file($file, $herecurr);
|
|
}
|
|
}
|
|
}
|
|
|
|
# Check for various typo / spelling mistakes
|
|
if (defined($misspellings) &&
|
|
($in_commit_log || $line =~ /^(?:\+|Subject:)/i)) {
|
|
while ($rawline =~ /(?:^|[^a-z@])($misspellings)(?:\b|$|[^a-z@])/gi) {
|
|
my $typo = $1;
|
|
my $typo_fix = $spelling_fix{lc($typo)};
|
|
$typo_fix = ucfirst($typo_fix) if ($typo =~ /^[A-Z]/);
|
|
$typo_fix = uc($typo_fix) if ($typo =~ /^[A-Z]+$/);
|
|
my $msg_level = \&WARN;
|
|
$msg_level = \&CHK if ($file);
|
|
if (&{$msg_level}("TYPO_SPELLING",
|
|
"'$typo' may be misspelled - perhaps '$typo_fix'?\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(^|[^A-Za-z@])($typo)($|[^A-Za-z@])/$1$typo_fix$3/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# ignore non-hunk lines and lines being removed
|
|
next if (!$hunk_line || $line =~ /^-/);
|
|
|
|
#trailing whitespace
|
|
if ($line =~ /^\+.*\015/) {
|
|
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
|
if (ERROR("DOS_LINE_ENDINGS",
|
|
"DOS line endings\n" . $herevet) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/[\s\015]+$//;
|
|
}
|
|
} elsif ($rawline =~ /^\+.*\S\s+$/ || $rawline =~ /^\+\s+$/) {
|
|
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
|
if (ERROR("TRAILING_WHITESPACE",
|
|
"trailing whitespace\n" . $herevet) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\s+$//;
|
|
}
|
|
|
|
$rpt_cleaners = 1;
|
|
}
|
|
|
|
# Check for FSF mailing addresses.
|
|
if ($rawline =~ /\bwrite to the Free/i ||
|
|
$rawline =~ /\b675\s+Mass\s+Ave/i ||
|
|
$rawline =~ /\b59\s+Temple\s+Pl/i ||
|
|
$rawline =~ /\b51\s+Franklin\s+St/i) {
|
|
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
|
my $msg_level = \&ERROR;
|
|
$msg_level = \&CHK if ($file);
|
|
&{$msg_level}("FSF_MAILING_ADDRESS",
|
|
"Do not include the paragraph about writing to the Free Software Foundation's mailing address from the sample GPL notice. The FSF has changed addresses in the past, and may do so again. Linux already includes a copy of the GPL.\n" . $herevet)
|
|
}
|
|
|
|
# check for Kconfig help text having a real description
|
|
# Only applies when adding the entry originally, after that we do not have
|
|
# sufficient context to determine whether it is indeed long enough.
|
|
if ($realfile =~ /Kconfig/ &&
|
|
# 'choice' is usually the last thing on the line (though
|
|
# Kconfig supports named choices), so use a word boundary
|
|
# (\b) rather than a whitespace character (\s)
|
|
$line =~ /^\+\s*(?:config|menuconfig|choice)\b/) {
|
|
my $length = 0;
|
|
my $cnt = $realcnt;
|
|
my $ln = $linenr + 1;
|
|
my $f;
|
|
my $is_start = 0;
|
|
my $is_end = 0;
|
|
for (; $cnt > 0 && defined $lines[$ln - 1]; $ln++) {
|
|
$f = $lines[$ln - 1];
|
|
$cnt-- if ($lines[$ln - 1] !~ /^-/);
|
|
$is_end = $lines[$ln - 1] =~ /^\+/;
|
|
|
|
next if ($f =~ /^-/);
|
|
last if (!$file && $f =~ /^\@\@/);
|
|
|
|
if ($lines[$ln - 1] =~ /^\+\s*(?:bool|tristate|prompt)\s*["']/) {
|
|
$is_start = 1;
|
|
} elsif ($lines[$ln - 1] =~ /^\+\s*(?:help|---help---)\s*$/) {
|
|
if ($lines[$ln - 1] =~ "---help---") {
|
|
WARN("CONFIG_DESCRIPTION",
|
|
"prefer 'help' over '---help---' for new help texts\n" . $herecurr);
|
|
}
|
|
$length = -1;
|
|
}
|
|
|
|
$f =~ s/^.//;
|
|
$f =~ s/#.*//;
|
|
$f =~ s/^\s+//;
|
|
next if ($f =~ /^$/);
|
|
|
|
# This only checks context lines in the patch
|
|
# and so hopefully shouldn't trigger false
|
|
# positives, even though some of these are
|
|
# common words in help texts
|
|
if ($f =~ /^\s*(?:config|menuconfig|choice|endchoice|
|
|
if|endif|menu|endmenu|source)\b/x) {
|
|
$is_end = 1;
|
|
last;
|
|
}
|
|
$length++;
|
|
}
|
|
if ($is_start && $is_end && $length < $min_conf_desc_length) {
|
|
WARN("CONFIG_DESCRIPTION",
|
|
"please write a paragraph that describes the config symbol fully\n" . $herecurr);
|
|
}
|
|
#print "is_start<$is_start> is_end<$is_end> length<$length>\n";
|
|
}
|
|
|
|
# check for MAINTAINERS entries that don't have the right form
|
|
if ($realfile =~ /^MAINTAINERS$/ &&
|
|
$rawline =~ /^\+[A-Z]:/ &&
|
|
$rawline !~ /^\+[A-Z]:\t\S/) {
|
|
if (WARN("MAINTAINERS_STYLE",
|
|
"MAINTAINERS entries use one tab after TYPE:\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/^(\+[A-Z]):\s*/$1:\t/;
|
|
}
|
|
}
|
|
|
|
# discourage the use of boolean for type definition attributes of Kconfig options
|
|
if ($realfile =~ /Kconfig/ &&
|
|
$line =~ /^\+\s*\bboolean\b/) {
|
|
WARN("CONFIG_TYPE_BOOLEAN",
|
|
"Use of boolean is deprecated, please use bool instead.\n" . $herecurr);
|
|
}
|
|
|
|
if (($realfile =~ /Makefile.*/ || $realfile =~ /Kbuild.*/) &&
|
|
($line =~ /\+(EXTRA_[A-Z]+FLAGS).*/)) {
|
|
my $flag = $1;
|
|
my $replacement = {
|
|
'EXTRA_AFLAGS' => 'asflags-y',
|
|
'EXTRA_CFLAGS' => 'ccflags-y',
|
|
'EXTRA_CPPFLAGS' => 'cppflags-y',
|
|
'EXTRA_LDFLAGS' => 'ldflags-y',
|
|
};
|
|
|
|
WARN("DEPRECATED_VARIABLE",
|
|
"Use of $flag is deprecated, please use \`$replacement->{$flag} instead.\n" . $herecurr) if ($replacement->{$flag});
|
|
}
|
|
|
|
# check for DT compatible documentation
|
|
if (defined $root &&
|
|
(($realfile =~ /\.dtsi?$/ && $line =~ /^\+\s*compatible\s*=\s*\"/) ||
|
|
($realfile =~ /\.[ch]$/ && $line =~ /^\+.*\.compatible\s*=\s*\"/))) {
|
|
|
|
my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
|
|
|
|
my $dt_path = $root . "/Documentation/devicetree/bindings/";
|
|
my $vp_file = $dt_path . "vendor-prefixes.txt";
|
|
|
|
foreach my $compat (@compats) {
|
|
my $compat2 = $compat;
|
|
$compat2 =~ s/\,[a-zA-Z0-9]*\-/\,<\.\*>\-/;
|
|
my $compat3 = $compat;
|
|
$compat3 =~ s/\,([a-z]*)[0-9]*\-/\,$1<\.\*>\-/;
|
|
`grep -Erq "$compat|$compat2|$compat3" $dt_path`;
|
|
if ( $? >> 8 ) {
|
|
WARN("UNDOCUMENTED_DT_STRING",
|
|
"DT compatible string \"$compat\" appears un-documented -- check $dt_path\n" . $herecurr);
|
|
}
|
|
|
|
next if $compat !~ /^([a-zA-Z0-9\-]+)\,/;
|
|
my $vendor = $1;
|
|
`grep -Eq "^$vendor\\b" $vp_file`;
|
|
if ( $? >> 8 ) {
|
|
WARN("UNDOCUMENTED_DT_STRING",
|
|
"DT compatible string vendor \"$vendor\" appears un-documented -- check $vp_file\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for using SPDX license tag at beginning of files
|
|
if ($realline == $checklicenseline) {
|
|
if ($rawline =~ /^[ \+]\s*\#\!\s*\//) {
|
|
$checklicenseline = 2;
|
|
} elsif ($rawline =~ /^\+/) {
|
|
my $comment = "";
|
|
if ($realfile =~ /\.(h|s|S)$/) {
|
|
$comment = '/*';
|
|
} elsif ($realfile =~ /\.(c|dts|dtsi)$/) {
|
|
$comment = '//';
|
|
} elsif (($checklicenseline == 2) || $realfile =~ /\.(sh|pl|py|awk|tc)$/) {
|
|
$comment = '#';
|
|
} elsif ($realfile =~ /\.rst$/) {
|
|
$comment = '..';
|
|
}
|
|
|
|
if ($comment !~ /^$/ &&
|
|
$rawline !~ /^\+\Q$comment\E SPDX-License-Identifier: /) {
|
|
WARN("SPDX_LICENSE_TAG",
|
|
"Missing or malformed SPDX-License-Identifier tag in line $checklicenseline\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
|
|
# check we are in a valid source file if not then ignore this hunk
|
|
next if ($realfile !~ /\.(h|c|s|S|sh|dtsi|dts)$/);
|
|
|
|
# line length limit (with some exclusions)
|
|
#
|
|
# There are a few types of lines that may extend beyond $max_line_length:
|
|
# logging functions like pr_info that end in a string
|
|
# lines with a single string
|
|
# #defines that are a single string
|
|
# lines with an RFC3986 like URL
|
|
#
|
|
# There are 3 different line length message types:
|
|
# LONG_LINE_COMMENT a comment starts before but extends beyond $max_line_length
|
|
# LONG_LINE_STRING a string starts before but extends beyond $max_line_length
|
|
# LONG_LINE all other lines longer than $max_line_length
|
|
#
|
|
# if LONG_LINE is ignored, the other 2 types are also ignored
|
|
#
|
|
|
|
if ($line =~ /^\+/ && $length > $max_line_length) {
|
|
my $msg_type = "LONG_LINE";
|
|
|
|
# Check the allowed long line types first
|
|
|
|
# logging functions that end in a string that starts
|
|
# before $max_line_length
|
|
if ($line =~ /^\+\s*$logFunctions\s*\(\s*(?:(?:KERN_\S+\s*|[^"]*))?($String\s*(?:|,|\)\s*;)\s*)$/ &&
|
|
length(expand_tabs(substr($line, 1, length($line) - length($1) - 1))) <= $max_line_length) {
|
|
$msg_type = "";
|
|
|
|
# lines with only strings (w/ possible termination)
|
|
# #defines with only strings
|
|
} elsif ($line =~ /^\+\s*$String\s*(?:\s*|,|\)\s*;)\s*$/ ||
|
|
$line =~ /^\+\s*#\s*define\s+\w+\s+$String$/) {
|
|
$msg_type = "";
|
|
|
|
# More special cases
|
|
} elsif ($line =~ /^\+.*\bEFI_GUID\s*\(/ ||
|
|
$line =~ /^\+\s*(?:\w+)?\s*DEFINE_PER_CPU/) {
|
|
$msg_type = "";
|
|
|
|
# URL ($rawline is used in case the URL is in a comment)
|
|
} elsif ($rawline =~ /^\+.*\b[a-z][\w\.\+\-]*:\/\/\S+/i) {
|
|
$msg_type = "";
|
|
|
|
# Long copyright statements are another special case
|
|
} elsif ($rawline =~ /^\+.\*.*copyright.*\(c\).*$/i) {
|
|
$msg_type = "";
|
|
|
|
# Otherwise set the alternate message types
|
|
|
|
# a comment starts before $max_line_length
|
|
} elsif ($line =~ /($;[\s$;]*)$/ &&
|
|
length(expand_tabs(substr($line, 1, length($line) - length($1) - 1))) <= $max_line_length) {
|
|
$msg_type = "LONG_LINE_COMMENT"
|
|
|
|
# a quoted string starts before $max_line_length
|
|
} elsif ($sline =~ /\s*($String(?:\s*(?:\\|,\s*|\)\s*;\s*))?)$/ &&
|
|
length(expand_tabs(substr($line, 1, length($line) - length($1) - 1))) <= $max_line_length) {
|
|
$msg_type = "LONG_LINE_STRING"
|
|
}
|
|
|
|
if ($msg_type ne "" &&
|
|
(show_type("LONG_LINE") || show_type($msg_type))) {
|
|
WARN($msg_type,
|
|
"line over $max_line_length characters\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for adding lines without a newline.
|
|
if ($line =~ /^\+/ && defined $lines[$linenr] && $lines[$linenr] =~ /^\\ No newline at end of file/) {
|
|
WARN("MISSING_EOF_NEWLINE",
|
|
"adding a line without newline at end of file\n" . $herecurr);
|
|
}
|
|
|
|
# check we are in a valid source file C or perl if not then ignore this hunk
|
|
next if ($realfile !~ /\.(h|c|pl|dtsi|dts)$/);
|
|
|
|
# at the beginning of a line any tabs must come first and anything
|
|
# more than 8 must use tabs.
|
|
if ($rawline =~ /^\+\s* \t\s*\S/ ||
|
|
$rawline =~ /^\+\s* \s*/) {
|
|
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
|
$rpt_cleaners = 1;
|
|
if (ERROR("CODE_INDENT",
|
|
"code indent should use tabs where possible\n" . $herevet) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/^\+([ \t]+)/"\+" . tabify($1)/e;
|
|
}
|
|
}
|
|
|
|
# check for space before tabs.
|
|
if ($rawline =~ /^\+/ && $rawline =~ / \t/) {
|
|
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
|
if (WARN("SPACE_BEFORE_TAB",
|
|
"please, no space before tabs\n" . $herevet) &&
|
|
$fix) {
|
|
while ($fixed[$fixlinenr] =~
|
|
s/(^\+.*) {8,8}\t/$1\t\t/) {}
|
|
while ($fixed[$fixlinenr] =~
|
|
s/(^\+.*) +\t/$1\t/) {}
|
|
}
|
|
}
|
|
|
|
# check for assignments on the start of a line
|
|
if ($sline =~ /^\+\s+($Assignment)[^=]/) {
|
|
CHK("ASSIGNMENT_CONTINUATIONS",
|
|
"Assignment operator '$1' should be on the previous line\n" . $hereprev);
|
|
}
|
|
|
|
# check for && or || at the start of a line
|
|
if ($rawline =~ /^\+\s*(&&|\|\|)/) {
|
|
CHK("LOGICAL_CONTINUATIONS",
|
|
"Logical continuations should be on the previous line\n" . $hereprev);
|
|
}
|
|
|
|
# check indentation starts on a tab stop
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$sline =~ /^\+\t+( +)(?:$c90_Keywords\b|\{\s*$|\}\s*(?:else\b|while\b|\s*$)|$Declare\s*$Ident\s*[;=])/) {
|
|
my $indent = length($1);
|
|
if ($indent % 8) {
|
|
if (WARN("TABSTOP",
|
|
"Statements should start on a tabstop\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s@(^\+\t+) +@$1 . "\t" x ($indent/8)@e;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check multi-line statement indentation matches previous line
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$prevline =~ /^\+([ \t]*)((?:$c90_Keywords(?:\s+if)\s*)|(?:$Declare\s*)?(?:$Ident|\(\s*\*\s*$Ident\s*\))\s*|(?:\*\s*)*$Lval\s*=\s*$Ident\s*)\(.*(\&\&|\|\||,)\s*$/) {
|
|
$prevline =~ /^\+(\t*)(.*)$/;
|
|
my $oldindent = $1;
|
|
my $rest = $2;
|
|
|
|
my $pos = pos_last_openparen($rest);
|
|
if ($pos >= 0) {
|
|
$line =~ /^(\+| )([ \t]*)/;
|
|
my $newindent = $2;
|
|
|
|
my $goodtabindent = $oldindent .
|
|
"\t" x ($pos / 8) .
|
|
" " x ($pos % 8);
|
|
my $goodspaceindent = $oldindent . " " x $pos;
|
|
|
|
if ($newindent ne $goodtabindent &&
|
|
$newindent ne $goodspaceindent) {
|
|
|
|
if (CHK("PARENTHESIS_ALIGNMENT",
|
|
"Alignment should match open parenthesis\n" . $hereprev) &&
|
|
$fix && $line =~ /^\+/) {
|
|
$fixed[$fixlinenr] =~
|
|
s/^\+[ \t]*/\+$goodtabindent/;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for space after cast like "(int) foo" or "(struct foo) bar"
|
|
# avoid checking a few false positives:
|
|
# "sizeof(<type>)" or "__alignof__(<type>)"
|
|
# function pointer declarations like "(*foo)(int) = bar;"
|
|
# structure definitions like "(struct foo) { 0 };"
|
|
# multiline macros that define functions
|
|
# known attributes or the __attribute__ keyword
|
|
if ($line =~ /^\+(.*)\(\s*$Type\s*\)([ \t]++)((?![={]|\\$|$Attribute|__attribute__))/ &&
|
|
(!defined($1) || $1 !~ /\b(?:sizeof|__alignof__)\s*$/)) {
|
|
if (CHK("SPACING",
|
|
"No space is necessary after a cast\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/(\(\s*$Type\s*\))[ \t]+/$1/;
|
|
}
|
|
}
|
|
|
|
# Block comment styles
|
|
# Networking with an initial /*
|
|
if ($realfile =~ m@^(drivers/net/|net/)@ &&
|
|
$prevrawline =~ /^\+[ \t]*\/\*[ \t]*$/ &&
|
|
$rawline =~ /^\+[ \t]*\*/ &&
|
|
$realline > 2) {
|
|
WARN("NETWORKING_BLOCK_COMMENT_STYLE",
|
|
"networking block comments don't use an empty /* line, use /* Comment...\n" . $hereprev);
|
|
}
|
|
|
|
# Block comments use * on subsequent lines
|
|
if ($prevline =~ /$;[ \t]*$/ && #ends in comment
|
|
$prevrawline =~ /^\+.*?\/\*/ && #starting /*
|
|
$prevrawline !~ /\*\/[ \t]*$/ && #no trailing */
|
|
$rawline =~ /^\+/ && #line is new
|
|
$rawline !~ /^\+[ \t]*\*/) { #no leading *
|
|
WARN("BLOCK_COMMENT_STYLE",
|
|
"Block comments use * on subsequent lines\n" . $hereprev);
|
|
}
|
|
|
|
# Block comments use */ on trailing lines
|
|
if ($rawline !~ m@^\+[ \t]*\*/[ \t]*$@ && #trailing */
|
|
$rawline !~ m@^\+.*/\*.*\*/[ \t]*$@ && #inline /*...*/
|
|
$rawline !~ m@^\+.*\*{2,}/[ \t]*$@ && #trailing **/
|
|
$rawline =~ m@^\+[ \t]*.+\*\/[ \t]*$@) { #non blank */
|
|
WARN("BLOCK_COMMENT_STYLE",
|
|
"Block comments use a trailing */ on a separate line\n" . $herecurr);
|
|
}
|
|
|
|
# Block comment * alignment
|
|
if ($prevline =~ /$;[ \t]*$/ && #ends in comment
|
|
$line =~ /^\+[ \t]*$;/ && #leading comment
|
|
$rawline =~ /^\+[ \t]*\*/ && #leading *
|
|
(($prevrawline =~ /^\+.*?\/\*/ && #leading /*
|
|
$prevrawline !~ /\*\/[ \t]*$/) || #no trailing */
|
|
$prevrawline =~ /^\+[ \t]*\*/)) { #leading *
|
|
my $oldindent;
|
|
$prevrawline =~ m@^\+([ \t]*/?)\*@;
|
|
if (defined($1)) {
|
|
$oldindent = expand_tabs($1);
|
|
} else {
|
|
$prevrawline =~ m@^\+(.*/?)\*@;
|
|
$oldindent = expand_tabs($1);
|
|
}
|
|
$rawline =~ m@^\+([ \t]*)\*@;
|
|
my $newindent = $1;
|
|
$newindent = expand_tabs($newindent);
|
|
if (length($oldindent) ne length($newindent)) {
|
|
WARN("BLOCK_COMMENT_STYLE",
|
|
"Block comments should align the * on each line\n" . $hereprev);
|
|
}
|
|
}
|
|
|
|
# check for missing blank lines after struct/union declarations
|
|
# with exceptions for various attributes and macros
|
|
if ($prevline =~ /^[\+ ]};?\s*$/ &&
|
|
$line =~ /^\+/ &&
|
|
!($line =~ /^\+\s*$/ ||
|
|
$line =~ /^\+\s*EXPORT_SYMBOL/ ||
|
|
$line =~ /^\+\s*MODULE_/i ||
|
|
$line =~ /^\+\s*\#\s*(?:end|elif|else)/ ||
|
|
$line =~ /^\+[a-z_]*init/ ||
|
|
$line =~ /^\+\s*(?:static\s+)?[A-Z_]*ATTR/ ||
|
|
$line =~ /^\+\s*DECLARE/ ||
|
|
$line =~ /^\+\s*builtin_[\w_]*driver/ ||
|
|
$line =~ /^\+\s*__setup/)) {
|
|
if (CHK("LINE_SPACING",
|
|
"Please use a blank line after function/struct/union/enum declarations\n" . $hereprev) &&
|
|
$fix) {
|
|
fix_insert_line($fixlinenr, "\+");
|
|
}
|
|
}
|
|
|
|
# check for multiple consecutive blank lines
|
|
if ($prevline =~ /^[\+ ]\s*$/ &&
|
|
$line =~ /^\+\s*$/ &&
|
|
$last_blank_line != ($linenr - 1)) {
|
|
if (CHK("LINE_SPACING",
|
|
"Please don't use multiple blank lines\n" . $hereprev) &&
|
|
$fix) {
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
}
|
|
|
|
$last_blank_line = $linenr;
|
|
}
|
|
|
|
# check for missing blank lines after declarations
|
|
if ($sline =~ /^\+\s+\S/ && #Not at char 1
|
|
# actual declarations
|
|
($prevline =~ /^\+\s+$Declare\s*$Ident\s*[=,;:\[]/ ||
|
|
# function pointer declarations
|
|
$prevline =~ /^\+\s+$Declare\s*\(\s*\*\s*$Ident\s*\)\s*[=,;:\[\(]/ ||
|
|
# foo bar; where foo is some local typedef or #define
|
|
$prevline =~ /^\+\s+$Ident(?:\s+|\s*\*\s*)$Ident\s*[=,;\[]/ ||
|
|
# known declaration macros
|
|
$prevline =~ /^\+\s+$declaration_macros/) &&
|
|
# for "else if" which can look like "$Ident $Ident"
|
|
!($prevline =~ /^\+\s+$c90_Keywords\b/ ||
|
|
# other possible extensions of declaration lines
|
|
$prevline =~ /(?:$Compare|$Assignment|$Operators)\s*$/ ||
|
|
# not starting a section or a macro "\" extended line
|
|
$prevline =~ /(?:\{\s*|\\)$/) &&
|
|
# looks like a declaration
|
|
!($sline =~ /^\+\s+$Declare\s*$Ident\s*[=,;:\[]/ ||
|
|
# function pointer declarations
|
|
$sline =~ /^\+\s+$Declare\s*\(\s*\*\s*$Ident\s*\)\s*[=,;:\[\(]/ ||
|
|
# foo bar; where foo is some local typedef or #define
|
|
$sline =~ /^\+\s+$Ident(?:\s+|\s*\*\s*)$Ident\s*[=,;\[]/ ||
|
|
# known declaration macros
|
|
$sline =~ /^\+\s+$declaration_macros/ ||
|
|
# start of struct or union or enum
|
|
$sline =~ /^\+\s+(?:union|struct|enum|typedef)\b/ ||
|
|
# start or end of block or continuation of declaration
|
|
$sline =~ /^\+\s+(?:$|[\{\}\.\#\"\?\:\(\[])/ ||
|
|
# bitfield continuation
|
|
$sline =~ /^\+\s+$Ident\s*:\s*\d+\s*[,;]/ ||
|
|
# other possible extensions of declaration lines
|
|
$sline =~ /^\+\s+\(?\s*(?:$Compare|$Assignment|$Operators)/) &&
|
|
# indentation of previous and current line are the same
|
|
(($prevline =~ /\+(\s+)\S/) && $sline =~ /^\+$1\S/)) {
|
|
if (WARN("LINE_SPACING",
|
|
"Missing a blank line after declarations\n" . $hereprev) &&
|
|
$fix) {
|
|
fix_insert_line($fixlinenr, "\+");
|
|
}
|
|
}
|
|
|
|
# check for spaces at the beginning of a line.
|
|
# Exceptions:
|
|
# 1) within comments
|
|
# 2) indented preprocessor commands
|
|
# 3) hanging labels
|
|
if ($rawline =~ /^\+ / && $line !~ /^\+ *(?:$;|#|$Ident:)/) {
|
|
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
|
if (WARN("LEADING_SPACE",
|
|
"please, no spaces at the start of a line\n" . $herevet) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/^\+([ \t]+)/"\+" . tabify($1)/e;
|
|
}
|
|
}
|
|
|
|
# check we are in a valid C source file if not then ignore this hunk
|
|
next if ($realfile !~ /\.(h|c)$/);
|
|
|
|
# check for unusual line ending [ or (
|
|
if ($line =~ /^\+.*([\[\(])\s*$/) {
|
|
CHK("OPEN_ENDED_LINE",
|
|
"Lines should not end with a '$1'\n" . $herecurr);
|
|
}
|
|
|
|
# check if this appears to be the start function declaration, save the name
|
|
if ($sline =~ /^\+\{\s*$/ &&
|
|
$prevline =~ /^\+(?:(?:(?:$Storage|$Inline)\s*)*\s*$Type\s*)?($Ident)\(/) {
|
|
$context_function = $1;
|
|
}
|
|
|
|
# check if this appears to be the end of function declaration
|
|
if ($sline =~ /^\+\}\s*$/) {
|
|
undef $context_function;
|
|
}
|
|
|
|
# check indentation of any line with a bare else
|
|
# (but not if it is a multiple line "if (foo) return bar; else return baz;")
|
|
# if the previous line is a break or return and is indented 1 tab more...
|
|
if ($sline =~ /^\+([\t]+)(?:}[ \t]*)?else(?:[ \t]*{)?\s*$/) {
|
|
my $tabs = length($1) + 1;
|
|
if ($prevline =~ /^\+\t{$tabs,$tabs}break\b/ ||
|
|
($prevline =~ /^\+\t{$tabs,$tabs}return\b/ &&
|
|
defined $lines[$linenr] &&
|
|
$lines[$linenr] !~ /^[ \+]\t{$tabs,$tabs}return/)) {
|
|
WARN("UNNECESSARY_ELSE",
|
|
"else is not generally useful after a break or return\n" . $hereprev);
|
|
}
|
|
}
|
|
|
|
# check indentation of a line with a break;
|
|
# if the previous line is a goto or return and is indented the same # of tabs
|
|
if ($sline =~ /^\+([\t]+)break\s*;\s*$/) {
|
|
my $tabs = $1;
|
|
if ($prevline =~ /^\+$tabs(?:goto|return)\b/) {
|
|
WARN("UNNECESSARY_BREAK",
|
|
"break is not useful after a goto or return\n" . $hereprev);
|
|
}
|
|
}
|
|
|
|
# check for RCS/CVS revision markers
|
|
if ($rawline =~ /^\+.*\$(Revision|Log|Id)(?:\$|)/) {
|
|
WARN("CVS_KEYWORD",
|
|
"CVS style keyword markers, these will _not_ be updated\n". $herecurr);
|
|
}
|
|
|
|
# check for old HOTPLUG __dev<foo> section markings
|
|
if ($line =~ /\b(__dev(init|exit)(data|const|))\b/) {
|
|
WARN("HOTPLUG_SECTION",
|
|
"Using $1 is unnecessary\n" . $herecurr);
|
|
}
|
|
|
|
# Check for potential 'bare' types
|
|
my ($stat, $cond, $line_nr_next, $remain_next, $off_next,
|
|
$realline_next);
|
|
#print "LINE<$line>\n";
|
|
if ($linenr > $suppress_statement &&
|
|
$realcnt && $sline =~ /.\s*\S/) {
|
|
($stat, $cond, $line_nr_next, $remain_next, $off_next) =
|
|
ctx_statement_block($linenr, $realcnt, 0);
|
|
$stat =~ s/\n./\n /g;
|
|
$cond =~ s/\n./\n /g;
|
|
|
|
#print "linenr<$linenr> <$stat>\n";
|
|
# If this statement has no statement boundaries within
|
|
# it there is no point in retrying a statement scan
|
|
# until we hit end of it.
|
|
my $frag = $stat; $frag =~ s/;+\s*$//;
|
|
if ($frag !~ /(?:{|;)/) {
|
|
#print "skip<$line_nr_next>\n";
|
|
$suppress_statement = $line_nr_next;
|
|
}
|
|
|
|
# Find the real next line.
|
|
$realline_next = $line_nr_next;
|
|
if (defined $realline_next &&
|
|
(!defined $lines[$realline_next - 1] ||
|
|
substr($lines[$realline_next - 1], $off_next) =~ /^\s*$/)) {
|
|
$realline_next++;
|
|
}
|
|
|
|
my $s = $stat;
|
|
$s =~ s/{.*$//s;
|
|
|
|
# Ignore goto labels.
|
|
if ($s =~ /$Ident:\*$/s) {
|
|
|
|
# Ignore functions being called
|
|
} elsif ($s =~ /^.\s*$Ident\s*\(/s) {
|
|
|
|
} elsif ($s =~ /^.\s*else\b/s) {
|
|
|
|
# declarations always start with types
|
|
} elsif ($prev_values eq 'E' && $s =~ /^.\s*(?:$Storage\s+)?(?:$Inline\s+)?(?:const\s+)?((?:\s*$Ident)+?)\b(?:\s+$Sparse)?\s*\**\s*(?:$Ident|\(\*[^\)]*\))(?:\s*$Modifier)?\s*(?:;|=|,|\()/s) {
|
|
my $type = $1;
|
|
$type =~ s/\s+/ /g;
|
|
possible($type, "A:" . $s);
|
|
|
|
# definitions in global scope can only start with types
|
|
} elsif ($s =~ /^.(?:$Storage\s+)?(?:$Inline\s+)?(?:const\s+)?($Ident)\b\s*(?!:)/s) {
|
|
possible($1, "B:" . $s);
|
|
}
|
|
|
|
# any (foo ... *) is a pointer cast, and foo is a type
|
|
while ($s =~ /\(($Ident)(?:\s+$Sparse)*[\s\*]+\s*\)/sg) {
|
|
possible($1, "C:" . $s);
|
|
}
|
|
|
|
# Check for any sort of function declaration.
|
|
# int foo(something bar, other baz);
|
|
# void (*store_gdt)(x86_descr_ptr *);
|
|
if ($prev_values eq 'E' && $s =~ /^(.(?:typedef\s*)?(?:(?:$Storage|$Inline)\s*)*\s*$Type\s*(?:\b$Ident|\(\*\s*$Ident\))\s*)\(/s) {
|
|
my ($name_len) = length($1);
|
|
|
|
my $ctx = $s;
|
|
substr($ctx, 0, $name_len + 1, '');
|
|
$ctx =~ s/\)[^\)]*$//;
|
|
|
|
for my $arg (split(/\s*,\s*/, $ctx)) {
|
|
if ($arg =~ /^(?:const\s+)?($Ident)(?:\s+$Sparse)*\s*\**\s*(:?\b$Ident)?$/s || $arg =~ /^($Ident)$/s) {
|
|
|
|
possible($1, "D:" . $s);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
#
|
|
# Checks which may be anchored in the context.
|
|
#
|
|
|
|
# Check for switch () and associated case and default
|
|
# statements should be at the same indent.
|
|
if ($line=~/\bswitch\s*\(.*\)/) {
|
|
my $err = '';
|
|
my $sep = '';
|
|
my @ctx = ctx_block_outer($linenr, $realcnt);
|
|
shift(@ctx);
|
|
for my $ctx (@ctx) {
|
|
my ($clen, $cindent) = line_stats($ctx);
|
|
if ($ctx =~ /^\+\s*(case\s+|default:)/ &&
|
|
$indent != $cindent) {
|
|
$err .= "$sep$ctx\n";
|
|
$sep = '';
|
|
} else {
|
|
$sep = "[...]\n";
|
|
}
|
|
}
|
|
if ($err ne '') {
|
|
ERROR("SWITCH_CASE_INDENT_LEVEL",
|
|
"switch and case should be at the same indent\n$hereline$err");
|
|
}
|
|
}
|
|
|
|
# if/while/etc brace do not go on next line, unless defining a do while loop,
|
|
# or if that brace on the next line is for something else
|
|
if ($line =~ /(.*)\b((?:if|while|for|switch|(?:[a-z_]+|)for_each[a-z_]+)\s*\(|do\b|else\b)/ && $line !~ /^.\s*\#/) {
|
|
my $pre_ctx = "$1$2";
|
|
|
|
my ($level, @ctx) = ctx_statement_level($linenr, $realcnt, 0);
|
|
|
|
if ($line =~ /^\+\t{6,}/) {
|
|
WARN("DEEP_INDENTATION",
|
|
"Too many leading tabs - consider code refactoring\n" . $herecurr);
|
|
}
|
|
|
|
my $ctx_cnt = $realcnt - $#ctx - 1;
|
|
my $ctx = join("\n", @ctx);
|
|
|
|
my $ctx_ln = $linenr;
|
|
my $ctx_skip = $realcnt;
|
|
|
|
while ($ctx_skip > $ctx_cnt || ($ctx_skip == $ctx_cnt &&
|
|
defined $lines[$ctx_ln - 1] &&
|
|
$lines[$ctx_ln - 1] =~ /^-/)) {
|
|
##print "SKIP<$ctx_skip> CNT<$ctx_cnt>\n";
|
|
$ctx_skip-- if (!defined $lines[$ctx_ln - 1] || $lines[$ctx_ln - 1] !~ /^-/);
|
|
$ctx_ln++;
|
|
}
|
|
|
|
#print "realcnt<$realcnt> ctx_cnt<$ctx_cnt>\n";
|
|
#print "pre<$pre_ctx>\nline<$line>\nctx<$ctx>\nnext<$lines[$ctx_ln - 1]>\n";
|
|
|
|
if ($ctx !~ /{\s*/ && defined($lines[$ctx_ln - 1]) && $lines[$ctx_ln - 1] =~ /^\+\s*{/) {
|
|
ERROR("OPEN_BRACE",
|
|
"that open brace { should be on the previous line\n" .
|
|
"$here\n$ctx\n$rawlines[$ctx_ln - 1]\n");
|
|
}
|
|
if ($level == 0 && $pre_ctx !~ /}\s*while\s*\($/ &&
|
|
$ctx =~ /\)\s*\;\s*$/ &&
|
|
defined $lines[$ctx_ln - 1])
|
|
{
|
|
my ($nlength, $nindent) = line_stats($lines[$ctx_ln - 1]);
|
|
if ($nindent > $indent) {
|
|
WARN("TRAILING_SEMICOLON",
|
|
"trailing semicolon indicates no statements, indent implies otherwise\n" .
|
|
"$here\n$ctx\n$rawlines[$ctx_ln - 1]\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
# Check relative indent for conditionals and blocks.
|
|
if ($line =~ /\b(?:(?:if|while|for|(?:[a-z_]+|)for_each[a-z_]+)\s*\(|(?:do|else)\b)/ && $line !~ /^.\s*#/ && $line !~ /\}\s*while\s*/) {
|
|
($stat, $cond, $line_nr_next, $remain_next, $off_next) =
|
|
ctx_statement_block($linenr, $realcnt, 0)
|
|
if (!defined $stat);
|
|
my ($s, $c) = ($stat, $cond);
|
|
|
|
substr($s, 0, length($c), '');
|
|
|
|
# remove inline comments
|
|
$s =~ s/$;/ /g;
|
|
$c =~ s/$;/ /g;
|
|
|
|
# Find out how long the conditional actually is.
|
|
my @newlines = ($c =~ /\n/gs);
|
|
my $cond_lines = 1 + $#newlines;
|
|
|
|
# Make sure we remove the line prefixes as we have
|
|
# none on the first line, and are going to readd them
|
|
# where necessary.
|
|
$s =~ s/\n./\n/gs;
|
|
while ($s =~ /\n\s+\\\n/) {
|
|
$cond_lines += $s =~ s/\n\s+\\\n/\n/g;
|
|
}
|
|
|
|
# We want to check the first line inside the block
|
|
# starting at the end of the conditional, so remove:
|
|
# 1) any blank line termination
|
|
# 2) any opening brace { on end of the line
|
|
# 3) any do (...) {
|
|
my $continuation = 0;
|
|
my $check = 0;
|
|
$s =~ s/^.*\bdo\b//;
|
|
$s =~ s/^\s*{//;
|
|
if ($s =~ s/^\s*\\//) {
|
|
$continuation = 1;
|
|
}
|
|
if ($s =~ s/^\s*?\n//) {
|
|
$check = 1;
|
|
$cond_lines++;
|
|
}
|
|
|
|
# Also ignore a loop construct at the end of a
|
|
# preprocessor statement.
|
|
if (($prevline =~ /^.\s*#\s*define\s/ ||
|
|
$prevline =~ /\\\s*$/) && $continuation == 0) {
|
|
$check = 0;
|
|
}
|
|
|
|
my $cond_ptr = -1;
|
|
$continuation = 0;
|
|
while ($cond_ptr != $cond_lines) {
|
|
$cond_ptr = $cond_lines;
|
|
|
|
# If we see an #else/#elif then the code
|
|
# is not linear.
|
|
if ($s =~ /^\s*\#\s*(?:else|elif)/) {
|
|
$check = 0;
|
|
}
|
|
|
|
# Ignore:
|
|
# 1) blank lines, they should be at 0,
|
|
# 2) preprocessor lines, and
|
|
# 3) labels.
|
|
if ($continuation ||
|
|
$s =~ /^\s*?\n/ ||
|
|
$s =~ /^\s*#\s*?/ ||
|
|
$s =~ /^\s*$Ident\s*:/) {
|
|
$continuation = ($s =~ /^.*?\\\n/) ? 1 : 0;
|
|
if ($s =~ s/^.*?\n//) {
|
|
$cond_lines++;
|
|
}
|
|
}
|
|
}
|
|
|
|
my (undef, $sindent) = line_stats("+" . $s);
|
|
my $stat_real = raw_line($linenr, $cond_lines);
|
|
|
|
# Check if either of these lines are modified, else
|
|
# this is not this patch's fault.
|
|
if (!defined($stat_real) ||
|
|
$stat !~ /^\+/ && $stat_real !~ /^\+/) {
|
|
$check = 0;
|
|
}
|
|
if (defined($stat_real) && $cond_lines > 1) {
|
|
$stat_real = "[...]\n$stat_real";
|
|
}
|
|
|
|
#print "line<$line> prevline<$prevline> indent<$indent> sindent<$sindent> check<$check> continuation<$continuation> s<$s> cond_lines<$cond_lines> stat_real<$stat_real> stat<$stat>\n";
|
|
|
|
if ($check && $s ne '' &&
|
|
(($sindent % 8) != 0 ||
|
|
($sindent < $indent) ||
|
|
($sindent == $indent &&
|
|
($s !~ /^\s*(?:\}|\{|else\b)/)) ||
|
|
($sindent > $indent + 8))) {
|
|
WARN("SUSPECT_CODE_INDENT",
|
|
"suspect code indent for conditional statements ($indent, $sindent)\n" . $herecurr . "$stat_real\n");
|
|
}
|
|
}
|
|
|
|
# Track the 'values' across context and added lines.
|
|
my $opline = $line; $opline =~ s/^./ /;
|
|
my ($curr_values, $curr_vars) =
|
|
annotate_values($opline . "\n", $prev_values);
|
|
$curr_values = $prev_values . $curr_values;
|
|
if ($dbg_values) {
|
|
my $outline = $opline; $outline =~ s/\t/ /g;
|
|
print "$linenr > .$outline\n";
|
|
print "$linenr > $curr_values\n";
|
|
print "$linenr > $curr_vars\n";
|
|
}
|
|
$prev_values = substr($curr_values, -1);
|
|
|
|
#ignore lines not being added
|
|
next if ($line =~ /^[^\+]/);
|
|
|
|
# check for dereferences that span multiple lines
|
|
if ($prevline =~ /^\+.*$Lval\s*(?:\.|->)\s*$/ &&
|
|
$line =~ /^\+\s*(?!\#\s*(?!define\s+|if))\s*$Lval/) {
|
|
$prevline =~ /($Lval\s*(?:\.|->))\s*$/;
|
|
my $ref = $1;
|
|
$line =~ /^.\s*($Lval)/;
|
|
$ref .= $1;
|
|
$ref =~ s/\s//g;
|
|
WARN("MULTILINE_DEREFERENCE",
|
|
"Avoid multiple line dereference - prefer '$ref'\n" . $hereprev);
|
|
}
|
|
|
|
# check for declarations of signed or unsigned without int
|
|
while ($line =~ m{\b($Declare)\s*(?!char\b|short\b|int\b|long\b)\s*($Ident)?\s*[=,;\[\)\(]}g) {
|
|
my $type = $1;
|
|
my $var = $2;
|
|
$var = "" if (!defined $var);
|
|
if ($type =~ /^(?:(?:$Storage|$Inline|$Attribute)\s+)*((?:un)?signed)((?:\s*\*)*)\s*$/) {
|
|
my $sign = $1;
|
|
my $pointer = $2;
|
|
|
|
$pointer = "" if (!defined $pointer);
|
|
|
|
if (WARN("UNSPECIFIED_INT",
|
|
"Prefer '" . trim($sign) . " int" . rtrim($pointer) . "' to bare use of '$sign" . rtrim($pointer) . "'\n" . $herecurr) &&
|
|
$fix) {
|
|
my $decl = trim($sign) . " int ";
|
|
my $comp_pointer = $pointer;
|
|
$comp_pointer =~ s/\s//g;
|
|
$decl .= $comp_pointer;
|
|
$decl = rtrim($decl) if ($var eq "");
|
|
$fixed[$fixlinenr] =~ s@\b$sign\s*\Q$pointer\E\s*$var\b@$decl$var@;
|
|
}
|
|
}
|
|
}
|
|
|
|
# TEST: allow direct testing of the type matcher.
|
|
if ($dbg_type) {
|
|
if ($line =~ /^.\s*$Declare\s*$/) {
|
|
ERROR("TEST_TYPE",
|
|
"TEST: is type\n" . $herecurr);
|
|
} elsif ($dbg_type > 1 && $line =~ /^.+($Declare)/) {
|
|
ERROR("TEST_NOT_TYPE",
|
|
"TEST: is not type ($1 is)\n". $herecurr);
|
|
}
|
|
next;
|
|
}
|
|
# TEST: allow direct testing of the attribute matcher.
|
|
if ($dbg_attr) {
|
|
if ($line =~ /^.\s*$Modifier\s*$/) {
|
|
ERROR("TEST_ATTR",
|
|
"TEST: is attr\n" . $herecurr);
|
|
} elsif ($dbg_attr > 1 && $line =~ /^.+($Modifier)/) {
|
|
ERROR("TEST_NOT_ATTR",
|
|
"TEST: is not attr ($1 is)\n". $herecurr);
|
|
}
|
|
next;
|
|
}
|
|
|
|
# check for initialisation to aggregates open brace on the next line
|
|
if ($line =~ /^.\s*{/ &&
|
|
$prevline =~ /(?:^|[^=])=\s*$/) {
|
|
if (ERROR("OPEN_BRACE",
|
|
"that open brace { should be on the previous line\n" . $hereprev) &&
|
|
$fix && $prevline =~ /^\+/ && $line =~ /^\+/) {
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
my $fixedline = $prevrawline;
|
|
$fixedline =~ s/\s*=\s*$/ = {/;
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
$fixedline = $line;
|
|
$fixedline =~ s/^(.\s*)\{\s*/$1/;
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
}
|
|
}
|
|
|
|
#
|
|
# Checks which are anchored on the added line.
|
|
#
|
|
|
|
# check for malformed paths in #include statements (uses RAW line)
|
|
if ($rawline =~ m{^.\s*\#\s*include\s+[<"](.*)[">]}) {
|
|
my $path = $1;
|
|
if ($path =~ m{//}) {
|
|
ERROR("MALFORMED_INCLUDE",
|
|
"malformed #include filename\n" . $herecurr);
|
|
}
|
|
if ($path =~ "^uapi/" && $realfile =~ m@\binclude/uapi/@) {
|
|
ERROR("UAPI_INCLUDE",
|
|
"No #include in ...include/uapi/... should use a uapi/ path prefix\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# no C99 // comments
|
|
if ($line =~ m{//}) {
|
|
if (ERROR("C99_COMMENTS",
|
|
"do not use C99 // comments\n" . $herecurr) &&
|
|
$fix) {
|
|
my $line = $fixed[$fixlinenr];
|
|
if ($line =~ /\/\/(.*)$/) {
|
|
my $comment = trim($1);
|
|
$fixed[$fixlinenr] =~ s@\/\/(.*)$@/\* $comment \*/@;
|
|
}
|
|
}
|
|
}
|
|
# Remove C99 comments.
|
|
$line =~ s@//.*@@;
|
|
$opline =~ s@//.*@@;
|
|
|
|
# EXPORT_SYMBOL should immediately follow the thing it is exporting, consider
|
|
# the whole statement.
|
|
#print "APW <$lines[$realline_next - 1]>\n";
|
|
if (defined $realline_next &&
|
|
exists $lines[$realline_next - 1] &&
|
|
!defined $suppress_export{$realline_next} &&
|
|
($lines[$realline_next - 1] =~ /EXPORT_SYMBOL.*\((.*)\)/ ||
|
|
$lines[$realline_next - 1] =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
|
# Handle definitions which produce identifiers with
|
|
# a prefix:
|
|
# XXX(foo);
|
|
# EXPORT_SYMBOL(something_foo);
|
|
my $name = $1;
|
|
if ($stat =~ /^(?:.\s*}\s*\n)?.([A-Z_]+)\s*\(\s*($Ident)/ &&
|
|
$name =~ /^${Ident}_$2/) {
|
|
#print "FOO C name<$name>\n";
|
|
$suppress_export{$realline_next} = 1;
|
|
|
|
} elsif ($stat !~ /(?:
|
|
\n.}\s*$|
|
|
^.DEFINE_$Ident\(\Q$name\E\)|
|
|
^.DECLARE_$Ident\(\Q$name\E\)|
|
|
^.LIST_HEAD\(\Q$name\E\)|
|
|
^.(?:$Storage\s+)?$Type\s*\(\s*\*\s*\Q$name\E\s*\)\s*\(|
|
|
\b\Q$name\E(?:\s+$Attribute)*\s*(?:;|=|\[|\()
|
|
)/x) {
|
|
#print "FOO A<$lines[$realline_next - 1]> stat<$stat> name<$name>\n";
|
|
$suppress_export{$realline_next} = 2;
|
|
} else {
|
|
$suppress_export{$realline_next} = 1;
|
|
}
|
|
}
|
|
if (!defined $suppress_export{$linenr} &&
|
|
$prevline =~ /^.\s*$/ &&
|
|
($line =~ /EXPORT_SYMBOL.*\((.*)\)/ ||
|
|
$line =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
|
#print "FOO B <$lines[$linenr - 1]>\n";
|
|
$suppress_export{$linenr} = 2;
|
|
}
|
|
if (defined $suppress_export{$linenr} &&
|
|
$suppress_export{$linenr} == 2) {
|
|
WARN("EXPORT_SYMBOL",
|
|
"EXPORT_SYMBOL(foo); should immediately follow its function/variable\n" . $herecurr);
|
|
}
|
|
|
|
# check for global initialisers.
|
|
if ($line =~ /^\+$Type\s*$Ident(?:\s+$Modifier)*\s*=\s*($zero_initializer)\s*;/) {
|
|
if (ERROR("GLOBAL_INITIALISERS",
|
|
"do not initialise globals to $1\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(^.$Type\s*$Ident(?:\s+$Modifier)*)\s*=\s*$zero_initializer\s*;/$1;/;
|
|
}
|
|
}
|
|
# check for static initialisers.
|
|
if ($line =~ /^\+.*\bstatic\s.*=\s*($zero_initializer)\s*;/) {
|
|
if (ERROR("INITIALISED_STATIC",
|
|
"do not initialise statics to $1\n" .
|
|
$herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(\bstatic\s.*?)\s*=\s*$zero_initializer\s*;/$1;/;
|
|
}
|
|
}
|
|
|
|
# check for misordered declarations of char/short/int/long with signed/unsigned
|
|
while ($sline =~ m{(\b$TypeMisordered\b)}g) {
|
|
my $tmp = trim($1);
|
|
WARN("MISORDERED_TYPE",
|
|
"type '$tmp' should be specified in [[un]signed] [short|int|long|long long] order\n" . $herecurr);
|
|
}
|
|
|
|
# check for static const char * arrays.
|
|
if ($line =~ /\bstatic\s+const\s+char\s*\*\s*(\w+)\s*\[\s*\]\s*=\s*/) {
|
|
WARN("STATIC_CONST_CHAR_ARRAY",
|
|
"static const char * array should probably be static const char * const\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# check for static char foo[] = "bar" declarations.
|
|
if ($line =~ /\bstatic\s+char\s+(\w+)\s*\[\s*\]\s*=\s*"/) {
|
|
WARN("STATIC_CONST_CHAR_ARRAY",
|
|
"static char array declaration should probably be static const char\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# check for const <foo> const where <foo> is not a pointer or array type
|
|
if ($sline =~ /\bconst\s+($BasicType)\s+const\b/) {
|
|
my $found = $1;
|
|
if ($sline =~ /\bconst\s+\Q$found\E\s+const\b\s*\*/) {
|
|
WARN("CONST_CONST",
|
|
"'const $found const *' should probably be 'const $found * const'\n" . $herecurr);
|
|
} elsif ($sline !~ /\bconst\s+\Q$found\E\s+const\s+\w+\s*\[/) {
|
|
WARN("CONST_CONST",
|
|
"'const $found const' should probably be 'const $found'\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for non-global char *foo[] = {"bar", ...} declarations.
|
|
if ($line =~ /^.\s+(?:static\s+|const\s+)?char\s+\*\s*\w+\s*\[\s*\]\s*=\s*\{/) {
|
|
WARN("STATIC_CONST_CHAR_ARRAY",
|
|
"char * array declaration might be better as static const\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# check for sizeof(foo)/sizeof(foo[0]) that could be ARRAY_SIZE(foo)
|
|
if ($line =~ m@\bsizeof\s*\(\s*($Lval)\s*\)@) {
|
|
my $array = $1;
|
|
if ($line =~ m@\b(sizeof\s*\(\s*\Q$array\E\s*\)\s*/\s*sizeof\s*\(\s*\Q$array\E\s*\[\s*0\s*\]\s*\))@) {
|
|
my $array_div = $1;
|
|
if (WARN("ARRAY_SIZE",
|
|
"Prefer ARRAY_SIZE($array)\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\Q$array_div\E/ARRAY_SIZE($array)/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for function declarations without arguments like "int foo()"
|
|
if ($line =~ /(\b$Type\s+$Ident)\s*\(\s*\)/) {
|
|
if (ERROR("FUNCTION_WITHOUT_ARGS",
|
|
"Bad function definition - $1() should probably be $1(void)\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(\b($Type)\s+($Ident))\s*\(\s*\)/$2 $3(void)/;
|
|
}
|
|
}
|
|
|
|
# check for new typedefs, only function parameters and sparse annotations
|
|
# make sense.
|
|
if ($line =~ /\btypedef\s/ &&
|
|
$line !~ /\btypedef\s+$Type\s*\(\s*\*?$Ident\s*\)\s*\(/ &&
|
|
$line !~ /\btypedef\s+$Type\s+$Ident\s*\(/ &&
|
|
$line !~ /\b$typeTypedefs\b/ &&
|
|
$line !~ /\b__bitwise\b/) {
|
|
WARN("NEW_TYPEDEFS",
|
|
"do not add new typedefs\n" . $herecurr);
|
|
}
|
|
|
|
# * goes on variable not on type
|
|
# (char*[ const])
|
|
while ($line =~ m{(\($NonptrType(\s*(?:$Modifier\b\s*|\*\s*)+)\))}g) {
|
|
#print "AA<$1>\n";
|
|
my ($ident, $from, $to) = ($1, $2, $2);
|
|
|
|
# Should start with a space.
|
|
$to =~ s/^(\S)/ $1/;
|
|
# Should not end with a space.
|
|
$to =~ s/\s+$//;
|
|
# '*'s should not have spaces between.
|
|
while ($to =~ s/\*\s+\*/\*\*/) {
|
|
}
|
|
|
|
## print "1: from<$from> to<$to> ident<$ident>\n";
|
|
if ($from ne $to) {
|
|
if (ERROR("POINTER_LOCATION",
|
|
"\"(foo$from)\" should be \"(foo$to)\"\n" . $herecurr) &&
|
|
$fix) {
|
|
my $sub_from = $ident;
|
|
my $sub_to = $ident;
|
|
$sub_to =~ s/\Q$from\E/$to/;
|
|
$fixed[$fixlinenr] =~
|
|
s@\Q$sub_from\E@$sub_to@;
|
|
}
|
|
}
|
|
}
|
|
while ($line =~ m{(\b$NonptrType(\s*(?:$Modifier\b\s*|\*\s*)+)($Ident))}g) {
|
|
#print "BB<$1>\n";
|
|
my ($match, $from, $to, $ident) = ($1, $2, $2, $3);
|
|
|
|
# Should start with a space.
|
|
$to =~ s/^(\S)/ $1/;
|
|
# Should not end with a space.
|
|
$to =~ s/\s+$//;
|
|
# '*'s should not have spaces between.
|
|
while ($to =~ s/\*\s+\*/\*\*/) {
|
|
}
|
|
# Modifiers should have spaces.
|
|
$to =~ s/(\b$Modifier$)/$1 /;
|
|
|
|
## print "2: from<$from> to<$to> ident<$ident>\n";
|
|
if ($from ne $to && $ident !~ /^$Modifier$/) {
|
|
if (ERROR("POINTER_LOCATION",
|
|
"\"foo${from}bar\" should be \"foo${to}bar\"\n" . $herecurr) &&
|
|
$fix) {
|
|
|
|
my $sub_from = $match;
|
|
my $sub_to = $match;
|
|
$sub_to =~ s/\Q$from\E/$to/;
|
|
$fixed[$fixlinenr] =~
|
|
s@\Q$sub_from\E@$sub_to@;
|
|
}
|
|
}
|
|
}
|
|
|
|
# avoid BUG() or BUG_ON()
|
|
if ($line =~ /\b(?:BUG|BUG_ON)\b/) {
|
|
my $msg_level = \&WARN;
|
|
$msg_level = \&CHK if ($file);
|
|
&{$msg_level}("AVOID_BUG",
|
|
"Avoid crashing the kernel - try using WARN_ON & recovery code rather than BUG() or BUG_ON()\n" . $herecurr);
|
|
}
|
|
|
|
# avoid LINUX_VERSION_CODE
|
|
if ($line =~ /\bLINUX_VERSION_CODE\b/) {
|
|
WARN("LINUX_VERSION_CODE",
|
|
"LINUX_VERSION_CODE should be avoided, code should be for the version to which it is merged\n" . $herecurr);
|
|
}
|
|
|
|
# check for uses of printk_ratelimit
|
|
if ($line =~ /\bprintk_ratelimit\s*\(/) {
|
|
WARN("PRINTK_RATELIMITED",
|
|
"Prefer printk_ratelimited or pr_<level>_ratelimited to printk_ratelimit\n" . $herecurr);
|
|
}
|
|
|
|
# printk should use KERN_* levels
|
|
if ($line =~ /\bprintk\s*\(\s*(?!KERN_[A-Z]+\b)/) {
|
|
WARN("PRINTK_WITHOUT_KERN_LEVEL",
|
|
"printk() should include KERN_<LEVEL> facility level\n" . $herecurr);
|
|
}
|
|
|
|
if ($line =~ /\bprintk\s*\(\s*KERN_([A-Z]+)/) {
|
|
my $orig = $1;
|
|
my $level = lc($orig);
|
|
$level = "warn" if ($level eq "warning");
|
|
my $level2 = $level;
|
|
$level2 = "dbg" if ($level eq "debug");
|
|
WARN("PREFER_PR_LEVEL",
|
|
"Prefer [subsystem eg: netdev]_$level2([subsystem]dev, ... then dev_$level2(dev, ... then pr_$level(... to printk(KERN_$orig ...\n" . $herecurr);
|
|
}
|
|
|
|
if ($line =~ /\bpr_warning\s*\(/) {
|
|
if (WARN("PREFER_PR_LEVEL",
|
|
"Prefer pr_warn(... to pr_warning(...\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\bpr_warning\b/pr_warn/;
|
|
}
|
|
}
|
|
|
|
if ($line =~ /\bdev_printk\s*\(\s*KERN_([A-Z]+)/) {
|
|
my $orig = $1;
|
|
my $level = lc($orig);
|
|
$level = "warn" if ($level eq "warning");
|
|
$level = "dbg" if ($level eq "debug");
|
|
WARN("PREFER_DEV_LEVEL",
|
|
"Prefer dev_$level(... to dev_printk(KERN_$orig, ...\n" . $herecurr);
|
|
}
|
|
|
|
# ENOSYS means "bad syscall nr" and nothing else. This will have a small
|
|
# number of false positives, but assembly files are not checked, so at
|
|
# least the arch entry code will not trigger this warning.
|
|
if ($line =~ /\bENOSYS\b/) {
|
|
WARN("ENOSYS",
|
|
"ENOSYS means 'invalid syscall nr' and nothing else\n" . $herecurr);
|
|
}
|
|
|
|
# function brace can't be on same line, except for #defines of do while,
|
|
# or if closed on same line
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$sline =~ /$Type\s*$Ident\s*$balanced_parens\s*\{/ &&
|
|
$sline !~ /\#\s*define\b.*do\s*\{/ &&
|
|
$sline !~ /}/) {
|
|
if (ERROR("OPEN_BRACE",
|
|
"open brace '{' following function definitions go on the next line\n" . $herecurr) &&
|
|
$fix) {
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
my $fixed_line = $rawline;
|
|
$fixed_line =~ /(^..*$Type\s*$Ident\(.*\)\s*){(.*)$/;
|
|
my $line1 = $1;
|
|
my $line2 = $2;
|
|
fix_insert_line($fixlinenr, ltrim($line1));
|
|
fix_insert_line($fixlinenr, "\+{");
|
|
if ($line2 !~ /^\s*$/) {
|
|
fix_insert_line($fixlinenr, "\+\t" . trim($line2));
|
|
}
|
|
}
|
|
}
|
|
|
|
# open braces for enum, union and struct go on the same line.
|
|
if ($line =~ /^.\s*{/ &&
|
|
$prevline =~ /^.\s*(?:typedef\s+)?(enum|union|struct)(?:\s+$Ident)?\s*$/) {
|
|
if (ERROR("OPEN_BRACE",
|
|
"open brace '{' following $1 go on the same line\n" . $hereprev) &&
|
|
$fix && $prevline =~ /^\+/ && $line =~ /^\+/) {
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
my $fixedline = rtrim($prevrawline) . " {";
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
$fixedline = $rawline;
|
|
$fixedline =~ s/^(.\s*)\{\s*/$1\t/;
|
|
if ($fixedline !~ /^\+\s*$/) {
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
}
|
|
}
|
|
}
|
|
|
|
# missing space after union, struct or enum definition
|
|
if ($line =~ /^.\s*(?:typedef\s+)?(enum|union|struct)(?:\s+$Ident){1,2}[=\{]/) {
|
|
if (WARN("SPACING",
|
|
"missing space after $1 definition\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/^(.\s*(?:typedef\s+)?(?:enum|union|struct)(?:\s+$Ident){1,2})([=\{])/$1 $2/;
|
|
}
|
|
}
|
|
|
|
# Function pointer declarations
|
|
# check spacing between type, funcptr, and args
|
|
# canonical declaration is "type (*funcptr)(args...)"
|
|
if ($line =~ /^.\s*($Declare)\((\s*)\*(\s*)($Ident)(\s*)\)(\s*)\(/) {
|
|
my $declare = $1;
|
|
my $pre_pointer_space = $2;
|
|
my $post_pointer_space = $3;
|
|
my $funcname = $4;
|
|
my $post_funcname_space = $5;
|
|
my $pre_args_space = $6;
|
|
|
|
# the $Declare variable will capture all spaces after the type
|
|
# so check it for a missing trailing missing space but pointer return types
|
|
# don't need a space so don't warn for those.
|
|
my $post_declare_space = "";
|
|
if ($declare =~ /(\s+)$/) {
|
|
$post_declare_space = $1;
|
|
$declare = rtrim($declare);
|
|
}
|
|
if ($declare !~ /\*$/ && $post_declare_space =~ /^$/) {
|
|
WARN("SPACING",
|
|
"missing space after return type\n" . $herecurr);
|
|
$post_declare_space = " ";
|
|
}
|
|
|
|
# unnecessary space "type (*funcptr)(args...)"
|
|
# This test is not currently implemented because these declarations are
|
|
# equivalent to
|
|
# int foo(int bar, ...)
|
|
# and this is form shouldn't/doesn't generate a checkpatch warning.
|
|
#
|
|
# elsif ($declare =~ /\s{2,}$/) {
|
|
# WARN("SPACING",
|
|
# "Multiple spaces after return type\n" . $herecurr);
|
|
# }
|
|
|
|
# unnecessary space "type ( *funcptr)(args...)"
|
|
if (defined $pre_pointer_space &&
|
|
$pre_pointer_space =~ /^\s/) {
|
|
WARN("SPACING",
|
|
"Unnecessary space after function pointer open parenthesis\n" . $herecurr);
|
|
}
|
|
|
|
# unnecessary space "type (* funcptr)(args...)"
|
|
if (defined $post_pointer_space &&
|
|
$post_pointer_space =~ /^\s/) {
|
|
WARN("SPACING",
|
|
"Unnecessary space before function pointer name\n" . $herecurr);
|
|
}
|
|
|
|
# unnecessary space "type (*funcptr )(args...)"
|
|
if (defined $post_funcname_space &&
|
|
$post_funcname_space =~ /^\s/) {
|
|
WARN("SPACING",
|
|
"Unnecessary space after function pointer name\n" . $herecurr);
|
|
}
|
|
|
|
# unnecessary space "type (*funcptr) (args...)"
|
|
if (defined $pre_args_space &&
|
|
$pre_args_space =~ /^\s/) {
|
|
WARN("SPACING",
|
|
"Unnecessary space before function pointer arguments\n" . $herecurr);
|
|
}
|
|
|
|
if (show_type("SPACING") && $fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/^(.\s*)$Declare\s*\(\s*\*\s*$Ident\s*\)\s*\(/$1 . $declare . $post_declare_space . '(*' . $funcname . ')('/ex;
|
|
}
|
|
}
|
|
|
|
# check for spacing round square brackets; allowed:
|
|
# 1. with a type on the left -- int [] a;
|
|
# 2. at the beginning of a line for slice initialisers -- [0...10] = 5,
|
|
# 3. inside a curly brace -- = { [0...10] = 5 }
|
|
while ($line =~ /(.*?\s)\[/g) {
|
|
my ($where, $prefix) = ($-[1], $1);
|
|
if ($prefix !~ /$Type\s+$/ &&
|
|
($where != 0 || $prefix !~ /^.\s+$/) &&
|
|
$prefix !~ /[{,:]\s+$/) {
|
|
if (ERROR("BRACKET_SPACE",
|
|
"space prohibited before open square bracket '['\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/^(\+.*?)\s+\[/$1\[/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for spaces between functions and their parentheses.
|
|
while ($line =~ /($Ident)\s+\(/g) {
|
|
my $name = $1;
|
|
my $ctx_before = substr($line, 0, $-[1]);
|
|
my $ctx = "$ctx_before$name";
|
|
|
|
# Ignore those directives where spaces _are_ permitted.
|
|
if ($name =~ /^(?:
|
|
if|for|while|switch|return|case|
|
|
volatile|__volatile__|
|
|
__attribute__|format|__extension__|
|
|
asm|__asm__)$/x)
|
|
{
|
|
# cpp #define statements have non-optional spaces, ie
|
|
# if there is a space between the name and the open
|
|
# parenthesis it is simply not a parameter group.
|
|
} elsif ($ctx_before =~ /^.\s*\#\s*define\s*$/) {
|
|
|
|
# cpp #elif statement condition may start with a (
|
|
} elsif ($ctx =~ /^.\s*\#\s*elif\s*$/) {
|
|
|
|
# If this whole things ends with a type its most
|
|
# likely a typedef for a function.
|
|
} elsif ($ctx =~ /$Type$/) {
|
|
|
|
} else {
|
|
if (WARN("SPACING",
|
|
"space prohibited between function name and open parenthesis '('\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\b$name\s+\(/$name\(/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# Check operator spacing.
|
|
if (!($line=~/\#\s*include/)) {
|
|
my $fixed_line = "";
|
|
my $line_fixed = 0;
|
|
|
|
my $ops = qr{
|
|
<<=|>>=|<=|>=|==|!=|
|
|
\+=|-=|\*=|\/=|%=|\^=|\|=|&=|
|
|
=>|->|<<|>>|<|>|=|!|~|
|
|
&&|\|\||,|\^|\+\+|--|&|\||\+|-|\*|\/|%|
|
|
\?:|\?|:
|
|
}x;
|
|
my @elements = split(/($ops|;)/, $opline);
|
|
|
|
## print("element count: <" . $#elements . ">\n");
|
|
## foreach my $el (@elements) {
|
|
## print("el: <$el>\n");
|
|
## }
|
|
|
|
my @fix_elements = ();
|
|
my $off = 0;
|
|
|
|
foreach my $el (@elements) {
|
|
push(@fix_elements, substr($rawline, $off, length($el)));
|
|
$off += length($el);
|
|
}
|
|
|
|
$off = 0;
|
|
|
|
my $blank = copy_spacing($opline);
|
|
my $last_after = -1;
|
|
|
|
for (my $n = 0; $n < $#elements; $n += 2) {
|
|
|
|
my $good = $fix_elements[$n] . $fix_elements[$n + 1];
|
|
|
|
## print("n: <$n> good: <$good>\n");
|
|
|
|
$off += length($elements[$n]);
|
|
|
|
# Pick up the preceding and succeeding characters.
|
|
my $ca = substr($opline, 0, $off);
|
|
my $cc = '';
|
|
if (length($opline) >= ($off + length($elements[$n + 1]))) {
|
|
$cc = substr($opline, $off + length($elements[$n + 1]));
|
|
}
|
|
my $cb = "$ca$;$cc";
|
|
|
|
my $a = '';
|
|
$a = 'V' if ($elements[$n] ne '');
|
|
$a = 'W' if ($elements[$n] =~ /\s$/);
|
|
$a = 'C' if ($elements[$n] =~ /$;$/);
|
|
$a = 'B' if ($elements[$n] =~ /(\[|\()$/);
|
|
$a = 'O' if ($elements[$n] eq '');
|
|
$a = 'E' if ($ca =~ /^\s*$/);
|
|
|
|
my $op = $elements[$n + 1];
|
|
|
|
my $c = '';
|
|
if (defined $elements[$n + 2]) {
|
|
$c = 'V' if ($elements[$n + 2] ne '');
|
|
$c = 'W' if ($elements[$n + 2] =~ /^\s/);
|
|
$c = 'C' if ($elements[$n + 2] =~ /^$;/);
|
|
$c = 'B' if ($elements[$n + 2] =~ /^(\)|\]|;)/);
|
|
$c = 'O' if ($elements[$n + 2] eq '');
|
|
$c = 'E' if ($elements[$n + 2] =~ /^\s*\\$/);
|
|
} else {
|
|
$c = 'E';
|
|
}
|
|
|
|
my $ctx = "${a}x${c}";
|
|
|
|
my $at = "(ctx:$ctx)";
|
|
|
|
my $ptr = substr($blank, 0, $off) . "^";
|
|
my $hereptr = "$hereline$ptr\n";
|
|
|
|
# Pull out the value of this operator.
|
|
my $op_type = substr($curr_values, $off + 1, 1);
|
|
|
|
# Get the full operator variant.
|
|
my $opv = $op . substr($curr_vars, $off, 1);
|
|
|
|
# Ignore operators passed as parameters.
|
|
if ($op_type ne 'V' &&
|
|
$ca =~ /\s$/ && $cc =~ /^\s*[,\)]/) {
|
|
|
|
# # Ignore comments
|
|
# } elsif ($op =~ /^$;+$/) {
|
|
|
|
# ; should have either the end of line or a space or \ after it
|
|
} elsif ($op eq ';') {
|
|
if ($ctx !~ /.x[WEBC]/ &&
|
|
$cc !~ /^\\/ && $cc !~ /^;/) {
|
|
if (ERROR("SPACING",
|
|
"space required after that '$op' $at\n" . $hereptr)) {
|
|
$good = $fix_elements[$n] . trim($fix_elements[$n + 1]) . " ";
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
|
|
# // is a comment
|
|
} elsif ($op eq '//') {
|
|
|
|
# : when part of a bitfield
|
|
} elsif ($opv eq ':B') {
|
|
# skip the bitfield test for now
|
|
|
|
# No spaces for:
|
|
# ->
|
|
} elsif ($op eq '->') {
|
|
if ($ctx =~ /Wx.|.xW/) {
|
|
if (ERROR("SPACING",
|
|
"spaces prohibited around that '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . trim($fix_elements[$n + 1]);
|
|
if (defined $fix_elements[$n + 2]) {
|
|
$fix_elements[$n + 2] =~ s/^\s+//;
|
|
}
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
|
|
# , must not have a space before and must have a space on the right.
|
|
} elsif ($op eq ',') {
|
|
my $rtrim_before = 0;
|
|
my $space_after = 0;
|
|
if ($ctx =~ /Wx./) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited before that '$op' $at\n" . $hereptr)) {
|
|
$line_fixed = 1;
|
|
$rtrim_before = 1;
|
|
}
|
|
}
|
|
if ($ctx !~ /.x[WEC]/ && $cc !~ /^}/) {
|
|
if (ERROR("SPACING",
|
|
"space required after that '$op' $at\n" . $hereptr)) {
|
|
$line_fixed = 1;
|
|
$last_after = $n;
|
|
$space_after = 1;
|
|
}
|
|
}
|
|
if ($rtrim_before || $space_after) {
|
|
if ($rtrim_before) {
|
|
$good = rtrim($fix_elements[$n]) . trim($fix_elements[$n + 1]);
|
|
} else {
|
|
$good = $fix_elements[$n] . trim($fix_elements[$n + 1]);
|
|
}
|
|
if ($space_after) {
|
|
$good .= " ";
|
|
}
|
|
}
|
|
|
|
# '*' as part of a type definition -- reported already.
|
|
} elsif ($opv eq '*_') {
|
|
#warn "'*' is part of type\n";
|
|
|
|
# unary operators should have a space before and
|
|
# none after. May be left adjacent to another
|
|
# unary operator, or a cast
|
|
} elsif ($op eq '!' || $op eq '~' ||
|
|
$opv eq '*U' || $opv eq '-U' ||
|
|
$opv eq '&U' || $opv eq '&&U') {
|
|
if ($ctx !~ /[WEBC]x./ && $ca !~ /(?:\)|!|~|\*|-|\&|\||\+\+|\-\-|\{)$/) {
|
|
if (ERROR("SPACING",
|
|
"space required before that '$op' $at\n" . $hereptr)) {
|
|
if ($n != $last_after + 2) {
|
|
$good = $fix_elements[$n] . " " . ltrim($fix_elements[$n + 1]);
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
}
|
|
if ($op eq '*' && $cc =~/\s*$Modifier\b/) {
|
|
# A unary '*' may be const
|
|
|
|
} elsif ($ctx =~ /.xW/) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited after that '$op' $at\n" . $hereptr)) {
|
|
$good = $fix_elements[$n] . rtrim($fix_elements[$n + 1]);
|
|
if (defined $fix_elements[$n + 2]) {
|
|
$fix_elements[$n + 2] =~ s/^\s+//;
|
|
}
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
|
|
# unary ++ and unary -- are allowed no space on one side.
|
|
} elsif ($op eq '++' or $op eq '--') {
|
|
if ($ctx !~ /[WEOBC]x[^W]/ && $ctx !~ /[^W]x[WOBEC]/) {
|
|
if (ERROR("SPACING",
|
|
"space required one side of that '$op' $at\n" . $hereptr)) {
|
|
$good = $fix_elements[$n] . trim($fix_elements[$n + 1]) . " ";
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
if ($ctx =~ /Wx[BE]/ ||
|
|
($ctx =~ /Wx./ && $cc =~ /^;/)) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited before that '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . trim($fix_elements[$n + 1]);
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
if ($ctx =~ /ExW/) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited after that '$op' $at\n" . $hereptr)) {
|
|
$good = $fix_elements[$n] . trim($fix_elements[$n + 1]);
|
|
if (defined $fix_elements[$n + 2]) {
|
|
$fix_elements[$n + 2] =~ s/^\s+//;
|
|
}
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
|
|
# << and >> may either have or not have spaces both sides
|
|
} elsif ($op eq '<<' or $op eq '>>' or
|
|
$op eq '&' or $op eq '^' or $op eq '|' or
|
|
$op eq '+' or $op eq '-' or
|
|
$op eq '*' or $op eq '/' or
|
|
$op eq '%')
|
|
{
|
|
if ($check) {
|
|
if (defined $fix_elements[$n + 2] && $ctx !~ /[EW]x[EW]/) {
|
|
if (CHK("SPACING",
|
|
"spaces preferred around that '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . " " . trim($fix_elements[$n + 1]) . " ";
|
|
$fix_elements[$n + 2] =~ s/^\s+//;
|
|
$line_fixed = 1;
|
|
}
|
|
} elsif (!defined $fix_elements[$n + 2] && $ctx !~ /Wx[OE]/) {
|
|
if (CHK("SPACING",
|
|
"space preferred before that '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . " " . trim($fix_elements[$n + 1]);
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
} elsif ($ctx =~ /Wx[^WCE]|[^WCE]xW/) {
|
|
if (ERROR("SPACING",
|
|
"need consistent spacing around '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . " " . trim($fix_elements[$n + 1]) . " ";
|
|
if (defined $fix_elements[$n + 2]) {
|
|
$fix_elements[$n + 2] =~ s/^\s+//;
|
|
}
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
|
|
# A colon needs no spaces before when it is
|
|
# terminating a case value or a label.
|
|
} elsif ($opv eq ':C' || $opv eq ':L') {
|
|
if ($ctx =~ /Wx./) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited before that '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . trim($fix_elements[$n + 1]);
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
|
|
# All the others need spaces both sides.
|
|
} elsif ($ctx !~ /[EWC]x[CWE]/) {
|
|
my $ok = 0;
|
|
|
|
# Ignore email addresses <foo@bar>
|
|
if (($op eq '<' &&
|
|
$cc =~ /^\S+\@\S+>/) ||
|
|
($op eq '>' &&
|
|
$ca =~ /<\S+\@\S+$/))
|
|
{
|
|
$ok = 1;
|
|
}
|
|
|
|
# for asm volatile statements
|
|
# ignore a colon with another
|
|
# colon immediately before or after
|
|
if (($op eq ':') &&
|
|
($ca =~ /:$/ || $cc =~ /^:/)) {
|
|
$ok = 1;
|
|
}
|
|
|
|
# messages are ERROR, but ?: are CHK
|
|
if ($ok == 0) {
|
|
my $msg_level = \&ERROR;
|
|
$msg_level = \&CHK if (($op eq '?:' || $op eq '?' || $op eq ':') && $ctx =~ /VxV/);
|
|
|
|
if (&{$msg_level}("SPACING",
|
|
"spaces required around that '$op' $at\n" . $hereptr)) {
|
|
$good = rtrim($fix_elements[$n]) . " " . trim($fix_elements[$n + 1]) . " ";
|
|
if (defined $fix_elements[$n + 2]) {
|
|
$fix_elements[$n + 2] =~ s/^\s+//;
|
|
}
|
|
$line_fixed = 1;
|
|
}
|
|
}
|
|
}
|
|
$off += length($elements[$n + 1]);
|
|
|
|
## print("n: <$n> GOOD: <$good>\n");
|
|
|
|
$fixed_line = $fixed_line . $good;
|
|
}
|
|
|
|
if (($#elements % 2) == 0) {
|
|
$fixed_line = $fixed_line . $fix_elements[$#elements];
|
|
}
|
|
|
|
if ($fix && $line_fixed && $fixed_line ne $fixed[$fixlinenr]) {
|
|
$fixed[$fixlinenr] = $fixed_line;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
# check for whitespace before a non-naked semicolon
|
|
if ($line =~ /^\+.*\S\s+;\s*$/) {
|
|
if (WARN("SPACING",
|
|
"space prohibited before semicolon\n" . $herecurr) &&
|
|
$fix) {
|
|
1 while $fixed[$fixlinenr] =~
|
|
s/^(\+.*\S)\s+;/$1;/;
|
|
}
|
|
}
|
|
|
|
# check for multiple assignments
|
|
if ($line =~ /^.\s*$Lval\s*=\s*$Lval\s*=(?!=)/) {
|
|
CHK("MULTIPLE_ASSIGNMENTS",
|
|
"multiple assignments should be avoided\n" . $herecurr);
|
|
}
|
|
|
|
## # check for multiple declarations, allowing for a function declaration
|
|
## # continuation.
|
|
## if ($line =~ /^.\s*$Type\s+$Ident(?:\s*=[^,{]*)?\s*,\s*$Ident.*/ &&
|
|
## $line !~ /^.\s*$Type\s+$Ident(?:\s*=[^,{]*)?\s*,\s*$Type\s*$Ident.*/) {
|
|
##
|
|
## # Remove any bracketed sections to ensure we do not
|
|
## # falsly report the parameters of functions.
|
|
## my $ln = $line;
|
|
## while ($ln =~ s/\([^\(\)]*\)//g) {
|
|
## }
|
|
## if ($ln =~ /,/) {
|
|
## WARN("MULTIPLE_DECLARATION",
|
|
## "declaring multiple variables together should be avoided\n" . $herecurr);
|
|
## }
|
|
## }
|
|
|
|
#need space before brace following if, while, etc
|
|
if (($line =~ /\(.*\)\{/ && $line !~ /\($Type\)\{/) ||
|
|
$line =~ /do\{/) {
|
|
if (ERROR("SPACING",
|
|
"space required before the open brace '{'\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/^(\+.*(?:do|\)))\{/$1 {/;
|
|
}
|
|
}
|
|
|
|
## # check for blank lines before declarations
|
|
## if ($line =~ /^.\t+$Type\s+$Ident(?:\s*=.*)?;/ &&
|
|
## $prevrawline =~ /^.\s*$/) {
|
|
## WARN("SPACING",
|
|
## "No blank lines before declarations\n" . $hereprev);
|
|
## }
|
|
##
|
|
|
|
# closing brace should have a space following it when it has anything
|
|
# on the line
|
|
if ($line =~ /}(?!(?:,|;|\)))\S/) {
|
|
if (ERROR("SPACING",
|
|
"space required after that close brace '}'\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/}((?!(?:,|;|\)))\S)/} $1/;
|
|
}
|
|
}
|
|
|
|
# check spacing on square brackets
|
|
if ($line =~ /\[\s/ && $line !~ /\[\s*$/) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited after that open square bracket '['\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\[\s+/\[/;
|
|
}
|
|
}
|
|
if ($line =~ /\s\]/) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited before that close square bracket ']'\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\s+\]/\]/;
|
|
}
|
|
}
|
|
|
|
# check spacing on parentheses
|
|
if ($line =~ /\(\s/ && $line !~ /\(\s*(?:\\)?$/ &&
|
|
$line !~ /for\s*\(\s+;/ && $line !~ /^\+\s*[A-Z_][A-Z\d_]*\(\s*\d+(\,.*)?\)\,?$/) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited after that open parenthesis '('\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\(\s+/\(/;
|
|
}
|
|
}
|
|
if ($line =~ /(\s+)\)/ && $line !~ /^.\s*\)/ &&
|
|
$line !~ /for\s*\(.*;\s+\)/ &&
|
|
$line !~ /:\s+\)/) {
|
|
if (ERROR("SPACING",
|
|
"space prohibited before that close parenthesis ')'\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\s+\)/\)/;
|
|
}
|
|
}
|
|
|
|
# check unnecessary parentheses around addressof/dereference single $Lvals
|
|
# ie: &(foo->bar) should be &foo->bar and *(foo->bar) should be *foo->bar
|
|
|
|
while ($line =~ /(?:[^&]&\s*|\*)\(\s*($Ident\s*(?:$Member\s*)+)\s*\)/g) {
|
|
my $var = $1;
|
|
if (CHK("UNNECESSARY_PARENTHESES",
|
|
"Unnecessary parentheses around $var\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\(\s*\Q$var\E\s*\)/$var/;
|
|
}
|
|
}
|
|
|
|
# check for unnecessary parentheses around function pointer uses
|
|
# ie: (foo->bar)(); should be foo->bar();
|
|
# but not "if (foo->bar) (" to avoid some false positives
|
|
if ($line =~ /(\bif\s*|)(\(\s*$Ident\s*(?:$Member\s*)+\))[ \t]*\(/ && $1 !~ /^if/) {
|
|
my $var = $2;
|
|
if (CHK("UNNECESSARY_PARENTHESES",
|
|
"Unnecessary parentheses around function pointer $var\n" . $herecurr) &&
|
|
$fix) {
|
|
my $var2 = deparenthesize($var);
|
|
$var2 =~ s/\s//g;
|
|
$fixed[$fixlinenr] =~ s/\Q$var\E/$var2/;
|
|
}
|
|
}
|
|
|
|
# check for unnecessary parentheses around comparisons in if uses
|
|
# when !drivers/staging or command-line uses --strict
|
|
if (($realfile !~ m@^(?:drivers/staging/)@ || $check_orig) &&
|
|
$^V && $^V ge 5.10.0 && defined($stat) &&
|
|
$stat =~ /(^.\s*if\s*($balanced_parens))/) {
|
|
my $if_stat = $1;
|
|
my $test = substr($2, 1, -1);
|
|
my $herectx;
|
|
while ($test =~ /(?:^|[^\w\&\!\~])+\s*\(\s*([\&\!\~]?\s*$Lval\s*(?:$Compare\s*$FuncArg)?)\s*\)/g) {
|
|
my $match = $1;
|
|
# avoid parentheses around potential macro args
|
|
next if ($match =~ /^\s*\w+\s*$/);
|
|
if (!defined($herectx)) {
|
|
$herectx = $here . "\n";
|
|
my $cnt = statement_rawlines($if_stat);
|
|
for (my $n = 0; $n < $cnt; $n++) {
|
|
my $rl = raw_line($linenr, $n);
|
|
$herectx .= $rl . "\n";
|
|
last if $rl =~ /^[ \+].*\{/;
|
|
}
|
|
}
|
|
CHK("UNNECESSARY_PARENTHESES",
|
|
"Unnecessary parentheses around '$match'\n" . $herectx);
|
|
}
|
|
}
|
|
|
|
#goto labels aren't indented, allow a single space however
|
|
if ($line=~/^.\s+[A-Za-z\d_]+:(?![0-9]+)/ and
|
|
!($line=~/^. [A-Za-z\d_]+:/) and !($line=~/^.\s+default:/)) {
|
|
if (WARN("INDENTED_LABEL",
|
|
"labels should not be indented\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/^(.)\s+/$1/;
|
|
}
|
|
}
|
|
|
|
# return is not a function
|
|
if (defined($stat) && $stat =~ /^.\s*return(\s*)\(/s) {
|
|
my $spacing = $1;
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$stat =~ /^.\s*return\s*($balanced_parens)\s*;\s*$/) {
|
|
my $value = $1;
|
|
$value = deparenthesize($value);
|
|
if ($value =~ m/^\s*$FuncArg\s*(?:\?|$)/) {
|
|
ERROR("RETURN_PARENTHESES",
|
|
"return is not a function, parentheses are not required\n" . $herecurr);
|
|
}
|
|
} elsif ($spacing !~ /\s+/) {
|
|
ERROR("SPACING",
|
|
"space required before the open parenthesis '('\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# unnecessary return in a void function
|
|
# at end-of-function, with the previous line a single leading tab, then return;
|
|
# and the line before that not a goto label target like "out:"
|
|
if ($sline =~ /^[ \+]}\s*$/ &&
|
|
$prevline =~ /^\+\treturn\s*;\s*$/ &&
|
|
$linenr >= 3 &&
|
|
$lines[$linenr - 3] =~ /^[ +]/ &&
|
|
$lines[$linenr - 3] !~ /^[ +]\s*$Ident\s*:/) {
|
|
WARN("RETURN_VOID",
|
|
"void function return statements are not generally useful\n" . $hereprev);
|
|
}
|
|
|
|
# if statements using unnecessary parentheses - ie: if ((foo == bar))
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /\bif\s*((?:\(\s*){2,})/) {
|
|
my $openparens = $1;
|
|
my $count = $openparens =~ tr@\(@\(@;
|
|
my $msg = "";
|
|
if ($line =~ /\bif\s*(?:\(\s*){$count,$count}$LvalOrFunc\s*($Compare)\s*$LvalOrFunc(?:\s*\)){$count,$count}/) {
|
|
my $comp = $4; #Not $1 because of $LvalOrFunc
|
|
$msg = " - maybe == should be = ?" if ($comp eq "==");
|
|
WARN("UNNECESSARY_PARENTHESES",
|
|
"Unnecessary parentheses$msg\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# comparisons with a constant or upper case identifier on the left
|
|
# avoid cases like "foo + BAR < baz"
|
|
# only fix matches surrounded by parentheses to avoid incorrect
|
|
# conversions like "FOO < baz() + 5" being "misfixed" to "baz() > FOO + 5"
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /^\+(.*)\b($Constant|[A-Z_][A-Z0-9_]*)\s*($Compare)\s*($LvalOrFunc)/) {
|
|
my $lead = $1;
|
|
my $const = $2;
|
|
my $comp = $3;
|
|
my $to = $4;
|
|
my $newcomp = $comp;
|
|
if ($lead !~ /(?:$Operators|\.)\s*$/ &&
|
|
$to !~ /^(?:Constant|[A-Z_][A-Z0-9_]*)$/ &&
|
|
WARN("CONSTANT_COMPARISON",
|
|
"Comparisons should place the constant on the right side of the test\n" . $herecurr) &&
|
|
$fix) {
|
|
if ($comp eq "<") {
|
|
$newcomp = ">";
|
|
} elsif ($comp eq "<=") {
|
|
$newcomp = ">=";
|
|
} elsif ($comp eq ">") {
|
|
$newcomp = "<";
|
|
} elsif ($comp eq ">=") {
|
|
$newcomp = "<=";
|
|
}
|
|
$fixed[$fixlinenr] =~ s/\(\s*\Q$const\E\s*$Compare\s*\Q$to\E\s*\)/($to $newcomp $const)/;
|
|
}
|
|
}
|
|
|
|
# Return of what appears to be an errno should normally be negative
|
|
if ($sline =~ /\breturn(?:\s*\(+\s*|\s+)(E[A-Z]+)(?:\s*\)+\s*|\s*)[;:,]/) {
|
|
my $name = $1;
|
|
if ($name ne 'EOF' && $name ne 'ERROR') {
|
|
WARN("USE_NEGATIVE_ERRNO",
|
|
"return of an errno should typically be negative (ie: return -$1)\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# Need a space before open parenthesis after if, while etc
|
|
if ($line =~ /\b(if|while|for|switch)\(/) {
|
|
if (ERROR("SPACING",
|
|
"space required before the open parenthesis '('\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/\b(if|while|for|switch)\(/$1 \(/;
|
|
}
|
|
}
|
|
|
|
# Check for illegal assignment in if conditional -- and check for trailing
|
|
# statements after the conditional.
|
|
if ($line =~ /do\s*(?!{)/) {
|
|
($stat, $cond, $line_nr_next, $remain_next, $off_next) =
|
|
ctx_statement_block($linenr, $realcnt, 0)
|
|
if (!defined $stat);
|
|
my ($stat_next) = ctx_statement_block($line_nr_next,
|
|
$remain_next, $off_next);
|
|
$stat_next =~ s/\n./\n /g;
|
|
##print "stat<$stat> stat_next<$stat_next>\n";
|
|
|
|
if ($stat_next =~ /^\s*while\b/) {
|
|
# If the statement carries leading newlines,
|
|
# then count those as offsets.
|
|
my ($whitespace) =
|
|
($stat_next =~ /^((?:\s*\n[+-])*\s*)/s);
|
|
my $offset =
|
|
statement_rawlines($whitespace) - 1;
|
|
|
|
$suppress_whiletrailers{$line_nr_next +
|
|
$offset} = 1;
|
|
}
|
|
}
|
|
if (!defined $suppress_whiletrailers{$linenr} &&
|
|
defined($stat) && defined($cond) &&
|
|
$line =~ /\b(?:if|while|for)\s*\(/ && $line !~ /^.\s*#/) {
|
|
my ($s, $c) = ($stat, $cond);
|
|
|
|
if ($c =~ /\bif\s*\(.*[^<>!=]=[^=].*/s) {
|
|
ERROR("ASSIGN_IN_IF",
|
|
"do not use assignment in if condition\n" . $herecurr);
|
|
}
|
|
|
|
# Find out what is on the end of the line after the
|
|
# conditional.
|
|
substr($s, 0, length($c), '');
|
|
$s =~ s/\n.*//g;
|
|
$s =~ s/$;//g; # Remove any comments
|
|
if (length($c) && $s !~ /^\s*{?\s*\\*\s*$/ &&
|
|
$c !~ /}\s*while\s*/)
|
|
{
|
|
# Find out how long the conditional actually is.
|
|
my @newlines = ($c =~ /\n/gs);
|
|
my $cond_lines = 1 + $#newlines;
|
|
my $stat_real = '';
|
|
|
|
$stat_real = raw_line($linenr, $cond_lines)
|
|
. "\n" if ($cond_lines);
|
|
if (defined($stat_real) && $cond_lines > 1) {
|
|
$stat_real = "[...]\n$stat_real";
|
|
}
|
|
|
|
ERROR("TRAILING_STATEMENTS",
|
|
"trailing statements should be on next line\n" . $herecurr . $stat_real);
|
|
}
|
|
}
|
|
|
|
# Check for bitwise tests written as boolean
|
|
if ($line =~ /
|
|
(?:
|
|
(?:\[|\(|\&\&|\|\|)
|
|
\s*0[xX][0-9]+\s*
|
|
(?:\&\&|\|\|)
|
|
|
|
|
(?:\&\&|\|\|)
|
|
\s*0[xX][0-9]+\s*
|
|
(?:\&\&|\|\||\)|\])
|
|
)/x)
|
|
{
|
|
WARN("HEXADECIMAL_BOOLEAN_TEST",
|
|
"boolean test with hexadecimal, perhaps just 1 \& or \|?\n" . $herecurr);
|
|
}
|
|
|
|
# if and else should not have general statements after it
|
|
if ($line =~ /^.\s*(?:}\s*)?else\b(.*)/) {
|
|
my $s = $1;
|
|
$s =~ s/$;//g; # Remove any comments
|
|
if ($s !~ /^\s*(?:\sif|(?:{|)\s*\\?\s*$)/) {
|
|
ERROR("TRAILING_STATEMENTS",
|
|
"trailing statements should be on next line\n" . $herecurr);
|
|
}
|
|
}
|
|
# if should not continue a brace
|
|
if ($line =~ /}\s*if\b/) {
|
|
ERROR("TRAILING_STATEMENTS",
|
|
"trailing statements should be on next line (or did you mean 'else if'?)\n" .
|
|
$herecurr);
|
|
}
|
|
# case and default should not have general statements after them
|
|
if ($line =~ /^.\s*(?:case\s*.*|default\s*):/g &&
|
|
$line !~ /\G(?:
|
|
(?:\s*$;*)(?:\s*{)?(?:\s*$;*)(?:\s*\\)?\s*$|
|
|
\s*return\s+
|
|
)/xg)
|
|
{
|
|
ERROR("TRAILING_STATEMENTS",
|
|
"trailing statements should be on next line\n" . $herecurr);
|
|
}
|
|
|
|
# Check for }<nl>else {, these must be at the same
|
|
# indent level to be relevant to each other.
|
|
if ($prevline=~/}\s*$/ and $line=~/^.\s*else\s*/ &&
|
|
$previndent == $indent) {
|
|
if (ERROR("ELSE_AFTER_BRACE",
|
|
"else should follow close brace '}'\n" . $hereprev) &&
|
|
$fix && $prevline =~ /^\+/ && $line =~ /^\+/) {
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
my $fixedline = $prevrawline;
|
|
$fixedline =~ s/}\s*$//;
|
|
if ($fixedline !~ /^\+\s*$/) {
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
}
|
|
$fixedline = $rawline;
|
|
$fixedline =~ s/^(.\s*)else/$1} else/;
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
}
|
|
}
|
|
|
|
if ($prevline=~/}\s*$/ and $line=~/^.\s*while\s*/ &&
|
|
$previndent == $indent) {
|
|
my ($s, $c) = ctx_statement_block($linenr, $realcnt, 0);
|
|
|
|
# Find out what is on the end of the line after the
|
|
# conditional.
|
|
substr($s, 0, length($c), '');
|
|
$s =~ s/\n.*//g;
|
|
|
|
if ($s =~ /^\s*;/) {
|
|
if (ERROR("WHILE_AFTER_BRACE",
|
|
"while should follow close brace '}'\n" . $hereprev) &&
|
|
$fix && $prevline =~ /^\+/ && $line =~ /^\+/) {
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
my $fixedline = $prevrawline;
|
|
my $trailing = $rawline;
|
|
$trailing =~ s/^\+//;
|
|
$trailing = trim($trailing);
|
|
$fixedline =~ s/}\s*$/} $trailing/;
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
}
|
|
}
|
|
}
|
|
|
|
#Specific variable tests
|
|
while ($line =~ m{($Constant|$Lval)}g) {
|
|
my $var = $1;
|
|
|
|
#gcc binary extension
|
|
if ($var =~ /^$Binary$/) {
|
|
if (WARN("GCC_BINARY_CONSTANT",
|
|
"Avoid gcc v4.3+ binary constant extension: <$var>\n" . $herecurr) &&
|
|
$fix) {
|
|
my $hexval = sprintf("0x%x", oct($var));
|
|
$fixed[$fixlinenr] =~
|
|
s/\b$var\b/$hexval/;
|
|
}
|
|
}
|
|
|
|
#CamelCase
|
|
if ($var !~ /^$Constant$/ &&
|
|
$var =~ /[A-Z][a-z]|[a-z][A-Z]/ &&
|
|
#Ignore Page<foo> variants
|
|
$var !~ /^(?:Clear|Set|TestClear|TestSet|)Page[A-Z]/ &&
|
|
#Ignore SI style variants like nS, mV and dB (ie: max_uV, regulator_min_uA_show)
|
|
$var !~ /^(?:[a-z_]*?)_?[a-z][A-Z](?:_[a-z_]+)?$/ &&
|
|
#Ignore some three character SI units explicitly, like MiB and KHz
|
|
$var !~ /^(?:[a-z_]*?)_?(?:[KMGT]iB|[KMGT]?Hz)(?:_[a-z_]+)?$/) {
|
|
while ($var =~ m{($Ident)}g) {
|
|
my $word = $1;
|
|
next if ($word !~ /[A-Z][a-z]|[a-z][A-Z]/);
|
|
if ($check) {
|
|
seed_camelcase_includes();
|
|
if (!$file && !$camelcase_file_seeded) {
|
|
seed_camelcase_file($realfile);
|
|
$camelcase_file_seeded = 1;
|
|
}
|
|
}
|
|
if (!defined $camelcase{$word}) {
|
|
$camelcase{$word} = 1;
|
|
CHK("CAMELCASE",
|
|
"Avoid CamelCase: <$word>\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#no spaces allowed after \ in define
|
|
if ($line =~ /\#\s*define.*\\\s+$/) {
|
|
if (WARN("WHITESPACE_AFTER_LINE_CONTINUATION",
|
|
"Whitespace after \\ makes next lines useless\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\s+$//;
|
|
}
|
|
}
|
|
|
|
# warn if <asm/foo.h> is #included and <linux/foo.h> is available and includes
|
|
# itself <asm/foo.h> (uses RAW line)
|
|
if ($tree && $rawline =~ m{^.\s*\#\s*include\s*\<asm\/(.*)\.h\>}) {
|
|
my $file = "$1.h";
|
|
my $checkfile = "include/linux/$file";
|
|
if (-f "$root/$checkfile" &&
|
|
$realfile ne $checkfile &&
|
|
$1 !~ /$allowed_asm_includes/)
|
|
{
|
|
my $asminclude = `grep -Ec "#include\\s+<asm/$file>" $root/$checkfile`;
|
|
if ($asminclude > 0) {
|
|
if ($realfile =~ m{^arch/}) {
|
|
CHK("ARCH_INCLUDE_LINUX",
|
|
"Consider using #include <linux/$file> instead of <asm/$file>\n" . $herecurr);
|
|
} else {
|
|
WARN("INCLUDE_LINUX",
|
|
"Use #include <linux/$file> instead of <asm/$file>\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# multi-statement macros should be enclosed in a do while loop, grab the
|
|
# first statement and ensure its the whole macro if its not enclosed
|
|
# in a known good container
|
|
if ($realfile !~ m@/vmlinux.lds.h$@ &&
|
|
$line =~ /^.\s*\#\s*define\s*$Ident(\()?/) {
|
|
my $ln = $linenr;
|
|
my $cnt = $realcnt - 1;
|
|
my ($off, $dstat, $dcond, $rest);
|
|
my $ctx = '';
|
|
my $has_flow_statement = 0;
|
|
my $has_arg_concat = 0;
|
|
($dstat, $dcond, $ln, $cnt, $off) =
|
|
ctx_statement_block($linenr, $realcnt, 0);
|
|
$ctx = $dstat;
|
|
#print "dstat<$dstat> dcond<$dcond> cnt<$cnt> off<$off>\n";
|
|
#print "LINE<$lines[$ln-1]> len<" . length($lines[$ln-1]) . "\n";
|
|
|
|
$has_flow_statement = 1 if ($ctx =~ /\b(goto|return)\b/);
|
|
$has_arg_concat = 1 if ($ctx =~ /\#\#/ && $ctx !~ /\#\#\s*(?:__VA_ARGS__|args)\b/);
|
|
|
|
$dstat =~ s/^.\s*\#\s*define\s+$Ident(\([^\)]*\))?\s*//;
|
|
my $define_args = $1;
|
|
my $define_stmt = $dstat;
|
|
my @def_args = ();
|
|
|
|
if (defined $define_args && $define_args ne "") {
|
|
$define_args = substr($define_args, 1, length($define_args) - 2);
|
|
$define_args =~ s/\s*//g;
|
|
@def_args = split(",", $define_args);
|
|
}
|
|
|
|
$dstat =~ s/$;//g;
|
|
$dstat =~ s/\\\n.//g;
|
|
$dstat =~ s/^\s*//s;
|
|
$dstat =~ s/\s*$//s;
|
|
|
|
# Flatten any parentheses and braces
|
|
while ($dstat =~ s/\([^\(\)]*\)/1/ ||
|
|
$dstat =~ s/\{[^\{\}]*\}/1/ ||
|
|
$dstat =~ s/.\[[^\[\]]*\]/1/)
|
|
{
|
|
}
|
|
|
|
# Extremely long macros may fall off the end of the
|
|
# available context without closing. Give a dangling
|
|
# backslash the benefit of the doubt and allow it
|
|
# to gobble any hanging open-parens.
|
|
$dstat =~ s/\(.+\\$/1/;
|
|
|
|
# Flatten any obvious string concatentation.
|
|
while ($dstat =~ s/($String)\s*$Ident/$1/ ||
|
|
$dstat =~ s/$Ident\s*($String)/$1/)
|
|
{
|
|
}
|
|
|
|
# Make asm volatile uses seem like a generic function
|
|
$dstat =~ s/\b_*asm_*\s+_*volatile_*\b/asm_volatile/g;
|
|
|
|
my $exceptions = qr{
|
|
$Declare|
|
|
module_param_named|
|
|
MODULE_PARM_DESC|
|
|
DECLARE_PER_CPU|
|
|
DEFINE_PER_CPU|
|
|
CLK_[A-Z\d_]+|
|
|
__typeof__\(|
|
|
union|
|
|
struct|
|
|
\.$Ident\s*=\s*|
|
|
^\"|\"$|
|
|
^\[
|
|
}x;
|
|
#print "REST<$rest> dstat<$dstat> ctx<$ctx>\n";
|
|
|
|
$ctx =~ s/\n*$//;
|
|
my $stmt_cnt = statement_rawlines($ctx);
|
|
my $herectx = get_stat_here($linenr, $stmt_cnt, $here);
|
|
|
|
if ($dstat ne '' &&
|
|
$dstat !~ /^(?:$Ident|-?$Constant),$/ && # 10, // foo(),
|
|
$dstat !~ /^(?:$Ident|-?$Constant);$/ && # foo();
|
|
$dstat !~ /^[!~-]?(?:$Lval|$Constant)$/ && # 10 // foo() // !foo // ~foo // -foo // foo->bar // foo.bar->baz
|
|
$dstat !~ /^'X'$/ && $dstat !~ /^'XX'$/ && # character constants
|
|
$dstat !~ /$exceptions/ &&
|
|
$dstat !~ /^\.$Ident\s*=/ && # .foo =
|
|
$dstat !~ /^(?:\#\s*$Ident|\#\s*$Constant)\s*$/ && # stringification #foo
|
|
$dstat !~ /^do\s*$Constant\s*while\s*$Constant;?$/ && # do {...} while (...); // do {...} while (...)
|
|
$dstat !~ /^for\s*$Constant$/ && # for (...)
|
|
$dstat !~ /^for\s*$Constant\s+(?:$Ident|-?$Constant)$/ && # for (...) bar()
|
|
$dstat !~ /^do\s*{/ && # do {...
|
|
$dstat !~ /^\(\{/ && # ({...
|
|
$ctx !~ /^.\s*#\s*define\s+TRACE_(?:SYSTEM|INCLUDE_FILE|INCLUDE_PATH)\b/)
|
|
{
|
|
if ($dstat =~ /^\s*if\b/) {
|
|
ERROR("MULTISTATEMENT_MACRO_USE_DO_WHILE",
|
|
"Macros starting with if should be enclosed by a do - while loop to avoid possible if/else logic defects\n" . "$herectx");
|
|
} elsif ($dstat =~ /;/) {
|
|
ERROR("MULTISTATEMENT_MACRO_USE_DO_WHILE",
|
|
"Macros with multiple statements should be enclosed in a do - while loop\n" . "$herectx");
|
|
} else {
|
|
ERROR("COMPLEX_MACRO",
|
|
"Macros with complex values should be enclosed in parentheses\n" . "$herectx");
|
|
}
|
|
|
|
}
|
|
|
|
# Make $define_stmt single line, comment-free, etc
|
|
my @stmt_array = split('\n', $define_stmt);
|
|
my $first = 1;
|
|
$define_stmt = "";
|
|
foreach my $l (@stmt_array) {
|
|
$l =~ s/\\$//;
|
|
if ($first) {
|
|
$define_stmt = $l;
|
|
$first = 0;
|
|
} elsif ($l =~ /^[\+ ]/) {
|
|
$define_stmt .= substr($l, 1);
|
|
}
|
|
}
|
|
$define_stmt =~ s/$;//g;
|
|
$define_stmt =~ s/\s+/ /g;
|
|
$define_stmt = trim($define_stmt);
|
|
|
|
# check if any macro arguments are reused (ignore '...' and 'type')
|
|
foreach my $arg (@def_args) {
|
|
next if ($arg =~ /\.\.\./);
|
|
next if ($arg =~ /^type$/i);
|
|
my $tmp_stmt = $define_stmt;
|
|
$tmp_stmt =~ s/\b(typeof|__typeof__|__builtin\w+|typecheck\s*\(\s*$Type\s*,|\#+)\s*\(*\s*$arg\s*\)*\b//g;
|
|
$tmp_stmt =~ s/\#+\s*$arg\b//g;
|
|
$tmp_stmt =~ s/\b$arg\s*\#\#//g;
|
|
my $use_cnt = () = $tmp_stmt =~ /\b$arg\b/g;
|
|
if ($use_cnt > 1) {
|
|
CHK("MACRO_ARG_REUSE",
|
|
"Macro argument reuse '$arg' - possible side-effects?\n" . "$herectx");
|
|
}
|
|
# check if any macro arguments may have other precedence issues
|
|
if ($tmp_stmt =~ m/($Operators)?\s*\b$arg\b\s*($Operators)?/m &&
|
|
((defined($1) && $1 ne ',') ||
|
|
(defined($2) && $2 ne ','))) {
|
|
CHK("MACRO_ARG_PRECEDENCE",
|
|
"Macro argument '$arg' may be better as '($arg)' to avoid precedence issues\n" . "$herectx");
|
|
}
|
|
}
|
|
|
|
# check for macros with flow control, but without ## concatenation
|
|
# ## concatenation is commonly a macro that defines a function so ignore those
|
|
if ($has_flow_statement && !$has_arg_concat) {
|
|
my $cnt = statement_rawlines($ctx);
|
|
my $herectx = get_stat_here($linenr, $cnt, $here);
|
|
|
|
WARN("MACRO_WITH_FLOW_CONTROL",
|
|
"Macros with flow control statements should be avoided\n" . "$herectx");
|
|
}
|
|
|
|
# check for line continuations outside of #defines, preprocessor #, and asm
|
|
|
|
} else {
|
|
if ($prevline !~ /^..*\\$/ &&
|
|
$line !~ /^\+\s*\#.*\\$/ && # preprocessor
|
|
$line !~ /^\+.*\b(__asm__|asm)\b.*\\$/ && # asm
|
|
$line =~ /^\+.*\\$/) {
|
|
WARN("LINE_CONTINUATIONS",
|
|
"Avoid unnecessary line continuations\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# do {} while (0) macro tests:
|
|
# single-statement macros do not need to be enclosed in do while (0) loop,
|
|
# macro should not end with a semicolon
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$realfile !~ m@/vmlinux.lds.h$@ &&
|
|
$line =~ /^.\s*\#\s*define\s+$Ident(\()?/) {
|
|
my $ln = $linenr;
|
|
my $cnt = $realcnt;
|
|
my ($off, $dstat, $dcond, $rest);
|
|
my $ctx = '';
|
|
($dstat, $dcond, $ln, $cnt, $off) =
|
|
ctx_statement_block($linenr, $realcnt, 0);
|
|
$ctx = $dstat;
|
|
|
|
$dstat =~ s/\\\n.//g;
|
|
$dstat =~ s/$;/ /g;
|
|
|
|
if ($dstat =~ /^\+\s*#\s*define\s+$Ident\s*${balanced_parens}\s*do\s*{(.*)\s*}\s*while\s*\(\s*0\s*\)\s*([;\s]*)\s*$/) {
|
|
my $stmts = $2;
|
|
my $semis = $3;
|
|
|
|
$ctx =~ s/\n*$//;
|
|
my $cnt = statement_rawlines($ctx);
|
|
my $herectx = get_stat_here($linenr, $cnt, $here);
|
|
|
|
if (($stmts =~ tr/;/;/) == 1 &&
|
|
$stmts !~ /^\s*(if|while|for|switch)\b/) {
|
|
WARN("SINGLE_STATEMENT_DO_WHILE_MACRO",
|
|
"Single statement macros should not use a do {} while (0) loop\n" . "$herectx");
|
|
}
|
|
if (defined $semis && $semis ne "") {
|
|
WARN("DO_WHILE_MACRO_WITH_TRAILING_SEMICOLON",
|
|
"do {} while (0) macros should not be semicolon terminated\n" . "$herectx");
|
|
}
|
|
} elsif ($dstat =~ /^\+\s*#\s*define\s+$Ident.*;\s*$/) {
|
|
$ctx =~ s/\n*$//;
|
|
my $cnt = statement_rawlines($ctx);
|
|
my $herectx = get_stat_here($linenr, $cnt, $here);
|
|
|
|
WARN("TRAILING_SEMICOLON",
|
|
"macros should not use a trailing semicolon\n" . "$herectx");
|
|
}
|
|
}
|
|
|
|
# check for redundant bracing round if etc
|
|
if ($line =~ /(^.*)\bif\b/ && $1 !~ /else\s*$/) {
|
|
my ($level, $endln, @chunks) =
|
|
ctx_statement_full($linenr, $realcnt, 1);
|
|
#print "chunks<$#chunks> linenr<$linenr> endln<$endln> level<$level>\n";
|
|
#print "APW: <<$chunks[1][0]>><<$chunks[1][1]>>\n";
|
|
if ($#chunks > 0 && $level == 0) {
|
|
my @allowed = ();
|
|
my $allow = 0;
|
|
my $seen = 0;
|
|
my $herectx = $here . "\n";
|
|
my $ln = $linenr - 1;
|
|
for my $chunk (@chunks) {
|
|
my ($cond, $block) = @{$chunk};
|
|
|
|
# If the condition carries leading newlines, then count those as offsets.
|
|
my ($whitespace) = ($cond =~ /^((?:\s*\n[+-])*\s*)/s);
|
|
my $offset = statement_rawlines($whitespace) - 1;
|
|
|
|
$allowed[$allow] = 0;
|
|
#print "COND<$cond> whitespace<$whitespace> offset<$offset>\n";
|
|
|
|
# We have looked at and allowed this specific line.
|
|
$suppress_ifbraces{$ln + $offset} = 1;
|
|
|
|
$herectx .= "$rawlines[$ln + $offset]\n[...]\n";
|
|
$ln += statement_rawlines($block) - 1;
|
|
|
|
substr($block, 0, length($cond), '');
|
|
|
|
$seen++ if ($block =~ /^\s*{/);
|
|
|
|
#print "cond<$cond> block<$block> allowed<$allowed[$allow]>\n";
|
|
if (statement_lines($cond) > 1) {
|
|
#print "APW: ALLOWED: cond<$cond>\n";
|
|
$allowed[$allow] = 1;
|
|
}
|
|
if ($block =~/\b(?:if|for|while)\b/) {
|
|
#print "APW: ALLOWED: block<$block>\n";
|
|
$allowed[$allow] = 1;
|
|
}
|
|
if (statement_block_size($block) > 1) {
|
|
#print "APW: ALLOWED: lines block<$block>\n";
|
|
$allowed[$allow] = 1;
|
|
}
|
|
$allow++;
|
|
}
|
|
if ($seen) {
|
|
my $sum_allowed = 0;
|
|
foreach (@allowed) {
|
|
$sum_allowed += $_;
|
|
}
|
|
if ($sum_allowed == 0) {
|
|
WARN("BRACES",
|
|
"braces {} are not necessary for any arm of this statement\n" . $herectx);
|
|
} elsif ($sum_allowed != $allow &&
|
|
$seen != $allow) {
|
|
CHK("BRACES",
|
|
"braces {} should be used on all arms of this statement\n" . $herectx);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!defined $suppress_ifbraces{$linenr - 1} &&
|
|
$line =~ /\b(if|while|for|else)\b/) {
|
|
my $allowed = 0;
|
|
|
|
# Check the pre-context.
|
|
if (substr($line, 0, $-[0]) =~ /(\}\s*)$/) {
|
|
#print "APW: ALLOWED: pre<$1>\n";
|
|
$allowed = 1;
|
|
}
|
|
|
|
my ($level, $endln, @chunks) =
|
|
ctx_statement_full($linenr, $realcnt, $-[0]);
|
|
|
|
# Check the condition.
|
|
my ($cond, $block) = @{$chunks[0]};
|
|
#print "CHECKING<$linenr> cond<$cond> block<$block>\n";
|
|
if (defined $cond) {
|
|
substr($block, 0, length($cond), '');
|
|
}
|
|
if (statement_lines($cond) > 1) {
|
|
#print "APW: ALLOWED: cond<$cond>\n";
|
|
$allowed = 1;
|
|
}
|
|
if ($block =~/\b(?:if|for|while)\b/) {
|
|
#print "APW: ALLOWED: block<$block>\n";
|
|
$allowed = 1;
|
|
}
|
|
if (statement_block_size($block) > 1) {
|
|
#print "APW: ALLOWED: lines block<$block>\n";
|
|
$allowed = 1;
|
|
}
|
|
# Check the post-context.
|
|
if (defined $chunks[1]) {
|
|
my ($cond, $block) = @{$chunks[1]};
|
|
if (defined $cond) {
|
|
substr($block, 0, length($cond), '');
|
|
}
|
|
if ($block =~ /^\s*\{/) {
|
|
#print "APW: ALLOWED: chunk-1 block<$block>\n";
|
|
$allowed = 1;
|
|
}
|
|
}
|
|
if ($level == 0 && $block =~ /^\s*\{/ && !$allowed) {
|
|
my $cnt = statement_rawlines($block);
|
|
my $herectx = get_stat_here($linenr, $cnt, $here);
|
|
|
|
WARN("BRACES",
|
|
"braces {} are not necessary for single statement blocks\n" . $herectx);
|
|
}
|
|
}
|
|
|
|
# check for single line unbalanced braces
|
|
if ($sline =~ /^.\s*\}\s*else\s*$/ ||
|
|
$sline =~ /^.\s*else\s*\{\s*$/) {
|
|
CHK("BRACES", "Unbalanced braces around else statement\n" . $herecurr);
|
|
}
|
|
|
|
# check for unnecessary blank lines around braces
|
|
if (($line =~ /^.\s*}\s*$/ && $prevrawline =~ /^.\s*$/)) {
|
|
if (CHK("BRACES",
|
|
"Blank lines aren't necessary before a close brace '}'\n" . $hereprev) &&
|
|
$fix && $prevrawline =~ /^\+/) {
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
}
|
|
}
|
|
if (($rawline =~ /^.\s*$/ && $prevline =~ /^..*{\s*$/)) {
|
|
if (CHK("BRACES",
|
|
"Blank lines aren't necessary after an open brace '{'\n" . $hereprev) &&
|
|
$fix) {
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
}
|
|
}
|
|
|
|
# no volatiles please
|
|
my $asm_volatile = qr{\b(__asm__|asm)\s+(__volatile__|volatile)\b};
|
|
if ($line =~ /\bvolatile\b/ && $line !~ /$asm_volatile/) {
|
|
WARN("VOLATILE",
|
|
"Use of volatile is usually wrong: see Documentation/process/volatile-considered-harmful.rst\n" . $herecurr);
|
|
}
|
|
|
|
# Check for user-visible strings broken across lines, which breaks the ability
|
|
# to grep for the string. Make exceptions when the previous string ends in a
|
|
# newline (multiple lines in one string constant) or '\t', '\r', ';', or '{'
|
|
# (common in inline assembly) or is a octal \123 or hexadecimal \xaf value
|
|
if ($line =~ /^\+\s*$String/ &&
|
|
$prevline =~ /"\s*$/ &&
|
|
$prevrawline !~ /(?:\\(?:[ntr]|[0-7]{1,3}|x[0-9a-fA-F]{1,2})|;\s*|\{\s*)"\s*$/) {
|
|
if (WARN("SPLIT_STRING",
|
|
"quoted string split across lines\n" . $hereprev) &&
|
|
$fix &&
|
|
$prevrawline =~ /^\+.*"\s*$/ &&
|
|
$last_coalesced_string_linenr != $linenr - 1) {
|
|
my $extracted_string = get_quoted_string($line, $rawline);
|
|
my $comma_close = "";
|
|
if ($rawline =~ /\Q$extracted_string\E(\s*\)\s*;\s*$|\s*,\s*)/) {
|
|
$comma_close = $1;
|
|
}
|
|
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
fix_delete_line($fixlinenr, $rawline);
|
|
my $fixedline = $prevrawline;
|
|
$fixedline =~ s/"\s*$//;
|
|
$fixedline .= substr($extracted_string, 1) . trim($comma_close);
|
|
fix_insert_line($fixlinenr - 1, $fixedline);
|
|
$fixedline = $rawline;
|
|
$fixedline =~ s/\Q$extracted_string\E\Q$comma_close\E//;
|
|
if ($fixedline !~ /\+\s*$/) {
|
|
fix_insert_line($fixlinenr, $fixedline);
|
|
}
|
|
$last_coalesced_string_linenr = $linenr;
|
|
}
|
|
}
|
|
|
|
# check for missing a space in a string concatenation
|
|
if ($prevrawline =~ /[^\\]\w"$/ && $rawline =~ /^\+[\t ]+"\w/) {
|
|
WARN('MISSING_SPACE',
|
|
"break quoted strings at a space character\n" . $hereprev);
|
|
}
|
|
|
|
# check for an embedded function name in a string when the function is known
|
|
# This does not work very well for -f --file checking as it depends on patch
|
|
# context providing the function name or a single line form for in-file
|
|
# function declarations
|
|
if ($line =~ /^\+.*$String/ &&
|
|
defined($context_function) &&
|
|
get_quoted_string($line, $rawline) =~ /\b$context_function\b/ &&
|
|
length(get_quoted_string($line, $rawline)) != (length($context_function) + 2)) {
|
|
WARN("EMBEDDED_FUNCTION_NAME",
|
|
"Prefer using '\"%s...\", __func__' to using '$context_function', this function's name, in a string\n" . $herecurr);
|
|
}
|
|
|
|
# check for spaces before a quoted newline
|
|
if ($rawline =~ /^.*\".*\s\\n/) {
|
|
if (WARN("QUOTED_WHITESPACE_BEFORE_NEWLINE",
|
|
"unnecessary whitespace before a quoted newline\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/^(\+.*\".*)\s+\\n/$1\\n/;
|
|
}
|
|
|
|
}
|
|
|
|
# concatenated string without spaces between elements
|
|
if ($line =~ /$String[A-Z_]/ || $line =~ /[A-Za-z0-9_]$String/) {
|
|
CHK("CONCATENATED_STRING",
|
|
"Concatenated strings should use spaces between elements\n" . $herecurr);
|
|
}
|
|
|
|
# uncoalesced string fragments
|
|
if ($line =~ /$String\s*"/) {
|
|
WARN("STRING_FRAGMENTS",
|
|
"Consecutive strings are generally better as a single string\n" . $herecurr);
|
|
}
|
|
|
|
# check for non-standard and hex prefixed decimal printf formats
|
|
my $show_L = 1; #don't show the same defect twice
|
|
my $show_Z = 1;
|
|
while ($line =~ /(?:^|")([X\t]*)(?:"|$)/g) {
|
|
my $string = substr($rawline, $-[1], $+[1] - $-[1]);
|
|
$string =~ s/%%/__/g;
|
|
# check for %L
|
|
if ($show_L && $string =~ /%[\*\d\.\$]*L([diouxX])/) {
|
|
WARN("PRINTF_L",
|
|
"\%L$1 is non-standard C, use %ll$1\n" . $herecurr);
|
|
$show_L = 0;
|
|
}
|
|
# check for %Z
|
|
if ($show_Z && $string =~ /%[\*\d\.\$]*Z([diouxX])/) {
|
|
WARN("PRINTF_Z",
|
|
"%Z$1 is non-standard C, use %z$1\n" . $herecurr);
|
|
$show_Z = 0;
|
|
}
|
|
# check for 0x<decimal>
|
|
if ($string =~ /0x%[\*\d\.\$\Llzth]*[diou]/) {
|
|
ERROR("PRINTF_0XDECIMAL",
|
|
"Prefixing 0x with decimal output is defective\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for line continuations in quoted strings with odd counts of "
|
|
if ($rawline =~ /\\$/ && $sline =~ tr/"/"/ % 2) {
|
|
WARN("LINE_CONTINUATIONS",
|
|
"Avoid line continuations in quoted strings\n" . $herecurr);
|
|
}
|
|
|
|
# sys_open/read/write/close are not allowed in the kernel
|
|
if ($line =~ /\b(sys_(?:open|read|write|close))\b/) {
|
|
ERROR("FILE_OPS",
|
|
"$1 is inappropriate in kernel code.\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# filp_open is a backdoor for sys_open
|
|
if ($line =~ /\b(filp_open)\b/) {
|
|
ERROR("FILE_OPS",
|
|
"$1 is inappropriate in kernel code.\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# read[bwl] & write[bwl] use too many barriers, use the _relaxed variants
|
|
if ($line =~ /\b((?:read|write)[bwl])\b/) {
|
|
ERROR("NON_RELAXED_IO",
|
|
"Use of $1 is deprecated: use $1_relaxed\n\t" .
|
|
"with appropriate memory barriers instead.\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# likewise, in/out[bwl] should be __raw_read/write[bwl]...
|
|
if ($line =~ /\b((in|out)([bwl]))\b/) {
|
|
my ($all, $pref, $suf) = ($1, $2, $3);
|
|
$pref =~ s/in/read/;
|
|
$pref =~ s/out/write/;
|
|
ERROR("NON_RELAXED_IO",
|
|
"Use of $all is deprecated: use " .
|
|
"__raw_$pref$suf\n\t" .
|
|
"with appropriate memory barriers instead.\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# dsb is too ARMish, and should usually be mb.
|
|
if ($line =~ /[^-_>*\.]\bdsb\b[^-_\.;]/) {
|
|
WARN("ARM_BARRIER",
|
|
"Use of dsb is discouranged: prefer mb.\n" .
|
|
$herecurr);
|
|
}
|
|
|
|
# unbounded string functions are overflow risks
|
|
my %str_fns = (
|
|
"sprintf" => "snprintf",
|
|
"strcpy" => "strlcpy",
|
|
"strncpy" => "strlcpy",
|
|
"strcat" => "strlcat",
|
|
"strncat" => "strlcat",
|
|
"vsprintf" => "vsnprintf",
|
|
"strchr" => "strnchr",
|
|
"strstr" => "strnstr",
|
|
);
|
|
foreach my $k (keys %str_fns) {
|
|
if ($line =~ /\b$k\b/) {
|
|
ERROR("UNBOUNDED_STRING_FNS",
|
|
"Use of $k is deprecated: " .
|
|
"use $str_fns{$k} instead.\n" .
|
|
$herecurr);
|
|
}
|
|
}
|
|
|
|
# warn about #if 0
|
|
if ($line =~ /^.\s*\#\s*if\s+0\b/) {
|
|
WARN("IF_0",
|
|
"if this code is redundant consider removing it\n"
|
|
. $herecurr);
|
|
}
|
|
|
|
# warn about #if 1
|
|
if ($line =~ /^.\s*\#\s*if\s+1\b/) {
|
|
WARN("IF_1",
|
|
"if this code is required consider removing"
|
|
. " #if 1\n" . $herecurr);
|
|
}
|
|
|
|
# check for needless "if (<foo>) fn(<foo>)" uses
|
|
if ($prevline =~ /\bif\s*\(\s*($Lval)\s*\)/) {
|
|
my $tested = quotemeta($1);
|
|
my $expr = '\s*\(\s*' . $tested . '\s*\)\s*;';
|
|
if ($line =~ /\b(kfree|usb_free_urb|debugfs_remove(?:_recursive)?|(?:kmem_cache|mempool|dma_pool)_destroy)$expr/) {
|
|
my $func = $1;
|
|
if (WARN('NEEDLESS_IF',
|
|
"$func(NULL) is safe and this check is probably not required\n" . $hereprev) &&
|
|
$fix) {
|
|
my $do_fix = 1;
|
|
my $leading_tabs = "";
|
|
my $new_leading_tabs = "";
|
|
if ($lines[$linenr - 2] =~ /^\+(\t*)if\s*\(\s*$tested\s*\)\s*$/) {
|
|
$leading_tabs = $1;
|
|
} else {
|
|
$do_fix = 0;
|
|
}
|
|
if ($lines[$linenr - 1] =~ /^\+(\t+)$func\s*\(\s*$tested\s*\)\s*;\s*$/) {
|
|
$new_leading_tabs = $1;
|
|
if (length($leading_tabs) + 1 ne length($new_leading_tabs)) {
|
|
$do_fix = 0;
|
|
}
|
|
} else {
|
|
$do_fix = 0;
|
|
}
|
|
if ($do_fix) {
|
|
fix_delete_line($fixlinenr - 1, $prevrawline);
|
|
$fixed[$fixlinenr] =~ s/^\+$new_leading_tabs/\+$leading_tabs/;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for unnecessary "Out of Memory" messages
|
|
if ($line =~ /^\+.*\b$logFunctions\s*\(/ &&
|
|
$prevline =~ /^[ \+]\s*if\s*\(\s*(\!\s*|NULL\s*==\s*)?($Lval)(\s*==\s*NULL\s*)?\s*\)/ &&
|
|
(defined $1 || defined $3) &&
|
|
$linenr > 3) {
|
|
my $testval = $2;
|
|
my $testline = $lines[$linenr - 3];
|
|
|
|
my ($s, $c) = ctx_statement_block($linenr - 3, $realcnt, 0);
|
|
# print("line: <$line>\nprevline: <$prevline>\ns: <$s>\nc: <$c>\n\n\n");
|
|
|
|
if ($s =~ /(?:^|\n)[ \+]\s*(?:$Type\s*)?\Q$testval\E\s*=\s*(?:\([^\)]*\)\s*)?\s*(?:devm_)?(?:[kv][czm]alloc(?:_node|_array)?\b|kstrdup|kmemdup|(?:dev_)?alloc_skb)/) {
|
|
WARN("OOM_MESSAGE",
|
|
"Possible unnecessary 'out of memory' message\n" . $hereprev);
|
|
}
|
|
}
|
|
|
|
# check for logging functions with KERN_<LEVEL>
|
|
if ($line !~ /printk(?:_ratelimited|_once)?\s*\(/ &&
|
|
$line =~ /\b$logFunctions\s*\(.*\b(KERN_[A-Z]+)\b/) {
|
|
my $level = $1;
|
|
if (WARN("UNNECESSARY_KERN_LEVEL",
|
|
"Possible unnecessary $level\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\s*$level\s*//;
|
|
}
|
|
}
|
|
|
|
# check for logging continuations
|
|
if ($line =~ /\bprintk\s*\(\s*KERN_CONT\b|\bpr_cont\s*\(/) {
|
|
WARN("LOGGING_CONTINUATION",
|
|
"Avoid logging continuation uses where feasible\n" . $herecurr);
|
|
}
|
|
|
|
# check for mask then right shift without a parentheses
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /$LvalOrFunc\s*\&\s*($LvalOrFunc)\s*>>/ &&
|
|
$4 !~ /^\&/) { # $LvalOrFunc may be &foo, ignore if so
|
|
WARN("MASK_THEN_SHIFT",
|
|
"Possible precedence defect with mask then right shift - may need parentheses\n" . $herecurr);
|
|
}
|
|
|
|
# check for pointer comparisons to NULL
|
|
if ($^V && $^V ge 5.10.0) {
|
|
while ($line =~ /\b$LvalOrFunc\s*(==|\!=)\s*NULL\b/g) {
|
|
my $val = $1;
|
|
my $equal = "!";
|
|
$equal = "" if ($4 eq "!=");
|
|
if (CHK("COMPARISON_TO_NULL",
|
|
"Comparison to NULL could be written \"${equal}${val}\"\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b\Q$val\E\s*(?:==|\!=)\s*NULL\b/$equal$val/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for bad placement of section $InitAttribute (e.g.: __initdata)
|
|
if ($line =~ /(\b$InitAttribute\b)/) {
|
|
my $attr = $1;
|
|
if ($line =~ /^\+\s*static\s+(?:const\s+)?(?:$attr\s+)?($NonptrTypeWithAttr)\s+(?:$attr\s+)?($Ident(?:\[[^]]*\])?)\s*[=;]/) {
|
|
my $ptr = $1;
|
|
my $var = $2;
|
|
if ((($ptr =~ /\b(union|struct)\s+$attr\b/ &&
|
|
ERROR("MISPLACED_INIT",
|
|
"$attr should be placed after $var\n" . $herecurr)) ||
|
|
($ptr !~ /\b(union|struct)\s+$attr\b/ &&
|
|
WARN("MISPLACED_INIT",
|
|
"$attr should be placed after $var\n" . $herecurr))) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(\bstatic\s+(?:const\s+)?)(?:$attr\s+)?($NonptrTypeWithAttr)\s+(?:$attr\s+)?($Ident(?:\[[^]]*\])?)\s*([=;])\s*/"$1" . trim(string_find_replace($2, "\\s*$attr\\s*", " ")) . " " . trim(string_find_replace($3, "\\s*$attr\\s*", "")) . " $attr" . ("$4" eq ";" ? ";" : " = ")/e;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for $InitAttributeData (ie: __initdata) with const
|
|
if ($line =~ /\bconst\b/ && $line =~ /($InitAttributeData)/) {
|
|
my $attr = $1;
|
|
$attr =~ /($InitAttributePrefix)(.*)/;
|
|
my $attr_prefix = $1;
|
|
my $attr_type = $2;
|
|
if (ERROR("INIT_ATTRIBUTE",
|
|
"Use of const init definition must use ${attr_prefix}initconst\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/$InitAttributeData/${attr_prefix}initconst/;
|
|
}
|
|
}
|
|
|
|
# check for $InitAttributeConst (ie: __initconst) without const
|
|
if ($line !~ /\bconst\b/ && $line =~ /($InitAttributeConst)/) {
|
|
my $attr = $1;
|
|
if (ERROR("INIT_ATTRIBUTE",
|
|
"Use of $attr requires a separate use of const\n" . $herecurr) &&
|
|
$fix) {
|
|
my $lead = $fixed[$fixlinenr] =~
|
|
/(^\+\s*(?:static\s+))/;
|
|
$lead = rtrim($1);
|
|
$lead = "$lead " if ($lead !~ /^\+$/);
|
|
$lead = "${lead}const ";
|
|
$fixed[$fixlinenr] =~ s/(^\+\s*(?:static\s+))/$lead/;
|
|
}
|
|
}
|
|
|
|
# check for __read_mostly with const non-pointer (should just be const)
|
|
if ($line =~ /\b__read_mostly\b/ &&
|
|
$line =~ /($Type)\s*$Ident/ && $1 !~ /\*\s*$/ && $1 =~ /\bconst\b/) {
|
|
if (ERROR("CONST_READ_MOSTLY",
|
|
"Invalid use of __read_mostly with const type\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\s+__read_mostly\b//;
|
|
}
|
|
}
|
|
|
|
# don't use __constant_<foo> functions outside of include/uapi/
|
|
if ($realfile !~ m@^include/uapi/@ &&
|
|
$line =~ /(__constant_(?:htons|ntohs|[bl]e(?:16|32|64)_to_cpu|cpu_to_[bl]e(?:16|32|64)))\s*\(/) {
|
|
my $constant_func = $1;
|
|
my $func = $constant_func;
|
|
$func =~ s/^__constant_//;
|
|
if (WARN("CONSTANT_CONVERSION",
|
|
"$constant_func should be $func\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b$constant_func\b/$func/g;
|
|
}
|
|
}
|
|
|
|
# prefer usleep_range over udelay
|
|
if ($line =~ /\budelay\s*\(\s*(\d+)\s*\)/) {
|
|
my $delay = $1;
|
|
# ignore udelay's < 10, however
|
|
if (! ($delay < 10) ) {
|
|
CHK("USLEEP_RANGE",
|
|
"usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt\n" . $herecurr);
|
|
}
|
|
if ($delay > 2000) {
|
|
WARN("LONG_UDELAY",
|
|
"long udelay - prefer mdelay; see arch/arm/include/asm/delay.h\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# warn about unexpectedly long msleep's
|
|
if ($line =~ /\bmsleep\s*\((\d+)\);/) {
|
|
if ($1 < 20) {
|
|
WARN("MSLEEP",
|
|
"msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for comparisons of jiffies
|
|
if ($line =~ /\bjiffies\s*$Compare|$Compare\s*jiffies\b/) {
|
|
WARN("JIFFIES_COMPARISON",
|
|
"Comparing jiffies is almost always wrong; prefer time_after, time_before and friends\n" . $herecurr);
|
|
}
|
|
|
|
# check for comparisons of get_jiffies_64()
|
|
if ($line =~ /\bget_jiffies_64\s*\(\s*\)\s*$Compare|$Compare\s*get_jiffies_64\s*\(\s*\)/) {
|
|
WARN("JIFFIES_COMPARISON",
|
|
"Comparing get_jiffies_64() is almost always wrong; prefer time_after64, time_before64 and friends\n" . $herecurr);
|
|
}
|
|
|
|
# check the patch for use of mdelay
|
|
if ($line =~ /\bmdelay\s*\(/) {
|
|
WARN("MDELAY",
|
|
"use of mdelay() found: msleep() is the preferred API.\n" . $herecurr );
|
|
}
|
|
|
|
# warn about #ifdefs in C files
|
|
# if ($line =~ /^.\s*\#\s*if(|n)def/ && ($realfile =~ /\.c$/)) {
|
|
# print "#ifdef in C files should be avoided\n";
|
|
# print "$herecurr";
|
|
# $clean = 0;
|
|
# }
|
|
|
|
# warn about spacing in #ifdefs
|
|
if ($line =~ /^.\s*\#\s*(ifdef|ifndef|elif)\s\s+/) {
|
|
if (ERROR("SPACING",
|
|
"exactly one space required after that #$1\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~
|
|
s/^(.\s*\#\s*(ifdef|ifndef|elif))\s{2,}/$1 /;
|
|
}
|
|
|
|
}
|
|
|
|
# check for spinlock_t definitions without a comment.
|
|
if ($line =~ /^.\s*(struct\s+mutex|spinlock_t)\s+\S+;/ ||
|
|
$line =~ /^.\s*(DEFINE_MUTEX)\s*\(/) {
|
|
my $which = $1;
|
|
if (!ctx_has_comment($first_line, $linenr)) {
|
|
CHK("UNCOMMENTED_DEFINITION",
|
|
"$1 definition without comment\n" . $herecurr);
|
|
}
|
|
}
|
|
# check for memory barriers without a comment.
|
|
|
|
my $barriers = qr{
|
|
mb|
|
|
rmb|
|
|
wmb|
|
|
read_barrier_depends
|
|
}x;
|
|
my $barrier_stems = qr{
|
|
mb__before_atomic|
|
|
mb__after_atomic|
|
|
store_release|
|
|
load_acquire|
|
|
store_mb|
|
|
(?:$barriers)
|
|
}x;
|
|
my $all_barriers = qr{
|
|
(?:$barriers)|
|
|
smp_(?:$barrier_stems)|
|
|
virt_(?:$barrier_stems)
|
|
}x;
|
|
|
|
if ($line =~ /\b(?:$all_barriers)\s*\(/) {
|
|
if (!ctx_has_comment($first_line, $linenr)) {
|
|
WARN("MEMORY_BARRIER",
|
|
"memory barrier without comment\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
my $underscore_smp_barriers = qr{__smp_(?:$barrier_stems)}x;
|
|
|
|
if ($realfile !~ m@^include/asm-generic/@ &&
|
|
$realfile !~ m@/barrier\.h$@ &&
|
|
$line =~ m/\b(?:$underscore_smp_barriers)\s*\(/ &&
|
|
$line !~ m/^.\s*\#\s*define\s+(?:$underscore_smp_barriers)\s*\(/) {
|
|
WARN("MEMORY_BARRIER",
|
|
"__smp memory barriers shouldn't be used outside barrier.h and asm-generic\n" . $herecurr);
|
|
}
|
|
|
|
# check for waitqueue_active without a comment.
|
|
if ($line =~ /\bwaitqueue_active\s*\(/) {
|
|
if (!ctx_has_comment($first_line, $linenr)) {
|
|
WARN("WAITQUEUE_ACTIVE",
|
|
"waitqueue_active without comment\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for smp_read_barrier_depends and read_barrier_depends
|
|
if (!$file && $line =~ /\b(smp_|)read_barrier_depends\s*\(/) {
|
|
WARN("READ_BARRIER_DEPENDS",
|
|
"$1read_barrier_depends should only be used in READ_ONCE or DEC Alpha code\n" . $herecurr);
|
|
}
|
|
|
|
# check of hardware specific defines
|
|
if ($line =~ m@^.\s*\#\s*if.*\b(__i386__|__powerpc64__|__sun__|__s390x__)\b@ && $realfile !~ m@include/asm-@) {
|
|
CHK("ARCH_DEFINES",
|
|
"architecture specific defines should be avoided\n" . $herecurr);
|
|
}
|
|
|
|
# check that the storage class is not after a type
|
|
if ($line =~ /\b($Type)\s+($Storage)\b/) {
|
|
WARN("STORAGE_CLASS",
|
|
"storage class '$2' should be located before type '$1'\n" . $herecurr);
|
|
}
|
|
# Check that the storage class is at the beginning of a declaration
|
|
if ($line =~ /\b$Storage\b/ &&
|
|
$line !~ /^.\s*$Storage/ &&
|
|
$line =~ /^.\s*(.+?)\$Storage\s/ &&
|
|
$1 !~ /[\,\)]\s*$/) {
|
|
WARN("STORAGE_CLASS",
|
|
"storage class should be at the beginning of the declaration\n" . $herecurr);
|
|
}
|
|
|
|
# check the location of the inline attribute, that it is between
|
|
# storage class and type.
|
|
if ($line =~ /\b$Type\s+$Inline\b/ ||
|
|
$line =~ /\b$Inline\s+$Storage\b/) {
|
|
ERROR("INLINE_LOCATION",
|
|
"inline keyword should sit between storage class and type\n" . $herecurr);
|
|
}
|
|
|
|
# Check for __inline__ and __inline, prefer inline
|
|
if ($realfile !~ m@\binclude/uapi/@ &&
|
|
$line =~ /\b(__inline__|__inline)\b/) {
|
|
if (WARN("INLINE",
|
|
"plain inline is preferred over $1\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b(__inline__|__inline)\b/inline/;
|
|
|
|
}
|
|
}
|
|
|
|
# Check for __attribute__ packed, prefer __packed
|
|
if ($realfile !~ m@\binclude/uapi/@ &&
|
|
$line =~ /\b__attribute__\s*\(\s*\(.*\bpacked\b/) {
|
|
WARN("PREFER_PACKED",
|
|
"__packed is preferred over __attribute__((packed))\n" . $herecurr);
|
|
}
|
|
|
|
# Check for __attribute__ aligned, prefer __aligned
|
|
if ($realfile !~ m@\binclude/uapi/@ &&
|
|
$line =~ /\b__attribute__\s*\(\s*\(.*aligned/) {
|
|
WARN("PREFER_ALIGNED",
|
|
"__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr);
|
|
}
|
|
|
|
# Check for __attribute__ format(printf, prefer __printf
|
|
if ($realfile !~ m@\binclude/uapi/@ &&
|
|
$line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf/) {
|
|
if (WARN("PREFER_PRINTF",
|
|
"__printf(string-index, first-to-check) is preferred over __attribute__((format(printf, string-index, first-to-check)))\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf\s*,\s*(.*)\)\s*\)\s*\)/"__printf(" . trim($1) . ")"/ex;
|
|
|
|
}
|
|
}
|
|
|
|
# Check for __attribute__ format(scanf, prefer __scanf
|
|
if ($realfile !~ m@\binclude/uapi/@ &&
|
|
$line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\b/) {
|
|
if (WARN("PREFER_SCANF",
|
|
"__scanf(string-index, first-to-check) is preferred over __attribute__((format(scanf, string-index, first-to-check)))\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\s*,\s*(.*)\)\s*\)\s*\)/"__scanf(" . trim($1) . ")"/ex;
|
|
}
|
|
}
|
|
|
|
# Check for __attribute__ weak, or __weak declarations (may have link issues)
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /(?:$Declare|$DeclareMisordered)\s*$Ident\s*$balanced_parens\s*(?:$Attribute)?\s*;/ &&
|
|
($line =~ /\b__attribute__\s*\(\s*\(.*\bweak\b/ ||
|
|
$line =~ /\b__weak\b/)) {
|
|
ERROR("WEAK_DECLARATION",
|
|
"Using weak declarations can have unintended link defects\n" . $herecurr);
|
|
}
|
|
|
|
# check for c99 types like uint8_t used outside of uapi/ and tools/
|
|
if ($realfile !~ m@\binclude/uapi/@ &&
|
|
$realfile !~ m@\btools/@ &&
|
|
$line =~ /\b($Declare)\s*$Ident\s*[=;,\[]/) {
|
|
my $type = $1;
|
|
if ($type =~ /\b($typeC99Typedefs)\b/) {
|
|
$type = $1;
|
|
my $kernel_type = 'u';
|
|
$kernel_type = 's' if ($type =~ /^_*[si]/);
|
|
$type =~ /(\d+)/;
|
|
$kernel_type .= $1;
|
|
if (CHK("PREFER_KERNEL_TYPES",
|
|
"Prefer kernel type '$kernel_type' over '$type'\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b$type\b/$kernel_type/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for cast of C90 native int or longer types constants
|
|
if ($line =~ /(\(\s*$C90_int_types\s*\)\s*)($Constant)\b/) {
|
|
my $cast = $1;
|
|
my $const = $2;
|
|
if (WARN("TYPECAST_INT_CONSTANT",
|
|
"Unnecessary typecast of c90 int constant\n" . $herecurr) &&
|
|
$fix) {
|
|
my $suffix = "";
|
|
my $newconst = $const;
|
|
$newconst =~ s/${Int_type}$//;
|
|
$suffix .= 'U' if ($cast =~ /\bunsigned\b/);
|
|
if ($cast =~ /\blong\s+long\b/) {
|
|
$suffix .= 'LL';
|
|
} elsif ($cast =~ /\blong\b/) {
|
|
$suffix .= 'L';
|
|
}
|
|
$fixed[$fixlinenr] =~ s/\Q$cast\E$const\b/$newconst$suffix/;
|
|
}
|
|
}
|
|
|
|
# check for sizeof(&)
|
|
if ($line =~ /\bsizeof\s*\(\s*\&/) {
|
|
WARN("SIZEOF_ADDRESS",
|
|
"sizeof(& should be avoided\n" . $herecurr);
|
|
}
|
|
|
|
# check for sizeof without parenthesis
|
|
if ($line =~ /\bsizeof\s+((?:\*\s*|)$Lval|$Type(?:\s+$Lval|))/) {
|
|
if (WARN("SIZEOF_PARENTHESIS",
|
|
"sizeof $1 should be sizeof($1)\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\bsizeof\s+((?:\*\s*|)$Lval|$Type(?:\s+$Lval|))/"sizeof(" . trim($1) . ")"/ex;
|
|
}
|
|
}
|
|
|
|
# check for struct spinlock declarations
|
|
if ($line =~ /^.\s*\bstruct\s+spinlock\s+\w+\s*;/) {
|
|
WARN("USE_SPINLOCK_T",
|
|
"struct spinlock should be spinlock_t\n" . $herecurr);
|
|
}
|
|
|
|
# check for seq_printf uses that could be seq_puts
|
|
if ($sline =~ /\bseq_printf\s*\(.*"\s*\)\s*;\s*$/) {
|
|
my $fmt = get_quoted_string($line, $rawline);
|
|
$fmt =~ s/%%//g;
|
|
if ($fmt !~ /%/) {
|
|
if (WARN("PREFER_SEQ_PUTS",
|
|
"Prefer seq_puts to seq_printf\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\bseq_printf\b/seq_puts/;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for vsprintf extension %p<foo> misuses
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^\+(?![^\{]*\{\s*).*\b(\w+)\s*\(.*$String\s*,/s &&
|
|
$1 !~ /^_*volatile_*$/) {
|
|
my $specifier;
|
|
my $extension;
|
|
my $bad_specifier = "";
|
|
my $stat_real;
|
|
|
|
my $lc = $stat =~ tr@\n@@;
|
|
$lc = $lc + $linenr;
|
|
for (my $count = $linenr; $count <= $lc; $count++) {
|
|
my $fmt = get_quoted_string($lines[$count - 1], raw_line($count, 0));
|
|
$fmt =~ s/%%//g;
|
|
|
|
while ($fmt =~ /(\%[\*\d\.]*p(\w))/g) {
|
|
$specifier = $1;
|
|
$extension = $2;
|
|
if ($extension !~ /[SsBKRraEhMmIiUDdgVCbGNOx]/) {
|
|
$bad_specifier = $specifier;
|
|
last;
|
|
}
|
|
if ($extension eq "x" && !defined($stat_real)) {
|
|
if (!defined($stat_real)) {
|
|
$stat_real = get_stat_real($linenr, $lc);
|
|
}
|
|
WARN("VSPRINTF_SPECIFIER_PX",
|
|
"Using vsprintf specifier '\%px' potentially exposes the kernel memory layout, if you don't really need the address please consider using '\%p'.\n" . "$here\n$stat_real\n");
|
|
}
|
|
}
|
|
if ($bad_specifier ne "") {
|
|
my $stat_real = get_stat_real($linenr, $lc);
|
|
my $ext_type = "Invalid";
|
|
my $use = "";
|
|
if ($bad_specifier =~ /p[Ff]/) {
|
|
$ext_type = "Deprecated";
|
|
$use = " - use %pS instead";
|
|
$use =~ s/pS/ps/ if ($bad_specifier =~ /pf/);
|
|
}
|
|
|
|
WARN("VSPRINTF_POINTER_EXTENSION",
|
|
"$ext_type vsprintf pointer extension '$bad_specifier'$use\n" . "$here\n$stat_real\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
# Check for misused memsets
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^\+(?:.*?)\bmemset\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*$FuncArg\s*\)/) {
|
|
|
|
my $ms_addr = $2;
|
|
my $ms_val = $7;
|
|
my $ms_size = $12;
|
|
|
|
if ($ms_size =~ /^(0x|)0$/i) {
|
|
ERROR("MEMSET",
|
|
"memset to 0's uses 0 as the 2nd argument, not the 3rd\n" . "$here\n$stat\n");
|
|
} elsif ($ms_size =~ /^(0x|)1$/i) {
|
|
WARN("MEMSET",
|
|
"single byte memset is suspicious. Swapped 2nd/3rd argument?\n" . "$here\n$stat\n");
|
|
}
|
|
}
|
|
|
|
# Check for memcpy(foo, bar, ETH_ALEN) that could be ether_addr_copy(foo, bar)
|
|
# if ($^V && $^V ge 5.10.0 &&
|
|
# defined $stat &&
|
|
# $stat =~ /^\+(?:.*?)\bmemcpy\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*ETH_ALEN\s*\)/) {
|
|
# if (WARN("PREFER_ETHER_ADDR_COPY",
|
|
# "Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2)\n" . "$here\n$stat\n") &&
|
|
# $fix) {
|
|
# $fixed[$fixlinenr] =~ s/\bmemcpy\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*ETH_ALEN\s*\)/ether_addr_copy($2, $7)/;
|
|
# }
|
|
# }
|
|
|
|
# Check for memcmp(foo, bar, ETH_ALEN) that could be ether_addr_equal*(foo, bar)
|
|
# if ($^V && $^V ge 5.10.0 &&
|
|
# defined $stat &&
|
|
# $stat =~ /^\+(?:.*?)\bmemcmp\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*ETH_ALEN\s*\)/) {
|
|
# WARN("PREFER_ETHER_ADDR_EQUAL",
|
|
# "Prefer ether_addr_equal() or ether_addr_equal_unaligned() over memcmp()\n" . "$here\n$stat\n")
|
|
# }
|
|
|
|
# check for memset(foo, 0x0, ETH_ALEN) that could be eth_zero_addr
|
|
# check for memset(foo, 0xFF, ETH_ALEN) that could be eth_broadcast_addr
|
|
# if ($^V && $^V ge 5.10.0 &&
|
|
# defined $stat &&
|
|
# $stat =~ /^\+(?:.*?)\bmemset\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\,\s*ETH_ALEN\s*\)/) {
|
|
#
|
|
# my $ms_val = $7;
|
|
#
|
|
# if ($ms_val =~ /^(?:0x|)0+$/i) {
|
|
# if (WARN("PREFER_ETH_ZERO_ADDR",
|
|
# "Prefer eth_zero_addr over memset()\n" . "$here\n$stat\n") &&
|
|
# $fix) {
|
|
# $fixed[$fixlinenr] =~ s/\bmemset\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*,\s*ETH_ALEN\s*\)/eth_zero_addr($2)/;
|
|
# }
|
|
# } elsif ($ms_val =~ /^(?:0xff|255)$/i) {
|
|
# if (WARN("PREFER_ETH_BROADCAST_ADDR",
|
|
# "Prefer eth_broadcast_addr() over memset()\n" . "$here\n$stat\n") &&
|
|
# $fix) {
|
|
# $fixed[$fixlinenr] =~ s/\bmemset\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*,\s*ETH_ALEN\s*\)/eth_broadcast_addr($2)/;
|
|
# }
|
|
# }
|
|
# }
|
|
|
|
# typecasts on min/max could be min_t/max_t
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^\+(?:.*?)\b(min|max)\s*\(\s*$FuncArg\s*,\s*$FuncArg\s*\)/) {
|
|
if (defined $2 || defined $7) {
|
|
my $call = $1;
|
|
my $cast1 = deparenthesize($2);
|
|
my $arg1 = $3;
|
|
my $cast2 = deparenthesize($7);
|
|
my $arg2 = $8;
|
|
my $cast;
|
|
|
|
if ($cast1 ne "" && $cast2 ne "" && $cast1 ne $cast2) {
|
|
$cast = "$cast1 or $cast2";
|
|
} elsif ($cast1 ne "") {
|
|
$cast = $cast1;
|
|
} else {
|
|
$cast = $cast2;
|
|
}
|
|
WARN("MINMAX",
|
|
"$call() should probably be ${call}_t($cast, $arg1, $arg2)\n" . "$here\n$stat\n");
|
|
}
|
|
}
|
|
|
|
# check usleep_range arguments
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^\+(?:.*?)\busleep_range\s*\(\s*($FuncArg)\s*,\s*($FuncArg)\s*\)/) {
|
|
my $min = $1;
|
|
my $max = $7;
|
|
if ($min eq $max) {
|
|
WARN("USLEEP_RANGE",
|
|
"usleep_range should not use min == max args; see Documentation/timers/timers-howto.txt\n" . "$here\n$stat\n");
|
|
} elsif ($min =~ /^\d+$/ && $max =~ /^\d+$/ &&
|
|
$min > $max) {
|
|
WARN("USLEEP_RANGE",
|
|
"usleep_range args reversed, use min then max; see Documentation/timers/timers-howto.txt\n" . "$here\n$stat\n");
|
|
}
|
|
}
|
|
|
|
# check for naked sscanf
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$line =~ /\bsscanf\b/ &&
|
|
($stat !~ /$Ident\s*=\s*sscanf\s*$balanced_parens/ &&
|
|
$stat !~ /\bsscanf\s*$balanced_parens\s*(?:$Compare)/ &&
|
|
$stat !~ /(?:$Compare)\s*\bsscanf\s*$balanced_parens/)) {
|
|
my $lc = $stat =~ tr@\n@@;
|
|
$lc = $lc + $linenr;
|
|
my $stat_real = get_stat_real($linenr, $lc);
|
|
WARN("NAKED_SSCANF",
|
|
"unchecked sscanf return value\n" . "$here\n$stat_real\n");
|
|
}
|
|
|
|
# check for simple sscanf that should be kstrto<foo>
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$line =~ /\bsscanf\b/) {
|
|
my $lc = $stat =~ tr@\n@@;
|
|
$lc = $lc + $linenr;
|
|
my $stat_real = get_stat_real($linenr, $lc);
|
|
if ($stat_real =~ /\bsscanf\b\s*\(\s*$FuncArg\s*,\s*("[^"]+")/) {
|
|
my $format = $6;
|
|
my $count = $format =~ tr@%@%@;
|
|
if ($count == 1 &&
|
|
$format =~ /^"\%(?i:ll[udxi]|[udxi]ll|ll|[hl]h?[udxi]|[udxi][hl]h?|[hl]h?|[udxi])"$/) {
|
|
WARN("SSCANF_TO_KSTRTO",
|
|
"Prefer kstrto<type> to single variable sscanf\n" . "$here\n$stat_real\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for new externs in .h files.
|
|
if ($realfile =~ /\.h$/ &&
|
|
$line =~ /^\+\s*(extern\s+)$Type\s*$Ident\s*\(/s) {
|
|
if (CHK("AVOID_EXTERNS",
|
|
"extern prototypes should be avoided in .h files\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(.*)\bextern\b\s*(.*)/$1$2/;
|
|
}
|
|
}
|
|
|
|
# check for new externs in .c files.
|
|
if ($realfile =~ /\.c$/ && defined $stat &&
|
|
$stat =~ /^.\s*(?:extern\s+)?$Type\s+($Ident)(\s*)\(/s)
|
|
{
|
|
my $function_name = $1;
|
|
my $paren_space = $2;
|
|
|
|
my $s = $stat;
|
|
if (defined $cond) {
|
|
substr($s, 0, length($cond), '');
|
|
}
|
|
if ($s =~ /^\s*;/ &&
|
|
$function_name ne 'uninitialized_var')
|
|
{
|
|
WARN("AVOID_EXTERNS",
|
|
"externs should be avoided in .c files\n" . $herecurr);
|
|
}
|
|
|
|
if ($paren_space =~ /\n/) {
|
|
WARN("FUNCTION_ARGUMENTS",
|
|
"arguments for function declarations should follow identifier\n" . $herecurr);
|
|
}
|
|
|
|
} elsif ($realfile =~ /\.c$/ && defined $stat &&
|
|
$stat =~ /^.\s*extern\s+/)
|
|
{
|
|
WARN("AVOID_EXTERNS",
|
|
"externs should be avoided in .c files\n" . $herecurr);
|
|
}
|
|
|
|
# check for function declarations that have arguments without identifier names
|
|
if (defined $stat &&
|
|
$stat =~ /^.\s*(?:extern\s+)?$Type\s*(?:$Ident|\(\s*\*\s*$Ident\s*\))\s*\(\s*([^{]+)\s*\)\s*;/s &&
|
|
$1 ne "void") {
|
|
my $args = trim($1);
|
|
while ($args =~ m/\s*($Type\s*(?:$Ident|\(\s*\*\s*$Ident?\s*\)\s*$balanced_parens)?)/g) {
|
|
my $arg = trim($1);
|
|
if ($arg =~ /^$Type$/ && $arg !~ /enum\s+$Ident$/) {
|
|
WARN("FUNCTION_ARGUMENTS",
|
|
"function definition argument '$arg' should also have an identifier name\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for function definitions
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^.\s*(?:$Storage\s+)?$Type\s*($Ident)\s*$balanced_parens\s*{/s) {
|
|
$context_function = $1;
|
|
|
|
# check for multiline function definition with misplaced open brace
|
|
my $ok = 0;
|
|
my $cnt = statement_rawlines($stat);
|
|
my $herectx = $here . "\n";
|
|
for (my $n = 0; $n < $cnt; $n++) {
|
|
my $rl = raw_line($linenr, $n);
|
|
$herectx .= $rl . "\n";
|
|
$ok = 1 if ($rl =~ /^[ \+]\{/);
|
|
$ok = 1 if ($rl =~ /\{/ && $n == 0);
|
|
last if $rl =~ /^[ \+].*\{/;
|
|
}
|
|
if (!$ok) {
|
|
ERROR("OPEN_BRACE",
|
|
"open brace '{' following function definitions go on the next line\n" . $herectx);
|
|
}
|
|
}
|
|
|
|
# checks for new __setup's
|
|
if ($rawline =~ /\b__setup\("([^"]*)"/) {
|
|
my $name = $1;
|
|
|
|
if (!grep(/$name/, @setup_docs)) {
|
|
CHK("UNDOCUMENTED_SETUP",
|
|
"__setup appears un-documented -- check Documentation/admin-guide/kernel-parameters.rst\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for pointless casting of kmalloc return
|
|
if ($line =~ /\*\s*\)\s*[kv][czm]alloc(_node){0,1}\b/) {
|
|
WARN("UNNECESSARY_CASTS",
|
|
"unnecessary cast may hide bugs, see http://c-faq.com/malloc/mallocnocast.html\n" . $herecurr);
|
|
}
|
|
|
|
# alloc style
|
|
# p = alloc(sizeof(struct foo), ...) should be p = alloc(sizeof(*p), ...)
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*([kv][mz]alloc(?:_node)?)\s*\(\s*(sizeof\s*\(\s*struct\s+$Lval\s*\))/) {
|
|
CHK("ALLOC_SIZEOF_STRUCT",
|
|
"Prefer $3(sizeof(*$1)...) over $3($4...)\n" . $herecurr);
|
|
}
|
|
|
|
# check for k[mz]alloc with multiplies that could be kmalloc_array/kcalloc
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^\+\s*($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)\s*,/) {
|
|
my $oldfunc = $3;
|
|
my $a1 = $4;
|
|
my $a2 = $10;
|
|
my $newfunc = "kmalloc_array";
|
|
$newfunc = "kcalloc" if ($oldfunc eq "kzalloc");
|
|
my $r1 = $a1;
|
|
my $r2 = $a2;
|
|
if ($a1 =~ /^sizeof\s*\S/) {
|
|
$r1 = $a2;
|
|
$r2 = $a1;
|
|
}
|
|
if ($r1 !~ /^sizeof\b/ && $r2 =~ /^sizeof\s*\S/ &&
|
|
!($r1 =~ /^$Constant$/ || $r1 =~ /^[A-Z_][A-Z0-9_]*$/)) {
|
|
my $cnt = statement_rawlines($stat);
|
|
my $herectx = get_stat_here($linenr, $cnt, $here);
|
|
|
|
if (WARN("ALLOC_WITH_MULTIPLY",
|
|
"Prefer $newfunc over $oldfunc with multiply\n" . $herectx) &&
|
|
$cnt == 1 &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)/$1 . ' = ' . "$newfunc(" . trim($r1) . ', ' . trim($r2)/e;
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for krealloc arg reuse
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*krealloc\s*\(\s*\1\s*,/) {
|
|
WARN("KREALLOC_ARG_REUSE",
|
|
"Reusing the krealloc arg is almost always a bug\n" . $herecurr);
|
|
}
|
|
|
|
# check for alloc argument mismatch
|
|
if ($line =~ /\b(kcalloc|kmalloc_array)\s*\(\s*sizeof\b/) {
|
|
WARN("ALLOC_ARRAY_ARGS",
|
|
"$1 uses number as first arg, sizeof is generally wrong\n" . $herecurr);
|
|
}
|
|
|
|
# check for multiple semicolons
|
|
if ($line =~ /;\s*;\s*$/) {
|
|
if (WARN("ONE_SEMICOLON",
|
|
"Statements terminations use 1 semicolon\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/(\s*;\s*){2,}$/;/g;
|
|
}
|
|
}
|
|
|
|
# check for #defines like: 1 << <digit> that could be BIT(digit), it is not exported to uapi
|
|
if ($realfile !~ m@^include/uapi/@ &&
|
|
$line =~ /#\s*define\s+\w+\s+\(?\s*1\s*([ulUL]*)\s*\<\<\s*(?:\d+|$Ident)\s*\)?/) {
|
|
my $ull = "";
|
|
$ull = "_ULL" if (defined($1) && $1 =~ /ll/i);
|
|
if (CHK("BIT_MACRO",
|
|
"Prefer using the BIT$ull macro\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\(?\s*1\s*[ulUL]*\s*<<\s*(\d+|$Ident)\s*\)?/BIT${ull}($1)/;
|
|
}
|
|
}
|
|
|
|
# check for #if defined CONFIG_<FOO> || defined CONFIG_<FOO>_MODULE
|
|
if ($line =~ /^\+\s*#\s*if\s+defined(?:\s*\(?\s*|\s+)(CONFIG_[A-Z_]+)\s*\)?\s*\|\|\s*defined(?:\s*\(?\s*|\s+)\1_MODULE\s*\)?\s*$/) {
|
|
my $config = $1;
|
|
if (WARN("PREFER_IS_ENABLED",
|
|
"Prefer IS_ENABLED(<FOO>) to CONFIG_<FOO> || CONFIG_<FOO>_MODULE\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] = "\+#if IS_ENABLED($config)";
|
|
}
|
|
}
|
|
|
|
# check for case / default statements not preceded by break/fallthrough/switch
|
|
if ($line =~ /^.\s*(?:case\s+(?:$Ident|$Constant)\s*|default):/) {
|
|
my $has_break = 0;
|
|
my $has_statement = 0;
|
|
my $count = 0;
|
|
my $prevline = $linenr;
|
|
while ($prevline > 1 && ($file || $count < 3) && !$has_break) {
|
|
$prevline--;
|
|
my $rline = $rawlines[$prevline - 1];
|
|
my $fline = $lines[$prevline - 1];
|
|
last if ($fline =~ /^\@\@/);
|
|
next if ($fline =~ /^\-/);
|
|
next if ($fline =~ /^.(?:\s*(?:case\s+(?:$Ident|$Constant)[\s$;]*|default):[\s$;]*)*$/);
|
|
$has_break = 1 if ($rline =~ /fall[\s_-]*(through|thru)/i);
|
|
next if ($fline =~ /^.[\s$;]*$/);
|
|
$has_statement = 1;
|
|
$count++;
|
|
$has_break = 1 if ($fline =~ /\bswitch\b|\b(?:break\s*;[\s$;]*$|exit\s*\(\b|return\b|goto\b|continue\b)/);
|
|
}
|
|
if (!$has_break && $has_statement) {
|
|
WARN("MISSING_BREAK",
|
|
"Possible switch case/default not preceded by break or fallthrough comment\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for switch/default statements without a break;
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /^\+[$;\s]*(?:case[$;\s]+\w+[$;\s]*:[$;\s]*|)*[$;\s]*\bdefault[$;\s]*:[$;\s]*;/g) {
|
|
my $cnt = statement_rawlines($stat);
|
|
my $herectx = get_stat_here($linenr, $cnt, $here);
|
|
|
|
WARN("DEFAULT_NO_BREAK",
|
|
"switch default: should use break\n" . $herectx);
|
|
}
|
|
|
|
# check for return codes on error paths
|
|
if ($line =~ /\breturn\s+-\d+/) {
|
|
ERROR("NO_ERROR_CODE",
|
|
"illegal return value, please use an error code\n" . $herecurr);
|
|
}
|
|
|
|
# check for gcc specific __FUNCTION__
|
|
if ($line =~ /\b__FUNCTION__\b/) {
|
|
if (WARN("USE_FUNC",
|
|
"__func__ should be used instead of gcc specific __FUNCTION__\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\b__FUNCTION__\b/__func__/g;
|
|
}
|
|
}
|
|
|
|
# check for uses of __DATE__, __TIME__, __TIMESTAMP__
|
|
while ($line =~ /\b(__(?:DATE|TIME|TIMESTAMP)__)\b/g) {
|
|
ERROR("DATE_TIME",
|
|
"Use of the '$1' macro makes the build non-deterministic\n" . $herecurr);
|
|
}
|
|
|
|
# check for use of yield()
|
|
if ($line =~ /\byield\s*\(\s*\)/) {
|
|
WARN("YIELD",
|
|
"Using yield() is generally wrong. See yield() kernel-doc (sched/core.c)\n" . $herecurr);
|
|
}
|
|
|
|
# check for comparisons against true and false
|
|
if ($line =~ /\+\s*(.*?)\b(true|false|$Lval)\s*(==|\!=)\s*(true|false|$Lval)\b(.*)$/i) {
|
|
my $lead = $1;
|
|
my $arg = $2;
|
|
my $test = $3;
|
|
my $otype = $4;
|
|
my $trail = $5;
|
|
my $op = "!";
|
|
|
|
($arg, $otype) = ($otype, $arg) if ($arg =~ /^(?:true|false)$/i);
|
|
|
|
my $type = lc($otype);
|
|
if ($type =~ /^(?:true|false)$/) {
|
|
if (("$test" eq "==" && "$type" eq "true") ||
|
|
("$test" eq "!=" && "$type" eq "false")) {
|
|
$op = "";
|
|
}
|
|
|
|
CHK("BOOL_COMPARISON",
|
|
"Using comparison to $otype is error prone\n" . $herecurr);
|
|
|
|
## maybe suggesting a correct construct would better
|
|
## "Using comparison to $otype is error prone. Perhaps use '${lead}${op}${arg}${trail}'\n" . $herecurr);
|
|
|
|
}
|
|
}
|
|
|
|
# check for bool bitfields
|
|
if ($sline =~ /^.\s+bool\s*$Ident\s*:\s*\d+\s*;/) {
|
|
WARN("BOOL_BITFIELD",
|
|
"Avoid using bool as bitfield. Prefer bool bitfields as unsigned int or u<8|16|32>\n" . $herecurr);
|
|
}
|
|
|
|
# check for semaphores initialized locked
|
|
if ($line =~ /^.\s*sema_init.+,\W?0\W?\)/) {
|
|
WARN("CONSIDER_COMPLETION",
|
|
"consider using a completion\n" . $herecurr);
|
|
}
|
|
|
|
# recommend kstrto* over simple_strto* and strict_strto*
|
|
if ($line =~ /\b((simple|strict)_(strto(l|ll|ul|ull)))\s*\(/) {
|
|
WARN("CONSIDER_KSTRTO",
|
|
"$1 is obsolete, use k$3 instead\n" . $herecurr);
|
|
}
|
|
|
|
# check for __initcall(), use device_initcall() explicitly or more appropriate function please
|
|
if ($line =~ /^.\s*__initcall\s*\(/) {
|
|
WARN("USE_DEVICE_INITCALL",
|
|
"please use device_initcall() or more appropriate function instead of __initcall() (see include/linux/init.h)\n" . $herecurr);
|
|
}
|
|
|
|
# check for various structs that are normally const (ops, kgdb, device_tree)
|
|
# and avoid what seem like struct definitions 'struct foo {'
|
|
if ($line !~ /\bconst\b/ &&
|
|
$line =~ /\bstruct\s+($const_structs)\b(?!\s*\{)/) {
|
|
WARN("CONST_STRUCT",
|
|
"struct $1 should normally be const\n" . $herecurr);
|
|
}
|
|
|
|
# use of NR_CPUS is usually wrong
|
|
# ignore definitions of NR_CPUS and usage to define arrays as likely right
|
|
if ($line =~ /\bNR_CPUS\b/ &&
|
|
$line !~ /^.\s*\s*#\s*if\b.*\bNR_CPUS\b/ &&
|
|
$line !~ /^.\s*\s*#\s*define\b.*\bNR_CPUS\b/ &&
|
|
$line !~ /^.\s*$Declare\s.*\[[^\]]*NR_CPUS[^\]]*\]/ &&
|
|
$line !~ /\[[^\]]*\.\.\.[^\]]*NR_CPUS[^\]]*\]/ &&
|
|
$line !~ /\[[^\]]*NR_CPUS[^\]]*\.\.\.[^\]]*\]/)
|
|
{
|
|
WARN("NR_CPUS",
|
|
"usage of NR_CPUS is often wrong - consider using cpu_possible(), num_possible_cpus(), for_each_possible_cpu(), etc\n" . $herecurr);
|
|
}
|
|
|
|
# Use of __ARCH_HAS_<FOO> or ARCH_HAVE_<BAR> is wrong.
|
|
if ($line =~ /\+\s*#\s*define\s+((?:__)?ARCH_(?:HAS|HAVE)\w*)\b/) {
|
|
ERROR("DEFINE_ARCH_HAS",
|
|
"#define of '$1' is wrong - use Kconfig variables or standard guards instead\n" . $herecurr);
|
|
}
|
|
|
|
# likely/unlikely comparisons similar to "(likely(foo) > 0)"
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
$line =~ /\b((?:un)?likely)\s*\(\s*$FuncArg\s*\)\s*$Compare/) {
|
|
WARN("LIKELY_MISUSE",
|
|
"Using $1 should generally have parentheses around the comparison\n" . $herecurr);
|
|
}
|
|
|
|
# whine mightly about in_atomic
|
|
if ($line =~ /\bin_atomic\s*\(/) {
|
|
if ($realfile =~ m@^drivers/@) {
|
|
ERROR("IN_ATOMIC",
|
|
"do not use in_atomic in drivers\n" . $herecurr);
|
|
} elsif ($realfile !~ m@^kernel/@) {
|
|
WARN("IN_ATOMIC",
|
|
"use of in_atomic() is incorrect outside core kernel code\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# check for mutex_trylock_recursive usage
|
|
if ($line =~ /mutex_trylock_recursive/) {
|
|
ERROR("LOCKING",
|
|
"recursive locking is bad, do not use this ever.\n" . $herecurr);
|
|
}
|
|
|
|
# check for lockdep_set_novalidate_class
|
|
if ($line =~ /^.\s*lockdep_set_novalidate_class\s*\(/ ||
|
|
$line =~ /__lockdep_no_validate__\s*\)/ ) {
|
|
if ($realfile !~ m@^kernel/lockdep@ &&
|
|
$realfile !~ m@^include/linux/lockdep@ &&
|
|
$realfile !~ m@^drivers/base/core@) {
|
|
ERROR("LOCKDEP",
|
|
"lockdep_no_validate class is reserved for device->mutex.\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
if ($line =~ /debugfs_create_\w+.*\b$mode_perms_world_writable\b/ ||
|
|
$line =~ /DEVICE_ATTR.*\b$mode_perms_world_writable\b/) {
|
|
WARN("EXPORTED_WORLD_WRITABLE",
|
|
"Exporting world writable files is usually an error. Consider more restrictive permissions.\n" . $herecurr);
|
|
}
|
|
|
|
# check for DEVICE_ATTR uses that could be DEVICE_ATTR_<FOO>
|
|
# and whether or not function naming is typical and if
|
|
# DEVICE_ATTR permissions uses are unusual too
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$stat =~ /\bDEVICE_ATTR\s*\(\s*(\w+)\s*,\s*\(?\s*(\s*(?:${multi_mode_perms_string_search}|0[0-7]{3,3})\s*)\s*\)?\s*,\s*(\w+)\s*,\s*(\w+)\s*\)/) {
|
|
my $var = $1;
|
|
my $perms = $2;
|
|
my $show = $3;
|
|
my $store = $4;
|
|
my $octal_perms = perms_to_octal($perms);
|
|
if ($show =~ /^${var}_show$/ &&
|
|
$store =~ /^${var}_store$/ &&
|
|
$octal_perms eq "0644") {
|
|
if (WARN("DEVICE_ATTR_RW",
|
|
"Use DEVICE_ATTR_RW\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\bDEVICE_ATTR\s*\(\s*$var\s*,\s*\Q$perms\E\s*,\s*$show\s*,\s*$store\s*\)/DEVICE_ATTR_RW(${var})/;
|
|
}
|
|
} elsif ($show =~ /^${var}_show$/ &&
|
|
$store =~ /^NULL$/ &&
|
|
$octal_perms eq "0444") {
|
|
if (WARN("DEVICE_ATTR_RO",
|
|
"Use DEVICE_ATTR_RO\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\bDEVICE_ATTR\s*\(\s*$var\s*,\s*\Q$perms\E\s*,\s*$show\s*,\s*NULL\s*\)/DEVICE_ATTR_RO(${var})/;
|
|
}
|
|
} elsif ($show =~ /^NULL$/ &&
|
|
$store =~ /^${var}_store$/ &&
|
|
$octal_perms eq "0200") {
|
|
if (WARN("DEVICE_ATTR_WO",
|
|
"Use DEVICE_ATTR_WO\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\bDEVICE_ATTR\s*\(\s*$var\s*,\s*\Q$perms\E\s*,\s*NULL\s*,\s*$store\s*\)/DEVICE_ATTR_WO(${var})/;
|
|
}
|
|
} elsif ($octal_perms eq "0644" ||
|
|
$octal_perms eq "0444" ||
|
|
$octal_perms eq "0200") {
|
|
my $newshow = "$show";
|
|
$newshow = "${var}_show" if ($show ne "NULL" && $show ne "${var}_show");
|
|
my $newstore = $store;
|
|
$newstore = "${var}_store" if ($store ne "NULL" && $store ne "${var}_store");
|
|
my $rename = "";
|
|
if ($show ne $newshow) {
|
|
$rename .= " '$show' to '$newshow'";
|
|
}
|
|
if ($store ne $newstore) {
|
|
$rename .= " '$store' to '$newstore'";
|
|
}
|
|
WARN("DEVICE_ATTR_FUNCTIONS",
|
|
"Consider renaming function(s)$rename\n" . $herecurr);
|
|
} else {
|
|
WARN("DEVICE_ATTR_PERMS",
|
|
"DEVICE_ATTR unusual permissions '$perms' used\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
# Mode permission misuses where it seems decimal should be octal
|
|
# This uses a shortcut match to avoid unnecessary uses of a slow foreach loop
|
|
# o Ignore module_param*(...) uses with a decimal 0 permission as that has a
|
|
# specific definition of not visible in sysfs.
|
|
# o Ignore proc_create*(...) uses with a decimal 0 permission as that means
|
|
# use the default permissions
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
defined $stat &&
|
|
$line =~ /$mode_perms_search/) {
|
|
foreach my $entry (@mode_permission_funcs) {
|
|
my $func = $entry->[0];
|
|
my $arg_pos = $entry->[1];
|
|
|
|
my $lc = $stat =~ tr@\n@@;
|
|
$lc = $lc + $linenr;
|
|
my $stat_real = get_stat_real($linenr, $lc);
|
|
|
|
my $skip_args = "";
|
|
if ($arg_pos > 1) {
|
|
$arg_pos--;
|
|
$skip_args = "(?:\\s*$FuncArg\\s*,\\s*){$arg_pos,$arg_pos}";
|
|
}
|
|
my $test = "\\b$func\\s*\\(${skip_args}($FuncArg(?:\\|\\s*$FuncArg)*)\\s*[,\\)]";
|
|
if ($stat =~ /$test/) {
|
|
my $val = $1;
|
|
$val = $6 if ($skip_args ne "");
|
|
if (!($func =~ /^(?:module_param|proc_create)/ && $val eq "0") &&
|
|
(($val =~ /^$Int$/ && $val !~ /^$Octal$/) ||
|
|
($val =~ /^$Octal$/ && length($val) ne 4))) {
|
|
ERROR("NON_OCTAL_PERMISSIONS",
|
|
"Use 4 digit octal (0777) not decimal permissions\n" . "$here\n" . $stat_real);
|
|
}
|
|
if ($val =~ /^$Octal$/ && (oct($val) & 02)) {
|
|
ERROR("EXPORTED_WORLD_WRITABLE",
|
|
"Exporting writable files is usually an error. Consider more restrictive permissions.\n" . "$here\n" . $stat_real);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# check for uses of S_<PERMS> that could be octal for readability
|
|
while ($line =~ m{\b($multi_mode_perms_string_search)\b}g) {
|
|
my $oval = $1;
|
|
my $octal = perms_to_octal($oval);
|
|
if (WARN("SYMBOLIC_PERMS",
|
|
"Symbolic permissions '$oval' are not preferred. Consider using octal permissions '$octal'.\n" . $herecurr) &&
|
|
$fix) {
|
|
$fixed[$fixlinenr] =~ s/\Q$oval\E/$octal/;
|
|
}
|
|
}
|
|
|
|
# validate content of MODULE_LICENSE against list from include/linux/module.h
|
|
if ($line =~ /\bMODULE_LICENSE\s*\(\s*($String)\s*\)/) {
|
|
my $extracted_string = get_quoted_string($line, $rawline);
|
|
my $valid_licenses = qr{
|
|
GPL|
|
|
GPL\ v2|
|
|
GPL\ and\ additional\ rights|
|
|
Dual\ BSD/GPL|
|
|
Dual\ MIT/GPL|
|
|
Dual\ MPL/GPL|
|
|
Proprietary
|
|
}x;
|
|
if ($extracted_string !~ /^"(?:$valid_licenses)"$/x) {
|
|
WARN("MODULE_LICENSE",
|
|
"unknown module license " . $extracted_string . "\n" . $herecurr);
|
|
}
|
|
}
|
|
}
|
|
|
|
# If we have no input at all, then there is nothing to report on
|
|
# so just keep quiet.
|
|
if ($#rawlines == -1) {
|
|
exit(0);
|
|
}
|
|
|
|
# In mailback mode only produce a report in the negative, for
|
|
# things that appear to be patches.
|
|
if ($mailback && ($clean == 1 || !$is_patch)) {
|
|
exit(0);
|
|
}
|
|
|
|
# This is not a patch, and we are are in 'no-patch' mode so
|
|
# just keep quiet.
|
|
if (!$chk_patch && !$is_patch) {
|
|
exit(0);
|
|
}
|
|
|
|
if (!$is_patch && $filename !~ /cover-letter\.patch$/) {
|
|
ERROR("NOT_UNIFIED_DIFF",
|
|
"Does not appear to be a unified-diff format patch\n");
|
|
}
|
|
if ($is_patch && $has_commit_log && $chk_signoff && $signoff == 0) {
|
|
ERROR("MISSING_SIGN_OFF",
|
|
"Missing Signed-off-by: line(s)\n");
|
|
}
|
|
|
|
print report_dump();
|
|
if ($summary && !($clean == 1 && $quiet == 1)) {
|
|
print "$filename " if ($summary_file);
|
|
print "total: $cnt_error errors, $cnt_warn warnings, " .
|
|
(($check)? "$cnt_chk checks, " : "") .
|
|
"$cnt_lines lines checked\n";
|
|
}
|
|
|
|
if ($quiet == 0) {
|
|
# If there were any defects found and not already fixing them
|
|
if (!$clean and !$fix) {
|
|
print << "EOM"
|
|
|
|
NOTE: For some of the reported defects, checkpatch may be able to
|
|
mechanically convert to the typical style using --fix or --fix-inplace.
|
|
EOM
|
|
}
|
|
# If there were whitespace errors which cleanpatch can fix
|
|
# then suggest that.
|
|
if ($rpt_cleaners) {
|
|
$rpt_cleaners = 0;
|
|
print << "EOM"
|
|
|
|
NOTE: Whitespace errors detected.
|
|
You may wish to use scripts/cleanpatch or scripts/cleanfile
|
|
EOM
|
|
}
|
|
}
|
|
|
|
if ($clean == 0 && $fix &&
|
|
("@rawlines" ne "@fixed" ||
|
|
$#fixed_inserted >= 0 || $#fixed_deleted >= 0)) {
|
|
my $newfile = $filename;
|
|
$newfile .= ".EXPERIMENTAL-checkpatch-fixes" if (!$fix_inplace);
|
|
my $linecount = 0;
|
|
my $f;
|
|
|
|
@fixed = fix_inserted_deleted_lines(\@fixed, \@fixed_inserted, \@fixed_deleted);
|
|
|
|
open($f, '>', $newfile)
|
|
or die "$P: Can't open $newfile for write\n";
|
|
foreach my $fixed_line (@fixed) {
|
|
$linecount++;
|
|
if ($file) {
|
|
if ($linecount > 3) {
|
|
$fixed_line =~ s/^\+//;
|
|
print $f $fixed_line . "\n";
|
|
}
|
|
} else {
|
|
print $f $fixed_line . "\n";
|
|
}
|
|
}
|
|
close($f);
|
|
|
|
if (!$quiet) {
|
|
print << "EOM";
|
|
|
|
Wrote EXPERIMENTAL --fix correction(s) to '$newfile'
|
|
|
|
Do _NOT_ trust the results written to this file.
|
|
Do _NOT_ submit these changes without inspecting them for correctness.
|
|
|
|
This EXPERIMENTAL file is simply a convenience to help rewrite patches.
|
|
No warranties, expressed or implied...
|
|
EOM
|
|
}
|
|
}
|
|
|
|
if ($quiet == 0) {
|
|
print "\n";
|
|
if ($clean == 1) {
|
|
print "$vname has no obvious style problems and is ready for submission.\n";
|
|
} else {
|
|
print "$vname has style problems, please review.\n";
|
|
}
|
|
}
|
|
return $clean;
|
|
}
|