Files
kernel_samsung_a71/kernel/workqueue.c
Prasad Sodagudi ce8f835b83 Merge remote-tracking branch 'origin/tmp-2bd6bf0' into msm-next
* origin/tmp-2bd6bf0:
  Linux 4.14-rc1
  firmware: Restore support for built-in firmware
  mlxsw: spectrum_router: Only handle IPv4 and IPv6 events
  Documentation: link in networking docs
  tcp: fix data delivery rate
  bpf/verifier: reject BPF_ALU64|BPF_END
  sctp: do not mark sk dumped when inet_sctp_diag_fill returns err
  sctp: fix an use-after-free issue in sctp_sock_dump
  netvsc: increase default receive buffer size
  tcp: update skb->skb_mstamp more carefully
  net: ipv4: fix l3slave check for index returned in IP_PKTINFO
  net: smsc911x: Quieten netif during suspend
  net: systemport: Fix 64-bit stats deadlock
  net: vrf: avoid gcc-4.6 warning
  qed: remove unnecessary call to memset
  Input: i8042 - add Gigabyte P57 to the keyboard reset table
  kvm: nVMX: Handle deferred early VMLAUNCH/VMRESUME failure properly
  kvm: vmx: Handle VMLAUNCH/VMRESUME failure properly
  kvm: nVMX: Remove nested_vmx_succeed after successful VM-entry
  kvm,mips: Fix potential swait_active() races
  kvm,powerpc: Serialize wq active checks in ops->vcpu_kick
  kvm: Serialize wq active checks in kvm_vcpu_wake_up()
  kvm,x86: Fix apf_task_wake_one() wq serialization
  kvm,lapic: Justify use of swait_active()
  kvm,async_pf: Use swq_has_sleeper()
  sched/wait: Add swq_has_sleeper()
  KVM: VMX: Do not BUG() on out-of-bounds guest IRQ
  KVM: Don't accept obviously wrong gsi values via KVM_IRQFD
  nios2: time: Read timer in get_cycles only if initialized
  nios2: add earlycon support to 3c120 devboard DTS
  kvm: nVMX: Don't allow L2 to access the hardware CR8
  Revert "PCI: Avoid race while enabling upstream bridges"
  vfs: constify path argument to kernel_read_file_from_path
  powerpc: Fix handling of alignment interrupt on dcbz instruction
  firmware: delete in-kernel firmware
  orangefs: Adjust three checks for null pointers
  orangefs: Use kcalloc() in orangefs_prepare_cdm_array()
  orangefs: Delete error messages for a failed memory allocation in five functions
  orangefs: constify xattr_handler structure
  orangefs: don't call filemap_write_and_wait from fsync
  orangefs: off by ones in xattr size checks
  orangefs: documentation clean up
  orangefs: react properly to posix_acl_update_mode's aftermath.
  orangefs: Don't clear SGID when inheriting ACLs
  tg3: clean up redundant initialization of tnapi
  sched/wait: Introduce wakeup boomark in wake_up_page_bit
  sched/wait: Break up long wake list walk
  tls: make tls_sw_free_resources static
  KVM: trace events: update list of exit reasons
  KVM: async_pf: Fix #DF due to inject "Page not Present" and "Page Ready" exceptions simultaneously
  i2c: i2c-stm32f7: add driver
  i2c: i2c-stm32f4: use generic definition of speed enum
  dt-bindings: i2c-stm32: Document the STM32F7 I2C bindings
  KVM: X86: Don't block vCPU if there is pending exception
  KVM: SVM: Add irqchip_split() checks before enabling AVIC
  dmi: Mark all struct dmi_system_id instances const
  mm, page_owner: skip unnecessary stack_trace entries
  arm64: stacktrace: avoid listing stacktrace functions in stacktrace
  mm: treewide: remove GFP_TEMPORARY allocation flag
  IB/mlx4: fix sprintf format warning
  fscache: fix fscache_objlist_show format processing
  lib/test_bitmap.c: use ULL suffix for 64-bit constants
  procfs: remove unused variable
  drivers/media/cec/cec-adap.c: fix build with gcc-4.4.4
  idr: remove WARN_ON_ONCE() when trying to replace negative ID
  sctp: potential read out of bounds in sctp_ulpevent_type_enabled()
  i2c: altera: Add Altera I2C Controller driver
  dt-bindings: i2c: Add Altera I2C Controller
  MAINTAINERS: review Renesas DT bindings as well
  um: return negative in tuntap_open_tramp()
  um: remove a stray tab
  um: Use relative modversions with LD_SCRIPT_DYN
  um: link vmlinux with -no-pie
  um: Fix CONFIG_GCOV for modules.
  Fix minor typos and grammar in UML start_up help
  um: defconfig: Cleanup from old Kconfig options
  net_sched: gen_estimator: fix scaling error in bytes/packets samples
  nfp: wait for the NSP resource to appear on boot
  nfp: wait for board state before talking to the NSP
  nfp: add whitelist of supported flow dissector
  um: Fix FP register size for XSTATE/XSAVE
  UBI: Fix two typos in comments
  ubi: fastmap: fix spelling mistake: "invalidiate" -> "invalidate"
  ubi: pr_err() strings should end with newlines
  ubi: pr_err() strings should end with newlines
  ubi: pr_err() strings should end with newlines
  Fix up MAINTAINERS file sorting
  net: sched: fix use-after-free in tcf_action_destroy and tcf_del_walker
  KVM: Add struct kvm_vcpu pointer parameter to get_enable_apicv()
  KVM: SVM: Refactor AVIC vcpu initialization into avic_init_vcpu()
  be2net: fix TSO6/GSO issue causing TX-stall on Lancer/BEx
  KVM: x86: fix clang build
  KVM: fix rcu warning on VM_CREATE errors
  KVM: x86: Fix immediate_exit handling for uninitialized AP
  KVM: x86: Fix handling of pending signal on uninitialized AP
  KVM: SVM: Add a missing 'break' statement
  KVM: x86: Remove .get_pkru() from kvm_x86_ops
  x86/hyper-v: Remove duplicated HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED definition
  x86/hyper-V: Allocate the IDT entry early in boot
  paravirt: Switch maintainer
  x86/paravirt: Remove no longer used paravirt functions
  x86/mm/64: Initialize CR4.PCIDE early
  x86/hibernate/64: Mask off CR3's PCID bits in the saved CR3
  x86/mm: Get rid of VM_BUG_ON in switch_tlb_irqs_off()
  w90p910_ether: include linux/interrupt.h
  net: bonding: fix tlb_dynamic_lb default value
  ip6_tunnel: fix ip6 tunnel lookup in collect_md mode
  ip_tunnel: fix ip tunnel lookup in collect_md mode
  mlxsw: spectrum: Prevent mirred-related crash on removal
  net_sched: carefully handle tcf_block_put()
  net_sched: fix reference counting of tc filter chain
  net_sched: get rid of tcfa_rcu
  tcp/dccp: remove reqsk_put() from inet_child_forget()
  openvswitch: Fix an error handling path in 'ovs_nla_init_match_and_action()'
  smsc95xx: Configure pause time to 0xffff when tx flow control enabled
  xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present
  drm/amdgpu: revert "fix deadlock of reservation between cs and gpu reset v2"
  Input: xpad - validate USB endpoint type during probe
  f2fs: hurry up to issue discard after io interruption
  f2fs: fix to show correct discard_granularity in sysfs
  f2fs: detect dirty inode in evict_inode
  perf stat: Wait for the correct child
  perf tools: Support running perf binaries with a dash in their name
  sched/debug: Add debugfs knob for "sched_debug"
  sched/core: WARN() when migrating to an offline CPU
  sched/fair: Plug hole between hotplug and active_load_balance()
  sched/fair: Avoid newidle balance for !active CPUs
  perf config: Check not only section->from_system_config but also item's
  perf ui progress: Fix progress update
  perf ui progress: Make sure we always define step value
  perf tools: Open perf.data with O_CLOEXEC flag
  tools lib api: Fix make DEBUG=1 build
  perf tests: Fix compile when libunwind's unwind.h is available
  tools include linux: Guard against redefinition of some macros
  ovl: fix false positive ESTALE on lookup
  kbuild: buildtar: do not print successful message if tar returns error
  kbuild: buildtar: fix tar error when CONFIG_MODULES is disabled
  fuse: getattr cleanup
  fuse: honor iocb sync flags on write
  fuse: allow server to run in different pid_ns
  pinctrl/amd: save pin registers over suspend/resume
  ALSA: seq: Cancel pending autoload work at unbinding device
  pinctrl: armada-37xx: Fix gpio interrupt setup
  pinctrl: sprd: fix off by one bugs
  pinctrl: sprd: check for allocation failure
  pinctrl: sprd: Restrict PINCTRL_SPRD to ARCH_SPRD or COMPILE_TEST
  pinctrl: sprd: fix build errors and dependencies
  pinctrl: sprd: make three local functions static
  pinctrl: uniphier: include <linux/build_bug.h> instead of <linux/bug.h>
  ALSA: firewire: Use common error handling code in snd_motu_stream_start_duplex()
  KVM: PPC: Book3S HV: Fix bug causing host SLB to be restored incorrectly
  KVM: PPC: Book3S HV: Hold kvm->lock around call to kvmppc_update_lpcr
  KVM: PPC: Book3S HV: Don't access XIVE PIPR register using byte accesses
  f2fs: clear radix tree dirty tag of pages whose dirty flag is cleared
  NFS: various changes relating to reporting IO errors.
  NFS: Add static NFS I/O tracepoints
  pNFS: Use the standard I/O stateid when calling LAYOUTGET
  f2fs: speed up gc_urgent mode with SSR
  f2fs: better to wait for fstrim completion
  block: directly insert blk-mq request from blk_insert_cloned_request()
  net/sched: fix pointer check in gen_handle
  ipv6: sr: remove duplicate routing header type check
  xdp: implement xdp_redirect_map for generic XDP
  perf/bpf: fix a clang compilation issue
  net: bonding: Fix transmit load balancing in balance-alb mode if specified by sysfs
  Input: ucb1400_ts - fix suspend and resume handling
  Input: edt-ft5x06 - fix access to non-existing register
  Input: elantech - make arrays debounce_packet static, reduces object code size
  Input: surface3_spi - make const array header static, reduces object code size
  Input: goodix - add support for capacitive home button
  hv_netvsc: avoid unnecessary wakeups on subchannel creation
  hv_netvsc: fix deadlock on hotplug
  mm/backing-dev.c: fix an error handling path in 'cgwb_create()'
  mlxsw: spectrum: Fix EEPROM access in case of SFP/SFP+
  string.h: un-fortify memcpy_and_pad
  nvme-pci: implement the HMB entry number and size limitations
  nvme-pci: propagate (some) errors from host memory buffer setup
  nvme-pci: use appropriate initial chunk size for HMB allocation
  nvme-pci: fix host memory buffer allocation fallback
  nvme: fix lightnvm check
  block: fix integer overflow in __blkdev_sectors_to_bio_pages()
  block: sed-opal: Set MBRDone on S3 resume path if TPER is MBREnabled
  block: tolerate tracing of NULL bio
  dax: remove the pmem_dax_ops->flush abstraction
  dm integrity: use init_completion instead of COMPLETION_INITIALIZER_ONSTACK
  dm integrity: make blk_integrity_profile structure const
  dm integrity: do not check integrity for failed read operations
  dm log writes: fix >512b sectorsize support
  dm log writes: don't use all the cpu while waiting to log blocks
  x86/cpu: Remove unused and undefined __generic_processor_info() declaration
  sched/fair: Fix nuisance kernel-doc warning
  Revert "firmware: add sanity check on shutdown/suspend"
  openrisc: add forward declaration for struct vm_area_struct
  m68k: Add braces to __pmd(x) initializer to kill compiler warning
  x86/mm/64: Fix an incorrect warning with CONFIG_DEBUG_VM=y, !PCID
  sparc64: Handle additional cases of no fault loads
  sparc64: speed up etrap/rtrap on NG2 and later processors
  Bluetooth: Properly check L2CAP config option output buffer length
  net: qualcomm: rmnet: Fix a double free
  NFS: Count the bytes of skipped subrequests in nfs_lock_and_join_requests()
  NFS: Don't hold the group lock when calling nfs_release_request()
  watchdog: mei_wdt: constify mei_cl_device_id
  watchdog: sp805: constify amba_id
  watchdog: ziirave: constify i2c_device_id
  watchdog: sc1200: constify pnp_device_id
  dt-bindings: watchdog: renesas-wdt: Add support for the r8a77995 wdt
  watchdog: renesas_wdt: update copyright dates
  watchdog: renesas_wdt: make 'clk' a variable local to probe()
  watchdog: renesas_wdt: consistently use RuntimePM for clock management
  watchdog: aspeed: Support configuration of external signal properties
  dt-bindings: watchdog: aspeed: External reset signal properties
  drivers/watchdog: Add optional ASPEED device tree properties
  drivers/watchdog: ASPEED reference dev tree properties for config
  watchdog: da9063_wdt: Simplify by removing unneeded struct...
  watchdog: bcm7038: Check the return value from clk_prepare_enable()
  watchdog: qcom: Check for platform_get_resource() failure
  watchdog: of_xilinx_wdt: Add suspend/resume support
  watchdog: of_xilinx_wdt: Add support for reading freq via CCF
  dt-bindings: watchdog: mediatek: add support for MediaTek MT7623 and MT7622 SoC
  watchdog: max77620_wdt: constify platform_device_id
  watchdog: pcwd_usb: constify usb_device_id
  watchdog: cadence_wdt: Show information when driver is probed
  watchdog: cadence_wdt: Enable access to module parameters
  libnvdimm, btt: fix format string warnings
  watchdog: constify watchdog_ops and watchdog_info structures
  watchdog: asm9260_wdt: don't round closest with get_timeleft
  watchdog: renesas_wdt: add another divider option
  watchdog: renesas_wdt: apply better precision
  watchdog: renesas_wdt: don't round closest with get_timeleft
  watchdog: renesas_wdt: check rate also for upper limit
  watchdog: renesas_wdt: avoid (theoretical) type overflow
  watchdog: mt7621: explicitly request exclusive reset control
  watchdog: rt2880: explicitly request exclusive reset control
  watchdog: zx2967: explicitly request exclusive reset control
  watchdog: asm9260: explicitly request exclusive reset control
  watchdog: meson-wdt: add support for the watchdog on Meson8 and Meson8m2
  watchdog: w83627hf: make const array chip_name static
  watchdog: coh901327_wdt: constify watchdog_ops structure
  watchdog: stm32_iwdg: constify watchdog_ops structure
  watchdog: it87_wdt: constify watchdog_ops structure
  watchdog: ts72xx_wdt: constify watchdog_ops structure
  remove gperf left-overs from build system
  NFS: Remove pnfs_generic_transfer_commit_list()
  NFS: nfs_lock_and_join_requests and nfs_scan_commit_list can deadlock
  watchdog: Revert "iTCO_wdt: all versions count down twice"
  ARM: 8691/1: Export save_stack_trace_tsk()
  bpf: make error reporting in bpf_warn_invalid_xdp_action more clear
  Revert "mdio_bus: Remove unneeded gpiod NULL check"
  bpf: devmap, use cond_resched instead of cpu_relax
  bpf: add support for sockmap detach programs
  net: rcu lock and preempt disable missing around generic xdp
  bpf: don't select potentially stale ri->map from buggy xdp progs
  net: tulip: Constify tulip_tbl
  net: ethernet: ti: netcp_core: no need in netif_napi_del
  davicom: Display proper debug level up to 6
  net: phy: sfp: rename dt properties to match the binding
  dt-binding: net: sfp binding documentation
  dt-bindings: add SFF vendor prefix
  dt-bindings: net: don't confuse with generic PHY property
  ip6_tunnel: fix setting hop_limit value for ipv6 tunnel
  ip_tunnel: fix setting ttl and tos value in collect_md mode
  squashfs: Add zstd support
  NFS: Fix 2 use after free issues in the I/O code
  ipc: optimize semget/shmget/msgget for lots of keys
  ipc/sem: play nicer with large nsops allocations
  ipc/sem: drop sem_checkid helper
  ipc: convert kern_ipc_perm.refcount from atomic_t to refcount_t
  ipc: convert sem_undo_list.refcnt from atomic_t to refcount_t
  ipc: convert ipc_namespace.count from atomic_t to refcount_t
  kcov: support compat processes
  sh: defconfig: cleanup from old Kconfig options
  mn10300: defconfig: cleanup from old Kconfig options
  m32r: defconfig: cleanup from old Kconfig options
  drivers/pps: use surrounding "if PPS" to remove numerous dependency checks
  drivers/pps: aesthetic tweaks to PPS-related content
  cpumask: make cpumask_next() out-of-line
  kmod: move #ifdef CONFIG_MODULES wrapper to Makefile
  kmod: split off umh headers into its own file
  MAINTAINERS: clarify kmod is just a kernel module loader
  kmod: split out umh code into its own file
  test_kmod: flip INT checks to be consistent
  test_kmod: remove paranoid UINT_MAX check on uint range processing
  vfat: deduplicate hex2bin()
  autofs: use unsigned int/long instead of uint/ulong for ioctl args
  autofs: drop wrong comment
  autofs: use AUTOFS_DEV_IOCTL_SIZE
  autofs: non functional header inclusion cleanup
  autofs: remove unused AUTOFS_IOC_EXPIRE_DIRECT/INDIRECT
  autofs: make dev ioctl version and ismountpoint user accessible
  autofs: make disc device user accessible
  autofs: fix AT_NO_AUTOMOUNT not being honored
  init/main.c: extract early boot entropy from the passed cmdline
  init: move stack canary initialization after setup_arch
  binfmt_flat: delete two error messages for a failed memory allocation in decompress_exec()
  checkpatch: add 6 missing types to --list-types
  checkpatch: rename variables to avoid confusion
  checkpatch: fix typo in comment
  checkpatch: add --strict check for ifs with unnecessary parentheses
  lib/oid_registry.c: X.509: fix the buffer overflow in the utility function for OID string
  radix-tree: must check __radix_tree_preload() return value
  lib/cmdline.c: remove meaningless comment
  lib/string.c: check for kmalloc() failure
  lib/rhashtable: fix comment on locks_mul default value
  bitmap: introduce BITMAP_FROM_U64()
  lib/test_bitmap.c: add test for bitmap_parselist()
  lib/bitmap.c: make bitmap_parselist() thread-safe and much faster
  lib: add test module for CONFIG_DEBUG_VIRTUAL
  lib/hexdump.c: return -EINVAL in case of error in hex2bin()
  block/cfq: cache rightmost rb_node
  mem/memcg: cache rightmost node
  fs/epoll: use faster rb_first_cached()
  procfs: use faster rb_first_cached()
  lib/interval-tree: correct comment wrt generic flavor
  lib/interval_tree: fast overlap detection
  block/cfq: replace cfq_rb_root leftmost caching
  locking/rtmutex: replace top-waiter and pi_waiters leftmost caching
  sched/deadline: replace earliest dl and rq leftmost caching
  sched/fair: replace cfs_rq->rb_leftmost
  lib/rbtree_test.c: support rb_root_cached
  lib/rbtree_test.c: add (inorder) traversal test
  lib/rbtree_test.c: make input module parameters
  rbtree: add some additional comments for rebalancing cases
  rbtree: optimize root-check during rebalancing loop
  rbtree: cache leftmost node internally
  bitops: avoid integer overflow in GENMASK(_ULL)
  include: warn for inconsistent endian config definition
  arch/microblaze: add choice for endianness and update Makefile
  arch: define CPU_BIG_ENDIAN for all fixed big endian archs
  treewide: make "nr_cpu_ids" unsigned
  vga: optimise console scrolling
  drivers/scsi/sym53c8xx_2/sym_hipd.c: convert to use memset32
  drivers/block/zram/zram_drv.c: convert to using memset_l
  alpha: add support for memset16
  ARM: implement memset32 & memset64
  x86: implement memset16, memset32 & memset64
  lib/string.c: add testcases for memset16/32/64
  lib/string.c: add multibyte memset functions
  linux/kernel.h: move DIV_ROUND_DOWN_ULL() macro
  fs, proc: unconditional cond_resched when reading smaps
  proc: uninline proc_create()
  fs, proc: remove priv argument from is_stack
  mm/mempolicy.c: remove BUG_ON() checks for VMA inside mpol_misplaced()
  mm/swapfile.c: fix swapon frontswap_map memory leak on error
  mm: kvfree the swap cluster info if the swap file is unsatisfactory
  mm/page_alloc.c: apply gfp_allowed_mask before the first allocation attempt
  tools/testing/selftests/kcmp/kcmp_test.c: add KCMP_EPOLL_TFD testing
  mm/sparse.c: fix typo in online_mem_sections
  mm/memory.c: fix mem_cgroup_oom_disable() call missing
  mm: memcontrol: use per-cpu stocks for socket memory uncharging
  mm: fadvise: avoid fadvise for fs without backing device
  mm/zsmalloc.c: change stat type parameter to int
  mm/mlock.c: use page_zone() instead of page_zone_id()
  mm: consider the number in local CPUs when reading NUMA stats
  mm: update NUMA counter threshold size
  mm: change the call sites of numa statistics items
  mm/memory.c: remove reduntant check for write access
  userfaultfd: non-cooperative: closing the uffd without triggering SIGBUS
  mm: remove useless vma parameter to offset_il_node
  mm/hmm: fix build when HMM is disabled
  mm/hmm: avoid bloating arch that do not make use of HMM
  mm/hmm: add new helper to hotplug CDM memory region
  mm/device-public-memory: device memory cache coherent with CPU
  mm/migrate: allow migrate_vma() to alloc new page on empty entry
  mm/migrate: support un-addressable ZONE_DEVICE page in migration
  mm/migrate: migrate_vma() unmap page from vma while collecting pages
  mm/migrate: new memory migration helper for use with device memory
  mm/migrate: new migrate mode MIGRATE_SYNC_NO_COPY
  mm/hmm/devmem: dummy HMM device for ZONE_DEVICE memory
  mm/hmm/devmem: device memory hotplug using ZONE_DEVICE
  mm/memcontrol: support MEMORY_DEVICE_PRIVATE
  mm/memcontrol: allow to uncharge page without using page->lru field
  mm/ZONE_DEVICE: special case put_page() for device private pages
  mm/ZONE_DEVICE: new type of ZONE_DEVICE for unaddressable memory
  mm/memory_hotplug: introduce add_pages
  mm/hmm/mirror: device page fault handler
  mm/hmm/mirror: helper to snapshot CPU page table
  mm/hmm/mirror: mirror process address space on device with HMM helpers
  mm/hmm: heterogeneous memory management (HMM for short)
  hmm: heterogeneous memory management documentation
  mm: memory_hotplug: memory hotremove supports thp migration
  mm: migrate: move_pages() supports thp migration
  mm: mempolicy: mbind and migrate_pages support thp migration
  mm: soft-dirty: keep soft-dirty bits over thp migration
  mm: thp: check pmd migration entry in common path
  mm: thp: enable thp migration in generic path
  mm: thp: introduce CONFIG_ARCH_ENABLE_THP_MIGRATION
  mm: thp: introduce separate TTU flag for thp freezing
  mm: x86: move _PAGE_SWP_SOFT_DIRTY from bit 7 to bit 1
  mm: mempolicy: add queue_pages_required()
  ipv6: fix typo in fib6_net_exit()
  tcp: fix a request socket leak
  genksyms: fix gperf removal conversion
  RDMA/netlink: clean up message validity array initializer
  sctp: fix missing wake ups in some situations
  RDAM/netlink: Fix out-of-bound access while checking message validity
  netfilter: xt_hashlimit: fix build error caused by 64bit division
  netfilter: xt_hashlimit: alloc hashtable with right size
  netfilter: core: remove erroneous warn_on
  netfilter: nat: use keyed locks
  netfilter: nat: Revert "netfilter: nat: convert nat bysrc hash to rhashtable"
  netfilter: xtables: add scheduling opportunity in get_counters
  netfilter: nf_nat: don't bug when mapping already exists
  ipv6: fix memory leak with multiple tables during netns destruction
  kokr/memory-barriers.txt: Apply atomic_t.txt change
  kokr/doc: Update memory-barriers.txt for read-to-write dependencies
  docs-rst: don't require adjustbox anymore
  docs-rst: conf.py: only setup notice box colors if Sphinx < 1.6
  docs-rst: conf.py: remove lscape from LaTeX preamble
  s390/dasd: blk-mq conversion
  netfilter: ipvs: do not create conn for ABORT packet in sctp_conn_schedule
  netfilter: ipvs: fix the issue that sctp_conn_schedule drops non-INIT packet
  brcmfmac: feature check for multi-scheduled scan fails on bcm4345 devices
  f2fs: avoid race in between read xattr & write xattr
  f2fs: make get_lock_data_page to handle encrypted inode
  rds: Fix incorrect statistics counting
  isdn: isdnloop: fix logic error in isdnloop_sendbuf
  udp: drop head states only when all skb references are gone
  ip6_gre: update mtu properly in ip6gre_err
  net: sched: fix memleak for chain zero
  bcache: initialize dirty stripes in flash_dev_run()
  libnvdimm, btt: clean up warning and error messages
  iwlwifi: mvm: only send LEDS_CMD when the FW supports it
  fs: aio: fix the increment of aio-nr and counting against aio-max-nr
  NFS: Sync the correct byte range during synchronous writes
  PCI: xgene: Clean up whitespace
  PCI: xgene: Define XGENE_PCI_EXP_CAP and use generic PCI_EXP_RTCTL offset
  PCI: xgene: Fix platform_get_irq() error handling
  rtlwifi: btcoexist: Fix antenna selection code
  rtlwifi: btcoexist: Fix breakage of ant_sel for rtl8723be
  video/console: Update BIOS dates list for GPD win console rotation DMI quirk
  x86/mm: Make the SME mask a u64
  sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs
  ALSA: asihpi: Kill BUG_ON() usages
  ALSA: core: Use %pS printk format for direct addresses
  ALSA: ymfpci: Use common error handling code in snd_ymfpci_create()
  ALSA: ymfpci: Use common error handling code in snd_card_ymfpci_probe()
  ALSA: 6fire: Use common error handling code in usb6fire_chip_probe()
  ALSA: usx2y: Use common error handling code in submit_urbs()
  ALSA: us122l: Use common error handling code in us122l_create_card()
  ALSA: hdspm: Use common error handling code in snd_hdspm_probe()
  ALSA: rme9652: Use common code in hdsp_get_iobox_version()
  ALSA: maestro3: Use common error handling code in two functions
  genirq: Make sparse_irq_lock protect what it should protect
  sched/fair: Fix wake_affine_llc() balancing rules
  tipc: remove unnecessary call to dev_net()
  netlink: access nlk groups safely in netlink bind and getname
  netlink: fix an use-after-free issue for nlk groups
  sched: Use __qdisc_drop instead of kfree_skb in sch_prio and sch_qfq
  dt-binding: phy: don't confuse with Ethernet phy properties
  x86/mm: Document how CR4.PCIDE restore works
  x86/mm: Reinitialize TLB state on hotplug and resume
  tracing: Apply trace_clock changes to instance max buffer
  mm,fork: introduce MADV_WIPEONFORK
  x86,mpx: make mpx depend on x86-64 to free up VMA flag
  mm: add /proc/pid/smaps_rollup
  mm: hugetlb: clear target sub-page last when clearing huge page
  mm: oom: let oom_reap_task and exit_mmap run concurrently
  swap: choose swap device according to numa node
  mm: replace TIF_MEMDIE checks by tsk_is_oom_victim
  mm, oom: do not rely on TIF_MEMDIE for memory reserves access
  z3fold: use per-cpu unbuddied lists
  mm, swap: don't use VMA based swap readahead if HDD is used as swap
  mm, swap: add sysfs interface for VMA based swap readahead
  mm, swap: VMA based swap readahead
  mm, swap: fix swap readahead marking
  mm, swap: add swap readahead hit statistics
  mm/vmalloc.c: don't reinvent the wheel but use existing llist API
  mm/vmstat.c: fix wrong comment
  selftests/memfd: add memfd_create hugetlbfs selftest
  mm/shmem: add hugetlbfs support to memfd_create()
  mm, devm_memremap_pages: use multi-order radix for ZONE_DEVICE lookups
  mm/vmalloc.c: halve the number of comparisons performed in pcpu_get_vm_areas()
  mm/vmstat: fix divide error at __fragmentation_index
  mm, hugetlb: do not allocate non-migrateable gigantic pages from movable zones
  userfaultfd: provide pid in userfault msg - add feat union
  userfaultfd: provide pid in userfault msg
  userfaultfd: call userfaultfd_unmap_prep only if __split_vma succeeds
  userfaultfd: selftest: explicit failure if the SIGBUS test failed
  userfaultfd: selftest: exercise UFFDIO_COPY/ZEROPAGE -EEXIST
  userfaultfd: selftest: add tests for UFFD_FEATURE_SIGBUS feature
  mm: userfaultfd: add feature to request for a signal delivery
  mm: rename global_page_state to global_zone_page_state
  mm: shm: use new hugetlb size encoding definitions
  mm: arch: consolidate mmap hugetlb size encodings
  mm: hugetlb: define system call hugetlb size encodings in single file
  include/linux/fs.h: remove unneeded forward definition of mm_struct
  fs/sync.c: remove unnecessary NULL f_mapping check in sync_file_range
  userfaultfd: selftest: enable testing of UFFDIO_ZEROPAGE for shmem
  userfaultfd: report UFFDIO_ZEROPAGE as available for shmem VMAs
  userfaultfd: shmem: wire up shmem_mfill_zeropage_pte
  userfaultfd: mcopy_atomic: introduce mfill_atomic_pte helper
  userfaultfd: shmem: add shmem_mfill_zeropage_pte for userfaultfd support
  shmem: introduce shmem_inode_acct_block
  shmem: shmem_charge: verify max_block is not exceeded before inode update
  mm, THP, swap: add THP swapping out fallback counting
  mm, THP, swap: delay splitting THP after swapped out
  memcg, THP, swap: make mem_cgroup_swapout() support THP
  memcg, THP, swap: avoid to duplicated charge THP in swap cache
  memcg, THP, swap: support move mem cgroup charge for THP swapped out
  mm, THP, swap: support splitting THP for THP swap out
  mm: test code to write THP to swap device as a whole
  block, THP: make block_device_operations.rw_page support THP
  mm, THP, swap: don't allocate huge cluster for file backed swap device
  mm, THP, swap: make reuse_swap_page() works for THP swapped out
  mm, THP, swap: support to reclaim swap space for THP swapped out
  mm, THP, swap: support to clear swap cache flag for THP swapped out
  mm: memcontrol: use int for event/state parameter in several functions
  mm/hugetlb.c: constify attribute_group structures
  mm/huge_memory.c: constify attribute_group structures
  mm/page_idle.c: constify attribute_group structures
  mm/slub.c: constify attribute_group structures
  mm/ksm.c: constify attribute_group structures
  cgroup: revert fa06235b8e ("cgroup: reset css on destruction")
  mm, memcg: reset memory.low during memcg offlining
  mm: remove nr_pages argument from pagevec_lookup{,_range}()
  mm: use find_get_pages_range() in filemap_range_has_page()
  fs: use pagevec_lookup_range() in page_cache_seek_hole_data()
  hugetlbfs: use pagevec_lookup_range() in remove_inode_hugepages()
  ext4: use pagevec_lookup_range() in writeback code
  ext4: use pagevec_lookup_range() in ext4_find_unwritten_pgoff()
  fs: fix performance regression in clean_bdev_aliases()
  mm: implement find_get_pages_range()
  mm: make pagevec_lookup() update index
  fscache: remove unused ->now_uncached callback
  mm, vmscan: do not loop on too_many_isolated for ever
  zsmalloc: zs_page_migrate: skip unnecessary loops but not return -EBUSY if zspage is not inuse
  mm: always flush VMA ranges affected by zap_page_range
  mm/hugetlb.c: make huge_pte_offset() consistent and document behaviour
  mm/gup: make __gup_device_* require THP
  mm/mremap: fail map duplication attempts for private mappings
  mm, page_owner: don't grab zone->lock for init_pages_in_zone()
  mm, page_ext: periodically reschedule during page_ext_init()
  mm, page_owner: make init_pages_in_zone() faster
  mm, sparse, page_ext: drop ugly N_HIGH_MEMORY branches for allocations
  mm, memory_hotplug: get rid of zonelists_mutex
  mm, page_alloc: remove stop_machine from build_all_zonelists
  mm, page_alloc: simplify zonelist initialization
  mm, memory_hotplug: remove explicit build_all_zonelists from try_online_node
  mm, memory_hotplug: drop zone from build_all_zonelists
  mm, page_alloc: do not set_cpu_numa_mem on empty nodes initialization
  mm, page_alloc: remove boot pageset initialization from memory hotplug
  mm, page_alloc: rip out ZONELIST_ORDER_ZONE
  zram: add config and doc file for writeback feature
  zram: read page from backing device
  zram: write incompressible pages to backing device
  zram: identify asynchronous IO's return value
  zram: add free space management in backing device
  zram: add interface to specif backing device
  zram: rename zram_decompress_page to __zram_bvec_read
  zram: inline zram_compress
  zram: clean up duplicated codes in __zram_bvec_write
  mm, memory_hotplug: remove zone restrictions
  mm, memory_hotplug: display allowed zones in the preferred ordering
  mm/memory_hotplug: just build zonelist for newly added node
  drm/i915: wire up shrinkctl->nr_scanned
  mm: track actual nr_scanned during shrink_slab()
  mm/slub.c: add a naive detection of double free or corruption
  mm: add SLUB free list pointer obfuscation
  slub: tidy up initialization ordering
  ocfs2: clean up some dead code
  ocfs2: make ocfs2_set_acl() static
  modpost: simplify sec_name()
  dax: initialize variable pfn before using it
  dax: use PG_PMD_COLOUR instead of open coding
  dax: explain how read(2)/write(2) addresses are validated
  dax: move all DAX radix tree defs to fs/dax.c
  dax: remove DAX code from page_cache_tree_insert()
  dax: use common 4k zero page for dax mmap reads
  dax: relocate some dax functions
  mm: add vm_insert_mixed_mkwrite()
  metag/numa: remove the unused parent_node() macro
  ceph: stop on-going cached readdir if mds revokes FILE_SHARED cap
  ceph: wait on writeback after writing snapshot data
  ceph: fix capsnap dirty pages accounting
  ceph: ignore wbc->range_{start,end} when write back snapshot data
  ceph: fix "range cyclic" mode writepages
  ceph: cleanup local variables in ceph_writepages_start()
  ceph: optimize pagevec iterating in ceph_writepages_start()
  ceph: make writepage_nounlock() invalidate page that beyonds EOF
  ceph: properly get capsnap's size in get_oldest_context()
  ceph: remove stale check in ceph_invalidatepage()
  ceph: queue cap snap only when snap realm's context changes
  ceph: handle race between vmtruncate and queuing cap snap
  ceph: fix message order check in handle_cap_export()
  ceph: fix NULL pointer dereference in ceph_flush_snaps()
  ceph: adjust 36 checks for NULL pointers
  ceph: delete an unnecessary return statement in update_dentry_lease()
  ceph: ENOMEM pr_err in __get_or_create_frag() is redundant
  ceph: check negative offsets in ceph_llseek()
  ceph: more accurate statfs
  ceph: properly set snap follows for cap reconnect
  ceph: don't use CEPH_OSD_FLAG_ORDERSNAP
  ceph: include snapc in debug message of write
  ceph: make sure flushsnap messages are sent in proper order
  ceph: fix -EOLDSNAPC handling
  ceph: send LSSNAP request to auth mds of directory inode
  ceph: don't fill readdir cache for LSSNAP reply
  ceph: cleanup ceph_readdir_prepopulate()
  ceph: use errseq_t for writeback error reporting
  ceph: new cap message flags indicate if there is pending capsnap
  ceph: nuke startsync op
  rbd: silence bogus uninitialized use warning in rbd_acquire_lock()
  ceph: validate correctness of some mount options
  ceph: limit osd write size
  ceph: limit osd read size to CEPH_MSG_MAX_DATA_LEN
  ceph: remove unused cap_release_safety mount option
  drm/i915: Re-enable GTT following a device reset
  drm/i915: Annotate user relocs with __user
  loop: set physical block size to logical block size
  lockd: Delete an error message for a failed memory allocation in reclaimer()
  NFS: remove jiffies field from access cache
  NFS: flush data when locking a file to ensure cache coherence for mmap.
  SUNRPC: remove some dead code.
  NFS: don't expect errors from mempool_alloc().
  libata: zpodd: make arrays cdb static, reduces object code size
  ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme
  bcache: fix bch_hprint crash and improve output
  bcache: Update continue_at() documentation
  bcache: silence static checker warning
  bcache: fix for gc and write-back race
  bcache: increase the number of open buckets
  bcache: Correct return value for sysfs attach errors
  bcache: correct cache_dirty_target in __update_writeback_rate()
  bcache: gc does not work when triggering by manual command
  bcache: Don't reinvent the wheel but use existing llist API
  bcache: do not subtract sectors_to_gc for bypassed IO
  bcache: fix sequential large write IO bypass
  bcache: Fix leak of bdev reference
  mac80211: fix deadlock in driver-managed RX BA session start
  mac80211: Complete ampdu work schedule during session tear down
  MIPS: Refactor handling of stack pointer in get_frame_info
  MIPS: Stacktrace: Fix microMIPS stack unwinding on big endian systems
  MIPS: microMIPS: Fix decoding of swsp16 instruction
  MIPS: microMIPS: Fix decoding of addiusp instruction
  MIPS: microMIPS: Fix detection of addiusp instruction
  MIPS: Handle non word sized instructions when examining frame
  cfg80211: honor NL80211_RRF_NO_HT40{MINUS,PLUS}
  MIPS: ralink: allow NULL clock for clk_get_rate
  MIPS: Loongson 2F: allow NULL clock for clk_get_rate
  MIPS: BCM63XX: allow NULL clock for clk_get_rate
  MIPS: AR7: allow NULL clock for clk_get_rate
  MIPS: BCM63XX: fix ENETDMA_6345_MAXBURST_REG offset
  genirq/msi: Fix populating multiple interrupts
  mips: Save all registers when saving the frame
  MIPS: Add DWARF unwinding to assembly
  MIPS: Make SAVE_SOME more standard
  MIPS: Fix issues in backtraces
  MIPS: jz4780: DTS: Probe the jz4740-rtc driver from devicetree
  MIPS: Ci20: Enable RTC driver
  s390/mm: use a single lock for the fields in mm_context_t
  s390/mm: fix race on mm->context.flush_mm
  s390/mm: fix local TLB flushing vs. detach of an mm address space
  s390/zcrypt: externalize AP queue interrupt control
  s390/zcrypt: externalize AP config info query
  s390/zcrypt: externalize test AP queue
  s390/mm: use VM_BUG_ON in crst_table_[upgrade|downgrade]
  f2fs: use generic terms used for encrypted block management
  f2fs: introduce f2fs_encrypted_file for clean-up
  selftests: Enhance kselftest_harness.h to print which assert failed
  i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq
  i40e: avoid NVM acquire deadlock during NVM update
  xprtrdma: Use xprt_pin_rqst in rpcrdma_reply_handler
  drivers: net: xgene: Remove return statement from void function
  drivers: net: xgene: Configure tx/rx delay for ACPI
  drivers: net: xgene: Read tx/rx delay for ACPI
  rocker: fix kcalloc parameter order
  rds: Fix non-atomic operation on shared flag variable
  net: sched: don't use GFP_KERNEL under spin lock
  vhost_net: correctly check tx avail during rx busy polling
  net: mdio-mux: add mdio_mux parameter to mdio_mux_init()
  rxrpc: Make service connection lookup always check for retry
  net: stmmac: Delete dead code for MDIO registration
  gianfar: Fix Tx flow control deactivation
  cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6
  cxgb4: Fix pause frame count in t4_get_port_stats
  cxgb4: fix memory leak
  tun: rename generic_xdp to skb_xdp
  tun: reserve extra headroom only when XDP is set
  media: leds: as3645a: add V4L2_FLASH_LED_CLASS dependency
  svcrdma: Estimate Send Queue depth properly
  rdma core: Add rdma_rw_mr_payload()
  svcrdma: Limit RQ depth
  svcrdma: Populate tail iovec when receiving
  nfsd: Incoming xdr_bufs may have content in tail buffer
  net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping
  net: dsa: bcm_sf2: Advertise number of egress queues
  net: dsa: tag_brcm: Set output queue from skb queue mapping
  net: dsa: Allow switch drivers to indicate number of TX queues
  bridge: switchdev: Use an helper to clear forward mark
  net/mlx4_core: Use ARRAY_SIZE macro
  PCI: xilinx-nwl: Fix platform_get_irq() error handling
  flow_dissector: Add limit for number of headers to dissect
  flow_dissector: Cleanup control flow
  PCI: rockchip: Fix platform_get_irq() error handling
  PCI: altera: Fix platform_get_irq() error handling
  PCI: spear13xx: Fix platform_get_irq() error handling
  PCI: artpec6: Fix platform_get_irq() error handling
  PCI: armada8k: Fix platform_get_irq() error handling
  PCI: dra7xx: Fix platform_get_irq() error handling
  PCI: exynos: Fix platform_get_irq() error handling
  Revert "f2fs: add a new function get_ssr_cost"
  f2fs: constify super_operations
  f2fs: fix to wake up all sleeping flusher
  f2fs: avoid race in between atomic_read & atomic_inc
  f2fs: remove unneeded parameter of change_curseg
  f2fs: update i_flags correctly
  f2fs: don't check inode's checksum if it was dirtied or writebacked
  f2fs: don't need to update inode checksum for recovery
  PCI: iproc: Clean up whitespace
  PCI: iproc: Rename PCI_EXP_CAP to IPROC_PCI_EXP_CAP
  PCI: iproc: Add 500ms delay during device shutdown
  ext4: fix null pointer dereference on sbi
  drm/i915: Silence sparse by using gfp_t
  drm/i915: Add __rcu to radix tree slot pointer
  drm/i915: Fix the missing PPAT cache attributes on CNL
  soc: ti/knav_dma: include dmaengine header
  net/ncsi: fix ncsi_vlan_rx_{add,kill}_vid references
  bpf: fix numa_node validation
  tracing: Fix clear of RECORDED_TGID flag when disabling trace event
  tracing: Add barrier to trace_printk() buffer nesting modification
  KVM: arm/arm64: Support uaccess of GICC_APRn
  KVM: arm/arm64: Extract GICv3 max APRn index calculation
  KVM: arm/arm64: vITS: Drop its_ite->lpi field
  KVM: arm/arm64: vgic: constify seq_operations and file_operations
  KVM: arm/arm64: Fix guest external abort matching
  devicetree: Adjust status "ok" -> "okay" under drivers/of/
  dt-bindings: Remove "status" from examples
  nl80211: look for HT/VHT capabilities in beacon's tail
  mac80211: flush hw_roc_start work before cancelling the ROC
  mac80211: agg-tx: call drv_wake_tx_queue in proper context
  audit: update the function comments
  selinux: remove AVC init audit log message
  audit: update the audit info in MAINTAINERS
  audit: Reduce overhead using a coarse clock
  workqueue: Fix flag collision
  video/console: Add rotated LCD-panel DMI quirk for the VIOS LTH17
  media: get rid of removed DMX_GET_CAPS and DMX_SET_SOURCE leftovers
  scsi: scsi_transport_sas: select BLK_DEV_BSGLIB
  scsi: Remove Scsi_Host.uspace_req_q
  media: Revert "[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay"
  media: staging: atomisp: sh_css_calloc shall return a pointer to the allocated space
  media: Revert "[media] lirc_dev: remove superfluous get/put_device() calls"
  media: add qcom_camss.rst to v4l-drivers rst file
  dma-coherent: fix dma_declare_coherent_memory() logic error
  media: dvb headers: make checkpatch happier
  media: dvb uapi: move frontend legacy API to another part of the book
  ovl: don't allow writing ioctl on lower layer
  ovl: fix relatime for directories
  media: pixfmt-srggb12p.rst: better format the table for PDF output
  media: docs-rst: media: Don't use \small for V4L2_PIX_FMT_SRGGB10 documentation
  media: index.rst: don't write "Contents:" on PDF output
  media: pixfmt*.rst: replace a two dots by a comma
  media: vidioc-g-fmt.rst: adjust table format
  media: vivid.rst: add a blank line to correct ReST format
  media: v4l2 uapi book: get rid of driver programming's chapter
  media: format.rst: use the right markup for important notes
  media: docs-rst: cardlists: change their format to flat-tables
  media: em28xx-cardlist.rst: update to reflect last changes
  media: v4l2-event.rst: adjust table to fit on PDF output
  media: docs: don't show ToC for each part on PDF output
  media: cec uapi: Adjust table sizes for PDF output
  media: mc uapi: adjust some table sizes for PDF output
  media: rc-sysfs-nodes.rst: better use literals
  media: docs: fix PDF build with Sphinx 1.4
  media: v4l uAPI docs: adjust some tables for PDF output
  media: vidioc-g-tuner.rst: Fix table number of cols
  media: vidioc-querycap: use a more realistic value for KERNEL_VERSION
  media: v4l uAPI: add descriptions for arguments to all ioctls
  media: ca.h: document ca_msg and the corresponding ioctls
  media: ca docs: document CA_SET_DESCR ioctl and structs
  media: net.h: add kernel-doc and use it at Documentation/
  media: frontend.h: Avoid the term DVB when doesn't refer to a delivery system
  media: intro.rst: don't assume audio and video codecs to be MPEG2
  media: dvbstb.svg: use dots for the optional parts of the hardware
  media: dmx-get-pes-pids.rst: document the ioctl
  media: dvb uAPI docs: minor editorial changes
  media: dvbapi.rst: add an entry to DVB revision history
  media: dvb-frontend-parameters.rst: fix the name of a struct
  media: dmx-fread.rst: specify how DMX_CHECK_CRC works
  media: dvb uAPI docs: Prefer use "Digital TV instead of "DVB"
  media: ca-fopen.rst: Fixes the device node name for CA
  media: dvb uAPI docs: adjust return value ioctl descriptions
  media: gen-errors.rst: document ENXIO error code
  media: gen-errors.rst: remove row number comments
  media: dvb uapi docs: better organize header files
  media: dst_ca: remove CA_SET_DESCR boilerplate
  media: dvb rst: identify the documentation gap at the API
  media: dvb CA docs: place undocumented data together with ioctls
  media: ca-get-descr-info.rst: document this ioctl
  media: ca-get-slot-info.rst: document this ioctl
  media: ca-get-cap.rst: document this ioctl
  media: ca-reset.rst: add some description to this ioctl
  media: dst_ca: return a proper error code from CA errors
  media: ca.h: document most CA data types
  media: ca.h: get rid of CA_SET_PID
  media: net.rst: Fix the level of a section of the net chapter
  media: dmx.h: add kernel-doc markups and use it at Documentation/
  media: dmx.h: get rid of GET_DMX_EVENT
  media: dmx.h: get rid of DMX_SET_SOURCE
  media: dmx.h: get rid of DMX_GET_CAPS
  media: dmx.h: get rid of unused DMX_KERNEL_CLIENT
  media: fe_property_parameters.rst: better document bandwidth
  media: fe_property_parameters.rst: better define properties usage
  media: dvb frontend docs: use kernel-doc documentation
  media: dvb/frontend.h: document the uAPI file
  media: dvb/frontend.h: move out a private internal structure
  media: dvb/intro: adjust the notices about optional hardware
  media: dvb/intro: update the history part of the document
  media: dvb/intro: update references for TV standards
  media: dvb/intro: use the term Digital TV to refer to the system
  media: dmx.h: split typedefs from structs
  media: ca.h: split typedefs from structs
  mac80211_hwsim: Use proper TX power
  mac80211: Fix null pointer dereference with iTXQ support
  mac80211: add MESH IE in the correct order
  mac80211: shorten debug prints using ht_dbg() to avoid warning
  mac80211: fix VLAN handling with TXQs
  rtc: ds1307: use octal permissions
  rtc: ds1307: fix braces
  rtc: ds1307: fix alignments and blank lines
  rtc: ds1307: use BIT
  rtc: ds1307: use u32
  rtc: ds1307: use sizeof
  rtc: ds1307: remove regs member
  rtc: Add Realtek RTD1295
  mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants
  mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT
  dt-bindings: mfd: Add bindings for ZII RAVE devices
  mfd: omap-usb-tll: Fix register offsets
  mfd: da9052: Constify spi_device_id
  mfd: intel-lpss: Put I2C and SPI controllers into reset state on suspend
  mfd: da9055: Constify i2c_device_id
  mfd: intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices
  mfd: t7l66xb: Handle return value of clk_prepare_enable
  mfd: Add ROHM BD9571MWV-M PMIC DT bindings
  mfd: intel_soc_pmic_chtwc: Turn Kconfig option into a bool
  mfd: lp87565: Convert to use devm_mfd_add_devices()
  mfd: Add support for TPS68470 device
  mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Haswell/Broadwell
  mfd: syscon: atmel-smc: Add helper to retrieve register layout
  mfd: axp20x: Use correct platform device ID for many PEK
  dt-bindings: mfd: axp20x: Introduce bindings for AXP813
  mfd: axp20x: Add support for AXP813 PMIC
  dt-bindings: mfd: axp20x: Add AXP806 to supported list of chips
  mfd: Add ROHM BD9571MWV-M MFD PMIC driver
  mfd: hi6421-pmic: Add support for HiSilicon Hi6421v530
  mfd: hi6421-pmic: Update dev_err messages
  mfd: hi6421-pmic: Change license text to shorter form
  mfd: Kconfig: Add missing Kconfig dependency for TPS65086
  mfd: syscon: Update Atmel SMC binding doc
  mfd: ab8500-core: Constify attribute_group structures
  dt-bindings: mfd: da9052: Support TSI as ADC
  mfd: max8998: Fix potential NULL pointer dereference
  mfd: max8925-i2c: Drop unnecessary static
  mfd: da9052: Fix manual ADC read after timed out read
  mfd: rtsx: Make arrays depth and cd_mask static const
  mfd: twl-core: Improve the documentation
  dt-bindings: rtc: Add Realtek RTD1295
  mac80211: fix incorrect assignment of reassoc value
  dmaengine: sun6i: support V3s SoC variant
  dmaengine: sun6i: make gate bit in sun8i's DMA engines a common quirk
  dmaengine: rcar-dmac: document R8A77970 bindings
  dmaengine: xilinx_dma: Fix error code format specifier
  drm/i915/gvt: Remove one duplicated MMIO
  cifs: Check for timeout on Negotiate stage
  fs: unexport vfs_readv and vfs_writev
  fs: unexport vfs_read and vfs_write
  fs: unexport __vfs_read/__vfs_write
  lustre: switch to kernel_write
  gadget/f_mass_storage: stop messing with the address limit
  mconsole: switch to kernel_read
  btrfs: switch write_buf to kernel_write
  net/9p: switch p9_fd_read to kernel_write
  mm/nommu: switch do_mmap_private to kernel_read
  serial2002: switch serial2002_tty_write to kernel_{read/write}
  fs: make the buf argument to __kernel_write a void pointer
  fs: fix kernel_write prototype
  fs: fix kernel_read prototype
  fs: move kernel_read to fs/read_write.c
  fs: move kernel_write to fs/read_write.c
  autofs4: switch autofs4_write to __kernel_write
  ashmem: switch to ->read_iter
  block_dev: support RFW_NOWAIT on block device nodes
  fs: support RWF_NOWAIT for buffered reads
  fs: support IOCB_NOWAIT in generic_file_buffered_read
  fs: pass iocb to do_generic_file_read
  vfs: add flags to d_real()
  watchdog: octeon-wdt: Add support for 78XX SOCs.
  watchdog: octeon-wdt: Add support for cn68XX SOCs.
  watchdog: octeon-wdt: File cleaning.
  MIPS: Octeon: Allow access to CIU3 IRQ domains.
  MIPS: Octeon: Make CSR functions node aware.
  MIPS: Octeon: Watchdog registers for 70xx, 73xx, 78xx, F75xx.
  watchdog: octeon-wdt: Remove old boot vector code.
  MIPS: Octeon: Add support for accessing the boot vector.
  MIPS: lantiq: Remove the arch/mips/lantiq/xway/reset.c implementation
  MIPS: lantiq: remove old USB PHY initialisation
  phy: Add an USB PHY driver for the Lantiq SoCs using the RCU module
  MIPS: lantiq: remove old GPHY loader code
  MIPS: lantiq: Add a GPHY driver which uses the RCU syscon-mfd
  MIPS: lantiq: remove old reset controller implementation
  reset: Add a reset controller driver for the Lantiq XWAY based SoCs
  MIPS: lantiq: Replace ltq_boot_select() with dummy implementation.
  MIPS: lantiq: remove ltq_reset_cause() and ltq_boot_select()
  MIPS: lantiq: Convert the fpi bus driver to a platform_driver
  Input: add a driver for PWM controllable vibrators
  Documentation: DT: MIPS: lantiq: Add docs for the RCU bindings
  alpha: math-emu: Fix modular build
  alpha: Restore symbol versions for symbols exported from assembly
  alpha: defconfig: Cleanup from old Kconfig options
  alpha: use kobj_to_dev()
  alpha: squash lines for immediate return
  alpha: kernel: Use vma_pages()
  alpha: silence a buffer overflow warning
  alpha: marvel: make use of raw_spinlock variants
  alpha: cleanup: remove __NR_sys_epoll_*, leave __NR_epoll_*
  alpha: use generic fb.h
  cifs: Add support for writing attributes on SMB2+
  cifs: Add support for reading attributes on SMB2+
  libnvdimm, nfit: move the check on nd_reserved2 to the endpoint
  rpmsg: glink: initialize ret to zero to ensure error status check is correct
  rpmsg: glink: fix null pointer dereference on a null intent
  Input: adi - make array seq static, reduces object code size
  fix the __user misannotations in asm-generic get_user/put_user
  ALSA: hda/ca0132 - Fix memory leak at error path
  netfilter: nf_tables: support for recursive chain deletion
  netfilter: nf_tables: use NLM_F_NONREC for deletion requests
  netlink: add NLM_F_NONREC flag for deletion requests
  netfilter: nf_tables: add nf_tables_addchain()
  netfilter: nf_tables: add nf_tables_updchain()
  ALSA: hda: Fix forget to free resource in error handling code path in hda_codec_driver_probe
  ARM: imx: mx31moboard: Remove unused 'dma' variable
  ASoC: cs43130: Fix unused compiler warnings for PM runtime
  ASoC: cs43130: Fix possible Oops with invalid dev_id
  ovl: cleanup d_real for negative
  video: fbdev: sis: fix duplicated code for different branches
  video: fbdev: make fb_var_screeninfo const
  video: fbdev: aty: do not leak uninitialized padding in clk to userspace
  vgacon: Prevent faulty bootparams.screeninfo from causing harm
  video: fbdev: make fb_videomode const
  video/console: Add new BIOS date for GPD pocket to dmi quirk table
  fbcon: remove restriction on margin color
  video: ARM CLCD: constify amba_id
  video: fm2fb: constify zorro_device_id
  video: fbdev: annotate fb_fix_screeninfo with const and __initconst
  iio: adc: stm32: add support for lptimer triggers
  iio: counter: Add support for STM32 LPTimer
  dt-bindings: iio: Add STM32 LPTimer quadrature encoder and counter
  iio: trigger: Add STM32 LPTimer trigger driver
  dt-bindings: iio: Add STM32 LPTimer trigger binding
  dt-bindings: pwm: Add STM32 LPTimer PWM binding
  pwm: Add STM32 LPTimer PWM driver
  mfd: Add STM32 LPTimer driver
  dt-bindings: mfd: Add STM32 LPTimer binding
  mfd: twl: Move header file out of I2C realm
  ASoC: cs43130: fix spelling mistake: "irq_occurrance" -> "irq_occurrence"
  MIPS: lantiq: Enable MFD_SYSCON to be able to use it for the RCU MFD
  watchdog: lantiq: add device tree binding documentation
  watchdog: lantiq: access boot cause register through regmap
  mtd: lantiq-flash: drop check of boot select
  MIPS: lantiq: Use of_platform_default_populate instead of __dt_register_buses
  irqchip: mips-gic: Let the core set struct irq_common_data affinity
  irqchip: mips-gic: Use cpumask_first_and() in gic_set_affinity()
  irqchip: mips-gic: Clean up mti, reserved-cpu-vectors handling
  irqchip: mips-gic: Use pcpu_masks to avoid reading GIC_SH_MASK*
  irqchip: mips-gic: Make pcpu_masks a per-cpu variable
  irqchip: mips-gic: Inline gic_basic_init()
  irqchip: mips-gic: Inline __gic_init()
  irqchip: mips-gic: Remove linux/irqchip/mips-gic.h
  MIPS: Remove unnecessary inclusions of linux/irqchip/mips-gic.h
  MIPS: VDSO: Avoid use of linux/irqchip/mips-gic.h
  irqchip: mips-gic: Move gic_get_c0_*_int() to asm/mips-gic.h
  irqchip: mips-gic: Remove gic_present
  MIPS: Use mips_gic_present() in place of gic_present
  irqchip: mips-gic: Remove gic_init()
  irqchip: mips-gic: Remove __gic_irq_dispatch() forward declaration
  irqchip: mips-gic: Remove gic_get_usm_range()
  MIPS: VDSO: Drop gic_get_usm_range() usage
  irqchip: mips-gic: Move various definitions to the driver
  irqchip: mips-gic: Remove GIC_CPU_INT* macros
  MIPS: GIC: Move GIC_LOCAL_INT_* to asm/mips-gic.h
  irqchip: mips-gic: Convert remaining local reg access to new accessors
  irqchip: mips-gic: Convert local int mask access to new accessors
  irqchip: mips-gic: Convert remaining shared reg access to new accessors
  irqchip: mips-gic: Remove gic_map_to_vpe()
  irqchip: mips-gic: Remove gic_map_to_pin()
  irqchip: mips-gic: Remove gic_set_dual_edge()
  irqchip: mips-gic: Remove gic_set_trigger()
  irqchip: mips-gic: Remove gic_set_polarity()
  irqchip: mips-gic: Drop gic_(re)set_mask() functions
  irqchip: mips-gic: Simplify gic_local_irq_domain_map()
  irqchip: mips-gic: Simplify shared interrupt pending/mask reads
  MIPS: Add __ioread64_copy
  irqchip: mips-gic: Remove gic_read_local_vp_id()
  MIPS: CPS: Read GIC_VL_IDENT directly, not via irqchip driver
  irqchip: mips-gic: Remove counter access functions
  net: Remove CONFIG_NETFILTER_DEBUG and _ASSERT() macros.
  net: Replace NF_CT_ASSERT() with WARN_ON().
  netfilter: remove unused hooknum arg from packet functions
  netfilter: nft_limit: add stateful object type
  netfilter: nft_limit: replace pkt_bytes with bytes
  netfilter: nf_tables: add select_ops for stateful objects
  netfilter: xt_hashlimit: add rate match mode
  ALSA: atmel: Remove leftovers of AVR32 removal
  ALSA: atmel: convert AC97c driver to GPIO descriptor API
  ALSA: hda/realtek - Enable jack detection function for Intel ALC700
  powerpc/xive: Fix section __init warning
  powerpc: Fix kernel crash in emulation of vector loads and stores
  dma-coherent: remove an unused variable
  net: qualcomm: rmnet: Rename real_dev_info to port
  net: qualcomm: rmnet: Implement ndo_get_iflink
  net: qualcomm: rmnet: Refactor the new rmnet dev creation
  net: qualcomm: rmnet: Move the device creation log
  net: qualcomm: rmnet: Remove the unused endpoint -1
  net: qualcomm: rmnet: Fix memory corruption if mux_id is greater than 32
  nfp: flower: restore RTNL locking around representor updates
  nfp: build the flower offload by default
  nfp: be drop monitor friendly
  nfp: move the start/stop app callbacks back
  nfp: flower: base lifetime of representors on existence of lower vNIC
  nfp: separate app vNIC init/clean from alloc/free
  mlxsw: spectrum_router: Support GRE tunnels
  mlxsw: spectrum_router: Add loopback accessors
  mlxsw: spectrum: Register for IPIP_DECAP_ERROR trap
  mlxsw: spectrum_router: Use existing decap route
  mlxsw: spectrum_router: Support IPv4 underlay decap
  mlxsw: spectrum_router: Support IPv6 overlay encap
  mlxsw: spectrum_router: Support IPv4 overlay encap
  mlxsw: spectrum_router: Make nexthops typed
  mlxsw: spectrum_router: Extract mlxsw_sp_rt6_is_gateway()
  mlxsw: spectrum_router: Extract mlxsw_sp_fi_is_gateway()
  mlxsw: spectrum_router: Introduce loopback RIFs
  mlxsw: spectrum_router: Support FID-less RIFs
  mlxsw: spectrum_router: Add mlxsw_sp_ipip_ops
  mlxsw: spectrum_router: Publish mlxsw_sp_l3proto
  mlxsw: reg: Give mlxsw_reg_ratr_pack a type parameter
  mlxsw: reg: Extract mlxsw_reg_ritr_mac_pack()
  mlxsw: reg: Add Routing Tunnel Decap Properties Register
  mlxsw: reg: Add mlxsw_reg_ralue_act_ip2me_tun_pack()
  mlxsw: reg: Move enum mlxsw_reg_ratr_trap_id
  mlxsw: reg: Update RATR to support IP-in-IP tunnels
  mlxsw: reg: Update RITR to support loopback device
  net: dsa: loop: Do not unregister invalid fixed PHY
  net: mvpp2: fallback using h/w and random mac if the dt one isn't valid
  net: mvpp2: fix use of the random mac address for PPv2.2
  net: mvpp2: move the mac retrieval/copy logic into its own function
  utimes: Make utimes y2038 safe
  ipc: shm: Make shmid_kernel timestamps y2038 safe
  ipc: sem: Make sem_array timestamps y2038 safe
  ipc: msg: Make msg_queue timestamps y2038 safe
  ipc: mqueue: Replace timespec with timespec64
  ipc: Make sys_semtimedop() y2038 safe
  l2tp: pass tunnel pointer to ->session_create()
  l2tp: prevent creation of sessions on terminated tunnels
  Revert "net: fix percpu memory leaks"
  Revert "net: use lib/percpu_counter API for fragmentation mem accounting"
  net/mlx4_core: fix incorrect size allocation for dev->caps.spec_qps
  net/mlx4_core: fix memory leaks on error exit path
  ipv4: Don't override return code from ip_route_input_noref()
  xfs: use kmem_free to free return value of kmem_zalloc
  xfs: open code end_buffer_async_write in xfs_finish_page_writeback
  dax: fix FS_DAX=n BLOCK=y compilation
  ALSA: hda: Fix regression of hdmi eld control created based on invalid pcm
  net/mlx5e: Distribute RSS table among all RX rings
  net/mlx5e: Stop NAPI when irq balancer changes affinity
  net/mlx5e: Use kernel's mechanism to avoid missing NAPIs
  net/mlx5e: Slightly increase RX page-cache size
  net/mlx5e: Don't recycle page if moved to far NUMA
  net/mlx5e: Remove unnecessary fields in ICO SQ
  net/mlx5e: Type-specific optimizations for RX post WQEs function
  net/mlx5e: Non-atomic RQ state indicator for UMR WQE in progress
  net/mlx5e: Non-atomic indicator for ring enabled state
  net/mlx5e: Refactor data-path lro header function
  net/mlx5e: Early-return on empty completion queues
  net/mlx5e: NAPI busy-poll when UMR post is in progress
  net/mlx5e: Small enhancements for RX MPWQE allocation and free
  net/mlx5e: Use memset to init skbs_frags array to zeros
  net/mlx5e: Remove unnecessary wqe_sz field from RQ buffer
  net/mlx5e: Replace multiplication by stride size with a shift
  net/mlx5e: Reorganize struct mlx5e_rq
  xfs: don't set v3 xflags for v2 inodes
  xfs: fix compiler warnings
  powerpc/xive: improve debugging macros
  powerpc/xive: add XIVE Exploitation Mode to CAS
  powerpc/xive: introduce H_INT_ESB hcall
  powerpc/xive: add the HW IRQ number under xive_irq_data
  powerpc/xive: introduce xive_esb_write()
  powerpc/xive: rename xive_poke_esb() in xive_esb_read()
  powerpc/xive: guest exploitation of the XIVE interrupt controller
  powerpc/xive: introduce a common routine xive_queue_page_alloc()
  kbuild: Use KCONFIG_CONFIG in buildtar
  hv_netvsc: Fix the channel limit in netvsc_set_rxfh()
  hv_netvsc: Simplify the limit check in netvsc_set_channels()
  hv_netvsc: Simplify num_chn checking in rndis_filter_device_add()
  hv_netvsc: Clean up an unused parameter in rndis_filter_set_rss_param()
  net: Add module reference to FIB notifiers
  netvsc: allow driver to be removed even if VF is present
  netvsc: cleanup datapath switch
  bpf: sockmap update/simplify memory accounting scheme
  net: convert (struct ubuf_info)->refcnt to refcount_t
  net: prepare (struct ubuf_info)->refcnt conversion
  net: systemport: Correctly set TSB endian for host
  tcp_diag: report TCP MD5 signing keys and addresses
  inet_diag: allow protocols to provide additional data
  ipv6: sr: Use ARRAY_SIZE macro
  net: qualcomm: rmnet: remove unused variable priv
  net: phy: bcm7xxx: make array bcm7xxx_suspend_cfg static, reduces object code size
  fsl/fman: make arrays port_ids static, reduces object code size
  inetpeer: fix RCU lookup()
  ARM: multi_v7_defconfig: make eSDHC driver built-in
  clk: si5351: fix PLL reset
  remoteproc: Introduce rproc handle accessor for children
  ASoC: atmel-classd: remove aclk clock
  ASoC: atmel-classd: remove aclk clock from DT binding
  clk: at91: clk-generated: make gclk determine audio_pll rate
  clk: at91: clk-generated: create function to find best_diff
  clk: at91: add audio pll clock drivers
  dt-bindings: clk: at91: add audio plls to the compatible list
  clk: at91: clk-generated: remove useless divisor loop
  remoteproc: qcom: Make ssr_notifiers local
  dt-bindings: soc: qcom: Extend GLINK to cover SMEM
  remoteproc: qcom: adsp: Allow defining GLINK edge
  powerpc/sstep: Avoid used uninitialized error
  PCI: Fix typos and whitespace errors
  PCI: Remove unused "res" variable from pci_resource_io()
  PCI: Correct kernel-doc of pci_vpd_srdt_size(), pci_vpd_srdt_tag()
  Bluetooth: make baswap src const
  MIPS: Malta: Use new GIC accessor functions
  clk: mb86s7x: Drop non-building driver
  fsmap: fix documentation of FMR_OF_LAST
  xfs: simplify the rmap code in xfs_bmse_merge
  xfs: remove unused flags arg from xfs_file_iomap_begin_delay
  xfs: fix incorrect log_flushed on fsync
  xfs: disable per-inode DAX flag
  xfs: replace xfs_qm_get_rtblks with a direct call to xfs_bmap_count_leaves
  xfs: rewrite xfs_bmap_count_leaves using xfs_iext_get_extent
  xfs: use xfs_iext_*_extent helpers in xfs_bmap_split_extent_at
  xfs: use xfs_iext_*_extent helpers in xfs_bmap_shift_extents
  xfs: move some code around inside xfs_bmap_shift_extents
  block/loop: remove unused field
  block/loop: fix use after free
  Introduce v3 namespaced file capabilities
  bfq: Use icq_to_bic() consistently
  bfq: Suppress compiler warnings about comparisons
  bfq: Check kstrtoul() return value
  bfq: Declare local functions static
  bfq: Annotate fall-through in a switch statement
  ARC: Re-enable MMU upon Machine Check exception
  ARC: Show fault information passed to show_kernel_fault_diag()
  ARC: [plat-hsdk] initial port for HSDK board
  ARC: mm: Decouple RAM base address from kernel link address
  ARCv2: IOC: Tighten up the contraints (specifically base / size alignment)
  ARC: [plat-axs103] refactor the DT fudging code
  ARC: [plat-axs103] use clk driver #2: Add core pll node to DT to manage cpu clk
  ARC: [plat-axs103] use clk driver #1: Get rid of platform specific cpu clk setting
  ftrace: Fix memleak when unregistering dynamic ops when tracing disabled
  perf annotate browser: Help for cycling thru hottest instructions with TAB/shift+TAB
  xfs: use xfs_iext_get_extent in xfs_bmap_first_unused
  xfs: switch xfs_bmap_local_to_extents to use xfs_iext_insert
  xfs: add a xfs_iext_update_extent helper
  xfs: consolidate the various page fault handlers
  iomap: return VM_FAULT_* codes from iomap_page_mkwrite
  xfs: relog dirty buffers during swapext bmbt owner change
  xfs: disallow marking previously dirty buffers as ordered
  xfs: move bmbt owner change to last step of extent swap
  xfs: skip bmbt block ino validation during owner change
  xfs: don't log dirty ranges for ordered buffers
  xfs: refactor buffer logging into buffer dirtying helper
  xfs: ordered buffer log items are never formatted
  xfs: remove unnecessary dirty bli format check for ordered bufs
  xfs: open-code xfs_buf_item_dirty()
  xfs: remove the ip argument to xfs_defer_finish
  xfs: rename xfs_defer_join to xfs_defer_ijoin
  xfs: refactor xfs_trans_roll
  xfs: check for race with xfs_reclaim_inode() in xfs_ifree_cluster()
  xfs: evict all inodes involved with log redo item
  perf stat: Only auto-merge events that are PMU aliases
  perf test: Add test case for PERF_SAMPLE_PHYS_ADDR
  perf script: Support physical address
  perf mem: Support physical address
  perf sort: Add sort option for physical address
  perf tools: Support new sample type for physical address
  perf vendor events powerpc: Remove duplicate events
  perf intel-pt: Fix syntax in documentation of config option
  perf test powerpc: Fix 'Object code reading' test
  perf trace: Support syscall name globbing
  perf syscalltbl: Support glob matching on syscall names
  selftests: correct define in msg_zerocopy.c
  doc: document MSG_ZEROCOPY
  bpf: Collapse offset checks in sock_filter_is_valid_access
  mvneta: Driver and hardware supports IPv6 offload, so enable it
  qlcnic: remove redundant zero check on retries counter
  drm/i915: Fix enum pipe vs. enum transcoder for the PCH transcoder
  drm/i915: Make i2c lock ops static
  drm/i915: Make i9xx_load_ycbcr_conversion_matrix() static
  drm/i915/edp: Increase T12 panel delay to 900 ms to fix DP AUX CH timeouts
  net: mdio-mux: fix unbalanced put_device
  net: mdio-mux-mmioreg: Can handle 8/16/32 bits registers
  net: mdio-mux: printing driver version is useless
  net: mdio-mux: Remove unnecessary 'out of memory' message
  net: mdio-mux: Fix NULL Comparison style
  dt-bindings: pinctrl: sh-pfc: Use generic node name
  dt-bindings: Add vendor Mellanox
  staging:rtl8188eu:core Fix remove unneccessary else block
  Documentation/bindings: net: marvell-pp2: add the link interrupt
  net: mvpp2: use the GoP interrupt for link status changes
  net: mvpp2: make the phy optional
  net: mvpp2: take advantage of the is_rgmii helper
  staging: typec: fusb302: make structure fusb302_psy_desc static
  staging: unisys: visorbus: make two functions static
  mlxsw: spectrum_router: Set abort trap in all virtual routers
  mlxsw: spectrum_router: Trap packets hitting anycast routes
  bpf: Only set node->ref = 1 if it has not been set
  bpf: Inline LRU map lookup
  bpf: Add lru_hash_lookup performance test
  ftrace: Fix selftest goto location on error
  block/loop: allow request merge for directio mode
  block/loop: set hw_sectors
  hwmon: (ltq-cputemp) add cpu temp sensor driver
  hwmon: (ltq-cputemp) add devicetree bindings documentation
  kernfs: checking for IS_ERR() instead of NULL
  staging: fsl-dpaa2/eth: fix off-by-one FD ctrl bitmaks
  mmc: renesas_sdhi: Add r8a7743/5 support
  ASoC: Intel: Skylake: Add IPC to configure the copier secondary pins
  ASoC: add missing compile rule for max98371
  ASoC: add missing compile rule for sirf-audio-codec
  ASoC: add missing compile rule for max98371
  ASoC: cs43130: Add devicetree bindings for CS43130
  ASoC: cs43130: Add support for CS43130 codec
  ASoC: make clock direction configurable in asoc-simple
  spi: spi-falcon: drop check of boot select
  MAINTAINERS: use the iommu list for the dma-mapping subsystem
  dma-coherent: remove the DMA_MEMORY_MAP and DMA_MEMORY_IO flags
  iommu/vt-d: Don't be too aggressive when clearing one context entry
  x86/idt: Fix the X86_TRAP_BP gate
  dma-coherent: remove the DMA_MEMORY_INCLUDES_CHILDREN flag
  of: restrict DMA configuration
  nvme-fabrics: generate spec-compliant UUID NQNs
  ANDROID: binder: don't queue async transactions to thread.
  ANDROID: binder: don't enqueue death notifications to thread todo.
  ANDROID: binder: Don't BUG_ON(!spin_is_locked()).
  ANDROID: binder: Add BINDER_GET_NODE_DEBUG_INFO ioctl
  ANDROID: binder: push new transactions to waiting threads.
  ANDROID: binder: remove proc waitqueue
  android: binder: Add page usage in binder stats
  android: binder: fixup crash introduced by moving buffer hdr
  axonram: Return directly after a failed kzalloc() in axon_ram_probe()
  axonram: Improve a size determination in axon_ram_probe()
  axonram: Delete an error message for a failed memory allocation in axon_ram_probe()
  powerpc/powernv/npu: Move tlb flush before launching ATSD
  powerpc/macintosh: constify wf_sensor_ops structures
  powerpc/iommu: Use permission-specific DEVICE_ATTR variants
  powerpc/eeh: Delete an error out of memory message at init time
  powerpc/mm: Use seq_putc() in two functions
  macintosh: Convert to using %pOF instead of full_name
  ide: pmac: Convert to using %pOF instead of full_name
  crypto/nx: Add P9 NX support for 842 compression engine
  crypto/nx: Add P9 NX specific error codes for 842 engine
  crypto/nx: Use kzalloc for workmem allocation
  crypto/nx: Add nx842_add_coprocs_list function
  crypto/nx: Create nx842_delete_coprocs function
  crypto/nx: Create nx842_configure_crb function
  crypto/nx: Rename nx842_powernv_function as icswx function
  powerpc/32: remove a NOP from memset()
  powerpc/32: optimise memset()
  powerpc: fix location of two EXPORT_SYMBOL
  powerpc/32: add memset16()
  powerpc: Wrap register number correctly for string load/store instructions
  powerpc: Emulate load/store floating point as integer word instructions
  powerpc: Use instruction emulation infrastructure to handle alignment faults
  powerpc: Separate out load/store emulation into its own function
  powerpc: Handle opposite-endian processes in emulation code
  powerpc: Set regs->dar if memory access fails in emulate_step()
  powerpc: Emulate the dcbz instruction
  powerpc: Emulate load/store floating double pair instructions
  powerpc: Emulate vector element load/store instructions
  powerpc: Emulate FP/vector/VSX loads/stores correctly when regs not live
  powerpc: Make load/store emulation use larger memory accesses
  powerpc: Add emulation for the addpcis instruction
  powerpc: Don't update CR0 in emulation of popcnt, prty, bpermd instructions
  powerpc: Fix emulation of the isel instruction
  powerpc/64: Fix update forms of loads and stores to write 64-bit EA
  powerpc: Handle most loads and stores in instruction emulation code
  powerpc: Don't check MSR FP/VMX/VSX enable bits in analyse_instr()
  powerpc: Change analyse_instr so it doesn't modify *regs
  md/bitmap: disable bitmap_resize for file-backed bitmaps.
  samples/bpf: Update cgroup socket examples to use uid gid helper
  samples/bpf: Update cgrp2 socket tests
  samples/bpf: Add option to dump socket settings
  samples/bpf: Add detach option to test_cgrp2_sock
  samples/bpf: Update sock test to allow setting mark and priority
  bpf: Allow cgroup sock filters to use get_current_uid_gid helper
  bpf: Add mark and priority to sock options that can be set
  scsi: scsi-mq: Always unprepare before requeuing a request
  scsi: Show .retries and .jiffies_at_alloc in debugfs
  scsi: Improve requeuing behavior
  scsi: Call scsi_initialize_rq() for filesystem requests
  clk: ti: check for null return in strrchr to avoid null dereferencing
  clk: Don't write error code into divider register
  clk: uniphier: add video input subsystem clock
  clk: uniphier: add audio system clock
  clk: stm32h7: Add stm32h743 clock driver
  clk: gate: expose clk_gate_ops::is_enabled
  clk: nxp: clk-lpc32xx: rename clk_gate_is_enabled()
  clk: uniphier: add PXs3 clock data
  clk: hi6220: change watchdog clock source
  Input: byd - make array seq static, reduces object code size
  Thermal: int3406_thermal: fix thermal sysfs I/F
  KVM: PPC: Book3S HV: Fix memory leak in kvm_vm_ioctl_get_htab_fd
  rpmsg: glink: Export symbols from common code
  ftrace: Zero out ftrace hashes when a module is removed
  Kbuild: enable -Wunused-macros warning for "make W=2"
  kbuild: use $(abspath ...) instead of $(shell cd ... && /bin/pwd)
  clk: Kconfig: Name RK805 in Kconfig for COMMON_CLK_RK808
  rtc: sun6i: Add support for the external oscillator gate
  rtc: goldfish: Add RTC driver for Android emulator
  dt-bindings: Add device tree binding for Goldfish RTC driver
  rtc: ds1307: add basic support for ds1341 chip
  rtc: ds1307: remove member nvram_offset from struct ds1307
  rtc: ds1307: factor out offset to struct chip_desc
  rtc: ds1307: factor out rtc_ops to struct chip_desc
  rtc: ds1307: factor out irq_handler to struct chip_desc
  rtc: ds1307: improve irq setup
  rtc: ds1307: constify struct chip_desc variables
  rtc: ds1307: improve trickle charger initialization
  rtc: ds1307: factor out bbsqi bit to struct chip_desc
  rtc: ds1307: remove member irq from struct ds1307
  rtc: rk808: Name RK805 in Kconfig for RTC_DRV_RK808
  rtc: constify i2c_device_id
  libnvdimm: fix integer overflow static analysis warning
  libnvdimm, nd_blk: remove mmio_flush_range()
  libnvdimm, btt: rework error clearing
  libnvdimm: fix potential deadlock while clearing errors
  libnvdimm, btt: cache sector_size in arena_info
  libnvdimm, btt: ensure that flags were also unchanged during a map_read
  libnvdimm, btt: refactor map entry operations with macros
  Input: xilinx_ps2 - fix multiline comment style
  tracing: Only have rmmod clear buffers that its events were active in
  mlxsw: spectrum_dpipe: Add support for controlling IPv6 neighbor counters
  mlxsw: spectrum_router: Add support for setting counters on IPv6 neighbors
  mlxsw: spectrum_dpipe: Add support for IPv6 host table dump
  mlxsw: spectrum_dpipe: Make host entry fill handler more generic
  mlxsw: spectrum_router: Add IPv6 neighbor access helper
  mlxsw: spectrum_dpipe: Add IPv6 host table initial support
  mlxsw: spectrum_router: Export IPv6 link local address check helper
  devlink: Add IPv6 header for dpipe
  binfmt_flat: fix arch/m32r and arch/microblaze flat_put_addr_at_rp()
  compat_hdio_ioctl: Fix a declaration
  <linux/uaccess.h>: Fix copy_in_user() declaration
  annotate RWF_... flags
  teach SYSCALL_DEFINE/COMPAT_SYSCALL_DEFINE to handle __bitwise arguments
  libnvdimm, btt: fix a missed NVDIMM_IO_ATOMIC case in the write path
  doc, block, bfq: better describe how to properly configure bfq
  doc, block, bfq: fix some typos and remove stale stuff
  libnvdimm, nfit: export an 'ecc_unit_size' sysfs attribute
  loop: fold loop_switch() into callers
  loop: add ioctl for changing logical block size
  loop: set physical block size to PAGE_SIZE
  loop: get rid of lo_blocksize
  ftrace: Fix debug preempt config name in stack_tracer_{en,dis}able
  alarmtimer: Ensure RTC module is not unloaded
  Documentation/sphinx: fix kernel-doc decode for non-utf-8 locale
  x86/xen: Get rid of paravirt op adjust_exception_frame
  x86/eisa: Add missing include
  PCI/AER: Reformat AER register definitions
  x86: bpf_jit: small optimization in emit_bpf_tail_call()
  Input: pxa27x_keypad - handle return value of clk_prepare_enable
  Input: tegra-kbc - handle return value of clk_prepare_enable
  samples/bpf: Fix compilation issue in redirect dummy program
  net: fix two typos in net_device_ops documentation.
  net: dccp: Add handling of IPV6_PKTOPTIONS to dccp_v6_do_rcv()
  bridge: add tracepoint in br_fdb_update
  net_sched: add reverse binding for tc class
  i2c: sprd: Fix undefined reference errors
  clk: cs2000: Add cs2000_set_saved_rate
  clk: imx51: propagate rate across ipu_di*_sel
  ath10k: configure and enable the wakeup capability
  ath10k: add the PCI PM core suspend/resume ops
  ext4: perform dax_device lookup at mount
  ALSA: ctxfi: Remove null check before kfree
  tty: goldfish: Implement support for kernel 'earlycon' parameter
  tty: goldfish: Use streaming DMA for r/w operations on Ranchu platforms
  tty: goldfish: Refactor constants to better reflect their nature
  driver core: bus: Fix a potential double free
  drivers: w1: add hwmon temp support for w1_therm
  drivers: w1: refactor w1_slave_show to make the temp reading functionality separate
  drivers: w1: add hwmon support structures
  eeprom: idt_89hpesx: Support both ACPI and OF probing
  mcb: Fix an error handling path in 'chameleon_parse_cells()'
  MCB: add support for SC31 to mcb-lpc
  serial: 8250_port: Remove useless NULL checks
  earlycon: initialise baud field of earlycon device structure
  ext2: perform dax_device lookup at mount
  xfs: perform dax_device lookup at mount
  staging: r8822be: Simplify deinit_priv()
  staging: r8822be: Remove some dead code
  staging: vboxvideo: Use CONFIG_DRM_KMS_FB_HELPER to check for fbdefio availability
  staging:rtl8188eu Fix comparison to NULL
  staging: rts5208: rename mmc_ddr_tunning_rx_cmd to mmc_ddr_tuning_rx_cmd
  Staging: Pi433: style fix - tabs and spaces
  staging: pi433: fix spelling mistake: "preample" -> "preamble"
  staging:rtl8188eu:core Fix Code Indent
  staging: typec: fusb302: Export current-limit through a power_supply class dev
  staging: typec: fusb302: Add support for USB2 charger detection through extcon
  staging: typec: fusb302: Use client->irq as irq if set
  staging: typec: fusb302: Get max snk mv/ma/mw from device-properties
  staging: typec: fusb302: Set max supply voltage to 5V
  staging: typec: tcpm: Add get_current_limit tcpc_dev callback
  staging:rtl8188eu Use __func__ instead of function name
  staging: lustre: coding style fixes found by checkpatch.pl
  staging: goldfish: (Coding Style) Fixed parenthesis alignment.
  staging: unisys: change pr_err to dev_err in visor_check_channel
  staging: unisys: visorbus: remove EXPORT_SYMBOL_GPL for visor_check_channel
  staging: unisys: visorbus: Fix up GUID definition
  staging: unisys: visorbus: just check for GUID
  staging: unisys: Use size of channel defined in the channel.
  staging: unisys: visornic: Remove unnecessary return values
  staging: unisys: visorbus: use all 80 characters for multi-line messages
  staging: unisys: visorchipset: Shorten parser_init_byte_stream.
  staging: unisys: visorbus: Move parser functions location in file.
  staging: unisys: visorbus: remove uneeded initializations
  staging: unisys: visorbus: Remove useless else clause in visorutil_spar_detect.
  staging: unisys: Change data to point to visor_controlvm_parameters_header.
  staging: unisys: visorbus: Split else if blocks into multiple if.
  staging: unisys: visorbus: Remove check for valid parm_addr.
  staging: unisys: visorbus: Remove useless initialization.
  staging: unisys: visorbus: Remove useless comment.
  staging: unisys: visorbus: Consolidate controlvm channel creation.
  staging: unisys: include: Add comment next to mutex.
  staging: unisys: Don't check for null before getting driver device.
  staging: unisys: visorbus: Use __func__ instead of name.
  staging: unisys: visorbus: Convert macros to functions.
  staging: unisys: visorbus: Fix parameter alignment.
  staging: unisys: visorbus: Clean up vmcall address function.
  staging: unisys: visornic: Fix miscellaneous block comment format issues.
  staging: unisys: visornic: Fix up existing function comments.
  staging: unisys: visorbus: visorbus_main.c: Fix return values for checks in visorbus_register_visor_driver.
  staging: unisys: visorbus: visorchipset.c: Fix bug in parser_init_byte_stream.
  staging: unisys: use the kernel min define
  staging: ks7010: Fix coding style and remove checkpatch.pl warnings.
  usbip: vhci-hcd: make vhci_hc_driver const
  usb: phy: Avoid unchecked dereference warning
  usb: imx21-hcd: make imx21_hc_driver const
  usb: host: make ehci_fsl_overrides const and __initconst
  dt-bindings: mt8173-mtu3: add generic compatible and rename file
  dt-bindings: mt8173-xhci: add generic compatible and rename file
  usb: xhci-mtk: add generic compatible string
  usbip: auto retry for concurrent attach
  genalloc: Fix an incorrect kerneldoc comment
  irqchip/ls-scfg-msi: Add MSI affinity support
  irqchip/ls-scfg-msi: Add LS1043a v1.1 MSI support
  irqchip/ls-scfg-msi: Add LS1046a MSI support
  arm64: dts: ls1046a: Add MSI dts node
  arm64: dts: ls1043a: Share all MSIs
  arm: dts: ls1021a: Share all MSIs
  arm64: dts: ls1043a: Fix typo of MSI compatible string
  arm: dts: ls1021a: Fix typo of MSI compatible string
  irqchip/ls-scfg-msi: Fix typo of MSI compatible strings
  ext4: avoid Y2038 overflow in recently_deleted()
  irqchip/irq-bcm7120-l2: Use correct I/O accessors for irq_fwd_mask
  irqchip/mmp: Make mmp_intc_conf const
  irqchip/gic: Make irq_chip const
  irqchip/gic-v3: Advertise GICv4 support to KVM
  irqchip/gic-v4: Enable low-level GICv4 operations
  irqchip/gic-v4: Add some basic documentation
  irqchip/gic-v4: Add VLPI configuration interface
  irqchip/gic-v4: Add VPE command interface
  irqchip/gic-v4: Add per-VM VPE domain creation
  irqchip/gic-v3-its: Set implementation defined bit to enable VLPIs
  irqchip/gic-v3-its: Allow doorbell interrupts to be injected/cleared
  irqchip/gic-v3-its: Move pending doorbell after VMOVP
  irqchip/gic-v3-its: Add device proxy for VPE management if !DirectLpi
  irqchip/gic-v3-its: Make LPI allocation optional on device creation
  irqchip/gic-v3-its: Add VPE interrupt masking
  irqchip/gic-v3-its: Add VPE affinity changes
  irqchip/gic-v3-its: Add VPE invalidation hook
  irqchip/gic-v3-its: Add VPE scheduling
  irqchip/gic-v3-its: Add VPENDBASER/VPROPBASER accessors
  irqchip/gic-v3-its: Add VPE irq domain [de]activation
  irqchip/gic-v3-its: Add VPE irq domain allocation/teardown
  irqchip/gic-v3-its: Add VPE domain infrastructure
  irqchip/gic-v3-its: Add VLPI configuration handling
  irqchip/gic-v3-its: Add VLPI map/unmap operations
  irqchip/gic-v3-its: Add VLPI configuration hook
  irqchip/gic-v3-its: Add GICv4 ITS command definitions
  irqchip/gic-v4: Add management structure definitions
  block, bfq: guarantee update_next_in_service always returns an eligible entity
  block, bfq: remove direct switch to an entity in higher class
  block, bfq: make lookup_next_entity push up vtime on expirations
  clocksource: Convert to using %pOF instead of full_name
  Revert "pinctrl: sunxi: Don't enforce bias disable (for now)"
  pinctrl: uniphier: fix members of rmii group for Pro4
  x86/idt: Remove superfluous ALIGNment
  xen/mmu: set MMU_NORMAL_PT_UPDATE in remap_area_mfn_pte_fn
  xen: Don't try to call xen_alloc_p2m_entry() on autotranslating guests
  xen/events: events_fifo: Don't use {get,put}_cpu() in xen_evtchn_fifo_init()
  xen/pvcalls: use WARN_ON(1) instead of __WARN()
  xen: remove not used trace functions
  xen: remove unused function xen_set_domain_pte()
  xen: remove tests for pvh mode in pure pv paths
  xen-platform: constify pci_device_id.
  xen: cleanup xen.h
  xen: introduce a Kconfig option to enable the pvcalls backend
  xen/pvcalls: implement write
  xen/pvcalls: implement read
  xen/pvcalls: implement the ioworker functions
  xen/pvcalls: disconnect and module_exit
  xen/pvcalls: implement release command
  xen/pvcalls: implement poll command
  xen/pvcalls: implement accept command
  xen/pvcalls: implement listen command
  xen/pvcalls: implement bind command
  xen/pvcalls: implement connect command
  xen/pvcalls: implement socket command
  xen/pvcalls: handle commands from the frontend
  xen/pvcalls: connect to a frontend
  xen/pvcalls: xenbus state handling
  xen/pvcalls: initialize the module and register the xenbus backend
  xen/pvcalls: introduce the pvcalls xenbus backend
  xen: introduce the pvcalls interface header
  pinctrl: Delete an error message
  pinctrl: core: Delete an error message
  pinctrl: intel: Read back TX buffer state
  pinctrl: rockchip: Add rv1108 recalculated iomux support
  gpio: mockup: remove unused variable gc
  thermal: mediatek: minor mtk_thermal.c cleanups
  thermal: mediatek: extend calibration data for mt2712 chip
  thermal: mediatek: add Mediatek thermal driver for mt2712
  dt-bindings: thermal: Add binding document for Mediatek thermal controller
  rtlwifi: rtl8723be: fix duplicated code for different branches
  brcmfmac: Log chip id and revision
  qtnfmac: implement 64-bit dma support
  qtnfmac: fix free_xfer_buffer cleanup
  qtnfmac: modify qtnf_map_bar not to return NULL
  qtnfmac: module param sanity check
  qtnfmac: drop -D__CHECK_ENDIAN from cflags
  gfs2: preserve i_mode if __gfs2_set_acl() fails
  pinctrl: intel: Decrease indentation in intel_gpio_set()
  pinctrl: rza1: Remove suffix from gpiochip label
  gfs2: don't return ENODATA in __gfs2_xattr_set unless replacing
  IB/core: Expose ioctl interface through experimental Kconfig
  IB/core: Assign root to all drivers
  IB/core: Add completion queue (cq) object actions
  IB/core: Add legacy driver's user-data
  IB/core: Export ioctl enum types to user-space
  IB/core: Explicitly destroy an object while keeping uobject
  IB/core: Add macros for declaring methods and attributes
  IB/core: Add uverbs merge trees functionality
  IB/core: Add DEVICE object and root tree structure
  IB/core: Declare an object instead of declaring only type attributes
  IB/core: Add new ioctl interface
  RDMA/vmw_pvrdma: Fix a signedness
  RDMA/vmw_pvrdma: Report network header type in WC
  IB/core: Add might_sleep() annotation to ib_init_ah_from_wc()
  IB/cm: Fix sleeping in atomic when RoCE is used
  tracing/hyper-v: Trace hyperv_mmu_flush_tlb_others()
  x86/hyper-v: Support extended CPU ranges for TLB flush hypercalls
  wil6210: ensure P2P device is stopped before removing interface
  wil6210: increase connect timeout
  wil6210: clear PAL_UNIT_ICR part of device reset
  wil6210: move pre-FW configuration to separate function
  wil6210: align to latest auto generated wmi.h
  wil6210: make debugfs compilation optional
  wil6210: ratelimit errors in TX/RX interrupts
  ath10k: activate user space firmware loading again
  ath10k: sdio: remove unused struct member
  ath10k: fix napi_poll budget overflow
  powerpc: Correct instruction code for xxlor instruction
  powerpc: Fix DAR reporting when alignment handler faults
  pinctrl: qcom: spmi-gpio: Correct power_source range check
  gpio: pl061: constify amba_id
  pinctrl: freescale: make mxs_regs const
  KVM: s390: vsie: cleanup mcck reinjection
  KVM: s390: use WARN_ON_ONCE only for checking
  KVM: s390: guestdbg: fix range check
  ASoC: max98927: Changed device property read function
  ASoC: max98927: Modified DAPM widget and map to enable/disable VI sense path
  ASoC: max98927: Added PM suspend and resume function
  ASoC: max98927: Modified chip default register values
  ASoC: max98927: Added missing \n to end of dev_err messages
  ASoC: max98927: Updated volatile register list
  pinctrl: aspeed: Rework strap register write logic for the AST2500
  pinctrl: rza1: off by one in rza1_parse_gpiochip()
  ALSA: ac97c: Fix an error handling path in 'atmel_ac97c_probe()'
  mmc: meson-gx: fix __ffsdi2 undefined on arm32
  powerpc/pseries: Don't attempt to acquire drc during memory hot add for assigned lmbs
  x86/boot/KASLR: Work around firmware bugs by excluding EFI_BOOT_SERVICES_* and EFI_LOADER_* from KASLR's choice
  powerpc/4xx: Constify cpm_suspend_ops
  media: serial_ir: fix tx timing calculation on 32-bit
  media: rc: gpio-ir-tx: use ktime accessor functions
  media: rc: use ktime accessor functions
  pinctrl: qcom: General Purpose clocks for apq8064
  ASoC: rt5645: Add jack detection workaround for MINIX Z83-4 based devices
  ASoC: tlv320aic3x: Support for OCMV configuration
  x86/apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on CPUs without the feature
  x86/mm: Enable RCU based page table freeing (CONFIG_HAVE_RCU_TABLE_FREE=y)
  ALSA: sh: Put missing KERN_* prefix
  ALSA: usx2y: Put missing KERN_CONT prefix
  ALSA: usb-audio: Put missing KERN_CONT prefix
  x86/mm: Use pr_cont() in dump_pagetable()
  ALSA: asihpi: Put missing KERN_CONT prefix
  ALSA: vx: Put missing KERN_CONT prefix
  ALSA: opl3: Put missing KERN_CONT prefix
  x86/idt: Remove the tracing IDT leftovers
  xfrm: Fix return value check of copy_sec_ctx.
  power: supply: bq27xxx: enable writing capacity values for bq27421
  powerpc/smp: Add Power9 scheduler topology
  pinctrl: sprd: Add Spreadtrum pin control driver
  dt-bindings: pinctrl: Add DT bindings for Spreadtrum SC9860
  pinctrl: Add sleep related state to indicate sleep related configs
  pinctrl: mediatek: update PCIe mux data for MT7623
  Revert "gpiolib: request the gpio before querying its direction"
  xfrm: Add support for network devices capable of removing the ESP trailer
  clk: sunxi: fix uninitialized access
  clk: versatile: make clk_ops const
  ARC: clk: introduce HSDK pll driver
  clk: zte: constify clk_div_table
  clk: imx: constify clk_div_table
  clk: uniphier: add ethernet clock control support
  clk: gemini: hands off PCI OE bit
  clk: ux500: prcc: constify clk_ops.
  clk: ux500: sysctrl: constify clk_ops.
  clk: ux500: prcmu: constify clk_ops.
  liquidio: fix crash in presence of zeroed-out base address regs
  devlink: Maintain consistency in mac field name
  powerpc/smp: Add cpu_l2_cache_map
  powerpc/smp: Rework CPU topology construction
  powerpc/smp: Use cpu_to_chip_id() to find core siblings
  cxl: Fix driver use count
  selftests/powerpc: Force ptrace tests to build -fno-pie
  powerpc: conditionally compile platform-specific serial drivers
  powerpc/asm: Convert .llong directives to .8byte
  powerpc/configs: Enable THP and 64K for ppc64(le)_defconfig
  MAINTAINERS: Add drivers/watchdog/wdrtas.c to powerpc section
  powerpc/configs: Enable function trace by default
  powerpc/xmon: Add ISA v3.0 SPRs to SPR dump
  powerpc/xmon: Add AMR, UAMOR, AMOR, IAMR to SPR dump
  powerpc/xmon: Dump all 64 bits of HDEC
  powerpc: Squash lines for simple wrapper functions
  powerpc/mm/radix: Prettify mapped memory range print out
  powerpc/mm/radix: Add pr_fmt() to pgtable-radix.c
  powerpc/kernel: Change retrieval of pci_dn
  powerpc/mm/cxl: Add barrier when setting mm cpumask
  powerpc/powernv/vas: Define copy/paste interfaces
  powerpc/powernv/vas: Define vas_tx_win_open()
  powerpc/powernv/vas: Define vas_win_close() interface
  powerpc/powernv/vas: Define vas_rx_win_open() interface
  powerpc/powernv/vas: Define helpers to alloc/free windows
  powerpc/powernv/vas: Define helpers to init window context
  powerpc/powernv/vas: Define helpers to access MMIO regions
  powerpc/powernv/vas: Define vas_init() and vas_exit()
  powerpc/powernv: Move GET_FIELD/SET_FIELD to vas.h
  powerpc/powernv/vas: Define macros, register fields and structures
  powerpc/xmon: Fix display of SPRs
  powerpc/pci: Remove OF node back pointer from pci_dn
  powerpc/eeh: Reduce use of pci_dn::node
  powerpc/eeh: Remove unnecessary config_addr from eeh_dev
  powerpc/eeh: Remove unnecessary pointer to phb from eeh_dev
  powerpc/eeh: Reduce to one the number of places where edev is allocated
  powerpc/pci: Remove unused parameter from add_one_dev_pci_data()
  powerpc/512x: Constify clk_div_tables
  powerpc/44x: Fix mask and shift to zero bug
  powerpc/83xx: Use sizeof correct type when ioremapping
  powerpc: Machine check interrupt is a non-maskable interrupt
  powerpc/powernv: Use kernel crash path for machine checks
  powerpc/powernv: Flush console before platform error reboot
  powerpc: Do not send system reset request through the oops path
  powerpc/pseries/le: Work around a firmware quirk
  powerpc: Do not call ppc_md.panic in fadump panic notifier
  powerpc/64: Fix watchdog configuration regressions
  powerpc/64s/radix: Do not allocate SLB shadow structures
  powerpc/64s/radix: Remove bolted-SLB address limit for per-cpu stacks
  powerpc/powernv: powernv platform is not constrained by RMA
  mailbox: bcm-flexrm-mailbox: Use txdone_ack instead of txdone_poll
  mailbox: bcm-flexrm-mailbox: Use bitmap instead of IDA
  mailbox: bcm-flexrm-mailbox: Fix mask used in CMPL_START_ADDR_VALUE()
  mailbox: bcm-flexrm-mailbox: Add debugfs support
  mailbox: bcm-flexrm-mailbox: Set IRQ affinity hint for FlexRM ring IRQs
  KVM: PPC: Book3S HV: Report storage key support to userspace
  KVM: PPC: Book3S HV: Fix case where HDEC is treated as 32-bit on POWER9
  KVM: PPC: Book3S HV: Fix invalid use of register expression
  KVM: PPC: Book3S HV: Fix H_REGISTER_VPA VPA size validation
  KVM: PPC: Book3S HV: Fix setting of storage key in H_ENTER
  KVM: PPC: e500mc: Fix a NULL dereference
  KVM: PPC: e500: Fix some NULL dereferences on error
  scsi: qla2xxx: Reset the logo flag, after target re-login.
  scsi: qla2xxx: Fix slow mem alloc behind lock
  scsi: qla2xxx: Clear fc4f_nvme flag
  scsi: qla2xxx: add missing includes for qla_isr
  scsi: qla2xxx: Fix an integer overflow in sysfs code
  scsi: aacraid: report -ENOMEM to upper layer from aac_convert_sgraw2()
  scsi: aacraid: get rid of one level of indentation
  scsi: aacraid: fix indentation errors
  scsi: storvsc: fix memory leak on ring buffer busy
  hwmon: (pmbus) Add support for Texas Instruments tps53679 device
  remoteproc: Stop subdevices in reverse order
  rpmsg: glink: Release idr lock before returning on error
  remoteproc: imx_rproc: add a NXP/Freescale imx_rproc driver
  remoteproc: dt: Provide bindings for iMX6SX/7D Remote Processor Controller driver
  hv_netvsc: Fix typos in the document of UDP hashing
  xen-netfront: be more drop monitor friendly
  net/mlx5e: Support RSS for GRE tunneled packets
  net/mlx5e: Support TSO and TX checksum offloads for GRE tunnels
  net/mlx5e: Use IP version matching to classify IP traffic
  doc: Add documentation for the genalloc subsystem
  assoc_array: fix path to assoc_array documentation
  bpf: test_maps: fix typos, "conenct" and "listeen"
  qed: fix spelling mistake: "calescing" -> "coalescing"
  net: hns3: Fixes the wrong IS_ERR check on the returned phydev value
  net: bcm63xx_enet: make bcm_enetsw_ethtool_ops const
  ipv6: sr: fix get_srh() to comply with IPv6 standard "RFC 8200"
  kernel-doc parser mishandles declarations split into lines
  net: mvpp2: dynamic reconfiguration of the comphy/GoP/MAC
  net: mvpp2: do not set GMAC autoneg when using XLG MAC
  net: mvpp2: improve the link management function
  net: mvpp2: simplify the link_event function
  net: mvpp2: initialize the comphy
  Documentation/bindings: phy: document the Marvell comphy driver
  phy: add the mvebu cp110 comphy driver
  phy: add sgmii and 10gkr modes to the phy_mode enum
  dp83640: don't hold spinlock while calling netif_rx_ni
  iommu/vt-d: Prevent VMD child devices from being remapping targets
  x86/PCI: Use is_vmd() rather than relying on the domain number
  x86/PCI: Move VMD quirk to x86 fixups
  MAINTAINERS: Add Jonathan Derrick as VMD maintainer
  net/sched: Change act_api and act_xxx modules to use IDR
  net/sched: Change cls_flower to use IDR
  idr: Add new APIs to support unsigned long
  docs: ReSTify table of contents in core.rst
  docs: process: drop git snapshots from applying-patches.rst
  PCI: vmd: Remove IRQ affinity so we can allocate more IRQs
  Documentation:input: fix typo
  ASoC: add Component level set_jack
  ASoC: add Component level set_pll
  ASoC: add Component level set_sysclk
  vfio: platform: constify amba_id
  vfio: Stall vfio_del_group_dev() for container group detach
  vfio: fix noiommu vfio_iommu_group_get reference count
  leds: pca955x: check for I2C errors
  PCI: rcar: Add device tree support for r8a7743/5
  drm/i915: Ignore duplicate VMA stored within the per-object handle LUT
  drm/i915: Skip fence alignemnt check for the CCS plane
  drm/i915: Treat fb->offsets[] as a raw byte offset instead of a linear offset
  drm/i915: Always wake the device to flush the GTT
  drm/i915: Recreate vmapping even when the object is pinned
  drm/i915: Quietly cancel FBC activation if CRTC is turned off before worker
  Bluetooth: Add option for disabling legacy ioctl interfaces
  ALSA: pcm: Unify ioctl functions for playback and capture streams
  ALSA: Get rid of card power_lock
  drivers: net: ethernet: qualcomm: rmnet: Initial implementation
  net: arp: Add support for raw IP device
  net: ether: Add support for multiplexing and aggregation type
  GFS2: Fix non-recursive truncate bug
  tcp: Revert "tcp: remove header prediction"
  tcp: Revert "tcp: remove CA_ACK_SLOWPATH"
  ASoC: hdmi-codec: Use different name for playback streams
  regulator: Add support for stm32-vrefbuf
  regulator: Add STM32 Voltage Reference Buffer
  staging: irda: fix init level for irda core
  rsi: remove memset before memcpy
  rt2800: fix TX_PIN_CFG setting for non MT7620 chips
  rsi: missing unlocks on error paths
  rsi: update some comments
  ARM: dts: at91: at91sam9g45: add AC97
  ARCv2: SLC: provide a line based flush routine for debugging
  ARC: Hardcode ARCH_DMA_MINALIGN to max line length we may have
  dax: introduce a fs_dax_get_by_bdev() helper
  iommu: Introduce Interface for IOMMU TLB Flushing
  power: supply: bq24190_charger: Get input_current_limit from our supplier
  iommu/s390: Constify iommu_ops
  iommu/vt-d: Avoid calling virt_to_phys() on null pointer
  iommu/vt-d: IOMMU Page Request needs to check if address is canonical.
  power: supply: bq24190_charger: Export 5V boost converter as regulator
  arm/tegra: Call bus_set_iommu() after iommu_device_register()
  ASoC: rsnd: Drop unit-addresses without reg properties
  ASoC: rockchip: constify snd_soc_ops structures
  regulator: pv88090: Exception handling for out of bounds
  ASoC: rt5663: Add delay for jack plug in
  ASoC: rt274: add acpi id
  regulator: da9063: Return an error code on probe failure
  IB/core: Add support to finalize objects in one transaction
  IB/core: Add a generic way to execute an operation on a uobject
  libnvdimm, btt: check memory allocation failure
  drbd: remove BIOSET_NEED_RESCUER flag from drbd_{md_,}io_bio_set
  drbd: Fix allyesconfig build, fix recent commit
  fsnotify: make dnotify_fsnotify_ops const
  mmc: sdhci-xenon: add runtime pm support and reimplement standby
  hwmon: (asc7621) make several arrays static const
  hwmon: (pmbus/lm25066) Add support for TI LM5066I
  hwmon: (pmbus/lm25066) Offset coefficient depends on CL
  hwmon: (pmbus) Add support for Intel VID protocol VR13
  PCI: mediatek: Use PCI_NUM_INTX
  PCI: mediatek: Add MSI support for MT2712 and MT7622
  PCI: mediatek: Use bus->sysdata to get host private data
  dt-bindings: PCI: Add support for MT2712 and MT7622
  PCI: mediatek: Add controller support for MT2712 and MT7622
  dt-bindings: PCI: Cleanup MediaTek binding text
  dt-bindings: PCI: Rename MediaTek binding
  PCI: mediatek: Switch to use platform_get_resource_byname()
  PCI: mediatek: Add a structure to abstract the controller generations
  PCI: mediatek: Rename port->index and mtk_pcie_parse_ports()
  PCI: mediatek: Use readl_poll_timeout() to wait for Gen2 training
  PCI: mediatek: Explicitly request exclusive reset control
  gfs2: constify rhashtable_params
  GFS2: Fix gl_object warnings
  iommu/exynos: Constify iommu_ops
  iommu/ipmmu-vmsa: Make ipmmu_gather_ops const
  iommu/ipmmu-vmsa: Rereserving a free context before setting up a pagetable
  nvmet: add support for reporting the host identifier
  mmc: core: Move mmc_start_areq() declaration
  mmc: mmci: stop building qcom dml as module
  mmc: sunxi: Reset the device at probe time
  clk: sunxi-ng: Provide a default reset hook
  mmc: meson-gx: rework tuning function
  mmc: meson-gx: change default tx phase
  mmc: meson-gx: implement voltage switch callback
  mmc: meson-gx: use CCF to handle the clock phases
  mmc: meson-gx: implement card_busy callback
  mmc: meson-gx: simplify interrupt handler
  mmc: meson-gx: work around clk-stop issue
  mmc: meson-gx: fix dual data rate mode frequencies
  mmc: meson-gx: rework clock init function
  mmc: meson-gx: rework clk_set function
  mmc: meson-gx: rework set_ios function
  mmc: meson-gx: cfg init overwrite values
  mmc: meson-gx: initialize sane clk default before clock register
  mmc: mmci: constify amba_id
  mmc: block: cast a informative log for no devidx available
  mmc: sdhci-pltfm: export sdhci_pltfm_suspend/resume
  mmc: sdhci: enable/disable the clock in sdhci_pltfm_suspend/resume
  mmc: sdhci-pxav2: switch to managed clk and sdhci_pltfm_unregister()
  mmc: sdhci-cadence: add suspend / resume support
  mmc: sdhci-xenon: Support HS400 Enhanced Strobe feature
  mmc: sdhci: Add quirk to indicate MMC_RSP_136 has CRC
  mmc: sdhci: Tidy reading 136-bit responses
  mmc: meson-gx: clean up some constants
  mmc: meson-gx: remove CLK_DIVIDER_ALLOW_ZERO clock flag
  mmc: meson-gx: fix mux mask definition
  mmc: block: Reparametrize mmc_blk_ioctl_[multi]_cmd()
  mmc: block: Refactor mmc_blk_part_switch()
  mmc: block: Move duplicate check
  mmc: debugfs: Move block debugfs into block module
  mmc: ops: export mmc_get_status()
  mmc: block: Anonymize the drv op data pointer
  mmc: cavium-octeon: Convert to use module_platform_driver
  dt-bindings: mmc: sh_mmcif: Document r8a7745 DT bindings
  mmc: test: reduce stack usage in mmc_test_nonblock_transfer
  mmc: sdhci-of-esdhc: support ESDHC_CAPABILITIES_1 accessing
  mmc: sdhci: fix SDHCI_QUIRK_NO_HISPD_BIT handling
  mmc: sdhci-s3c: use generic sdhci_set_bus_width()
  mmc: sdhci-pci: use generic sdhci_set_bus_width()
  mmc: sdhci-tegra: use generic sdhci_set_bus_width()
  mmc: sdhci: key 8BITBUS bit off MMC_CAP_8_BIT_DATA
  mmc: renesas_sdhi: Add r8a7743/5 support
  mmc: core: Turn off CQE before sending commands
  mmc: host: Add CQE interface
  perf report: Calculate the average cycles of iterations
  nvme: Use metadata for passthrough commands
  nvme: Make nvme user functions static
  nvme/pci: Use req_op to determine DIF remapping
  nvme: factor metadata handling out of __nvme_submit_user_cmd
  nvme-fabrics: Convert nvmf_transports_mutex to an rwsem
  efi: switch to use new generic UUID API
  clocksource: mips-gic-timer: Use new GIC accessor functions
  MIPS: GIC: Introduce asm/mips-gic.h with accessor functions
  mmc: core: Add members to mmc_request and mmc_data for CQE's
  mmc: core: Add mmc_retune_hold_now()
  mmc: core: Remove unused MMC_CAP2_PACKED_CMD
  mmc: sunxi: Fix clock rate passed to sunxi_mmc_clk_set_phase
  mmc: sdhi: use maximum width for the sdbuf register
  mmc: renesas_sdhi: document version of RZ/A1 instance
  mmc: renesas_sdhi: enably CBSY bit for RZ platform
  mmc: renesas_sdhi: use extra flag for CBSY usage
  mmc: vub300: constify usb_device_id
  mmc: sdhci-xenon: Add Xenon SDHCI specific system-level PM support
  mmc: dw_mmc: introduce timer for broken command transfer over scheme
  mmc: dw_mmc-k3: add sd support for hi3660
  mmc: dw_mmc: move controller reset before driver init
  mmc: mxcmmc: Handle return value of clk_prepare_enable
  mmc: wmt-sdmmc: Handle return value of clk_prepare_enable
  mmc: sdhci-msm: set sdma_boundary to zero
  mmc: sdhci: add sdma_boundary member to struct sdhci_host
  mmc: renesas-sdhi: constify renesas_sdhi_internal_dmac_dma_ops
  mmc: sdhci-brcmstb: constify sdhci_pltfm_data structures
  mmc: sdhci-of-arasan: constify sdhci_pltfm_data and sdhci_ops structures
  mmc: sdhci-sirf: constify sdhci_pltfm_data and sdhci_ops structures
  mmc: sdhci-bcm-kona: constify sdhci_pltfm_data and sdhci_ops structures
  mmc: sdhci: constify sdhci_pltfm_data structures
  mmc: core: remove the check of mmc_card_blockaddr for SD cards
  mmc: sdhci: ignore restoring the I/O state if MMC_POWER_OFF
  mmc: sunxi: fix support for new timings mode only SoCs
  mmc: sunxi: Fix NULL pointer reference on clk_delays
  mmc: sunxi: Add support for A83T eMMC (MMC2)
  mmc: sunxi: Support MMC DDR52 transfer mode with new timing mode
  mmc: sunxi: Support controllers that can use both old and new timings
  clk: sunxi-ng: a83t: Support new timing mode for mmc2 clock
  clk: sunxi-ng: Add MP_MMC clocks that support MMC timing modes switching
  clk: sunxi-ng: Add interface to query or configure MMC timing modes.
  mmc: renesas-sdhi: provide a whitelist for Gen3 SoC ES versions
  mmc: core: correct taac parameter according to the specification
  mmc: sdhci-msm: add static to local functions
  mmc: of_mmc_spi: fix restricted cast warning of sparse
  mmc: bcm2835: constify mmc_host_ops structures
  mmc: mediatek: constify mmc_host_ops structures
  mmc: sdricoh_cs: constify mmc_host_ops structures
  mmc: sunxi: constify mmc_host_ops structures
  mmc: vub300: constify mmc_host_ops structures
  mmc: usdhi6rol0: constify mmc_host_ops structures
  mmc: toshsd: constify mmc_host_ops structures
  mmc: sh_mmcif: constify mmc_host_ops structures
  mmc: moxart: constify mmc_host_ops structures
  mmc: davinci: constify mmc_host_ops structures
  mmc: s3cmci: constify mmc_host_ops structures
  mmc: wmt-sdmmc: constify mmc_host_ops structures
  sdhci: pci: Fix up power if device has ACPI companion
  sdhci: acpi: Use new method to get ACPI companion
  mmc: sdhci-xenon: ignore timing DDR52 in tuning
  mmc: tegra: explicitly request exclusive reset control
  mmc: sunxi: explicitly request exclusive reset control
  mmc: sdhci-st: explicitly request exclusive reset control
  mmc: dw_mmc: explicitly request exclusive reset control
  mmc: Convert to using %pOF instead of full_name
  MMC: Remove HIGHMEM dependency from mmc-spi driver
  mmc: host: via-sdmmc: constify pci_device_id.
  mmc: sdhci: remove CONFIG_MMC_DEBUG from the driver
  mmc: wbsd: remove CONFIG_MMC_DEBUG from the driver
  mmc: Kconfig: downgrade CONFIG_MMC_DEBUG for host drivers only
  mmc: core: turn the pr_info under CONFIG_MMC_DEBUG into pr_debug
  mmc: core: always check the length of sglist with total data size
  mmc: core: remove check of host->removed for rescan routine
  mmc: sdhci-acpi: remove unused struct sdhci_host variable
  mmc: sdhci-of-arasan: use io functions from sdhci.h
  arc: remove num-slots from arc platforms
  mmc: atmel-mci: add missing of_node_put
  mmc: sdhci-of-at91: set clocks and presets after resume from deepest PM
  mmc: sdhci-of-at91: factor out clks and presets setting
  dt-bindings: mmc: sh_mmcif: Document r8a7743 DT bindings
  mmc: atmel-mci: remove unused sg_len variable
  mmc: sdhci-xenon: remove pointless struct xenon_priv *priv
  mmc: block: remove unused struct mmc_card *card
  mmc: mxcmmc: check the return value of mxcmci_finish_data
  mmc: mmc_ops: fix a typo for comment of mmc_start_bkops
  mmc: mediatek: add ops->get_cd() support
  mmc: rtsx_usb_sdmmc: make array 'width' static const
  mmc: renesas_sdhi_core: on R-Car 2+, make use of CBSY bit
  mmc: tmio: don't wait on R-Car2+ when handling the clock
  mmc: tmio: no magic values when enabling DMA
  mmc: tmio: add references to bit defines in the header
  mmc: tmio: remove obsolete TMIO_BBS
  mmc: tmio: fix CMD12 (STOP) handling
  mmc: mxcmmc: fix error return code in mxcmci_probe()
  mmc: android-goldfish: remove logically dead code in goldfish_mmc_irq()
  mmc: sdhci-st: add FSP2(ppc476fpe) into depends for sdhci-st
  mmc: omap_hsmmc: Reduce max_segs for reliability
  Documentation: rockchip-dw-mshc: add description for rk3228
  mmc: renesas-sdhi: add support for R-Car Gen3 SDHI DMAC
  mmc: tmio, renesas-sdhi: add dataend to DMA ops
  mmc: tmio, renesas-sdhi: add max_{segs, blk_count} to tmio_mmc_data
  mmc: omap_hsmmc: constify dev_pm_ops structures
  mmc: sdhci-st: Handle return value of clk_prepare_enable
  irqchip: mips-gic: SYNC after enabling GIC region
  arm64: dts: marvell: mcbin: enable more networking ports
  arm64: dts: marvell: add a reference to the sysctrl syscon in the ppv2 node
  iwlwifi: mvm: bump API to 34 for 8000 and up
  iwlwifi: mvm: Avoid deferring non bufferable frames
  iwlwifi: fix long debug print
  arm64: dts: marvell: add TX interrupts for PPv2.2
  objtool: Handle GCC stack pointer adjustment bug
  USB: serial: option: simplify 3 D-Link device entries
  USB: serial: option: add support for D-Link DWM-157 C1
  net: bcmgenet: Do not return from void function
  arm64: defconfig: enable rockchip graphics
  MAINTAINERS: Update Cavium ThunderX2 entry
  KVM: PPC: Book3S HV: Protect updates to spapr_tce_tables list
  rpmsg: glink: Handle remote rx done command
  rpmsg: glink: Request for intents when unavailable
  rpmsg: glink: Use the intents passed by remote
  rpmsg: glink: Receive and store the remote intent buffers
  rpmsg: glink: Add announce_create ops and preallocate intents
  rpmsg: glink: Add rx done command
  rpmsg: glink: Make RX FIFO peak accessor to take an offset
  rpmsg: glink: Use the local intents when receiving data
  rpmsg: glink: Add support for TX intents
  rpmsg: glink: Fix idr_lock from mutex to spinlock
  rpmsg: glink: Add support for transport version negotiation
  rpmsg: glink: Introduce glink smem based transport
  PCI: layerscape: Add support for ls1088a
  scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough
  scsi: smartpqi: remove the smp_handler stub
  scsi: hpsa: remove the smp_handler stub
  scsi: bsg-lib: pass the release callback through bsg_setup_queue
  scsi: Rework handling of scsi_device.vpd_pg8[03]
  scsi: Rework the code for caching Vital Product Data (VPD)
  scsi: rcu: Introduce rcu_swap_protected()
  scsi: aacraid: Fix command send race condition
  libnvdimm, label: fix index block size calculation
  ACPI / APEI: Suppress message if HEST not present
  Documentation: hwmon: Document the IBM CFF power supply
  cpuidle: Make drivers initialize polling state
  cpuidle: Move polling state initialization code to separate file
  hwmon: (pmbus) Add IBM Common Form Factor (CFF) power supply driver
  cpuidle: Eliminate the CPUIDLE_DRIVER_STATE_START symbol
  dt-bindings: hwmon: Document the IBM CCF power supply version 1
  hwmon: (ftsteutates) constify i2c_device_id
  neigh: increase queue_len_bytes to match wmem_default
  net: remove dmaengine.h inclusion from netdevice.h
  net: bcmgenet: Use correct I/O accessors
  liquidio: show NIC's U-Boot version in a dev_info() message
  net: dsa: make some structures const
  MIPS: Don't use dma_cache_sync to implement fd_cacheflush
  MIPS: generic: Bump default NR_CPUS to 16
  MIPS: generic: Don't explicitly disable CONFIG_USB_SUPPORT
  MIPS: Make CONFIG_MIPS_MT_SMP default y
  MIPS: Prevent direct use of generic_defconfig
  MIPS: NI 169445: Only include in 32r2el kernels
  MIPS: SEAD-3: Only include in 32 bit kernels by default
  MIPS: generic: Allow filtering enabled boards by requirements
  MIPS: CPS: Detect CPUs in secondary clusters
  MIPS: CPS: Cluster support for topology functions
  MIPS: CPS: Have asm/mips-cps.h include CM & CPC headers
  MIPS: SMP: Allow boot_secondary SMP op to return errors
  MIPS: CM: Add cluster & block args to mips_cm_lock_other()
  MIPS: Add CPU cluster number accessors
  MIPS: Unify checks for sibling CPUs
  MIPS: Store core & VP IDs in GlobalNumber-style variable
  MIPS: Abstract CPU core & VP(E) ID access through accessor functions
  MIPS: CPS: Use GlobalNumber macros rather than magic numbers
  MIPS: Add accessor & bit definitions for GlobalNumber
  MIPS: CPS: Add CM/CPC 3.5 register definitions
  MIPS: CPS: Use change_*, set_* & clear_* where appropriate
  MIPS: CPS: Introduce register modify (set/clear/change) accessors
  MIPS: CPC: Use BIT/GENMASK for register fields, order & drop shifts
  MIPS: CPC: Use common CPS accessor generation macros
  remoteproc: qcom: Use PTR_ERR_OR_ZERO
  ipv6: Use rt6i_idev index for echo replies to a local address
  amd-xgbe: Interrupt summary bits are h/w version dependent
  PCI: Disable VF decoding before pcibios_sriov_disable() updates resources
  PCI: layerscape: Add support for ls2088a
  nsh: add GSO support
  net: add NSH header structures and helpers
  vxlan: factor out VXLAN-GPE next protocol
  ether: add NSH ethertype
  tc-testing: add test for testing ife type
  act_ife: use registered ife_type as fallback
  if_ether: add forces ife lfb type
  Documentation: networking: Add blurb about patches in patchwork
  sparc64: vcc: make ktermios const
  net/mlx4: Add user mac FW update support
  net/mlx4_core: Fix misplaced brackets of sizeof
  net/mlx4_core: Make explicit conversion to 64bit value
  net/mlx4_core: Dynamically allocate structs at mlx4_slave_cap
  bridge: fdb add and delete tracepoints
  net: phy: mdio-bcm-unimac: Use correct I/O accessors
  net: systemport: Set correct RSB endian bits based on host
  net: dsa: bcm_sf2: Use correct I/O accessors
  net: systemport: Use correct I/O accessors
  PCI: artpec6: Stop enabling writes to DBI read-only registers
  PCI: layerscape: Remove unnecessary class code fixup
  drbd: switch from kmalloc() to kmalloc_array()
  drbd: abort drbd_start_resync if there is no connection
  drbd: move global variables to drbd namespace and make some static
  drbd: rename "usermode_helper" to "drbd_usermode_helper"
  drbd: fix race between handshake and admin disconnect/down
  drbd: fix potential deadlock when trying to detach during handshake
  drbd: A single dot should be put into a sequence.
  drbd: fix rmmod cleanup, remove _all_ debugfs entries
  drbd: Use setup_timer() instead of init_timer() to simplify the code.
  drbd: fix potential get_ldev/put_ldev refcount imbalance during attach
  drbd: new disk-option disable-write-same
  drbd: Fix resource role for newly created resources in events2
  drbd: mark symbols static where possible
  drbd: Send P_NEG_ACK upon write error in protocol != C
  drbd: add explicit plugging when submitting batches
  drbd: change list_for_each_safe to while(list_first_entry_or_null)
  drbd: introduce drbd_recv_header_maybe_unplug
  rpmsg: glink: Do a mbox_free_channel in remove
  rpmsg: glink: Return -EAGAIN when there is no FIFO space
  rpmsg: glink: Allow unaligned data access
  rpmsg: glink: Move the common glink protocol implementation to glink_native.c
  rpmsg: glink: Split rpm_probe to reuse the common code
  rpmsg: glink: Associate indirections for pipe fifo accessor's
  rpmsg: glink: Rename glink_rpm_xx functions to qcom_glink_xx
  PCI: dwc: Enable write permission for Class Code, Interrupt Pin updates
  PCI: dwc: Add accessors for write permission of DBI read-only registers
  PCI: layerscape: Disable outbound windows configured by bootloader
  PCI: layerscape: Refactor ls1021_pcie_host_init()
  power: supply: bq24190_charger: Add power_supply_battery_info support
  power: supply: bq24190_charger: Add property system-minimum-microvolt
  power: supply: bq24190_charger: Enable devicetree config
  dt-bindings: power: supply: Add docs for TI BQ24190 battery charger
  power: supply: bq27xxx: Remove duplicate chip data arrays
  tools: PCI: Add a missing option help line
  misc: pci_endpoint_test: Enable/Disable MSI using module param
  misc: pci_endpoint_test: Avoid using hard-coded BAR sizes
  misc: pci_endpoint_test: Add support to not enable MSI interrupts
  misc: pci_endpoint_test: Add support to provide aligned buffer addresses
  misc: pci_endpoint_test: Add support for PCI_ENDPOINT_TEST regs to be mapped to any BAR
  PCI: designware-ep: Do not disable BARs during initialization
  PCI: dra7xx: Reset all BARs during initialization
  PCI: dwc: designware: Provide page_size to pci_epc_mem
  PCI: endpoint: Remove the ->remove() callback
  PCI: endpoint: Add support to poll early for host commands
  PCI: endpoint: Add support to use _any_ BAR to map PCI_ENDPOINT_TEST regs
  PCI: endpoint: Do not reset *command* inadvertently
  PCI: endpoint: Add "volatile" to pci_epf_test_reg
  PCI: endpoint: Add support for configurable page size
  PCI: endpoint: Make ->remove() callback optional
  i2c: nomadik: constify amba_id
  i2c: versatile: Make i2c_algo_bit_data const
  i2c: busses: make i2c_adapter_quirks const
  PCI: layerscape: Move generic init functions earlier in file
  PCI: layerscape: Add class code and multifunction fixups for ls1021a
  PCI: layerscape: Move STRFMR1 access out from the DBI write-enable bracket
  i2c: busses: make i2c_adapter const
  i2c: busses: make i2c_algorithm const
  PCI: layerscape: Call dw_pcie_setup_rc() from ls_pcie_host_init()
  spi: imx: fix use of native chip-selects with devicetree
  ASoC: tas2552: Fix fraction overflow in PLL calculation
  PCI: Warn periodically while waiting for non-CRS ("device ready") status
  PCI: Wait up to 60 seconds for device to become ready after FLR
  PCI: Factor out pci_bus_wait_crs()
  PCI: Add pci_bus_crs_vendor_id() to detect CRS response data
  PCI: Always check for non-CRS response before timeout
  ASoC: rockchip: Update description of rockchip, codec
  ASoC: rockchip: Add support for DMIC codec
  leds: gpio: Allow LED to retain state at shutdown
  dt-bindings: leds: gpio: Add optional retain-state-shutdown property
  leds: powernv: Delete an error message for a failed memory allocation in powernv_led_create()
  leds: lp8501: make several arrays static const
  leds: lp5562: make several arrays static const
  leds: lp5521: make several arrays static const
  leds: aat1290: make array max_mm_current_percent static const
  leds: pca955x: Prevent crippled LED device name
  leds: lm3533: constify attribute_group structure
  dt-bindings: leds: add pca955x
  ASoC: rockchip: Add support for DP codec
  ASoC: rockchip: Parse dai links from dts
  ASoC: rockchip: Use codec of_node and dai_name for rt5514 dsp
  ASoC: Intel: kbl: Add map for Maxim IV Feedback
  ASoC: rt5514: Guard Hotword Model bytes loading
  ASoC: fsl_dma: remove dma_object path member
  ASoC: Intel: kbl: Add jack port initialize in kbl machine drivers
  ASoC: Intel: kbl: Add MST route change to kbl machine drivers
  PCI: rockchip: Umap IO space if probe fails
  PCI: rockchip: Remove IRQ domain if probe fails
  PCI: rockchip: Disable vpcie0v9 if resume_noirq fails
  PCI: rockchip: Clean up PHY if driver probe or resume fails
  PCI: rockchip: Factor out rockchip_pcie_deinit_phys()
  PCI: rockchip: Factor out rockchip_pcie_disable_clocks()
  PCI: rockchip: Factor out rockchip_pcie_enable_clocks()
  PCI: rockchip: Factor out rockchip_pcie_setup_irq()
  PCI: rockchip: Use gpiod_set_value_cansleep() to allow reset via expanders
  PCI: rockchip: Use PCI_NUM_INTX
  PCI: rockchip: Explicitly request exclusive reset control
  dt-bindings: phy-rockchip-pcie: Convert to per-lane PHY model
  dt-bindings: PCI: rockchip: Convert to per-lane PHY model
  arm64: dts: rockchip: convert PCIe to use per-lane PHYs for rk3339
  net: stmmac: constify clk_div_table
  samples/bpf: xdp_monitor tool based on tracepoints
  samples/bpf: xdp_redirect load XDP dummy prog on TX device
  xdp: separate xdp_redirect tracepoint in map case
  xdp: separate xdp_redirect tracepoint in error case
  xdp: make xdp tracepoints report bpf prog id instead of prog_tag
  xdp: tracepoint xdp_redirect also need a map argument
  xdp: remove redundant argument to trace_xdp_redirect
  dt-binding: net/phy: fix interrupts description
  f2fs: trigger fdatasync for non-atomic_write file
  f2fs: fix to avoid race in between aio and gc
  f2fs: wake up discard_thread iff there is a candidate
  f2fs: return error when accessing insane flie offset
  f2fs: trigger normal fsync for non-atomic_write file
  f2fs: clear FI_HOT_DATA correctly
  f2fs: fix out-of-order execution in f2fs_issue_flush
  f2fs: issue discard commands if gc_urgent is set
  bsg: remove #if 0'ed code
  mq-deadline: Enable auto-loading when built as module
  bfq: Re-enable auto-loading when built as a module
  addrlabel: add/delete/get can run without rtnl
  selftests: add addrlabel add/delete to rtnetlink.sh
  staging: irda: update MAINTAINERS
  bnxt_en: add a dummy definition for bnxt_vf_rep_get_fid()
  mtd: nand: complain loudly when chip->bits_per_cell is not correctly initialized
  mtd: nand: make Samsung SLC NAND usable again
  block: Make blk_dequeue_request() static
  skd: Let the block layer core choose .nr_requests
  skd: Remove blk_queue_bounce_limit() call
  KVM: s390: we are always in czam mode
  perf symbols: Fix plt entry calculation for ARM and AARCH64
  s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs
  s390/dasd: Add discard support for FBA devices
  s390/zcrypt: make CPRBX const
  s390/uaccess: avoid mvcos jump label
  s390/mm: use generic mm_hooks
  s390/facilities: fix typo
  s390/vmcp: simplify vmcp_response_free()
  dt-bindings: ata: add DT bindings for MediaTek SATA controller
  perf probe: Fix kprobe blacklist checking condition
  virt: Convert to using %pOF instead of full_name
  macintosh: Convert to using %pOF instead of full_name
  ide: pmac: Convert to using %pOF instead of full_name
  microblaze: Convert to using %pOF instead of full_name
  clocksource/drivers/bcm2835: Remove message for a memory allocation failure
  MIPS: CM: Use BIT/GENMASK for register fields, order & drop shifts
  MIPS: CM: Specify register size when generating accessors
  MIPS: CM: Rename mips_cm_base to mips_gcr_base
  MIPS: math-emu: Add FP emu debugfs stats for individual instructions
  MIPS: math-emu: Add FP emu debugfs clear functionality
  MIPS: math-emu: Add FP emu debugfs statistics for branches
  MIPS: math-emu: CLASS.D: Zero bits 32-63 of the result
  MIPS: math-emu: RINT.<D|S>: Fix several problems by reimplementation
  MIPS: math-emu: CMP.Sxxx.<D|S>: Prevent occurrences of SIGILL crashes
  MIPS: math-emu: <MADDF|MSUBF>.D: Fix accuracy (64-bit case)
  MIPS: math-emu: <MADDF|MSUBF>.S: Fix accuracy (32-bit case)
  MIPS: math-emu: <MADDF|MSUBF>.<D|S>: Clean up "maddf_flags" enumeration
  MIPS: math-emu: <MADDF|MSUBF>.<D|S>: Fix some cases of zero inputs
  MIPS: math-emu: <MADDF|MSUBF>.<D|S>: Fix some cases of infinite inputs
  MIPS: math-emu: <MADDF|MSUBF>.<D|S>: Fix NaN propagation
  MIPS: math-emu: MINA.<D|S>: Fix some cases of infinity and zero inputs
  MIPS: math-emu: <MAXA|MINA>.<D|S>: Fix cases of both infinite inputs
  MIPS: math-emu: <MAXA|MINA>.<D|S>: Fix cases of input values with opposite signs
  MIPS: math-emu: <MAX|MIN>.<D|S>: Fix cases of both inputs negative
  MIPS: math-emu: <MAX|MAXA|MIN|MINA>.<D|S>: Fix cases of both inputs zero
  MIPS: math-emu: <MAX|MAXA|MIN|MINA>.<D|S>: Fix quiet NaN propagation
  MIPS: Declare various variables & functions static
  MIPS: Remove plat_timer_setup()
  MIPS: Remove __invalidate_kernel_vmap_range
  MIPS: math-emu: Correct user fault_addr type
  MIPS: Include linux/initrd.h for free_initrd_mem()
  MIPS: Include elf-randomize.h for arch_mmap_rnd() & arch_randomize_brk()
  MIPS: Include asm/delay.h for __{,n,u}delay()
  MIPS: Include linux/cpu.h for arch_cpu_idle()
  MIPS: Include asm/setup.h for cpu_cache_init()
  MIPS: generic: Include asm/time.h for get_c0_*_int()
  MIPS: generic: Include asm/bootinfo.h for plat_fdt_relocated()
  MIPS: Consolidate coherent and non-coherent dma_alloc code
  MIPS: configs: Add Onion Omega2+ defconfig
  MIPS: Add Onion Omega2+ board
  MIPS: configs: Add VoCore2 defconfig
  MIPS: dts: Add Vocore2 board
  dt-bindings: vendors: Add VoCore as a vendor
  MIPS: dts: ralink: Add Mediatek MT7628A SoC
  MIPS: Alchemy: Threaded carddetect irqs for devboards
  MIPS: Alchemy: update cpu feature overrides
  MIPS: Alchemy: Add devboard machine type to cpuinfo
  MIPS: math-emu: do not use bools for arithmetic
  MIPS: dts: Ci20: Add ethernet and fixed-regulator nodes
  MIPS: Ci20: Enable GPIO driver
  MIPS: generic: Move NI 169445 FIT image source to its own file
  MIPS: generic: Move Boston FIT image source to its own file
  MIPS: Allow platform to specify multiple its.S files
  MIPS: Octeon: Expose support for mips32r1, mips32r2 and mips64r1
  MIPS: signal: Remove unreachable code from force_fcr31_sig().
  MIPS: NI 169445 board support
  MIPS: pci-mt7620: explicitly request exclusive reset control
  MIPS: pistachio: Enable Root FS on NFS in defconfig
  MIPS: NUMA: Remove the unused parent_node() macro
  MIPS: Octeon: cavium_octeon_defconfig: Enable more drivers
  MIPS: Remove unused ST_OFF from r2300_switch.S
  MIPS: Move r2300 FP code from r2300_switch.S to r2300_fpu.S
  MIPS: Move r4k FP code from r4k_switch.S to r4k_fpu.S
  MIPS: Remove unused R6000 support
  MIPS: R6: Constify r2_decoder_tables
  MIPS: SMP: Constify smp ops
  MIPS: defconfig: Cleanup from non-existing options
  MIPS: Convert to using %pOF instead of full_name
  KVM: s390: expose no-DAT to guest and migration support
  KVM: s390: sthyi: remove invalid guest write access
  KVM: s390: Multiple Epoch Facility support
  locking/lockdep/selftests: Fix mixed read-write ABBA tests
  sched/completion: Avoid unnecessary stack allocation for COMPLETION_INITIALIZER_ONSTACK()
  acpi/nfit: Fix COMPLETION_INITIALIZER_ONSTACK() abuse
  locking/pvqspinlock: Relax cmpxchg's to improve performance on some architectures
  smp: Avoid using two cache lines for struct call_single_data
  locking/lockdep: Untangle xhlock history save/restore from task independence
  perf/x86: Fix caps/ for !Intel
  perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR
  perf/core, pt, bts: Get rid of itrace_started
  ALSA: aoa: Convert to using %pOF instead of full_name
  Documentation: Hardware tag matching
  IB/mlx5: Support IB_SRQT_TM
  net/mlx5: Add XRQ support
  IB/mlx5: Fill XRQ capabilities
  IB/uverbs: Expose XRQ capabilities
  IB/uverbs: Add new SRQ type IB_SRQT_TM
  IB/uverbs: Add XRQ creation parameter to UAPI
  IB/core: Add new SRQ type IB_SRQT_TM
  IB/core: Separate CQ handle in SRQ context
  IB/core: Add XRQ capabilities
  net/mlx5: Update HW layout definitions
  ARM: 8692/1: mm: abort uaccess retries upon fatal signal
  ARM: 8690/1: lpae: build TTB control register value from scratch in v7_ttb_setup
  mux: make device_type const
  powerpc/64s: idle POWER9 can execute stop in virtual mode
  powerpc/64s: Drop no longer used IDLE_STATE_ENTER_SEQ
  powerpc/64s: POWER9 can execute stop without a sync sequence
  powerpc/64s: Move IDLE_STATE_ENTER_SEQ[_NORET] into idle_book3s.S
  x86/platform/intel-mid: Make several arrays static, to make code smaller
  x86/entry/64: Use ENTRY() instead of ALIGN+GLOBAL for stub32_clone()
  x86/fpu/math-emu: Add ENDPROC to functions
  x86/boot/64: Extract efi_pe_entry() from startup_64()
  x86/boot/32: Extract efi_pe_entry() from startup_32()
  locking/refcounts, x86/asm: Disable CONFIG_ARCH_HAS_REFCOUNT for the time being
  power: supply: bq27xxx: Enable data memory update for certain chips
  power: supply: bq27xxx: Add chip IDs for previously shadowed chips
  power: supply: bq27xxx: Create single chip data table
  power: supply: bq24190_charger: Add ti,bq24192i to devicetree table
  power: supply: bq24190_charger: Add input_current_limit property
  power: supply: Add power_supply_set_input_current_limit_from_supplier helper
  i2c: Add Spreadtrum I2C controller driver
  dt-bindings: i2c: Add Spreadtrum I2C controller documentation
  i2c-cht-wc: make cht_wc_i2c_adap_driver static
  x86/idt: Hide set_intr_gate()
  x86/idt: Simplify alloc_intr_gate()
  x86/idt: Deinline setup functions
  x86/idt: Remove unused functions/inlines
  x86/idt: Move interrupt gate initialization to IDT code
  x86/idt: Move APIC gate initialization to tables
  x86/idt: Move regular trap init to tables
  x86/idt: Move IST stack based traps to table init
  x86/idt: Move debug stack init to table based
  x86/idt: Switch early trap init to IDT tables
  x86/idt: Prepare for table based init
  x86/idt: Move early IDT setup out of 32-bit asm
  x86/idt: Move early IDT handler setup to IDT code
  x86/idt: Consolidate IDT invalidation
  x86/idt: Remove unused set_trap_gate()
  x86/idt: Move 32-bit idt_descr to C code
  x86/idt: Create file for IDT related code
  x86/ldttss: Clean up 32-bit descriptors
  x86/gdt: Use bitfields for initialization
  x86/asm: Replace access to desc_struct:a/b fields
  x86/fpu: Use bitfield accessors for desc_struct
  x86/percpu: Use static initializer for GDT entry
  x86/idt: Unify gate_struct handling for 32/64-bit kernels
  x86/tracing: Build tracepoints only when they are used
  MAINTAINERS: Add entry for drivers/i2c/busses/i2c-cht-wc.c
  power: supply: max17042_battery: Fix compiler warning
  rxrpc: Allow failed client calls to be retried
  rxrpc: Add notification of end-of-Tx phase
  rxrpc: Remove some excess whitespace
  rxrpc: Don't negate call->error before returning it
  rxrpc: Fix IPv6 support
  rxrpc: Use correct timestamp from Kerberos 5 ticket
  x86/irq_work: Make it depend on APIC
  x86/ipi: Make platform IPI depend on APIC
  x86/tracing: Disentangle pagefault and resched IPI tracing key
  x86/idt: Clean up the i386 low level entry macros
  x86/idt: Remove the tracing IDT completely
  x86/smp: Use static key for reschedule interrupt tracing
  x86/smp: Remove pointless duplicated interrupt code
  x86/mce: Remove duplicated tracing interrupt code
  x86/irqwork: Get rid of duplicated tracing interrupt code
  x86/apic: Remove the duplicated tracing versions of interrupts
  x86/irq: Get rid of duplicated trace_x86_platform_ipi() code
  x86/apic: Use this_cpu_ptr() in local_timer_interrupt()
  x86/apic: Remove the duplicated tracing version of local_timer_interrupt()
  x86/traps: Simplify pagefault tracing logic
  x86/tracing: Introduce a static key for exception tracing
  x86/boot: Move EISA setup to a separate file
  x86/irq: Remove duplicated used_vectors definition
  x86/irq: Get rid of the 'first_system_vector' indirection bogosity
  x86/irq: Unexport used_vectors[]
  x86/irq: Remove vector_used_by_percpu_irq()
  net: rxrpc: Replace time_t type with time64_t type
  devicetree: bindings: Remove deprecated properties
  devicetree: bindings: Remove unused 32-bit CMT bindings
  devicetree: bindings: Deprecate property, update example
  devicetree: bindings: r8a73a4 and R-Car Gen2 CMT bindings
  devicetree: bindings: R-Car Gen2 CMT0 and CMT1 bindings
  devicetree: bindings: Remove sh7372 CMT binding
  clocksource/drivers/imx-tpm: Add imx tpm timer support
  dt-bindings: timer: Add nxp tpm timer binding doc
  x86/microcode/intel: Improve microcode patches saving flow
  x86/mm: Fix SME encryption stack ptr handling
  nvme: don't blindly overwrite identifiers on disk revalidate
  nvme: remove nvme_revalidate_ns
  nvme: remove unused struct nvme_ns fields
  nvme: allow calling nvme_change_ctrl_state from irq context
  nvme: report more detailed status codes to the block layer
  dma-mapping: remove dma_alloc_noncoherent and dma_free_noncoherent
  i825xx: switch to switch to dma_alloc_attrs
  au1000_eth: switch to dma_alloc_attrs
  sgiseeq: switch to dma_alloc_attrs
  tty: hvcs: make ktermios const
  usb: core: usbport: fix "BUG: key not in .data" when lockdep is enabled
  staging: comedi: coding style fixes found by checkpatch.pl
  Staging: ks7010: Fix alignment should match open parenthesis.
  staging: rtl8723bs: hal: remove cast to void pointer
  staging: rtl8723bs: os_dep: remove cast to void pointer
  staging: rtl8723bs: core: remove cast to void pointer
  staging: rtl8188eu: remove unnecessary call to memset
  staging: rtlwifi: remove memset before memcpy
  staging: typec: tcpm: Switch to PORT_RESET instead of SNK_UNATTACHED
  staging: typec: tcpm: Do not send PING msgs in TCPM
  staging: typec: tcpm: typec: tcpm: Wait for CC debounce before PD excg
  staging: typec: tcpm: add cc change handling in src states
  staging: typec: tcpm: Consider port_type while determining unattached_state
  staging: typec: tcpm: Comply with TryWait.SNK State
  staging: typec: tcpm: Follow Try.SRC exit requirements
  staging: typec: tcpm: Check for Rp for tPDDebounce
  staging: typec: tcpm: Prevent TCPM from looping in SRC_TRYWAIT
  staging: typec: tcpm: Check for port type for Try.SRC/Try.SNK
  staging: typec: tcpm: set port type callback
  KVM: PPC: Book3S HV: POWER9 does not require secondary thread management
  hinic: don't build the module by default
  dmaengine: altera: Use macros instead of structs to describe the registers
  scsi: qlogicpti: fixup qlogicpti_reset() definition
  scsi: qedi: off by one in qedi_get_cmd_from_tid()
  drm/syncobj: Add a signal ioctl (v3)
  drm/syncobj: Add a reset ioctl (v3)
  bnxt_en: add code to query TC flower offload stats
  bnxt_en: add TC flower offload flow_alloc/free FW cmds
  bnxt_en: bnxt: add TC flower filter offload support
  bnxt_en: fix clearing devlink ptr from bnxt struct
  bnxt_en: Reduce default rings on multi-port cards.
  bnxt_en: Improve -ENOMEM logic in NAPI poll loop.
  bnxt: initialize board_info values with proper enums
  bnxt: Add PCIe device IDs for bcm58802/bcm58808
  bnxt_en: assign CPU affinity hints to bnxt_en IRQs
  bnxt_en: Improve tx ring reservation logic.
  bnxt_en: Update firmware interface spec. to 1.8.1.4.
  ftgmac100: Support NCSI VLAN filtering when available
  net/ncsi: Configure VLAN tag filter
  net/ncsi: Fix several packet definitions
  net-next/hinic: fix comparison of a uint16_t type with -1
  net-next/hinic: Fix MTU limitation
  staging: irda: add a TODO file.
  irda: move include/net/irda into staging subdirectory
  irda: move drivers/net/irda to drivers/staging/irda/drivers
  irda: move net/irda/ to drivers/staging/irda/net/
  intel_pstate: convert to use acpi_match_platform_list()
  ACPI / blacklist: add acpi_match_platform_list()
  dpaa_eth: check allocation result
  Documentation: networking: add RSS information
  dpaa_eth: add NETIF_F_RXHASH
  dpaa_eth: enable Rx hashing control
  dpaa_eth: use multiple Rx frame queues
  fsl/fman: enable FMan Keygen
  fsl/fman: move struct fman to header file
  IB/rxe: Handle NETDEV_CHANGE events
  IB/rxe: Avoid ICRC errors by copying into the skb first
  IB/rxe: Another fix for broken receive queue draining
  IB/rxe: Remove unneeded initialization in prepare6()
  IB/rxe: Fix up rxe_qp_cleanup()
  IB/rxe: Add dst_clone() in prepare_ipv6_hdr()
  IB/rxe: Fix destination cache for IPv6
  IB/rxe: Fix up the responder's find_resources() function
  IB/rxe: Remove dangling prototype
  IB/rxe: Disable completion upcalls when a CQ is destroyed
  IB/rxe: Move refcounting earlier in rxe_send()
  IB/rdmavt: Handle dereg of inuse MRs properly
  IB/qib: Convert qp_stats debugfs interface to use new iterator API
  IB/hfi1: Convert qp_stats debugfs interface to use new iterator API
  IB/hfi1: Convert hfi1_error_port_qps() to use new QP iterator
  IB/rdmavt: Add QP iterator API for QPs
  IB/hfi1: Use accessor to determine ring size
  IB/qib: Stricter bounds checking for copy to buffer
  IB/hif1: Remove static tracing from SDMA hot path
  IB/hfi1: Acquire QSFP cable information on loopback
  i40iw: make some structures const
  IB/hfi1: constify vm_operations_struct
  RDMA/bnxt_re: remove unnecessary call to memset
  IB/usnic: check for allocation failure
  IB/hfi1: Add opcode states to qp_stats
  IB/hfi1: Add received request info to qp_stats
  IB/hfi1: Fix whitespace alignment issue for MAD
  IB/hfi1: Move structure and MACRO definitions in user_sdma.c to user_sdma.h
  IB/hfi1: Move structure definitions from user_exp_rcv.c to user_exp_rcv.h
  IB/hfi1: Remove duplicate definitions of num_user_pages() function
  IB/hfi1: Fix the bail out code in pin_vector_pages() function
  IB/hfi1: Clean up pin_vector_pages() function
  IB/hfi1: Clean up user_sdma_send_pkts() function
  IB/hfi1: Clean up hfi1_user_exp_rcv_setup function
  IB/hfi1: Improve local kmem_cache_alloc performance
  IB/hfi1: Ratelimit prints from sdma_interrupt
  IB/qib: Stricter bounds checking for copy and array access
  IB/qib: Remove unnecessary memory allocation for boardname
  IB/{qib, hfi1}: Avoid flow control testing for RDMA write operation
  IB/rdmavt: Use rvt_put_swqe() in rvt_clear_mr_ref()
  net: ethernet: broadcom: Remove null check before kfree
  sched: sfq: drop packets after root qdisc lock is released
  sparc: leon: grpci1: constify of_device_id
  sparc: leon: grpci2: constify of_device_id
  mlxsw: spectrum_dpipe: Fix host table dump
  mlxsw: spectrum: compile-in dpipe support only if devlink is enabled
  sparc64: vcc: Check for IS_ERR() instead of NULL
  hv_sock: implements Hyper-V transport for Virtual Sockets (AF_VSOCK)
  selftests/bpf: check the instruction dumps are populated
  ACPI, APEI, EINJ: Subtract any matching Register Region from Trigger resources
  bpf: fix oops on allocation failure
  cpufreq: imx6q: Fix imx6sx low frequency support
  cpufreq: speedstep-lib: make several arrays static, makes code smaller
  ARC: [plat-eznps] handle extra aux regs #2: kernel/entry exit
  ARC: [plat-eznps] handle extra aux regs #1: save/restore on context switch
  ARC: [plat-eznps] avoid toggling of DPC register
  ARC: [plat-eznps] Update the init sequence of aux regs per cpu.
  ARC: [plat-eznps] new command line argument for HW scheduler at MTM
  ARC: set boot print log level to PR_INFO
  ARC: [plat-eznps] Handle user memory error same in simulation and silicon
  ARC: [plat-eznps] use schd.wft instruction instead of sleep at idle task
  ARC: create cpu specific version of arch_cpu_idle()
  ARC: [plat-eznps] spinlock aware for MTM
  ARC: spinlock: Document the EX based spin_unlock
  ARC: [plat-eznps] disabled stall counter due to a HW bug
  ARC: [plat-eznps] Fix TLB Errata
  ARC: [plat-eznps] typo fix at Kconfig
  ARC: typos fix in kernel/entry-compact.S
  ARC: typo fix in mm/fault.c
  net: Add comment that early_demux can change via sysctl
  PM: docs: Delete the obsolete states.txt document
  PM: docs: Describe high-level PM strategies and sleep states
  xen-netback: update ubuf_info initialization to anonymous union
  samples/bpf: extend test_tunnel_bpf.sh with ERSPAN
  gre: add collect_md mode to ERSPAN tunnel
  gre: refactor the gre_fb_xmit
  PCI: iproc: Work around Stingray CRS defects
  PCI: iproc: Factor out memory-mapped config access address calculation
  selinux: constify nf_hook_ops
  Revert "ipv4: make net_protocol const"
  nbd: make device_attribute const
  null_blk: use available 'dev' in nullb_device_power_store()
  block/nullb: delete unnecessary memory free
  drm/syncobj: Add a syncobj_array_find helper
  drm/syncobj: Allow wait for submit and signal behavior (v5)
  drm/syncobj: Add a CREATE_SIGNALED flag
  drm/syncobj: Add a callback mechanism for replace_fence (v3)
  drm/syncobj: add sync obj wait interface. (v8)
  i915: Use drm_syncobj_fence_get
  drm/syncobj: Add a race-free drm_syncobj_fence_get helper (v2)
  drm/syncobj: Rename fence_get to find_fence
  nvme: honor RTD3 Entry Latency for shutdowns
  nvme: fix uninitialized prp2 value on small transfers
  nvme-rdma: Use unlikely macro in the fast path
  nvmet: use memcpy_and_pad for identify sn/fr
  string.h: add memcpy_and_pad()
  nvmet-fc: simplify sg list handling
  nvme-fc: Reattach to localports on re-registration
  nvme: rename AMS symbolic constants to fit specification
  nvme: add symbolic constants for CC identifiers
  nvme: fix identify namespace logging
  nvme-fabrics: log a warning if hostid is invalid
  nvme-rdma: call ops->reg_read64 instead of nvmf_reg_read64
  nvme-rdma: cleanup error path in controller reset
  nvme-rdma: introduce nvme_rdma_start_queue
  nvme-rdma: rename nvme_rdma_init_queue to nvme_rdma_alloc_queue
  nvme-rdma: stop queues instead of simply flipping their state
  nvme-rdma: introduce configure/destroy io queues
  nvme-rdma: reuse configure/destroy_admin_queue
  nvme-rdma: don't free tagset on resets
  perf trace beauty: Beautify pkey_{alloc,free,mprotect} arguments
  tools headers: Sync cpu features kernel ABI headers with tooling headers
  perf tools: Pass full path of FEATURES_DUMP
  perf tools: Robustify detection of clang binary
  tools lib: Allow external definition of CC, AR and LD
  perf tools: Allow external definition of flex and bison binary names
  tools build tests: Don't hardcode gcc name
  perf report: Group stat values on global event id
  perf values: Zero value buffers
  perf values: Fix allocation check
  perf values: Fix thread index bug
  perf report: Add dump_read function
  nvme-rdma: disable the controller on resets
  nvme-rdma: move tagset allocation to a dedicated routine
  nvme: Add admin_tagset pointer to nvme_ctrl
  nvme-rdma: move nvme_rdma_configure_admin_queue code location
  nvme-rdma: remove NVME_RDMA_MAX_SEGMENT_SIZE
  nvmet-fcloop: remove ALL_OPTS define
  nvmet: fix the return error code of target if host is not allowed
  nvmet: use NVME_NSID_ALL
  nvme: add support for NVMe 1.3 Timestamp Feature
  nvme: define NVME_NSID_ALL
  nvme: add support for FW activation without reset
  drm: kirin: Add mode_valid logic to avoid mode clocks we can't generate
  pty: show associative slave of ptmx in fdinfo
  tty: n_gsm: Add compat_ioctl
  tty: hvcs: constify vio_device_id
  tty: hvc_vio: constify vio_device_id
  tty: mips_ejtag_fdc: constify mips_cdmm_device_id
  Introduce 8250_men_mcb
  mcb: introduce mcb_get_resource()
  serial: imx: Avoid post-PIO cleanup if TX DMA is started
  tty: serial: imx: disable irq after suspend
  serial: 8250_uniphier: add suspend/resume support
  serial: 8250_uniphier: use CHAR register for canary to detect power-off
  serial: 8250_uniphier: fix serial port index in private data
  serial: 8250: of: Add new port type for MediaTek BTIF controller on MT7622/23 SoC
  dt-bindings: serial: 8250: Add MediaTek BTIF controller bindings
  serial: earlycon: Only try fdt when specify 'earlycon' exactly
  serial: mux: constify uart_ops structures
  serial: sunsu: constify uart_ops structures
  serial: mpc52xx: constify uart_ops structures
  serial: m32r_sio: constify uart_ops structures
  serial: cpm_uart: constify uart_ops structures
  serial: apbuart: constify uart_ops structures
  serial: sunsab: constify uart_ops structures
  serial: 21285: constify uart_ops structures
  serial: uuc_uart: constify uart_ops structures
  tty: mux: constify parisc_device_id
  tty: 8250: constify parisc_device_id
  serial: 8250_of: Add basic PM runtime support
  serial: 8250_of: use of_property_read_bool()
  serial: 8250: Use hrtimers for rs485 delays
  serial: core: Consider rs485 settings to drive RTS
  tty: serial: 8250_mtk: Use PTR_ERR_OR_ZERO
  dt-bindings: serial: sh-sci: Add support for r8a77995 (H)SCIF
  serial: sh-sci: use of_property_read_bool()
  serial: Fix port type numbering for TI DA8xx
  serial: Remove unused port type
  serial: pch_uart: Make port type explicit
  serial: core: remove unneeded irq_wake flag
  serial: stm32-usart: Avoid using irq_wake flag
  serial: st-asc: Avoid using irq_wake flag
  serial: fsl_lpuart: Avoid using irq_wake flag
  tty: serial: msm: Move request_irq to the end of startup
  serial: pch_uart: Remove unneeded NULL check
  tty: serial: sprd: fix error return code in sprd_probe()
  serial: meson: constify uart_ops structures
  serial: owl: constify uart_ops structures
  serial: stm32: fix pio transmit timeout
  serial: pl011: constify amba_id
  serial: pl010: constify amba_id
  tty: amba-pl011: constify vendor_data structures
  PCI: rockchip: Idle inactive PHY(s)
  phy: rockchip-pcie: Reconstruct driver to support per-lane PHYs
  PCI: rockchip: Add per-lane PHY support
  RDS: make rhashtable_params const
  ipv4: make net_protocol const
  bridge: make ebt_table const
  bpf: test_maps add sockmap stress test
  bpf: sockmap requires STREAM_PARSER add Kconfig entry
  bpf: sockmap indicate sock events to listeners
  bpf: harden sockmap program attach to ensure correct map type
  bpf: more SK_SKB selftests
  bpf: additional sockmap self tests
  bpf: sockmap add missing rcu_read_(un)lock in smap_data_ready
  bpf: sockmap, remove STRPARSER map_flags and add multi-map support
  bpf: convert sockmap field attach_bpf_fd2 to type
  ata: mediatek: add support for MediaTek SATA controller
  pata_octeon_cf: use of_property_read_{bool|u32}()
  Input: PS/2 gpio bit banging driver for serio bus
  Input: xen-kbdfront - enable auto repeat for xen keyboard frontend driver
  block: fix warning when I/O elevator is changed as request_queue is being removed
  power: supply: core: Delete two error messages for a failed memory allocation in power_supply_check_supplies()
  power: supply: make device_attribute const
  dmaengine: ti-dma-crossbar: Fix dra7 reserve function
  power: supply: max17042_battery: Fix ACPI interrupt issues
  power: supply: max17042_battery: Add support for ACPI enumeration
  netfilter: rt: account for tcp header size too
  netfilter: conntrack: remove unused code in nf_conntrack_proto_generic.c
  netfilter: Remove NFDEBUG()
  i2c: aspeed: Retain delay/setup/hold values when configuring bus frequency
  Do not disable driver and bus shutdown hook when class shutdown hook is set.
  block, scheduler: convert xxx_var_store to void
  char: virtio: constify attribute_group structures.
  Documentation/ABI: document the nvmem sysfs files
  netfilter: conntrack: don't log "invalid" icmpv6 connections
  drm/vmwgfx: Bump the version for fence FD support
  drm/vmwgfx: Add export fence to file descriptor support
  drm/vmwgfx: Add support for imported Fence File Descriptor
  drm/vmwgfx: Prepare to support fence fd
  base: topology: constify attribute_group structures.
  base: Convert to using %pOF instead of full_name
  dm ioctl: constify ioctl lookup table
  dm: constify argument arrays
  dm integrity: count and display checksum failures
  dm integrity: optimize writing dm-bufio buffers that are partially changed
  lkdtm: fix spelling mistake: "incremeted" -> "incremented"
  netfilter: core: batch nf_unregister_net_hooks synchronize_net calls
  netfilter: debug: check for sorted array
  netfilter: convert hook list to an array
  netfilter: fix a few (harmless) sparse warnings
  dmaengine: pl330: constify amba_id
  dmaengine: pl08x: constify amba_id
  drm/vmwgfx: Fix incorrect command header offset at restart
  drm/vmwgfx: Support the NOP_ERROR command
  drm/vmwgfx: Restart command buffers after errors
  drm/vmwgfx: Move irq bottom half processing to threads
  drm/vmwgfx: Don't use drm_irq_[un]install
  dt-bindings: i2c: eeprom: Document vendor to be used and deprecated ones
  perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
  nvmem: include linux/err.h from header
  nvmem: core: remove unneeded NULL check
  nvmem: core: Add nvmem_cell_read_u32
  nvmem: Convert to using %pOF instead of full_name
  nvmem: lpc18xx-eeprom: explicitly request exclusive reset control
  i2c: i801: Restore the presence state of P2SB PCI device after reading BAR
  parport: use release_mem_region instead of release_resource
  parport: cleanup statics initialization to NULL or 0
  parport_pc: use pr_cont
  drivers: w1: Add 1w slave driver for DS28E05 EEPROM
  drivers: w1: Extend 1W master driver DS2482 with module option to support PPM/SPU/1WS features
  w1: ds2438: make several functions static
  w1: ds1wm: add messages to make incorporation in mfd-drivers easier
  w1: ds1wm: silence interrupts on HW before claiming the interrupt
  w1: ds1wm: add level interrupt modes
  w1: ds1wm: make endian clean and use standard io memory accessors
  w1: ds1wm: fix register offset (bus shift) calculation
  w1: ds2490: constify usb_device_id and fix space before '[' error
  char: tlclk: constify attribute_group structures.
  w1: constify attribute_group structures.
  drivers/fsi/scom: Remove reset before every putscom
  drivers/fsi: add const to bin_attribute structures
  arm64: dts: uniphier: add PXs3 SoC support
  mux: zap mux- prefix from the source files
  mux: include compiler.h from mux/consumer.h
  mux: convert to using %pOF instead of full_name
  applicom: constify pci_device_id.
  char: xilinx_hwicap: Fix warnings in the driver
  char: xilinx_hwicap: Fix kernel doc warnings
  ARM: dts: uniphier: add pinctrl groups of ethernet phy mode
  ARM: dts: uniphier: fix size of sdctrl nodes
  ARM: dts: uniphier: add AIDET nodes
  arm64: dts: uniphier: fix size of sdctrl node
  arm64: dts: uniphier: add AIDET nodes
  vmci: fix duplicated code for different branches
  misc: apds9802als: constify i2c_device_id
  misc: hmc6352: constify i2c_device_id
  misc: isl29020: constify i2c_device_id
  misc: Convert to using %pOF instead of full_name
  misc: apds9802als: constify attribute_group structures.
  misc: apds990x: constify attribute_group structures.
  misc: bh1770glc: constify attribute_group structures.
  misc: isl29020: constify attribute_group structures.
  misc: lis3lv02d: constify attribute_group structures.
  misc: ti-st: constify attribute_group structures.
  MISC: add const to bin_attribute structures
  misc: pch_phub: constify pci_device_id.
  misc: hpilo: constify pci_device_id.
  misc: tifm: constify pci_device_id.
  misc: ioc4: constify pci_device_id.
  misc: eeprom_93xx46: Include <linux/gpio/consumer.h>
  misc: eeprom_93xx46: Simplify the usage of gpiod API
  firmware: vpd: use memunmap instead of iounmap
  kernfs: Clarify lockdep name for kn->count
  android: binder: Add shrinker tracepoints
  android: binder: Add global lru shrinker to binder
  android: binder: Move buffer out of area shared with user space
  android: binder: Add allocator selftest
  android: binder: Refactor prev and next buffer into a helper function
  raid5-ppl: Recovery support for multiple partial parity logs
  md: Runtime support for multiple ppls
  fbdev: uvesafb: remove DRIVER_ATTR() usage
  xen: xen-pciback: remove DRIVER_ATTR() usage
  driver core: Document struct device:dma_ops
  KVM: s390: Support Configuration z/Architecture Mode
  drivers/fmc: carrier can program FPGA on registration
  drivers/fmc: change registration prototype
  drivers/fmc: The only way to dump the SDB is from debugfs
  drivers/fmc: hide fmc operations behind helpers
  drivers/fmc: remove unused variable
  dm rq: do not update rq partially in each ending bio
  thunderbolt: Fix reset response_type
  thunderbolt: Allow clearing the key
  thunderbolt: Make key root-only accessible
  thunderbolt: Remove superfluous check
  mod_devicetable: Remove excess description from structured comment
  tty: undo export of tty_open_by_driver
  staging: speakup: use tty_kopen and tty_kclose
  tty: resolve tty contention between kernel and user space
  coresight: constify amba_id
  coresight: etb10: constify amba_id
  coresight: etm3x: constify amba_id
  coresight: etm4x: constify amba_id
  coresight: funnel: constify amba_id
  coresight: replicator: constify amba_id
  coresight: stm: constify amba_id
  coresight: tmc: constify amba_id
  coresight: tpiu: constify amba_id
  coresight: STM: Clean up __iomem type usage
  coresight: Add support for Coresight SoC 600 components
  coresight tmc: Add support for Coresight SoC 600 TMC
  coresight tmc: Support for save-restore in ETR
  coresight tmc etr: Setup AXI cache encoding for read transfers
  coresight tmc etr: Cleanup AXICTL register handling
  coresight tmc etr: Detect address width at runtime
  coresight tmc: Detect support for scatter gather
  coresight tmc etr: Add capabilitiy information
  coresight tmc: Handle configuration types properly
  coresight replicator: Expose replicator management registers
  coresight tmc: Expose DBA and AXICTL
  coresight tmc: Add helpers for accessing 64bit registers
  coresight: Use the new helper for defining registers
  coresight: Add support for reading 64bit registers
  coresight replicator: Cleanup programmable replicator naming
  coresight: etm4x: Adds trace return stack option programming for ETMv4.
  coresight: ptm: Adds trace return stack option programming for PTM.
  coresight: pmu: Adds return stack option to perf coresight pmu
  hwtracing: coresight: constify attribute_group structures.
  coresight: etm3x: Set synchronisation frequencty to TRM default
  coresight: etb10: Move etb_disable_hw() outside of lock
  coresight: Add barrier packet for synchronisation
  coresight: etb10: Remove useless conversion to LE
  coresight: Correct buffer lost increment
  perf record: Set read_format for inherit_stat
  perf c2c: Fix remote HITM detection for Skylake
  perf tools: Fix static build with newer toolchains
  perf stat: Fix path to PMU formats in documentation
  dm rq: make dm-sq requeuing behavior consistent with dm-mq behavior
  dm mpath: complain about unsupported __multipath_map_bio() return values
  dm mpath: avoid that building with W=1 causes gcc 7 to complain about fall-through
  powerpc/configs/6xx: Drop removed CONFIG_USB_LED
  powerpc/configs/6xx: Drop no longer selectable CONFIG_BT_HCIUART_LL
  powerpc/configs/c2k: Switch CONFIG_GEN_RTC from =m to =y
  powerpc/configs/6xx: Switch CONFIG_USB_EHCI_FSL to =m
  powerpc/configs/6xx: Drop no longer needed CONFIG_BT_HCIUART_H4
  powerpc/configs/6xx: Drop no longer needed CONFIG_NETFILTER_XT_MATCH_SOCKET
  powerpc/configs/6xx: Reinstate CONFIG_CPU_FREQ_STAT
  powerpc/configs/6xx: Drop no longer needed CONFIG_NF_CONNTRACK_PROC_COMPAT
  powerpc/configs/6xx: Drop removed CONFIG_BLK_DEV_HD
  powerpc/configs/6xx: Clean up duplicate CONFIG_EXT4 values
  powerpc/configs/6xx: Drop no longer needed CONFIG_TIMER_STATS
  powerpc/configs/6xx: Turn CONFIG_DRM_RADEON back on
  powerpc/configs/mpc5200: Drop no longer needed CONFIG_FB
  powerpc/configs: Update for CONFIG_INPUT_MOUSEDEV=n
  powerpc/configs: Drop removed CONFIG_LOGFS
  powerpc/configs: Turn CONFIG_R128 back in pmac32_defconfig
  powerpc/configs: Drop no longer needed CONFIG_LIBCRC32C
  powerpc/configs: Drop unnecessary CONFIG_EDAC from ppc64e
  powerpc/configs: Drop no longer needed CONFIG_SCSI
  powerpc/configs: Drop no longer needed CONFIG_IPV6
  powerpc/configs: Add CONFIG_RAS now required for CONFIG_EDAC
  powerpc/configs: Drop no longer needed CONFIG_AUDITSYSCALL
  powerpc/configs: Drop CONFIG_SERIAL_TXX9_* from cell/ppc64
  powerpc/configs: Drop MEMORY_HOTREMOVE from ppc64/cell
  powerpc/configs: Drop unnecessary CONFIG_POWERNV_OP_PANEL
  powerpc/configs: Drop no longer needed PCI_MSI on powernv
  powerpc/configs: Drop no longer needed CONFIG_SMP for pseries/ppc64/powernv
  powerpc/configs: Drop unnecessary CONFIG_UPROBE_EVENT
  powerpc/configs: Drop unnecessary CONFIG_NUMA_BALANCING_DEFAULT_ENABLED
  powerpc/configs: Drop no longer needed CONFIG_DEVPTS_MULTIPLE_INSTANCES
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_GCM
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_NULL in g5 / c2k
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_NULL
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_SHA256
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_ECB
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_HMAC
  powerpc/configs: Drop no longer needed CONFIG_CRYPTO_DEV_VMX_ENCRYPT
  powerpc/configs: Update for CONFIG_NF_CT_PROTO_(SCTP|UDPLITE)=y
  powerpc/configs: Update for CONFIG_FIXED_PHY being selected by CONFIG_OF_MDIO
  powerpc/configs: Update for CONFIG_DEBUG_FS being selected via CONFIG_RCU_TRACE
  powerpc/configs: Drop no longer needed CONFIG_DEVKMEM
  powerpc/configs: Drop no longer needed CONFIG_FHANDLE
  powerpc/configs: Explicitly drop CONFIG_INPUT_MOUSEDEV
  powerpc/configs: Drop unneeded CONFIG_CRYPTO_ANSI_CPRNG
  powerpc/configs: Update for symbol movement only
  powerpc/oops: Line up NIP & MSR with other rows
  powerpc/oops: Print CR/XER on same line as MSR
  powerpc/oops: Use IS_ENABLED() for oops markers
  powerpc/oops: Print the kernel's endian in the oops
  powerpc/oops: Fix the oops markers to use pr_cont()
  powerpc/powernv: Fix build error in opal-imc.c when NUMA=n
  Add documentation for the powerpc memtrace debugfs files
  spmi: pmic-arb: Move the ownership check to irq_chip callback
  spmi: Convert to using %pOF instead of full_name
  spmi: pmic-arb: Remove checking opc value not less than 0
  spmi: pmic-arb: add support for HW version 5
  spmi: pmic-arb: fix a possible null pointer dereference
  spmi: pmic-arb: return __iomem pointer instead of offset
  spmi: pmic-arb: use irq_chip callback to set spmi irq wakeup capability
  spmi: pmic-arb: return the value instead of passing by pointer
  spmi: pmic-arb: replace the writel_relaxed with __raw_writel
  spmi: pmic-arb: fix memory allocation for mapping_table
  spmi: pmic-arb: optimize qpnpint_irq_set_type function
  spmi: pmic-arb: clean up pmic_arb_find_apid function
  spmi: pmic-arb: rename pa_xx to pmic_arb_xx and other cleanup
  spmi: pmic-arb: remove the read/write access checks
  dmaengine: bcm-sba-raid: Remove redundant SBA_REQUEST_STATE_COMPLETED
  dmaengine: bcm-sba-raid: Explicitly ACK mailbox message after sending
  dmaengine: bcm-sba-raid: Add debugfs support
  dmaengine: bcm-sba-raid: Remove redundant SBA_REQUEST_STATE_RECEIVED
  dmaengine: bcm-sba-raid: Re-factor sba_process_deferred_requests()
  dmaengine: bcm-sba-raid: Pre-ack async tx descriptor
  dmaengine: bcm-sba-raid: Peek mbox when we have no free requests
  dmaengine: bcm-sba-raid: Alloc resources before registering DMA device
  dmaengine: bcm-sba-raid: Improve sba_issue_pending() run duration
  dmaengine: bcm-sba-raid: Increase number of free sba_request
  dmaengine: bcm-sba-raid: Allow arbitrary number free sba_request
  dmaengine: bcm-sba-raid: Remove reqs_free_count from sba_device
  dmaengine: bcm-sba-raid: Remove redundant resp_dma from sba_request
  dmaengine: bcm-sba-raid: Remove redundant next_count from sba_request
  dmaengine: bcm-sba-raid: Common flags for sba_request state and fence
  dmaengine: bcm-sba-raid: Reduce locking context in sba_alloc_request()
  dmaengine: bcm-sba-raid: Minor improvments in comments
  dmaengine: qcom: bam_dma: add command descriptor flag
  dmaengine: qcom: bam_dma: wrapper functions for command descriptor
  dmaengine: add DMA_PREP_CMD for non-Data descriptors.
  mei: make device_type const
  usb: chipidea: usb2: check memory allocation failure
  usb: Add device quirk for Logitech HD Pro Webcam C920-C
  usb: misc: lvstest: add entry to place port in compliance mode
  usb: xhci: Support enabling of compliance mode for xhci 1.1
  usb:xhci:Fix regression when ATI chipsets detected
  usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
  usb: gadget: make snd_pcm_hardware const
  usb: common: use of_property_read_bool()
  USB: core: constify vm_operations_struct
  iommu/amd: Rename a few flush functions
  iommu/amd: Check if domain is NULL in get_domain() and return -EBUSY
  iommu/mediatek: Fix a build warning of BIT(32) in ARM
  iommu/mediatek: Fix a build fail of m4u_type
  iommu: qcom: annotate PM functions as __maybe_unused
  usb: misc: ftdi-elan: fix duplicated code for different branches
  USB: core: Avoid race of async_completed() w/ usbdev_release()
  usb: make device_type const
  Revert "ARM: dts: sun8i: h3: Enable dwmac-sun8i on the Beelink X2"
  USB: musb: dsps: add explicit runtime resume at suspend
  USB: musb: fix external abort on suspend
  usb: musb: fix endpoint fifo allocation for 4KB fifo memory
  usb: musb: print an error message when high bandwidth is unsupported
  usb: musb: print an error message when hwep alloc failed
  usb: musb: add helper function musb_ep_xfertype_string
  Revert "staging: Fix build issues with new binder API"
  staging: bcm2835-camera: make video_device const
  staging: vboxvideo: Use fbdev helpers where possible
  staging: typec: Add __printf verification
  staging: unisys: visorinput: Add module_driver driver registration
  staging: r8822be: remove some dead code
  staging: pi433: fix interrupt handler signatures
  staging: olpc_dcon: remove pointless debug printk in dcon_freeze_store()
  staging: r8822be: fix null pointer dereference with a null driver_adapter
  staging: r8822be: fix memory leak of eeprom_map on error exit return
  staging: lustre: obdclass: fix checking for obd_init_checks()
  staging: lustre: obdclass: return -EFAULT if copy_from_user() fails
  staging: lustre: obdclass: return -EFAULT if copy_to_user() fails
  staging: rtl8723bs: remove memset before memcpy
  staging: rtlwifi: Improve debugging by using debugfs
  staging: rtlwifi: check for array overflow
  staging:rtl8188eu:core Fix add spaces around &
  staging:rtl8188eu:core Fix coding style Issues
  remoteproc: st: explicitly request exclusive reset control
  remoteproc: qcom: explicitly request exclusive reset control
  remoteproc/keystone: explicitly request exclusive reset control
  fput: Don't reinvent the wheel but use existing llist API
  namespace.c: Don't reinvent the wheel but use existing llist API
  dmaengine: remove BUG_ON while registering devices
  PM / devfreq: Fix memory leak when fail to register device
  PM / devfreq: Add dependency on PM_OPP
  PM / devfreq: Move private devfreq_update_stats() into devfreq
  m68knommu: remove dead code
  m68k: allow NULL clock for clk_get_rate
  PM / devfreq: Convert to using %pOF instead of full_name
  ARM: dts: rk3228-evb: Fix the compiling error
  i40e/i40evf: avoid dynamic ITR updates when polling or low packet rate
  i40e/i40evf: remove ULTRA latency mode
  i40e: invert logic for checking incorrect cpu vs irq affinity
  i40e: initialize our affinity_mask based on cpu_possible_mask
  i40e: move enabling icr0 into i40e_update_enable_itr
  i40e: remove workaround for resetting XPS
  i40e: Fix for unused value issue found by static analysis
  i40e: 25G FEC status improvements
  i40e/i40evf: support for VF VLAN tag stripping control
  i40e: force VMDQ device name truncation
  i40evf: fix possible snprintf truncation of q_vector->name
  i40e: Use correct flag to enable egress traffic for unicast promisc
  i40e: prevent snprintf format specifier truncation
  i40e: Store the requested FEC information
  i40e: Update state variable for adminq subtask
  media: max2175: Propagate the real error on devm_clk_get() failure
  media: cx23885: Explicitly list Hauppauge model numbers of HVR-4400 and HVR-5500
  media: i2c: adv748x: Export I2C device table entries as module aliases
  media: staging/imx: always select VIDEOBUF2_DMA_CONTIG
  media: dw2102: make dvb_usb_device_description structures const
  media: mn88473: reset stream ID reg if no PLP given
  media: mn88472: reset stream ID reg if no PLP given
  media: dvb_frontend: initialize variable s with FE_NONE instead of 0
  media: docs-next: update the fe_status documentation for FE_NONE
  media: dvb_frontend: ensure that inital front end status initialized
  staging: rtl8723bs: remove null check before kfree
  staging: r8822be: remove unnecessary call to memset
  staging: most: hdm_usb: Driver registration with module_driver macro
  regulator: rn5t618: add RC5T619 PMIC support
  MAINTAINERS: drop entry for Blackfin I2C and Sonic's email
  blackfin: merge the two TWI header files
  i2c: davinci: Preserve return value of devm_clk_get
  i2c: mediatek: Add i2c compatible for MediaTek MT7622
  dt-bindings: i2c: Add MediaTek MT7622 i2c binding
  dt-bindings: i2c: modify information formats
  media: dvbproperty.rst: minor editorial changes
  media: dvbproperty.rst: improve notes about legacy frontend calls
  media: frontend.rst: mention MMT at the documentation
  media: frontend.rst: convert SEC note into footnote
  media: frontend.rst: fix supported delivery systems
  media: dvb/intro.rst: Use verbatim font where needed
  media: usbvision: Improve a size determination in usbvision_alloc()
  media: usbvision: Adjust eight checks for null pointers
  media: usbvision: Delete an error message for a failed memory allocation in usbvision_probe()
  media: Staging: media: radio-bcm2048: make video_device const
  media: radio: make video_device const
  media: dib8000: remove some bogus dead code
  media: dib9000: delete some unused broken code
  media: staging: omap4iss: make v4l2_file_operations const
  media: usbtv: make v4l2_file_operations const
  media: cx18: make v4l2_file_operations const
  media: usb: make video_device const
  media: pci: make video_device const
  media: platform: make video_device const
  media: au0828: fix RC_CORE dependency
  ASoC: davinci-mcasp: check memory allocation failure
  media: dib0090: fix duplicated code for different branches
  media: mx2_emmaprp: Check for platform_get_irq() error
  media: docs-rst: media: Document broken frame handling in stream stop for CSI-2
  media: dvb-frontends/stv0367: remove QAM_AUTO from ddb_fe_ops
  media: imx: use setup_timer
  media: mxl111sf: Fix potential null pointer dereference
  media: au0828: fix unbalanced lock/unlock in au0828_usb_probe
  media: dvb-usb: Add memory free on error path in dw2102_probe()
  media: dvb-frontends/stv0910: change minsymrate to 100Ksyms/s
  media: staging/cxd2099: Add module parameter for buffer mode
  media: ddbridge: fix sparse warnings
  media: ddbridge: fix teardown/deregistration order in ddb_input_detach()
  media: dvb-frontends/stv0910: release lock on gate_ctrl() failure
  media: cx231xx: fix use-after-free when unregistering the i2c_client for the dvb demod
  media: cx23885: Fix use-after-free when unregistering the i2c_client for the dvb demod
  media: staging: atomisp: fix bounds checking in mt9m114_s_exposure_selection()
  media: staging: media: atomisp: ap1302: Remove FSF postal address
  media: staging: atomisp: imx: remove dead code
  media: arm: dts: omap3: N9/N950: Add AS3645A camera flash
  media: leds: as3645a: Add LED flash class driver
  media: dt: bindings: Document DT bindings for Analog devices as3645a
  media: v4l2-flash-led-class: Document v4l2_flash_init() references
  media: v4l2-flash-led-class: Create separate sub-devices for indicators
  media: staging: greybus: light: fix memory leak in v4l2 register
  media: uapi book: Fix a few Sphinx warnings
  media: smiapp: check memory allocation failure
  media: omap3isp: fix uninitialized variable use
  media: fix pdf build with Spinx 1.6
  swap: Remove obsolete sentence
  sphinx.rst: Allow Sphinx version 1.6 at the docs
  docs-rst: fix verbatim font size on tables
  media: qcom: don't go past the array
  media: qcom: mark long long consts as such
  media: camss: Add abbreviations explanation
  media: doc: media/v4l-drivers/qcom_camss: Add abbreviations explanation
  media: doc: media/v4l-drivers: Qualcomm Camera Subsystem - Media graph
  media: camss: Use optimal clock frequency rates
  media: doc: media/v4l-drivers: Qualcomm Camera Subsystem - Scale and crop
  media: camss: vfe: Configure crop module in VFE
  media: camss: vfe: Add interface for cropping
  media: camss: vfe: Configure scaler module in VFE
  media: camss: vfe: Add interface for scaling
  media: camss: vfe: Support for frame padding
  media: doc: media/v4l-drivers: Qualcomm Camera Subsystem - PIX Interface
  media: camss: vfe: Format conversion support using PIX interface
  media: camss: Enable building
  media: camms: Add core files
  media: camss: Add files which handle the video device nodes
  media: camss: Add VFE files
  media: camss: Add ISPIF files
  media: camss: Add CSID files
  media: camss: Add CSIPHY files
  media: doc: media/v4l-drivers: Add Qualcomm Camera Subsystem driver document
  media: MAINTAINERS: Add Qualcomm Camera subsystem driver
  media: dt-bindings: media: Binding document for Qualcomm Camera subsystem driver
  media: v4l: Add packed Bayer raw12 pixel formats
  media: venus: fix copy/paste error in return_buf_error
  media: em28xx: calculate left volume level correctly
  media: platform: constify videobuf_queue_ops structures
  media: pci: constify videobuf_queue_ops structures
  media: saa7146: constify videobuf_queue_ops structures
  media: cx18: Make i2c_algo_bit_data const
  media: bt8xx: Make i2c_algo_bit_data const
  media: venus: venc: set correct resolution on compressed stream
  media: vb2: add bidirectional flag in vb2_queue
  media: stm32-dcmi: g_/s_selection crop support
  media: stm32-dcmi: cleanup variable/fields namings
  media: stm32-dcmi: revisit control register handling
  media: stm32-dcmi: catch dma submission error
  media: v4l: fwnode: Use a less clash-prone name for MAX_DATA_LANES macro
  media: v4l: fwnode: The clock lane is the first lane in lane_polarities
  media: v4l: fwnode: Fix lane-polarities property parsing
  media: dw9714: Remove ACPI match tables, convert to use probe_new
  media: dw9714: Add Devicetree support
  media: dt-bindings: Add bindings for Dongwoon DW9714 voice coil
  media: venus: venc: drop VP9 codec support
  media: venus: use helper function to check supported codecs
  media: venus: add helper to check supported codecs
  media: venus: fill missing video_device name
  media: venus: mark venc and vdec PM functions as __maybe_unused
  media: ths8200: constify i2c_device_id
  media: tc358743: constify i2c_device_id
  media: saa7127: constify i2c_device_id
  media: adv7842: constify i2c_device_id
  media: adv7511: constify i2c_device_id
  media: ad9389b: constify i2c_device_id
  media: usb: make i2c_adapter const
  media: radio-usb-si4713: make i2c_adapter const
  media: pci: make i2c_adapter const
  media: i2c: make device_type const
  media: usb: make i2c_algorithm const
  media: stm32-cec: use CEC_CAP_DEFAULTS
  media: stih-cec: use CEC_CAP_DEFAULTS
  media: vivid: fix incorrect HDMI input/output CEC logging
  media: vivid: add CEC pin monitoring emulation
  media: cec: replace pin->cur_value by adap->cec_pin_is_high
  media: cec: ensure that adap_enable(false) is called from cec_delete_adapter()
  kvm/x86: Avoid clearing the C-bit in rsvd_bits()
  efi/bgrt: Use efi_mem_type()
  efi: Move efi_mem_type() to common code
  efi/reboot: Make function pointer orig_pm_power_off static
  efi/random: Increase size of firmware supplied randomness
  efi/libstub: Enable reset attack mitigation
  net: mvpp2: fix the packet size configuration for 10G
  nfp: add basic SR-IOV ndo functions to representors
  nfp: add basic SR-IOV ndo functions
  tcp: fix hang in tcp_sendpage_locked()
  net_sched: kill u32_node pointer in Qdisc
  net_sched: remove tc class reference counting
  net_sched: introduce tclass_del_notify()
  net_sched: get rid of more forward declarations
  hinic: skb_pad() frees on error
  ipv6: sr: implement additional seg6local actions
  ipv6: sr: add helper functions for seg6local
  ipv6: sr: enforce IPv6 packets for seg6local lwt
  ipv6: sr: add support for encapsulation of L2 frames
  ipv6: sr: add support for ip4ip6 encapsulation
  GFS2: Fix up some sparse warnings
  scsi: lpfc: avoid false-positive gcc-8 warning
  scsi: lpfc: avoid an unused function warning
  scsi: cxlflash: Fix vlun resize failure in the shrink path
  scsi: cxlflash: Avoid double mutex unlock
  scsi: cxlflash: Remove unnecessary existence check
  dt-bindings: usb: musb: Grammar s/the/to/, s/is/are/
  i40e: synchronize nvmupdate command and adminq subtask
  i40e: prevent changing ITR if adaptive-rx/tx enabled
  i40e: use cpumask_copy instead of direct assignment
  i40evf: use netdev variable in reset task
  i40e/i40evf: rename vf_offload_flags to vf_cap_flags in struct virtchnl_vf_resource
  i40e: move check for avoiding VID=0 filters into i40e_vsi_add_vlan
  i40e/i40evf: use cmpxchg64 when updating private flags in ethtool
  i40e: Detect ATR HW Evict NVM issue and disable the feature
  i40e: remove workaround for Open Firmware MAC address
  i40e: separate hw_features from runtime changing flags
  i40e: Fix a bug with VMDq RSS queue allocation
  i40evf: prevent VF close returning before state transitions to DOWN
  i40e/i40evf: adjust packet size to account for double VLANs
  scsi: ibmvfc: ibmvscsi: ibmvscsi_tgt: constify vio_device_id
  scsi: Fix the kerneldoc for scsi_initialize_rq()
  scsi: ses: Fix racy cleanup of /sys in remove_dev()
  scsi: mptsas: Fixup device hotplug for VMWare ESXi
  skd: Remove SKD_ID_INCR
  skd: Make it easier for static analyzers to analyze skd_free_disk()
  skd: Inline skd_end_request()
  skd: Rename skd_softirq_done() into skd_complete_rq()
  scsi: make device_type const
  scsi: sd: remove duplicated setting of gd->minors
  scsi: eata: remove 'arg_done' from eata2x_eh_host_reset()
  scsi: visorhba: sanitze private device data allocation
  scsi: megaraid_mbox: drop duplicate bus reset and device reset function
  scsi: bnx2fc: remove obsolete bnx2fc_eh_host_reset() definition
  scsi: 53c700: move bus reset to host reset
  scsi: aha152x: drop host reset
  scsi: nsp32: drop bus reset
  scsi: qedf: drop bus reset handler
  scsi: ppa: drop duplicate bus_reset handler
  scsi: imm: drop duplicate bus_reset handler
  scsi: qlogicfas: move bus_reset to host_reset
  scsi: NCR5380: Move bus reset to host reset
  scsi: acornscsi: move bus reset to host reset
  scsi: qlogicpti: move bus reset to host reset
  scsi: rtsx: drop bus reset function
  scsi: drop bus reset for wd33c93-compatible boards
  scsi: fdomain: move bus reset to host reset
  scsi: hptiop: Simplify reset handling
  scsi: bfa: move bus reset to target reset
  scsi: libsas: move bus_reset_handler() to target_reset_handler()
  scsi: uas: move eh_bus_reset_handler to eh_device_reset_handler
  scsi: fnic: do not call host reset from command abort
  scsi: fc_fcp: do not call fc_block_scsi_eh() from host reset
  scsi: ibmvfc: Do not call fc_block_scsi_eh() on host reset
  scsi: mptfc: Do not call fc_block_scsi_eh() on host reset
  scsi: fix comment in scsi_device_set_state()
  scsi: iscsi_tcp: Remove a set-but-not-used variable
  scsi: scsi_debug: Remove a set-but-not-used variable
  scsi: scsi_transport_srp: Suppress a W=1 compiler warning
  scsi: scsi_transport_sas: Check kzalloc() return value
  scsi: libsas: Annotate fall-through in a switch statement
  scsi: libsas: Remove a set-but-not-used variable
  scsi: libiscsi: Fix indentation
  scsi: sg: Fix type of last blk_trace_setup() argument
  scsi: sd: Remove a useless comparison
  scsi: sd: Fix indentation
  scsi: sd: sr: Convert two assignments into warning statements
  scsi: Use blk_mq_rq_to_pdu() to convert a request to a SCSI command pointer
  scsi: Document which queue type a function is intended for
  scsi: Convert a strncmp() call into a strcmp() call
  scsi: Suppress gcc 7 fall-through warnings reported with W=1
  scsi: Avoid sign extension of scsi_device.type
  scsi: Remove an obsolete function declaration
  block/nullb: fix NULL dereference
  futex: Remove duplicated code and fix undefined behaviour
  genirq/proc: Avoid uninitalized variable warning
  irqdomain: Prevent potential NULL pointer dereference in irq_domain_push_irq()
  genirq: Fix semicolon.cocci warnings
  x86/intel_rdt: Turn off most RDT features on Skylake
  x86/intel_rdt: Add command line options for resource director technology
  x86/intel_rdt: Move special case code for Haswell to a quirk function
  blkcg: avoid free blkcg_root when failed to alloc blkcg policy
  null_blk: update email adress
  md/raid0: attach correct cgroup info in bio
  lib/raid6: align AVX512 constants to 512 bits, not bytes
  raid5: remove raid5_build_block
  md/r5cache: call mddev_lock/unlock() in r5c_journal_mode_show
  md: replace seq_release_private with seq_release
  md: notify about new spare disk in the container
  md/raid1/10: reset bio allocated from mempool
  block: update comments to reflect REQ_FLUSH -> REQ_PREFLUSH rename
  selftests: lib.mk: change RUN_TESTS to print messages in TAP13 format
  selftests: change lib.mk RUN_TESTS to take test list as an argument
  ieee802154: 6lowpan: make header_ops const
  selftests: lib.mk: suppress "cd" output from run_tests target
  selftests: kselftest framework: change skip exit code to 0
  selftests/timers: make loop consistent with array size
  gfs2: Silence gcc format-truncation warning
  GFS2: Withdraw for IO errors writing to the journal or statfs
  of: Use PLATFORM_DEVID_NONE definition
  intel_th: Perform time resync on capture start
  intel_th: Add global activate/deactivate callbacks for the glue layers
  intel_th: pci: Use drvdata for quirks
  intel_th: pci: Add Cannon Lake PCH-LP support
  intel_th: pci: Add Cannon Lake PCH-H support
  intel_th: pti: Support Low Power Path output port type
  intel_th: Enumerate Low Power Path output port type
  intel_th: msu: Use the real device in case of IOMMU domain allocation
  intel_th: Make the switch allocate its subdevices
  arm64: dts: uniphier: add reset controller node of analog amplifier
  intel_th: Make SOURCE devices children of the root device
  intel_th: Streamline the subdevice tree accessors
  intel_th: Output devices without ports don't need assigning
  intel_th: pci: Enable bus mastering
  stm class: Document the stm_ftrace
  stm: Potential read overflow in stm_char_policy_set_ioctl()
  dma-mapping: reduce dma_mapping_error inline bloat
  ASoC: remove duplicate definition of dapm_routes/num_dapm_routes
  ASoC: remove duplicate definition of dapm_widgets/num_dapm_widgets
  ASoC: remove duplicate definition of controls/num_controls
  ASoC: nau8825: correct typo of semaphore comment
  ASoC: use snd_soc_component_get_dapm()
  ASoC: Intel: Skylake: Update module id in pin connections
  ASoC: Intel: Skylake: Parse and update module config structure
  ASoC: Intel: Skylake: Populate module data from topology manifest
  ASoC: Intel: Skylake: Add driver structures to be filled from topology manifest
  ASoC: Intel: Skylake: Commonize parsing of format tokens
  ASoC: Intel: uapi: Add new tokens for module common data
  ASoC: Intel: Skylake: Parse multiple manifest data blocks
  ASoC: Add a sanity check before using dai driver name
  kvm: nVMX: Validate the virtual-APIC address on nested VM-entry
  sched/debug: Optimize sched_domain sysctl generation
  sched/topology: Avoid pointless rebuild
  sched/topology, cpuset: Avoid spurious/wrong domain rebuilds
  sched/topology: Improve comments
  sched/topology: Fix memory leak in __sdt_alloc()
  drm: rename u32 in __u32 in uapi
  Documentation/locking/atomic: Finish the document...
  locking/lockdep: Fix workqueue crossrelease annotation
  workqueue/lockdep: 'Fix' flush_work() annotation
  locking/lockdep/selftests: Add mixed read-write ABBA tests
  mm, locking/barriers: Clarify tlb_flush_pending() barriers
  perf/x86: Export some PMU attributes in caps/ directory
  perf/x86: Only show format attributes when supported
  tracing, perf: Adjust code layout in get_recursion_context()
  perf/core: Don't report zero PIDs for exiting tasks
  perf/x86: Fix data source decoding for Skylake
  perf/x86: Move Nehalem PEBS code to flag
  perf/aux: Ensure aux_wakeup represents most recent wakeup index
  perf/aux: Make aux_{head,wakeup} ring_buffer members long
  dmaengine: rcar-dmac: initialize all data before registering IRQ handler
  dmaengine: k3dma: remove useless ON_WARN_ONCE()
  dmaengine: k3dma: fix double free of descriptor
  dmaengine: k3dma: fix non-cyclic mode
  drm/exynos: simplify set_pixfmt() in DECON and FIMD drivers
  drm/exynos: consistent use of cpp
  strparser: initialize all callbacks
  hv_netvsc: Fix rndis_filter_close error during netvsc_remove
  hinic: uninitialized variable in hinic_api_cmd_init()
  net: mv643xx_eth: Be drop monitor friendly
  drm/exynos: mixer: remove src offset from mixer_graph_buffer()
  drm/exynos: mixer: simplify mixer_graph_buffer()
  drm/exynos: mixer: simplify vp_video_buffer()
  drm/exynos: mixer: enable NV12MT support for the video plane
  drm/exynos: mixer: fix chroma comment in vp_video_buffer()
  arm64: dts: exynos: remove i80-if-timings nodes
  dt-bindings: exynos5433-decon: remove i80-if-timings property
  drm/exynos/decon5433: use mode info stored in CRTC to detect i80 mode
  drm/exynos: add mode_valid callback to exynos_drm
  drm/exynos/decon5433: refactor irq requesting code
  drm/exynos/mic: use mode info stored in CRTC to detect i80 mode
  scsi: ufs: reqs and tasks were put in the wrong order
  scsi: lpfc: lpfc version bump 11.4.0.3
  scsi: lpfc: fix "integer constant too large" error on 32bit archs
  scsi: lpfc: Add Buffer to Buffer credit recovery support
  scsi: lpfc: remove console log clutter
  scsi: lpfc: Fix bad sgl reposting after 2nd adapter reset
  scsi: lpfc: Fix nvme target failure after 2nd adapter reset
  scsi: lpfc: Fix relative offset error on large nvmet target ios
  scsi: lpfc: Fix MRQ > 1 context list handling
  scsi: lpfc: Limit amount of work processed in IRQ
  scsi: lpfc: Correct issues with FAWWN and FDISCs
  scsi: lpfc: Fix NVME PRLI handling during RSCN
  scsi: lpfc: Fix crash in lpfc nvmet when fc port is reset
  scsi: lpfc: Fix duplicate NVME rport entries and namespaces.
  scsi: lpfc: Fix handling of FCP and NVME FC4 types in Pt2Pt topology
  scsi: lpfc: Correct return error codes to align with nvme_fc transport
  scsi: lpfc: convert info messages to standard messages
  scsi: lpfc: Fix oops when NVME Target is discovered in a nonNVME environment
  scsi: lpfc: Fix rediscovery on switch blade pull
  scsi: lpfc: Fix loop mode target discovery
  scsi: lpfc: Fix plogi collision that causes illegal state transition
  scsi: qla2xxx: Update driver version to 10.00.00.01-k
  scsi: qla2xxx: Do not call abort handler function during chip reset
  scsi: qla2xxx: Ability to process multiple SGEs in Command SGL for CT passthrough commands.
  scsi: qla2xxx: Skip zero queue count entry during FW dump capture
  scsi: qla2xxx: Recheck session state after RSCN
  scsi: qla2xxx: Increase ql2xmaxqdepth to 64
  scsi: qla2xxx: Enable Async TMF processing
  scsi: qla2xxx: Cleanup NPIV host in target mode during config teardown
  scsi: qla2xxx: Add LR distance support from nvram bit
  scsi: qla2xxx: Add support for minimum link speed
  scsi: qla2xxx: Remove potential macro parameter side-effect in ql_dump_regs()
  scsi: qla2xxx: Print correct mailbox registers in failed summary
  scsi: qla2xxx: Fix task mgmt handling for NPIV
  scsi: qla2xxx: Allow SNS fabric login to be retried
  scsi: qla2xxx: Add timeout ability to wait_for_sess_deletion().
  scsi: qla2xxx: Move logging default mask to execute once only.
  scsi: qla2xxx: Use sp->free instead of hard coded call.
  scsi: qla2xxx: Prevent sp->free null/uninitialized pointer dereference.
  scsi: qla2xxx: Add ability to autodetect SFP type
  scsi: qla2xxx: Use fabric name for Get Port Speed command
  scsi: qla2xxx: Change ha->wq max_active value to default
  scsi: qla2xxx: Remove extra register read
  scsi: qla2xxx: Fix NPIV host enable after chip reset
  scsi: qla2xxx: Use BIT_6 to acquire FAWWPN from switch
  scsi: qla2xxx: Fix system panic due to pointer access problem
  scsi: qla2xxx: Handle PCIe error for driver
  scsi: qla2xxx: Fix WWPN/WWNN in debug message
  scsi: qla2xxx: Add command completion for error path
  scsi: qla2xxx: Update fw_started flags at qpair creation.
  scsi: qla2xxx: Fix target multiqueue configuration
  scsi: qla2xxx: Correction to vha->vref_count timeout
  scsi: megaraid_sas: driver version upgrade
  scsi: megaraid_sas: call megasas_dump_frame with correct IO frame size
  scsi: megaraid_sas: modified few prints in OCR and IOC INIT path
  scsi: megaraid_sas: replace internal FALSE/TRUE definitions with false/true
  scsi: megaraid_sas: Return pended IOCTLs with cmd_status MFI_STAT_WRONG_STATE in case adapter is dead
  scsi: megaraid_sas: use vmalloc for crash dump buffers and driver's local RAID map
  scsi: megaraid_sas: Use SMID for Task abort case only
  scsi: megaraid_sas: Check valid aen class range to avoid kernel panic
  scsi: megaraid_sas: Fix endianness issues in DCMD handling
  scsi: megaraid_sas: Do not re-fire shutdown DCMD after OCR
  scsi: megaraid_sas: Call megasas_complete_cmd_dpc_fusion every 1 second while there are pending commands
  scsi: megaraid_sas: Use synchronize_irq in target reset case
  scsi: megaraid_sas: set minimum value of resetwaittime to be 1 secs
  scsi: megaraid_sas: mismatch of allocated MFI frame size and length exposed in MFI MPT pass through command
  scsi: lpfc: remove useless code in lpfc_sli4_bsg_link_diag_test
  scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
  scsi: sg: recheck MMAP_IO request length with lock held
  scsi: hpsa: fix the device_id in hpsa_update_device_info()
  scsi: aha1542: constify pnp_device_id
  scsi: scsi-sysfs: Adjust error returned for adapter reset request
  scsi: ch: add refcounting
  scsi: pmcraid: fix duplicated code for different branches
  scsi: ncr5380: constify pnp_device_id
  scsi: qedf: Update driver version to 8.20.5.0.
  scsi: qedf: Fix up modinfo parameter name for 'debug' in modinfo output.
  scsi: qedf: Covert single-threaded workqueues to regular workqueues.
  scsi: qedf: Corrent VLAN tag insertion in fallback VLAN case.
  scsi: qedf: Use granted MAC from the FCF for the FCoE source address if it is available.
  scsi: qedf: Set WWNN and WWPN based on values from qed.
  scsi: qla2xxx: fix spelling mistake of variable sfp_additonal_info
  scsi: osst: silence underflow warning in osst_verify_frame()
  scsi: osst: add missing indent on a for loop statement
  scsi: mpt3sas: fix pr_info message continuation
  scsi: ses: make page2 support optional
  scsi: ses: Fixup error message 'failed to get diagnostic page 0xffffffea'
  scsi: ses: check return code from ses_recv_diag()
  scsi: hpsa: Remove 'hpsa_allow_any' module option
  scsi: cciss: Drop obsolete driver
  scsi: hpsa: do not print errors for unsupported report luns format
  scsi: hpsa: Ignore errors for unsupported LV_DEVICE_ID VPD page
  scsi: hpsa: disable volume status check for legacy boards
  scsi: hpsa: add support for legacy boards
  scsi: cxlflash: Fix an error handling path in 'cxlflash_disk_attach()'
  scsi: sym53c8xx: Avoid undefined behaviour
  scsi: make 'state' device attribute pollable
  scsi: scsi_lib: rework scsi_internal_device_unblock_nowait()
  scsi: esas2r: constify pci_device_id.
  scsi: virtio: virtio_scsi: Set can_queue to the length of the virtqueue.
  scsi: virtio: Reduce BUG if total_sg > virtqueue size to WARN.
  scsi: qedi: Limit number for CQ queues.
  scsi: hisi_sas: remove driver versioning
  scsi: hisi_sas: replace kfree with scsi_host_put
  scsi: hisi_sas: remove phy_down_v3_hw() res variable
  scsi: hisi_sas: add phy_set_linkrate_v3_hw()
  scsi: hisi_sas: update some v3 register init settings
  scsi: hisi_sas: add reset handler for v3 hw
  drm/exynos/dsi: propagate info about command mode from panel
  drm/exynos/dsi: refactor panel detection logic
  drm/exynos: use helper to set possible crtcs
  drm/exynos/decon5433: use readl_poll_timeout helpers
  svcrdma: Clean up svc_rdma_build_read_chunk()
  sunrpc: Const-ify struct sv_serv_ops
  nfsd: Const-ify NFSv4 encoding and decoding ops arrays
  sunrpc: Const-ify instances of struct svc_xprt_ops
  nfsd4: individual encoders no longer see error cases
  nfsd4: skip encoder in trivial error cases
  nfsd4: define ->op_release for compound ops
  tg3: Be drop monitor friendly
  ipv6: Use multipath hash from flow info if available
  ipv6: Fold rt6_info_hash_nhsfn() into its only caller
  ipv6: Compute multipath hash for ICMP errors from offending packet
  net: Extend struct flowi6 with multipath hash
  nfsd4: opdesc will be useful outside nfs4proc.c
  devlink: Fix devlink_dpipe_table_register() stub signature.
  ipv6: Add sysctl for per namespace flow label reflection
  extcon: max77693: Allow MHL attach notifier
  phy: ralink: fix 64-bit build warning
  PM / AVS: rockchip-io: add io selectors and supplies for RV1108
  cpufreq: ti: Fix 'of_node_put' being called twice in error handling path
  cpufreq: dt-platdev: Drop few entries from whitelist
  cpufreq: dt-platdev: Automatically create cpufreq device with OPP v2
  ARM: ux500: don't select CPUFREQ_DT
  cpuidle: Convert to using %pOF instead of full_name
  cpufreq: Convert to using %pOF instead of full_name
  PM / Domains: Convert to using %pOF instead of full_name
  Input: ambakmi - constify amba_id
  rpmsg: virtio_rpmsg_bus: fix sg_set_buf() when addr is not a valid kernel address
  rpmsg: virtio_rpmsg: set rpmsg_buf_size customizable
  ALSA: pcm: Correct broken procfs set up
  IB/mlx5: Report mlx5 enhanced multi packet WQE capability
  IB/mlx5: Allow posting multi packet send WQEs if hardware supports
  IB/mlx5: Add support for multi underlay QP
  IB/mlx5: Fix integer overflow when page_shift == 31
  IB/mlx5: Fix memory leak in clean_mr error path
  IB/mlx5: Decouple MR allocation and population flows
  IB/mlx5: Enable UMR for MRs created with reg_create
  IB/mlx5: Expose software parsing for Raw Ethernet QP
  RDMA/i40iw: Remove unused argument
  RDMA/qedr: fix spelling mistake: "invlaid" -> "invalid"
  IB: Avoid ib_modify_port() failure for RoCE devices
  RDMA/vmw_pvrdma: Update device query parameters and port caps
  RDMA/vmw_pvrdma: Add RoCEv2 support
  IB/ipoib: Enable ioctl for to IPoIB rdma netdevs
  RDMA/nes: Remove zeroed parameter from port query callback
  RDMA/mlx4: Properly annotate link layer variable
  RDMA/mlx5: Limit scope of get vector affinity local function
  IB/rxe: Make rxe_counter_name static
  IB/ipoib: Sync between remove_one to sysfs calls that use rtnl_lock
  IB/mlx4: Check that reserved fields in mlx4_ib_create_qp_rss are zero
  IB/mlx4: Remove redundant attribute in mlx4_ib_create_qp_rss struct
  IB/mlx4: Fix struct mlx4_ib_create_wq alignment
  IB/mlx4: Fix RSS QP type in creation verb
  IB/mlx5: Add necessary delay drop assignment
  IB/mlx5: Fix some spelling mistakes
  IB/mlx4: Fix some spelling mistakes
  RDMA/mthca: Make explicit conversion to 64bit value
  RDMA/usnic: Fix remove address space warning
  RDMA/mlx4: Remove gfp_mask argument from acquire_group call
  RDMA/core: Refactor get link layer wrapper
  RDMA/core: Delete BUG() from unreachable flow
  RDMA/core: Cleanup device capability enum
  RDMA/(core, ulp): Convert register/unregister event handler to be void
  RDMA/mlx4: Fix create qp command alignment
  RDMA/mlx4: Don't use uninitialized variable
  IB/uverbs: Introduce and use helper functions to copy ah attributes
  IB/cma: Fix erroneous validation of supported default GID type
  Documentation: stable-kernel-rules: fix broken git urls
  rtmutex: update rt-mutex
  rtmutex: update rt-mutex-design
  net/mlx5e: make mlx5e_profile const
  net/mlx4_core: make mlx4_profile const
  docs: fix minimal sphinx version in conf.py
  docs: fix nested numbering in the TOC
  NVMEM documentation fix: A minor typo
  ext4: fix fault handling when mounted with -o dax,ro
  docs-rst: pdf: use same vertical margin on all Sphinx versions
  ext4: fix quota inconsistency during orphan cleanup for read-only mounts
  ext4: fix incorrect quotaoff if the quota feature is enabled
  doc: Makefile: if sphinx is not found, run a check script
  ext4: remove useless test and assignment in strtohash functions
  docs: Fix paths in security/keys
  remoteproc/keystone: Add support for Keystone 66AK2G SOCs
  remoteproc/davinci: Add device tree support for OMAP-L138 DSP
  dt-bindings: remoteproc: Add bindings for Davinci DSP processors
  remoteproc/davinci: Add support to parse internal memories
  remoteproc/davinci: Switch to platform_get_resource_byname()
  xdp: get tracepoints xdp_exception and xdp_redirect in sync
  xdp: remove net_device names from xdp_redirect tracepoint
  ixgbe: use return codes from ndo_xdp_xmit that are distinguishable
  xdp: make generic xdp redirect use tracepoint trace_xdp_redirect
  xdp: remove bpf_warn_invalid_xdp_redirect
  drm/amdgpu: remove duplicate return statement
  drm/amdgpu: check memory allocation failure
  ext4: backward compatibility support for Lustre ea_inode implementation
  ext4: remove timebomb in ext4_decode_extra_time()
  ext4: use sizeof(*ptr)
  remoteproc: make device_type const
  ext4: in ext4_seek_{hole,data}, return -ENXIO for negative offsets
  md/raid5: release/flush io in raid5_do_work()
  md/bitmap: copy correct data for bitmap super
  ext4: reduce lock contention in __ext4_new_inode
  netfilter: ebtables: fix indent on if statements
  of/device: Fix of_device_get_modalias() buffer handling
  of/device: Prevent buffer overflow in of_device_modalias()
  netfilter: conntrack: make protocol tracker pointers const
  netfilter: conntrack: print_conntrack only needed if CONFIG_NF_CONNTRACK_PROCFS
  netfilter: conntrack: place print_tuple in procfs part
  netfilter: conntrack: reduce size of l4protocol trackers
  netfilter: conntrack: remove protocol name from l4proto struct
  netfilter: conntrack: remove protocol name from l3proto struct
  netfilter: conntrack: compute l3proto nla size at compile time
  printk-formats.txt: Add examples for %pF and %pS usage
  netfilter: nf_nat_h323: fix logical-not-parentheses warning
  parisc: Fix up devices below a PCI-PCI MegaRAID controller bridge
  drm/amd/amdgpu: fix BANK_SELECT on Vega10 (v2)
  mlxsw: spectrum_dpipe: Add support for controlling neighbor counters
  mlxsw: spectrum_dpipe: Add support for IPv4 host table dump
  mlxsw: spectrum_router: Add support for setting counters on neighbors
  mlxsw: reg: Make flow counter set type enum to be shared
  mlxsw: spectrum_dpipe: Add IPv4 host table initial support
  mlxsw: spectrum_dpipe: Fix label name
  mlxsw: spectrum_router: Add helpers for neighbor access
  devlink: Move dpipe entry clear function into devlink
  devlink: Add support for dynamic table size
  mlxsw: spectrum_dpipe: Fix erif table op name space
  devlink: Add IPv4 header for dpipe
  devlink: Add Ethernet header for dpipe
  PCI/DPC: Add local struct device pointers
  PCI/DPC: Add eDPC support
  PCI: Fix PCIe capability sizes
  PCI: Convert to using %pOF instead of full_name()
  PCI: Constify endpoint pci_epf_type device_type
  KVM: nVMX: Fix trying to cancel vmlauch/vmresume
  PCI: qcom: Add support for IPQ8074 PCIe controller
  dt-bindings: PCI: qcom: Add support for IPQ8074
  PCI: qcom: Use block IP version for operations
  PCI: qcom: Explicitly request exclusive reset control
  KVM: X86: Fix loss of exception which has not yet been injected
  KVM: VMX: use kvm_event_needs_reinjection
  KVM: MMU: speedup update_permission_bitmask
  PCI: qcom: Use gpiod_set_value_cansleep() to allow reset via expanders
  KVM: MMU: Expose the LA57 feature to VM.
  KVM: MMU: Add 5 level EPT & Shadow page table support.
  KVM: MMU: Rename PT64_ROOT_LEVEL to PT64_ROOT_4LEVEL.
  KVM: MMU: check guest CR3 reserved bits based on its physical address width.
  KVM: x86: Add return value to kvm_cpuid().
  kvm: vmx: Raise #UD on unsupported XSAVES/XRSTORS
  ext4: cleanup goto next group
  ext4: do not unnecessarily allocate buffer in recently_deleted()
  drm/amdgpu: inline amdgpu_ttm_do_bind again
  drm/amdgpu: fix amdgpu_ttm_bind
  drm/amdgpu: remove the GART copy hack
  drm/ttm:fix wrong decoding of bo_count
  drm/ttm: fix missing inc bo_count
  drm/amdgpu: set sched_hw_submission higher for KIQ (v3)
  drm/amdgpu: move default gart size setting into gmc modules
  drm/amdgpu: refine default gart size
  drm/amd/powerplay: ACG frequency added in PPTable
  drm/amdgpu: discard commands of killed processes
  drm/amdgpu: fix and cleanup shadow handling
  drm/amdgpu: add automatic per asic settings for gart_size
  drm/amdgpu/gfx8: fix spelling typo in mqd allocation
  compat_hdio_ioctl: Fix a declaration
  rtc: remove .open() and .release()
  block: remove blk_free_devt in add_partition
  rtc: mxc: avoid disabling interrupts on device close
  bio-integrity: Fix regression if profile verify_fn is NULL
  kvm: vmx: Raise #UD on unsupported RDSEED
  kvm: vmx: Raise #UD on unsupported RDRAND
  KVM: VMX: cache secondary exec controls
  net/mlx5: Add tracepoints
  net/mlx5: Add hash table for flow groups in flow table
  net/mlx5: Add hash table to search FTEs in a flow-group
  net/mlx5: Don't store reserved part in FTEs and FGs
  net/mlx5: Convert linear search for free index to ida
  net/mlx5e: Fix wrong code indentation in conditional statement
  net/mlx5: Remove a leftover unused variable
  net/mlx5: Add a blank line after declarations V2
  ARM: OMAP2+: fix missing variable declaration
  powerpc/powernv: Enable removal of memory for in memory tracing
  ASoC: rt5514: expose Hotword Model control
  ASoC: codecs: msm8916-wcd-analog: always true condition
  wireless: ipw2x00: make iw_handler_def const
  net: rsi: mac80211: constify ieee80211_ops
  wireless: ipw2200: Replace PCI pool old API
  rtlwifi: rtl8821ae: fix spelling mistake: "faill" -> "failed"
  mt7601u: check memory allocation failure
  rtlwifi: make a couple arrays larger
  rtlwifi: btcoex: 23b 1ant: fix duplicated code for different branches
  wlcore: add missing nvs file name info for wilink8
  usb: chipidea: Add support for Tegra20/30/114/124
  usb: chipidea: udc: Support SKB alignment quirk
  rtc: vr41xx: make alarms useful
  rtc: sa1100: make alarms useful
  rtc: sa1100: fix unbalanced clk_prepare_enable/clk_disable_unprepare
  rtc: pxa: fix possible race condition
  rtc: m41t80: remove debug sysfs attribute
  rtc: m41t80: enable wakealarm when "wakeup-source" is specified
  clk: sunxi-ng: Add sun4i/sun7i CCU driver
  dt-bindings: List devicetree binding for the CCU of Allwinner A10
  dt-bindings: List devicetree binding for the CCU of Allwinner A20
  x86/lguest: Remove lguest support
  x86/paravirt/xen: Remove xen_patch()
  arm64: dts: marvell: add Device Tree files for Armada-8KP
  ALSA: control: TLV data is unavailable at initial state of user-defined element set
  ALSA: control: queue TLV event for a set of user-defined element
  ALSA: control: delegate TLV eventing to each driver
  ALSA: nm256: constify snd_ac97_res_table
  powerpc/uprobes: Implement arch_uretprobe_is_alive()
  powerpc/kprobes: Don't save/restore DAR/DSISR to/from pt_regs for optprobes
  bpf: netdev is never null in __dev_map_flush
  bpf, doc: Add arm32 as arch supporting eBPF JIT
  bpf/verifier: document liveness analysis
  bpf/verifier: remove varlen_map_value_access flag
  selftests/bpf: add a test for a pruning bug in the verifier
  bpf/verifier: when pruning a branch, ignore its write marks
  selftests/bpf: add a test for a bug in liveness-based pruning
  gre: remove duplicated assignment of iph
  net: tipc: constify genl_ops
  net: hinic: make functions set_ctrl0 and set_ctrl1 static
  powerpc/xive: Fix the size of the cpumask used in xive_find_target_in_mask()
  net/sock: allow the user to set negative peek offset
  mlxsw: spectrum_flower: Offload goto_chain termination action
  mlxsw: spectrum_acl: Provide helper to lookup ruleset
  mlxsw: spectrum_acl: Allow to get group_id value for a ruleset
  net: sched: add couple of goto_chain helpers
  mlxsw: spectrum: Offload multichain TC rules
  net: mvpp2: software tso support
  net: mvpp2: unify the txq size define use
  net: define the TSO header size in net/tso.h
  ipv4: do metrics match when looking up and deleting a route
  selftests/net: Add a test to validate behavior of rx timestamps
  tcp: Extend SOF_TIMESTAMPING_RX_SOFTWARE to TCP recvmsg
  liquidio: change manner of detecting whether or not NIC firmware is loaded
  ACPI: make device_attribute const
  ACPI / sysfs: Extend ACPI sysfs to provide access to boot error region
  ACPI: APEI: fix the wrong iteration of generic error status block
  ACPI / processor: make function acpi_processor_check_duplicates() static
  staging: rtlwifi: add MAC80211 dependency
  staging: rtlwifi: simplify logical operation
  staging: rtlwifi: shut up -Wmaybe-uninitialized warning
  Staging: comedi: comedi_fops: fix dev_err() warning style
  staging: ccree: save ciphertext for CTS IV
  staging: fsl-mc: be consistent when checking strcmp() returns
  clk: msm8996-gcc: add missing smmu clks
  clk: tegra: Fix Tegra210 PLLU initialization
  clk: tegra: Correct Tegra210 UTMIPLL poweron delay
  clk: tegra: Fix T210 PLLRE registration
  clk: tegra: Update T210 PLLSS (D2/DP) registration
  clk: tegra: Re-factor T210 PLLX registration
  clk: tegra: don't warn for pll_d2 defaults unnecessarily
  clk: tegra: change post IDDQ release delay to 5us
  clk: tegra: Add TEGRA_PERIPH_ON_APB flag to I2C
  clk: tegra: Fix T210 effective NDIV calculation
  clk: tegra: Init cfg structure in _get_pll_mnp
  clk: tegra210: remove non-existing VFIR clock
  clk: tegra: disable SSC for PLL_D2
  clk: tegra: Enable PLL_SS for Tegra210
  clk: tegra: fix SS control on PLL enable/disable
  clk: qcom: msm8916: Fix bimc gpu clock ops
  clk: ti: make clk_ops const
  clk: rockchip: Mark rockchip_fractional_approximation static
  block, bfq: fix error handle in bfq_init
  drm/amd/powerplay: unhalt mec after loading
  drm/amdgpu/virtual_dce: Virtual display doesn't support disable vblank immediately
  drm/amdgpu: Fix huge page updates with CPU
  block: replace bi_bdev with a gendisk pointer and partitions index
  block: cache the partition index in struct block_device
  block: add a __disk_get_part helper
  block: reject attempts to allocate more than DISK_MAX_PARTS partitions
  raid5: remove a call to get_start_sect
  btrfs: index check-integrity state hash by a dev_t
  skd: Change default interrupt mode to MSI-X
  skd: Avoid double completions in case of a timeout
  skd: Inline skd_process_request()
  skd: Report completion mismatches once
  block: Warn if blk_queue_rq_timed_out() is called for a blk-mq queue
  isofs: Delete an unnecessary variable initialisation in isofs_read_inode()
  isofs: Adjust four checks for null pointers
  KVM: SVM: Enable Virtual GIF feature
  KVM: SVM: Add Virtual GIF feature definition
  spi: pl022: constify amba_id
  dmaengine: ioatdma: Add intr_coalesce sysfs entry
  spi: imx: fix little-endian build
  ASoC: Intel: Skylake: Fix uninitialized return
  ASoC: rt5645: make rt5645_platform_data const
  firmware: arm_scpi: fix endianness of dev_id in struct dev_pstate_set
  nullb: badbblocks support
  nullb: emulate cache
  nullb: bandwidth control
  nullb: support discard
  nullb: support memory backed store
  nullb: use ida to manage index
  nullb: add interface to power on disk
  nullb: add configfs interface
  nullb: factor disk parameters
  selftests: timers: remove rtctest_setdate from run_destructive_tests
  mtd: nand: tmio: Register partitions using the parsers
  mfd: tmio: Add partition parsers platform data
  mtd: nand: sharpsl: Register partitions using the parsers
  mtd: nand: sharpsl: Add partition parsers platform data
  mtd: nand: qcom: Support for IPQ8074 QPIC NAND controller
  mtd: nand: qcom: support for IPQ4019 QPIC NAND controller
  dt-bindings: qcom_nandc: IPQ8074 QPIC NAND documentation
  dt-bindings: qcom_nandc: IPQ4019 QPIC NAND documentation
  dt-bindings: qcom_nandc: fix the ipq806x device tree example
  mtd: nand: qcom: support for different DEV_CMD register offsets
  mtd: nand: qcom: QPIC data descriptors handling
  mtd: nand: qcom: enable BAM or ADM mode
  mtd: nand: qcom: erased codeword detection configuration
  mtd: nand: qcom: support for read location registers
  mtd: nand: qcom: support for passing flags in DMA helper functions
  mtd: nand: qcom: add BAM DMA descriptor handling
  mtd: nand: qcom: allocate BAM transaction
  mtd: nand: qcom: DMA mapping support for register read buffer
  mtd: nand: qcom: add and initialize QPIC DMA resources
  mtd: nand: qcom: add bam property for QPIC NAND controller
  mtd: nand: qcom: support for NAND controller properties
  mtd: nand: qcom: fix read failure without complete bootchain
  mtd: nand: mtk: fix error return code in mtk_ecc_probe()
  mtd: nand: sh_flctl: fix error return code in flctl_probe()
  mtd: nand: sh_flctl: use dma_mapping_error to check map errors
  mtd: nand: atmel: fix of_irq_get() error check
  mtd: nand: hynix: add support for 20nm NAND chips
  mtd: nand: mxc: Fix mxc_v1 ooblayout
  mtd: nand: sunxi: explicitly request exclusive reset control
  mtd: st_spi_fsm: Handle clk_prepare_enable/clk_disable_unprepare.
  mtd: nand: lpc32xx_mlc: Handle return value of clk_prepare_enable.
  mtd: nand: lpc32xx_slc: Handle return value of clk_prepare_enable.
  mtd: oxnas_nand: Handle clk_prepare_enable/clk_disable_unprepare.
  mtd: nand: denali: Handle return value of clk_prepare_enable.
  mtd: orion-nand: fix build error with ARMv4
  mtd: nand: pxa3xx_nand: enable building on mvebu 64-bit platforms
  mtd: nand: qcom: reorganize nand devices probing
  mtd: nand: qcom: remove memset for clearing read register buffer
  mtd: nand: qcom: reorganize nand page write
  mtd: nand: qcom: reorganize nand page read
  dt-bindings: qcom_nandc: remove chip select compatible string
  mtd: nand: qcom: remove redundant chip select compatible string
  mtd: nand: qcom: fix config error for BCH
  mtd: nand: vf610: Remove unneeded pinctrl_pm_select_default_state()
  mtd: nand: vf610: Check the return value from clk_prepare_enable()
  mtd: nand: remove hard-coded NAND ids length
  mtd: nand: Fix various memory leaks in core
  skd: error pointer dereference in skd_cons_disk()
  skd: Uninitialized variable in skd_isr_completion_posted()
  drm/sun4i: use of_graph_get_remote_endpoint()
  iommu/pamu: Fix PAMU boot crash
  ALSA: ctxfi: make hw structures const
  ALSA: intel8x0: constify ac97_pcm structures
  ALSA: atiixp: constify ac97_pcm structures
  ALSA: ac97c: constify ac97_pcm structures
  ALSA: aaci: constify ac97_pcm structures
  ALSA: fireface: Use common error handling code in pcm_open()
  powerpc/64: Optimise set/clear of CTRL[RUN] (runlatch)
  workqueue: Use TASK_IDLE
  powerpc/64s: Remove spurious IRQ reason in IRQ replay
  powerpc/64: Remove redundant instruction in interrupt replay
  powerpc/64s: Use the HV handler for external IRQ replay in HV mode on POWER9
  powerpc/64s: Merge HV and non-HV paths for doorbell IRQ replay
  powerpc/64: Cleanup __check_irq_replay()
  powerpc/64s: masked_interrupt() returns to kernel so avoid restoring r13
  powerpc/64s: Optimise clearing of MSR_EE in masked_[H]interrupt()
  powerpc/64s: Avoid a branch in masked_[H]interrupt()
  powerpc/mm: Make switch_mm_irqs_off() out of line
  powerpc/mm: Optimize detection of thread local mm's
  powerpc/mm: Use mm_is_thread_local() instread of open-coding
  powerpc/mm: Avoid double irq save/restore in activate_mm
  powerpc/mm: Move pgdir setting into a helper
  powerpc/64s: Fix replay interrupt return label name
  powerpc: pseries: remove dlpar_attach_node dependency on full path
  powerpc: Convert to using %pOF instead of full_name
  powerpc/vio: Use device_type to detect family
  s390/topology: Remove the unused parent_node() macro
  s390/dasd: Change unsigned long long to unsigned long
  s390/smp: convert cpuhp_setup_state() return code to zero on success
  s390: fix 'novx' early parameter handling
  s390/dasd: add average request times to dasd statistics
  ASoC: codecs: rt5670: add jack detection quirk for Dell Venue 5585
  ASoC: codecs: rt5645: add quirks for Asus T100HA
  ASoC: Intel: Skylake: Fix DSP core ref count for init failure
  ASoC: Intel: Skylake: Fix to free correct dev id in free_irq
  ASoC: Intel: Skylake: Fix to free resources for dsp_init failure
  ASoC: Intel: Skylake: Fix to free dsp resource on ipc_init failure
  ALSA: usb-midi: Use common error handling code in __snd_usbmidi_create()
  ASoC: audio-graph-scu-card: Add pm callbacks to platform driver
  ASoC: audio-graph-card: Add pm callbacks to platform driver
  ASoC: simple-scu-card: Add pm callbacks to platform driver
  ASoC: wm8524: remove unnecessary snd_soc_unregister_platform()
  irqchip/gic-v3-its: Generalize LPI configuration
  irqchip/gic-v3-its: Generalize device table allocation
  irqchip/gic-v3-its: Rework LPI freeing
  irqchip/gic-v3-its: Split out pending table allocation
  irqchip/gic-v3-its: Allow use of indirect VCPU tables
  irqchip/gic-v3-its: Split out property table allocation
  irqchip/gic-v3-its: Implement irq_set_irqchip_state for pending state
  irqchip/gic-v3-its: Macro-ize its_send_single_command
  irqchip/gic-v3-its: Add probing for VLPI properties
  irqchip/gic-v3-its: Move LPI definitions around
  irqchip/gic-v3: Add VLPI/DirectLPI discovery
  irqchip/gic-v3: Add redistributor iterator
  genirq: Let irq_set_vcpu_affinity() iterate over hierarchy
  soc/tegra: fuse: Add missing semi-colon
  soc/tegra: Restrict SoC device registration to Tegra
  ASoC: tegra: Fix unused variable warning
  drm/omap: work-around for omap3 display enable
  drm/omap: fix i886 work-around
  drm/omap: fix analog tv-out modecheck
  irqchip: Convert to using %pOF instead of full_name
  irqchip: Add UniPhier AIDET irqchip driver
  ALSA: timer: Use common error handling code in alsa_timer_init()
  ALSA: timer: Adjust a condition check in snd_timer_resolution()
  ALSA: pcm: Adjust nine function calls together with a variable assignment
  ALSA: pcm: Use common error handling code in _snd_pcm_new()
  gpio: twl6040: remove unneeded forward declaration
  x86/ioapic: Print the IRTE's index field correctly when enabling INTR
  arm64: dts: rockchip: add Haikou baseboard with RK3399-Q7 SoM
  arm64: dts: rockchip: add RK3399-Q7 (Puma) SoM
  dt-bindings: add rk3399-q7 SoM
  ARM: dts: rockchip: enable usb for rv1108-evb
  ARM: dts: rockchip: add usb nodes for rv1108 SoCs
  gpio: zevio: make gpio_chip const
  dt-bindings: update grf-binding for rv1108 SoCs
  gpio: add gpio_add_lookup_tables() to add several tables at once
  ARM: dts: aspeed-g4: fix AHB window size of the SMC controllers
  ARM: config: aspeed: Add I2C, VUART, LPC Snoop
  ARM: configs: aspeed: Update Aspeed G4 with VMSPLIT_2G
  gre: fix goto statement typo
  bpf: minor cleanups for dev_map
  bpf: misc xdp redirect cleanups
  binder: fix incorrect cmd to binder_stat_br
  binder: free memory on error
  ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
  ANDROID: binder: add padding to binder_fd_array_object.
  staging: lustre: lnet: cleanup paths for all LNet headers
  staging: lustre: libcfs: cleanup paths for libcfs headers
  staging: lustre: libcfs: add include path to Makefile
  staging: lustre: ksocklnd: add include path to Makefile
  staging: lustre: ko2iblnd: add include path to Makefile
  staging: lustre: lnet: add include path to Makefile
  staging: lustre: lnet: selftest: add include path to Makefile
  staging: lustre: lustre: cleanup paths for lustre UAPI headers
  staging: lustre: lustre: cleanup paths for lustre internal headers
  staging: lustre: osc: add include path to Makefile
  staging: lustre: obdecho: add include path to Makefile
  staging: lustre: obdclass: add include path to Makefile
  staging: lustre: mgc: add include path to Makefile
  staging: lustre: mdc: add include path to Makefile
  staging: lustre: lov: add include path to Makefile
  staging: lustre: lmv: add include path to Makefile
  staging: lustre: llite: add include path to Makefile
  staging: lustre: ptlrpc: add include path to Makefile
  staging: lustre: fld: add include path to Makefile
  staging: lustre: fid: add include path to Makefile
  staging: lustre: uapi: remove BIT macro from UAPI headers
  staging: lustre: uapi: use proper byteorder functions in lustre_idl.h
  staging: lustre: uapi: remove CONFIG_LUSTRE_OBD_MAX_IOCTL
  staging: lustre: uapi: migrate remaining uapi headers to uapi directory
  staging: lustre: uapi: remove libcfs.h from lustre_id.h/lustre_user.h
  staging: lustre: lnet: remove BIT macro from lnetctl.h
  staging: lustre: lnet: remove userland function prototype in lnetctl.h
  staging: lustre: libcfs: sort headers in libcfs.h
  staging: lustre: lnet: migrate headers to lnet uapi directory
  staging: lustre: lnet: delete lnet.h
  staging: lustre: socklnd: create socklnd.h UAPI header
  staging: lustre: libcfs: create libcfs_debug.h UAPI header
  staging: lustre: libcfs: remove LOGL and LOGU macros
  staging: lustre: libcfs: remove htonl hack in libcfs.h
  staging: lustre: uapi: label lustre_cfg.h as an uapi header
  staging: lustre: uapi: style cleanup of lustre_cfg.h
  staging: lustre: uapi: check if argument for lustre_cfg_buf() is NULL
  staging: lustre: uapi: change variable type to match
  staging: lustre: uapi: remove need for libcfs.h from lustre_cfg.h
  staging: lustre: uapi: move lustre_cfg.h to uapi directory
  staging: lustre: obdclass: no need to check for kfree
  staging: lustre: uapi: move lustre_cfg_string() to obd_config.c
  staging: lustre: uapi: don't memory allocate in UAPI header
  staging: lustre: uapi: remove lustre_cfg_free wrapper
  staging: lustre: uapi: style cleanups for lustre_param.h
  staging: lustre: uapi: label lustre_param.h as an uapi header
  staging: lustre: uapi: move lustre_param.h to uapi directory
  staging: lustre: uapi: remove included headers out of lustre_param.h
  staging: lustre: uapi: move kernel only prototypes out of lustre_param.h
  staging: lustre: uapi: label lustre_ioctl.h as a UAPI header
  staging: lustre: uapi: cleanup headers for lustre_ioctl.h
  staging: lustre: uapi: use __ALIGN_KERNEL for lustre_ioctl.h
  staging: lustre: uapi: move lustre_ioctl.h to uapi directory
  staging: lustre: uapi: move obd_ioctl_is_invalid() to linux-module.c
  staging: lustre: uapi: move obd_ioctl_getdata() declaration
  staging: lustre: uapi: remove obd_ioctl_popdata() wrapper
  staging: lustre: uapi: remove obd_ioctl_freedata() wrapper
  staging: lustre: uapi: remove userland version of obd_ioctl_*()
  staging: lustre: uapi: remove unused function in lustre_disk.h
  staging: lustre: uapi: move lu_fid, ost_id funcs out of lustre_idl.h
  staging: lustre: uapi: update URL doc link in lustre_fid.h
  staging: lustre: uapi: return error code for ostid_set_id
  staging: lustre: uapi: remove unused functions for lustre_fid.h
  staging: lustre: uapi: Move functions out of lustre_idl.h
  staging: r8822be: fix a couple of spelling mistakes
  staging: typec: tcpm: make function tcpm_get_pwr_opmode
  Staging: fsl-dpaa2: ethernet: dpni.c: Fixed alignment to match open parenthesis.
  staging: greybus: audio: constify snd_soc_dai_ops structures
  Staging: greybus: Fix spelling error in comment
  staging: rtlwifi: fix multiple build errors
  dt-bindings: add amc6821, isl1208 trivial bindings
  dt-bindings: add vendor prefix for Theobroma Systems
  ARM: dts: rockchip: add cpu power supply for rv1108 evb
  bpf: fix map value attribute for hash of maps
  ARM: dts: rockchip: add cpu opp table for rv1108
  arm64: dts: rockchip: add rk3328-rock64 board
  arm64: dts: rockchip: add rk3328 pdm node
  MIPS,bpf: fix missing break in switch statement
  ARM64: dts: meson-gxl-libretech-cc: Add GPIO lines names
  ARM64: dts: meson-gx: Add AO CEC nodes
  ARM64: dts: meson-gx: update AO clkc to new bindings
  staging: unisys: use ATTRIBUTE_GROUPS instead of creating our own
  staging: unisys: visorbus: Get rid of passthrough function visorchipset_device_destroy
  staging: unisys: visorbus: Get rid of passthrough function visorchipset_device_create
  staging: unisys: visorbus: Get rid of passthrough function visorchipset_bus_destroy
  staging: unisys: include: iochannel.h: Add proper copyright statement
  staging: unisys: visorinput: ultrainputreport.h: Adjust comment formatting
  staging: unisys: visorhba: Adjust top comment formatting
  staging: unisys: include: visorbus.h: Remove filename in top comment
  staging: unisys: visorinput: visorinput.c: Remove filename in top comment
  staging: unisys: visorbus: visorchannel.c: Remove filename in top comment
  staging: unisys: visorbus: visorbus_main.c: Remove filename in top comment
  staging: unisys: visorbus: visorchipset.c: Fix SonarQube sprintf findings
  staging: unisys: include: iochannel.h: Update comments for #defines
  staging: unisys: visorbus: Get rid of passthrough function visorchipset_bus_create
  staging: unisys: reference bus_no and dev_no directly
  staging: unisys: don't copy to local variable
  staging: unisys: visorbus: Remove confusing comment in controlvmchannel.
  staging: unisys: Move SIOVM guid to visorbus
  staging: unisys: Move VNIC GUID to visornic
  staging: unisys: include: remove unnecessary blank line from channel.h
  staging: unisys: visorinput: Get rid of unused includes
  staging: unisys: include: iochannel needs to include skbuff
  staging: unisys: visorbus: Remove unnecessary includes for visorchipset.c
  staging: unisys: visorbus: fix include dependency
  staging: unisys: include: Remove unneeded includes from visorbus.h
  staging: unisys: include: Remove unnecessary forward declaration
  staging: unisys: include: Fix up comment style in visorbus.h
  staging: unisys: include: cleanup channel comment
  staging: unisys: include: Remove unused throttling defines.
  staging: unisys: include: Remove unused vdiskmgmt commands
  staging: unisys: include: Remove unused #define MAXNUM
  staging: unisys: visorbus: merging the visorbus_device_pause_response and visorbus_device_resume_response functions into one.
  staging: unisys: visorbus: merging the visorbus_*_response functions into one.
  staging: unisys: include: fix improper use of dma_data_direction
  staging: unisys: visorbus: Remove unnecessary comments
  staging: unisys: visorbus: Merge vmcallinterface.h into visorchipset.c
  staging: unisys: visornic: visornic_main.c: fix multiline dereference.
  staging: unisys: visornic: update the struct visornic_devdata comments
  staging: unisys: visorbus: fix multi-line function definition
  staging: unisys: visorbus: visorbus_private.h remove filename
  staging: unisys: visorbus: Update comment style vbuschannel.h
  staging: unisys: Switch to use new generic UUID API
  staging: unisys: visorbus: Adding a new line between function definition
  staging: unisys: include: iochannel.h: Removed unused DEFINE
  staging: unisys: visorbus: remove filename from beginning of file
  net: sched: use kvmalloc() for class hash tables
  net: amd: constify zorro_device_id
  Documentation/bindings: net: marvell-pp2: add the system controller
  net: mvpp2: initialize the GoP
  net: mvpp2: set maximum packet size for 10G ports
  net: mvpp2: initialize the XLG MAC when using a port
  net: mvpp2: initialize the GMAC when using a port
  net: mvpp2: move the mii configuration in the ndo_open path
  net: mvpp2: fix the synchronization module bypass macro name
  net: mvpp2: unify register definitions coding style
  gre: introduce native tunnel support for ERSPAN
  udp: remove unreachable ufo branches
  net: mdio-gpio: make mdiobb_ops const
  net: ethernet: freescale: fs_enet: make mdiobb_ops const
  net: ethernet: ax88796: make mdiobb_ops const
  tcp: Remove the unused parameter for tcp_try_fastopen.
  tcp: Get a proper dst before checking it.
  hv_netvsc: Update netvsc Document for UDP hash level setting
  hv_netvsc: Add ethtool handler to set and get UDP hash levels
  hv_netvsc: Clean up unused parameter from netvsc_get_rss_hash_opts()
  hv_netvsc: Clean up unused parameter from netvsc_get_hash()
  rdma: Autoload netlink client modules
  rdma: Allow demand loading of NETLINK_RDMA
  PCI: dwc: Clear MSI interrupt status after it is handled, not before
  IB/mlx4: use kvmalloc_array to allocate wrid
  IB/mlx5: use kvmalloc_array for mlx5_ib_wq
  PCI: dra7xx: Propagate platform_get_irq() errors in dra7xx_pcie_probe()
  RDMA: Fix return value check for ib_get_eth_speed()
  xprtrdma: Re-arrange struct rx_stats
  IB/pvrdma: Remove unused function
  i40iw: Improve CQP timeout logic
  selinux: allow per-file labeling for cgroupfs
  IB/hfi1: Add kernel receive context info to debugfs
  IB/hfi1: Remove HFI1_VERBS_31BIT_PSN option
  IB/hfi1: Remove pstate from hfi1_pportdata
  IB/hfi1: Stricter bounds checking of MAD trap index
  IB/hfi1: Load fallback platform configuration per HFI device
  IB/hfi1: Add flag for platform config scratch register read
  IB/hfi1: Document phys port state bits not used in IB
  IB/hfi1: Check xchg returned value for queuing link down entry
  IB/hfi1: fix spelling mistake: "Maximim" -> "Maximum"
  IB/hfi1: Enable RDMA_CAP_OPA_AH in hfi driver to support extended LIDs
  IB/hfi1: Enhance PIO/SDMA send for 16B
  IB/hfi1: Add 16B RC/UC support
  IB/rdmavt, hfi1, qib: Enhance rdmavt and hfi1 to use 32 bit lids
  IB/hfi1: Add 16B trace support
  IB/hfi1: Add 16B UD support
  IB/hfi1: Determine 9B/16B L2 header type based on Address handle
  IB/hfi1: Add support to process 16B header errors
  IB/hfi1: Add support to send 16B bypass packets
  IB/hfi1: Add support to receive 16B bypass packets
  IB/rdmavt, hfi1, qib: Modify check_ah() to account for extended LIDs
  IB/hf1: User context locking is inconsistent
  IB/hfi1: Protect context array set/clear with spinlock
  IB/hfi1: Use host_link_state to read state when DC is shut down
  IB/hfi1: Remove lstate from hfi1_pportdata
  IB/hfi1: Remove pmtu from the QP structure
  IB/hfi1: Revert egress pkey check enforcement
  liquidio: make VF driver notify NIC firmware of MTU change
  liquidio: move macro definition to a proper place
  ALSA: cmipci: Use common error handling code in snd_cmipci_probe()
  ptp: make ptp_clock_info const
  net: ethernet: make ptp_clock_info const
  IB/core: Fix input len in multiple user verbs
  net: hns3: Add support to change MTU in HNS3 hardware
  mlx5: Replace PCI pool old API
  mlx4: Replace PCI pool old API
  IB/mthca: Replace PCI pool old API
  net-next/hinic: Add Maintainer
  net-next/hinic: Add netpoll
  net-next/hinic: Add ethtool and stats
  net-next/hinic: Add Tx operation
  net-next/hinic: Add Rx handler
  net-next/hinic: Add cmdq completion handler
  net-next/hinic: Add cmdq commands
  net-next/hinic: Add ceqs
  net-next/hinic: Initialize cmdq
  net-next/hinic: Set qp context
  net-next/hinic: Add qp resources
  net-next/hinic: Add wq
  net-next/hinic: Add logical Txq and Rxq
  net-next/hinic: Add Rx mode and link event handler
  net-next/hinic: Add port management commands
  net-next/hinic: Add aeqs
  net-next/hinic: Add api cmd commands
  net-next/hinic: Add management messages
  net-next/hinic: Initialize api cmd hw
  net-next/hinic: Initialize api cmd resources
  net-next/hinic: Initialize hw device components
  net-next/hinic: Initialize hw interface
  ALSA: hda - Implement mic-mute LED mode enum
  ALSA: ctxfi: Use common error handling code in two functions
  arm64: cleanup {COMPAT_,}SET_PERSONALITY() macro
  selftests: timers: Fix run_destructive_tests target to handle skipped tests
  kselftests: timers: leap-a-day: Change default arguments to help test runs
  net: ethernet: stmmac: dwmac-rk: Add rv1108 gmac support
  ethernet: xircom: small clean up in setup_xirc2ps_cs()
  drm/msm/mdp5: mark runtime_pm functions as __maybe_unused
  drm/msm: remove unused variable
  drm/msm/mdp5: make helper function static
  drm/msm: make msm_framebuffer_init() static
  drm/msm: add helper to allocate stolen fb
  drm/msm: don't track fbdev's gem object separately
  drm/msm: add modeset module param
  drm/msm/mdp5: add tracking for clk enable-count
  drm/msm: remove unused define
  drm/msm: Add a helper function for in-kernel buffer allocations
  drm/msm: Attach the GPU MMU when it is created
  selftests: timers: drop support for !KTEST case
  arm64: introduce separated bits for mm_context_t flags
  arm64: hugetlb: Cleanup setup_hugepagesz
  arm64: Re-enable support for contiguous hugepages
  arm64: hugetlb: Override set_huge_swap_pte_at() to support contiguous hugepages
  arm64: hugetlb: Override huge_pte_clear() to support contiguous hugepages
  dmaengine: xgene-dma: remove unused xgene_dma_invalidate_buffer
  dmaengine: altera: remove DMA_SG
  arm: eBPF JIT compiler
  perf tools: Fix static linking with libunwind
  perf tools: Fix static linking with libdw from elfutils
  perf: Fix documentation for sysctls perf_event_paranoid and perf_event_mlock_kb
  perf tools: Really install manpages via 'make install-man'
  perf test: Add test cases for new data source encoding
  xfs: stop searching for free slots in an inode chunk when there are none
  xfs: add log recovery tracepoint for head/tail
  xfs: handle -EFSCORRUPTED during head/tail verification
  xfs: add log item pinning error injection tag
  xfs: fix log recovery corruption error due to tail overwrite
  xfs: always verify the log tail during recovery
  xfs: fix recovery failure when log record header wraps log end
  xfs: Properly retry failed inode items in case of error during buffer writeback
  xfs: Add infrastructure needed for error propagation during buffer IO failure
  xfs: toggle readonly state around xfs_log_mount_finish
  xfs: write unmount record for ro mounts
  ASoC: rockchip: Correct 'dmic-delay' property name
  mtd: spi-nor: add support for Microchip sst26vf064b QSPI memory
  ALSA: pcsp: Use common error handling code in snd_card_pcsp_probe()
  ASoC: rsnd: remove unused rsnd_xxx_to_dma()
  perf tools: Add support for printing new mem_info encodings
  perf vendor events: Add Skylake server uncore event list
  perf vendor events: Add core event list for Skylake Server
  perf tools: Dedup events in expression parsing
  perf tools: Increase maximum number of events in expressions
  perf tools: Expression parser enhancements for metrics
  perf tools: Add utility function to detect SMT status
  ALSA: ice1712: Add support for STAudio ADCIII
  arm64: hugetlb: Handle swap entries in huge_pte_offset() for contiguous hugepages
  perf bpf: Tighten detection of BPF events
  arm64: hugetlb: Add break-before-make logic for contiguous entries
  arm64: hugetlb: Spring clean huge pte accessors
  arm64: hugetlb: Introduce pte_pgprot helper
  perf evsel: Fix buffer overflow while freeing events
  perf xyarray: Save max_x, max_y
  arm64: hugetlb: set_huge_pte_at Add WARN_ON on !pte_present
  memory: mtk-smi: Degrade SMI init to module_init
  iommu/mediatek: Enlarge the validate PA range for 4GB mode
  iommu/mediatek: Disable iommu clock when system suspend
  iommu/mediatek: Move pgtable allocation into domain_alloc
  iommu/mediatek: Merge 2 M4U HWs into one iommu domain
  iommu/mediatek: Add mt2712 IOMMU support
  iommu/mediatek: Move MTK_M4U_TO_LARB/PORT into mtk_iommu.c
  parisc/core: Fix section mismatches
  parisc/ipmi_si_intf: Fix section mismatches on parisc platform
  parisc/input/hilkbd: Fix section mismatches
  parisc/net/lasi_82596: Fix section mismatches
  parisc/serio: Fix section mismatches in gscps2 and hp_sdc drivers
  parisc: Fix section mismatches in parisc core drivers
  parisc/parport_gsc: Fix section mismatches
  parisc/scsi/lasi700: Fix section mismatches
  parisc/scsi/zalon: Fix section mismatches
  parisc/8250_gsc: Fix section mismatches
  parisc/mux: Fix section mismatches
  parisc/sticore: Fix section mismatches
  parisc/harmony: Fix section mismatches
  parisc: Wire up support for self-extracting kernel
  parisc: Make existing core files reuseable for bootloader
  parisc: Add core code for self-extracting kernel
  parisc: Enable UBSAN support
  parisc/random: Add machine specific randomness
  parisc: Optimize switch_mm
  parisc: Drop MADV_SPACEAVAIL, MADV_VPS_PURGE and MADV_VPS_INHERIT
  parisc: Static initialization of pcxl_res_lock spinlock
  parisc: Drop exception_data struct
  parisc: Static initialization of spinlocks in perf and unwind code
  parisc: PDT: Add full support for memory failure via Page Deallocation Table (PDT)
  parisc: PDT/firmware: Add support to read PDT on older PAT-machines
  parisc: Add MADV_HWPOISON and MADV_SOFT_OFFLINE
  iommu/ipmmu-vmsa: Use iommu_device_sysfs_add()/remove()
  ALSA: firewire: add const qualifier to identifiers for read-only symbols
  cpufreq: Cap the default transition delay value to 10 ms
  cpufreq: dbx500: Delete obsolete driver
  mfd: db8500-prcmu: Get rid of cpufreq dependency
  pinctrl: intel: Add Intel Lewisburg GPIO support
  pinctrl: intel: Add Intel Cannon Lake PCH-H pin controller support
  gpio: rcar: Add r8a7745 (RZ/G1E) support
  ARM: dts: augment Ux500 to use DT cpufreq
  gpio: brcmstb: check return value of gpiochip_irqchip_add()
  pinctrl: aspeed: Fix ast2500 strap register write logic
  pinctrl: sunxi: fix wrong irq_banks number for H5 pinctrl
  pinctrl: intel: Disable GPIO pin interrupts in suspend
  ASoC: soc-core: Allow searching dai driver name in snd_soc_find_dai
  pinctrl: vt8500: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: ti-iodelay: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: tz1090: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: tz1090-pdc: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: tb10x: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: rza1: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: ingenic: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: adi2: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: aspeed: g5: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: aspeed: g4: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: digicolor: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: sirf: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  ASoC: tegra: Remove superfluous snd_soc_jack_free_gpios() call
  ASoC: samsung: Remove superfluous snd_soc_jack_free_gpios() call
  ASoC: pxa: Remove superfluous snd_soc_jack_free_gpios() call
  ASoC: omap: Remove superfluous snd_soc_jack_free_gpios() call
  ASoC: intel: Remove superfluous snd_soc_jack_free_gpios() call
  pinctrl: sirf: atlas7: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  ASoC: simple-card: Remove superfluous snd_soc_jack_free_gpios() call
  ASoC: fsl: Remove superfluous snd_soc_jack_free_gpios() call
  ASoC: jack: Manage gpios via devres
  pinctrl: st: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: armada-37xx: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: artpec6: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: bcm281xx: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures
  pinctrl: uniphier: add Audio out pin-mux settings
  MAINTAINERS: Add entry for THUNDERX GPIO Driver.
  gpio: Add gpio driver support for ThunderX and OCTEON-TX
  pinctrl: amd: fix error return code in amd_gpio_probe()
  btrfs: submit superblock io with REQ_META and REQ_PRIO
  ASoC: Intel: Headset button support in kabylake machine driver
  rtc: puv3: make alarms useful
  rtc: puv3: switch to devm_rtc_allocate_device()/rtc_register_device()
  drm/nouveau/kms/nv50: perform null check on msto[i] rathern than msto
  drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
  drm/nouveau: silence suspend/resume debugging messages
  drm/nouveau/kms/nv04-nv4x: fix exposed format list
  drm/nouveau/kms/nv10-nv40: add NV21 support to overlay
  drm/nouveau/kms/nv04-nv40: improve overlay error detection, fix pitch setting
  drm/nouveau/kms/nv04-nv40: prevent undisplayable framebuffers from creation
  drm/nouveau/mpeg: print more debug info when rejecting dma objects
  drm/nouveau/fb/gf100-: zero mmu debug buffers
  drm/nouveau/bar/gf100: add config option to limit BAR2 to 16MiB
  initial support (display-only) for GP108
  drm/nouveau/falcon: use a more reasonable msgqueue timeout value
  drm/nouveau/disp: Silence DCB warnings.
  drm/nouveau/bios: Demote missing fp table message to NV_DEBUG.
  drm/nouveau/pmu/gt215-: abstract detection of whether reset is needed
  drm/nouveau/pmu/gt215: fix reset
  drm/nouveau/mc/gf100: add pmu to reset mask
  drm/nouveau/disp/gf119-: avoid creating non-existent heads
  drm/nouveau/therm/gm200: Added
  drm/nouveau/therm: fix spelling mistake on array thresolds
  hwmon: da9052: Add support for TSI channel
  mfd: da9052: Make touchscreen registration optional
  hwmon: da9052: Replace S_IRUGO with 0444
  mfd: da9052: Add register details for TSI
  crypto: af_alg - get_page upon reassignment to TX SGL
  crypto: cavium/nitrox - Fix an error handling path in 'nitrox_probe()'
  crypto: inside-secure - fix an error handling path in safexcel_probe()
  crypto: rockchip - Don't dequeue the request when device is busy
  crypto: cavium - add release_firmware to all return case
  crypto: sahara - constify platform_device_id
  MAINTAINERS: Add ARTPEC crypto maintainer
  crypto: axis - add ARTPEC-6/7 crypto accelerator driver
  crypto: hash - add crypto_(un)register_ahashes()
  dt-bindings: crypto: add ARTPEC crypto
  crypto: algif_aead - fix comment regarding memory layout
  i2c: mux: i2c-arb-gpio-challenge: allow compiling w/o OF support
  i2c: Documentation: i2c-topology: mention recent driver additions
  phy: brcm-sata: fix a timeout test in init
  phy: cpcap-usb: remove a stray tab
  phy: phy-twl4030-usb: silence an uninitialized variable warning
  phy: rockchip-typec: remove unused dfp variable
  phy: rockchip-inno-usb2: add support of usb2-phy for rv1108 SoCs
  dt-bindings: phy-rockchip-inno-usb2: add otg-mux interrupt
  phy: rockchip-inno-usb2: add support for otg-mux interrupt
  dt-bindings: phy-rockchip-inno-usb2: add rockchip,usbgrf property
  phy: rockchip-inno-usb2: add support for rockchip,usbgrf property
  phy: sun4i-usb: Support A83T USB PHYs
  phy: sun4i-usb: Support secondary clock for HSIC PHY
  dt-bindings: phy: sun4i-usb-phy: Add compatible string for A83T
  dt-bindings: phy: sun4i-usb-phy: Add property descriptions for H3
  dmaengine: remove DMA_SG as it is dead code in kernel
  clk: rockchip: fix the rv1108 clk_mac sel register description
  clk: rockchip: rename rv1108 macphy clock to mac
  clk: rockchip: add rv1108 ACLK_GMAC and PCLK_GMAC clocks
  clk: rockchip: add rk3228 SCLK_SDIO_SRC clk id
  f2fs: introduce discard_granularity sysfs entry
  f2fs: remove unused function overprovision_sections
  f2fs: check hot_data for roll-forward recovery
  f2fs: add tracepoint for f2fs_gc
  f2fs: retry to revoke atomic commit in -ENOMEM case
  f2fs: let fill_super handle roll-forward errors
  f2fs: merge equivalent flags F2FS_GET_BLOCK_[READ|DIO]
  f2fs: support journalled quota
  clk: rockchip: add rv1108 ACLK_GAMC and PCLK_GMAC ID
  clk: rockchip: add rk3228 sclk_sdio_src ID
  ARM: dts: rockchip: add rk322x iommu nodes
  arm64: dts: rockchip: add more rk3399 iommu nodes
  arm64: dts: rockchip: add rk3368 iommu nodes
  arm64: dts: rockchip: add rk3328 iommu nodes
  net: sched: Add the invalid handle check in qdisc_class_find
  tipc: don't reset stale broadcast send link
  Input: atmel_mxt_ts - add support for reset line
  Input: atmel_mxt_ts - use more managed resources
  ASoC: qcom: apq8016-sbc: Add support to Headset JACK
  ASoC: codecs: msm8916-wcd-analog: add MBHC support
  ASoC: codecs: msm8916-wcd-analog: get micbias voltage from dt
  net: check type when freeing metadata dst
  ARM: s3c24xx: Fix NAND ECC mode for mini2440 board
  net: ipv6: put host and anycast routes on device with address
  dsa: remove unused net_device arg from handlers
  MIPS,bpf: Cache value of BPF_OP(insn->code) in eBPF JIT.
  MIPS, bpf: Implement JLT, JLE, JSLT and JSLE ops in the eBPF JIT.
  MIPS,bpf: Fix using smp_processor_id() in preemptible splat.
  qlogic: make device_attribute const
  of: search scripts/dtc/include-prefixes path for both CPP and DTC
  of: remove arch/$(SRCARCH)/boot/dts from include search path for CPP
  of: remove drivers/of/testcase-data from include search path for CPP
  of: return of_get_cpu_node from of_cpu_device_node_get if CPUs are not registered
  ASoC: ux500: Remove unnecessary function call
  ASoC: tegra: Remove unnecessary function call
  ASoC: mediatek: Remove unnecessary function call
  regulator: ltc3589: constify i2c_device_id
  arm64: kexec: have own crash_smp_send_stop() for crash dump for nonpanic cores
  dmaengine: at_xdmac: Handle return value of clk_prepare_enable.
  dmaengine: at_xdmac: Fix compilation warning.
  btrfs: remove unnecessary memory barrier in btrfs_direct_IO
  btrfs: remove superfluous chunk_tree argument from btrfs_alloc_dev_extent
  btrfs: Remove chunk_objectid parameter of btrfs_alloc_dev_extent
  dmaengine: ste_dma40: make stedma40_chan_cfg const
  ASoC: fsl-asoc-card: don't print EPROBE_DEFER as error
  dmaengine: usb-dmac: Add soctype for R-Car M3-W
  dmaengine: qcom_hidma: avoid freeing an uninitialized pointer
  ASoC: sun4i-i2s: Add support for H3
  ASoC: sun4i-i2s: Update global enable with bitmask
  ASoC: sun4i-i2s: Check for slave select bit
  ASoC: sun4i-i2s: Add regmap field to set DAI format
  ASoC: sun4i-i2s: Add mclk enable regmap field
  ASoC: sun4i-i2s: bclk and lrclk polarity tidyup
  ASoC: sun4i-i2s: Add regfields for word size select and sample resolution
  ASoC: sun4i-i2s: Add regmap fields for channels
  ASoC: sun4i-codec: Remove unnecessary function call
  ASoC: qcom: Remove unnecessary function call
  ASoC: qcom: Remove useless function call
  ASoC: mxs-sgtl5000: Remove unnecessary function call
  ASoC: rockchip: Remove unnecessary function call
  ASoC: atmel: Remove unnecessary function call
  ASoC: atmel: Remove unnecessary function call
  ASoC: s3c24xx_uda134x: Remove unnecessary function call
  dmaengine: ioatdma: Add ABI document
  ASoC: rockchip: separate pinctrl pins from each other
  EDAC, mce_amd: Get rid of local var in amd_filter_mce()
  ASoC: rsnd: tidyup comments position/space/tab
  regulator: fan53555: fix I2C device ids
  EDAC, mce_amd: Get rid of most struct cpuinfo_x86 uses
  btrfs: pass fs_info to btrfs_del_root instead of tree_root
  Btrfs: add one more sanity check for shared ref type
  Btrfs: remove BUG_ON in __add_tree_block
  Btrfs: remove BUG() in add_data_reference
  Btrfs: remove BUG() in print_extent_item
  Btrfs: remove BUG() in btrfs_extent_inline_ref_size
  Btrfs: convert to use btrfs_get_extent_inline_ref_type
  Btrfs: add a helper to retrive extent inline ref type
  btrfs: scrub: simplify scrub worker initialization
  btrfs: scrub: clean up division in scrub_find_csum
  btrfs: scrub: clean up division in __scrub_mark_bitmap
  btrfs: scrub: use bool for flush_all_writes
  btrfs: preserve i_mode if __btrfs_set_acl() fails
  btrfs: Remove extraneous chunk_objectid variable
  btrfs: Remove chunk_objectid argument from btrfs_make_block_group
  btrfs: Remove extra parentheses from condition in copy_items()
  btrfs: Remove redundant setting of uuid in btrfs_block_header
  btrfs: Do not use data_alloc_cluster in ssd mode
  btrfs: use btrfsic_submit_bio instead of submit_bio in write_dev_flush
  Btrfs: incremental send, fix emission of invalid clone operations
  Btrfs: fix out of bounds array access while reading extent buffer
  EDAC, mce_amd: Rename decode_smca_errors() to decode_smca_error()
  arm64: dma-mapping: Mark atomic_pool as __ro_after_init
  arm64: dma-mapping: Do not pass data to gen_pool_set_algo()
  omapfb: constify omap_video_timings structures
  video: fbdev: udlfb: Fix use after free on dlfb_usb_probe error path
  fbdev: i810: make fb_ops const
  fbdev: matrox: make fb_ops const
  video: fbdev: pxa3xx_gcu: fix error return code in pxa3xx_gcu_probe()
  video: fbdev: Enable Xilinx FB for ZynqMP
  video: fbdev: Fix multiple style issues in xilinxfb
  video: fbdev: udlfb: constify usb_device_id.
  video: fbdev: smscufx: constify usb_device_id.
  objtool: Fix objtool fallthrough detection with function padding
  isofs: Delete an error message for a failed memory allocation in isofs_read_inode()
  quota_v2: Delete an error message for a failed memory allocation in v2_read_file_info()
  mtd: make device_type const
  arm64: zynqmp: Add generic compatible string for I2C EEPROM
  arm64: zynqmp: Add missing mmc aliases in ep108
  arm64: zynqmp: Enable can1 for ep108
  arm64: zynqmp: Added clocks to DT for ep108
  arm64: zynqmp: Use C pre-processor for includes
  arm64: zynqmp: Add fpd/lpd dmas
  arm64: zynqmp: Set status disabled in dtsi
  arm64: zynqmp: Add new uartps compatible string
  arm64: zynqmp: Correct IRQ nr for the SMMU
  arm64: zynqmp: Add support for RTC
  arm64: zynqmp: Adding prefetchable memory space to pcie node
  arm64: zynqmp: Add CCI-400 node
  arm64: zynqmp: Add dcc console for zynqmp
  arm64: zynqmp: Add operating points
  arm64: zynqmp: Add idle state for ZynqMP
  arm64: zynqmp: Add references to cpu nodes
  arm64: zynqmp: Move nodes which have no reg property out of bus
  quota: Add lock annotations to struct members
  arm: zynq: Remove earlycon from bootargs
  arm: zynq: Use C pre-processor for includes in dts
  arm: zynq: Label whole PL part as fpga_full region
  arm: zynq: Add device-type property for zynq ethernet phy nodes
  arm: zynq: Add adv7511 on i2c bus for zc70x
  ARM: dts: da850-lego-ev3: Add node for LCD display
  ARM: davinci_all_defconfig: enable tinydrm and ST7586
  ALSA: firewire-motu: add support for MOTU Audio Express
  ALSA: firewire-motu: add specification flag for position of flag for MIDI messages
  arm64: Remove the !CONFIG_ARM64_HW_AFDBM alternative code paths
  arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect()
  arm64: Move PTE_RDONLY bit handling out of set_pte_at()
  kvm: arm64: Convert kvm_set_s2pte_readonly() from inline asm to cmpxchg()
  arm64: Convert pte handling from inline asm to using (cmp)xchg
  arm64: dts: rockchip: Add basic cpu frequencies for RK3368
  arm64: dts: rockchip: add rk805 node for rk3328-evb
  m68k/mac: Avoid soft-lockup warning after mach_power_off
  m68k/mac: Don't hang waiting for Cuda power-down command
  m68k: Restore symbol versions for symbols exported from assembly
  m68k/defconfig: Update defconfigs for v4.13-rc1
  ARM: dts: rockchip: add accelerometer bma250e dt node for rv1108 evb
  ARM: dts: rockchip: add pmic rk805 dt node for rv1108 evb
  x86/CPU: Align CR3 defines
  pwm: pwm-samsung: fix suspend/resume support
  pwm: samsung: Remove redundant checks from pwm_samsung_config()
  pwm: mediatek: Disable clock on PWM configuration failure
  dt-bindings: pwm: Add MT2712/MT7622 information
  pwm: mediatek: Fix clock control issue
  pwm: mediatek: Fix PWM source clock selection
  pwm: mediatek: Fix Kconfig description
  mfd: rk808: Add RK805 power key support
  mfd: rk808: Add RK805 pinctrl support
  pinctrl: Add pinctrl driver for the RK805 PMIC
  pinctrl: dt-bindings: Add bindings for Rockchip RK805 PMIC
  mfd: dt-bindings: Add RK805 device tree bindings document
  mfd: rk808: Add RK805 support
  regulator: rk808: Add regulator driver for RK805
  mfd: rk808: Add rk805 regs addr and ID
  mfd: rk808: Fix up the chip id get failed
  x86/build: Use cc-option to validate stack alignment parameter
  firmware/efi/esrt: Constify attribute_group structures
  firmware/efi: Constify attribute_group structures
  firmware/dcdbas: Constify attribute_group structures
  arm/efi: Split zImage code and data into separate PE/COFF sections
  arm/efi: Replace open coded constants with symbolic ones
  arm/efi: Remove pointless dummy .reloc section
  arm/efi: Remove forbidden values from the PE/COFF header
  drivers/fbdev/efifb: Allow BAR to be moved instead of claiming it
  efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns
  efi/arm/arm64: Add missing assignment of efi.config_table
  efi/libstub/arm64: Set -fpie when building the EFI stub
  efi/libstub/arm64: Force 'hidden' visibility for section markers
  efi/libstub/arm64: Use hidden attribute for struct screen_info reference
  efi/arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP
  macintosh/rack-meter: Make of_device_ids const
  pwm: tegra: Explicitly request exclusive reset control
  pwm: hibvt: Explicitly request exclusive reset control
  pwm: tiehrpwm: Set driver data before runtime PM enable
  pwm: tiehrpwm: Miscellaneous coding style fixups
  pwm: tiecap: Set driver data before runtime PM enable
  pwm: tiecap: Miscellaneous coding style fixups
  dt-bindings: pwm: tiecap: Add TI 66AK2G SoC specific compatible
  pwm: tiehrpwm: fix clock imbalance in probe error path
  pwm: tiehrpwm: Fix runtime PM imbalance at unbind
  pwm: Kconfig: Enable pwm-tiecap to be built for Keystone
  pwm: Add ZTE ZX PWM device driver
  dt-bindings: pwm: Add bindings doc for ZTE ZX PWM controller
  pwm: bcm2835: Support for polarity setting via DT
  dt-bindings: pwm: bcm2835: Increase pwm-cells
  liquidio: fix use of pf in pass-through mode in a virtual machine
  net: dsa: mv88e6xxx: make irq_chip const
  net: ibm: emac: Fix some error handling path in 'emac_probe()'
  cxgb4/cxgbvf: Handle 32-bit fw port capabilities
  bpf: fix double free from dev_map_notification()
  gpio: mockup: use irq_sim
  gpio: mxs: use devres for irq generic chip
  gpio: mxc: use devres for irq generic chip
  gpio: pch: use devres for irq generic chip
  gpio: ml-ioh: use devres for irq generic chip
  gpio: sta2x11: use devres for irq generic chip
  gpio: sta2x11: disallow unbinding the driver
  gpio: mxs: disallow unbinding the driver
  gpio: mxc: disallow unbinding the driver
  ieee802154: ca8210: Fix a potential NULL pointer dereference
  staging: rtlwifi: Reviewers fixes
  staging: r8822be: Add Makefiles and Kconfig for new driver
  staging: r8822be: Add the driver code
  staging: r8822be: Add phydm mini driver
  staging: r8822be: Add code for halmac sub-driver
  staging: r8822be: Add r8822be btcoexist routines to staging
  staging: r8822be: Copy existing btcoexist code into staging
  staging: r8822be: Add existing rtlwifi and rtl_pci parts for new driver
  staging: wlan-ng: hfa384x_usb: Fix multiple line dereference
  Staging: greybus: vibrator.c: Fixed alignment to match open parenthesis.
  staging: greybus: make device_type const
  staging/rts5208: fix incorrect shift to extract upper nybble
  staging: pi433: fixed coding style issues
  staging:rtl8188eu: fix coding style issue
  staging: lustre: lustre: Off by two in lmv_fid2path()
  NFS: Fix NFSv2 security settings
  NFSv4.1: don't use machine credentials for CLOSE when using 'sec=sys'
  SUNRPC: ECONNREFUSED should cause a rebind.
  NFS: Remove unused parameter gfp_flags from nfs_pageio_init()
  iio: adc: rockchip_saradc: explicitly request exclusive reset control
  iio: dac: stm32-dac-core: explicitly request exclusive reset control
  iio: adc: ti-ads1015: add threshold event support
  iio: adc: ti-ads1015: use iio_device_claim_direct_mode()
  iio: adc: ti-ads1015: use devm_iio_triggered_buffer_setup
  iio: adc: ti-ads1015: add helper to set conversion mode
  iio: adc: ti-ads1015: remove unnecessary config register update
  iio: adc: ti-ads1015: add adequate wait time to get correct conversion
  iio: adc: ti-ads1015: don't return invalid value from buffer setup callbacks
  iio: adc: ti-ads1015: avoid getting stale result after runtime resume
  iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set
  iio: adc: ti-ads1015: fix scale information for ADS1115
  iio: adc: ti-ads1015: fix incorrect data rate setting update
  iio: adc: ti-ads7950: Allow to use on ACPI platforms
  iio: magnetometer: ak8974: debug AMI306 calibration data
  NFSv4: Fix up mirror allocation
  media: ddbridge: fix semicolon.cocci warnings
  media: isl6421: add checks for current overflow
  iio: magnetometer: ak8974: mark INT_CLEAR as precious
  iio: magnetometer: ak8974: add_device_randomness (serial number)
  media: stv6111: return NULL instead of plain integer
  media: stv0910: declare global list_head stvlist static
  media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_*
  media: cec: fix remote control passthrough
  media: rc: per-protocol repeat period
  media: rc: saa7134: raw decoder can support any protocol
  media: rc: ensure we do not read out of bounds
  media: rc: simplify ir_raw_event_store_edge()
  media: rc: saa7134: add trailing space for timely decoding
  media: rc-core: improve ir_raw_store_edge() handling
  media: winbond-cir: buffer overrun during transmit
  media: mceusb: do not read data parameters unless required
  media: lirc_zilog: driver only sends LIRCCODE
  media: rc: add zx-irdec remote control driver
  media: dt-bindings: add bindings document for zx-irdec
  media: rc: ir-nec-decoder: move scancode composing code into a shared function
  media: rc: sunxi-cir: explicitly request exclusive reset control
  media: st-rc: explicitly request exclusive reset control
  media: rc: nuvoton: remove rudimentary transmit functionality
  media: lirc_zilog: Clean up lirc zilog error codes
  media: dt-bindings: gpio-ir-tx: add support for GPIO IR Transmitter
  media: dt-bindings: pwm-ir-tx: Add support for PWM IR Transmitter
  media: rc: pwm-ir-tx: add new driver
  media: rc: gpio-ir-tx: add new driver
  media: rc: mce kbd decoder not needed for IR TX drivers
  media: rc-core: rename input_name to device_name
  media: rc: constify attribute_group structures
  media: imon: constify attribute_group structures
  media: sir_ir: remove unnecessary static in sir_interrupt()
  media: rc-core: do not depend on MEDIA_SUPPORT
  media: rc: mtk-cir: add MAINTAINERS entry for MediaTek CIR driver
  media: rc: mtk-cir: add support for MediaTek MT7622 SoC
  media: rc: mtk-cir: add platform data to adapt into various hardware
  media: dt-bindings: media: mtk-cir: Add support for MT7622 SoC
  media: rc-core: consistent use of rc_repeat()
  media: v4l: vsp1: Allow entities to participate in the partition algorithm
  media: v4l: vsp1: Provide UDS register updates
  media: v4l: vsp1: Move partition rectangles to struct and operate directly
  media: v4l: vsp1: Remove redundant context variables
  media: v4l: vsp1: Calculate partition sizes at stream start
  media: v4l: vsp1: Move vsp1_video_pipeline_setup_partitions() function
  media: v4l: vsp1: Release buffers in start_streaming error path
  media: ov13858: Limit vblank to permissible range
  media: ov5670: Limit vblank to permissible range
  media: et8ek8: Decrease stack usage
  media: mt9m111: constify video_subdev structures
  media: v4l: mt9t001: constify video_subdev structures
  media: ov5670: Fix incorrect frame timing reported to user
  media: usb: rainshadow-cec: constify serio_device_id
  media: usb: pulse8-cec: constify serio_device_id
  media: coda/imx-vdoa: Check for platform_get_resource() error
  media: ivtv: Fix incompatible type for argument error
  media: cx18: Fix incompatible type for argument error
  media: solo6x10: make snd_kcontrol_new const
  media: cx88: make snd_kcontrol_new const
  media: radio: constify pnp_device_id
  media: davinci: constify platform_device_id
  media: coda: constify platform_device_id
  media: staging: bcm2835-audio: make snd_pcm_hardware const
  media: mtk-mdp: use IS_ERR to check return value of of_clk_get
  media: Convert to using %pOF instead of full_name
  media: omap3isp: Quit using struct v4l2_subdev.host_priv field
  media: omap3isp: csiphy: Don't assume the CSI receiver is a CSI2 module
  media: omap3isp: Always initialise isp and mutex for csiphy1
  media: omap3isp: Correctly set IO_OUT_SEL and VP_CLK_POL for CCP2 mode
  media: omap3isp: Parse CSI1 configuration from the device tree
  media: cec-pin: fix irq handling
  media: cec: rename pin events/function
  media: s5p-cec: use CEC_CAP_DEFAULTS
  media: v4l2-compat-ioctl32.c: add capabilities field to, v4l2_input32
  media: v4l2-ctrls.h: better document the arguments for v4l2_ctrl_fill
  media: uvcvideo: Constify video_subdev structures
  media: uvcvideo: Convert from using an atomic variable to a reference count
  media: uvcvideo: Fix .queue_setup() to check the number of planes
  media: uvcvideo: Prevent heap overflow when accessing mapped controls
  media: uvcvideo: Fix incorrect timeout for Get Request
  media: zr364xx: constify videobuf_queue_ops structures
  media: tm6000: constify videobuf_queue_ops structures
  media: cx231xx: constify videobuf_queue_ops structures
  media: cx18: constify videobuf_queue_ops structures
  media: pxa_camera: constify v4l2_clk_ops structure
  media: v4l2: av7110_v4l: constify v4l2_audio structure
  media: tuners: make snd_pcm_hardware const
  media: pci: make snd_pcm_hardware const
  media: usb: make snd_pcm_hardware const
  media: radio: constify usb_device_id
  media: usb: constify usb_device_id
  media: exynos4-is: constify video_subdev structures
  media: vimc: constify video_subdev structures
  media: mtk-mdp: constify v4l2_m2m_ops structures
  media: exynos4-is: constify v4l2_m2m_ops structures
  media: vim2m: constify v4l2_m2m_ops structures
  media: mx2-emmaprp: constify v4l2_m2m_ops structures
  media: m2m-deinterlace: constify v4l2_m2m_ops structures
  media: bdisp: constify v4l2_m2m_ops structures
  media: exynos-gsc: constify v4l2_m2m_ops structures
  media: vcodec: mediatek: constify v4l2_m2m_ops structures
  media: V4L2: platform: rcar_jpu: constify v4l2_m2m_ops structures
  media: s5p-g2d: constify v4l2_m2m_ops structures
  media: ti-vpe: vpe: constify v4l2_m2m_ops structures
  media: st-delta: constify v4l2_m2m_ops structures
  media: imx: capture: constify vb2_ops structures
  media: blackfin: bfin_capture: constify vb2_ops structures
  media: staging: media: davinci_vpfe: constify vb2_ops structures
  media: davinci: vpbe: constify vb2_ops structures
  media: v4l2-pci-skeleton: constify vb2_ops structures
  media: s5p-jpeg: directly use parsed subsampling on exynos5433
  media: s5p-jpeg: fix number of components macro
  media: s5p-jpeg: Clear JPEG_CODEC_ON bits in sw reset function
  media: s5p-jpeg: disable encoder/decoder in exynos4-like hardware after use
  media: s5p-jpeg: Fix crash in jpeg isr due to multiple interrupts
  media: s5p-jpeg: set w/h when encoding
  media: s5p-jpeg: don't overwrite result's "size" member
  media: ddbridge: get rid of fall though gcc 7.1 warnings
  media: dvb-frontends/cxd2841er: update moddesc wrt new chip support
  media: ddbridge: constify stv0910_p and lnbh25_cfg
  media: ddbridge: const'ify all ddb_info, ddb_regmap et al
  media: ddbridge: bump version string to 0.9.31intermediate-integrated
  media: ddbridge: remove ddb_info's from the global scope
  media: ddbridge: move ddb_unmap(), cleanup modparams
  media: ddbridge: move device ID table to ddbridge-hw
  media: ddbridge: fix gap handling
  media: dvb-frontends/stv0910: fix mask for scramblingcode setup
  media: dvb-frontends/stv0910: fix FE_HAS_LOCK check order in tune()
  media: MAINTAINERS: add entry for mxl5xx
  media: ddbridge: fix buffer overflow in max_set_input_unlocked()
  media: ddbridge: support MaxLinear MXL5xx based cards (MaxS4/8)
  media: dvb-frontends: MaxLinear MxL5xx DVB-S/S2 tuner-demodulator driver
  media: dvb-frontends/stv{0910,6111}: constify tables
  media: dvb-frontends/stv6111: cosmetics: comments fixup, misc
  media: dvb-frontends/stv6111: coding style cleanup
  media: dvb-frontends/stv0910: cosmetics: fixup comments, misc
  media: dvb-frontends/stv0910: further coding style cleanup
  media: dvb-frontends/stv0910: implement diseqc_send_burst
  EDAC: Make device_type const
  media: dvb-frontends/stv0910: fix STR assignment, remove unneeded var
  media: MAINTAINERS: add entry for ddbridge
  media: ddbridge: Kconfig option to control the MSI modparam default
  media: ddbridge: fix dereference before check
  media: ddbridge: fix impossible condition warning
  media: ddbridge: remove unreachable code
  media: ddbridge: fix possible buffer overflow in ddb_ports_init()
  media: ddbridge: only register frontends in fe2 if fe is not NULL
  media: ddbridge: check pointers before dereferencing
  media: ddbridge: split off hardware definitions and mappings
  media: ddbridge: split I/O related functions off from ddbridge.h
  media: ddbridge: bump ddbridge code to version 0.9.29
  iio: magnetometer: ak8974: support AMI306 variant
  net/mlx5e: Use size_t to store byte offset in statistics descriptors
  net/mlx5e: Use kernel types instead of uint*_t in ethtool callbacks
  net/mlx5e: Place constants on the right side of comparisons
  net/mlx5e: Avoid using multiple blank lines
  net/mlx5e: Properly indent within conditional statements
  net/mlx5: Add a blank line after declarations
  net/mlx5: Avoid blank lines after/before open/close brace
  net/mlx5e: Add outbound PCI buffer overflow counter
  net/mlx5e: Add RX buffer fullness counters
  net/mlx5: Add RX buffer fullness counters infrastructure
  net/mlx5e: Add PCIe outbound stalls counters
  net/mlx5: Add PCIe outbound stalls counters infrastructure
  net/mlx5e: IPoIB, Add support for get_link_ksettings in ethtool
  net/mlx5e: IPoIB, Fix driver name retrieved by ethtool
  net/mlx5e: Send PAOS command on interface up/down
  iio: light: tsl2583: constify i2c_device_id
  iio: light: apds9300: constify i2c_device_id
  iio: accel: bma180: constify i2c_device_id
  phy: ralink-usb: add driver for Mediatek/Ralink
  dt-bindings: phy: Add bindings for ralink-usb PHY
  phy: samsung: use of_device_get_match_data()
  phy: phy-mt65xx-usb3: add mediatek directory and rename file
  dt-bindings: phy-mt65xx-usb: supports PCIe, SATA and rename file
  phy: phy-mt65xx-usb3: add SATA PHY support
  phy: phy-mt65xx-usb3: add PCIe PHY support
  phy: ti-pipe3: Use TRM recommended settings for SATA DPLL
  phy: qcom-qmp: Fix failure path in phy_init functions
  phy: qcom-qmp: Add support for IPQ8074
  phy: qcom-qmp: Fix phy pipe clock name
  dt-bindings: phy: qmp: Add support for QMP phy in IPQ8074
  dt-bindings: phy: qmp: Add output-clock-names
  ALSA: control: use counting semaphore as write lock for ELEM_WRITE operation
  ALSA: control: code refactoring for ELEM_READ/ELEM_WRITE operations
  ALSA: control: queue events within locking of controls_rwsem for ELEM_WRITE operation
  bpf: linux/bpf.h needs linux/numa.h
  bpf: inline map in map lookup functions for array and htab
  bpf: make htab inlining more robust wrt assumptions
  bpf: Allow numa selection in INNER_LRU_HASH_PREALLOC test of map_perf_test
  bpf: Allow selecting numa node during map creation
  bnxt_en: fix spelling mistake: "swtichdev" -> "switchdev"
  net: hns3: fix a handful of spelling mistakes
  net: defxx: constify eisa_device_id
  net: hp100: constify eisa_device_id
  net: de4x5: constify eisa_device_id
  net: 3c59x: constify eisa_device_id
  net: 3c509: constify eisa_device_id
  PCI: kirin: Constify dw_pcie_host_ops structure
  PCI: hisi: Constify dw_pcie_host_ops structure
  Remove gperf usage from toolchain
  ACPI / EC: Clean up EC GPE mask flag
  netfilter: rt: add support to fetch path mss
  netfilter: exthdr: tcp option set support
  netfilter: exthdr: split netlink dump function
  netfilter: exthdr: factor out tcp option access
  netfilter: use audit_log()
  netfilter: remove prototype of netfilter_queue_init
  netfilter: connlimit: merge root4 and root6.
  Bluetooth: make device_type const
  irqchip/gic-v3-its: Properly handle command queue wrapping
  clk: sunxi-ng: support R40 SoC
  ALSA: usb: constify snd_pcm_ops structures
  ALSA: spi: constify snd_pcm_ops structures
  ALSA: sparc: constify snd_pcm_ops structures
  ALSA: sh: constify snd_pcm_ops structures
  ALSA: ppc: constify snd_pcm_ops structures
  ALSA: pcmcia: constify snd_pcm_ops structures
  ALSA: parisc: constify snd_pcm_ops structures
  ALSA: mips: constify snd_pcm_ops structures
  ALSA: firewire: constify snd_pcm_ops structures
  ALSA: drivers: constify snd_pcm_ops structures
  ALSA: atmel: constify snd_pcm_ops structures
  ALSA: arm: constify snd_pcm_ops structures
  ALSA: aoa: constify snd_pcm_ops structures
  EDAC, pnd2: Properly toggle hidden state for P2SB PCI device
  EDAC, pnd2: Conditionally unhide/hide the P2SB PCI device to read BAR
  iommu/amd: Fix section mismatch warning
  iommu/amd: Fix compiler warning in copy_device_table()
  EDAC, pnd2: Mask off the lower four bits of a BAR
  dt-bindings: add compatible string for Allwinner R40 CCU
  nfp: don't reuse pointers in ring dumping
  nfp: fix copy paste in names and messages regarding vNICs
  nfp: add ethtool statistics for representors
  nfp: add pointer to vNIC config memory to nfp_port structure
  nfp: report MAC statistics in ethtool
  nfp: store pointer to MAC statistics in nfp_port
  nfp: split software and hardware vNIC statistics
  nfp: add helper for printing ethtool strings
  nfp: don't report standard netdev statistics in ethtool
  nfp: allow retreiving management FW logs on representors
  nfp: provide ethtool_drvinfo on representors
  nfp: link basic ethtool ops to representors
  net: style cleanups
  net: mark receive queue attributes ro_after_init
  net: make queue attributes ro_after_init
  net: make BQL sysfs attributes ro_after_init
  net: drop unused attribute argument from sysfs queue funcs
  net: make net sysfs attributes ro_after_init
  net: constify net_ns_type_operations
  net: make net_class ro_after_init
  net: constify netdev_class_file
  net: don't decrement kobj reference count on init failure
  ARM: sun8i: a83t: Add device tree for Sinovoip Bananapi BPI-M3
  PCI: Avoid race while enabling upstream bridges
  staging: lustre: mgc: fix potential use after free in error path
  staging: lustre: obd: make echo_lock_ops const
  staging: lustre: declare fiemap_for_stripe static
  staging: lustre: fix minor typos in comments
  Input: wacom_w8001 - constify serio_device_id
  Input: tsc40 - constify serio_device_id
  Input: touchwin - constify serio_device_id
  Input: touchright - constify serio_device_id
  Input: touchit213 - constify serio_device_id
  Input: penmount - constify serio_device_id
  Input: mtouch - constify serio_device_id
  Input: inexio - constify serio_device_id
  Input: hampshire - constify serio_device_id
  Input: gunze - constify serio_device_id
  Input: fujitsu_ts - constify serio_device_id
  Input: elo - constify serio_device_id
  Input: dynapro - constify serio_device_id
  Input: wacom_serial4 - constify serio_device_id
  Input: constify serio_device_id
  Input: xtkbd - constify serio_device_id
  Input: sunkbd - constify serio_device_id
  Input: stowaway - constify serio_device_id
  Input: newtonkbd - constify serio_device_id
  Input: lkkbd - constify serio_device_id
  Input: hil_kbd - constify serio_device_id
  Input: iatkbd - constify serio_device_id
  Input: zhenhua - constify serio_device_id
  Input: warrior - constify serio_device_id
  Input: twidjoy - constify serio_device_id
  Input: stinger - constify serio_device_id
  Input: spaceorb - constify serio_device_id
  Input: spaceball - constify serio_device_id
  Input: magellan - constify serio_device_id
  Input: iforce - constify serio_device_id
  Input: elan_i2c - support touchpads with two physical buttons
  platform/x86: dell-wmi: Update dell_wmi_check_descriptor_buffer() to new model
  amd-xgbe: Add additional ethtool statistics
  amd-xgbe: Add support for VXLAN offload capabilities
  amd-xgbe: Convert to using the new link mode settings
  net: ethtool: Add macro to clear a link mode setting
  amd-xgbe: Add per queue Tx and Rx statistics
  amd-xgbe: Add hardware features debug output
  amd-xgbe: Optimize DMA channel interrupt enablement
  amd-xgbe: Add additional dynamic debug messages
  amd-xgbe: Add support to handle device renaming
  amd-xgbe: Update TSO packet statistics accuracy
  amd-xgbe: Be sure driver shuts down cleanly on module removal
  amd-xgbe: Set the MII control width for the MAC interface
  amd-xgbe: Set the MDIO mode for 10000Base-T configuration
  mlx5: ensure 0 is returned when vport is zero
  bpf: Fix map-in-map checking in the verifier
  platform/x86: intel-vbtn: reduce unnecessary messages for normal users
  platform/x86: intel-hid: reduce unnecessary messages for normal users
  xdp: adjust xdp redirect tracepoint to include return error code
  ixgbe: change ndo_xdp_xmit return code on xmit errors
  arm64: dts: rockchip: Assign mic irq to correct device for Gru
  arm64: dts: rockchip: init rk3399 vop clock rates
  liquidio: remove support for deprecated f/w cmd OCTNET_CMD_RESET_PF
  net: inet: diag: expose sockets cgroup classid
  macvlan: add offload features for encapsulation
  arm64: dts: rockchip: Add pwm nodes for rk3328
  arm64: dts: rockchip: Fix wrong rt5514 dmic delay property for Gru
  platform/x86: thinkpad_acpi: Fix warning about deprecated hwmon_device_register
  staging: typec: tcpm: explicit_contract is always established
  Staging: greybus: Match alignment with open parenthesis.
  staging: speakup: fix async usb removal
  staging: speakup: remove support for lp*
  staging: most: hdm-dim2: fix error return code in dim2_probe()
  staging: wlan-ng: hfa384x.h: Use endian type in 'hfa384x_link_status' struct
  staging: wlan-ng: Fix sparse warning: cast to restricted __le16.
  drivers/staging/wlan-ng/p80211conv.c: fixed a potential memory leak
  staging: octeon: fix line over 80 characters
  rtl8723bs: os_dep: ioctl_linux: fix several braces coding style issues.
  staging/rtl8723bs: Fix some coding style issues in rtw_odm.c.
  Staging: rtl8723bs: fix multiple missing spaces coding style problem
  staging: bcm2835-camera: constify vb2_ops structures
  staging: most: hdm-dim2: constify platform_device_id
  staging: bcm2835-audio: make snd_pcm_hardware const
  staging: rtl8188eu: constify usb_device_id
  staging: rtl8712: constify usb_device_id
  staging: most: usb: constify usb_device_id
  Revert "staging: imx: fix non-static declarations"
  staging: typec: tcpm: Report right typec_pwr_opmode
  staging: typec: tcpm: Check cc status before entering SRC_TRY_DEBOUCE
  staging: typec: tcpm: Improve role swap with non PD capable partners
  staging: typec: tcpm: Add timeout when waiting for role swap completion
  staging: typec: tcpm: Select default state based on port type
  staging: typec: tcpm: Set default state after error recovery based on port type
  staging: typec: tcpm: Report role swap complete after entering READY state
  staging: typec: tcpm: Constify alternate modes
  staging: pi433: replace INVALID_PARAM macro with inline code
  staging: pi433: replace logical not with bitwise
  staging: vboxvideo: remove dead gamma lut code
  staging: vboxvideo: Call fb_deferred_io_cleanup() on cleanup
  staging: vboxvideo: Add dri-devel to lists of email-addresses to send patches to
  staging: vboxvideo: switch to drm_*{get,put} helpers
  staging: vboxvideo: select DRM_TTM
  ARM: dts: rockchip: add pwm backlight for rv1108 evb
  ARM: dts: rockchip: add pwm dt nodes for rv1108
  liquidio: fix Smatch error
  ipv4: convert dst_metrics.refcnt from atomic_t to refcount_t
  arm64: dts: apm: fix PCI bus dtc warnings
  ARM: dts: versatile: fix PCI bus dtc warnings
  ARM: dts: spear13xx: fix PCI bus dtc warnings
  arm64: defconfig: Enable QCOM IPQ8074 clock and pinctrl
  drm/i915: Update DRIVER_DATE to 20170818
  arm64: dts: Add ipq8074 SoC and HK01 board support
  RDMA/bnxt_re: Implement the alloc/get_hw_stats callback
  RDMA/bnxt_re: Allocate multiple notification queues
  Add OPA extended LID support
  SUNRPC: Add a separate spinlock to protect the RPC request receive list
  IB/hfi1: add const to bin_attribute structures
  IB/qib: add const to bin_attribute structures
  RDMA/uverbs: Initialize cq_context appropriately
  infiniband: avoid overflow warning
  i40iw: fix spelling mistake: "allloc_buf" -> "alloc_buf"
  IB/rxe: Remove unneeded check
  IB/rxe: Convert pr_info to pr_warn
  i40iw: Fixes for static checker warnings
  i40iw: Simplify code
  infiniband: pvrdma: constify pci_device_id.
  infiniband: nes: constify pci_device_id.
  infiniband: mthca: constify pci_device_id.
  PCI/IB: add support for pci driver attribute groups
  video: fbdev: vt8623fb: constify vt8623_timing_regs
  video: fbdev: add const to bin_attribute structures
  video: fbdev: xilinxfb: constify copied structure
  fbcon: add fbcon=margin:<color> command line option
  fbdev: fix 1bpp logo for unusual width
  video/console: Add dmi quirk table for x86 systems which need fbcon rotation
  ipv6: fix false-postive maybe-uninitialized warning
  net: hns3: Fixes the static check warning due to missing unsupp L3 proto check
  net: hns3: Fixes the static checker error warning in hns3_get_link_ksettings()
  net: hns3: Fixes the missing u64_stats_fetch_begin_irq in 64-bit stats fetch
  arm64: neon/efi: Make EFI fpsimd save/restore variables static
  net/sched: Fix the logic error to decide the ingress qdisc
  s390/qeth: use skb_cow_head() for L2 OSA xmit
  s390/qeth: unify code to build header elements
  s390/qeth: pass full IQD header length to fill_buffer()
  s390/qeth: pass TSO data offset to fill_buffer()
  s390/qeth: pass TSO header length to fill_buffer()
  s390/qeth: pass full data length to l2_fill_header()
  s390/qeth: split L2 xmit paths
  bpf: fix a return in sockmap_get_from_fd()
  liquidio: with embedded f/w, issue droq credits before enablement
  liquidio: with embedded f/w, don't reload f/w, issue pf flr at exit
  EDAC, thunderx: Fix error handling path in thunderx_lmc_probe()
  ARM: sun8i: a83t: h8homlet-v2: Enable USB ports
  ARM: sun8i: a83t: cubietruck-plus: Enable onboard USB peripherals
  ARM: sun8i: a83t: Add device node for USB OTG controller
  ARM: sun8i: a83t: Add USB PHY and host device nodes
  EDAC, altera: Fix error handling path in altr_edac_device_probe()
  drm/ttm: use reservation_object_trylock in ttm_bo_individualize_resv v2
  drm/amdgpu: fix vega10 graphic hang issue in S3 test
  dt-bindings: pwm: Add description for rv1108 PWM
  pwm: rockchip: Add rk3328 support
  PCI: endpoint: Add an API to get matching "pci_epf_device_id"
  pwm: rockchip: Use same PWM ops for each IP
  PCI: endpoint: Use of_dma_configure() to set initial DMA mask
  pwm: rockchip: Move the configuration of polarity
  KVM: VMX: always require WB memory type for EPT
  KVM: VMX: cleanup EPTP definitions
  pwm: rockchip: Use pwm_apply() instead of pwm_enable()
  pwm: rockchip: Remove the judge from return value of pwm_config()
  pwm: rockchip: Add APB and function both clocks support
  RDMA/bnxt_re: fix spelling mistake: "Deallocte" -> "Deallocate"
  skd: Remove driver version information
  IB/hfi1: fix spelling mistake in variable name continious
  pwm: renesas-tpu: Remove support for SH7372
  cpuset: Allow v2 behavior in v1 cgroup
  cgroup: Add mount flag to enable cpuset to use v2 behavior in v1 cgroup
  IB/qib: fix spelling mistake: "failng" -> "failing"
  iwcm: Don't allocate iwcm workqueue with WQ_MEM_RECLAIM
  cm: Don't allocate ib_cm workqueue with WQ_MEM_RECLAIM
  nvmet-rdma: remove redundant empty device add callout
  nvme-rdma: remove redundant empty device add callout
  RDMA/core: make ib_device.add method optional
  skd: Bump driver version
  skd: Optimize locking
  skd: Remove several local variables
  skd: Reduce memory usage
  skd: Remove skd_device.in_flight
  skd: Switch to block layer timeout mechanism
  skd: Convert to blk-mq
  skd: Coalesce struct request and struct skd_request_context
  skd: Move skd_free_sg_list() up
  skd: Split skd_recover_requests()
  skd: Introduce skd_process_request()
  skd: Convert several per-device scalar variables into atomics
  skd: Enable request tags for the block layer queue
  skd: Initialize skd_special_context.req.n_sg to one
  skd: Remove dead code
  skd: Remove SG IO support
  skd: Convert explicit skd_request_fn() calls
  skd: Rework request failing code path
  skd: Move a function definition
  skb: Use symbolic names for SCSI opcodes
  skd: Use kcalloc() instead of kzalloc() with multiply
  skd: Remove superfluous occurrences of the 'volatile' keyword
  skd: Remove a redundant init_timer() call
  skd: Use for_each_sg()
  skd: Drop second argument of skd_recover_requests()
  skd: Remove superfluous initializations from skd_isr_completion_posted()
  skd: Simplify the code for handling data direction
  skd: Use ARRAY_SIZE() where appropriate
  skd: Make the skd_isr() code more brief
  skd: Use __packed only when needed
  skd: Check structure sizes at build time
  skd: Use a structure instead of hardcoding structure offsets
  skd: Simplify the code for allocating DMA message buffers
  skd: Simplify the code for deciding whether or not to send a FIT msg
  skd: Reorder the code in skd_process_request()
  skd: Fix size argument in skd_free_skcomp()
  skd: Introduce SKD_SKCOMP_SIZE
  skd: Introduce the symbolic constant SKD_MAX_REQ_PER_MSG
  skd: Document locking assumptions
  skd: Fix endianness annotations
  skd: Switch from the pr_*() to the dev_*() logging functions
  skd: Remove useless barrier() calls
  skd: Remove a set-but-not-used variable from struct skd_device
  skd: Remove set-but-not-used local variables
  skd: Fix a function name in a comment
  skd: Fix spelling in a source code comment
  skd: Avoid that gcc 7 warns about fall-through when building with W=1
  skd: Remove unnecessary blank lines
  skd: Remove ESXi code
  skd: Remove unneeded #include directives
  skd: Update maintainer information
  skd: Switch to GPLv2
  skd: Submit requests to firmware before triggering the doorbell
  skd: Avoid that module unloading triggers a use-after-free
  block: Relax a check in blk_start_queue()
  xen-blkfront: Avoid that gcc 7 warns about fall-through when building with W=1
  xen-blkback: Avoid that gcc 7 warns about fall-through when building with W=1
  xen-blkback: Fix indentation
  virtio_blk: Use blk_rq_is_scsi()
  ide-floppy: Use blk_rq_is_scsi()
  genhd: Annotate all part and part_tbl pointer dereferences
  blk-mq-debugfs: Declare a local symbol static
  blk-mq: Make blk_mq_reinit_tagset() calls easier to read
  block: Unexport blk_queue_end_tag()
  block: Fix two comments that refer to .queue_rq() return values
  iwlwifi: use big-endian for the hw section of the nvm
  iwlwifi: mvm: remove useless check for mvm->cfg in iwl_parse_nvm_section()
  iwlwifi: mvm: remove useless argument in iwl_nvm_init()
  iwlwifi: fw: fix lar_enabled endian problem in iwl_fw_get_nvm
  iwlwifi: add workaround to disable wide channels in 5GHz
  btrfs: Fix -EOVERFLOW handling in btrfs_ioctl_tree_search_v2
  btrfs: Move skip checksum check from btrfs_submit_direct to __btrfs_submit_dio_bio
  Btrfs: fix assertion failure during fsync in no-holes mode
  Btrfs: avoid unnecessarily locking inode when clearing a range
  btrfs: remove redundant check on ret being non-zero
  btrfs: expose internal free space tree routine only if sanity tests are enabled
  btrfs: Remove unused sectorsize variable from struct map_lookup
  btrfs: Remove never-reached WARN_ON
  btrfs: remove unused BTRFS_COMPRESS_LAST
  btrfs: use BTRFS_FSID_SIZE for fsid
  btrfs: use appropriate define for the fsid
  btrfs: increase ctx->pos for delayed dir index
  iwlwifi: mvm: change open and close criteria of a BA session
  perf annotate browser: Circulate percent, total-period and nr-samples view
  perf annotate browser: Support --show-nr-samples option
  iwlwifi: update channel flags parser
  iwlwifi: pci: add new PCI ID for 7265D
  iwlwifi: distinguish different RF modules in A000 devices
  perf annotate: Document --show-total-period option
  perf annotate stdio: Support --show-nr-samples option
  irqchip/armada-370-xp: Enable MSI-X support
  iwlwifi: mvm: Fix channel switch in case of count <= 1
  iwlwifi: Demote messages about fw flags size to info
  ACPI: EC: Fix possible issues related to EC initialization order
  iwlwifi: move BT_MBOX_PRINT macro to common header
  iwlwifi: mvm: don't send BAR on flushed frames
  iwlwifi: mvm: remove session protection to allow channel switch
  iwlwifi: mvm: update the firmware API in TX
  iwlwifi: mvm: use mvmsta consistently in rs.c
  iwlwifi: mvm: group all dummy SAR function declarations together
  iwlwifi: mvm: include more debug data when we get an unexpected baid
  iwlwifi: mvm: add command name for FRAME_RELEASE
  iwlwifi: pcie: support short Tx queues for A000 device family
  iwlwifi: mvm: support new Coex firmware API
  iwlwifi: call iwl_remove_notification from iwl_wait_notification
  iwlwifi: mvm: consider RFKILL during INIT as success
  iwlwifi: mvm: remove the corunning support
  drm/i915/bxt: use NULL for GPIO connection ID
  KVM: SVM: delete avic_vm_id_bitmap (2 megabyte static array)
  KVM: x86: fix use of L1 MMIO areas in nested guests
  KVM: x86: Avoid guest page table walk when gpa_available is set
  KVM: x86: simplify ept_misconfig
  MAINTAINERS: Update the Gemini maintainer list
  ASoC: ux500: constify snd_soc_dai_ops structures
  ASoC: codecs: constify snd_soc_dai_ops structures
  ASoC: codecs: constify snd_soc_dai_ops structures
  platform/x86: wmi: Fix check for method instance number
  ASoC: mediatek: switch to use platform_get_irq_byname()
  ASoC: mediatek: Add interrupt-names property in binding text
  spi: omap: Allocate bus number from spi framework
  ASoC: tegra: Remove SoC-specific Kconfig depends and selects
  drm/i915: Mark the GT as busy before idling the previous request
  drm/i915: Trivial grammar fix s/opt of/opt out of/ in comment
  drm/i915: Replace execbuf vma ht with an idr
  drm/i915: Simplify eb_lookup_vmas()
  drm/i915: Convert execbuf to use struct-of-array packing for critical fields
  drm/i915: Check context status before looking up our obj/vma
  drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs
  posix-cpu-timers: Use dedicated helper to access rlimit values
  iommu: Avoid NULL group dereference
  usb: gadget: f_ncm/u_ether: Move 'SKB reserve' quirk setup to u_ether
  usb: gadget: serial: fix oops when data rx'd after close
  irqdomain: Add irq_domain_{push,pop}_irq() functions
  irqdomain: Check for NULL function pointer in irq_domain_free_irqs_hierarchy()
  irqdomain: Factor out code to add and remove items to and from the revmap
  genirq: Add handle_fasteoi_{level,edge}_irq flow handlers
  genirq: Export more irq_chip_*_parent() functions
  arm64: dts: rockchip: disable tx ipgap linecheck for rk3399 dwc3
  drm/i915: Stop touching forcewake following a gen6+ engine reset
  irqchip/xtensa-mx: Report that effective affinity is a single target
  irqchip/mips-gic: Report that effective affinity is a single target
  irqchip/hip04: Report that effective affinity is a single target
  irqchip/metag-ext: Report that effective affinity is a single target
  irqchip/bcm-7038-l1: Report that effective affinity is a single target
  irqchip/bcm-6345-l1: Report that effective affinity is a single target
  irqchip/armada-370-xp: Report that effective affinity is a single target
  irqchip/gic-v3-its: Report that effective affinity is a single target
  irqchip/gic-v3: Report that effective affinity is a single target
  irqchip/gic: Report that effective affinity is a single target
  genirq/proc: Use the the accessor to report the effective affinity
  genirq: Restrict effective affinity to interrupts actually using it
  genirq/debugfs: Triggering of interrupts from userspace
  MAINTAINERS: drm/i915 has a new maintainer team
  ALSA: usb-audio: don't retry snd_usb_ctl_msg after timeout
  USB: Gadget core: fix inconsistency in the interface tousb_add_gadget_udc_release()
  drm: udl: constify usb_device_id
  drm/gma500: fix potential NULL pointer dereference dereference
  iio: chemical: ccs811: Add triggered buffer support
  iio: srf08: add support for srf02 in i2c mode
  iio: srf08: add sensor type srf10
  iio: srf08: add triggered buffer support
  iio: srf08: add device tree table
  drivers: soc: sunxi: add support for A64 and its SRAM C
  drivers: soc: sunxi: add support for remapping func value to reg value
  drivers: soc: sunxi: fix error processing on base address when claiming
  dt-bindings: add binding for Allwinner A64 SRAM controller and SRAM C
  bus: sunxi-rsb: Enable by default for ARM64
  ACPI / PM: Check low power idle constraints for debug only
  ACPI / PM: Add debug statements to acpi_pm_notify_handler()
  ACPI: Add debug statements to acpi_global_event_handler()
  cpufreq: enable the DT cpufreq driver on the Ux500
  cpufreq: Loongson2: constify platform_device_id
  cpufreq: dt: Add r8a7796 support to to use generic cpufreq driver
  cpufreq: remove setting of policy->cpu in policy->cpus during init
  cpufreq: schedutil: Always process remote callback with slow switching
  cpufreq: schedutil: Don't restrict kthread to related_cpus unnecessarily
  Revert "pstore: Honor dmesg_restrict sysctl on dmesg dumps"
  pstore: Make default pstorefs root dir perms 0750
  mips/signal: In force_fcr31_sig return in the impossible case
  iio: srf08: add device tree binding for srf02 and srf10
  cxgb4: Remove some dead code
  drm/i915: Split pin mapping into per platform functions
  drm/amdgpu: bump version for support of UVD MJPEG decode
  drm/amdgpu: add MJPEG check for UVD physical mode msg buffer
  drm/ttm: Fix accounting error when fail to get pages for pool
  drm/amd/amdgpu: expose fragment size as module parameter (v2)
  Input: i8042 - constify pnp_device_id
  Input: axp20x-pek - add support for AXP221 PEK
  Input: axp20x-pek - use driver_data of platform_device_id instead of extended attributes
  quota: Reduce contention on dq_data_lock
  fs: Provide __inode_get_bytes()
  quota: Inline dquot_[re]claim_reserved_space() into callsite
  quota: Inline inode_{incr,decr}_space() into callsites
  quota: Inline functions into their callsites
  ext4: Disable dirty list tracking of dquots when journalling quotas
  quota: Allow disabling tracking of dirty dquots in a list
  quota: Remove dq_wait_unused from dquot
  quota: Move locking into clear_dquot_dirty()
  quota: Do not dirty bad dquots
  quota: Fix possible corruption of dqi_flags
  perf tools: Use default CPUINFO_PROC where it fits
  i2c-cht-wc: Workaround CHT GPIO controller IRQ issues
  i2c-cht-wc: Ack read irqs after reading the data register
  i2c-cht-wc: Add locking to interrupt / smbus_xfer functions
  i2c: sh_mobile: avoid unused ret variable
  i2c: rcar: avoid unused ret variable
  Bluetooth: hci_bcm: Handle empty packet after firmware loading
  perf tools: Remove unused cpu_relax() macros
  dt-bindings: net: bluetooth: Add broadcom-bluetooth
  drm/amd/amdgpu: store fragment_size in vm_manager
  drm/amdgpu: rename VM invalidated to moved
  drm/amdgpu: separate bo_va structure
  drm/amdgpu: drop the extra VM huge page flag v2
  drm/amdgpu: remove superflous amdgpu_bo_kmap in the VM
  drm/amdgpu: cleanup static CSA handling
  drm/amdgpu: SHADOW and VRAM_CONTIGUOUS flags shouldn't be used by userspace
  drm/amdgpu: save list length when fence is signaled
  drm/amdgpu: move vram usage tracking into the vram manager v2
  drm/amdgpu: move gtt usage tracking into the gtt manager v2
  drm/amdgpu: move debug print into the MM managers
  drm/amdgpu: fix incorrect use of the lru_lock
  drm/radeon: fix incorrect use of the lru_lock
  drm/ttm: make ttm_mem_type_manager_func debug more useful
  drm/amd/amdgpu: Add tracepoint for DMA page mapping (v4)
  drm/amdgpu: fix Vega10 HW config for 2MB pages
  drm/amdgpu: only bind VM shadows after validation v2
  drm/amdgpu: only move VM BOs in the LRU during validation v2
  drm/ttm: individualize BO reservation obj when they are freed
  drm/ttm: remove nonsense wait in ttm_bo_cleanup_refs_and_unlock
  Bluetooth: hci_bcm: Add serdev support
  perf events parse: Rename parse_events_parse arguments
  perf events parse: Use just one parse events state struct
  perf events parse: Rename parsing state struct to clearer name
  perf events parse: Remove some needless local variables
  perf trace: Fix off by one string allocation problem
  perf jevents: Support FCMask and PortMask
  tools lib bpf: Fix double file test in Makefile
  lsm_audit: update my email address
  selinux: update my email address
  alarmtimer: Fix unavailable wake-up source in sysfs
  timekeeping: Use proper timekeeper for debug code
  kselftests: timers: set-timer-lat: Add one-shot timer test cases
  kselftests: timers: set-timer-lat: Tweak reporting when timer fires early
  kselftests: timers: freq-step: Fix build warning
  kselftests: timers: freq-step: Define ADJ_SETOFFSET if device has older kernel headers
  ACPI / scan: Enable GPEs before scanning the namespace
  ACPICA: Make it possible to enable runtime GPEs earlier
  ACPICA: Dispatch active GPEs at init time
  bpf: reuse tc bpf prologue for sk skb progs
  bpf: don't enable preemption twice in smap_do_verdict
  quota: Propagate ->quota_read errors from v2_read_file_info()
  quota: Fix error codes in v2_read_file_info()
  ARM: BCM53573: Specify ports for USB LED for Tenda AC9
  net: ibm: ibmvnic: constify vio_device_id
  net: ibm: ibmveth: constify vio_device_id
  quota: Push dqio_sem down to ->read_file_info()
  bpf: no need to nullify ri->map in xdp_do_redirect
  bpf: fix liveness propagation to parent in spilled stack slots
  ARM: dts: cygnus: Add generic-ehci/ohci nodes
  ARM: dts: cygnus: add serial0 alias for uart3 on bcm91130_entphn
  ARM: dts: cygnus: Add additional peripherals to dtsi
  ARM: dts: cygnus: Enable Performance Monitoring Unit
  ARM: dts: cygnus: place v3d in proper address ordered location
  ARM: dts: cygnus: Fix incorrect UART2 register base
  quota: Push dqio_sem down to ->write_file_info()
  ASoC: codecs: make snd_soc_dai_driver and snd_soc_component_driver const
  ASoC: bcm: make snd_soc_dai_driver const
  ASoC: sh: make snd_soc_ops const
  ASoC: samsung: make snd_soc_ops const
  ASoC: rockchip: make snd_soc_ops const
  ASoC: generic: make snd_soc_ops const
  ASoC: cirrus: make snd_soc_ops const
  ASoC: aux1x: make snd_soc_ops const
  net: hns3: ensure media_type is unitialized
  liquidio: fix spelling mistake: "interuupt" -> "interrupt"
  quota: Push dqio_sem down to ->get_next_id()
  ASoC: Intel: kbl: Enabling ASRC for RT5663 codec on kabylake platform
  quota: Push dqio_sem down to ->release_dqblk()
  quota: Remove locking for writing to the old quota format
  quota: Do not acquire dqio_sem for dquot overwrites in v2 format
  ASoC: codec: use enable pin to control dmic start and stop
  quota: Push dqio_sem down to ->write_dqblk()
  nbd: change the default nbd partitions
  nbd: allow device creation at a specific index
  dt-bindings: sound: add dmicen property in dmic driver
  quota: Remove locking for reading from the old quota format
  quota: Push dqio_sem down to ->read_dqblk()
  quota: Protect dquot writeout with dq_lock
  quota: Acquire dqio_sem for reading in vfs_load_quota_inode()
  quota: Acquire dqio_sem for reading in dquot_get_next_id()
  ASoC: Intel: Skylake: make snd_pcm_hardware const
  ASoC: Intel: Atom: make snd_pcm_hardware const
  ASoC: qcom: make snd_pcm_hardware const
  ASoC: sh: make snd_pcm_hardware const
  ASoC: kirkwood: make snd_pcm_hardware const
  ASoC: fsl: make snd_pcm_hardware const
  spi: Kernel coding style fixes
  quota: Do more fine-grained locking in dquot_acquire()
  quota: Convert dqio_mutex to rwsem
  ARM: dts: omap3: logicpd-torpedo-37xx-devkit: Fix MMC1 cd-gpio
  ARM: dts: am57xx-beagle-x15: Add support for rev C
  drm/tegra: Prevent BOs from being freed during job submission
  drm/tegra: gem: Implement mmap() for PRIME buffers
  drm/tegra: Support render node
  drm/tegra: sor: Trace register accesses
  drm/tegra: dpaux: Trace register accesses
  drm/tegra: dsi: Trace register accesses
  drm/tegra: hdmi: Trace register accesses
  drm/tegra: dc: Trace register accesses
  drm/tegra: sor: Use unsigned int for register offsets
  drm/tegra: hdmi: Use unsigned int for register offsets
  drm/tegra: dsi: Use unsigned int for register offsets
  drm/tegra: dpaux: Use unsigned int for register offsets
  drm/tegra: dc: Use unsigned int for register offsets
  drm/tegra: Fix NULL deref in debugfs/iova
  drm/tegra: switch to drm_*_get(), drm_*_put() helpers
  drm/tegra: Set MODULE_FIRMWARE for the VIC
  drm/tegra: Add CONFIG_OF dependency
  gpu: host1x: Support sub-devices recursively
  gpu: host1x: fix error return code in host1x_probe()
  gpu: host1x: Fix bitshift/mask multipliers
  gpu: host1x: Don't fail on NULL bo physical address
  i2c: taos-evm: constify serio_device_id
  arch: Remove spin_unlock_wait() arch-specific definitions
  locking: Remove spin_unlock_wait() generic definitions
  drivers/ata: Replace spin_unlock_wait() with lock/unlock pair
  ipc: Replace spin_unlock_wait() with lock/unlock pair
  exit: Replace spin_unlock_wait() with lock/unlock pair
  completion: Replace spin_unlock_wait() with lock/unlock pair
  dt-bindings: iio: magn: add LIS2MDL sensor device binding
  iio: magnetometer: add support to LIS2MDL
  soc/tegra: Register SoC device
  iio: adc: select triggered buffer for sama5d2 adc
  ARM: tegra: Enable UDC on AC100
  ARM: tegra: Enable UDC on Jetson TK1
  ARM: tegra: Enable UDC on Dalmore
  ARM: tegra: Enable UDC on Beaver
  iommu/tegra-gart: Add support for struct iommu_device
  iommu/tegra: Add support for struct iommu_device
  doc: Set down RCU's scheduling-clock-interrupt needs
  doc: No longer allowed to use rcu_dereference on non-pointers
  doc: Add RCU files to docbook-generation files
  doc: Update memory-barriers.txt for read-to-write dependencies
  ARM: defconfig: tegra: Enable ChipIdea UDC driver
  doc: Update RCU documentation
  membarrier: Provide expedited private command
  ARM: configs: Add Tegra I2S interfaces to multi_v7_defconfig
  ARM: tegra: Add Tegra I2S interfaces to defconfig
  spi: imx: dynamic burst length adjust for PIO mode
  rcu: Remove exports from rcu_idle_exit() and rcu_idle_enter()
  rcu: Add warning to rcu_idle_enter() for irqs enabled
  rcu: Make rcu_idle_enter() rely on callers disabling irqs
  rcu: Add assertions verifying blocked-tasks list
  rcu/tracing: Set disable_rcu_irq_enter on rcu_eqs_exit()
  rcu: Add TPS() protection for _rcu_barrier_trace strings
  rcu: Use idle versions of swait to make idle-hack clear
  ARM: tegra: Update default configuration for v4.13-rc1
  swait: Add idle variants which don't contribute to load average
  rcu: Add event tracing to ->gp_tasks update at GP start
  rcu: Move rcu.h to new trivial-function style
  rcu: Add TPS() to event-traced strings
  rcu: Create reasonable API for do_exit() TASKS_RCU processing
  rcu: Drive TASKS_RCU directly off of PREEMPT
  ASoC: Intel: kbl_rt5663_rt5514_max98927: Add rt5514 spi dailink
  drm/i915/opregion: let user specify override VBT via firmware load
  arm64: dts: Add Mediatek SoC MT2712 and evaluation board dts and Makefile
  dt-bindings: arm: Add bindings for Mediatek MT2712 SoC Platform
  arm64: dts: mediatek: Delete unused dummy clock for MT6797
  arm64: dts: mediatek: add watchdog to MT6797
  ARM: mediatek: dts: Add MT6797 binding
  powerpc/mm/cxl: Add the fault handling cpu to mm cpumask
  powerpc/mm: Don't send IPI to all cpus on THP updates
  powerpc/mm: Rename find_linux_pte_or_hugepte()
  powerpc/bpf: Use memset32() to pre-fill traps in BPF page(s)
  powerpc/string: Implement optimized memset variants
  block/ps3vram: Check return of ps3vram_cache_init
  block/ps3vram: Delete an error message for a failed memory allocation in ps3vram_cache_init()
  dt-bindings: usb: keystone-usb: Update bindings pm and clocks properties
  i2c: mux: pinctrl: potential NULL dereference on error
  selftests/powerpc: Improve tm-resched-dscr
  powerpc/perf: Fix usage of nest_imc_refc
  powerpc: Add const to bin_attribute structures
  firmware: tegra: set drvdata earlier
  locking/lockdep: Make CONFIG_LOCKDEP_CROSSRELEASE and CONFIG_LOCKDEP_COMPLETIONS truly non-interactive
  ALSA: parisc: make snd_pcm_hardware const
  ALSA: usb: make snd_pcm_hardware const
  ALSA: sparc: make snd_pcm_hardware const
  ALSA: sh: make snd_pcm_hardware const
  ALSA: ppc: make snd_pcm_hardware const
  ALSA: pcmcia: make snd_pcm_hardware const
  ALSA: pci: make snd_pcm_hardware const
  ALSA: mips: make snd_pcm_hardware const
  ALSA: isa: make snd_pcm_hardware const
  ALSA: drivers: make snd_pcm_hardware const
  ALSA: atmel: make snd_pcm_hardware const
  ALSA: arm: make snd_pcm_hardware const
  ALSA: wavefront: constify pnp_card_device_id
  ALSA: sscape: constify pnp_card_device_id
  ALSA: sb16: constify pnp_card_device_id
  ALSA: opti9xx: constify pnp_card_device_id
  ALSA: msnd: constify pnp_card_device_id
  ALSA: gus: constify pnp_card_device_id
  ALSA: es1688: constify pnp_card_device_id
  ALSA: cs4236: constify pnp_card_device_id
  ALSA: cmi8330: constify pnp_card_device_id
  ALSA: azt2320: constify pnp_card_device_id
  ALSA: als100: constify pnp_card_device_id
  ALSA: ad1816a: constify pnp_card_device_id
  ALSA: opl3sa2: constify pnp_device_id and pnp_card_device_id
  ALSA: es18xx: constify pnp_device_id and pnp_card_device_id
  ALSA: drivers: mpu401: constify pnp_device_id
  locking/lockdep: Explicitly initialize wq_barrier::done::map
  locking/lockdep: Rename CONFIG_LOCKDEP_COMPLETE to CONFIG_LOCKDEP_COMPLETIONS
  locking/lockdep: Reword title of LOCKDEP_CROSSRELEASE config
  locking/lockdep: Make CONFIG_LOCKDEP_CROSSRELEASE part of CONFIG_PROVE_LOCKING
  Bluetooth: btbcm: Consolidate the controller information commands
  arm64: dts: r8a77995: add pfc device node
  arm64: dts: r8a7796: Add HSUSB device node
  arm64: dts: r8a7796: Add USB-DMAC device nodes
  arm64: dts: r8a7796: Add USB3.0 host device node
  arm64: dts: r8a7796: add USB2.0 Host (EHCI/OHCI) device nodes
  arm64: dts: r8a7796: add usb2_phy device nodes
  arm64: dts: r8a7795: correct whitespace of companion property
  arm64: dts: r8a7795: Use R-Car SATA Gen3 fallback compat string
  arm64: dts: salvator-common: Remove extra LVDS port label
  ARM: dts: r8a7791: Use R-Car SATA Gen2 fallback compat string
  ARM: dts: r8a7790: Use R-Car SATA Gen2 fallback compat string
  crypto: ccp - use dma_mapping_error to check map error
  lib/mpi: fix build with clang
  crypto: sahara - Remove leftover from previous used spinlock
  crypto: sahara - Fix dma unmap direction
  x86/boot/KASLR: Prefer mirrored memory regions for the kernel physical address
  efi: Introduce efi_early_memdesc_ptr to get pointer to memmap descriptor
  locking/refcounts, x86/asm: Implement fast refcount overflow protection
  ARM: dts: r8a7743: Add OPP table for frequency scaling
  ARM: dts: r8a7743: Add APMU node and second CPU core
  dt-bindings: apmu: Document r8a7743 support
  x86/mm, mm/hwpoison: Clear PRESENT bit for kernel 1:1 mappings of poison pages
  ARM: shmobile: document iW-RainboW-G22D SODIMM SOM Development Platform
  ARM: shmobile: document iW-RainboW-G22M-SM SODIMM System on Module
  x86/build: Fix stack alignment for CLang
  ARM: dts: koelsch: Add CEC clock for HDMI transmitter
  clk: renesas: r8a7796: Add USB3.0 clock
  clk: renesas: rcar-usb2-clock-sel: Add R-Car USB 2.0 clock selector PHY
  rsi: security enhancements for AP mode
  rsi: aggregation parameters frame for AP mode
  rsi: update tx auto rate command frame for AP mode
  rsi: use common descriptor for auto rate frame
  rsi: data and managemet path changes for AP mode
  rsi: handle station disconnection in AP mode
  rsi: handle station connection in AP mode
  rsi: add beacon changes for AP mode
  rsi: remove interface changes for AP mode
  rsi: add interface changes for ap mode
  rsi: advertise ap mode support
  qtnfmac: modify tx reclaim locking
  qtnfmac: introduce counter for Rx underflow events
  qtnfmac: switch to kernel circ_buf implementation
  qtnfmac: decrease default Tx queue size
  qtnfmac: skb2rbd_attach cleanup
  qtnfmac: use __netdev_alloc_skb_ip_align
  qtnfmac: switch to napi_gro_receive
  qtnfmac: remove unused qtnf_rx_frame declaration
  mwifiex: check for NL80211_SCAN_FLAG_RANDOM_ADDR during hidden SSID scan
  mwifiex: do not use random MAC for pre-association scanning
  rtc: rtctest: Improve support detection
  selftests/cpu-hotplug: Skip test when there is only one online cpu
  selftests/cpu-hotplug: exit with failure when test occured unexpected behaviors
  selftests: futex: convert test to use ksft TAP13 framework
  vmbus: remove unused vmbus_sendpacket_ctl
  vmbus: remove unused vmubs_sendpacket_pagebuffer_ctl
  vmbus: remove unused vmbus_sendpacket_multipagebuffer
  tcp: Export tcp_{sendpage,sendmsg}_locked() for ipv6.
  bpf: sock_map fixes for !CONFIG_BPF_SYSCALL and !STREAM_PARSER
  bpf: sockmap state change warning fix
  xhci: rework bus_resume and check ports are suspended before resuming them.
  usb: Increase root hub reset signaling time to prevent retry
  xhci: add port status tracing
  xhci: rename temp and temp1 variables
  xhci: Add port status decoder for tracing purposes
  xhci: add definitions for all port link states
  usb: host: xhci: rcar: Add support for R-Car H3 ES2.0
  usb: host: xhci: plat: re-fact xhci_plat_priv for R-Car Gen3
  usb: host: xhci: rcar: Add firmware_name selection by soc_device_match()
  staging: ccree: constify dev_pm_ops structures.
  staging: ccree: Use sizeof(variable) in memory allocs
  net: sched: cls_flower: fix ndo_setup_tc type for stats call
  tun: make tun_build_skb() thread safe
  net/mlx4: fix spelling mistake: "availible" -> "available"
  qdisc: add tracepoint qdisc:qdisc_dequeue for dequeued SKBs
  MAINTAINERS: update ARM/ZTE entry
  soc: versatile: remove unnecessary static in realview_soc_probe()
  ARM: Convert to using %pOF instead of full_name
  drm/tinydrm: make function st7586_pipe_enable static
  MAINTAINERS: Add drm/tinydrm maintainer entry
  memory: Convert to using %pOF instead of full_name
  drm/vc4: Use drm_gem_fb_create()
  drm/pl111: Use drm_gem_fb_create() and drm_gem_fb_prepare_fb()
  drm/fb-cma-helper: Use drm_gem_framebuffer_helper
  soc: Convert to using %pOF instead of full_name
  drm: Add GEM backed framebuffer library
  perf test shell: Replace '|&' with '2>&1 |' to work with more shells
  SUNRPC: Cleanup xs_tcp_read_common()
  SUNRPC: Don't loop forever in xs_tcp_data_receive()
  SUNRPC: Don't hold the transport lock when receiving backchannel data
  SUNRPC: Don't hold the transport lock across socket copy operations
  x86/nmi: Use raw lock
  PCI: keystone: Use PCI_NUM_INTX
  nfp: process MTU updates from firmware flower app
  nfp: process control messages in workqueue in flower app
  bpf: devmap: remove unnecessary value size check
  PCI: keystone: Remove duplicate MAX_*_IRQS defs
  bpf: selftests add sockmap tests
  bpf: selftests: add tests for new __sk_buff members
  bpf: sockmap sample program
  bpf: add access to sock fields and pkt data from sk_skb programs
  bpf: sockmap with sk redirect support
  bpf: export bpf_prog_inc_not_zero
  bpf: introduce new program type for skbs on sockets
  net: fixes for skb_send_sock
  net: add sendmsg_locked and sendpage_locked to af_inet6
  net: early init support for strparser
  drm/gem-cma-helper: Remove drm_gem_cma_dumb_map_offset()
  drm/virtio: Use the drm_driver.dumb_destroy default
  drm/bochs: Use the drm_driver.dumb_destroy default
  drm/mgag200: Use the drm_driver.dumb_destroy default
  drm/exynos: Use .dumb_map_offset and .dumb_destroy defaults
  drm/msm: Use the drm_driver.dumb_destroy default
  drm/ast: Use the drm_driver.dumb_destroy default
  drm/qxl: Use the drm_driver.dumb_destroy default
  drm/udl: Use the drm_driver.dumb_destroy default
  drm/cirrus: Use the drm_driver.dumb_destroy default
  drm/tegra: Use .dumb_map_offset and .dumb_destroy defaults
  drm/gma500: Use .dumb_map_offset and .dumb_destroy defaults
  drm/mxsfb: Use .dumb_map_offset and .dumb_destroy defaults
  drm/meson: Use .dumb_map_offset and .dumb_destroy defaults
  drm/kirin: Use .dumb_map_offset and .dumb_destroy defaults
  net: 3c509: constify pnp_device_id
  sched/completion: Document that reinit_completion() must be called after complete_all()
  liquidio: update VF's netdev->max_mtu if there's a change in PF's MTU
  mlx4: sizeof style usage
  skge: add paren around sizeof arg
  virtio: put paren around sizeof
  tun/tap: use paren's with sizeof
  net_sched/hfsc: opencode trivial set_active() and set_passive()
  net_sched: call qlen_notify only if child qdisc is empty
  PCI: xilinx: Allow build on MIPS platforms
  PCI: xilinx: Don't enable config completion interrupts
  PCI: xilinx: Unify INTx & MSI interrupt decode
  PCI: xilinx-nwl: Translate INTx range to hwirqs 0-3
  PCI: xilinx: Translate INTx range to hwirqs 0-3
  PCI: rockchip: Factor out rockchip_pcie_get_phys()
  PCI: rockchip: Control optional 12v power supply
  dt-bindings: PCI: rockchip: Add vpcie12v-supply for Rockchip PCIe controller
  PCI: keystone-dw: Remove unused ks_pcie, pci variables
  PCI: faraday: Use PCI_NUM_INTX
  PCI: faraday: Fix of_irq_get() error check
  PCI: dra7xx: Use PCI_NUM_INTX
  PCI: altera: Use size=4 IRQ domain for legacy INTx
  PCI: altera: Remove unused num_of_vectors variable
  PCI: aardvark: Use PCI_NUM_INTX
  PCI: Add pci_irqd_intx_xlate()
  iommu/arm-smmu: Add system PM support
  iommu/arm-smmu: Track context bank state
  iommu/arm-smmu-v3: Implement shutdown method
  ACPI: SPCR: work around clock issue on xgene UART
  Drivers: hv: vmbus: Fix rescind handling issues
  Tools: hv: update buffer handling in hv_fcopy_daemon
  Tools: hv: fix snprintf warning in kvp_daemon
  Drivers: hv: kvp: Use MAX_ADAPTER_ID_SIZE for translating adapter id
  Drivers: hv: balloon: Initialize last_post_time on startup
  Drivers: hv: balloon: Show the max dynamic memory assigned
  Drivers: hv: balloon: Correctly update onlined page count
  Tools: hv: vss: Skip freezing filesystems backed by loop
  MAINTAINERS: Add entry for qcom_iommu
  spi: Pick spi bus number from Linux idr or spi alias
  bus: Convert to using %pOF instead of full_name
  firmware: Convert to using %pOF instead of full_name
  arm64: dts: qcom: msm8916: Add IOMMU support
  arm64: dts: qcom: msm8916: Add Venus video codec support
  ARM: dts: dra71-evm: Add pinmux configuration for MMC
  ARM: dts: dra72-evm-revc: Add pinmux configuration for MMC
  ARM: dts: dra72-evm: Add pinmux configuration for MMC
  ARM: dts: am572x-idk: Add pinmux configuration for MMC
  ARM: dts: am571x-idk: Add pinmux configuration for MMC
  ARM: dts: am57xx-idk: Move common MMC/SD properties to common file
  ARM: dts: am57xx-beagle-x15: Add pinmux configuration for MMC
  ARM: dts: dra7-evm: Add pinmux configuration for MMC
  ARM: dts: dra74x: Create a common file with MMC/SD IOdelay data
  ARM: dts: dra72x: Create a common file with MMC/SD IOdelay data
  ASoC: compress: Set reasonable compress id string
  Bluetooth: hci_bcm: Use operation speed of 4Mbps only for ACPI devices
  fs-udf: Delete an error message for a failed memory allocation in two functions
  drm/i915/cnl: Reuse skl_wm_get_hw_state on Cannonlake.
  drm/i915/gen10: implement gen 10 watermarks calculations
  fs-udf: Improve six size determinations
  drm/i915/cnl: Fix LSPCON support.
  drm/i915/vbt: ignore extraneous child devices for a port
  genirq/irq_sim: Add a devres variant of irq_sim_init()
  genirq/irq_sim: Add a simple interrupt simulator framework
  fs-udf: Adjust two checks for null pointers
  x86/intel_rdt: Remove redundant ternary operator on return
  btrfs: fix readdir deadlock with pagefault
  btrfs: Simplify math in should_alloc chunk
  btrfs: account for pinned bytes in should_alloc_chunk
  btrfs: prepare for extensions in compression options
  btrfs: allow defrag compress to override NOCOMPRESS attribute
  btrfs: defrag: cleanup checking for compression status
  btrfs: separate defrag and property compression
  btrfs: rename variable holding per-inode compression type
  Btrfs: add skeleton code for compression heuristic
  btrfs: account that we're waiting for IO in scrub_submit_raid56_bio_wait
  btrfs: account that we're waiting for DIO read
  btrfs: drop chunk locks at the end of close_ctree
  btrfs: remove trivial wrapper btrfs_force_ra
  btrfs: drop ancient page flag mappings
  btrfs: fix spelling of snapshotting
  btrfs: Make flush_space return void
  btrfs: Deprecate userspace transaction ioctls
  btrfs: use named constant for bdev blocksize
  btrfs: split write_dev_supers to two functions
  btrfs: refactor find_device helper
  btrfs: merge alloc_device helpers
  btrfs: merge REQ_OP and REQ_ flags to one parameter in submit_extent_page
  btrfs: cleanup types storing REQ_*
  btrfs: get fs_info from eb in btrfs_print_tree, remove argument
  btrfs: get fs_info from eb in btrfs_print_leaf, remove argument
  btrfs: simplify btrfs_dev_replace_kthread
  btrfs: factor reading progress out of btrfs_dev_replace_status
  btrfs: defrag: make readahead state allocation failure non-fatal
  btrfs: use GFP_KERNEL in btrfs_defrag_file
  btrfs: use GFP_KERNEL in mount and remount
  btrfs: Remove never reached error handling code in __add_reloc_root
  btrfs: Remove unused parameters from volume.c functions
  btrfs: Remove unused variables
  btrfs: Remove find_raid56_stripe_len
  btrfs: Use explicit round_down macro in btrfs resize ioctl handler
  btrfs: btrfs_inherit_iflags() can be static
  btrfs: Keep one more workspace around
  btrfs: drop newlines from strings when using btrfs_* helpers
  btrfs: qgroups: Fix BUG_ON condition in tree level check
  btrfs: Enhance message when a device is missing during mount
  btrfs: Cleanup num_tolerated_disk_barrier_failures
  btrfs: Allow barrier_all_devices to do chunk level device check
  btrfs: Do chunk level check for degraded remount
  btrfs: Do chunk level check for degraded rw mount
  btrfs: Introduce a function to check if all chunks a OK for degraded rw mount
  Btrfs: report errors when checksum is not found
  btrfs: Prevent possible ERR_PTR() dereference
  btrfs: Remove redundant checks from btrfs_alloc_data_chunk_ondemand
  btrfs: Remove redundant argument of flush_space
  btrfs: resume qgroup rescan on rw remount
  btrfs: clean up extraneous computations in add_delayed_refs
  btrfs: allow backref search checks for shared extents
  btrfs: add cond_resched() calls when resolving backrefs
  btrfs: backref, add tracepoints for prelim_ref insertion and merging
  btrfs: add a node counter to each of the rbtrees
  btrfs: convert prelimary reference tracking to use rbtrees
  reiserfs: fix spelling mistake: "tranasction" -> "transaction"
  perf bpf: Fix endianness problem when loading parameters in prologue
  drm/omap: Potential NULL deref in omap_crtc_duplicate_state()
  drm/omap: remove no-op cleanup code
  MAINTAINERS: Update entries for notification subsystem
  drm/omap: rename omapdrm device back
  drm: omapdrm: Remove omapdrm platform data
  ARM: OMAP2+: Don't register omapdss device for omapdrm
  ARM: OMAP2+: Remove unused omapdrm platform device
  drm: omapdrm: Remove the omapdss driver
  drm: omapdrm: Register omapdrm platform device in omapdss driver
  powerpc: Remove more redundant VSX save/tests
  powerpc: Remove redundant clear of MSR_VSX in __giveup_vsx()
  powerpc: Remove redundant FP/Altivec giveup code
  powerpc: Fix missing newline before {
  ALSA: hda: make snd_kcontrol_new const
  ALSA: pcxhr: make snd_kcontrol_new const
  ALSA: aoa: make snd_kcontrol_new const
  pinctrl: sh-pfc: r8a77995: Add voltage switch operations for MMC
  pinctrl: sh-pfc: r8a77995: Add MMC pins, groups and functions
  pinctrl: sh-pfc: r8a77995: Add I2C pins, groups and functions
  pinctrl: sh-pfc: r8a77995: Add SCIF pins, groups and functions
  pinctrl: sh-pfc: Initial R8A77995 PFC support
  pinctrl: sh-pfc: Add PORT_GP_{10,2[01]} helper macros
  pinctrl: sh-pfc: r8a7796: Add USB3.0 host pins, groups and functions
  pinctrl: sh-pfc: r8a7796: Add USB2.0 host pins, groups and functions
  pinctrl: sh-pfc: r8a7795: Fix to reserved MOD_SEL2 bit22
  pinctrl: sh-pfc: r8a7795: Rename CS1# pin function definitions
  pinctrl: sh-pfc: r8a7795: Fix to delete FSCLKST pin and IPSR7 bit[15:12] register definitions
  pinctrl: sh-pfc: r8a7795: Fix MOD_SEL register pin assignment for TCLK{1,2}_{A,B} pins group
  pinctrl: sh-pfc: r8a7795: Fix NFDATA{0..13} and NF{ALE,CLE,WE_N,RE_N} pin function definitions
  pinctrl: sh-pfc: r8a7795: Fix FMCLK{_C,_D} and FMIN{_C,_D} pin function definitions
  pinctrl: sh-pfc: r8a7795: Fix SCIF_CLK_{A,B} pin's MOD_SEL assignment to MOD_SEL1 bit10
  pinctrl: sh-pfc: r8a7795: Fix MOD_SEL2 bit26 to 0x0 when using SCK5_A
  pinctrl: sh-pfc: r8a7795: Fix MOD_SEL1 bit[25:24] to 0x3 when using STP_ISEN_1_D
  btrfs: remove ref_tree implementation from backref.c
  btrfs: btrfs_check_shared should manage its own transaction
  btrfs: backref, cleanup __ namespace abuse
  btrfs: backref, add unode_aux_to_inode_list helper
  btrfs: backref, constify some arguments
  btrfs: constify tracepoint arguments
  btrfs: struct-funcs, constify readers
  btrfs: remove unused sectorsize member
  btrfs: Be explicit about usage of min()
  btrfs: Use explicit round_down call rather than open-coding it
  btrfs: convert while loop to list_for_each_entry
  ASoC: soc-core: snd_soc_unregister_component() unregister all component
  ASoC: codecs: make snd_compr_ops const
  ASoC: Medfield: Delete an error message for a failed memory allocation in snd_mfld_mc_probe()
  powerpc/topology: Remove the unused parent_node() macro
  ASoC: Intel: constify snd_compr_codec_caps structures
  ASoC: Intel: Skylake: make skl_dsp_fw_ops const
  ASoC: Intel: kbl: make snd_pcm_hw_constraint_list const
  ASoC: simple-scu-card: Parse off codec widgets
  spi: rockchip: configure CTRLR1 according to size and data frame
  spi: altera: Consolidate TX/RX data register access
  spi: altera: Switch to SPI core transfer queue management
  x86/intel_rdt/cqm: Improve limbo list processing
  x86/intel_rdt/mbm: Fix MBM overflow handler during CPU hotplug
  drm: omapdrm: hdmi: Don't allocate PHY features dynamically
  drm: omapdrm: hdmi: Configure the PHY from the HDMI core version
  drm: omapdrm: hdmi: Configure the PLL from the HDMI core version
  drm: omapdrm: hdmi: Pass HDMI core version as integer to HDMI audio
  drm: omapdrm: hdmi: Replace OMAP SoC model check with HDMI xmit version
  drm: omapdrm: hdmi: Rename functions and structures to use hdmi_ prefix
  drm/omap: add OMAP5 DSIPHY lane-enable support
  drm/omap: use regmap_update_bit() when muxing DSI pads
  Bluetooth: btusb: driver to enable the usb-wakeup feature
  ARM: hisi: Fix typo in comment
  arm64: dts: hi3660: enable watchdog
  arm64: dts: hi3660: add bindings for DMA
  arm64: dts: hikey960: change bluetooth uart max-speed to 3mbps
  arm64: dts: hi3660: Reset the mmc hosts
  arm64: dts: hikey960: Add pstore support
  arm64: dts: hikey960: Add support for syscon-reboot-mode
  arm64: dts: hikey960: Add optee node
  arm64: dts: hi3660: add pmu dt node for hi3660
  arm64: dts: hi3660: add L2 cache topology
  arm64: dts: hi3660: enable idle states
  arm64: dts: hi6220: improve g-tx-fifo-size setting for usb device
  arm64: dts: hi6220: add acpu_sctrl
  pinctrl: sh-pfc: r8a7795: Add USB 2.0 pins, groups and functions
  pinctrl: sh-pfc: r8a7795: Change USB3_{OVC,PWEN} definitions
  clk: renesas: cpg-mssr: Add R8A77995 support
  clk: renesas: rcar-gen3: Add support for SCCG/Clean peripheral clocks
  clk: renesas: rcar-gen3: Add divider support for PLL1 and PLL3
  clk: renesas: Add r8a77995 CPG Core Clock Definitions
  powerpc/mm/hugetlb: Allow runtime allocation of 16G.
  powerpc/mm/hugetlb: Add support for reserving gigantic huge pages via kernel command line
  sparc64: Cleanup hugepage table walk functions
  sparc64: Add 16GB hugepage support
  sparc64: Support huge PUD case in get_user_pages
  sparc64: vcc: Add install & cleanup TTY operations
  sparc64: vcc: Add break_ctl TTY operation
  sparc64: vcc: Add chars_in_buffer TTY operation
  sparc64: vcc: Add write & write_room TTY operations
  sparc64: vcc: Add hangup TTY operation
  sparc64: vcc: Add open & close TTY operations
  sparc64: vcc: Enable LDC event processing engine
  sparc64: vcc: Add RX & TX timer for delayed LDC operation
  sparc64: vcc: Create sysfs attribute group
  sparc64: vcc: Enable VCC port probe and removal
  sparc64: vcc: TTY driver initialization and cleanup
  sparc64: vcc: Add VCC debug message macros
  sparc64: vcc: Enable VCC module in linux
  liquidio: added support for ethtool --set-channels feature
  liquidio: moved octeon_setup_interrupt to lio_core.c
  liquidio: moved liquidio_legacy_intr_handler to lio_core.c
  liquidio: moved liquidio_msix_intr_handler to lio_core.c
  drm/amdkfd: Implement image tiling mode support v2
  drm/amdgpu: Add kgd kfd interface get_tile_config() v2
  drm/amdkfd: Adding new IOCTL for scratch memory v2
  drm/amdgpu: Add kgd/kfd interface to support scratch memory v2
  drm/amdgpu: Program SH_STATIC_MEM_CONFIG globally, not per-VMID
  drm/amd: Update MEC HQD loading code for KFD
  drm/amdgpu: Disable GFX PG on CZ
  drm/amdkfd: Update PM4 packet headers
  drm/amdkfd: Clamp EOP queue size correctly on Gfx8
  drm/amdkfd: Add more error printing to help bringup v2
  drm/amdkfd: Handle remaining BUG_ONs more gracefully v2
  drm/amdkfd: Allocate gtt_sa_bitmap in long units
  drm/amdkfd: Fix doorbell initialization and finalization
  drm/amdkfd: Remove BUG_ONs for NULL pointer arguments
  drm/amdkfd: Remove usage of alloc(sizeof(struct...
  drm/amdkfd: Fix goto usage v2
  drm/amdkfd: Change x==NULL/false references to !x
  drm/amdkfd: Consolidate and clean up log commands
  drm/amdkfd: Clean up KFD style errors and warnings v2
  drm/amdgpu: Remove hard-coded assumptions about compute pipes
  drm/amdkfd: Fix allocated_queues bitmap initialization
  drm/amdkfd: Remove bogus divide-by-sizeof(uint32_t)
  drm/radeon: Return dword offsets of address watch registers
  drm/amdkfd: Fix typo in dbgdev_wave_reset_wavefronts
  drm/nouveau: Fix merge commit
  extcon: Use tab instead of space for indentation
  extcon: Correct description to improve the readability
  extcon: Remove unused CABLE_NAME_MAX definition
  dt-bindings: net: ravb : Add support for r8a7745 SoC
  extcon: Remove deprecated extcon_set/get_cable_state_()
  usb: gadget: udc: Replace the deprecated extcon API
  phy: phy-bcm-ns2-usbdrd: Replace the deprecated extcon API
  ipv4: route: set ipv4 RTM_GETROUTE to not use rtnl
  ipv6: route: set ipv6 RTM_GETROUTE to not use rtnl
  ipv6: route: make rtm_getroute not assume rtnl is locked
  selftests: add 'ip get' to rtnetlink.sh
  dsa: fix flow disector null pointer
  mlxsw: spectrum_router: Use correct config option
  ipv6: fib: Provide offload indication using nexthop flags
  drm/i915/cnl: Setup PAT Index.
  mlx5: remove unnecessary pci_set_drvdata()
  mlx4: remove unnecessary pci_set_drvdata()
  drm/i915/edp: Allow alternate fixed mode for eDP if available.
  bpf/verifier: track liveness for pruning
  PCI: rcar: Fix memory leak when no PCIe card is inserted
  PCI: rcar: Fix error exit path
  PCI: Move enum pci_interrupt_pin to linux/pci.h
  perf script python: Add support for sqlite3 to call-graph-from-sql.py
  perf script python: Rename call-graph-from-postgresql.py to call-graph-from-sql.py
  perf script python: Add support for exporting to sqlite3
  lkdtm: Add -fstack-protector-strong test
  arm64: dts: qcom: msm8916: Add gpu support
  perf scripts python: Fix query in call-graph-from-postgresql.py
  perf scripts python: Fix missing call_path_id in export-to-postgresql script
  loop: fix to a race condition due to the early registration of device
  PCI: pciehp: Report power fault only once until we clear it
  drm/amdgpu/gfx7: fix function name
  drm/amd/amdgpu: Disabling Power Gating for Stoney platform
  drm/amd/amdgpu: Added a quirk for Stoney platform
  drm/amdgpu: jt_size was wrongly counted twice
  drm/amdgpu: fix missing endian-safe guard
  drm/amdgpu: ignore digest_size when loading sdma fw for raven
  drm/amdgpu: Uninitialized variable in amdgpu_ttm_backend_bind()
  drm/amd/powerplay: fix coding style in hwmgr.c
  drm/amd/powerplay: refine dmesg info under powerplay.
  drm/amdgpu: don't finish the ring if not initialized
  drm/radeon: Fix preferred typo
  drm/amdgpu: Fix preferred typo
  drm/radeon: Fix stolen typo
  drm/amdgpu: Fix stolen typo
  drm/amd/powerplay: fix coccinelle warnings in vega10_hwmgr.c
  drm/amdgpu: set gfx_v9_0_ip_funcs as static
  drm/radeon: switch to drm_*{get,put} helpers
  drm/amdgpu: switch to drm_*{get,put} helpers
  drm/amd/powerplay: add CZ profile support
  drm/amd/powerplay: fix PSI not enabled by kmd
  drm/amd/powerplay: fix set highest mclk level failed on Vega10
  drm/amd/powerplay: fix force dpm level failed on CZ
  drm/amdgpu: use 256 bit buffers for all wb allocations (v2)
  drm/amdgpu: Make amdgpu_atif_handler static
  drm/radeon: Make radeon_atif_handler static
  drm/amdgpu: Fix amdgpu_pm_acpi_event_handler warning
  drm/amdgpu: Fix dce_v6_0_disable_dce warning
  drm/amdgpu: Fix undue fallthroughs in golden registers initialization
  drm/amdgpu/sdma4: move wptr polling setup
  drm/amdgpu/sdma4: drop allocation of poll_mem_offs
  drm/amdgpu/sdma4: drop hdp flush from wptr shadow update
  drm/amdgpu/sdma4: set wptr shadow atomically (v2)
  drm/amdgpu: Fix KFD initialization for multi-GPU systems
  drm/amd/powerplay: add vclk/dclkSoftMin support for raven
  drm/amdgpu/sdma4: drop unused register header
  drm/amdgpu: drop old ip definitions for gfxhub and mmhub
  drm/amdgpu: make wb 256bit function names consistent
  drm/amdgpu: Support IOMMU on Raven
  drm/amdgpu: Add a parameter to amdgpu_bo_create()
  drm/amdgpu: use amdgpu_bo_free_kernel more often
  drm/amdgpu: use amdgpu_bo_create_kernel more often
  drm/amdgpu: add amdgpu_bo_create_reserved
  drm/amdgpu: improve amdgpu_bo_create_kernel
  drm/amdgpu: shadow and mn list are mutually exclusive
  drm/amdgpu: move some defines around
  drm/amdgpu: consistent use u64_to_user_ptr
  drm/amdgpu: cleanup kptr handling
  drm/amd/powerplay: update didt configs
  drm/amd/powerplay: updated vega10 fan control
  drm/amdgpu: update vega10 golden setting
  drm/amd/powerplay: delete PCC error message in smu7_hwmgr.c
  drm/amdgpu/sdma4: Enable sdma poll mem addr on vega10 for SRIOV
  drm/amdgpu/uvd7: optimize uvd initialization sequence for SRIOV
  drm/amdgpu/vce4: optimize vce 4.0 init table sequence for SRIOV
  drm/amdgpu: According hardware design revert vce and uvd doorbell assignment
  drm/amdgpu: Skip uvd and vce ring test for SRIOV
  drm/amdgpu/vce4: Remove vce interrupt enable related code for sriov
  drm/amdgpu: Enable uvd and vce gpu re-init for SRIOV gpu reset
  drm/amdgpu: Clear vce&uvd ring wptr for SRIOV
  drm/amdgpu: Add support for filling a buffer with 64 bit value
  drm/amdgpu: disable vcn power control for now
  drm/amdgpu/dce_virtual: remove error message for vega10
  xprtrdma: Remove imul instructions from chunk list encoders
  s390/qeth: fix using of ref counter for rxip addresses
  s390/qeth: fix trace-messages for deleting rxip addresses
  s390/qeth: reject multicast rxip addresses
  s390/qeth: extract bridgeport cmd builder
  s390/net: reduce inlining
  s390/qeth: make more use of skb API
  s390/qeth: clean up fill_buffer() offset logic
  s390/qeth: straighten out fill_buffer() interface
  s390/qeth: simplify fragment type selection
  s390/qeth: remove extra L3 adapterparms query
  s390/qeth: remove extra L2 adapterparms query
  s390/qeth: don't access skb after transmission
  ASoC: samsung: i2s: Null pointer dereference on samsung_i2s_remove
  f2fs: fix potential overflow when adjusting GC cycle
  f2fs: avoid unneeded sync on quota file
  f2fs: introduce gc_urgent mode for background GC
  f2fs: use IPU for cold files
  f2fs: fix the size value in __check_sit_bitmap
  xprtrdma: Remove imul instructions from rpcrdma_convert_iovs()
  arm64: add VMAP_STACK overflow detection
  arm64: add on_accessible_stack()
  arm64: add basic VMAP_STACK support
  arm64: use an irq stack pointer
  arm64: assembler: allow adr_this_cpu to use the stack pointer
  arm64: factor out entry stack manipulation
  efi/arm64: add EFI_KIMG_ALIGN
  arm64: move SEGMENT_ALIGN to <asm/memory.h>
  arm64: clean up irq stack definitions
  arm64: clean up THREAD_* definitions
  arm64: factor out PAGE_* and CONT_* definitions
  arm64: kernel: remove {THREAD,IRQ_STACK}_START_SP
  fork: allow arch-override of VMAP stack alignment
  arm64: remove __die()'s stack dump
  ARM: multi_v7_defconfig: add CONFIG_BRCMSTB_THERMAL
  arm64: defconfig: add CONFIG_BRCMSTB_THERMAL
  ASoC: cygnus: Add support for 384kHz frame rates
  regulator: add fixes with MT6397 dt-bindings shouldn't reference driver
  regulator: add fixes with MT6323 dt-bindings shouldn't reference driver
  regulator: add fixes with MT6311 dt-bindings shouldn't reference driver
  ASoC: spear: constify snd_soc_dai_ops structures
  ASoC: codecs: zx_aud96p22: constify snd_soc_dai_ops structures
  ASoC: codecs: es8316: constify snd_soc_dai_ops structures
  ASoC: rockchip: constify snd_soc_dai_ops structures
  ASoC: blackfin: constify snd_soc_dai_ops structures
  kvm: avoid uninitialized-variable warnings
  gfs2: fix slab corruption during mounting and umounting gfs file system
  ARM: dts: uniphier: add Denali NAND controller node
  ARM: dts: uniphier use #include instead of /include/
  libnvdimm, pfn, dax: limit namespace alignments to the supported set
  iommu/vt-d: Make use of iova deferred flushing
  iommu/vt-d: Allow to flush more than 4GB of device TLBs
  iommu/amd: Make use of iova queue flushing
  iommu/iova: Add flush timer
  iommu/iova: Add locking to Flush-Queues
  iommu/iova: Add flush counters to Flush-Queue implementation
  iommu/iova: Implement Flush-Queue ring buffer
  iommu/iova: Add flush-queue data structures
  iommu/of: Fix of_iommu_configure() for disabled IOMMUs
  iommu/s390: Add support for iommu_device handling
  iommu/amd: Disable iommu only if amd_iommu=off is specified
  iommu/amd: Don't copy GCR3 table root pointer
  iommu/amd: Allocate memory below 4G for dev table if translation pre-enabled
  iommu/amd: Use is_attach_deferred call-back
  iommu: Add is_attach_deferred call-back to iommu-ops
  iommu/amd: Do sanity check for address translation and irq remap of old dev table entry
  iommu/amd: Copy old trans table from old kernel
  iommu/amd: Add function copy_dev_tables()
  iommu/amd: Define bit fields for DTE particularly
  Revert "iommu/amd: Suppress IO_PAGE_FAULTs in kdump kernel"
  iommu/amd: Add several helper functions
  iommu/amd: Detect pre enabled translation
  arm64: defconfig: add recently added crypto drivers as modules
  arm64: defconfig: enable CONFIG_UNIPHIER_WATCHDOG
  btrfs: Add zstd support
  lib: Add zstd modules
  lib: Add xxhash module
  arm64: defconfig: Enable CONFIG_WQ_POWER_EFFICIENT_DEFAULT
  ARM: dts: sk-rzg1e: add Ether pins
  ARM: dts: sk-rzg1e: add SCIF2 pins
  ARM: dts: r8a7745: add PFC support
  NFS: Wait for requests that are locked on the commit list
  NFSv4/pnfs: Replace pnfs_put_lseg_locked() with pnfs_put_lseg()
  NFS: Switch to using mapping->private_lock for page writeback lookups.
  NFS: Use an atomic_long_t to count the number of commits
  NFS: Use an atomic_long_t to count the number of requests
  NFSv4: Use a mutex to protect the per-inode commit lists
  NFS: Refactor nfs_page_find_head_request()
  NFSv4: Convert nfs_lock_and_join_requests() to use nfs_page_find_head_request()
  NFS: Fix up nfs_page_group_covers_page()
  NFS: Remove unused parameter from nfs_page_group_lock()
  NFS: Remove unuse function nfs_page_group_lock_wait()
  NFS: Remove nfs_page_group_clear_bits()
  NFS: Fix nfs_page_group_destroy() and nfs_lock_and_join_requests() race cases
  NFS: Further optimise nfs_lock_and_join_requests()
  NFS: Reduce inode->i_lock contention in nfs_lock_and_join_requests()
  NFS: Remove page group limit in nfs_flush_incompatible()
  NFS: Teach nfs_try_to_update_request() to deal with request page_groups
  NFS: Fix the inode request accounting when pages have subrequests
  NFS: Don't unlock writebacks before declaring PG_WB_END
  NFS: Don't check request offset and size without holding a lock
  NFS: Fix an ABBA issue in nfs_lock_and_join_requests()
  NFS: Fix a reference and lock leak in nfs_lock_and_join_requests()
  NFS: Ensure we always dereference the page head last
  NFS: Reduce lock contention in nfs_try_to_update_request()
  NFS: Reduce lock contention in nfs_page_find_head_request()
  NFS: Simplify page writeback
  ARM: OMAP4+: PRM: fix of_irq_get() result checks
  ARM: OMAP3+: PRM: fix of_irq_get() result check
  drm/i915: Add support for drm syncobjs
  memory: mtk-smi: Handle return value of clk_prepare_enable
  iommu/qcom: Initialize secure page table
  iommu/qcom: Add qcom_iommu
  iommu/arm-smmu: Split out register defines
  Docs: dt: document qcom iommu bindings
  drm/i915: Handle full s64 precision for wait-ioctl
  hwmon: (aspeed-pwm) add THERMAL dependency
  drm/i915: Split obj->cache_coherent to track r/w
  printk: Clean up do_syslog() error handling
  perf test shell vfs_getname: Skip for tools built with NO_LIBDWARF=1
  perf test shell: Check if 'perf probe' is available, skip tests if not
  perf tests shell: Remove duplicate skip_if_no_debuginfo() function
  arm64: numa: Remove the unused parent_node() macro
  drm/etnaviv: switch GEM allocations to __GFP_RETRY_MAYFAIL
  drm/etnaviv: don't fail GPU bind when CONFIG_THERMAL isn't enabled
  mm/hugetlb: Allow arch to override and call the weak function
  powerpc/hugetlb: fix page rights verification in gup_hugepte()
  powerpc/mm: Simplify __set_fixmap()
  powerpc/mm: declare some local functions static
  powerpc/mm: Implement STRICT_KERNEL_RWX on PPC32
  powerpc/mm: Fix kernel RAM protection after freeing unused memory on PPC32
  powerpc/mm: Ensure change_page_attr() doesn't invalidate pinned TLBs
  powerpc/8xx: Reduce DTLB miss handler by one insn
  powerpc/8xx: mark init functions with __init
  powerpc/8xx: Do not allow Pinned TLBs with STRICT_KERNEL_RWX or DEBUG_PAGEALLOC
  powerpc/8xx: Make pinning of ITLBs optional
  powerpc/32: Avoid risk of unrecoverable TLBmiss inside entry_32.S
  powerpc/8xx: Remove macro that checks kernel address
  powerpc/8xx: Ensures RAM mapped with LTLB is seen as block mapped on 8xx.
  drm/i915/hsw+: Add support for multiple power well regs
  drm: omapdrm: Remove dss_features.h
  drm: omapdrm: Move supported outputs feature to dss driver
  drm: omapdrm: Move DSS_FCK feature to dss driver
  drm: omapdrm: Move PCD, LINEWIDTH and DOWNSCALE features to dispc driver
  drm: omapdrm: Move FEAT_PARAM_DSI* features to dsi driver
  drm: omapdrm: Move FEAT_* features to dispc driver
  drm: omapdrm: Move FEAT_LCD_CLK_SRC feature to dss_features structure
  drm: omapdrm: Move FEAT_DPI_USES_VDDS_DSI feature to dpi code
  drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver
  drm: omapdrm: Move FEAT_DSI_* features to dsi driver
  drm: omapdrm: Move FEAT_VENC_REQUIRES_TV_DAC_CLK to venc driver
  drm: omapdrm: Move reg_fields to dispc_features structure
  drm: omapdrm: Move DISPC_CLK_SWITCH reg feature to struct dss_features
  drm: omapdrm: Move num_ovls and num_mgrs to dispc_features structure
  drm: omapdrm: Move overlay caps features to dispc_features structure
  drm: omapdrm: Move color modes feature to dispc_features structure
  drm: omapdrm: Move size unit features to dispc_features structure
  drm: omapdrm: Move shutdown() handler from core to dss
  drm: omapdrm: Move all debugfs code from core to dss
  drm: omapdrm: dss: Initialize DSS internal features at probe time
  drm: omapdrm: dss: Use supported outputs instead of display types
  drm: omapdrm: dss: Select features based on compatible string
  drm: omapdrm: dpi: Replace OMAP SoC model checks with DSS model
  drm: omapdrm: dispc: Select features based on compatible string
  drm: omapdrm: Don't forward set_min_bus_tput() to no-op platform code
  drm: omapdrm: dsi: Handle pin muxing internally
  drm: omapdrm: dsi: Store DSI model and PLL hardware data in OF data
  drm: omapdrm: dss: Split operations out of dss_features structure
  drm: omapdrm: hdmi: Store PHY features in PHY data structure
  drm: omapdrm: venc: Don't export omap_dss_pal_vm and omap_dss_ntsc_vm
  drm: omapdrm: dpi: Remove unneeded regulator check
  drm: omapdrm: panel-dpi: Remove unneeded check for OF node
  drm: omapdrm: connector-analog-tv: Remove unneeded check for OF node
  drm: omapdrm: acx565akm: Remove unneeded check for OF node
  ARM: OMAP2+: Register SoC device attributes from machine .init()
  drm/omap: panel-dsi-cm: constify attribute_group structures.
  drm/omap: panel-sony-acx565akm: constify attribute_group structures.
  drm/omap: constify attribute_group structures.
  drm/omap: dma-buf: Constify dma_buf_ops structures.
  drm/omap: omap_display_timings: constify videomode structures
  drm/omap: displays: encoder-tpd12s015: Support for hot plug detection
  drm/omap: displays: connector-hdmi: Support for hot plug detection
  drm/omap: Support for HDMI hot plug detection
  drm/omap: fix memory leak when FB init fails
  ACPI: SPCR: extend XGENE 8250 workaround to m400
  ALSA: firewire-motu: constify snd_rawmidi_ops structures
  power: wm831x_power: Support USB charger current limit management
  usb: phy: Add USB charger support
  include: uapi: usb: Introduce USB charger type and state definition
  mtd: physmap_of: Retire Gemini pad control
  mtd: physmap_of: Fix resources leak in 'of_flash_probe()'
  mtd: pci: constify pci_device_id.
  mtd: intel_vr_nor: constify pci_device_id.
  mtd: ck804xrom: constify pci_device_id.
  mtd: esb2rom: constify pci_device_id.
  mtd: amd76xrom: constify pci_device_id.
  mtd: ichxrom: constify pci_device_id.
  mtd: only use __xipram annotation when XIP_KERNEL is set
  mtd: Convert to using %pOF instead of full_name
  mtd: physmap_of: Drop unnecessary static
  mtd: spear_smi: add NULL check on devm_kzalloc() return value
  iommu/pamu: Add support for generic iommu-device
  iommu/pamu: WARN when fsl_pamu_probe() is called more than once
  iommu/pamu: Make driver depend on CONFIG_PHYS_64BIT
  iommu/pamu: Let PAMU depend on PCI
  ASoC: Freescale: Delete an error message for a failed memory allocation in three functions
  regulator: Add document for MediaTek MT6380 regulator
  regulator: mt6380: Add support for MT6380
  drm/i915: Work around GCC anonymous union initialization bug
  usb: gadget: f_fs: Pass along set_halt errors.
  usb: bdc: Add support for USB phy
  usb: bdc: Enable in Kconfig for ARCH_BRCMSTB systems
  usb: bdc: fix "xsf for ep not enabled" errror
  usb: bdc: Add support for suspend/resume
  usb: bdc: hook a quick Device Tree compatible string
  usb: bdc: Small code cleanup
  usb: bdc: Add clock enable for new chips with a separate BDC clock
  dt-bindings: usb: bdc: Add Device Tree binding for Broadcom UDC driver
  usb: bdc: Fix misleading register names
  usb: gadget: add RNDIS configfs options for class/subclass/protocol
  usb: phy-tahvo: constify attribute_group structures.
  usb: phy-mv-usb: constify attribute_group structures.
  usb: dwc2: skip L2 state of hcd if controller work in device mode
  usb: renesas_usbhs: gadget: fix spin_lock_init() for &uep->lock
  usb: gadget: core: unmap request from DMA only if previously mapped
  usb: gadget: allow serial gadget console on other configs
  usb: dwc2: gadget: make usb_ep_ops const
  usb: gadget: udc: renesas_usb3: make usb_ep_ops const
  usb: renesas_usbhs: gadget: make usb_ep_ops const
  usb: dwc3: of-simple: remove include of clk-provider.h
  usb: gadget: f_midi: Use snd_card_free_when_closed with refcount
  powerpc/chrp: Store the intended structure
  powerpc/l2cr_6xx: Fix invalid use of register expressions
  powerpc/iommu: Avoid undefined right shift in iommu_range_alloc()
  powerpc/perf/imc: Fix nest events on muti socket system
  powerpc/mm/nohash: Move definition of PGALLOC_GFP to fix build errors
  usb: gadget: f_midi: add super speed support
  usb: gadget: dummy: fix infinite loop because of missing loop decrement
  usb: gadget: f_midi: constify snd_rawmidi_ops structures
  usb: mtu3: add generic compatible string
  usb: gadget: f_hid: {GET,SET} PROTOCOL Support
  usb: mtu3: fix ip sleep auto-exit issue when enable DRD mode
  usb: mtu3: clear u1/u2_enable to 0 in mtu3_gadget_reset
  usb: mtu3: handle delayed status of the control transfer
  usb: phy: qcom: Use devm_ioremap_resource()
  usb: gadget: fsl_qe_udc: constify qe_ep0_desc
  usb: gadget: udc: renesas_usb3: add support for R-Car M3-W
  gpio: aspeed: Remove reference to clock name in debounce warning message
  dt-bindings: gpio: aspeed: Remove reference to clock name
  pinctrl: qcom: spmi-gpio: Add dtest route for digital input
  pinctrl: qcom: spmi-gpio: Add support for GPIO LV/MV subtype
  HID: prodikeys: constify snd_rawmidi_ops structures
  HID: sensor: constify platform_device_id
  HID: input: throttle battery uevents
  x86/xen/64: Fix the reported SS and CS in SYSCALL
  drm/i915: Initialize 'data' in intel_dsi_dcs_backlight.c
  drm/i915/dp: Validate the compliance test link parameters
  drm/i915/dp: Generalize intel_dp_link_params function to accept arguments to be validated
  mfd: tps65010: Move header file out of I2C realm
  mfd: dm355evm_msp: Move header file out of I2C realm
  thermal: intel_pch_thermal: Fix enable check on Broadwell-DE
  sound: emu8000: constify emu8000_ops
  ALSA: rme9652: Use common error handling code in two functions
  powerpc/xmon: Exclude all of xmon from ftrace
  liquidio: fix issues with fw_type module parameter
  mlxsw: spectrum_router: Add support for nexthop group consolidation for IPv6
  mlxsw: spectrum_router: Prepare nexthop group's hash table for IPv6
  liquidio: added support for ethtool --set-ring feature
  liquidio: moved liquidio_setup_io_queues to lio_core.c
  liquidio: moved liquidio_napi_poll to lio_core.c
  liquidio: moved liquidio_napi_drv_callback to lio_core.c
  liquidio: moved liquidio_push_packet to lio_core.c
  liquidio: moved octeon_setup_droq to lio_core.c
  liquidio: moved update_txq_status to lio_core.c
  liquidio: moved wait_for_pending_requests to octeon_network.h
  Input: ati_remote2 - constify usb_device_id
  Input: sun4i-ts - constify thermal_zone_of_device_ops structures
  Input: pcspkr - fix code style and error value in pcspkr_event
  arm64: allwinner: a64: Add A64-OLinuXino initial support
  arm64: allwinner: a64: Add initial NanoPi A64 support
  Input: mxs-lradc - make symbol mxs_lradc_ts_irq_names static
  Bluetooth: btusb: Add workaround for Broadcom devices without product id
  Input: mxs-lradc - use correct error check
  Input: mxs-lradc - do a NULL check on iores
  drm/i915/gvt: Fix guest i915 full ppgtt blocking issue
  drm/i915: Enable guest i915 full ppgtt functionality
  drm/i915: Disconnect 32 and 48 bit ppGTT support
  staging: pi433: rf69.c style fix - spaces open brace
  staging: pi433: rf69.c style fix - else close brace
  staging: pi433: rf69.c style fix - that open brace
  staging: pi433: style fix - space after asterisk
  staging: pi433: reduce stack size in tx thread
  staging: pi433: Use matching enum types calling rf69_set_packet_format
  staging: fsl-mc: add explicit dependencies for compile-tested arches
  staging: fsl-mc: fix resource_size.cocci warnings
  device property: use of_graph_get_remote_endpoint() for of_fwnode
  drm/vc4: Continue the switch to drm_*_put() helpers
  PCI/MSI: Assume MSIs use real Requester ID, not an alias
  platform/x86: ideapad-laptop: Expose conservation mode switch
  ARM: dts: rockchip: add spi dt node for rv1108
  leds: pca955x: add GPIO support
  leds: pca955x: use devm_led_classdev_register
  leds: pca955x: add device tree support
  i2c: aspeed: add proper support fo 24xx clock params
  i2c: tegra: explicitly request exclusive reset control
  i2c: sun6i-pw2i: explicitly request exclusive reset control
  i2c: stm32f4: explicitly request exclusive reset control
  i2c: mv64xxx: explicitly request exclusive reset control
  drm/vc4: Fix leak of HDMI EDID
  hwmon: (pmbus) Add debugfs for status registers
  ARM: dts: nokia n900: update dts with camera support
  ARM: dts: Add support for dra76-evm
  ARM: dts: Add support for dra76x family of devices
  ARM: dts: DRA7: Add pcie1 dt node for EP mode
  ARM: dts: am335x: add support for Moxa UC-8100-ME-T open platform
  ARM: dts: dra7xx: Enable NAND dma prefetch by default
  ARM: dts: am437xx: Enable NAND dma prefetch by default
  ARM: dts: am335x-evm: Enable NAND dma prefetch by default
  ARM: dts: omap4-droid4: Add vibrator
  ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio
  ARM: dts: omap3: Remove needless interrupt-parent property
  ARM: dts: Disable HDMI CEC internal pull-ups
  ARM: dts: am437x-gp-evm: Add support for buzzer
  Change Kconfig description
  Allow Mellanox switch devices to be configured if only I2C bus is set
  net: phy: Use tab for indentation in Kconfig
  mlxsw: spectrum_router: Use one LPM tree for all virtual routers
  mlxsw: spectrum_router: Pass argument explicitly
  mlxsw: spectrum_router: Return void from deletion functions
  ARM: dts: bcm283x: Add 32-bit enable method for SMP
  dt-bindings: arm: add SMP enable-method for BCM2836
  qlge: fix duplicated code for different branches
  liquidio: fix duplicated code for different branches
  liquidio: update debug console logging mechanism
  PCI: vmd: Free up IRQs on suspend path
  ARM: omap2plus_defconfig: Enable LP87565
  ARM: OMAP: dra7: powerdomain data: Register SoC specific powerdomains
  ARM: dra762: Enable SMP for dra762
  ARM: dra7: hwmod: Register dra76x specific hwmod
  ARM: dra762: Add support for device identification
  ARM: OMAP2+: board-generic: add support for dra762 family
  selftests: capabilities: convert error output to TAP13 ksft framework
  dma-buf: fix reservation_object_wait_timeout_rcu to wait correctly v2
  dma-buf: add reservation_object_copy_fences (v2)
  ASoC: hdmi-codec: make a function and two arrays static
  ASoC: DaVinci: Delete an error message for a failed memory allocation in two functions
  ASoC: rockchip: Delete an error message for a failed memory allocation in rockchip_i2s_probe()
  ASoC: fsi: Delete an error message for a failed memory allocation in fsi_probe()
  ASoC: kirkwood: Delete an error message for a failed memory allocation in kirkwood_i2s_dev_probe()
  ASoC: dwc: Delete an error message for a failed memory allocation in dw_i2s_probe()
  ASoC: blackfin: Add some spaces for better code readability
  ASoC: blackfin: Use common error handling code in sport_create()
  ASoC: blackfin: Delete an error message for a failed memory allocation in sport_create()
  ASoC: sun4i-i2s: Add TX FIFO offset to quirks
  ASoC: sun4i-i2s: Add regmap config to quirks
  ASoC: sun4i-i2s: Add clkdiv offsets to quirks
  spi: rockchip: add compatible string for rv1108 spi
  ASoC: sh: constify snd_pcm_ops structures
  ASoC: nuc900: constify snd_pcm_ops structures
  ASoC: intel: constify snd_pcm_ops structures
  ASoC: Intel: make snd_soc_platform_driver const
  ASoC: codecs: make snd_soc_platform_driver const
  ASoC: soc-utils: make snd_soc_platform_driver const
  ASoC: txx9: constify snd_pcm_ops structures
  ASoC: txx9: make snd_soc_platform_driver const
  ASoC: sh: make snd_soc_platform_driver const
  ASoC: qcom: make snd_soc_platform_driver const
  ASoC: pxa: constify snd_pcm_ops structures
  ASoC: pxa: make snd_soc_platform_driver const
  ASoC: omap: make snd_soc_platform_driver const
  ASoC: omap: constify snd_pcm_ops structures
  ASoC: nuc900: make snd_soc_platform_driver const
  ASoC: fsl: make snd_soc_platform_driver const
  ASoC: fsl: constify snd_pcm_ops structures
  ASoC: blackfin: constify snd_pcm_ops structures
  ASoC: au1x: constify snd_pcm_ops structures
  ASoC: rt5663: Fine tune for the headphone output pop sound
  ASoC: samsung: make snd_soc_platform_driver const
  ASoC: samsung: constify snd_pcm_ops structures
  ASoC: samsung: make tm2_dapm_widgets and tm2_pm_ops static
  ASoC: zx_aud96p22: make array aud96p22_dt_ids static
  ASoC: rt5514: make array rt5514_dai static
  ASoC: max98926: make max98926_spk_tlv and max98926_current_tlv static
  mtd: spi-nor: fix "No newline at end of file"
  soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC
  soc: mediatek: add header files required for MT7622 SCPSYS dt-binding
  soc: mediatek: reduce code duplication of scpsys_probe across all SoCs
  dt-bindings: soc: update the binding document for SCPSYS on MediaTek MT7622 SoC
  mtd: spi-nor: aspeed: set 4B setting for all chips
  ARM: align .data section
  arizona: anc: Correct setting of FCx_MIC_MODE_SEL
  arm: dts: mt7623: cleanup binding file
  IB/hns: Avoid compile test under non 64bit environments
  arm: dts: mt7623: Add SD-card and EMMC to bananapi-r2
  Revert "RDMA/hns: fix build regression"
  arm64: defconfig: enable DMA driver for hi3660
  arm64: defconfig: enable OP-TEE
  arm64: defconfig: enable support for serial port connected device
  arm64: defconfig: enable CONFIG_SYSCON_REBOOT_MODE
  arm64: defconfig: enable support hi6421v530 PMIC
  drm/i915: More surgically unbreak the modeset vs reset deadlock
  drm/i915: Push i915_sw_fence_wait into the nonblocking atomic commit
  drm/i915: Avoid the gpu reset vs. modeset deadlock
  debugobjects: Make kmemleak ignore debug objects
  arm64: defconfig: enable Kirin PCIe
  arm64: defconfig: enable SCSI_HISI_SAS_PCI
  clk: sunxi-ng: nkm: add support for fixed post-divider
  clk: sunxi-ng: div: Add support for fixed post-divider
  ARM64: dts: marvell: enable USB host on Armada-8040-DB
  ARM64: dts: marvell: enable USB host on Armada-7040-DB
  ARM64: dts: marvell: add NAND support on the CP110
  arm64: dts: hisi: add PCIe host controller node for hip07 SoC
  gpio: 74x164: Introduce 'enable-gpios' property
  gpio: max77620: Make regmap_irq_chip const
  gpio: zynq: Fix driver function parameters alignment
  gpio: zynq: Fix warnings in the driver
  gpio: zynq: Fix empty lines in driver
  gpio: zynq: Fix kernel doc warnings
  gpio: zynq: Provided workaround for GPIO
  gpio: zynq: Add support for suspend resume
  gpio: Add support for TPS68470 GPIOs
  ARM: dts: rockchip: add saradc support for rv1108
  gpio: davinci: Handle the return value of davinci_gpio_irq_setup function
  dt-bindings: gpio: davinci: Add keystone-k2g compatible
  gpio: vf610: add imx7ulp support
  gpio: msic: fix error return code in platform_msic_gpio_probe()
  gpio: omap : Add missing clk_unprepare().
  gpio: mb86s7x: Handle return value of clk_prepare_enable.
  gpio: it87: add support for IT8772F Super I/O.
  gpio: tegra: Use unsigned int where possible
  pinctrl: add a Gemini SoC pin controller
  pinctrl: check ops->pin_config_set in pinconf_set_config()
  pinctrl: intel: Add Intel Denverton pin controller support
  pinctrl: add __rcu annotations to fix sparse warnings
  pinctrl: nomadik: fix incorrect type in return expression
  pinctrl: sirf: add static to local data
  pinctrl: armada-37xx: add static to local data
  gpio: tegra: Fix checkpatch warnings
  gpio: tegra: Prefer kcalloc() over kzalloc() with multiplies
  gpio: tegra: Remove unnecessary check
  gpio: Use unsigned int for of_gpio_n_cells
  docs: driver-api: Add GPIO section
  gpio: sysfs: Fixup kerneldoc
  gpio: acpi: Fixup kerneldoc
  gpio: devres: Improve kerneldoc
  gpio: of: Improve kerneldoc
  gpio: Cleanup kerneldoc
  gpio: tegra: Use platform_get_irq()
  gpio: tegra: Use platform_irq_count()
  gpio: Convert to using %pOF instead of full_name
  gpio: davinci: Convert prinkt to dev_err
  gpio: davinci: Use devm_gpiochip_add_data in place of gpiochip_add_data
  gpio: altera-a10sr: constify gpio_chip structure
  dt-bindings: gpio-vf610: add imx7ulp support
  gpio: gpio-mxc: gpio_set_wake_irq() use proper return values
  gpio: rcar: add gen[123] fallback compatibility strings
  gpio: replace __maybe_unused in gpiolib.h with static inline
  gpio: tegra: remove gpio_to_irq() from hw irq handlers
  gpio: pxa: remove gpio_to_irq() from hw irq handlers
  gpiolib: allow gpio irqchip to map irqs dynamically
  gpiolib: request the gpio before querying its direction
  gpio: pca953x: remove incorrect le16_to_cpu calls
  pinctrl: uniphier: widen all pinconf-derived arguments to u32
  pinctrl: sunxi: fix V3s pinctrl driver IRQ bank base
  pinctrl: move const qualifier before struct
  dt-bindings: pinctrl: mt2712: add binding document
  pinctrl-st: fix of_irq_to_resource() result check
  pinctrl: Add DT bindings for Cortina Gemini
  pinctrl: rockchip: add input schmitt support for rv1108
  pinctrl: intel: wrap Intel pin control drivers in an architecture check
  pinctrl: sirf: atlas7: fix of_irq_get() error check
  pinctrl: Add pmi8994 gpio bindings
  pinctrl: rockchip: Add rk3128 pinctrl support
  pinctrl: rockchip: Use common interface for recalced iomux
  pinctrl: bcm2835: Remove unneeded irq_group field
  pinctrl: sirf: atlas7: Initialize GPIO offset
  pinctrl: Convert to using %pOF instead of full_name
  pinctrl: tegra: explicitly request exclusive reset control
  pinctrl: sunxi: explicitly request exclusive reset control
  pinctrl: stm32: explicitly request exclusive reset control
  pinctrl: aspeed: g5: Add USB device and host support
  pinctrl: aspeed: g4: Add USB device and host support
  dt-bindings: pinctrl: aspeed: Add g5 USB functions
  dt-bindings: pinctrl: aspeed: Add g4 USB functions
  pinctrl: zte: fix 'functions' allocation in zx_pinctrl_build_state()
  pinctrl: qcom: ssbi: mpp: constify gpio_chip structure
  pinctrl: bcm2835: constify gpio_chip structure
  pinctrl: zynq: Fix warnings in the driver
  pinctrl: zynq: Fix kernel doc warnings
  pinctrl: st: constify gpio_chip structure
  pinctrl: baytrail: Do not call WARN_ON for a firmware bug
  pinctrl: pinctrl-imx7ulp: add gpio_set_direction support
  pinctrl: imx: make imx_pmx_ops.gpio_set_direction platform specific callbacks
  pinctrl: imx: remove gpio_request_enable and gpio_disable_free
  pinctrl: imx: add imx7ulp driver
  pinctrl: imx: switch to use the generic pinmux property
  dt-bindings: pinctrl: add imx7ulp pinctrl binding doc
  pinctrl: uniphier: add UniPhier PXs3 pinctrl driver
  pinctrl: uniphier: add suspend / resume support
  pinctrl: uniphier: omit redundant input enable bit information
  pinctrl: uniphier: clean up GPIO port muxing
  pinctrl: uniphier: fix pin_config_get() for input-enable
  pinctrl: uniphier: remove unneeded EXPORT_SYMBOL_GPL()
  pinctrl: qcom: msm: constify gpio_chip structure
  pinctrl: qcom: ssbi-gpio: constify gpio_chip structure
  pinctrl: coh901: constify gpio_chip structure
  pinctrl: nomadik: abx500: constify gpio_chip structure
  pinctrl: vt8500: wmt: constify gpio_chip structure
  pinctrl: rza1: constify gpio_chip structure
  pinctrl: sunxi: rename R_PIO i2c pin function name
  pinctrl: sunxi: add support of R40 to A10 pinctrl driver
  pinctrl: msm: add support to configure ipq40xx GPIO_PULL bits
  pinctrl: qcom: ipq4019: add most remaining pin definitions
  dt-bindings: pinctrl: add most other IPQ4019 pin functions and groups
  powerpc/xmon: Disable tracing when entering xmon
  powerpc/xmon: Dump ftrace buffers for the current CPU only
  drivers/macintosh: Make wf_control_ops and wf_pid_param const
  powerpc/perf: Fix double unlock in imc_common_cpuhp_mem_free()
  powerpc/8xx: Fix two CONFIG_8xx left behind
  locking/lockdep: Fix the rollback and overwrite detection logic in crossrelease
  locking/lockdep: Add a comment about crossrelease_hist_end() in lockdep_sys_exit()
  MAINTAINERS: Add missed file for Hyper-V
  genirq: Fix for_each_action_of_desc() macro
  i2c: mux: pinctrl: drop the idle_state member
  i2c: mux: pinctrl: remove platform_data
  i2c: mux: mlxcpld: move header file out of I2C realm
  i2c: mux: pca954x: move header file out of I2C realm
  i2c: mux: pca9541: sort include files
  uapi/linux/quota.h: Do not include linux/errno.h
  x86/intel_rdt: Modify the intel_pqr_state for better performance
  x86/intel_rdt/cqm: Clear the default RMID during hotcpu
  drm/i915/gen9: Send all components in VF state
  reset: uniphier: add analog amplifiers reset control
  reset: uniphier: add video input subsystem reset control
  reset: uniphier: add audio systems reset control
  arm64: defconfig: Enable REGULATOR_AXP20X
  arm64: defconfig: Enable MFD_AXP20X_RSB
  ARM: dts: r8a7743: Add I2C DT support
  net: ti: cpsw:: constify platform_device_id
  net: sh_eth: constify platform_device_id
  net: dpaa_eth: constify platform_device_id
  can: constify platform_device_id
  tap: make struct tap_fops static
  virtio-net: make array guest_offloads static
  of_mdio: merge branch tails in of_phy_register_fixed_link()
  net: ipv4: add check for l3slave for index returned in IP_PKTINFO
  net: vrf: Drop local rtable and rt6_info
  net: ipv4: remove unnecessary check on orig_oif
  vxlan: change vxlan_[config_]validate() to use netlink_ext_ack for error reporting
  tap: XDP support
  net: export some generic xdp helpers
  tap: use build_skb() for small packet
  rtnelink: Move link dump consistency check out of the loop
  arm64: dts: zte: add initial zx296718-pcbox board support
  arm64: dts: zx296718-evb: add I2S sound card support
  arm64: dts: zx296718-evb: use audio-graph-card for HDMI audio
  arm64: dts: zx296718: add irdec device for remote control
  arm64: dts: zx296718: add PWM device support
  arm64: dts: zx296718: add voltage data into OPP table
  arm64: dts: zx296718: set a better parent clock for I2S0
  arm64: dts: zx296718: add pinctrl and gpio devices
  arm64: dts: zx296718: add I2S and I2C audio codec
  arm64: dts: zx296718: add VGA device support
  arm64: select PINCTRL for ZTE platform
  ARM: dts: imx6q-bx50v3: Enable i2c recovery mechanism
  arm64: dts: ls1088: Correction in Board name from "L1088A" to "LS1088A"
  ARM: dts: imx6q-apalis-eval: add support for Apalis Evaluation Board
  ARM: dts: imx6: add support for Toradex Ixora V1.1 carrier board
  ARM: dts: imx6qdl-apalis: imx6q-apalis-ixora: use i2c from dwc hdmi
  ARM: dts: imx6q-apalis-ixora: add camera i2c bus definition
  ARM: dts: imx6q-apalis-ixora: get rid of obsolete fusion comment
  ARM: dts: imx6qdl-apalis: reword cam i2c comment
  ARM: dts: imx6qdl-apalis: imx6q-apalis-ixora: get rid of tegra legacy gen1_i2c comment
  ARM: dts: imx6q-apalis-ixora: combine aliases
  ARM: dts: imx6qdl-apalis: split usdhc1 pinctrl to support 4- and 8-bit
  ARM: dts: imx6q-apalis-ixora: fix usdhc2 pinctrl property
  arm64: dts: ls208xa: add cpu idle support
  arm64: dts: ls1088a: add cpu idle support
  NFSv4: Use the nfs4_state being recovered in _nfs4_opendata_to_nfs4_state()
  NFSv4: Use correct inode in _nfs4_opendata_to_nfs4_state()
  i2c-cht-wc: Add Intel Cherry Trail Whiskey Cove SMBUS controller driver
  hwmon: (aspeed-pwm-tacho) cooling device support.
  Documentation: dt-bindings: aspeed-pwm-tacho cooling device.
  hwmon: (pmbus): Add generic alarm bit for iin and pin
  hwmon: (pmbus): Access word data for STATUS_WORD
  hwmon: (pmbus): Switch status registers to 16 bit
  hwmon: (it87) Reapply probe path chip registers settings after resume
  hwmon: (it87) Split out chip registers setting code on probe path
  hwmon: (scpi) constify thermal_zone_of_device_ops structures
  hwmon: (core) constify thermal_zone_of_device_ops structures
  hwmon: (i5k_amb) constify pci_device_id
  hwmon: (ads1015) Convert to using %pOF instead of full_name
  hwmon: (jc42) Add support for CAT34TS02C
  hwmon: (jc42) Add support for GT30TS00, GT34TS02, and CAT34TS04
  hwmon: (adt7475) constify attribute_group structures.
  hwmon: (adc128d818) constify attribute_group structures.
  hwmon: (nct7802) constify attribute_group structures.
  hwmon: constify attribute_group structures.
  hwmon: (stts751) buffer overrun on wrong chip configuration
  hwmon: (ftsteutates) Fix clearing alarm sysfs entries
  gpu: drm: tc35876x: move header file out of I2C realm
  platform/x86: intel_pmc_core: Make the driver PCH family agnostic
  platform/x86: peaq-wmi: Evaluate wmi method with instance number 0x0
  platform/x86: mxm-wmi: Evaluate wmi method with instance number 0x0
  platform/x86: asus-wmi: Evaluate wmi method with instance number 0x0
  platform/x86: intel_scu_ipc: make intel_scu_ipc_pdata_t const
  platform/x86: intel_mid_powerbtn: make mid_pb_ddata const
  platform/x86: intel_mid_powerbtn: fix error return code in mid_pb_probe()
  platform/x86: hp-wmi: Remove unused macro helper
  platform/x86: hp-wmi: Correctly determine method id in WMI calls
  ARM: dts: rockchip: add watchdog dt node for rv1108
  ARM: dts: rockchip: add i2c dt nodes for rv1108
  arm64: dts: rockchip: remove num-slots property from rk3399-sapphire
  mtd: nand: Rename nand.h into rawnand.h
  arm64: dts: uniphier: add Denali NAND controller nodes
  leds: Convert to using %pOF instead of full_name
  ALSA: wss: constify snd_pcm_ops structures
  ALSA: sb8: constify snd_pcm_ops structures
  ALSA: sb16: constify snd_pcm_ops structures
  ALSA: emu8000: constify snd_pcm_ops structures
  ALSA: msnd: constify snd_pcm_ops structures
  ALSA: gus: constify snd_pcm_ops structures
  ALSA: es18xx: constify snd_pcm_ops structures
  ALSA: es1688: constify snd_pcm_ops structures
  ALSA: ad1816a: constify snd_pcm_ops structures
  ALSA: mpu401: Adjust four checks for null pointers
  ALSA: mpu401: Use common error handling code in snd_mpu401_uart_new()
  ALSA: mpu401: Delete an error message for a failed memory allocation in snd_mpu401_uart_new()
  ALSA: opl3: Delete an error message for a failed memory allocation in snd_opl3_new()
  ALSA: ca0106: Delete an error message for a failed memory allocation in snd_ca0106_pcm_open_capture_channel()
  ALSA: mixart: Delete an error message for a failed memory allocation in snd_mixart_create()
  ALSA: pcxhr: Delete an error message for a failed memory allocation in pcxhr_create()
  ALSA: pci: make snd_pcm_hardware const
  ALSA: ymfpci: make snd_pcm_hardware const
  ALSA: trident: make snd_pcm_hardware const
  ALSA: rme9652: make snd_pcm_hardware const
  ALSA: riptide: make snd_pcm_hardware const
  ALSA: pcxhr: make snd_pcm_hardware const
  ALSA: ctxfi: make snd_pcm_hardware const
  ALSA: mixart: make snd_pcm_hardware const
  ALSA: lx6464es: make snd_pcm_hardware const
  ALSA: lola: make snd_pcm_hardware const
  ALSA: emu10k1: make snd_pcm_hardware const
  ALSA: cs5535audio: make snd_pcm_hardware const
  ALSA: korg1212: make snd_pcm_hardware const
  ALSA: cs46xx: make snd_pcm_hardware const
  ALSA: ca0106: make snd_pcm_hardware const
  ALSA: aw2: make snd_pcm_hardware const
  ALSA: rme9652: Adjust seven checks for null pointers
  ALSA: rme9652: Improve eight size determinations
  ALSA: rme9652: Delete an error message for a failed memory allocation in snd_hdspm_create()
  ALSA: rme96: Adjust five checks for null pointers
  ALSA: rme96: Use common error handling code in snd_rme96_probe()
  ALSA: rme96: Delete two error messages for a failed memory allocation in snd_rme96_probe()
  ALSA: trident: Delete an error message for a failed memory allocation in snd_trident_tlb_alloc()
  ALSA: usb: caiaq: audio: Delete two error messages for a failed memory allocation in alloc_urbs()
  ALSA: usb: Delete an error message for a failed memory allocation in two functions
  ALSA: usx2y: Delete an error message for a failed memory allocation in two functions
  power: supply: lp8788: Make several arrays static const * const
  ARM: dts: keystone-k2g-ice: Add and enable DSP CMA memory pool
  ARM: dts: keystone-k2g-evm: Add and enable DSP CMA memory pool
  ARM: dts: keystone-k2g: Add DSP node
  drm/i915/guc: Rename GuC irq trigger function
  drm/i915: Suppress switch_mm emission between the same aliasing_ppgtt
  dt-bindings: i2c: sh_mobile: Document r8a7743/5 support
  dt-bindings: i2c: Document r8a7743/5 support
  i2c: rk3x: add support for rv1108
  dt-bindings: i2c: rk3x: add support for rv1108
  i2c: uniphier-f: add suspend / resume support
  i2c: uniphier: add suspend / resume support
  iio: accel: st_accel: fix data-ready line configuration
  iio: pressure: st_pressure: fix drdy configuration for LPS22HB and LPS25H
  iio: adc: xadc: Fix coding style violations
  staging: iio: adc: fix error return code in ad7606_par_probe()
  dt-bindings: adc: add description for rv1108 saradc
  iio: trigger: stm32-timer: add output compare triggers
  iio: trigger: stm32-timer: add support for STM32H7
  dt-bindings: iio: timer: stm32: add support for STM32H7
  i2c: constify internal structures
  drm/i915: Add SW_SYNC to our recommend testing Kconfig
  libnvdimm, pfn, dax: show supported dax/pfn region alignments in sysfs
  libnvdimm: rename nd_sector_size_{show,store} to nd_size_select_{show,store}
  liquidio: moved ptp_enable to octeon_device structure
  selftests: bpf: add check for ip XDP redirect
  mlxsw: make mlxsw_config_profile const
  openvswitch: Remove unnecessary newlines from OVS_NLERR uses
  nfp: send control message when MAC representors are created
  net: skb_needs_check() removes CHECKSUM_UNNECESSARY check for tx.
  wan: dscc4: convert to plain DMA API
  wan: dscc4: add checks for dma mapping errors
  net: ipv4: set orig_oif based on fib result for local traffic
  fsl/fman: implement several errata workarounds
  hns3pf: Fix some harmless copy and paste bugs
  hns3pf: fix hns3_del_tunnel_port()
  ARM64: dts: rockchip: Enable gmac2phy for rk3328-evb
  ARM64: dts: rockchip: Add gmac2phy node support for rk3328
  ARM: dts: rk3228-evb: Enable the integrated PHY for gmac
  net: stmmac: dwmac-rk: Add integrated PHY supprot for rk3328
  net: stmmac: dwmac-rk: Add integrated PHY support for rk3228
  net: stmmac: dwmac-rk: Add integrated PHY support
  Documentation: net: phy: Add phy-is-integrated binding
  net: stmmac: dwmac-rk: Remove unwanted code for rk3328_set_to_rmii()
  arm64: defconfig: Enable CONFIG_ROCKCHIP_PHY
  multi_v7_defconfig: Make rockchip PHY built-in
  net: phy: Add rockchip PHY driver support
  forcedeth: replace init_timer_deferrable with setup_deferrable_timer
  drivers: net: davinci_mdio: print bus frequency
  drivers: net: davinci_mdio: remove busy loop on wait user access
  netvsc: keep track of some non-fatal overload conditions
  netvsc: allow controlling send/recv buffer size
  netvsc: remove unnecessary check for NULL hdr
  netvsc: remove unnecessary cast of void pointer
  netvsc: whitespace cleanup
  netvsc: no need to allocate send/receive on numa node
  netvsc: check error return when restoring channels and mtu
  netvsc: propagate MAC address change to VF slave
  netvsc: don't signal host twice if empty
  netvsc: delay setup of VF device
  phylink: Fix an uninitialized variable bug
  liquidio: removed check for queue size alignment
  liquidio: rx/tx queue cleanup
  net: sched: remove cops->tcf_cl_offload
  net: sched: remove handle propagation down to the drivers
  net: sched: use newly added classid identity helpers
  net: sched: propagate classid down to offload drivers
  net: sched: Add helpers to identify classids
  geneve: use netlink_ext_ack for error reporting in rtnl operations
  sched: Replace spin_unlock_wait() with lock/unlock pair
  Bluetooth: kfree tmp rather than an alias to it
  perf test shell: Add uprobes + backtrace ping test
  perf report: Fix module symbol adjustment for s390x
  perf record: Fix wrong size in perf_record_mmap for last kernel module
  perf srcline: Do not consider empty files as valid srclines
  perf util: Take elf_name as const string in dso__demangle_sym
  perf test shell: Add test using vfs_getname + 'perf trace'
  perf test shell: Add test using probe:vfs_getname and verifying results
  perf test shell: Move vfs_getname probe function to lib
  perf test shell: Install shell tests
  perf test shell: Add 'probe_vfs_getname' shell test
  perf test: Make 'list' use same filtering code as main 'perf test'
  perf test: Add infrastructure to run shell based tests
  drm/i915: Introduce intel_hpd_pin function.
  drm/i915: Simplify hpd pin to port
  drm/i915/cnl: Dump the right pll registers when dumping pipe config.
  drm/i915/cnl: Add allowed DP rates for Cannonlake.
  drm/i915: Return correct EDP voltage swing table for 0.85V
  cs5536: add support for IDE controller variant
  cgroup: remove unneeded checks
  ata: sata_gemini: Introduce explicit IDE pin control
  ata: sata_gemini: Retire custom pin control
  xprtrdma: Clean up rpcrdma_bc_marshal_reply()
  xprtrdma: Harden chunk list encoding against send buffer overflow
  xprtrdma: Set up an xdr_stream in rpcrdma_marshal_req()
  xprtrdma: Remove rpclen from rpcrdma_marshal_req
  xprtrdma: Clean up rpcrdma_marshal_req() synopsis
  sctp: fix some indents in sm_make_chunk.c
  sctp: remove the typedef sctp_disposition_t
  sctp: remove the typedef sctp_sm_table_entry_t
  sctp: remove the unused typedef sctp_sm_command_t
  sctp: remove the typedef sctp_verb_t
  sctp: remove the typedef sctp_arg_t
  sctp: remove the typedef sctp_cmd_seq_t
  sctp: remove the typedef sctp_cmd_t
  sctp: remove the typedef sctp_socket_type_t
  sctp: remove the typedef sctp_dbg_objcnt_entry_t
  sctp: remove the typedef sctp_cmsgs_t
  sctp: remove the typedef sctp_endpoint_type_t
  sctp: remove the typedef sctp_sender_hb_info_t
  sctp: remove the unused typedef sctp_packet_phandler_t
  kvm: x86: Disallow illegal IA32_APIC_BASE MSR values
  KVM: MMU: Bail out immediately if there is no available mmu page
  KVM: MMU: Fix softlockup due to mmu_lock is held too long
  power: supply: charger-manager: Slighly simplify code
  power: supply: charger-manager: Fix a comment
  KVM: nVMX: validate eptp pointer
  power: supply: charger-manager: Fix a NULL pointer dereference in 'charger_manager_probe()'
  KVM: MAINTAINERS improvements
  drm/tinydrm: add support for LEGO MINDSTORMS EV3 LCD
  dt-bindings: add binding for Sitronix ST7586 display panels
  selftests: memfd: Align STACK_SIZE for ARM AArch64 system
  drm/i915: make structure intel_sprite_plane_funcs static
  drm/mgag200: switch to drm_*_get(), drm_*_put() helpers
  reset: sunxi: fix number of reset lines
  drm/vgem: switch to drm_*_get(), drm_*_put() helpers
  drm/udl: switch to drm_*_get(), drm_*_put() helpers
  drm/cirrus: switch to drm_*_get(), drm_*_put() helpers
  drm/ast: switch to drm_*_get(), drm_*_put() helpers
  drm/hisilicon: switch to drm_*_get(), drm_*_put() helpers
  drm/rockchip: switch to drm_*_get(), drm_*_put() helpers
  drm/mediatek: switch to drm_*_get(), drm_*_put() helpers
  drm: vboxvideo: switch to drm_*_get(), drm_*_put() helpers
  arm64: dts: rockchip: Enable tsadc module on RK3328 eavluation board
  arm64: dts: rockchip: add thermal nodes for rk3328 SoC
  arm64: dts: rockchip: add tsadc node for rk3328 SoC
  cfq: Give a chance for arming slice idle timer in case of group_idle
  block, bfq: boost throughput with flash-based non-queueing devices
  block,bfq: refactor device-idling logic
  drm/i915/fbc: only update no_fbc_reason when active
  dt-bindings: clock: sunxi-ccu: Add compatibles for sun5i CCU driver
  ath9k: constify usb_device_id
  ath6kl: constify usb_device_id
  brcm80211: constify usb_device_id
  perf test: Add 'struct test *' to the test functions
  perf test: Make 'list' subcommand match main 'perf test' numbering/matching
  perf tools: Add missing newline to expr parser error messages
  perf stat: Fix saved values rbtree lookup
  perf vendor events powerpc: Update POWER9 events
  perf vendor events powerpc: remove suffix in mapfile
  perf scripting python: Add ppc64le to audit uname list
  x86/cpu/amd: Hide unused legacy_fixup_core_id() function
  cgroup: misc changes
  mm, locking: Fix up flush_tlb_pending() related merge in do_huge_pmd_numa_page()
  objtool: Track DRAP separately from callee-saved registers
  objtool: Fix validate_branch() return codes
  drm: Clean up drm_dev_unplug
  drm: Only lastclose on unload for legacy drivers
  drm: Document device unplug infrastructure
  drm: Extract drm_device.h
  thermal: rockchip: Support the RK3328 SOC in thermal driver
  dt-bindings: rockchip-thermal: Support the RK3328 SoC compatible
  reset: uniphier: do not use per-SoC macro for system reset block
  reset: uniphier: remove sLD3 SoC support
  net: xfrm: support setting an output mark.
  thermal: bcm2835: constify thermal_zone_of_device_ops structures
  thermal: exynos: constify thermal_zone_of_device_ops structures
  thermal: zx2967: constify thermal_zone_of_device_ops structures
  thermal: rcar_gen3_thermal: constify thermal_zone_of_device_ops structures
  thermal: qoriq: constify thermal_zone_of_device_ops structures
  thermal: hisilicon: constify thermal_zone_of_device_ops structures
  thermal: core: Fix resources release in error paths in thermal_zone_device_register()
  thermal: core: Use the new 'thermal_zone_destroy_device_groups()' helper function
  thermal: core: Add some new helper functions to free resources
  thermal: int3400_thermal: process "thermal table changed" event
  thermal: uniphier: add UniPhier thermal driver
  dt-bindings: thermal: add binding documentation for UniPhier thermal monitor
  scsi: hisi_sas: kill tasklet when destroying irq in v3 hw
  scsi: hisi_sas: fix v3 hw channel interrupt processing
  scsi: hisi_sas: Modify v3 hw STP_LINK_TIMER setting
  scsi: hisi_sas: add status and command buffer for internal abort
  scsi: hisi_sas: support zone management commands
  scsi: hisi_sas: service interrupt ITCT_CLR interrupt in v2 hw
  scsi: hisi_sas: add irq and tasklet cleanup in v2 hw
  scsi: hisi_sas: remove repeated device config in v2 hw
  scsi: hisi_sas: use array for v2 hw ECC errors
  scsi: hisi_sas: add v2 hw DFX feature
  scsi: hisi_sas: fix v2 hw underflow residual value
  scsi: hisi_sas: avoid potential v2 hw interrupt issue
  scsi: hisi_sas: fix reset and port ID refresh issues
  scsi: smartpqi: change driver version to 1.1.2-125
  scsi: smartpqi: add in new controller ids
  scsi: smartpqi: update kexec and power down support
  scsi: smartpqi: cleanup doorbell register usage.
  scsi: smartpqi: update pqi passthru ioctl
  scsi: smartpqi: enhance BMIC cache flush
  scsi: smartpqi: add pqi reset quiesce support
  scsi: dpt_i2o: remove redundant null check on array device
  scsi: qla2xxx: use dma_mapping_error to check map errors
  scsi: mvsas: replace kfree with scsi_host_put
  scsi: pm8001: fix double free in pm8001_pci_probe
  scsi: megaraid_sas: fix allocate instance->pd_info twice
  scsi: esp_scsi: Always clear msg_out_len after MESSAGE OUT phase
  scsi: esp_scsi: Avoid sending ABORT TASK SET messages
  scsi: esp_scsi: Clean up control flow and dead code
  scsi: mac_esp: Fix PIO transfers for MESSAGE IN phase
  scsi: mac_esp: Avoid type warning from sparse
  arcmsr: add const to bin_attribute structures
  scsi: zfcp: early returns for traces disabled via level
  scsi: zfcp: clean up unnecessary module_param_named() with no_auto_port_rescan
  scsi: zfcp: clean up a member of struct zfcp_qdio that was assigned but never used
  scsi: zfcp: clean up no longer existent prototype from zfcp API header
  scsi: zfcp: clean up redundant code with fall through in link down SRB switch case
  scsi: zfcp: fix kernel doc comment typos for struct zfcp_dbf_scsi
  scsi: zfcp: use endianness conversions with common FC(P) struct fields
  scsi: zfcp: use common code fcp_cmnd and fcp_resp with union in fsf_qtcb_bottom_io
  scsi: zfcp: clarify that we don't need "link" test on failed open port
  scsi: zfcp: more fitting constant for fc_ct_hdr.ct_reason on port scan response
  scsi: zfcp: trace high part of "new" 64 bit SCSI LUN
  scsi: zfcp: trace HBA FSF response by default on dismiss or timedout late response
  scsi: zfcp: fix payload with full FCP_RSP IU in SCSI trace records
  scsi: zfcp: fix missing trace records for early returns in TMF eh handlers
  scsi: zfcp: fix passing fsf_req to SCSI trace on TMF to correlate with HBA
  scsi: zfcp: fix capping of unsuccessful GPN_FT SAN response trace records
  scsi: zfcp: add handling for FCP_RESID_OVER to the fcp ingress path
  scsi: zfcp: fix queuecommand for scsi_eh commands when DIX enabled
  scsi: zfcp: convert bool-definitions to use 'true' instead of '1'
  scsi: zfcp: Remove unneeded linux/miscdevice.h include
  scsi: zfcp: use setup_timer instead of init_timer
  scsi: zfcp: replace zfcp_qdio_sbale_count by sg_nents
  scsi: libcxgbi: use ndev->ifindex to find route
  scsi: mpt3sas: Fix memory allocation failure test in 'mpt3sas_base_attach()'
  scsi: aic7xxx: regenerate firmware files
  PM / s2idle: Rename platform operations structure
  PM / s2idle: Rename ->enter_freeze to ->enter_s2idle
  PM / s2idle: Rename freeze_state enum and related items
  PM / s2idle: Rename PM_SUSPEND_FREEZE to PM_SUSPEND_TO_IDLE
  arch/sparc: Add accurate exception reporting in M7memcpy
  arch/sparc: Optimized memcpy, memset, copy_to_user, copy_from_user for M7/M8
  arch/sparc: Rename exception handlers
  arch/sparc: Separate the exception handlers from NG4memcpy
  sparc64: update comments in U3memcpy
  MAINTAINERS: fpga: Update email and add patchwork URL
  fpga: altera-hps2fpga: fix multiple init of l3_remap_lock
  fpga: altera-hps2fpga: add NULL check on of_match_device() return value
  ARM: socfpga: explicitly request exclusive reset control
  fpga: Convert to using %pOF instead of full_name
  PCI: Add ACS quirk for APM X-Gene devices
  doc: linux-wpan: Change the old function names to the lastest function names
  drm/i915/cnl: Add slice and subslice information to debugfs.
  drm/i915/gen10: fix WM latency printing
  drm/i915/gen10: fix the gen 10 SAGV block time
  drm/i915/cnl: Enable SAGV for Cannonlake.
  drm/i915/gen10+: use the SKL code for reading WM latencies
  drm/i915: Avoid null dereference if mst_port is unset.
  test_firmware: add batched firmware tests
  firmware: enable a debug print for batched requests
  firmware: define pr_fmt
  firmware: send -EINTR on signal abort on fallback mechanism
  test_firmware: add test case for SIGCHLD on sync fallback
  drm/i915/perf: Drop redundant check for perf.initialised on reset
  drm/i915/perf: Drop lockdep assert for i915_oa_init_reg_state()
  drm/i915/perf: Initialise dynamic sysfs group before creation
  PCI: Constify bin_attribute structures
  PCI: Constify hotplug pci_device_id structures
  PCI: Constify hotplug attribute_group structures
  PCI: Constify label attribute_group structures
  PCI: Constify sysfs attribute_group structures
  microblaze/PCI: Remove pcibios_setup_bus_{self/devices} dead code
  drm/i915: add register macro definition style guide
  drm/i915: enum i915_power_well_id is not proper kernel-doc
  Documentation/i915: remove sphinx conversion artefact
  dt-bindings: Add vendor prefix for Adaptrum, Inc.
  vfio/type1: Give hardware MSI regions precedence
  vfio/type1: Cope with hardware MSI reserved regions
  MAINTAINERS: update the NetLabel and Labeled Networking information
  MAINTAINERS: add entry for mediatek usb3 DRD IP driver
  usb: mtu3: add a vbus debugfs interface
  usb: imx21-hcd: fix error return code in imx21_probe()
  usb: ehci-omap: fix error return code in ehci_hcd_omap_probe()
  usb: gadget: fsl_qe_udc: constify qe_ep0_desc
  usb: atm: ueagle-atm: constify attribute_group structures.
  usb: chipidea: constify attribute_group structures.
  usb: usbtmc: constify attribute_group structures.
  usb: phy-mv-usb: constify attribute_group structures.
  usb: wusbcore: dev-sysfs: constify attribute_group structures.
  usb: wusbcore: wusbhc: constify attribute_group structures.
  usb: wusbcore: cbaf: constify attribute_group structures.
  usb: phy-tahvo: constify attribute_group structures.
  usb: usbsevseg: constify attribute_group structures.
  usb: hcd: constify attribute_group structures.
  usb: chipidea: otg_fsm: constify attribute_group structures.
  uwb: lc-rc: constify attribute_group structures.
  usb/dwc3:constify dev_pm_ops
  usb: gadget: f_uac2: constify snd_pcm_ops structures
  USB: atm: make atmdev_ops const
  usb: speedtch: constify usb_device_id
  usb: hwa-hc: constify usb_device_id
  x86/hyper-v: Use hypercall for remote TLB flush
  PCI: Inline and remove pcibios_update_irq()
  ARM: omap2plus_defconfig: enable DP83867 phy driver
  ARM: dts: dra72-evm-revc: workaround incorrect DP83867 RX_CTRL pin strap
  ARM: dts: dra71-evm: workaround incorrect DP83867 RX_CTRL pin strap
  arm64: compat: Remove leftover variable declaration
  ACPI/IORT: Fix build regression without IOMMU
  arm64: fix pmem interface definition
  drm/i915: Add format modifiers for Intel
  drm/i915: Add render decompression support
  drm/i915: Implement .get_format_info() hook for CCS
  ARM: dts: Add dra7 iodelay configuration
  ARM: OMAP2+: Select PINCTRL_TI_IODELAY for SOC_DRA7XX
  ARM: configs: keystone: Enable D_CAN driver
  selftests: add rtnetlink test script
  rtnetlink: fallback to UNSPEC if current family has no doit callback
  rtnetlink: init handler refcounts to 1
  rtnetlink: switch rtnl_link_get_slave_info_data_size to rcu
  rtnetlink: do not use RTM_GETLINK directly
  rtnetlink: use rcu_dereference_raw to silence rcu splat
  ARM: dts: k2g: Add DCAN nodes
  dt-bindings: net: c_can: Update binding for clock and power-domains property
  sparc64: Revert 16GB huge page support.
  arm64: perf: add support for Cortex-A35
  arm64: perf: add support for Cortex-A73
  arm64: perf: Remove redundant entries from CPU-specific event maps
  arm64: perf: Connect additional events to pmu counters
  ARM: dts: tps65217: Add power button interrupt to the common tps65217.dtsi file
  ARM: dts: tps65217: Add charger interrupts to the common tps65217.dtsi file
  net: core: fix compile error inside flow_dissector due to new dsa callback
  ARM: dts: omap*: Replace deprecated "vmmc_aux" with "vqmmc"
  ARM: OMAP2+: Add pdata-quirks for MMC/SD on DRA74x EVM
  ALSA: trident: constify snd_pcm_ops structures
  ALSA: sis7019: constify snd_pcm_ops structures
  ALSA: intel8x0m: constify snd_pcm_ops structures
  ALSA: intel8x0: constify snd_pcm_ops structures
  ALSA: echoaudio: constify snd_pcm_ops structures
  ALSA: au88x0: constify snd_pcm_ops structures
  ALSA: ali5451: constify snd_pcm_ops structures
  ALSA: emux: Delete two error messages for a failed memory allocation in snd_emux_create_port()
  ALSA: emux: Adjust four checks for null pointers
  ALSA: emux: Improve a size determination in two functions
  ALSA: emux: Adjust one function call together with a variable assignment
  gfs2: forcibly flush ail to relieve memory pressure
  gfs2: Clean up waiting on glocks
  gfs2: Defer deleting inodes under memory pressure
  gfs2: gfs2_evict_inode: Put glocks asynchronously
  gfs2: Get rid of gfs2_set_nlink
  ASoC: use snd_soc_rtdcom_add() and convert to consistent operation
  gfs2: gfs2_glock_get: Wait on freeing glocks
  ASoC: soc-core: add snd_soc_rtdcom_xxx()
  x86/cpu/amd: Derive L3 shared_cpu_map from cpu_llc_shared_mask
  x86/cpu/amd: Limit cpu_core_id fixup to families older than F17h
  x86: Clarify/fix no-op barriers for text_poke_bp()
  ASoC: rsnd: Delete an error message for a failed memory allocation in three functions
  ASoC: codecs: msm8916-wcd-analog: move codec reset to probe
  ASoC: compress: Delete error messages for a failed memory allocation in snd_soc_new_compress()
  ARM: OMAP2+: Remove unused legacy code for DMA
  x86/switch_to/64: Rewrite FS/GS switching yet again to fix AMD CPUs
  selftests/x86/fsgsbase: Test selectors 1, 2, and 3
  x86/fsgsbase/64: Report FSBASE and GSBASE correctly in core dumps
  x86/fsgsbase/64: Fully initialize FS and GS state in start_thread_common
  ARM: dts: am572x-idk: Fix GPIO polarity for MMC1 card detect
  ARM: dts: am571x-idk: Fix GPIO polarity for MMC1 card detect
  ASoC: codecs: add const to snd_soc_codec_driver structures
  ASoC: rsnd: call request_irq/free_irq once in MIX case
  ASoC: rsnd: add rsnd_ssi_flags_has/add() macro
  ASoC: rsnd: call free_irq() both DMA/PIO mode
  ARM: OMAP2+: omap_device: drop broken RPM status update from suspend_noirq
  sched/autogroup: Fix error reporting printk text in autogroup_create()
  ASoC: spear: Delete an error message for a failed memory allocation in two functions
  spi: qup: fix 64-bit build warning
  hyper-v: Globalize vp_index
  x86/hyper-v: Implement rep hypercalls
  hyper-v: Use fast hypercall for HVCALL_SIGNAL_EVENT
  x86/hyper-v: Introduce fast hypercall implementation
  x86/hyper-v: Make hv_do_hypercall() inline
  x86/hyper-v: Include hyperv/ only when CONFIG_HYPERV is set
  spi: qup: hide warning for uninitialized variable
  kvm: nVMX: Add support for fast unprotection of nested guest page tables
  KVM: SVM: Limit PFERR_NESTED_GUEST_PAGE error_code check to L1 guest
  KVM: X86: Fix residual mmio emulation request to userspace
  kprobes/x86: Do not jump-optimize kprobes on irq entry code
  irq: Make the irqentry text section unconditional
  cris: Mark _stext and _end as char-arrays, not single char variables
  xtensa: Mark _stext and _end as char-arrays, not single char variables
  h8300: Mark _stext and _etext as char-arrays, not single char variables
  block: remove unused syncfull/asyncfull queue flags
  powerpc/xive: Fix section mismatch warnings
  powerpc/mm: Fix section mismatch warning in early_check_vec5()
  powerpc/8xx: Remove cpu dependent macro instructions from head_8xx
  powerpc/8xx: Use symbolic names for DSISR bits in DSI
  powerpc/8xx: Use symbolic PVR value
  powerpc/8xx: remove CONFIG_8xx
  powerpc/8xx: Getting rid of remaining use of CONFIG_8xx
  powerpc/kconfig: Simplify PCI_QSPAN selection
  powerpc/time: refactor MFTB() to limit number of ifdefs
  powerpc/8xx: Move mpc8xx_pic.c from sysdev to platform/8xx
  powerpc/cpm1: link to CONFIG_CPM1 instead of CONFIG_8xx
  powerpc/8xx: Remove SoftwareEmulation()
  powerpc/8xx: Move 8xx machine check handlers into platforms/8xx
  powerpc/8xx: Simplify CONFIG_8xx checks in Makefile
  powerpc/traps: Use SRR1 defines for program check reasons
  powerpc/mce: Move 64-bit machine check code into mce.c
  powerpc/traps: machine_check_generic() is only used on 32-bit
  powerpc/traps: Inline get_mc_reason()
  powerpc/4xx: Move machine_check_4xx() into platforms/4xx
  powerpc/4xx: Create 4xx pseudo-platform in platforms/4xx
  powerpc/44x: Move 44x machine check handlers into platforms/44x
  powerpc/44x: Simplify CONFIG_44x checks in Makefile
  powerpc/47x: Guard 47x cputable entries with CONFIG_PPC_47x
  powerpc/powernv: Add support to clear sensor groups data
  powerpc/powernv: Add support to set power-shifting-ratio
  powerpc/powernv: Add support for powercap framework
  powerpc/pseries: Don't print failure message in energy driver
  powerpc/lib/sstep: Add isel instruction emulation
  powerpc/lib/sstep: Add prty instruction emulation
  powerpc/lib/sstep: Add bpermd instruction emulation
  powerpc/lib/sstep: Add popcnt instruction emulation
  powerpc/lib/sstep: Add cmpb instruction emulation
  powerpc/perf: Cleanup of PM_BR_CMPL vs. PM_BRU_CMPL in Power9 event list
  powerpc/perf: Add PM_LD_MISS_L1 and PM_BR_2PATH to power9 event list
  powerpc/perf: Factor out PPMU_ONLY_COUNT_RUN check code from power8
  powerpc/perf: Update default sdar_mode value for power9
  powerpc/44x/fsp2: Enable eMMC arasan for fsp2 platform
  powerpc/mm: Properly invalidate when setting process table base
  powerpc/xive: Ensure active irqd when setting affinity
  powerpc: Add irq accounting for watchdog interrupts
  powerpc: Add irq accounting for system reset interrupts
  powerpc: Fix powerpc-specific watchdog build configuration
  powerpc/64s: Fix mce accounting for powernv
  powerpc/pseries: Check memory device state before onlining/offlining
  powerpc: Fix invalid use of register expressions
  x86/platform/intel-mid: Make 'bt_sfi_data' const
  x86/build: Drop unused mflags-y
  x86/asm: Fix UNWIND_HINT_REGS macro for older binutils
  sched/fair: Fix wake_affine() for !NUMA_BALANCING
  drm/i915: Supply the engine-id for our mock_engine()
  x86/asm/32: Fix regs_get_register() on segment registers
  x86/xen/64: Rearrange the SYSCALL entries
  locking/lockdep: Add 'crossrelease' feature documentation
  locking/lockdep: Apply crossrelease to completions
  locking/lockdep: Make print_circular_bug() aware of crossrelease
  locking/lockdep: Handle non(or multi)-acquisition of a crosslock
  locking/lockdep: Detect and handle hist_lock ring buffer overwrite
  locking/lockdep: Implement the 'crossrelease' feature
  locking/lockdep: Make check_prev_add() able to handle external stack_trace
  locking/lockdep: Change the meaning of check_prev_add()'s return value
  locking/lockdep: Add a function building a chain between two classes
  locking/lockdep: Refactor lookup_chain_cache()
  locking/lockdep: Avoid creating redundant links
  locking/lockdep: Rework FS_RECLAIM annotation
  locking: Remove smp_mb__before_spinlock()
  locking: Introduce smp_mb__after_spinlock()
  overlayfs, locking: Remove smp_mb__before_spinlock() usage
  mm, locking: Rework {set,clear,mm}_tlb_flush_pending()
  Documentation/locking/atomic: Add documents for new atomic_t APIs
  clocksource/arm_arch_timer: Use static_branch_enable_cpuslocked()
  jump_label: Provide hotplug context variants
  jump_label: Split out code under the hotplug lock
  jump_label: Move CPU hotplug locking
  jump_label: Add RELEASE barrier after text changes
  cpuset: Make nr_cpusets private
  jump_label: Do not use unserialized static_key_enabled()
  jump_label: Fix concurrent static_key_enable/disable()
  locking/rwsem-xadd: Add killable versions of rwsem_down_read_failed()
  locking/rwsem-spinlock: Add killable versions of __down_read()
  locking/osq_lock: Fix osq_lock queue corruption
  locking/atomic: Fix atomic_set_release() for 'funny' architectures
  sched/wait: Remove the lockless swait_active() check in swake_up*()
  RDMA/netlink: Export node_type
  RDMA/netlink: Provide port state and physical link state
  RDMA/netlink: Export LID mask control (LMC)
  RDMA/netink: Export lids and sm_lids
  RDMA/netlink: Advertise IB subnet prefix
  RDMA/netlink: Export node_guid and sys_image_guid
  RDMA/netlink: Export FW version
  RDMA: Simplify get firmware interface
  RDMA/netlink: Expose device and port capability masks
  RDMA/netlink: Implement nldev port doit callback
  RDMA/netlink: Add nldev port dumpit implementation
  RDMA/netlink: Add nldev device doit implementation
  RDMA/netlink: Implement nldev device dumpit calback
  RDMA/netlink: Add nldev initialization flows
  RDMA/netlink: Add netlink device definitions to UAPI
  RDMA/netlink: Update copyright
  RDMA/netlink: Convert LS to doit callback
  RDMA/netlink: Reduce indirection access to cb_table
  RDMA/netlink: Add and implement doit netlink callback
  RDMA/core: Add and expose static device index
  RDMA/core: Add iterator over ib_devices
  RDMA/netlink: Rename netlink callback struct
  RDMA/netlink: Simplify and rename ibnl_chk_listeners
  RDMA/netlink: Rename and remove redundant parameter from ibnl_multicast
  RDMA/netlink: Rename and remove redundant parameter from ibnl_unicast*
  RDMA/netlink: Simplify the put_msg and put_attr
  RDMA/netlink: Add flag to consolidate common handling
  sched/debug: Intruduce task_state_to_char() helper function
  sched/debug: Show task state in /proc/sched_debug
  sched/debug: Use task_pid_nr_ns in /proc/$pid/sched
  sched/core: Remove unnecessary initialization init_idle_bootup_task()
  sched/deadline: Change return value of cpudl_find()
  sched/deadline: Make find_later_rq() choose a closer CPU in topology
  sched/numa: Scale scan period with tasks in group and shared/private
  sched/numa: Slow down scan rate if shared faults dominate
  sched/pelt: Fix false running accounting
  sched: Mark pick_next_task_dl() and build_sched_domain() as static
  sched/cpupri: Don't re-initialize 'struct cpupri'
  sched/deadline: Don't re-initialize 'struct cpudl'
  sched/topology: Drop memset() from init_rootdomain()
  sched/fair: Drop always true parameter of update_cfs_rq_load_avg()
  sched/fair: Avoid checking cfs_rq->nr_running twice
  sched/fair: Pass 'rq' to weighted_cpuload()
  sched/core: Reuse put_prev_task()
  sched/fair: Call cpufreq update util handlers less frequently on UP
  RDMA/iwcm: Remove extra EXPORT_SYMBOLS
  RDMA/iwcm: Remove useless check of netlink client validity
  RDMA/netlink: Avoid double pass for RDMA netlink messages
  RDMA/netlink: Remove redundant owner option for netlink callbacks
  RDMA/netlink: Remove netlink clients infrastructure
  perf/core: Reduce context switch overhead
  perf/x86/amd/uncore: Get correct number of cores sharing last level cache
  perf/x86/amd/uncore: Rename cpufeatures macro for cache counters
  arm64: uaccess: Add the uaccess_flushcache.c file
  HID: usbmouse: constify usb_device_id and fix space before '[' error
  HID: usbkbd: constify usb_device_id and fix space before '[' error.
  mwifiex: uap: enable 11d based on userspace configruation
  clk: samsung: exynos542x: Enable clock rate propagation up to the EPLL
  zd1211rw: constify usb_device_id
  zd1201: constify usb_device_id
  rtl8192cu: constify usb_device_id
  rtl8xxxu: constify usb_device_id
  rtl8187: constify usb_device_id
  rt73usb: constify usb_device_id
  rt2800usb: constify usb_device_id
  rt2500usb: constify usb_device_id
  mt7601u: constify usb_device_id
  mwifiex: constify usb_device_id
  libertas_tf: constify usb_device_id
  libertas: constify usb_device_id
  p54: constify usb_device_id
  orinoco: constify usb_device_id
  at76c50x: constify usb_device_id
  carl9170: constify usb_device_id
  ar5523: constify usb_device_id
  arm64: allwinner: a64: add proper support for the Wi-Fi on BPi M64
  arm64: allwinner: a64: enable AXP803 for Banana Pi M64
  arm64: allwinner: a64: enable USB host controller for BPi M64
  net-next: dsa: fix flow dissection
  net-next: tag_mtk: add flow_dissect callback to the ops struct
  net-next: dsa: add flow_dissect callback to struct dsa_device_ops
  net-next: dsa: move struct dsa_device_ops to the global header file
  net-next: mediatek: bring up QDMA RX ring 0
  net-next: mediatek: fix typos inside the header file
  net: atm: make atmdev_ops const
  atm: make atmdev_ops const
  net: dsa: make dsa_switch_ops const
  liquidio: napi cleanup
  net: ipv6: lower ndisc notifier priority below addrconf
  ibmvnic: Correct 'unused variable' warning in build.
  ibmvnic: Add netdev_dbg output for debugging
  ibmvnic: Clean up resources on probe failure
  sparc64: Use CPU_POKE to resume idle cpu
  sparc64: Add a new hypercall CPU_POKE
  sparc64: Cleanup hugepage table walk functions
  sparc64: Add 16GB hugepage support
  sparc64: Support huge PUD case in get_user_pages
  f2fs: add app/fs io stat
  drm/i915/gvt: Add shadow context descriptor updating
  drm/i915/gvt: expose vGPU context hw id
  drm/i915/gvt: Refine the intel_vgpu_reset_gtt reset function
  drm/i915/gvt: Add carefully checking in GTT walker paths
  drm/i915/gvt: Remove duplicated MMIO entries
  drm/i915/gvt: take runtime pm when do early scan and shadow
  drm/i915/gvt: Replace duplicated code with exist function
  drm/i915/gvt: To check whether workload scan and shadow has mutex hold
  drm/i915/gvt: Audit and shadow workload during ELSP writing
  drm/i915/gvt: Factor out scan and shadow from workload dispatch
  drm/i915/gvt: Optimize ring siwtch 2x faster again by light weight mmio access wrapper
  drm/i915/gvt: Optimize ring siwtch 2x faster by removing unnecessary POSTING_READ
  drm/i915/gvt: Use gvt_err to print the resource not enough error
  f2fs: do not change the valid_block value if cur_valid_map was wrongly set or cleared
  f2fs: update cur_valid_map_mir together with cur_valid_map
  net: call newid/getid without rtnl mutex held
  rtnetlink: add RTNL_FLAG_DOIT_UNLOCKED
  rtnetlink: protect handler table with rcu
  rtnetlink: small rtnl lock pushdown
  rtnetlink: add reference counting to prevent module unload while dump is in progress
  rtnetlink: make rtnl_register accept a flags parameter
  rtnetlink: call rtnl_calcit directly
  bpf: add test cases for new BPF_J{LT, LE, SLT, SLE} instructions
  bpf: enable BPF_J{LT, LE, SLT, SLE} opcodes in verifier
  bpf, nfp: implement jiting of BPF_J{LT,LE}
  bpf, ppc64: implement jiting of BPF_J{LT, LE, SLT, SLE}
  bpf, s390x: implement jiting of BPF_J{LT, LE, SLT, SLE}
  bpf, sparc64: implement jiting of BPF_J{LT, LE, SLT, SLE}
  bpf, arm64: implement jiting of BPF_J{LT, LE, SLT, SLE}
  bpf, x86: implement jiting of BPF_J{LT,LE,SLT,SLE}
  bpf: add BPF_J{LT,LE,SLT,SLE} instructions
  sock: fix zerocopy_success regression with msg_zerocopy
  sock: fix zerocopy panic in mem accounting
  ACPI / LPSS: Don't abort ACPI scan on missing mem resource
  mailbox: pcc: Drop uninformative output during boot
  dt-bindings: display: imx: fix parallel display interface-pix-fmt property
  cpufreq: mediatek: add support of cpufreq to MT7622 SoC
  cpufreq: mediatek: add cleanups with the more generic naming
  cpufreq: Return 0 from ->fast_switch() on errors
  cpufreq: intel_pstate: Shorten a couple of long names
  cpufreq: intel_pstate: Simplify intel_pstate_adjust_pstate()
  iommu: Finish making iommu_group support mandatory
  iommu/tegra-gart: Add iommu_group support
  iommu/tegra-smmu: Add iommu_group support
  iommu/msm: Add iommu_group support
  selftests: warn if failure is due to lack of executable bit
  HID: hid-sensor-hub: Force logical minimum to 1 for power and report state
  blk-mq: enable checking two part inflight counts at the same time
  blk-mq: provide internal in-flight variant
  block: make part_in_flight() take an array of two ints
  block: pass in queue to inflight accounting
  blk-mq-tag: check for NULL rq when iterating tags
  dma-buf: dma_fence_put is NULL safe
  iwlwifi: mvm: fix the coex firmware API
  iwlwifi: pcie: free the TSO page when a Tx queue is unmapped on A000 devices
  iwlwifi: remove references to unsupported HW
  iwlwifi: fix nmi triggering from host
  iwlwifi: pcie: don't init a Tx queue with an SSN > size of the queue
  iwlwifi: mvm: add station before allocating a queue
  iwlwifi: mvm: don't send CTDP commands via debugfs if not supported
  iwlwifi: mvm: support new beacon template command
  md/raid6: implement recovery using ARM NEON intrinsics
  md/raid6: use faster multiplication for ARM NEON delta syndrome
  drm/i915/psr: Preserve SRD_CTL bit 29 on PSR init
  ASoC: rsnd: avoid duplicate free_irq()
  ASoC: rsnd: remove 16ch support for now
  ASoC: rt5514: Eliminate the noise in the ASRC case
  spi: spi-ep93xx: use the default master transfer queueing mechanism
  spi: spi-ep93xx: remove private data 'current_msg'
  spi: spi-ep93xx: pass the spi_master pointer around
  spi: spi-ep93xx: absorb the interrupt enable/disable helpers
  spi: spi-ep93xx: add spi master prepare_transfer_hardware()
  spi: spi-ep93xx: use 32-bit read/write for all registers
  spi: spi-ep93xx: remove io wrappers
  arm64: dts: uniphier: use cross-arch include instead of symlinks
  arm64: dts: uniphier: use #include instead of /include/
  ARM: dts: uniphier: remove sLD3 SoC support
  drm: make drm_mode_config_func const
  selftests: kselftest framework: add error counter
  drm/virtio: make drm_fb_helper_funcs const
  drm/rockchip: make drm_connector_funcs structures const
  drm/sun4i: make drm_connector_funcs structures const
  drm/bridge: make drm_connector_funcs structures const
  spi: spi-sh: fix error return code in spi_sh_probe()
  media: ddbridge: split code into multiple files
  media: ddbridge: move/reorder functions
  dm-crypt: don't mess with BIP_BLOCK_INTEGRITY
  bio-integrity: move the bio integrity profile check earlier in bio_integrity_prep
  power: supply: Fix power_supply_am_i_supplied to return -ENODEV when apropriate
  drm/tinydrm: Generalize tinydrm_xrgb8888_to_gray8()
  ARM: dts: uniphier: add audio out pin-mux node
  power: supply: add const to bin_attribute structures
  media: vs6624: constify vs6624_default_fmt
  media: ov13858: Increase digital gain granularity, range
  media: ov13858: Correct link-frequency and pixel-rate
  media: ov13858: Fix initial expsoure max
  media: ov13858: Set default fps as current fps
  clk: samsung: Add CLK_SET_RATE_PARENT to some AUDSS CLK CON clocks
  clk: samsung: Fix mau_epll clock definition for exynos5422
  media: cx231xx: only unregister successfully registered i2c adapters
  media: staging: media: atomisp: constify video_subdev structures
  media: staging: media: atomisp: remove trailing whitespace
  media: staging: media: atomisp: i2c: gc0310: fixed brace coding style issue
  media: staging: media: atomisp: constify videobuf_queue_ops structures
  media: staging: media: atomisp: use kvmalloc/kvzalloc
  media: MAINTAINERS: add entry for meson ao cec driver
  media: platform: Add Amlogic Meson AO CEC Controller driver
  media: dt-bindings: media: Add Amlogic Meson AO-CEC bindings
  media: v4l2-compat-ioctl32: Fix timespec conversion
  gfs2: Fix trivial typos
  GFS2: Delete debugfs files only after we evict the glocks
  GFS2: Don't waste time locking lru_lock for non-lru glocks
  GFS2: Don't bother trying to add rgrps to the lru list
  GFS2: Clear gl_object when deleting an inode in gfs2_delete_inode
  GFS2: Clear gl_object if gfs2_create_inode fails
  media: v4l2-compat-ioctl32: Copy v4l2_window->global_alpha
  media: adv7604: Prevent out of bounds access
  media: DaVinci-VPBE: constify vpbe_dev_ops
  media: solo6x10: export hardware GPIO pins 8:31 to gpiolib interface
  media: cx231xx: drop return value of cx231xx_i2c_unregister
  drm: Shift wrap bug in create_in_format_blob()
  media: cx231xx: fail probe if i2c_add_adapter fails
  arm64: neon: Forbid when irqs are disabled
  media: saa7146: hexium_gemini: constify pci_device_id
  media: saa7146: hexium_orion: constify pci_device_id
  media: saa7146: mxb: constify pci_device_id
  media: ttpci: av7110: constify pci_device_id
  media: ttpci: budget-av: constify pci_device_id
  media: ttpci: budget-ci: constify pci_device_id
  media: ttpci: budget-patch: constify pci_device_id
  media: ttpci: budget: constify pci_device_id
  media: drv-intf: saa7146: constify pci_device_id
  media: radio: constify pci_device_id
  media: cx18: constify pci_device_id
  media: mantis: hopper_cards: constify pci_device_id
  media: mantis: constify pci_device_id
  media: pt1: constify pci_device_id
  media: saa7164: constify pci_device_id
  media: b2c2: constify pci_device_id
  media: cobalt: constify pci_device_id
  media: ivtv: constify pci_device_id
  media: bt8xx: bttv: constify pci_device_id
  media: bt8xx: constify pci_device_id
  media: zoran: constify pci_device_id
  media: dm1105: constify pci_device_id
  media: pluto2: constify pci_device_id
  media: meye: constify pci_device_id
  media: cx23885: constify pci_device_id
  media: netup_unidvb: constify pci_device_id
  media: marvell-ccic: constify pci_device_id
  media: cec-api: log the reason for the -EINVAL in cec_s_mode
  media: cec-ioc-g-mode.rst: improve description of message, processing
  media: cec-ioc-adap-g-log-addrs.rst: fix wrong quotes
  media: adv*/vivid/pulse8/rainshadow: cec: use CEC_CAP_DEFAULTS
  media: media/cec.h: add CEC_CAP_DEFAULTS
  media: cec-funcs.h: cec_ops_report_features: set *dev_features to NULL
  iio: tools: add install section
  iio: tools: move to tools buildsystem
  iio: adc: ti-ads7950: Add OF device ID table
  iio: adc: stm32: add optional st,min-sample-time-nsecs
  dt-bindings: iio: adc: stm32: add optional st,min-sample-time-nsecs
  arm64: unwind: remove sp from struct stackframe
  s390/scm: use common completion path
  s390/pci: log changes to uid checking
  s390/vmcp: simplify vmcp_ioctl()
  s390/vmcp: return -ENOTTY for unknown ioctl commands
  s390/vmcp: split vmcp header file and move to uapi
  s390/vmcp: make use of contiguous memory allocator
  s390/cpcmd,vmcp: avoid GFP_DMA allocations
  s390/vmcp: fix uaccess check and avoid undefined behavior
  s390/mm: prevent memory offline for memory blocks with cma areas
  s390/mm: add missing virt_to_pfn() etc. helper functions
  RDMA/core: Add wait/retry version of ibnl_unicast
  arm64: unwind: reference pt_regs via embedded stack frame
  crypto: af_alg - consolidation of duplicate code
  crypto: caam - Remove unused dentry members
  crypto: ccp - select CONFIG_CRYPTO_RSA
  crypto: ccp - avoid uninitialized variable warning
  crypto: serpent - improve __serpent_setkey with UBSAN
  crypto: algif_aead - copy AAD from src to dst
  crypto: algif - return error code when no data was processed
  arm64/vdso: Support mremap() for vDSO
  arm64: uaccess: Implement *_flushcache variants
  arm64: Implement pmem API support
  drm: bridge: dw-hdmi: constify snd_pcm_ops structures
  drm/bridge: make drm_bridge_funcs const
  usb: gadget: udc: renesas_usb3: add support for R-Car H3 ES2.0
  usb: gadget: udc: renesas_usb3: add debugfs to set the b-device mode
  MAINTAINERS: add entry for mediatek usb3 DRD IP driver
  usb: mtu3: add a vbus debugfs interface
  usb: dwc3: keystone: Add PM_RUNTIME Support to DWC3 Keystone USB driver
  usb: dwc3: omap: fix error return code in dwc3_omap_probe()
  usb: dwc3: pci: constify dev_pm_ops
  usb: gadget: udc: renesas_usb3: fix error return code in renesas_usb3_probe()
  usb: gadget: f_uac2: constify snd_pcm_ops structures
  arm64: Handle trapped DC CVAP
  arm64: Expose DC CVAP to userspace
  arm64: Convert __inval_cache_range() to area-based
  arm64: mm: Fix set_memory_valid() declaration
  ARM: shmobile: Enable BQ32000 rtc in shmobile_defconfig
  iwlwifi: mvm: set the default cTDP budget
  iwlwifi: mvm: move a000 device NVM retrieval to a common place
  iwlwifi: dump smem configuration when firmware crashes
  iwlwifi: fix a000 RF_ID define
  iwlwifi: add support of FPGA fw
  iwlwifi: fix a few instances of misaligned kerneldoc parameters
  iwlwifi: change functions that can only return 0 to void
  iwlwifi: mvm: add debugfs to force CT-kill
  iwlwifi: mvm: add const to thermal_cooling_device_ops structure
  iwlwifi: mvm: use firmware LED command where applicable
  iwlwifi: mvm: remove useless condition in LED code
  net: ipv6: avoid overhead when no custom FIB rules are installed
  isdn: hfcsusb: constify usb_device_id
  isdn: hisax: hfc_usb: constify usb_device_id
  qmi_wwan: fix NULL deref on disconnect
  net: phy: mdio-bcm-unimac: fix unsigned wrap-around when decrementing timeout
  cxgb4: Clear On FLASH config file after a FW upgrade
  net_sched: get rid of some forward declarations
  net: dsa: lan9303: Only allocate 3 ports
  selftests: bpf: add a test for XDP redirect
  liquidio: fix misspelled firmware image filenames
  bpf: Extend check_uarg_tail_zero() checks
  bpf: Move check_uarg_tail_zero() upward
  netvsc: make sure and unregister datapath
  igb: support BCM54616 PHY
  liquidio: fix wrong info about vf rx/tx ring parameters reported to ethtool
  igbvf: convert msleep to mdelay in atomic context
  igbvf: after mailbox write, wait for reply
  igbvf: add lock around mailbox ops
  e1000e: Initial Support for IceLake
  igb: do not drop PF mailbox lock after read of VF message
  bpf/verifier: increase complexity limit to 128k
  Documentation: describe the new eBPF verifier value tracking behaviour
  selftests/bpf: variable offset negative tests
  selftests/bpf: add tests for subtraction & negative numbers
  selftests/bpf: don't try to access past MAX_PACKET_OFF in test_verifier
  selftests/bpf: add test for bogus operations on pointers
  selftests/bpf: add a test to test_align
  selftests/bpf: rewrite test_align
  selftests/bpf: change test_verifier expectations
  bpf/verifier: more concise register state logs for constant var_off
  bpf/verifier: track signed and unsigned min/max values
  bpf/verifier: rework value tracking
  igb: expose mailbox unlock method
  igb: add argument names to mailbox op function declarations
  net: usb: rtl8150: constify usb_device_id
  net: usb: r8152: constify usb_device_id
  net: usb: kaweth: constify usb_device_id
  net: usb: ipheth: constify usb_device_id
  net: usb: cdc-phonet: constify usb_device_id
  net: usb: catc: constify usb_device_id and fix space before '[' error
  net: irda: stir4200: constify usb_device_id
  net: irda: mcs7780: constify usb_device_id
  net: irda: ksdazzle: constify usb_device_id
  net: irda: ks959: constify usb_device_id
  net: irda: kingsun: constify usb_device_id
  net: irda: irda-usb: constify usb_device_id
  igb: Remove incorrect "unexpected SYS WRAP" log message
  e1000e: add check on e1e_wphy() return value
  igb: protect TX timestamping from API misuse
  igb: Fix error of RX network flow classification
  soc: qcom: mdt_loader: Use request_firmware_into_buf()
  ARM: dts: meson6: use stable UART bindings
  ARM64: dts: meson-gx: use stable UART bindings with correct gate clock
  arm64: dts: qcom: msm8996: Specify smd-edge for ADSP
  arm64: dts: msm8996: Add modem smp2p nodes
  arm64: dts: qcom: db820c: Add pm8994 regulator node
  arm64: dts: qcom: Add RPM glink nodes to msm8996
  arm64: dts: msm8996: Add device node for qcom,dwc3
  arm64: dts: msm8996: Add device node for qcom qmp-phy for pcie
  arm64: dts: msm8996: Add device node for qcom qmp-phy for usb
  arm64: dts: msm8996: Add device node for qcom qusb2 phy
  arm64: dts: qcom: add cec clock for apq8016 board
  arm64: dts: pmi8994: Add device node for pmi8994 gpios
  arm64: dts: qcom-msm8916: dts: Update coresight replicator
  arm64: dts: qcom: Force host mode for USB on apq8016-sbc
  drm/vc4: Add exec flags to allow forcing a specific X/Y tile walk order.
  drm/vc4: Demote user-accessible DRM_ERROR paths to DRM_DEBUG.
  drm/vc4: switch to drm_*{get,put} helpers
  drm/vc4: Fix errant drm_bridge_remove() in DSI.
  drm/vc4: Don't disable DSI clocks on component unload.
  drm/vc4: Fix double destroy of the BO cache on teardown.
  drm/i915/cnl: Removing missing DDI_E bits from CNL.
  ARM: dts: qcom: add and enable both wifi blocks on the IPQ4019
  ARM: dts: qcom-msm8974: dts: Update coresight replicator
  ARM: dts: qcom: add pseudo random number generator on the IPQ4019
  ARM: dts: ipq4019: Move xo and timer nodes to SoC dtsi
  ARM: dts: ipq4019: Fix pinctrl node name
  dt-bindings: qcom: Add IPQ8074 bindings
  soc: qcom: bring all qcom drivers into a submenu
  soc: qcom: wcnss_ctrl: add missing MODULE_DEVICE_TABLE()
  soc: qcom: smsm: fix of_node refcnting problem
  nvme-rdma: use intelligent affinity based queue mappings
  block: Add rdma affinity based queue mapping helper
  mlx5: support ->get_vector_affinity
  RDMA/core: expose affinity mappings per completion vector
  mlx5: move affinity hints assignments to generic code
  mlx5e: don't assume anything on the irq affinity mappings of the device
  mlx5: convert to generic pci_alloc_irq_vectors
  IB/CM: Set appropriate slid and dlid when handling CM request
  IB/CM: Create appropriate path records when handling CM request
  IB/CM: Add OPA Path record support to CM
  IB/core: Change wc.slid from 16 to 32 bits
  IB/core: Change port_attr.sm_lid from 16 to 32 bits
  IB/core: Change port_attr.lid size from 16 to 32 bits
  IB/mad: Change slid in RMPP recv from 16 to 32 bits
  IB/IPoIB: Increase local_lid to 32 bits
  IB/srpt: Increase lid and sm_lid to 32 bits
  IB/core: Convert ah_attr from OPA to IB when copying to user
  wil6210: move vring_idle_trsh definition to wil6210_priv
  wil6210: store FW RF calibration result
  wil6210: fix interface-up check
  wil6210: notify wiphy on wowlan support
  wil6210: add statistics for suspend time
  wil6210: check no_fw_recovery in resume failure recovery
  wil6210: support FW RSSI reporting
  wil6210: protect against invalid length of tx management frame
  arm64: perf: Allow standard PMUv3 events to be extended by the CPU type
  clk: rockchip: add special approximation to fix up fractional clk's jitter
  ACPI/IORT: numa: Add numa node mapping for smmuv3 devices
  clk: fractional-divider: allow overriding of approximation
  clk: rockchip: modify rk3128 clk driver to also support rk3126
  dt-bindings: add documentation for rk3126 clock
  clk: rockchip: add some critical clocks for rv1108 SoC
  clk: rockchip: rename some of clks for rv1108 SoC
  arm64: unwind: disregard frame.sp when validating frame pointer
  arm64: unwind: avoid percpu indirection for irq stack
  arm64: move non-entry code out of .entry.text
  arm64: consistently use bl for C exception entry
  arm64: Add ASM_BUG()
  clk: rockchip: fix up some clks describe error for rv1108 SoC
  clk: rockchip: support more clks for rv1108
  PM / wakeup: Set power.can_wakeup if wakeup_sysfs_add() fails
  cpufreq: rcar: Add support for R8A7795 SoC
  cpufreq: Simplify cpufreq_can_do_remote_dvfs()
  xprtrdma: Clean up XDR decoding in rpcrdma_update_granted_credits()
  xprtrdma: Remove rpcrdma_rep::rr_len
  xprtrdma: Remove opcode check in Receive completion handler
  xprtrdma: Replace rpcrdma_count_chunks()
  xprtrdma: Refactor rpcrdma_reply_handler()
  xprtrdma: Harden backchannel call decoding
  xprtrdma: Add xdr_init_decode to rpcrdma_reply_handler()
  ACPI/IORT: Handle PCI aliases properly for IOMMUs
  Bluetooth: document config options
  drm/i915: Perform an invalidate prior to executing golden renderstate
  drm/etnaviv: switch to drm_*{get,put} helpers
  drm/etnaviv: select CMA and DMA_CMA if available
  Thermal/int340x: Fix few typos and kernel warn message
  perf: xgene: Remove unnecessary managed resources cleanup
  arm64: perf: Allow more than one cycle counter to be used
  thermal: intel_pch_thermal: constify pci_device_id.
  selinux: use GFP_NOWAIT in the AVC kmem_caches
  drm: Nuke drm_atomic_legacy_backoff
  drm: Nuke drm_atomic_helper_connector_dpms
  drm: Nuke drm_atomic_helper_connector_set_property
  drm: Nuke drm_atomic_helper_plane_set_property
  drm: Nuke drm_atomic_helper_crtc_set_property
  drm: Handle properties in the core for atomic drivers
  ARM: dts: gemini: add pin control set-up for the SoC
  ARM: dts: Add DTS file for D-Link DIR-685
  ARM: dts: gemini: Switch to using macros
  drm: Don't update property values for atomic drivers
  drm/omap: Rework the rotation-on-crtc hack
  rt2x00: Fix MMIC Countermeasures
  rtlwifi: constify rate_control_ops structure
  wlcore: add const to bin_attribute structure
  brcmfmac: add setting carrier state ON for successful roaming
  brcmfmac: fix wrong num_different_channels when mchan feature enabled
  brcmfmac: Add support for CYW4373 SDIO/USB chipset
  brcmfmac: set wpa_auth to WPA_AUTH_DISABLED in AP/OPEN security mode
  mwifiex: p2p: use separate device address
  mwifiex: wrapper wps ie in pass through tlv
  mwifiex: Do not change bss_num in change_virtual_intf
  mwifiex: replace netif_carrier_on/off by netif_device_attach/dettach
  rsi: RTS threshold configuration
  rsi: buffer available interrupt handling
  rsi: buffer full check optimization
  rsi: rename sdio_read_buffer_status_register
  rsi: add support for U-APSD power save
  rsi: add support for legacy power save
  rsi: update set_antenna command frame
  rsi: add support for rf-kill functionality
  rsi: fix uninitialized descriptor pointer issue
  bcma: make BCMA a menuconfig to ease disabling it all
  spi: qup: Fix QUP version identify method
  spi: qup: Ensure done detection
  spi: qup: allow multiple DMA transactions per spi xfer
  spi: qup: refactor spi_qup_prep_sg
  spi: qup: allow block mode to generate multiple transactions
  spi: qup: call io_config in mode specific function
  spi: qup: refactor spi_qup_io_config into two functions
  spi: qup: Do block sized read/write in block mode
  spi: qup: Fix transaction done signaling
  spi: qup: Fix error handling in spi_qup_prep_sg
  spi: qup: Place the QUP in run mode before DMA
  spi: qup: Add completion timeout
  spi: qup: Setup DMA mode correctly
  spi: qup: Enable chip select support
  Bluetooth: Add support of 13d3:3494 RTL8723BE device
  ath9k: make ath_ps_ops structures as const
  wcn36xx: Introduce mutual exclusion of fw configuration
  ath10k: switch to use new generic UUID API
  ath10k: fix memory leak in rx ring buffer allocation
  ath10k: ath10k_htt_rx_amsdu_allowed() use ath10k_dbg()
  media: v4l2-tpg: fix the SMPTE-2084 transfer function
  ASoC: rsnd: control SSICR::EN correctly
  ASoC: rsnd: rsnd_ssi_can_output_clk() macro
  ASoC: rsnd: move rsnd_ssi_config_init() execute condition into it.
  ASoC: samsung: odroid: Drop requirement of clocks in the sound node
  media: coda: reduce iram size to leave space for suspend to ram
  media: coda: fix decoder sequence init escape flag
  media: staging/imx: remove confusing IS_ERR_OR_NULL usage
  media: i2c: fix semicolon.cocci warnings
  media: vb2: core: Lower the log level of debug outputs
  ASoC: fsl: Convert to using %pOF instead of full_name
  spi/bcm63xx-hspi: fix error return code in bcm63xx_hsspi_probe()
  spi/bcm63xx: fix error return code in bcm63xx_spi_probe()
  spi: xlp: fix error return code in xlp_spi_probe()
  media: cec: documentation fixes
  media: v4l: omap_vout: vrfb: initialize DMA flags
  media: v4l: use WARN_ON(1) instead of __WARN()
  media: i2c: add KConfig dependencies
  media: ti-vpe: cal: use of_graph_get_remote_endpoint()
  drm/radeon: Use the drm_driver.dumb_destroy default
  media: staging: imx: fix non-static declarations
  drm/i915: Use the drm_driver.dumb_destroy default
  media: imx: prpencvf: enable double write reduction
  media: imx: add VIDEO_V4L2_SUBDEV_API dependency
  drm/sti: Use .dumb_map_offset and .dumb_destroy defaults
  media: v4l: omap_vout: vrfb: include linux/slab.h
  media: ov9655: fix missing mutex_destroy()
  media: ov9650: fix coding style
  media: stm32-dcmi: explicitly request exclusive reset control
  media: mtk-vcodec: fix vp9 decode error
  media: ov7670: Check the return value from clk_prepare_enable()
  media: ov7670: Return the real error code
  media: v4l2-tpg-core.c: fix typo in bt2020_full matrix
  media: media/extended-controls.rst: fix wrong enum names
  media: media/doc: improve the SMPTE 2084 documentation
  media: media/doc: improve bt.2020 documentation
  media: media/doc: rename and reorder pixfmt files
  media: drop use of MEDIA_API_VERSION
  media: media-device: remove driver_version
  media: atomisp2: don't set driver_version
  media: uvc: don't set driver_version
  media: s3c-camif: don't set driver_version
  media: media-device: set driver_version directly
  spi: cadence: Add support for context loss
  spi: cadence: change sequence of calling runtime_enable
  powerpc/mm/hash64: Make vmalloc 56T on hash
  powerpc/mm/slb: Move comment next to the code it's referring to
  powerpc/mm/book3s64: Make KERN_IO_START a variable
  powerpc/powernv: Use darn instruction for get_random_seed() on Power9
  powerpc/32: Fix boot failure on non 6xx platforms
  thermal: core: fix some format issues on critical shutdown string
  thermal: fix INTEL_SOC_DTS_IOSF_CORE dependencies
  thermal: intel_pch_thermal: Read large temp values correctly
  KVM: arm: implements the kvm_arch_vcpu_in_kernel()
  KVM: s390: implements the kvm_arch_vcpu_in_kernel()
  KVM: X86: implement the logic for spinlock optimization
  KVM: add spinlock optimization framework
  thermal: int340x_thermal: Constify attribute_group structures.
  thermal: int340x: constify attribute_group structures.
  drm: bridge: synopsys/dw-hdmi: Provide default configuration function for HDMI 2.0 PHY
  HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
  HID: asus: Add T100CHI bluetooth keyboard dock touchpad support
  ARM: sun8i: a83t: h8homlet-v2: Enable AC100 combo chip in AXP818 PMIC
  ARM: sun8i: a83t: h8homlet-v2: Enable PMIC part of AXP818 PMIC
  ARM: sun8i: a83t: cubietruck-plus: Enable AC100 combo chip in AXP818 PMIC
  ARM: sun8i: a83t: cubietruck-plus: Enable PMIC part of AXP818 PMIC
  ARM: sun8i: a83t: Add device node and pinmux setting for RSB controller
  Input: xpad - constify usb_device_id
  Input: kbtab - constify usb_device_id
  Input: acecad - constify usb_device_idi and fix space before '[' error
  Input: synaptics_usb - constify usb_device_id
  Input: appletouch - constify usb_device_id
  Input: powermate - constify usb_device_id and fix space before '[' error
  Input: keyspan_remote - constify usb_device_id
  Input: iforce - constify usb_device_id and fix space before '[' error
  scsi: aic7xxx: fix firmware build deps
  scsi: aic7xxx: remove empty function
  powerpc/powernv: Enable PCI peer-to-peer
  clk: rockchip: fix up the pll clks error for rv1108 SoC
  net: vrf: Add extack messages for newlink failures
  isdn: kcapi: make capi_version const
  net: switchdev: Remove bridge bypass support from switchdev
  net: bridge: Remove FDB deletion through switchdev object
  net: dsa: Move FDB dump implementation inside DSA
  net: dsa: Remove redundant MDB dump support
  net: dsa: Remove support for MDB dump from DSA's drivers
  net: dsa: Remove support for bypass bridge port attributes/vlan set
  net: dsa: Remove support for vlan dump from DSA's drivers
  net: dsa: Add support for querying supported bridge flags
  net: dsa: Move FDB add/del implementation inside DSA
  net: dsa: Add support for learning FDB through notification
  net: dsa: Remove switchdev dependency from DSA switch notifier chain
  net: dsa: Remove prepare phase for FDB
  net: dsa: Change DSA slave FDB API to be switchdev independent
  arm64: dts: rockchip: add rk3328 i2s nodes
  nfit: cleanup long de-reference chains in acpi_nfit_init_interleave_set
  hamradio: baycom: make hdlcdrv_ops const
  xfrm: check that cached bundle is still valid
  net: dsa: remove useless args of dsa_slave_create
  net: dsa: remove useless args of dsa_cpu_dsa_setup
  net: dsa: remove useless argument in legacy setup
  net: hns3: fix spelling mistake: "capabilty" -> "capability"
  net: dsa: lan9303: refactor lan9303_get_ethtool_stats
  net: dsa: lan9303: Rename lan9303_xxx_packet_processing()
  net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage
  net: dsa: lan9303: define LAN9303_NUM_PORTS 3
  net: dsa: lan9303: Change lan9303_xxx_packet_processing() port param.
  ipv6: sr: implement several seg6local actions
  ipv6: sr: add rtnetlink functions for seg6local action parameters
  ipv6: sr: define core operations for seg6local lightweight tunnel
  ipv6: sr: export SRH insertion functions
  ipv6: sr: allow SRH insertion with arbitrary segments_left value
  null_blk: make sure submit_queues > 0
  null_blk: simplify logic for use_per_node_hctx
  bpf: devmap fix mutex in rcu critical section
  net_sched: use void pointer for filter handle
  net_sched: refactor notification code for RTM_DELTFILTER
  lwtunnel: replace EXPORT_SYMBOL with EXPORT_SYMBOL_GPL
  bpf: add a test case for syscalls/sys_{enter|exit}_* tracepoints
  bpf: add support for sys_enter_* and sys_exit_* tracepoints
  of_mdio: use of_property_read_u32_array()
  ibmvnic: Report rx buffer return codes as netdev_dbg
  docs: driver-api: Remove trailing blank line
  scripts/sphinx-pre-install: add minimum support for RHEL
  kbuild: Update example for ccflags-y usage
  docs/features: parisc implements tracehook
  net: ipv6: add second dif to raw socket lookups
  net: ipv6: add second dif to inet6 socket lookups
  net: ipv6: add second dif to udp socket lookups
  net: ipv4: add second dif to multicast source filter
  net: ipv4: add second dif to raw socket lookups
  net: ipv4: add second dif to inet socket lookups
  net: ipv4: add second dif to udp socket lookups
  hns3: fix unused function warning
  gcc-plugins: structleak: add option to init all vars used as byref args
  MAINTAINERS: Add myself to S390 ZFCP DRIVER as a co-maintainer
  scsi: fc: start decoupling fc_block_scsi_eh from scsi_cmnd
  scsi: qla2xxx: Fix remoteport disconnect for FC-NVMe
  scsi: qla2xxx: Simpify unregistration of FC-NVMe local/remote ports
  scsi: qla2xxx: Added change to enable ZIO for FC-NVMe devices
  scsi: qla2xxx: Move function prototype to correct header
  scsi: qla2xxx: Cleanup FC-NVMe code
  scsi: remove DRIVER_ATTR() usage
  scsi: Convert to using %pOF instead of full_name
  scsi: ufs: changing maintainer
  scsi: fusion: fix string overflow warning
  scsi: gdth: increase the procfs event buffer size
  scsi: fnic: fix format string overflow warning
  scsi: gdth: avoid buffer overflow warning
  scsi: mpt3sas: fix format overflow warning
  scsi: megaraid: fix format-overflow warning
  scsi: pmcraid: Replace PCI pool old API
  scsi: mvsas: Replace PCI pool old API
  scsi: mpt3sas: Replace PCI pool old API
  scsi: megaraid: Replace PCI pool old API
  scsi: lpfc: Replace PCI pool old API
  scsi: csiostor: Replace PCI pool old API
  scsi: be2iscsi: Replace PCI pool old API
  scsi: g_NCR5380: Two DTC436 PDMA workarounds
  scsi: g_NCR5380: Re-work PDMA loops
  scsi: g_NCR5380: Use unambiguous terminology for PDMA send and receive
  scsi: g_NCR5380: Cleanup comments and whitespace
  scsi: g_NCR5380: End PDMA transfer correctly on target disconnection
  scsi: g_NCR5380: Fix PDMA transfer size
  scsi: aacraid: complete all commands during bus reset
  scsi: aacraid: add fib flag to mark scsi command callback
  scsi: aacraid: enable sending of TMFs from aac_hba_send()
  scsi: aacraid: use aac_tmf_callback for reset fib
  scsi: aacraid: split off device, target, and bus reset
  scsi: aacraid: split off host reset
  scsi: aacraid: split off functions to generate reset FIB
  Bluetooth: bluecard: blink LED during continuous activity
  ARM: dts: BCM53573: Add Broadcom BCM947189ACDBMR board support
  ARM: dts: BCM5301X: Specify USB ports for USB LEDs of few devices
  ARM: dts: NSP: Add USB3 and USB3 PHY to NSP
  ARM: dts: NSP: Rearrage USB entries
  ARM: dts: NSP: Add dma-coherent to relevant DT entries
  arm64: dts: Add SBA-RAID DT nodes for Stingray SoC
  arm64: dts: Add FlexRM DT nodes for Stingray
  arm64: dts: Add SATA DT nodes for Stingray SoC
  arm64: dts: Add DT node to enable BGMAC driver on Stingray
  arm64: dts: Add sp804 DT nodes for Stingray SoC
  drm/i915: remove unused function declaration
  arm64: dts: Add MDIO multiplexer DT node for Stingray
  arm64: dts: Enable stats for CCN-502 interconnect on Stingray
  net: sched: get rid of struct tc_to_netdev
  net: sched: change return value of ndo_setup_tc for driver supporting mqprio only
  net: sched: move prio into cls_common
  net: sched: push cls related args into cls_common structure
  hns3pf: don't check handle during mqprio offload
  nfp: change flows in apps that offload ndo_setup_tc
  dsa: push cls_matchall setup_tc processing into a separate function
  mlxsw: spectrum: rename cls arg in matchall processing
  mlxsw: spectrum: push cls_flower and cls_matchall setup_tc processing into separate functions
  mlx5e_rep: push cls_flower setup_tc processing into a separate function
  mlx5e: push cls_flower and mqprio setup_tc processing into separate functions
  ixgbe: push cls_u32 and mqprio setup_tc processing into separate functions
  cxgb4: push cls_u32 setup_tc processing into a separate function
  net: sched: make egress_dev flag part of flower offload struct
  net: sched: rename TC_SETUP_MATCHALL to TC_SETUP_CLSMATCHALL
  net: sched: make type an argument for ndo_setup_tc
  dlm: use sock_create_lite inside tcp_accept_from_sock
  uapi linux/dlm_netlink.h: include linux/dlmconstants.h
  dlm: avoid double-free on error path in dlm_device_{register,unregister}
  dlm: constify kset_uevent_ops structure
  dlm: print log message when cluster name is not set
  dlm: Delete an unnecessary variable initialisation in dlm_ls_start()
  dlm: Improve a size determination in two functions
  dlm: Use kcalloc() in two functions
  dlm: Use kmalloc_array() in make_member_array()
  dlm: Delete an error message for a failed memory allocation in dlm_recover_waiters_pre()
  dlm: Improve a size determination in dlm_recover_waiters_pre()
  dlm: Use kcalloc() in dlm_scan_waiters()
  dlm: Improve a size determination in table_seq_start()
  dlm: Add spaces for better code readability
  dlm: Replace six seq_puts() calls by seq_putc()
  dlm: Make dismatch error message more clear
  dlm: Fix kernel memory disclosure
  backlight: gpio_backlight: Delete pdata inversion
  backlight: gpio_backlight: Convert to use GPIO descriptor
  backlight: pwm_bl: Make of_device_ids const
  ASoC: soc-core: remove duplicate mutex_unlock from snd_soc_unregister_component()
  ASoC: soc-core: rename "cmpnt" to "component"
  spi: fix building SPI_PXA on MMP
  ASoC: soc-core: Use IS_ERR_OR_NULL()
  ASoC: soc-core: Remove unneeded dentry member from snd_soc_codec
  spi: rockchip: Fix clock handling in suspend/resume
  spi: rockchip: Fix clock handling in remove
  spi: rockchip: Slightly rework return value handling
  fbdev: matrox: hide unused 'hotplug' variable
  fbcon: mark dummy functions 'inline'
  video: fbdev: Convert to using %pOF instead of full_name
  workqueue: fix path to documentation
  drm/fb-helper: pass physical dimensions to fbdev
  uapi drm/armada_drm.h: use __u32 and __u64 instead of uint32_t and uint64_t
  KVM: x86: use general helpers for some cpuid manipulation
  KVM: x86: generalize guest_cpuid_has_ helpers
  KVM: x86: X86_FEATURE_NRIPS is not scattered anymore
  ARM: configs: keystone: Enable MMC and regulators
  ARM: dts: keystone-k2g-evm: Enable MMC0 and MMC1
  ARM: dts: keystone-k2g: add MMC0 and MMC1 nodes
  ARM: dts: keystone-k2g: Add eDMA nodes
  dt-bindings: ti,omap-hsmmc: Add 66AK2G mmc controller
  dt-bindings: ti,edma: Add 66AK2G specific information
  NFSv4: Cleanup setting of the migration flags.
  NFSv4.1: Ensure we clear the SP4_MACH_CRED flags in nfs4_sp4_select_mode()
  NFSv4: Refactor _nfs4_proc_exchange_id()
  KVM: nVMX: Emulate EPTP switching for the L1 hypervisor
  KVM: nVMX: Enable VMFUNC for the L1 hypervisor
  KVM: vmx: Enable VMFUNCs
  KVM: nVMX: get rid of nested_release_page*
  KVM: nVMX: get rid of nested_get_page()
  KVM: nVMX: INVPCID support
  KVM: hyperv: support HV_X64_MSR_TSC_FREQUENCY and HV_X64_MSR_APIC_FREQUENCY
  ARM: dts: keystone-k2g: Add gpio nodes
  ACPI/IORT: Add IORT named component memory address limits
  ACPI: Make acpi_dma_configure() DMA regions aware
  ACPI: Introduce DMA ranges parsing
  spi: use of_property_read_bool()
  arm64: neon: Export kernel_neon_busy to loadable modules
  ASoC: rockchip: add bindings for i2s
  ASoC: sunxi: make snd_soc_codec_driver structures as const
  ASoC: rt5514: reset dma_offset at hw_params
  ASoC: mediatek: Fix an error checking code
  drm/bridge: dw-hdmi: remove CEC engine register definitions
  drm/bridge: dw-hdmi: add cec driver
  drm/bridge: dw-hdmi: add missing cec_notifier_put
  Revert "reset: Add a Gemini reset controller"
  drm: remove unused and redundant callbacks
  staging: vboxvideo: remove dead gamma lut code
  arm64: Decode information from ESR upon mem faults
  arm64: Abstract syscallno manipulation
  arm64: syscallno is secretly an int, make it official
  net/mlx5: Increase the maximum flow counters supported
  net/mlx5: Fix counter list hardware structure
  net/mlx5: Delay events till ib registration ends
  net/mlx5: Add CONFIG_MLX5_ESWITCH Kconfig
  net/mlx5: Separate between E-Switch and MPFS
  net/mlx5: Unify vport manager capability check
  net/mlx5e: NIC netdev init flow cleanup
  net/mlx5e: Rearrange netdevice ops structures
  Bluetooth: bluecard: fix LED behavior
  Bluetooth: bluecard: Always enable LEDs (fix for Anycom CF-300)
  extcon: cros-ec: Fix a potential NULL pointer dereference
  sctp: remove the typedef sctp_subtype_t
  sctp: remove the typedef sctp_event_t
  sctp: remove the typedef sctp_event_timeout_t
  sctp: remove the typedef sctp_event_other_t
  sctp: remove the typedef sctp_event_primitive_t
  sctp: remove the typedef sctp_state_t
  sctp: remove the typedef sctp_ierror_t
  sctp: remove the typedef sctp_xmit_t
  sctp: remove the typedef sctp_sock_state_t
  sctp: remove the typedef sctp_transport_cmd_t
  sctp: remove the typedef sctp_scope_t
  sctp: remove the typedef sctp_scope_policy_t
  sctp: remove the typedef sctp_retransmit_reason_t
  sctp: remove the typedef sctp_lower_cwnd_t
  dt-bindings: net: Document bindings for anarion-gmac
  net: stmmac: Add Adaptrum Anarion GMAC glue layer
  netvsc: fix rtnl deadlock on unregister of vf
  net: dsa: User per-cpu 64-bit statistics
  tcp: consolidate congestion control undo functions
  tcp: fix cwnd undo in Reno and HTCP congestion controls
  net: systemport: Support 64bit statistics
  liquidio: moved console_bitmask module param to lio_main.c
  liquidio: add missing strings in oct_dev_state_str array
  drm: dw-hdmi-i2s: add missing company name on Copyright
  sfp: add SFP module support
  phylink: add in-band autonegotiation support for 10GBase-KR mode.
  phylink: add support for MII ioctl access to Clause 45 PHYs
  phylink: add module EEPROM support
  sfp: add sfp-bus to bridge between network devices and sfp cages
  phylink: add phylink infrastructure
  net: phy: add I2C mdio bus
  net: phy: export phy_start_machine() for phylink
  net: phy: provide a hook for link up/link down events
  net: phy: add 1000Base-X to phy settings table
  net: phy: move phy_lookup_setting() and guts of phy_supported_speeds() to phy-core
  net: phy: split out PHY speed and duplex string generation
  net: phy: allow settings table to support more than 32 link modes
  udp: no need to preserve skb->dst
  Revert "ipv4: keep skb->dst around in presence of IP options"
  ip/options: explicitly provide net ns to __ip_options_echo()
  IP: do not modify ingress packet IP option in ip_options_echo()
  ALSA: usbusx2y: constify usb_device_id.
  ALSA: us122l: constify usb_device_id.
  ALSA: ua101: constify usb_device_id.
  ALSA: usb-audio: constify usb_device_id.
  ALSA: snd-usb-caiaq: constify usb_device_id.
  ALSA: bcd2000: constify usb_device_id.
  ALSA: 6fire: constify usb_device_id.
  ALSA: hda: Add Cannonlake PCI ID
  ALSA: ice1712: add const to snd_akm4xxx structures
  ALSA: ice1712: add const to snd_ak4xxx_private structures
  clk: rockchip: support more rates for rv1108 cpuclk
  clk: rockchip: fix up indentation of some RV1108 clock-ids
  clk: rockchip: rename the clk id for HCLK_I2S1_2CH
  clk: rockchip: add more clk ids for rv1108
  arm64: dts: rockchip: Add support for rk3399 excavator main board
  arm64: dts: rockchip: Add support for rk3399 sapphire SOM
  arm64: dts: rockchip: add rk3399 hdmi nodes
  arm64: dts: rockchip: add rk3399 mipi nodes
  arm64: dts: rockchip: add rk3399 edp nodes
  arm64: dts: rockchip: add pd_edp node for rk3399
  arm64: dts: rockchip: Add rk3399 vop and display-subsystem
  ARM: rockchip: select ARCH_DMA_ADDR_T_64BIT for LPAE
  ARM: dts: rockchip: add more iommu nodes on rk3288
  ARM: dts: rockchip: convert rk3288 device tree files to 64 bits
  ARM: dts: rockchip: add spi node and spi pinctrl on rk3228/rk3229
  arm64: dts: rockchip: include opp dtsi for rk3399 firefly
  arm64: dts: rockchip: Add cpu operating points for RK3328 SoC
  ARM: gemini: select pin controller
  ARM: gemini: select ARM_AMBA
  ARM: gemini: select the clock controller
  ARM: gemini: tag the arch as having reset controller
  platform/x86: intel-vbtn: match power button on press rather than release
  ARM: dts: sun8i: a83t: h8homlet: Enable micro-SD card and onboard eMMC
  ARM: dts: sun8i: a83t: cubietruck-plus: Enable micro-SD card and eMMC
  ARM: dts: sun8i: a83t: Add pingroup for 8-bit eMMC on mmc2
  ARM: dts: sun8i: a83t: Add MMC controller device nodes
  ARM: dts: sun8i: h3: Enable dwmac-sun8i on the Beelink X2
  ARM: dts: sun8i: h3: Enable USB OTG on the Beelink X2
  ARM: dts: sun8i: Add BananaPI M2-Magic DTS
  ARM: dts: sun7i: enable battery power supply subnode on cubietruck
  ARM: dts: sun8i: a83t: Add device node for R_INTC interrupt controller
  ARM: dts: sun8i: a23/a33: Use new sun6i-a31-r-intc compatible for NMI/R_INTC
  ARM: dts: sun6i: a31: Use new sun6i-a31-r-intc compatible for NMI/R_INTC
  ARM: dts: imx6ul-liteboard: Support poweroff
  aquantia: Switch to use napi_gro_receive
  ARM: dts: imx: add CX9020 Embedded PC device tree
  ARM: dts: imx53: add alternative UART2 configuration
  ARM: dts: imx53: add srtc node
  dt-bindings: arm: Add entry for Beckhoff CX9020
  arm64: dts: freescale: ls1088a: add crypto node
  arm64: dts: freescale: ls208xa: add crypto node
  arm64: dts: freescale: ls208xa: share aliases node
  ARM: dts: i.MX25: add RNGB node to dtsi
  nfit, libnvdimm, region: export 'position' in mapping info
  ACPI / PM: Prefer suspend-to-idle over S3 on some systems
  ata: ahci_platform: Add shutdown handler
  lkdtm: Test VMAP_STACK allocates leading/trailing guard pages
  leds: blinkm: constify attribute_group structures.
  net: comment fixes against BPF devmap helper calls
  net: sched: avoid atomic swap in tcf_exts_change
  net: sched: cls_u32: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_route: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_flow: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_cgroup: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_bpf: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_basic: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_matchall: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_fw: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_flower: no need to call tcf_exts_change for newly allocated struct
  net: sched: cls_fw: rename fw_change_attrs function
  net: sched: cls_bpf: rename cls_bpf_modify_existing function
  net: sched: use tcf_exts_has_actions instead of exts->nr_actions
  net: sched: remove check for number of actions in tcf_exts_exec
  net: sched: fix return value of tcf_exts_exec
  net: sched: remove redundant helpers tcf_exts_is_predicative and tcf_exts_is_available
  net: sched: use tcf_exts_has_actions in tcf_exts_exec
  net: sched: change names of action number helpers to be aligned with the rest
  net: sched: remove unneeded tcf_em_tree_change
  net: sched: sch_atm: use Qdisc_class_common structure
  drm/i915/selftests: Retarget igt_render_engine_reset_fallback()
  net: hns: Fix for __udivdi3 compiler error
  net: phy: marvell: logical vs bitwise OR typo
  clk: meson: gxbb-aoclk: Add CEC 32k clock
  clk: meson: gxbb-aoclk: Switch to regmap for register access
  dt-bindings: clock: amlogic, gxbb-aoclkc: Update bindings
  clk: meson: gxbb: Add sd_emmc clk0 clocks
  clk: meson: gxbb: fix clk_mclk_i958 divider flags
  clk: meson: gxbb: fix meson cts_amclk divider flags
  clk: meson: meson8b: register the built-in reset controller
  dt-bindings: clock: gxbb-aoclk: Add CEC 32k clock
  clk: meson: gxbb: Add sd_emmc clk0 clkids
  clk: meson-gxbb: expose almost every clock in the bindings
  clk: meson8b: expose every clock in the bindings
  clk: meson: gxbb: fix protection against undefined clks
  clk: meson: meson8b: fix protection against undefined clks
  ALSA: control: code refactoring for TLV request handler to user element set
  ALSA: control: code refactoring TLV ioctl handler
  ALSA: control: obsolete user_ctl_lock
  ALSA: control: use counting semaphore as write lock for TLV write/command operations
  ALSA: control: queue events within locking of controls_rwsem for TLV operation
  arm: dts: mediatek: add larbid property for larb
  arm: dts: mt7623: fix mmc interrupt assignment
  arm64: neon: Temporarily add a kernel_mode_begin_partial() definition
  arm64: neon: Remove support for nested or hardirq kernel-mode NEON
  arm64: neon: Allow EFI runtime services to use FPSIMD in irq context
  arm64: fpsimd: Consistently use __this_cpu_ ops where appropriate
  arm64: neon: Add missing header guard in <asm/neon.h>
  arm64: neon: replace generic definition of may_use_simd()
  drm/bridge: dw-hdmi: add better clock disable control
  drm/bridge: dw-hdmi: add cec notifier support
  drm/tinydrm: remove call to mipi_dbi_init() from mipi_dbi_spi_init()
  drm/fsl-dcu: Use .dumb_map_offset and .dumb_destroy defaults
  cpufreq: dt: Add rk3328 compatible to use generic cpufreq driver
  drm/i915: fix backlight invert for non-zero minimum brightness
  drm/i915/shrinker: Wrap need_resched() inside preempt-disable
  drm/i915/perf: Initialise the dynamic sysfs attr
  cpufreq: intel_pstate: Improve IO performance with per-core P-states
  spi: pxa2xx: Convert to GPIO descriptor API where possible
  iommu/exynos: Remove custom platform device registration code
  ASoC: Intel: constify pci_device_id.
  dt-bindings: mediatek: add descriptions for larbid
  memory: mtk-smi: add larbid handle routine
  memory: mtk-smi: Use of_device_get_match_data helper
  iommu/omap: Use DMA-API for performing cache flushes
  iommu/omap: Fix disabling of MMU upon a fault
  iommu/exynos: prevent building on big-endian kernels
  drm: stm: remove dead code and pointless local lut storage
  drm: radeon: remove dead code and pointless local lut storage
  drm: nouveau: remove dead code and pointless local lut storage
  drm: mgag200: remove dead code and pointless local lut storage
  drm: i915: remove dead code and pointless local lut storage
  drm: gma500: remove dead code and pointless local lut storage
  drm: cirrus: remove dead code and pointless local lut storage
  drm: ast: remove dead code and pointless local lut storage
  drm: armada: remove dead empty functions
  drm: amd: remove dead code and pointless local lut storage
  tee: optee: sync with new naming of interrupts
  tee: indicate privileged dev in gen_caps
  tee: optee: interruptible RPC sleep
  tee: optee: add const to tee_driver_ops and tee_desc structures
  tee: tee_shm: Constify dma_buf_ops structures.
  tee: add forward declaration for struct device
  tee: optee: fix uninitialized symbol 'parg'
  drm/rockchip: fix race with kms hotplug and fbdev
  drm/rockchip: vop: report error when check resource error
  drm/rockchip: vop: round_up pitches to word align
  drm/rockchip: vop: fix NV12 video display error
  drm/rockchip: vop: fix iommu page fault when resume
  drm/rockchip: vop: no need wait vblank on crtc enable
  agp: nvidia: constify pci_device_id.
  agp: amd64: constify pci_device_id.
  agp: sis: constify pci_device_id.
  agp: efficeon: constify pci_device_id.
  agp: ati: constify pci_device_id.
  agp: ali: constify pci_device_id.
  agp: intel: constify pci_device_id.
  agp: amd-k7: constify pci_device_id.
  agp: uninorth: constify pci_device_id.
  test: add msg_zerocopy test
  tcp: enable MSG_ZEROCOPY
  sock: ulimit on MSG_ZEROCOPY pages
  sock: MSG_ZEROCOPY notification coalescing
  sock: enable MSG_ZEROCOPY
  sock: add SOCK_ZEROCOPY sockopt
  sock: add MSG_ZEROCOPY
  sock: skb_copy_ubufs support for compound pages
  sock: allocate skbs from optmem
  clk: sunxi-ng: allow set parent clock (PLL_CPUX) for CPUX clock on H3
  clk: sunxi-ng: h3: gate then ungate PLL CPU clk after rate change
  EDAC, pnd2: Build in a minimal sideband driver for Apollo Lake
  f2fs: use printk_ratelimited for f2fs_msg
  f2fs: expose features to sysfs entry
  f2fs: support inode checksum
  f2fs: return wrong error number on f2fs_quota_write
  f2fs: provide f2fs_balance_fs to __write_node_page
  crypto: ccp - Add XTS-AES-256 support for CCP version 5
  crypto: ccp - Rework the unit-size check for XTS-AES
  crypto: ccp - Add a call to xts_check_key()
  crypto: ccp - Fix XTS-AES-128 support on v5 CCPs
  crypto: arm64/aes - avoid expanded lookup tables in the final round
  crypto: arm/aes - avoid expanded lookup tables in the final round
  crypto: arm64/ghash - add NEON accelerated fallback for 64-bit PMULL
  crypto: arm/ghash - add NEON accelerated fallback for vmull.p64
  crypto: arm64/gcm - implement native driver using v8 Crypto Extensions
  crypto: arm64/aes-bs - implement non-SIMD fallback for AES-CTR
  crypto: arm64/chacha20 - take may_use_simd() into account
  crypto: arm64/aes-blk - add a non-SIMD fallback for synchronous CTR
  crypto: arm64/aes-ce-ccm: add non-SIMD generic fallback
  crypto: arm64/aes-ce-cipher: add non-SIMD generic fallback
  crypto: arm64/aes-ce-cipher - match round key endianness with generic code
  crypto: arm64/sha2-ce - add non-SIMD scalar fallback
  crypto: arm64/sha1-ce - add non-SIMD generic fallback
  crypto: arm64/crc32 - add non-SIMD scalar fallback
  crypto: arm64/crct10dif - add non-SIMD generic fallback
  crypto: arm64/ghash-ce - add non-SIMD scalar fallback
  crypto: algapi - make crypto_xor() take separate dst and src arguments
  crypto: algapi - use separate dst and src operands for __crypto_xor()
  initcall_debug: add deferred probe times
  of: Update Moxa vendor prefix description
  PCI: hv: Do not sleep in compose_msi_msg()
  PCI/PM: Expand description of pci_set_power_state()
  clk: uniphier: remove sLD3 SoC support
  mlxsw: spectrum_router: Don't ignore IPv6 notifications
  mlxsw: spectrum_router: Abort on source-specific routes
  mlxsw: spectrum_router: Add support for route replace
  mlxsw: spectrum_router: Add support for IPv6 routes addition / deletion
  mlxsw: spectrum_router: Sanitize IPv6 FIB rules
  mlxsw: spectrum_router: Demultiplex FIB event based on family
  ipv6: fib: Add helpers to hold / drop a reference on rt6_info
  ipv6: Regenerate host route according to node pointer upon interface up
  ipv6: Regenerate host route according to node pointer upon loopback up
  ipv6: fib: Unlink replaced routes from their nodes
  ipv6: fib: Don't assume only nodes hold a reference on routes
  ipv6: fib: Add offload indication to routes
  ipv6: fib: Dump tables during registration to FIB chain
  ipv6: fib_rules: Dump rules during registration to FIB chain
  ipv6: fib: Add in-kernel notifications for route add / delete
  ipv6: fib: Add FIB notifiers callbacks
  ipv6: fib_rules: Check if rule is a default rule
  net: fib_rules: Implement notification logic in core
  rocker: Ignore address families other than IPv4
  mlxsw: spectrum_router: Ignore address families other than IPv4
  net: core: Make the FIB notification chain generic
  dt-bindings: net: marvell-pp2: update interrupt-names with TX interrupts
  net: mvpp2: add support for TX interrupts and RX queue distribution modes
  net: mvpp2: introduce queue_vector concept
  net: mvpp2: move from cpu-centric naming to "software thread" naming
  net: mvpp2: introduce per-port nrxqs/ntxqs variables
  net: mvpp2: remove RX queue group reset code
  net: mvpp2: fix MVPP21_ISR_RXQ_GROUP_REG definition
  ACPI: Make acpi_dev_get_resources() method agnostic
  net: arc_emac: Add support for ndo_do_ioctl net_device_ops operation
  net: hns3: Add HNS3 driver to kernel build framework & MAINTAINERS
  net: hns3: Add Ethtool support to HNS3 driver
  net: hns3: Add MDIO support to HNS3 Ethernet driver for hip08 SoC
  net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver
  net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support
  net: hns3: Add HNS3 IMP(Integrated Mgmt Proc) Cmd Interface Support
  net: hns3: Add support of the HNAE3 framework
  net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC
  PCI: armada8k: Check the return value from clk_prepare_enable()
  PCI: hisi: Remove unused variable driver
  PCI: qcom: Allow ->post_init() to fail
  PCI: qcom: Don't unroll init if ->init() fails
  PCI: vmd: Assign vector zero to all bridges
  PCI: vmd: Reserve IRQ pre-vector for better affinity
  PCI: tegra: Explicitly request exclusive reset control
  PCI: imx6: Explicitly request exclusive reset control
  ACPICA: Update version to 20170728
  ACPICA: Revert "Update resource descriptor handling"
  ACPICA: Resources: Allow _DMA method in walk resources
  ACPICA: Ensure all instances of AE_AML_INTERNAL have error messages
  ACPICA: Implement deferred resolution of reference package elements
  ACPICA: Debugger: Improve support for Alias objects
  ACPICA: Interpreter: Update handling for Alias operator
  ACPICA: EFI/EDK2: Cleanup to enable /WX for MSVC builds
  ACPICA: acpidump: Add DSDT/FACS instance support for Linux and EFI
  ACPICA: CLib: Add short multiply/shift support
  ACPICA: EFI/EDK2: Sort acpi.h inclusion order
  ACPICA: Add a comment, no functional change
  ACPICA: Namespace: Update/fix an error message
  ACPICA: iASL: Add support for the SDEI table
  ACPICA: Divergences: reduce access size definitions
  PCI: Remove unused pci_fixup_irqs() function
  sparc/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  unicore32/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  tile/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  MIPS: PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  ACPI / dock: constify attribute_group structure
  m68k/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  spi: Use Apple device properties in absence of ACPI resources
  ACPI / scan: Recognize Apple SPI and I2C slaves
  ACPI / property: Support Apple _DSM properties
  ACPI / property: Don't evaluate objects for devices w/o handle
  treewide: Consolidate Apple DMI checks
  alpha/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  sh/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
  sh/PCI: Remove __init optimisations from IRQ mapping functions/data
  PCI: dwc: designware: Handle ->host_init() failures
  drm/i915: enable WaDisableDopClkGating for skl
  drm/i915: Fix PCH names for KBP and CNP.
  ecryptfs: convert to file_write_and_wait in ->fsync
  drm/fb-helper: add new drm_setup_crtcs_fb() function
  drm/i915/perf: Implement I915_PERF_ADD/REMOVE_CONFIG interface
  drm/i915: reorder NOA register definition to follow addresses
  drm/i915/perf: disable NOA logic when not used
  drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs
  drm/i915/perf: prune OA configs
  drm/i915/perf: fix flex eu registers programming
  sctp: remove the typedef sctp_auth_chunk_t
  sctp: remove the typedef sctp_authhdr_t
  sctp: remove the typedef sctp_addip_chunk_t
  sctp: remove the typedef sctp_addiphdr_t
  sctp: remove the typedef sctp_addip_param_t
  sctp: remove the typedef sctp_cwr_chunk_t
  sctp: remove the typedef sctp_cwrhdr_t
  sctp: remove the typedef sctp_ecne_chunk_t
  sctp: remove the typedef sctp_ecnehdr_t
  sctp: remove the typedef sctp_error_t
  sctp: remove the typedef sctp_operr_chunk_t
  sctp: remove the typedef sctp_errhdr_t
  sctp: fix the name of struct sctp_shutdown_chunk_t
  sctp: remove the typedef sctp_shutdownhdr_t
  ibmvnic: Implement .get_channels
  ibmvnic: Implement .get_ringparam
  ibmvnic: Convert vnic server reported statistics to cpu endian
  ibmvnic: Implement per-queue statistics reporting
  tcp: remove extra POLL_OUT added for finished active connect()
  net: dsa: bcm_sf2: dst in not an array
  qlcnic: add const to bin_attribute structure
  rds: reduce memory footprint for RDS when transport is RDMA
  ipv4: Introduce ipip_offload_init helper function.
  bpf: fix the printing of ifindex
  net: hns: Add self-adaptive interrupt coalesce support in hns driver
  X25: constify null_x25_address
  mtd: nand: Remove support for block locking/unlocking
  drm/atmel-hlcdc: switch to drm_*{get,put} helpers
  drm/atmel-hlcdc : constify drm_plane_helper_funcs and drm_plane_funcs.
  drm: rcar-du: Use new iterator macros
  drm: rcar-du: Repair vblank for DRM page flips using the VSP
  drm: rcar-du: Fix race condition when disabling planes at CRTC stop
  drm: rcar-du: Wait for flip completion instead of vblank in commit tail
  drm: rcar-du: Use the VBK interrupt for vblank events
  drm: rcar-du: Add HDMI outputs to R8A7796 device description
  drm: rcar-du: Remove an unneeded NULL check
  drm: rcar-du: Setup planes before enabling CRTC to avoid flicker
  drm: rcar-du: Configure DPAD0 routing through last group on Gen3
  drm: rcar-du: Restrict DPLL duty cycle workaround to H3 ES1.x
  drm: rcar-du: Support multiple sources from the same VSP
  drm: rcar-du: Fix comments to comply with the kernel coding style
  drm: rcar-du: Use of_graph_get_remote_endpoint()
  v4l: vsp1: Add support for header display lists in continuous mode
  v4l: vsp1: Add support for multiple DRM pipelines
  v4l: vsp1: Add support for multiple LIF instances
  v4l: vsp1: Add support for new VSP2-BS, VSP2-DL and VSP2-D instances
  ARM: mvebu: enable ARM_GLOBAL_TIMER compilation Armada 38x platforms
  ARM: dts: armada-38x: Add arm_global_timer node
  ARM: dts: marvell: fix PCI bus dtc warnings
  arm64: defconfig: enable fine-grained task level IRQ time accounting
  ARM64: dts: marvell: armada-37xx: Enable uSD on ESPRESSObin
  arm64: dts: marvell: Fully re-order nodes in Marvell CP110 dtsi files
  wcn36xx: check dma_mapping_error()
  ath9k: Add Dell Wireless 1802 with wowlan capability
  ath9k: fix debugfs file permission
  HID: ntrig: constify attribute_group structures.
  HID: logitech-hidpp: constify attribute_group structures.
  HID: sensor: constify attribute_group structures.
  HID: multitouch: constify attribute_group structures.
  ath10k: explicitly request exclusive reset control
  ath10k: push peer type to target for TDLS peers
  ath10k: add tdls support for 10.4 firmwares
  ath10k: extend wmi service map to accommodate new services
  ath10k: sdio: fix compile warning
  ath10k: add initial USB support
  ath10k: various usb related definitions
  ath10k: set a-mpdu receiver reference number
  s390/cio: add const to bin_attribute structures
  s390/sclp: add const to bin_attribute structure
  s390: use generic asm/unaligned.h
  s390: use generic uapi/asm/swab.h
  rtlwifi: Replace hardcode value with macro
  drm/i915: add const to bin_attribute
  drm/fb: Fix pointer dereference before null check.
  mwifiex: pcie: compatible with wifi-only image while extract wifi-part fw
  mwifiex: make addba request command clean
  net: qtnfmac: constify pci_device_id.
  hostap: Fix outdated comment about dev->destructor
  ASoC: Intel: cnl: add pci id for cnl
  ASoC: Intel: cnl: add dsp ops for cannonlake
  ASoC: Intel: cnl: Add sst library functions for cnl platform
  ASoC: Intel: cnl: Unstatify common ipc functions
  ASoC: Intel: Skylake: Move platform specific init to platform dsp_init()
  ASoC: Intel: cnl: Add cnl dsp functions and registers
  ASoC: Intel: Skylake: Add dsp cores management
  ASoC: Intel: Skylake: Use num_core to allocate instead of macro
  ASoC: Intel: Skylake: Add num of cores in dsp ops
  ASoC: Intel: kbl: Add map for new DAIs for Multi-Playback & Echo Ref
  ASoC: Intel: kbl: Add DAI links for Multi-Playback & Echo-reference
  ASoC: Intel: kbl: Add new FEs for Multi-Playback & Echo-Reference
  rtlwifi: rtl8192ee: constify pci_device_id.
  rtlwifi: rtl8188ee: constify pci_device_id.
  rtlwifi: rtl8723be: constify pci_device_id.
  rtlwifi: rtl8723ae: constify pci_device_id.
  rtlwifi: rtl8821ae: constify pci_device_id.
  rtlwifi: rtl8192se: constify pci_device_id.
  rtlwifi: rtl8192de: constify pci_device_id.
  qtnfmac: Tidy up DMA mask setting
  qtnfmac: prepare for AP_VLAN interface type support
  qtnfmac: remove function qtnf_cmd_skb_put_action
  qtnfmac: fix handling of iftype mask reported by firmware
  qtnfmac: implement scan timeout
  qtnfmac: implement cfg80211 channel_switch handler
  qtnfmac: move current channel info from vif to mac
  qtnfmac: fix station leave reason endianness
  qtnfmac: implement reporting current channel
  qtnfmac: implement cfg80211 dump_survey handler
  qtnfmac: add missing bus lock
  qtnfmac: regulatory configuration for self-managed setup
  qtnfmac: updates for regulatory support
  rtlwifi: Fix fallback firmware loading
  mwifiex: correct IE parse during association
  rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
  HID: multitouch: use proper symbolic constant for 0xff310076 application
  ASoC: Intel: Skylake: Use correct nuvoton codec ID
  HID: multitouch: Support Asus T304UA media keys
  HID: multitouch: Support HID_GD_WIRELESS_RADIO_CTLS
  phy: rockchip-inno-usb2: Replace the extcon API
  powerpc: Remove old unused icswx based coprocessor support
  powerpc/mm: Cleanup check for stack expansion
  powerpc/mm: Don't lose "major" fault indication on retry
  powerpc/mm: Move page fault VMA access checks to a helper
  powerpc/mm: Set fault flags earlier
  powerpc/mm: Add a bunch of (un)likely annotations to do_page_fault
  powerpc/mm: Move/simplify faulthandler_disabled() and !mm check
  powerpc/mm: Move the DSISR_PROTFAULT sanity check
  powerpc/mm: Cosmetic fix to page fault accounting
  powerpc/mm: Move CMO accounting out of do_page_fault into a helper
  powerpc/mm: Rework mm_fault_error()
  powerpc/mm: Make bad_area* helper functions
  powerpc/mm: Fix reporting of kernel execute faults
  powerpc/mm: Simplify returns from __do_page_fault
  powerpc/mm: Move debugger check to notify_page_fault()
  powerpc/mm: Overhaul handling of bad page faults
  powerpc/mm: Move error_code checks for bad faults earlier
  powerpc/mm: Move out definition of CPU specific is_write bits
  powerpc/mm: Use symbolic constants for filtering SRR1 bits on ISIs
  powerpc/mm: Update bits used to skip hash_page
  powerpc/mm: Update definitions of DSISR bits
  powerpc/6xx: Handle DABR match before calling do_page_fault
  crypto: rockchip - return the err code when unable dequeue the crypto request
  crypto: rockchip - move the crypto completion from interrupt context
  hwrng: mx-rngc - add a driver for Freescale RNGC
  Documentation: devicetree: add Freescale RNGC binding
  hwrng: Kconfig - Correct help text about feeding entropy pool
  crypto: scompress - defer allocation of scratch buffer to first use
  crypto: scompress - free partially allocated scratch buffers on failure
  crypto: scompress - don't sleep with preemption disabled
  crypto: brcm - Support more FlexRM rings than SPU engines.
  crypto: atmel-ecc - fix signed integer to u8 assignment
  crypto: ecdh - fix concurrency on shared secret and pubkey
  crypto: ccp - remove duplicate module version and author entry
  crypto: tcrypt - remove AES-XTS-192 speed tests
  Crypto: atmel-ecc: Make a couple of local functions static
  crypto: img-hash - remove unnecessary static in img_hash_remove()
  crypto: atmel-tdes - remove unnecessary static in atmel_tdes_remove()
  crypto: atmel-sha - remove unnecessary static in atmel_sha_remove()
  crypto: omap-sham - remove unnecessary static in omap_sham_remove()
  crypto: n2 - Convert to using %pOF instead of full_name
  crypto: caam/jr - add support for DPAA2 parts
  ARM: dts: imx6ul-14x14-evk: Remove unrelated pin from ENET group
  ARM: dts: imx7d-sdb: Add flexcan support
  ARM: dts: imx7-colibri: add NAND support
  ARM: dts: imx7: add GPMI NAND and APBH DMA
  ipv4: fib: Remove unused functions
  mlxsw: spectrum_router: Refresh offload indication upon group refresh
  mlxsw: spectrum_router: Don't check state when refreshing offload indication
  mlxsw: spectrum_router: Provide offload indication using nexthop flags
  rocker: Provide offload indication using nexthop flags
  ipv4: fib: Set offload indication according to nexthop flags
  mlxsw: core: Use correct EMAD transaction ID in debug message
  netvsc: remove bonding setup script
  netvsc: add documentation
  netvsc: transparent VF management
  atm: solos-pci: constify attribute_group structures
  atm: adummy: constify attribute_group structure
  liquidio: set sriov_totalvfs correctly
  net: dsa: Add support for 64-bit statistics
  cgroup: short-circuit cset_cgroup_from_root() on the default hierarchy
  ARM: dts: bcm2835: Add Raspberry Pi Zero W
  dt-bindings: bcm: Add Raspberry Pi Zero W
  ARM: bcm283x: Define UART pinmuxing on board level
  PCI: shpchp: Enable bridge bus mastering if MSI is enabled
  PCI: dwc: designware: Test PCIE_ATU_ENABLE bit specifically
  PCI: dwc: designware: Make dw_pcie_prog_*_atu_unroll() static
  PCI: mvebu: Remove unneeded gpiod NULL check
  selftests: capabilities: convert the test to use TAP13 ksft framework
  selftests: capabilities: fix to run Non-root +ia, sgidroot => i test
  selftests: ptp: include default header install path
  drm: arcpgu: Allow some clock deviation in crtc->mode_valid() callback
  drm: arcpgu: Fix module unload
  drm: arcpgu: Fix mmap() callback
  arcpgu: Simplify driver name
  drm/arcpgu: Opt in debugfs
  selinux: Generalize support for NNP/nosuid SELinux domain transitions
  selftests: sigaltstack: convert to use TAP13 ksft framework
  ARC: Remove empty kernel/pcibios.c
  PCI: Add a generic weak pcibios_align_resource()
  selftests: splice: add .gitignore for generated files
  selftests: pstore: add .gitignore for generated files
  PCI: Add a generic weak pcibios_fixup_bus()
  soc: qcom: GLINK SSR notifier
  remoteproc: qcom: Add support for SSR notifications
  cgroup: re-use the parent pointer in cgroup_destroy_locked()
  cgroup: add cgroup.stat interface with basic hierarchy stats
  cgroup: implement hierarchy limits
  cgroup: keep track of number of descent cgroups
  flow_dissector: remove unused functions
  tcp: tcp_data_queue() cleanup
  net: bcmgenet: drop COMPILE_TEST dependency
  hyperv: netvsc: Neaten netvsc_send_pkt by using a temporary
  ata: sata_gemini: explicitly request exclusive reset control
  ata: Drop unnecessary static
  ASoC: codecs: msm8916-wcd-digital: add CIC filter source selection path
  ASoC: qcom: apq8016-sbc: set default mclk rate
  ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk
  ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk
  block: Add comment to submit_bio_wait()
  arm64: dts: marvell: re-order RTC nodes in Marvell CP110 description
  arm64: dts: marvell: mcbin: add an stdout-path
  arm64: dts: marvell: mcbin: add support for PCIe
  arm64: dts: marvell: mcbin: add support for i2c mux
  arm64: dts: marvell: fix USB3 regulator definition on MacchiatoBin
  arm64: dts: marvell: mcbin: add pinctrl nodes
  arm64: dts: marvell: cp110: add GPIO interrupts
  ARM64: dts: marvell: armada-37xx: Enable USB2 on espressobin
  ARM64: dts: marvell: armada-37xx: Wire PMUv3
  ARM64: dts: marvell: armada-37xx: Enable memory-mapped GIC CPU interface
  ARM64: dts: marvell: armada-37xx: Fix GIC maintenance interrupt
  tty: fix __tty_insert_flip_char regression
  ARM: always enable AEABI for ARMv6+
  ARM: avoid saving and restoring registers unnecessarily
  ARM: move PC value into r9
  ARM: obtain thread info structure later
  ARM: use aliases for registers in entry-common
  ARM: 8689/1: scu: add missing errno include
  ARM: 8688/1: pm: add missing types include
  drm/i915: Fix out-of-bounds array access in bdw_load_gamma_lut
  netfilter: constify nf_loginfo structures
  netfilter: constify nf_conntrack_l3/4proto parameters
  netfilter: xtables: Remove unused variable in compat_copy_entry_from_user()
  drm/msm: Add A5XX hardware fault detection
  drm/msm: Remove uneeded platform dev members
  drm/msm/mdp5: Set up runtime PM for MDSS
  drm/msm/mdp5: Write to SMP registers even if allocations don't change
  drm/msm/mdp5: Don't use mode_set helper funcs for encoders and CRTCs
  drm/msm/dsi: Implement RPM suspend/resume callbacks
  drm/msm/dsi: Set up runtime PM for DSI
  drm/msm/hdmi: Set up runtime PM for HDMI
  drm/msm/mdp5: Use runtime PM get/put API instead of toggling clocks
  ASoC: rcar: unregister fixed rate on ADG
  soc: mtk-pmic-wrap: make of_device_ids const.
  arm64: dts: juno: replace underscores with hyphen in device node names
  arm64: dts: juno: Use the new coresight replicator string
  ASoC: codec: add DT support in dmic codec
  ASoC: Add bindings for DMIC codec driver
  ASoC: rt5663: Seprate the DC offset between headphone and headset
  ASoC: wm8524: Don't use dev_err to show supported sample rate
  ASoC: wm8523: Constfiy lrclk_ratios and bclk_ratios
  ASoC: wm8523: Fix array size for bclk_ratios
  net: Allow IPsec GSO for local sockets
  s390: remove asm/mman.h and asm/types.h
  s390/nmi: keep comments consistent
  xfrm: Clear RX SKB secpath xfrm_offload
  xfrm: Auto-load xfrm offload modules
  esp6: Fix RX checksum after header pull
  xfrm6: Fix CHECKSUM_COMPLETE after IPv6 header push
  esp6: Support RX checksum with crypto offload
  esp4: Support RX checksum with crypto offload
  HID: input: optionally use device id in battery name
  HID: input: map digitizer battery usage
  EDAC, sb_edac: Classify memory mirroring modes
  powerpc/mm: Pre-filter SRR1 bits before do_page_fault()
  powerpc/mm: Move exception_enter/exit to a do_page_fault wrapper
  powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range
  powerpc/mm/radix: Improve TLB/PWC flushes
  powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes
  net: dsa: rename switch EEE ops
  net: dsa: mv88e6xxx: remove EEE support
  net: dsa: remove PHY device argument from .set_eee
  net: dsa: call phy_init_eee in DSA layer
  net: dsa: mv88e6xxx: call phy_init_eee
  net: dsa: bcm_sf2: remove unneeded supported flags
  net: dsa: qca8k: empty qca8k_get_eee
  net: dsa: qca8k: do not cache unneeded EEE fields
  net: dsa: qca8k: enable EEE once
  net: dsa: qca8k: fix EEE init
  net: dsa: PHY device is mandatory for EEE
  drm/ast: Actually load DP501 firmware when required
  drm/ast: Add an crtc_disable callback to the crtc helper funcs
  drm/ast: Fix memleak in error path in ast_bo_create()
  drm/ast: Free container instead of member in ast_user_framebuffer_destroy()
  drm/ast: Simplify function ast_bo_unpin()
  ARM: dts: BCM5301X: Specify USB ports for each controller
  ravb: add workaround for clock when resuming with WoL enabled
  ravb: add wake-on-lan support via magic packet
  randstruct: Enable function pointer struct detection
  drivers/net/wan/z85230.c: Use designated initializers
  net: add skb_frag_foreach_page and use with kmap_atomic
  MAINTAINERS: add Sean/Nelson as MediaTek ethernet maintainers
  net-next: mediatek: add support for MediaTek MT7622 SoC
  net-next: mediatek: add platform data to adapt into various hardware
  dt-bindings: net: mediatek: add support for MediaTek MT7623 and MT7622 SoC
  strparser: Generalize strparser
  skbuff: Function to send an skbuf on a socket
  proto_ops: Add locked held versions of sendmsg and sendpage
  nfsd4: move some nfsd4 op definitions to xdr4.h
  platform/x86: intel-hid: Wake up Dell Latitude 7275 from suspend-to-idle
  platform/x86: dell-wmi: Fix driver interface version query
  x86/intel_rdt: Show bitmask of shareable resource with other executing units
  x86/intel_rdt/mbm: Handle counter overflow
  x86/intel_rdt/mbm: Add mbm counter initialization
  x86/intel_rdt/mbm: Basic counting of MBM events (total and local)
  x86/intel_rdt/cqm: Add CPU hotplug support
  x86/intel_rdt/cqm: Add sched_in support
  x86/intel_rdt: Introduce rdt_enable_key for scheduling
  x86/intel_rdt/cqm: Add mount,umount support
  x86/intel_rdt/cqm: Add rmdir support
  x86/intel_rdt: Separate the ctrl bits from rmdir
  x86/intel_rdt/cqm: Add mon_data
  x86/intel_rdt: Prepare for RDT monitor data support
  x86/intel_rdt/cqm: Add cpus file support
  x86/intel_rdt: Prepare to add RDT monitor cpus file support
  x86/intel_rdt/cqm: Add tasks file support
  x86/intel_rdt: Change closid type from int to u32
  x86/intel_rdt/cqm: Add mkdir support for RDT monitoring
  x86/intel_rdt: Prepare for RDT monitoring mkdir support
  x86/intel_rdt/cqm: Add info files for RDT monitoring
  x86/intel_rdt: Simplify info and base file lists
  x86/intel_rdt/cqm: Add RMID (Resource monitoring ID) management
  x86/intel_rdt/cqm: Add RDT monitoring initialization
  x86/intel_rdt: Make rdt_resources_all more readable
  x86/intel_rdt: Cleanup namespace to support RDT monitoring
  x86/intel_rdt: Mark rdt_root and closid_alloc as static
  x86/intel_rdt: Change file names to accommodate RDT monitor code
  x86/intel_rdt: Introduce a common compile option for RDT
  x86/intel_rdt/cqm: Documentation for resctrl based RDT Monitoring
  x86/perf/cqm: Wipe out perf based cqm
  sunrpc: Const-ify all instances of struct rpc_xprt_ops
  ARM64: dts: meson-gxbb-nanopi-k2: Add GPIO lines names
  ARM64: dts: meson-gxl-khadas-vim: Add GPIO lines names
  ARM64: dts: meson-gxbb: p20x: add card regulator settle times
  ARM: dts: meson: mark the clock controller also as reset controller
  mtd: mtk-quadspi: Remove unneeded pinctrl header
  mtd: atmel-quadspi: Remove unneeded pinctrl header
  dt-bindings: amlogic: add unstable statement
  mtd: spi-nor: Recover from Spansion/Cypress errors
  exec: Consolidate pdeath_signal clearing
  exec: Use sane stack rlimit under secureexec
  exec: Consolidate dumpability logic
  smack: Remove redundant pdeath_signal clearing
  exec: Use secureexec for clearing pdeath_signal
  exec: Use secureexec for setting dumpability
  LSM: drop bprm_secureexec hook
  commoncap: Move cap_elevated calculation into bprm_set_creds
  commoncap: Refactor to remove bprm_secureexec hook
  smack: Refactor to remove bprm_secureexec hook
  selinux: Refactor to remove bprm_secureexec hook
  apparmor: Refactor to remove bprm_secureexec hook
  binfmt: Introduce secureexec flag
  exec: Correct comments about "point of no return"
  exec: Rename bprm->cred_prepared to called_set_creds
  dt-bindings: update OpenFirmware document links to devicetree.org
  of/irq: use of_property_read_u32_index to parse interrupts property
  of/device: use of_property_for_each_string to parse compatible strings
  mtd: spi-nor: intel-spi: Add support for Intel Denverton SPI serial flash controller
  Revert "l2tp: constify inet6_protocol structures"
  Revert "ipv6: constify inet6_protocol structures"
  drm: Create a format/modifier blob
  drm: Plumb modifiers through plane init
  perf trace beautify ioctl: Beautify perf ioctl's 'cmd' arg
  perf trace beautify ioctl: Beautify vhost virtio ioctl's 'cmd' arg
  tools include uapi: Grab a copy of linux/vhost.h
  perf trace beauty ioctl: Pass _IOC_DIR to the per _IOC_TYPE scnprintf
  perf trace beautify ioctl: Beautify KVM ioctl's 'cmd' arg
  tools include uapi: Grab a copy of linux/kvm.h
  perf trace beautify ioctl: Beautify sound ioctl's 'cmd' arg
  tools include uapi: Grab a copy of sound/asound.h
  perf trace beauty ioctl: Beautify DRM ioctl cmds
  fbdev: Nuke FBINFO_MODULE
  fbcon: Make fbcon a built-time depency for fbdev
  blk-mq: add warning to __blk_mq_run_hw_queue() for ints disabled
  video: fbdev: vt8623fb: constify pci_device_id.
  video: fbdev: matroxfb: constify pci_device_id.
  video: fbdev: pm3fb: constify pci_device_id.
  video: fbdev: s3fb: constify pci_device_id.
  video: fbdev: neofb: constify pci_device_id.
  video: fbdev: gxfb: constify pci_device_id.
  video: fbdev: pm2fb: constify pci_device_id.
  video: fbdev: imsttfb: constify pci_device_id.
  video: fbdev: sunxvr500: constify pci_device_id.
  video: fbdev: tdfx: constify pci_device_id.
  video: fbdev: mb862xx: constify pci_device_id.
  video: fbdev: nvidia: constify pci_device_id.
  video: fbdev: vermilion: constify pci_device_id.
  video: fbdev: kyro: constify pci_device_id.
  video: fbdev: arkfb: constify pci_device_id.
  video: fbdev: i810: constify pci_device_id.
  video: fbdev: riva: constify pci_device_id.
  video: fbdev: savage: constify pci_device_id.
  video: fbdev: via: constify pci_device_id.
  video: fbdev: skeletonfb: constify pci_device_id.
  video: fbdev: tridentfb: constify pci_device_id.
  video: fbdev: pvr2fb: constify pci_device_id.
  video: fbdev: intelfb: constify pci_device_id.
  video: fbdev: asiliantfb: constify pci_device_id.
  video: fbdev: sunxvr2500: constify pci_device_id.
  video: fbdev: aty128fb: constify pci_device_id.
  video: fbdev: atyfb: constify pci_device_id.
  video: fbdev: radeon: constify pci_device_id.
  omapfb: panel-sony-acx565akm: constify attribute_group structures.
  omapfb: panel-tpo-td043mtea1: constify attribute_group structures.
  video: fbdev: uvesafb: constify attribute_group structures.
  video: bfin-lq035q1-fb: constify dev_pm_ops
  fbdev: da8xx-fb: Drop unnecessary static
  drivers/video/fbdev/omap/lcd_mipid.c: add const to lcd_panel structure
  video: cobalt_lcdfb: constify fb_fix_screeninfo structure
  video: xilinxfb: constify fb_fix_screeninfo and fb_var_screeninfo structures
  video/chips: constify fb_fix_screeninfo and fb_var_screeninfo structures
  video/mbx: constify fb_fix_screeninfo and fb_var_screeninfo structures
  video: fbdev: sm712fb.c: fixed constant-left comparison warning
  video: fbdev: sm712fb.c: fixed prefer unsigned int warning
  video: fbdev: sm712fb.c: fix unaligned block comments warning
  video: fbdev: sm712fb.c: using __func__ macro for pr_debug
  omapfb: use of_graph_get_remote_endpoint()
  arm: dts: mt2701: Add usb3 device nodes
  arm: dts: mt2701: Add ethernet device node
  ARM: mediatek: dts: Cleanup bindings documentation
  ASoC: rt5514: Add the sanity checks of the buffer related address
  tools include uapi: Grab copies of drm/{drm,i915_drm}.h
  perf trace beauty ioctl: Improve 'cmd' beautifier
  mm: remove optimizations based on i_size in mapping writeback waits
  fs: convert a pile of fsync routines to errseq_t based reporting
  gfs2: convert to errseq_t based writeback error reporting for fsync
  fs: convert sync_file_range to use errseq_t based error-tracking
  futex: Allow for compiling out PI support
  ASoC: sun4i-i2s: Extend quirks scope
  ASoC: Intel: Skylake: Fix potential null pointer dereference
  ASoC: Intel: Skylake: Remove return check for skl_codec_create()
  ASoC: Intel: bxtn: Remove code loader reference in cleanup
  ASoC: Intel: Skylake: Reset the controller in probe
  cpufreq: Process remote callbacks from any CPU if the platform permits
  sched: cpufreq: Allow remote cpufreq callbacks
  cpufreq: intel_pstate: Drop INTEL_PSTATE_HWP_SAMPLING_INTERVAL
  PM / OPP: Fix get sharing CPUs when hotplug is used
  ACPI / sleep: Make acpi_sleep_syscore_init() static
  ACPI / PCI / PM: Rework acpi_pci_propagate_wakeup()
  ACPI / PM: Split acpi_device_wakeup()
  PCI / PM: Skip bridges in pci_enable_wake()
  powerpc/kernel: Avoid preemption check in iommu_range_alloc()
  ASoC: rt5663: Add the delay time to correct the calibration
  ASoC: codecs: fix wm8524 build error
  HID: Remove the semaphore driver_lock
  powerpc/powernv: Clear PECE1 in LPCR via stop-api only on Hotplug
  powerpc/powernv: Save/Restore additional SPRs for stop4 cpuidle
  iwlwifi: mvm: don't retake the pointer to skb's CB
  iwlwifi: mvm: remove non-DQA mode
  iwlwifi: mvm: rename p2p-specific sta functions to include p2p in the names
  iwlwifi: mvm: simplify bufferable MMPDU check
  iwlwifi: mvm: require AP_LINK_PS for TVQM
  iwlwifi: pcie: rename iwl_trans_check_hw_rf_kill() to pcie
  iwlwifi: mvm: add compile-time option to disable EBS
  iwlwifi: implement fseq version mismatch warning
  iwlwifi: mvm: support fw reading empty OTP
  iwlwifi: pcie: fix A-MSDU on gen2 devices
  iwlwifi: mvm: fix uninitialized var while waiting for queues to empty
  iwlwifi: mvm: fix the FIFO numbers in A000 devices
  iwlwifi: mvm: refactor beacon template command code
  iwlwifi: dvm: remove unused defines
  iwlwifi: mvm: byte-swap constant instead of variable
  iwlwifi: mvm: check family instead of new TX API for workarounds
  iwlwifi: mvm: add and use iwl_mvm_has_unified_ucode()
  iwlwifi: fw api: fix various kernel-doc warnings
  iwlwifi: reorganize firmware API
  iwlwifi: refactor firmware debug code
  iwlwifi: track current firmware image in common code
  iwlwifi: refactor shared mem parsing
  iwlwifi: refactor out paging code
  HID: wacom: add USB_HID dependency
  drm/msm: Convert to use new iterator macros, v2.
  drm/nouveau: Convert nouveau to use new iterator macros, v2.
  drm/omapdrm: Fix omap_atomic_wait_for_completion
  drm/atomic: Use new iterator macros in drm_atomic_helper_wait_for_flip_done, again.
  Bluetooth: btusb: add ID for LiteOn 04ca:3016
  clk: sunxi-ng: Wait for lock when using fractional mode
  clk: sunxi-ng: Make fractional helper less chatty
  clk: sunxi-ng: multiplier: Fix fractional mode
  clk: sunxi-ng: Fix fractional mode for N-M clocks
  tools headers: Fixup tools/include/uapi/linux/bpf.h copy of kernel ABI header
  tools perf: Do not check spaces/blank lines when checking header file copy drift
  tools include uapi: Grab a copy of asm-generic/ioctls.h
  ipv6: Avoid going through ->sk_net to access the netns
  net: phy: marvell: Refactor setting downshift into a helper
  net: phy: marvell: Use the set_polarity helper
  net: phy: marvell: Refactor m88e1121 RGMII delay configuration
  net: phy: marvell: Consolidate setting the phy-mode
  net: phy: marvell: consolidate RGMII delay code
  net: phy: marvell: Use core genphy_soft_reset()
  net: phy: marvell: tabification
  net: bcmgenet: Add dependency on HAS_IOMEM && OF
  tcp: add related fields into SCM_TIMESTAMPING_OPT_STATS
  tcp: extract the function to compute delivery rate
  f2fs: introduce f2fs_statfs_project
  f2fs: support F2FS_IOC_FS{GET,SET}XATTR
  f2fs: don't need to wait for node writes for atomic write
  f2fs: avoid naming confusion of sysfs init
  f2fs: support project quota
  f2fs: record quota during dot{,dot} recovery
  f2fs: enhance on-disk inode structure scalability
  f2fs: make max inline size changeable
  f2fs: add ioctl to expose current features
  f2fs: make background threads of f2fs being aware of freezing
  net: phy: Log only PHY state transitions
  mm: add file_fdatawait_range and file_write_and_wait
  fuse: convert to errseq_t based error tracking for fsync
  selinux: genheaders should fail if too many permissions are defined
  arm64: dts: rockchip: update dynamic-power-coefficient for rk3399
  ARM: rockchip: enable ZONE_DMA for non 64-bit capable peripherals
  mlxsw: spectrum_router: Simplify a piece of code
  mlxsw: spectrum_router: Clarify a piece of code
  mlxsw: spectrum_router: Simplify a piece of code
  mlxsw: reg.h: Namespace IP2ME registers
  mlxsw: Update specification of reg_ritr_type
  mlxsw: spectrum_router: Fix a typo
  mlxsw: reg.h: Fix a typo
  mlxsw: spectrum_acl: Fix a typo
  net: bcmgenet: Utilize bcmgenet_mii_exit() for error path
  net: bcmgenet: Drop legacy MDIO code
  net: bcmgenet: utilize generic Broadcom UniMAC MDIO controller driver
  net: phy: mdio-bcm-unimac: Allow specifying platform data
  net: phy: mdio-bcm-unimac: Add debug print for PHY workaround
  net: phy: mdio-bcm-unimac: create unique bus names
  net: phy: mdio-bcm-unimac: factor busy polling loop
  tcp: remove unused mib counters
  tcp: remove CA_ACK_SLOWPATH
  tcp: remove header prediction
  tcp: remove low_latency sysctl
  tcp: reindent two spots after prequeue removal
  tcp: remove prequeue support
  PCI: Mark AMD Stoney GPU ATS as broken
  MIPS: PCI: Fix pcibios_scan_bus() NULL check code path
  PCI: iproc: Remove unused struct iproc_pcie *pcie
  PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken
  PCI/portdrv: Move error handler methods to struct pcie_port_service_driver
  IB/hfi1: Always perform offline transition
  IB/hfi1: Prevent link down request double queuing
  IB/hfi1: Create workqueue for link events
  IB/{rdmavt, hfi1, qib}: Fix panic with post receive and SGE compression
  IB/hfi1: Disambiguate corruption and uninitialized error cases
  IB/hfi1: Only set fd pointer when base context is completely initialized
  IB/hfi1: Do not enable disabled port on cable insert
  IB/hfi1: Harden state transition to Armed and Active
  IB/hfi1: Split copy_to_user data copy for better security
  IB/hfi1: Verify port data VLs credits on transition to Armed
  IB/hfi1: Move saving PCI values to a separate function
  IB/hfi1: Fix initialization failure for debug firmware
  IB/hfi1: Fix code consistency for if/else blocks in chip.c
  IB/hfi1: Send MAD traps until repressed
  IB/hfi1: Pass the context pointer rather than the index
  IB/hfi1: Use context pointer rather than context index
  IB/hfi1: Size rcd array index correctly and consistently
  IB/hfi1: Remove unused user context data members
  IB/hfi1: Assign context does not clean up file descriptor correctly on error
  IB/hfi1: Serve the most starved iowait entry first
  IB/hfi1: Fix bar0 mapping to use write combining
  IB/hfi1: Check return values from PCI config API calls
  IB/hns: include linux/interrupt.h
  netfilter: conntrack: do not enable connection tracking unless needed
  netfilter: nft_set_rbtree: use seqcount to avoid lock in most cases
  netfilter: nf_tables: Allow object names of up to 255 chars
  netfilter: nf_tables: Allow set names of up to 255 chars
  netfilter: nf_tables: Allow chain name of up to 255 chars
  netfilter: nf_tables: Allow table names of up to 255 chars
  netlink: Introduce nla_strdup()
  netfilter: nf_tables: No need to check chain existence when tracing
  dma-buf/sw_sync: clean up list before signaling the fence
  netfilter: nf_hook_ops structs can be const
  dma-buf/sw_sync: move timeline_fence_ops around
  netfilter: nfnetlink_queue: don't queue dying conntracks to userspace
  netfilter: conntrack: destroy functions need to free queued packets
  netfilter: add and use nf_ct_unconfirmed_destroy
  netfilter: expect: add and use nf_ct_expect_iterate helpers
  netfilter: conntrack: Change to deferable work queue
  netfilter: nf_tables: add fib expression to the netdev family
  netfilter: nf_tables: fib: use skb_header_pointer
  ARM: tegra: Select appropriate DMA options for LPAE
  i2c: Convert to using %pOF instead of full_name
  ARM: dts: iwg20m: Correct indentation of mmcif0 properties
  ARM: dts: rskrza1: Add LED0 pin support
  ARM: dts: rskrza1: Add SDHI1 pin group
  ARM: dts: rskrza1: Add Ethernet pin group
  ARM: dts: rskrza1: Add SCIF2 pin group
  ARM: dts: genmai: Add ethernet pin group
  ARM: dts: genmai: Add user led device nodes
  ARM: dts: genmai: Add RIIC2 pin group
  ARM: dts: genmai: Add SCIF2 pin group
  ARM: dts: r7s72100: Add pin controller node
  i2c: use dev_get_drvdata() to get private data in suspend/resume hooks
  ARM: tegra: Register host1x node with IOMMU binding on Tegra124
  ASoC: soc-pcm: Remove unused 'debugfs_dpcm_state' entry
  drm: todo: Avoid accidental crossreferences
  i2c: mediatek: send i2c master code at 400k
  tools headers: Fixup tools/include/uapi/linux/bpf.h copy of kernel ABI header
  tools headers: Sync kernel ABI headers with tooling headers
  perf build: Clarify open-coded header version warning message
  perf build: Clarify header version warning message
  drm: Add a few missing descriptions in drm_driver docs
  gpu/host1x: Remove excess parameter in host1x_subdev_add docs
  drm: Fix warning when building docs for scdc_helper
  drm/modes: Fix drm_mode_is_420_only() comment
  tools/power/cpupower: allow running without cpu0
  HID: add ALWAYS_POLL quirk for Logitech 0xc077
  drm: Fix kerneldoc for atomic_async_update
  drm/atomic: Update comment to match the code
  ARM: mediatek: add MT7623a smp bringup code
  arm: dts: mt7623: add clock-frequency to CPU nodes
  arm: dts: mt7623: add support for Bananapi R2 (BPI-R2) board
  arm: dts: mt7623: enable the nand device on the mt7623n nand rfb
  arm: dts: mt7623: enable the usb device on the mt7623n rfb
  arm: dts: mt7623: cleanup the mt7623n rfb uart nodes
  arm: dts: mt7623: rename mt7623-evb.dts to arch/arm/boot/dts/mt7623n-rfb.dtsi
  arm: dts: mt7623: add mt6323.dtsi file
  dt-bindings: arm: mediatek: add bindings for mediatek MT7623a SoC Platform
  dt-bindings: arm: mediatek: update for MT7623n SoC and relevant boards
  PM / CPU: replace raw_notifier with atomic_notifier
  ACPI: APEI: Enable APEI multiple GHES source to share a single external IRQ
  Bluetooth: hci_uart: Fix uninitialized alignment value
  soc/tegra: Fix bad of_node_put() in powergate init
  dt-bindings: clock: meson8b: describe the embedded reset controller
  drm/i915: Update DRIVER_DATE to 20170731
  powerpc/mm: Fix check of multiple 16G pages from device tree
  powerpc/udbg: Reduce the footgun potential of EARLY_DEBUG_LPAR(_HVSI)
  powerpc/configs: Add a powernv_be_defconfig
  ARM: dts: keystone-k2e-evm: Add and enable DSP CMA memory pool
  ARM: dts: keystone-k2l-evm: Add and enable common DSP CMA memory pool
  ARM: dts: keystone-k2hk-evm: Add and enable common DSP CMA memory pool
  ARM: dts: keystone-k2e: Add DSP node
  ARM: dts: keystone-k2l: Add DSP nodes
  ARM: dts: keystone-k2hk: Add DSP nodes
  net sched actions: add time filter for action dumping
  net sched actions: dump more than TCA_ACT_MAX_PRIO actions per batch
  net sched actions: Use proper root attribute table for actions
  net netlink: Add new type NLA_BITFIELD32
  net: fec: Allow reception of frames bigger than 1522 bytes
  net: fec: Issue error for missing but expected PHY
  net: dsa: lan9303: MDIO access phy registers directly
  net: dsa: lan9303: Renamed indirect phy access functions
  net: dsa: lan9303: Multiply by 4 to get MDIO register
  net: dsa: lan9303: Fix lan9303_detect_phy_setup() for MDIO
  drm/rockchip: vop: rk3328: fix overlay abnormal
  dt-bindings: display: rockchip: fill Documents for vop series
  drm/rockchip: vop: add a series of vop support
  drm/rockchip: vop: group vop registers
  drm/rockchip: vop: move line_flag_num to interrupt registers
  drm/rockchip: vop: move write_relaxed flags to vop register
  drm/rockchip: vop: initialize registers directly
  rtc: max8925: remove redundant check on ret
  rtc: sun6i: ensure clk_data is kfree'd on error
  rtc: sun6i: Remove double init of spinlock in sun6i_rtc_clk_init()
  rtc: ds1307: remove legacy check for "isil, irq2-can-wakeup-machine" property
  rtc: s35390a: implement ioctls
  rtc: s35390a: handle invalid RTC time
  staging: wlan-ng: Fix the types of the hfa384x_comm_tallies_16/32 members
  Staging: rtl8723bs: Do not initialise static to 0.
  Staging: wlan-ng: hfa384x.h: Fix endianness warning for hfa384x_ps_user_count
  staging: rts5208: Change fixed function names with "%s: ", __func__
  staging: wilc1000: fix spelling mistake: "Iinitialization" -> "initialization"
  staging: bcm2835-audio: constify snd_pcm_ops structures
  staging: rtl8723bs: fix build when DEBUG_RTL871X is defined
  staging: nvec: explicitly request exclusive reset control
  staging: imx: fix non-static declarations
  staging: fsl-mc: include irqreturn.h as needed
  staging: fsl-mc/dpio: Skip endianness conversion in portal config
  staging: fsl-dpaa2/eth: Error report format fixes
  staging: fsl-dpaa2/eth: Fix skb use after free
  staging: fsl-mc: fix resource_size.cocci warnings
  staging: fsl-mc: allow the driver compile multi-arch
  staging: fsl-mc: make the driver compile on 32-bit
  staging: fsl-mc: don't use raw device io functions
  staging: fsl-mc: fix formating of phys_addr_t on 32 bits
  staging: fsl-mc: fix compilation with non-generic msi domain ops
  staging: fsl-mc: drop useless gic v3 related #include
  staging: fsl-mc: use generic memory barriers
  staging: fsl-mc: add missing fsl_mc comment in struct msi_desc
  staging: rtl8723bs: rtw_efuse: Fix a misspell
  Staging: wlan-ng: Fixing coding style warnings
  staging: goldfish: Use __func__ instead of function name
  staging: lustre: lov: remove dead code
  staging: lustre: llite: set security xattr using __vfs_setxattr
  staging: lustre: llite: add xattr.h header to xattr.c
  staging: lustre: llite: allow cached acls
  staging: lustre: libcfs: fix test for libcfs_ioctl_hdr minimum size
  staging: lustre: ptlrpc: print times in microseconds
  staging: lustre: ptlrpc: don't use CFS_DURATION_T for time64_t
  staging: lustre: ptlrpc: restore 64-bit time for struct ptlrpc_cli_req
  staging: lustre: linkea: linkEA size limitation
  staging: lustre: lustre: fix all less than 0 comparison for unsigned values
  staging: lustre: ldlm: restore interval_iterate_reverse function
  staging: lustre: ptlrpc: no need to reassign mbits for replay
  staging: lustre: ptlrpc: correct use of list_add_tail()
  staging: lustre: lov: Ensure correct operation for large object sizes
  staging: lustre: lmv: assume a real connection in lmv_connect()
  staging: lustre: lov: remove unused code
  staging: lustre: lov: fix 'control flow' error in lov_io_init_released
  staging: lustre: ldlm: crash on umount in cleanup_resource
  staging: lustre: ldlm: restore missing newlines in ldlm sysfs files
  staging: lustre: osc: soft lock - osc_makes_rpc()
  staging: lustre: lov: refactor lov_object_fiemap()
  staging: lustre: lov: use u64 instead of loff_t in lov_object_fiemap()
  staging: lustre: obdclass: linux: constify attribute_group structures.
  staging: lustre: ldlm: constify attribute_group structures.
  staging: lustre: constify attribute_group structures.
  staging: lustre: lnet: fix incorrect arguments order calling lstcon_session_new
  staging: comedi: ni_mio_common.c: fix coding style issue
  staging: fsl-mc: Convert to using %pOF instead of full_name
  greybus: usb: constify hc_driver structures
  tty: improve tty_insert_flip_char() slow path
  tty: improve tty_insert_flip_char() fast path
  dt-bindings: serial/rs485: make rs485-rts-delay optional
  serial: fsl_lpuart: clear unsupported options in .rs485_config()
  serial: 8250_pci: Enable device after we check black list
  serial: core: move UPF_NO_TXEN_TEST to quirks and rename
  serial: core: enforce type for upf_t when copying
  serial: 8250_early: Remove __init marking from early write
  serial: 8250_ingenic: Remove __init marking from early write
  serial: xuartps: Remove __init marking from early write
  serial: omap: Remove __init marking from early write
  serial: arc: Remove __init marking from early write
  drivers/serial: Do not leave sysfs group in case of error in aspeed_vuart_probe()
  serial: sprd: clear timeout interrupt only rather than all interrupts
  serial: imx: drop useless member from driver data
  serial: tegra: explicitly request exclusive reset control
  serial: 8250_dw: explicitly request exclusive reset control
  serial: 8250: fix error handling in of_platform_serial_probe()
  tty: Convert to using %pOF instead of full_name
  tty: serial: jsm: constify pci_device_id.
  tty: synclink_gt: constify pci_device_id.
  tty: serial: pci: constify pci_device_id.
  tty: serial: exar: constify pci_device_id.
  tty: moxa: constify pci_device_id.
  tty: synclink: constify pci_device_id.
  tty: mxser: constify pci_device_id.
  tty: isicom: constify pci_device_id.
  tty: synclinkmp: constify pci_device_id.
  serial: stm32: add fifo support
  serial: stm32: add wakeup mechanism
  dt-bindings: serial: add compatible for stm32h7
  serial: stm32: fix error handling in probe
  serial: stm32: add RTS support
  serial: stm32: Increase maximum number of ports
  serial: stm32: fix multi-ports management
  serial: stm32: fix copyright
  c67x00-hcd: constify hc_driver structures
  USB: whci-hcd: constify hc_driver structures
  USB: HWA: constify hc_driver structures
  isp116x-hcd: constify hc_driver structures
  usb: renesas_usbhs: constify hc_driver structures
  usb: host: u132-hcd: constify hc_driver structures
  usb: host/sl811-hcd: constify hc_driver structures
  usb: r8a66597-hcd: constify hc_driver structures
  usb: host: max3421-hcd: constify hc_driver structures
  isp1362-hcd: constify hc_driver structures
  usb: mtu3: fix ip sleep auto-exit issue when enable DRD mode
  usb: mtu3: clear u1/u2_enable to 0 in mtu3_gadget_reset
  usb: mtu3: handle delayed status of the control transfer
  MAINTAINERS: Add Tony and Boris as ACPI/APEI reviewers
  acpi, x86/mm: Remove encryption mask from ACPI page protection type
  x86/mm, kexec: Fix memory corruption with SME on successive kexecs
  x86/asm/32: Remove a bunch of '& 0xffff' from pt_regs segment reads
  x86/traps: Don't clear segment high bits in early_idt_handler_common()
  x86/asm/32: Make pt_regs's segment registers be 16 bits
  cxgb4: ethtool forward error correction management support
  cxgb4: core hardware/firmware support for Forward Error Correction on a link
  net: ethtool: add support for forward error correction modes
  netvsc: signal host if receive ring is emptied
  netvsc: fix error unwind on device setup failure
  netvsc: optimize receive completions
  netvsc: remove unnecessary indirection of page_buffer
  netvsc: don't print pointer value in error message
  netvsc: fix warnings reported by lockdep
  netvsc: fix return value for set_channels
  liquidio: bump up driver version to match newer NIC firmware
  module: Remove const attribute from alias for MODULE_DEVICE_TABLE
  bnxt_re: add MAY_USE_DEVLINK dependency
  bpf: testing: fix devmap tests
  arm64: dts: rockchip: add rk3328 spdif node
  arm64: dts: rockchip: add rk3368 spdif node
  net: moxa: Add spaces preferred around that '{+,-}'
  net: moxa: Fix for typo in comment to function moxart_mac_setup_desc_ring()
  net: moxa: Remove extra space after a cast
  net: moxa: Fix comparison to NULL could be written with !
  net: moxa: Prefer 'unsigned int' to bare use of 'unsigned'
  net: moxa: Remove braces from single-line body
  v4l: vsp1: Add support for the BRS entity
  v4l: vsp1: Add pipe index argument to the VSP-DU API
  v4l: vsp1: Don't create links for DRM pipeline
  v4l: vsp1: Store source and sink pointers as vsp1_entity
  v4l: vsp1: Don't set WPF sink pointer
  v4l: vsp1: Don't recycle active list at display start
  v4l: vsp1: Fill display list headers without holding dlm spinlock
  net/smc: synchronize buffer usage with device
  net/smc: cleanup function __smc_buf_create()
  net/smc: common functions for RMBs and send buffers
  net/smc: introduce sg-logic for send buffers
  net/smc: remove Kconfig warning
  net/smc: register RMB-related memory region
  net/smc: use separate memory regions for RMBs
  net/smc: introduce sg-logic for RMBs
  net/smc: shorten local bufsize variables
  net/smc: serialize connection creation in all cases
  blk-mq: blk_mq_requeue_work() doesn't need to save IRQ flags
  block: DAC960: shut up format-overflow warning
  block: use standard blktrace API to output cgroup info for debug notes
  blktrace: add an option to allow displaying cgroup path
  block: always attach cgroup info into bio
  blktrace: export cgroup info in trace
  cgroup: export fhandle info for a cgroup
  kernfs: add exportfs operations
  kernfs: introduce kernfs_node_id
  kernfs: don't set dentry->d_fsdata
  kernfs: add an API to get kernfs node from inode number
  kernfs: implement i_generation
  kernfs: use idr instead of ida to manage inode number
  dma-buf/sync_file: Allow multiple sync_files to wrap a single dma-fence
  mm: consolidate dax / non-dax checks for writeback
  Documentation: add some docs for errseq_t
  tinydrm: repaper: add CONFIG_THERMAL dependency
  drm/hisilicon: hibmc: Use the drm_driver.dumb_destroy default
  drm/nouveau: Use the drm_driver.dumb_destroy default
  drm/omapdrm: Use the drm_driver.dumb_destroy default
  drm/amdgpu: Use the drm_driver.dumb_destroy default
  drm/rockchip: Use .dumb_map_offset and .dumb_destroy defaults
  drm/mediatek: Use .dumb_map_offset and .dumb_destroy defaults
  drm/tinydrm: Use .dumb_map_offset and .dumb_destroy defaults
  drm/zte: Use .dumb_map_offset and .dumb_destroy defaults
  drm/vc4: Use .dumb_map_offset and .dumb_destroy defaults
  drm/tilcdc: Use .dumb_map_offset and .dumb_destroy defaults
  drm/sun4i: Use .dumb_map_offset and .dumb_destroy defaults
  drm/stm: Use .dumb_map_offset and .dumb_destroy defaults
  drm/shmobile: Use .dumb_map_offset and .dumb_destroy defaults
  drm/rcar-du: Use .dumb_map_offset and .dumb_destroy defaults
  drm/pl111: Use .dumb_map_offset and .dumb_destroy defaults
  drm/imx: Use .dumb_map_offset and .dumb_destroy defaults
  drm/atmel-hlcdc: Use .dumb_map_offset and .dumb_destroy defaults
  drm/arm: mali-dp: Use .dumb_map_offset and .dumb_destroy defaults
  drm/arm: hdlcd: Use .dumb_map_offset and .dumb_destroy defaults
  drm/arc: Use .dumb_map_offset and .dumb_destroy defaults
  drm/dumb-buffers: Add defaults for .dumb_map_offset and .dumb_destroy
  drm/gem: Add drm_gem_dumb_map_offset()
  batman-adv: Convert batman-adv.txt to reStructuredText
  batman-adv: fix various spelling mistakes
  batman-adv: Remove variable deprecated by skb_put_data
  batman-adv: Remove too short %pM printk field width
  batman-adv: Remove unnecessary length qualifier in %14pM
  batman-adv: Start new development cycle
  l2tp: constify inet6_protocol structures
  ipv6: constify inet6_protocol structures
  f2fs: don't give partially written atomic data from process crash
  f2fs: give a try to do atomic write in -ENOMEM case
  f2fs: preserve i_mode if __f2fs_set_acl() fails
  staging: fbtft: array underflow in fbtft_request_gpios_match()
  staging: gs_fpgaboot: return valid error codes
  staging: gs_fpgaboot: change char to u8
  staging: gs_fpgaboot: add buffer overflow checks
  staging: skein: move macros into header file
  staging: vboxvideo: make a couple of symbols static
  staging: vboxvideo: remove unused variables
  staging: vboxvideo: Kconfig: Fix typos in help text
  staging: vboxvideo: select GENERIC_ALLOCATOR
  staging: pi433: use div_u64 for 64-bit division
  staging: pi433: Style fix - align block comments
  staging: pi433: Make functions rf69_set_bandwidth_intern static
  Staging: pi433: check error after kthread_run()
  Staging: pi433: declare functions static
  staging: pi433: depends on SPI
  staging: pi433: return -EFAULT if copy_to_user() fails
  ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm.
  arm64: dts: move ns2 into northstar2 directory
  drm/vc4: Convert more lock requirement comments to lockdep assertions.
  drm/vc4: Add an ioctl for labeling GEM BOs for summary stats
  drm/vc4: Start using u64_to_user_ptr.
  sched: Allow migrating kthreads into online but inactive CPUs
  selinux: update the selinux info in MAINTAINERS
  perf data: Add doc when no conversion support compiled
  perf data: Add mmap[2] events to CTF conversion
  perf data: Add callchain to CTF conversion
  selftests: sync: convert to use TAP13 ksft framework
  selftests: kselftest framework: add API to return pass/fail/* counts
  selftests: sync: differentiate between sync unsupported and access errors
  RDMA/hns: fix build regression
  IB/hns: fix semicolon.cocci warnings
  IB/hns: fix returnvar.cocci warnings
  IB/hns: fix boolreturn.cocci warnings
  IB/hns: Support compile test for hns RoCE driver
  IB/cma: Fix default RoCE type setting
  drm/amd/powerplay: rv: Use designated initializers
  ARM: dts: meson: add a node which describes the SRAM
  ARM: dts: meson8b: use the existing wdt node to override the compatible
  ARM: dts: meson8: add the PWM controller nodes
  ARM: dts: move the pwm_ab and pwm_cd nodes to meson.dtsi
  Bluetooth: btrtl: Fix a error code in rtl_load_config()
  soc: Add Amlogic SoC Information driver
  ARM64: dts: meson-gx: Add SoC info register
  perf annotate TUI: Set appropriate column width for period/percent
  perf annotate TUI: Fix column header when toggling period/percent
  perf annotate TUI: Clarify calculation of column header widths
  perf annotate TUI: Fix --show-total-period
  perf annotate TUI: Use sym_hist_entry in disasm_line_samples
  perf annotate: Fix storing per line sym_hist_entry
  rtlwifi: rtl8821ae: Fix HW_VAR_NAV_UPPER operation
  rtlwifi: Fix memory leak when firmware request fails
  rtlwifi: Remove unused dummy function
  rtlwifi: remove dummy function call
  rtlwifi: move IS_HARDWARE_TYPE_xxx checker to wifi.h
  rtlwifi: Uses addr1 instead DA to determine broadcast and multicast addr.
  rtlwifi: Rename rtl_desc92_rate to rtl_desc_rate
  rtlwifi: Update 8723be new phy parameters and its parser.
  rtlwifi: add amplifier type for 8812ae
  rtlwifi: Add board type for 8723be and 8192ee
  rtlwifi: Add BT_MP_INFO to c2h handler.
  rtlwifi: Fill in_4way field by driver
  wl3501_cs: fix spelling mistake: "Insupported" -> "Unsupported"
  brcmfmac: constify pci_device_id
  zd1211rw: fix spelling mistake 'hybernate' -> 'hibernate'
  ipw2100: don't return positive values to PCI probe on error
  mwifiex: fix spelling mistake: "Insuffient" -> "Insufficient"
  mwifiex: usb: fix spelling mistake: "aggreataon"-> "aggregation"
  mwifiex: disable uapsd in tdls config
  mwifiex: usb: unlock on error in mwifiex_usb_tx_aggr_tmo()
  mwifiex: uninit wakeup info in the error handling
  mwifiex: fix compile warning of unused variable
  mwifiex: drop num CPU notice
  mwifiex: keep mwifiex_cancel_pending_ioctl() static
  mwifiex: pcie: remove unnecessary 'pdev' check
  mwifiex: pcie: disable device DMA before unmapping/freeing buffers
  mwifiex: debugfs: allow card_reset() to cancel things
  mwifiex: pcie: unify MSI-X / non-MSI-X interrupt process
  mwifiex: pcie: remove unnecessary masks
  mwifiex: drop 'add_tail' param from mwifiex_insert_cmd_to_pending_q()
  mwifiex: don't open-code ARRAY_SIZE()
  mwifiex: utilize netif_tx_{wake,stop}_all_queues()
  mwifiex: make mwifiex_free_cmd_buffer() return void
  mwifiex: fix misnomers in mwifiex_free_lock_list()
  mwifiex: ensure "disable auto DS" struct is initialized
  mwifiex: fixup init_channel_scan_gap error case
  mwifiex: don't short-circuit netdev notifiers on interface deletion
  mwifiex: unregister wiphy before freeing resources
  mwifiex: re-register wiphy across reset
  mwifiex: pcie: don't allow cmd buffer reuse after reset
  mwifiex: reset interrupt status across device reset
  mwifiex: reunite copy-and-pasted remove/reset code
  rsi: fix static checker warning
  rsi: check length before USB read/write register
  rsi: use macro for allocating USB buffer
  rsi: regulatory enhancements
  rsi: Send rx filter frame to device when interface is down
  rsi: Remove internal header from Tx status skb
  rsi: update tx command frame block/unblock data
  rsi: block/unblock data queues as per connection status
  rsi: update autorate request command frame
  rsi: set_key enhancements
  rsi: update set_key command frame
  rsi: update vap capabilities command frame
  rsi: update set_channel command frame
  rsi: Update baseband RF programming frame
  rsi: Update aggregation parameters command frame
  rsi: Update peer notify command frame
  rsi: remove unnecessary check for 802.11 management packet
  rsi: Update in tx command frame radio capabilities
  rsi: immediate wakeup bit and priority for TX command packets
  rsi: add common structures needed for command packets
  rsi: Rename mutex tx_rxlock to the tx_lock.
  rsi: use separate mutex lock for receive thread
  rsi: SDIO Rx packet processing enhancement
  rsi: Optimise sdio claim and release host
  rsi: rename variable in_sdio_litefi_irq
  rsi: separate function for data packet descriptor
  rsi: data packet descriptor enhancements
  rsi: data packet descriptor code cleanup
  rsi: separate function for management packet descriptor
  rsi: management frame descriptor preparation cleanup
  rsi: set immediate wakeup bit
  rsi: choose correct endpoint based on queue.
  rsi: rename USB endpoint macros
  rsi: correct the logic of deriving queue number
  rsi: USB tx headroom cleanup
  rsi: card reset for USB interface
  rsi: correct SDIO disconnect path handling
  rsi: chip reset for SDIO interface
  rsi: fix sdio card reset problem
  rsi: changes in eeprom read frame
  rsi: use BUILD_BUG_ON check for fsm_state
  ASoC: jack: fix snd_soc_codec_set_jack return error
  ASoC: Intel: Enabling 4 slot IV feedback for max98927 on Kabylake platform
  ASoC: Intel: Add Kabylake RT5663 machine driver entry
  ASoC: Intel: Add Kabylake machine driver for RT5663
  ASoC: codecs: add wm8524 codec driver
  spi: pxa2xx: Don't touch CS pin until we have a transfer pending
  drm/i915: Remove unused i915_err_print_instdone
  ASoC: rsnd: merge snd_pcm_ops::open and snd_soc_dai_ops::startup
  spi: bcm-qspi: Remove hardcoded settings and spi-nor.h dependency
  drm/i915: Include mbox details for pcode read/write failures
  ASoC: samsung: Add proper error paths to s3c24xx I2S driver
  ASoC: samsung: Add missing prepare for iis clock of s3c24xx
  ASoC: samsung: Fix possible double iounmap on s3c24xx driver probe failure
  csrypto: ccp - Expand RSA support for a v5 ccp
  crypto: ccp - Add support for RSA on the CCP
  crypto: Add akcipher_set_reqsize() function
  crypto: ccp - Fix base RSA function for version 5 CCPs
  crypto: ccp - Update copyright dates for 2017.
  crypto: rng - ensure that the RNG is ready before using
  crypto: stm32 - Support for STM32 HASH module
  dt-bindings: Document STM32 HASH bindings
  crypto: stm32 - Rename module to use generic crypto
  crypto: stm32 - solve crc issue during unbind
  crypto: stm32 - CRC use relaxed function
  crypto: caam - free qman_fq after kill_fq
  crypto: algif_aead - overhaul memory management
  crypto: algif_skcipher - overhaul memory management
  ARM: dts: stm32: Add DMA support for STM32H743 SoC
  ARM: dts: stm32: Add DMA support for STM32F746 SoC
  objtool: Disable GCC '-Wpacked' warnings
  objtool: Fix '-mtune=atom' decoding support in objtool 2.0
  objtool: Skip unreachable warnings for 'alt' instructions
  objtool: Assume unannotated UD2 instructions are dead ends
  ARM: dts: exynos: fix PCI bus dtc warnings
  staging: ccree: Fix unnecessary NULL check before kfree'ing it
  staging: ccree: remove func name from log messages
  staging: ccree: Fix alignment issues in ssi_request_mgr.c
  staging: ccree: Fix alignment issues in ssi_ivgen.c
  staging: ccree: Fix alignment issues in ssi_cipher.c
  staging: ccree: Fix alignment issues in ssi_buffer_mgr.c
  staging: ccree: Fix alignment issues in ssi_hash.c
  staging: ccree: Fix alignment issues in ssi_aead.c
  Staging: rtl8188eu: core: fix brace coding style issue in rtw_mlme_ext.c
  staging: rtl8192u: fix spelling mistake: "Senondary" -> "Secondary"
  staging: rtl8192u: fix incorrect mask and shift on u8 data
  staging: rtl8188eu: Move { after function to new line
  staging: greybus: Fix coding style issue for column width
  staging: greybus: Remove unnecessary platform_set_drvdata
  staging: greybus: fix parenthesis alignments
  staging: unisys: visorbus: Constify attribute_group structures.
  dt-bindings: arm: amlogic: Add SoC information bindings
  liquidio: cleanup: removed cryptic and misleading macro
  liquidio: standardization: use min_t instead of custom macro
  net: phy: Remove stale comments referencing timer
  nfp: only use direct firmware requests
  nfp: look for firmware image by device serial number and PCI name
  nfp: remove the probe deferral when FW not present
  ARM: edb93xx: Add ADC platform device
  ARM: ep93xx: Add ADC platform device support to core
  ARM: ep93xx: Add ADC clock
  srcu: Provide ordering for CPU not involved in grace period
  ovl: constant d_ino for non-merge dirs
  ovl: constant d_ino across copy up
  ovl: fix readdir error value
  ovl: check snprintf return
  spi: pxa2xx: Revert "Only claim CS GPIOs when the slave device is created"
  ARM: dts: iwg20m: Add MMCIF0 support
  ARM: dts: r8a7794: Use R-Car Gen 2 fallback binding for vin nodes
  ARM: dts: r8a7791: Use R-Car Gen 2 fallback binding for vin nodes
  ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for vin nodes
  ARM: shmobile: Remove ARCH_SHMOBILE_MULTI
  ARM: shmobile: rcar-gen2: Correct arch timer frequency on RZ/G1E
  arm64: dts: renesas: r8a7795: add hsusb ch3 device node
  arm64: dts: renesas: r8a7795: add usb-dmac ch2 and ch3 device nodes
  arm64: dts: renesas: r8a7795: add usb2.0 host ch3 device nodes
  arm64: dts: renesas: r8a7795: add usb2_phy ch3 device node
  arm64: dts: renesas: r8a7795: Add usb companion property in EHCI
  drm/amdgpu: fix header on gfx9 clear state
  arm64: dts: renesas: Add Renesas Draak board support
  arm64: dts: renesas: Add Renesas R8A77995 SoC support
  arm64: renesas: Add Renesas R8A77995 Kconfig support
  ARM: shmobile: Document Renesas Draak board DT bindings
  ARM: shmobile: Document R-Car D3 SoC DT bindings
  soc: renesas: rcar-rst: Add support for R-Car D3
  soc: renesas: rcar-sysc: Add support for R-Car D3 power areas
  soc: renesas: Add r8a77995 SYSC PM Domain Binding Definitions
  soc: renesas: Identify R-Car D3
  clk: sunxi-ng: Fix header guard of ccu-sun8i-r.h
  ARM: shmobile: rcar-gen2: Add support for CPG/MSSR bindings
  ARM: shmobile: rcar-gen2: Obtain jump stub region from DT
  ARM: debug-ll: Add support for r8a7743
  ARM: dts: r8a7743: Add MMCIF0 support
  ARM: dts: r8a7794: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7793: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7792: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7791: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7790: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7745: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7743: Reserve SRAM for the SMP jump stub
  ARM: dts: r8a7794: Add Inter Connect RAM
  ARM: dts: r8a7793: Add Inter Connect RAM
  ARM: dts: r8a7792: Add Inter Connect RAM
  ARM: dts: r8a7791: Add Inter Connect RAM
  ARM: dts: r8a7790: Add Inter Connect RAM
  ARM: dts: r8a7745: Add Inter Connect RAM
  ARM: dts: r8a7743: Add Inter Connect RAM
  ARM: dts: iwg20d-q7: Add Ethernet AVB support
  ARM: dts: r8a7743: Add Ethernet AVB support
  ARM: dts: iwg20d-q7: Add pinctl support for scif0
  ARM: dts: r8a7743: Add GPIO support
  ARM: dts: sk-rzg1m: add Ether pins
  ARM: dts: sk-rzg1m: add SCIF0 pins
  ARM: dts: r8a7743: add PFC support
  ARM: dts: koelsch: Add generic compatible string for I2C EEPROM
  ARM: dts: r7s72100: Add generic compatible string for I2C EEPROM
  dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property
  dt-bindings: sram: Document renesas,smp-sram
  dt-bindings: display: renesas: Add R-Car M3-W HDMI TX DT bindings
  ARM: multi_v7_defconfig: Enable DMA for Renesas serial ports
  ARM: multi_v7_defconfig: Replace DRM_RCAR_HDMI by generic bridge options
  ARM: multi_v7_defconfig: Replace SND_SOC_RSRC_CARD by SND_SIMPLE_SCU_CARD
  ARM: shmobile: defconfig: Refresh
  ARM: shmobile: defconfig: Enable DMA for serial ports
  ARM: shmobile: defconfig: Replace DRM_RCAR_HDMI by generic bridge options
  ARM: shmobile: defconfig: Replace SND_SOC_RSRC_CARD by SND_SIMPLE_SCU_CARD
  ARM: shmobile: defconfig: Replace USB_XHCI_RCAR by USB_XHCI_PLATFORM
  ARM: shmobile: defconfig: Enable missing PCIE_RCAR dependency
  ARM: shmobile: defconfig: Enable Ethernet AVB
  arm64: dts: r8a7795: salvator-xs: Connect DU dot clocks 0 and 3
  arm64: dts: salvator-xs: Add VC6 clock generator
  arm64: dts: r8a7796: Add missing second pair of DMA names to MSIOF nodes
  arm64: dts: r8a7795: Add all MSIOF nodes
  arm64: dts: r8a7795: Add support for the DU
  arm64: dts: ulcb: Enable HDMI output
  arm64: dts: ulcb: Add HDMI output connector
  arm64: dts: r8a7796: m3ulcb: Add DU external dot clocks
  arm64: dts: r8a7795: h3ulcb: Add DU external dot clocks
  arm64: dts: ulcb: Add DU external dot clock sources
  arm64: dts: r8a7796: salvator-x: Enable HDMI output
  arm64: dts: r8a7796: salvator-x: Add DU external dot clocks
  arm64: dts: r8a7796: Add HDMI encoder instance
  arm64: dts: r8a7796: Add DU device to DT
  arm64: dts: r8a7796: Add VSP instances
  arm64: dts: r8a7796: Add FCPF and FCPV instances
  arm64: dts: ulcb: Enable I2C4
  arm64: dts: ulcb: Enable I2C for DVFS device
  arm64: dts: r8a7795: Add DRIF support
  arm64: dts: r8a7796: Add DRIF support
  arm64: dts: renesas: Move CPG_AUDIO_CLK_I from board to soc files
  arm64: dts: r8a7796: add IMR-LX4 support
  arm64: dts: r8a7795: add IMR-LX4 support
  arm64: defconfig: compile ak4613 and renesas sound as modules
  HID: wacom: Improve generic name generation
  HID: introduce hid_is_using_ll_driver
  printk/console: Enhance the check for consoles using init memory
  printk/console: Always disable boot consoles that use init memory before it is freed
  printk: Modify operators of printed_len and text_len
  RDMA/qedr: notify user application of supported WIDs
  RDMA/qedr: notify user application if DPM is supported
  iommu/rockchip: ignore isp mmu reset operation
  iommu/rockchip: add multi irqs support
  Docs: dt: rockchip: add rockchip,disable-mmu-reset property
  wl1251: add a missing spin_lock_init()
  bcma: gpio: Correct number of GPIOs for BCM53573
  rtlwifi: kfree entry until after entry->bssid has been accessed
  mwifiex: correct channel stat buffer overflows
  x86/topology: Remove the unused parent_node() macro
  drm/i915/sdvo: Shut up state checker with hdmi cards on gen3
  drm/i915: Rework sdvo proxy i2c locking
  drm/i915: Call the unlocked version of i915_gem_object_get_pages()
  drm/i915: Move i915_gem_object_phys_attach()
  drm/i915: Pin the pages before acquiring struct_mutex for display
  drm/i915: Make i915_gem_object_phys_attach() use obj->mm.lock more appropriately
  drm/i915: Trim struct_mutex usage for kms
  drm/i915: Handle msr read failure gracefully
  drm/i915: Force CPU synchronisation even if userspace requests ASYNC
  drm/i915: Only skip updating execobject.offset after error
  drm/i915: Only mark the execobject as pinned on success
  drm/i915: Remove assertion from raw __i915_vma_unpin()
  drm/i915/cnl: Fix loadgen select programming on ddi vswing sequence
  drm/i915/fbc: add comments to the FBC auxiliary structs
  drm/i915: cleanup the CHICKEN_MISC_2 (re)definitions
  drm/i915/selftests: Fix kbuild error
  drm/i915: Squelch reset messages during selftests
  drm/i915/selftest: Refactor reset locking
  drm/i915: Don't touch fence->error when resetting an innocent request
  drm/i915: Enforce that CS packets are qword aligned
  drm/i915/glk: set HDMI 2.0 identifier
  drm/i915: set colorspace for YCBCR420 outputs
  drm/i915: prepare csc unit for YCBCR420 output
  drm/i915: prepare pipe for YCBCR420 output
  drm/i915: prepare scaler for YCBCR420 modeset
  drm/i915: add config function for YCBCR420 outputs
  drm/i915: Gather all the power well->domain mappings to one place
  drm/i915: Move hsw_power_well_enable() next to the rest of HSW helpers
  drm/i915/gen9+: Unify the HSW/BDW and GEN9+ power well helpers
  drm/i915/hsw+: Add has_fuses power well attribute
  drm/i915/hsw, bdw: Wait for the power well disabled state
  drm/i915/hsw, bdw: Add irq_pipe_mask, has_vga power well attributes
  drm/i915/hsw+: Unify the hsw/bdw and gen9+ power well req/state macros
  drm/i915/hsw, bdw: Split power well set to enable/disable helpers
  drm/i915/hsw, bdw: Remove redundant state check during power well toggling
  drm/i915/gen9+: Remove redundant state check during power well toggling
  drm/i915/gen9+: Remove redundant power well state assert during enabling
  drm/i915/bxt, glk: Give a proper name to the power well struct phy field
  drm/i915: Check for duplicated power well IDs
  drm/i915/hsw, bdw: Add an ID for the global display power well
  drm/i915/gen2: Add an ID for the display pipes power well
  drm/i915: Assign everywhere the always-on power well ID
  drm/i915: Unify power well ID enums
  drm/i915/chv: Add unique power well ID for the pipe A power well
  drm/i915: Simplify scaler init during CRTC HW readout
  drm/i915: Fix scaler init during CRTC HW state readout
  drm/i915/selftests: Exercise independence of per-engine resets
  drm/i915: Disable per-engine reset for Broxton
  drm/i915: Emit a user level message when resetting the GPU (or engine)
  drm/i915: Make i915_gem_context_mark_guilty() safe for unlocked updates
  drm/i915: Clear engine irq posted following a reset
  drm/i915: Assert that machine is wedged for nop_submit_request
  drm/i915: Wake up waiters after setting the WEDGED bit
  drm/i915: Move idle checks before intel_engine_init_global_seqno()
  drm/i915: Clear execlist port[] before updating seqno on wedging
  drm/i915: Check the execlist queue for pending requests before declaring idle
  drm/i915: Check execlist/ring status during hangcheck
  drm/i915: Flush the execlist ports if idle
  drm/i915: Serialize per-engine resets against new requests
  drm/i915: Reset context image on engines after triggering the reset
  drm/i915: Report execlists irq bit in debugfs
  ARM: dts: stm32: enable ADC on stm32h743i-eval board
  ARM: dts: stm32: add ADC support on stm32h743
  ARM: dts: stm32: Add DAC support on stm32h743
  ARM: dts: stm32: Add DAC support on stm32f429
  x86/ldt/64: Refresh DS and ES when modify_ldt changes an entry
  qed: enhanced per queue max coalesce value.
  qed: Read per queue coalesce from hardware
  qed: Add support for vf coalesce configuration.
  qede: Add ethtool support for Energy efficient ethernet.
  qed: Add support for Energy efficient ethernet.
  qed/qede: Add setter APIs support for RX flow classification
  qede: Add getter APIs support for RX flow classification
  f2fs: alloc new nids for xattr block in recovery
  f2fs: spread struct f2fs_dentry_ptr for inline path
  f2fs: remove unused input parameter
  ACPI: processor: use dev_dbg() instead of dev_warn() when CPPC probe failed
  drm: linux-next: build failure after merge of the drm-misc tree
  selftests: ftrace: Check given string is not zero-length
  selftests: ftrace: Output only to console with "--logdir -"
  selftests: ftrace: Add more verbosity for immediate log
  selftests: ftrace: Add --fail-unsupported option
  selftests: ftrace: Do not failure if there is unsupported tests
  percpu: update header to contain bitmap allocator explanation.
  percpu: update pcpu_find_block_fit to use an iterator
  percpu: use metadata blocks to update the chunk contig hint
  percpu: update free path to take advantage of contig hints
  percpu: update alloc path to only scan if contig hints are broken
  percpu: keep track of the best offset for contig hints
  percpu: skip chunks if the alloc does not fit in the contig hint
  percpu: add first_bit to keep track of the first free in the bitmap
  percpu: introduce bitmap metadata blocks
  percpu: replace area map allocator with bitmap
  lkdtm: Provide timing tests for atomic_t vs refcount_t
  lkdtm: Provide more complete coverage for REFCOUNT tests
  cpufreq: s5pv210: add missing of_node_put()
  cpufreq: schedutil: Use unsigned int for iowait boost
  cpufreq: schedutil: Make iowait boost more energy efficient
  bpf: install libbpf headers on 'make install'
  perf annotate stdio: Set enough columns for --show-total-period
  perf sort: Use default sort if evlist is empty
  perf annotate: Do not overwrite perf_sample->weight
  drm/bridge: Add a devm_ allocator for panel bridge.
  drm/vc4: add HDMI CEC support
  drm/vc4: prepare for CEC support
  cpufreq: intel_pstate: Drop ->update_util from pstate_funcs
  cpufreq: intel_pstate: Do not use PID-based P-state selection
  media: fix warning on v4l2_subdev_call() result interpreted as bool
  media: imx: csi: enable double write reduction
  media: coda: explicitly request exclusive reset control
  media: coda: disable BWB only while decoding on CODA 960
  perf stat: Use group read for event groups
  perf evsel: Add read_counter()
  perf tools: Add perf_evsel__read_size function
  remoteproc: Merge __rproc_boot() with rproc_boot()
  rpmsg: virtio_rpmsg_bus: fix export of rpmsg_send_offchannel_raw()
  rpmsg: qcom_smd: add of_node node to edge device
  hamradio: dmascc: avoid -Wformat-overflow warning
  selftests: breakpoint_test: Add missing line breaks
  errseq: rename __errseq_set to errseq_set
  ARM: dts: stm32: enable CEC for stm32f769 discovery
  ARM: dts: stm32: add CEC for stm32f7 family
  ARM: dts: stm32: reorder stm32h743 nodes
  spi: core: Propagate error code of add_uevent_var()
  percpu: generalize bitmap (un)populated iterators
  percpu: increase minimum percpu allocation size and align first regions
  percpu: introduce nr_empty_pop_pages to help empty page accounting
  percpu: change the number of pages marked in the first_chunk pop bitmap
  percpu: combine percpu address checks
  percpu: modify base_addr to be region specific
  percpu: setup_first_chunk rename schunk/dchunk to chunk
  percpu: end chunk area maps page aligned for the populated bitmap
  percpu: unify allocation of schunk and dchunk
  percpu: setup_first_chunk remove dyn_size and consolidate logic
  percpu: remove has_reserved from pcpu_chunk
  percpu: introduce start_offset to pcpu_chunk
  percpu: setup_first_chunk enforce dynamic region must exist
  ARM: dts: stm32: Remove rdinit from bootargs on stm32f429-disco
  ARM: dts: stm32: Remove rdinit from bootargs on stm32f429i-eval
  ARM: dts: stm32: Remove rdinit from bootargs on stm32f469-disco
  drm/stm: dsi: Constify phy ops structure
  drm/stm: ltdc: Cleanup rename returned value
  drm/stm: ltdc: add devm_reset_control & platform_get_ressource
  drm/stm: ltdc: Constify funcs structures
  drm/stm: ltdc: Lindent and minor cleanups
  drm/stm: ltdc: Cleanup signal polarity defines
  drm/stm: drv: Rename platform driver name
  drm: stm: remove "default y" in Kconfig
  drm/stm: Add STM32 DSI controller driver
  dt-bindings: display: stm32: Add DSI controller
  dt-bindings: display: stm32: remove st-display-subsystem parent node requirement
  media: ov5640: Remove unneeded gpiod NULL check
  media: v4l: omap3isp: Get the parallel bus type from DT
  media: v4l2-flash: Flash ops aren't mandatory
  media: v4l2-flash: Use led_classdev instead of led_classdev_flash for indicator
  media: v4l2-fwnode: link_frequency is an optional property
  media: exynos4-is: fimc-is-i2c: constify dev_pm_ops structures
  media: s5k5baf: remove unnecessary static in s5k5baf_get_selection()
  media: s5p-jpeg: Add stream error handling for Exynos5420
  media: s5p-jpeg: Add support for resolution change event
  media: s5p-jpeg: Decode 4:1:1 chroma subsampling format
  media: s5p-jpeg: Split s5p_jpeg_parse_hdr()
  media: s5p-jpeg: Don't use temporary structure in s5p_jpeg_buf_queue
  media: s5p-jpeg: Handle parsing error in s5p_jpeg_parse_hdr()
  media: s5p-jpeg: Correct WARN_ON statement for checking subsampling
  media: s5p-jpeg: Call jpeg_bound_align_image after qbuf
  spi: imx: add SPI_NO_CS support
  spi: loopback-test: implement testing with no CS
  ASoC: rt5670: merge ADC L/R Mux
  x86/kconfig: Consolidate unwinders into multiple choice selection
  spi: pic32: fix spelling mistakes on macro names
  ASoC: Intel: board: Fix missing sentinel for bxt_board_id
  ASoC: atmel: ac97c: Handle return value of clk_prepare_enable.
  ASoC: sun4i-spdif: Handle return value of clk_prepare_enable.
  ASoC: jz4740: Handle return value of clk_prepare_enable.
  ASoC: mxs-saif: Handle return value of clk_prepare_enable/clk_prepare.
  ASoC: samsung: spdif: Handle return value of clk_prepare_enable.
  ASoC: samsung: i2s: Handle return value of clk_prepare_enable.
  ASoC: samsung: pcm: Handle return value of clk_prepare_enable.
  ASoC: samsung: s3c24xx: Handle return value of clk_prepare_enable.
  ASoC: samsung: s3c2412: Handle return value of clk_prepare_enable.
  drm/hisilicon: fix build error without fbdev emulation
  drm/atomic: implement drm_atomic_helper_commit_tail for runtime_pm users
  drm: Improve kerneldoc for drm_modeset_lock
  drm/hisilicon: Remove custom FB helper deferred setup
  drm/exynos: Remove custom FB helper deferred setup
  drm/fb-helper: Support deferred setup
  dma-fence: Don't BUG_ON when not absolutely needed
  drm: Convert to using %pOF instead of full_name
  ASoC: remove cache_bypass from snd_soc_codec
  ASoC: rt5670: add symmetric_rates flag
  ASoC: rt5514: Use the IS_ENABLED to supports the module build
  spi: tools: add install section
  spi: tools: move to tools buildsystem
  drm/syncobj: Fix kerneldoc
  drm/atomic: Allow drm_atomic_helper_swap_state to fail
  drm/atomic: Add __must_check to drm_atomic_helper_swap_state.
  drm/vc4: Handle drm_atomic_helper_swap_state failure
  drm/tilcdc: Handle drm_atomic_helper_swap_state failure
  drm/tegra: Handle drm_atomic_helper_swap_state failure
  drm/msm: Handle drm_atomic_helper_swap_state failure
  drm/mediatek: Handle drm_atomic_helper_swap_state failure
  drm/i915: Handle drm_atomic_helper_swap_state failure
  drm/atmel-hlcdc: Handle drm_atomic_helper_swap_state failure
  drm/nouveau: Handle drm_atomic_helper_swap_state failure
  drm/atomic: Change drm_atomic_helper_swap_state to return an error.
  drm/nouveau: Fix error handling in nv50_disp_atomic_commit
  drm/<drivers>: Drop fbdev info flags
  drm/qxl: Drop fbdev hwaccel flags
  drm: Update docs around gem_free_object
  x86/kconfig: Make it easier to switch to the new ORC unwinder
  x86/unwind: Add the ORC unwinder
  kasan: Allow kasan_check_read/write() to accept pointers to volatiles
  iommu: Convert to using %pOF instead of full_name
  iommu/ipmmu-vmsa: Clean up device tracking
  iommu/ipmmu-vmsa: Replace local utlb code with fwspec ids
  iommu/ipmmu-vmsa: Use fwspec on both 32 and 64-bit ARM
  iommu/ipmmu-vmsa: Consistent ->of_xlate() handling
  iommu/ipmmu-vmsa: Use iommu_device_register()/unregister()
  i40e: handle setting administratively set MAC address back to zero
  i40evf: remove unnecessary __packed
  i40evf: Use le32_to_cpu before evaluating HW desc fields
  i40e: report BPF prog id during XDP_QUERY_PROG
  i40evf: add some missing includes
  i40e: display correct UDP tunnel type name
  i40e/i40evf: remove mismatched type warnings
  i40e/i40evf: make IPv6 ATR code clearer
  i40e: fix odd formatting and indent
  i40e: fix up 32 bit timespec references
  i40e: Handle admin Q timeout when releasing NVM
  i40e: remove WQ_UNBOUND and the task limit of our workqueue
  i40e: Fix for trace found with S4 state
  i40e: fix incorrect variable assignment
  iommu/exynos: Replace non-existing big-endian Kconfig option
  iommu: Correct iommu_map / iommu_unmap prototypes
  iommu/vt-d: Don't free parent pagetable of the PTE we're adding
  iommu/of: Handle PCI aliases properly
  ARM: dts: at91: sama5d2_xplained: add pin muxing and enable classd
  ARM: dts: at91: sama5d2: add classd nodes
  s390/spinlock: add niai spinlock hints
  s390/sclp_ocf: constify attribute_group structures.
  s390/tape: constify attribute_group structures.
  s390/raw3270: constify attribute_group structures.
  s390/qeth: constify attribute_group structures.
  s390/cio: constify attribute_group structures.
  s390/dasd: constify attribute_group structures.
  s390/zcrypt_card: constify attribute_group structures.
  s390/zcrypt_queue: constify attribute_group structures.
  s390: add support for IBM z14 machines
  s390/time: add support for the TOD clock epoch extension
  s390/sclp: single increment assignment control
  s390/mm,vmem: simplify region and segment table allocation code
  KVM: s390: use new mm defines instead of magic values
  s390/mm: use new mm defines instead of magic values
  s390/mm: introduce defines to reflect the hardware mmu
  s390/mm: get rid of __ASSEMBLY__ guards within pgtable.h
  s390/mm: remove and correct comments within pgtable.h
  virtio-net: mark PM functions as __maybe_unused
  ARM: dts: imx6qdl-nitrogen6x: fix USB PHY reset
  ARM: dts: imx6qdl-sabrelite: fix USB PHY reset
  perf tools: Add tools/include/uapi/asm-generic/fcntl.h to the MANIFEST
  perf annotate stdio: Fix column header when using --show-total-period
  perf jevents: Make build fail on JSON parse error
  perf report: Tag branch type/flag on "to" and tag cycles on "from"
  perf report: Make --branch-history work without callgraphs(-g) option in perf record
  perf script python: Generate hooks with additional argument
  perf script python: Add perf_sample dict to tracepoint handlers
  perf script python: Add sample_read to dict
  perf script python: Refactor creation of perf sample dict
  perf script python: Allocate memory only if handler exists
  perf script: Remove some bogus error handling
  perf top: Support lookup of symbols in other mount namespaces.
  ACPI: device property: Switch to use new generic UUID API
  device property: export irqchip_fwnode_ops
  ixgbe: Disable flow control for XFI
  ixgbe: Do not support flow control autonegotiation for X553
  ixgbe: Update NW_MNG_IF_SEL support for X553
  ixgbe: Enable LASI interrupts for X552 devices
  libnvdimm: Stop using HPAGE_SIZE
  ixgbe: Ensure MAC filter was added before setting MACVLAN
  cpufreq: Allow dynamic switching with CPUFREQ_ETERNAL latency
  cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag
  cpufreq: schedutil: Set dynamic_switching to true
  cpufreq: Replace "max_transition_latency" with "dynamic_switching"
  cpufreq: arm_big_little: Make ->get_transition_latency() mandatory
  cpufreq: Don't set transition_latency for setpolicy drivers
  Input: mousedev - fix implicit conversion warning
  drm/amdgpu: reduce the time of reading VBIOS
  drm/amdgpu/virtual_dce: Remove the rmmod error message
  drm/amdgpu/gmc9: disable legacy vga features in gmc init
  drm/amdgpu/gmc8: disable legacy vga features in gmc init
  drm/amdgpu/gmc7: disable legacy vga features in gmc init
  ARM: pxa/raumfeld: mark rotary encoder properties as __initconst
  drm/amdgpu/gmc6: disable legacy vga features in gmc init (v2)
  drm/radeon: Set depth on low mem to 16 bpp instead of 8 bpp
  drm/amdgpu: fix the incorrect scratch reg number on gfx v6
  drm/amdgpu: fix the incorrect scratch reg number on gfx v7
  drm/amdgpu: fix the incorrect scratch reg number on gfx v8
  drm/amdgpu: fix the incorrect scratch reg number on gfx v9
  drm/amd/powerplay: add support for 3DP 4K@120Hz on vega10.
  drm/amdgpu: enable huge page handling in the VM v5
  drm/amdgpu: increase fragmentation size for Vega10 v2
  drm/amdgpu: ttm_bind only when user needs gpu_addr in bo pin
  drm/amdgpu: correct clock info for SRIOV
  drm/amdgpu/gmc8: SRIOV need to program fb location
  drm/amdgpu: disable firmware loading for psp v10
  drm/amdgpu:fix gfx fence allocate size
  drm/amdgpu: Implement ttm_bo_driver.access_memory callback v2
  drm/ttm: Implement vm_operations_struct.access v2
  drm/amd/powerplay: fix AVFS voltage offset for Vega10
  drm/amdgpu: read reg in each iterator of psp_wait_for loop
  drm/amdgpu/gfx9: simplify and fix GRBM index selection
  drm/amdgpu: add ring_destroy for psp v10
  drm/amdgpu: add ring_create function for psp v10
  drm/amdgpu: add init microcode function for psp v10
  drm/amdgpu: remove unncessary code in psp v10 ring init func
  drm/amdgpu: Fix blocking in RCU critical section(v2)
  rcu: Move callback-list warning to irq-disable region
  rcu: Remove unused RCU list functions
  rcu: Localize rcu_state ->orphan_pend and ->orphan_done
  rcu: Advance callbacks after migration
  rcu: Eliminate rcu_state ->orphan_lock
  rcu: Advance outgoing CPU's callbacks before migrating them
  rcu: Make NOCB CPUs migrate CBs directly from outgoing CPU
  rcu: Check for NOCB CPUs and empty lists earlier in CB migration
  rcu: Remove orphan/adopt event-tracing fields
  torture: Fix typo suppressing CPU-hotplug statistics
  rcu: Make expedited GPs correctly handle hardware CPU insertion
  rcu: Migrate callbacks earlier in the CPU-offline timeline
  bnxt_en: fix switchdev port naming for external-port-rep and vf-reps
  bnxt_en: use SWITCHDEV_SET_OPS() for setting vf_rep_switchdev_ops
  bnxt_en: include bnxt_vfr.c code under CONFIG_BNXT_SRIOV switch
  arm64: dts: rockchip: enable sdmmc controller on rk3399-firefly
  arm64: dts: rockchip: Add rk3328 io-domain node
  6lowpan: fix set not used warning
  socket: fix set not used warning
  netfilter: remove unused variable
  benet: fix set but not used warning
  bnxt: fix unused variable warnings
  bnxt: fix unsigned comparsion with 0
  nfp: set config bit (ifup/ifdown) on netdev open/close
  drivers/net: Fix ptr_ret.cocci warnings.
  credits: update Paul Moore's info
  selinux: Assign proper class to PF_UNIX/SOCK_RAW sockets
  iio: humidity: hts221: move drdy enable logic in hts221_trig_set_state()
  dt-bindings: iio: humidity: hts221: support open drain mode
  iio: humidity: hts221: support open drain mode
  iio: adc: New driver for Cirrus Logic EP93xx ADC
  platform/x86: intel_telemetry: remove redundant macro definition
  platform/x86: intel_telemetry: Add GLK PSS Event Table
  platform/x86: alienware-wmi: fix format string overflow warning
  cgroup: add comment to cgroup_enable_threaded()
  cgroup: remove unnecessary empty check when enabling threaded mode
  task_work: Replace spin_unlock_wait() with lock/unlock pair
  net/netfilter/nf_conntrack_core: Fix net_conntrack_lock()
  atomics: Revert addition of comment header to spin_unlock_wait()
  platform/x86: ibm_rtl: remove unnecessary static in ibm_rtl_write()
  platform/x86: msi-wmi: remove unnecessary static in msi_wmi_notify()
  platform/x86: peaq-wmi: silence a static checker warning
  rcu: Use timer as backstop for NOCB deferred wakeups
  x86/asm: Make objtool unreachable macros independent from GCC version
  perf evsel: Add verbose output for sys_perf_event_open fallback
  perf jvmti: Fix linker error when libelf config is disabled
  perf annotate: Process tracing data in pipe mode
  perf tools: Add EXCLUDE_EXTLIBS and EXTRA_PERFLIBS to makefile
  perf cgroup: Fix refcount usage
  perf report: Fix kernel symbol adjustment for s390x
  perf annotate stdio: Fix --show-total-period
  x86/mce/AMD: Allow any CPU to initialize the smca_banks array
  power: supply: bq27xxx: move platform driver code into bq27xxx_battery_hdq.c
  power: supply: move HDQ interface for bq27xxx from w1 to power/supply
  module: fix ddebug_remove_module()
  modpost: abort if module name is too long
  powerpc/perf: Add thread IMC PMU support
  powerpc/perf: Add core IMC PMU support
  powerpc/perf: Add nest IMC PMU support
  powerpc/powernv: Detect and create IMC device
  pwm: vt8500: Undo preparation of a clock source.
  pwm: pca9685: clarify pca9685_set_sleep_mode() interface.
  pwm: Convert to using %pOF instead of full_name
  mrf24j40: Fix en error handling path in 'mrf24j40_probe()'
  power: supply: ltc2941-battery-gauge: Add LTC2944 support
  power: supply: ltc2941-battery-gauge: Add LTC2942 support
  power: supply: ltc2941-battery-gauge: Prepare for LTC2942 and LTC2944
  power: supply: sbs-battery: Add delay when changing capacity mode bit
  x86/mm/pkeys: Fix typo in Documentation/x86/protection-keys.txt
  x86/microcode: Document the three loading methods
  x86/microcode/AMD: Free unneeded patch before exit from update_cache()
  power: supply: sbs-battery: sort includes
  power: supply: sbs-battery: Remove FSF mailing address from comments
  x86/mm/dump_pagetables: Speed up page tables dump for CONFIG_KASAN=y
  x86/platform/intel-mid: Make IRQ allocation a bit more flexible
  x86/platform/intel-mid: Group timers callbacks together
  x86/asm: Add ASM_UNREACHABLE
  x86/asm: Add suffix macro for GEN_*_RMWcc()
  x86/mm: Implement PCID based optimization: try to preserve old TLB entries using PCID
  objtool: Fix gcov check for older versions of GCC
  ARM: dts: imx6: RIoTboard provide gpio-line-names
  ARM: dts: imx6: RDU2: Add Micrel PHY interrupt
  ARM: dts: imx6: RDU2: Add Switch interrupts
  ARM: dts: imx6: RDU2: Add Switch EEPROM
  ARM: dts: imx6: RDU2: Add DSA support for the Marvell 88E6352
  ARM: dts: imx6: RDU2: Add Micrel PHY to FEC
  ARM: dts: imx7d-sdb: Pass 'enable-gpios' and 'power-supply' properties
  ARM: dts: imx7d-sdb: Add DRM panel support
  ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers
  ARM: dts: imx6qdl-gw5xxx: Remove the 'uart-has-rtscts' property
  arm64: dts: ls1012a: add USB host controller nodes
  usb: chipidea: core: do not register extcon notifier if extcon device is not existed
  s390/mm,kvm: use nodat PGSTE tag to optimize TLB flushing
  s390/mm: add guest ASCE TLB flush optimization
  s390/mm: add no-dat TLB flush optimization
  s390/mm: tag normal pages vs pages used in page tables
  bnxt_en: Use SWITCHDEV_SET_OPS().
  tomoyo: Update URLs in Documentation/admin-guide/LSM/tomoyo.rst
  ibmvnic: Check for transport event on driver resume
  netvsc: remove no longer used max_num_rss queues
  netvsc: include rtnetlink.h
  netvsc: fix netvsc_set_channels
  netvsc: prefetch the first incoming ring element
  netvsc: Remove redundant use of ipv6_hdr()
  netvsc: remove bogus rtnl_unlock
  bnxt_en: add support for port_attr_get and and get_phys_port_name
  bnxt_en: add vf-rep RX/TX and netdev implementation
  bnxt_en: add support to enable VF-representors
  bnxt_en: Set ETS min_bw parameter for older firmware.
  bnxt_en: Report firmware DCBX agent.
  bnxt_en: Allow the user to set ethtool stats-block-usecs to 0.
  bnxt_en: Add bnxt_get_num_stats() to centrally get the number of ethtool stats.
  bnxt_en: Implement ndo_bridge_{get|set}link methods.
  bnxt_en: Retrieve the hardware bridge mode from the firmware.
  bnxt_en: Update firmware interface spec to 1.8.0.
  tcp: remove redundant argument from tcp_rcv_established()
  mlx4_en: remove unnecessary error check
  mlxsw: spectrum_router: Fix build when IPv6 isn't enabled
  mtd: mtdswap: remove unused variables 'dev' and 'gd'
  Input: add power key driver for Rockchip RK805 PMIC
  mlx4_en: remove unnecessary returned value
  of_mdio: kill useless variable in of_phy_register_fixed_link()
  skbuff: re-add check for NULL skb->head in kfree_skb path
  liquidio: fix implicit irq include causing build failures
  bpf: dev_map_alloc() shouldn't return NULL
  netvsc: fix ptr_ret.cocci warnings
  mlxsw: spectrum_router: Don't batch neighbour deletion
  rcutorture: Invoke call_rcu() from timer handler
  rcu: Add last-CPU to GP-kthread starvation messages
  rcutorture: Eliminate unused ts_rem local from rcu_trace_clock_local()
  rcutorture: Add task's CPU for rcutorture writer stalls
  rcutorture: Use nr_cpus rather than maxcpus to limit test size
  rcutorture: Place event-traced strings into trace buffer
  rcutorture: Enable SRCU readers from timer handler
  rcutorture: Don't wait for kernel when all builds fail
  torture: Add --kconfig argument to kvm.sh
  rcutorture: Select CONFIG_PROVE_LOCKING for Tiny SRCU scenario
  rcu: Remove CONFIG_TASKS_RCU ifdef from rcuperf.c
  rcutorture: Print SRCU lock/unlock totals
  rcutorture: Move SRCU status printing to SRCU implementations
  srcu: Make process_srcu() be static
  rcutorture: Remove obsolete SRCU-C.boot
  srcu: Move rcu_scheduler_starting() from Tiny RCU to Tiny SRCU
  init_task: Remove redundant INIT_TASK_RCU_TREE_PREEMPT() macro
  module: Fix pr_fmt() bug for header use of printk
  sctp: remove the typedef sctp_abort_chunk_t
  sctp: remove the typedef sctp_heartbeat_chunk_t
  sctp: remove the typedef sctp_heartbeathdr_t
  sctp: remove the typedef sctp_sack_chunk_t
  sctp: remove the typedef sctp_sackhdr_t
  sctp: remove the typedef sctp_sack_variable_t
  sctp: remove the typedef sctp_dup_tsn_t
  sctp: remove the typedef sctp_gap_ack_block_t
  sctp: remove the typedef sctp_unrecognized_param_t
  sctp: remove the typedef sctp_cookie_param_t
  sctp: remove the typedef sctp_initack_chunk_t
  documentation: Fix relation between nohz_full and rcu_nocbs
  PM / suspend: Define pr_fmt() in suspend.c
  PM / suspend: Use mem_sleep_labels[] strings in messages
  PM / sleep: Put pm_test under CONFIG_PM_SLEEP_DEBUG
  PM / sleep: Check pm_wakeup_pending() in __device_suspend_noirq()
  PM / core: Add error argument to dpm_show_time()
  PM / core: Split dpm_suspend_noirq() and dpm_resume_noirq()
  PM / s2idle: Rearrange the main suspend-to-idle loop
  PM / Domains: Extend generic power domain debugfs
  PM / Domains: Add time accounting to various genpd states
  geneve/vxlan: offload ports on register/unregister events
  geneve/vxlan: add support for NETDEV_UDP_TUNNEL_DROP_INFO
  net: call udp_tunnel_get_rx_info when NETIF_F_RX_UDP_TUNNEL_PORT is toggled
  net: add infrastructure to un-offload UDP tunnel port
  net: check UDP tunnel RX port offload feature before calling tunnel ndo ndo
  net: add new netdevice feature for offload of RX port for UDP tunnels
  ACPI / lpat: Fix typos in comments and kerneldoc style
  geneve: add rtnl changelink support
  MAINTAINERS: device property: ACPI: add fwnode.h
  ACPI / boot: Add number of legacy IRQs to debug output
  ACPI / boot: Correct address space of __acpi_map_table()
  ACPI / boot: Don't define unused variables
  ACPI / PMIC: xpower: Do pinswitch magic when reading GPADC
  net: Convert to using %pOF instead of full_name
  virtio-net: switch off offloads on demand if possible on XDP set
  virtio-net: do not reset during XDP set
  virtio-net: switch to use new ctx API for small buffer
  virtio-net: pack headroom into ctx for mergeable buffers
  virtio_ring: allow to store zero as the ctx
  signal: Remove kernel interal si_code magic
  fcntl: Don't use ambiguous SIG_POLL si_codes
  selftests: Fix installation for splice test
  Bluetooth: hci_nokia: select BT_BCM for btbcm_set_bdaddr()
  selftests: watchdog: get boot reason via WDIOC_GETBOOTSTATUS
  selftests: watchdog: avoid keepalive flood
  selftests: watchdog: point out ioctl() failures
  selftests: watchdog: prefer strtoul() over atoi()
  selftests: watchdog: use getopt_long()
  selftests: watchdog: fix mixed whitespace
  selftests/nsfs: create kconfig fragments
  dt-bindings: add compatible string of Allwinner H5 Mali-450 MP4 GPU
  dt-bindings: chosen: document kaslr-seed property
  Bluetooth: btusb: Fix memory leak in play_deferred
  ASoC: rt5665: constify acpi_device_id.
  ASoC: rt5659: constify acpi_device_id.
  ASoC: rt5663: constify acpi_device_id.
  ASoC: rt5514: constify acpi_device_id.
  ASoC: rt5514: Add the I2S ASRC support
  ASoC: rsnd: don't use private_value on rsnd_kctrl_new()
  regulator: pwm-regulator: Remove unneeded gpiod NULL check
  of_pci: use of_property_read_u32_array()
  of_pci: use of_property_read_u32()
  of: base: use of_property_read_string()
  of: base: use of_property_read_u32()
  net/mlx5: fix spelling mistake: "alloated" -> "allocated"
  IB/hfi1: Add receiving queue info to qp_stats
  IB/mlx4: Expose RSS capabilities
  IB/mlx4: Add support for RSS QP
  IB/mlx4: Add support for WQ indirection table related verbs
  IB/mlx4: Add support for WQ related verbs
  (IB, net)/mlx4: Add resource utilization support
  IB/mlx4: Add inline-receive support
  IB/mlx5: Expose extended error counters
  IB/mlx5: Fix existence check for extended address vector
  IB/mlx5: Fix cached MR allocation flow
  IB/mlx5: Report RX checksum capabilities for IPoIB
  net/mlx5: Report enhanced capabilities for IPoIB
  IB/mlx5: Add multicast flow steering support for underlay QP
  IB/mlx5: Add support for QP with a given source QPN
  IB/uverbs: Enable QP creation with a given source QP number
  IB/core: Enable QP creation with a given source QP number
  IB/core: Add support for RoCEv2 multicast
  IB/core: Set RoCEv2 MGID according to spec
  IB/core: Fix the validations of a multicast LID in attach or detach operations
  IB/mlx5: Add delay drop configuration and statistics
  IB/mlx5: Add support to dropless RQ
  net/mlx5: Introduce general notification event
  net/mlx5: Introduce set delay drop command
  IB/core: Introduce delay drop for a WQ
  IB/mlx5: Restore IB guid/policy for virtual functions
  IB/mlx5: Add debug control parameters for congestion control
  IB/mlx5: Change logic for dispatching IB events for port state
  net/mlx5e: Enable local loopback in loopback selftest
  IB/mlx5: Add raw ethernet local loopback support
  net/mlx5: Add raw ethernet local loopback firmware command
  powerpc/powernv: Add IMC OPAL APIs
  RDMA/bnxt_re: Allow posting when QPs are in error
  RDMA/bnxt_re: Add vlan tag for untagged RoCE traffic when PFC is configured
  RDMA: Remove useless MODULE_VERSION
  IB/core: Add generic function to extract IB speed from netdev
  IB/usnic: Implement get_netdev hook
  IB/qib: remove duplicate code
  RDMA/bnxt_re: Delete unsupported modify_port function
  IB/cma: Set default gid type to RoCEv2
  IB/rxe: Constify static rxe_vm_ops
  IB/rxe: Use __func__ to print function's name
  IB/rxe: Use DEVICE_ATTR_RO macro to show parent field
  IB/rxe: Prefer 'unsigned int' to bare use of 'unsigned'
  IB/rxe: Use "foo *bar" instead of "foo * bar"
  powerpc/mm: Build fix for non SPARSEMEM_VMEMAP config
  power: supply: Add support for MAX1721x standalone fuel gauge
  power: supply: constify attribute_group structures.
  power: reset: Convert to using %pOF instead of full_name
  power: supply: act8945a_charger: fix of_irq_get() error check
  power: supply: cpcap-charger: add OMAP_USB2 dependency
  power: supply: sbs-battery: correct capacity mode selection bits
  ASoC: rt5665: add MONOVOL Playback Volume control
  powerpc/powernv: use memdup_user
  powerpc/pseries: Don't needlessly initialise rv to 0
  netfilter: nf_tables: Attach process info to NFT_MSG_NEWGEN notifications
  netfilter: Remove duplicated rcu_read_lock.
  powerpc/pseries: use memdup_user_nul
  powerpc/ipic: Support edge on IRQ0
  powerpc: allow compiling with GENERIC_MSI_IRQ_DOMAIN
  powerpc/powernv: Get cpu only after validity check
  netfilter: nf_tables: keep chain counters away from hot path
  netfilter: expect: add to hash table after expect init
  arm: sunxi: Add AXP20X_ADC
  x86/io: Make readq() / writeq() API consistent
  x86/io: Remove xlate_dev_kmem_ptr() duplication
  x86/io: Remove mem*io() duplications
  x86/io: Include asm-generic/io.h to architectural code
  x86/io: Define IO accessors by preprocessor
  arm: sunxi: Add additional power supplies
  arm: sunxi: refresh the defconfig
  arm64: allwinner: a64: add AXP803 PMIC support to SoPine and the baseboard
  arm64: allwinner: a64: enable AXP803 regulators for Pine64
  pinctrl: samsung: Remove unneeded local variable initialization
  soc: samsung: Use kbasename instead of open coding
  docs: submitting-patches - change non-ascii character to ascii
  docs: Use :internal: for include/drm/drm_syncobj.h
  sphinx-pre-install: add support for Mageia
  sphinx.rst: document scripts/sphinx-pre-install script
  sphinx-pre-install: fix USE needs for GraphViz and ImageMagick
  sphinx-pre-install: add dependencies for ImageMagick to work with svg
  sphinx-pre-install: check for the need of graphviz-gd
  sphinx-pre-install: use a requirements file
  sphinx-pre-install: detect an existing virtualenv
  scripts/sphinx-pre-install: add a script to check Sphinx install
  docs: Makefile: remove no-ops targets
  PM / timekeeping: Print debug messages when requested
  arm64: dts: rockchip: kill pcie_clkreqn and pcie_clkreqnb for rk3399
  arm64: dts: rockchip: change clkreq mode for rk3399-firefly
  arm64: dts: rockchip: enable the GPU for RK3399-GRU
  arm64: dts: rockchip: add ARM Mali GPU node for RK3399 SoCs
  iio: Convert to using %pOF instead of full_name
  dt-bindings: gpu: add the RK3399 mali for rockchip specifics
  arm64: dts: rockchip: remove abused keep-power-in-suspend
  ARM: dts: rockchip: fix property-ordering in rv1108 mmc nodes
  ARM: dts: rockchip: enable sdmmc for rv1108 evb
  Staging: iio: adc: ad7280a.c: Fixed Macro argument reuse
  dt-bindings: iio: humidity: hts221: support active-low interrupts
  iio: humidity: hts221: support active-low interrupts
  iio: humidity: hts221: squash hts221_power_on/off in hts221_set_enable
  iio: humidity: hts221: avoid useless ODR reconfiguration
  iio: humidity: hts221: do not overwrite reserved data during power-down
  iio: humidity: hts221: move BDU configuration in probe routine
  iio: humidity: hts221: refactor write_with_mask code
  iio: chemical: ccs811: Add support for AMS CCS811 VOC sensor
  ARM64: dts: meson-gx: consistently use the GIC_SPI and IRQ type macros
  usb: core: hub: controller driver name may be NULL
  usb: Convert to using %pOF instead of full_name
  USB: atm: remove unneeded MODULE_VERSION() usage
  USB: chipidea: remove unneeded MODULE_VERSION() usage
  USB: cdc-wdm: remove unneeded DRIVER_VERSION define
  USB: gadget: remove unneeded MODULE_VERSION() usage
  USB: microtek: remove unneeded DRIVER_VERSION macro
  USB: phy: remove unneeded MODULE_VERSION() usage
  USB: realtek_cr: remove unneeded MODULE_VERSION() usage
  USB: usbip: remove unneeded MODULE_VERSION() usage
  USB: misc: remove unneeded MODULE_VERSION() usage
  Input: axp20x-pek - switch to using devm_device_add_group()
  Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01
  Input: gpio_keys - use devm_device_add_group() for attributes
  driver core: add devm_device_add_group() and friends
  driver core: add device_{add|remove}_group() helpers
  driver core: make device_{add|remove}_groups() public
  driver core: emit uevents when device is bound to a driver
  Bluetooth: Style fix - align block comments
  PM / sleep: Mark suspend/hibernation start and finish
  PM / sleep: Do not print debug messages by default
  PM / suspend: Export pm_suspend_target_state
  cpufreq: Use transition_delay_us for legacy governors as well
  cpufreq: governor: Drop min_sampling_rate
  cpufreq: dt: Don't use generic platdev driver for tango
  dt-bindings: cpufreq: enhance MediaTek cpufreq dt-binding document
  dt-bindings: cpufreq: move MediaTek cpufreq dt-bindings document to proper place
  cpufreq: mediatek: Add support of cpufreq to MT2701/MT7623 SoC
  pm-graph: package makefile and man pages
  pm-graph: AnalyzeBoot v2.1
  pm-graph: AnalyzeSuspend v4.7
  clk: Convert to using %pOF instead of full_name
  device property: Introduce fwnode_property_get_reference_args
  device property: Constify fwnode property API
  device property: Constify argument to pset fwnode backend
  ACPI: Constify internal fwnode arguments
  ACPI: Constify acpi_bus helper functions, switch to macros
  ACPI: Prepare for constifying acpi_get_next_subnode() fwnode argument
  device property: Get rid of struct fwnode_handle type field
  ACPI: Use IS_ERR_OR_NULL() instead of non-NULL check in is_acpi_data_node()
  clk: qoriq: add pll clock to clock lookup table
  clk: qoriq: add clock configuration for ls1088a soc
  mtd: create per-device and module-scope debugfs entries
  locks: restore a warn for leaked locks on close
  ARM: configs: keystone: Enable reset drivers
  ARM: configs: keystone: Enable TI-SCI protocol and genpd driver
  ARM: configs: keystone: Enable Message Manager
  ARM: dts: keystone-k2g: Add TI SCI reset-controller node
  ARM: dts: keystone-k2g: Add ti-sci clock provider node
  ARM: dts: keystone-k2g: Add ti-sci power domain node
  ARM: dts: keystone-k2g: Add PMMC node to support TI-SCI protocol
  dt-bindings: Drop k2g genpd device ID macros
  of: remove unused pci_space variable from address.c
  cgroup: update debug controller to print out thread mode information
  cgroup: implement cgroup v2 thread support
  cgroup: implement CSS_TASK_ITER_THREADED
  cgroup: introduce cgroup->dom_cgrp and threaded css_set handling
  cgroup: add @flags to css_task_iter_start() and implement CSS_TASK_ITER_PROCS
  cgroup: reorganize cgroup.procs / task write path
  perf annotate: Do not overwrite sample->period
  perf annotate: Store the sample period in each histogram bucket
  of: irq: use of_property_read_u32()
  of: irq: use of_property_read_bool() for "interrupt-controller" prop
  GFS2: Set gl_object in inode lookup only after block type check
  GFS2: Introduce helper for clearing gl_object
  gfs2: add flag REQ_PRIO for metadata I/O
  GFS2: fix code parameter error in inode_go_lock
  media: get rid of a new bogus Sphinx 1.5 warning
  media: v4l2-fwnode: fix a Sphinx warning
  media: dvb-core/demux.h: fix kernel-doc warning
  perf hists: Pass perf_sample to __symbol__inc_addr_samples()
  perf annotate: Rename 'sum' to 'nr_samples' in struct sym_hist
  perf annotate: Introduce struct sym_hist_entry
  rxrpc: Move the packet.h include file into net/rxrpc/
  rxrpc: Expose UAPI definitions to userspace
  x86: Enable 5-level paging support via CONFIG_X86_5LEVEL=y
  x86/mm: Allow userspace have mappings above 47-bit
  x86/mm: Prepare to expose larger address space to userspace
  x86/mpx: Do not allow MPX if we have mappings above 47-bit
  x86/mm: Rename tasksize_32bit/64bit to task_size_32bit/64bit()
  x86/xen: Redefine XEN_ELFNOTE_INIT_P2M using PUD_SIZE * PTRS_PER_PUD
  x86/mm/dump_pagetables: Fix printout of p4d level
  x86/mm/dump_pagetables: Generalize address normalization
  phy: allwinner: phy-sun4i-usb: Add log when probing
  dmaengine: ppc4xx: remove DRIVER_ATTR() usage
  Revert "drm/i915: Add heuristic to determine better way to adjust brightness"
  Revert "drm/i915: Add option to support dynamic backlight via DPCD"
  cxgb4: display serial config and vpd versions
  media: Make parameter of media_entity_remote_pad() const
  media: Added support for the TerraTec T1 DVB-T USB tuner [IT9135 chipset]
  drm/i915: Drop unpin stall in atomic_prepare_commit
  drm/i915: Remove intel_flip_work infrastructure
  drm/i915: adjust has_pending_fb_unpin to atomic
  media: : usb: add const to v4l2_file_operations structures
  drm/i915: Rip out legacy page_flip completion/irq handling
  soc: rockchip: power-domain: add power domain support for rk3366
  dt-bindings: add binding for rk3366 power domains
  dt-bindings: power: add RK3366 SoCs header for power-domain
  media: dvb-frontends: mb86a16: remove useless variables in signal_det()
  media: v4l2-fwnode: make v4l2_fwnode_endpoint_parse_csi1_bus static
  ARM: rockchip: explicitly request exclusive reset control in smp code
  media: v4l2-fwnode: suppress a warning at OF parsing logic
  media: pvrusb2: fix the retry logic
  media: atomisp: use LINUX_VERSION_CODE for driver version
  media: cx25821: get rid of CX25821_VERSION_CODE
  media: radio-bcm2048: get rid of BCM2048_DRIVER_VERSION
  media: s3c-camif: use LINUX_VERSION_CODE for driver's version
  media: platform: davinci: drop VPFE_CMD_S_CCDC_RAW_PARAMS
  media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARAMS ioctl
  media: venus: don't abuse dma_alloc for non-DMA allocations
  media: venus: hfi: fix error handling in hfi_sys_init_done()
  media: venus: fix compile-test build on non-qcom ARM platform
  media: venus: mark PM functions as __maybe_unused
  media: dvb_ca_en50221.h: fix checkpatch strict warnings
  media: dvb_ca_en50221: Fixed multiple blank lines
  media: dvb_ca_en50221: Fixed style issues on the whole file
  media: dvb_ca_en50221: Fixed remaining block comments
  media: dvb_ca_en50221: Fix again wrong EXPORT_SYMBOL order
  media: dvb_ca_en50221: Fixed typo
  media: dvb_ca_en50221: Fixed 80 char limit
  media: dvb_ca_en50221: Fixed C++ comments
  media: dvb_ca_en50221: Removed unused symbol
  media: dvb_ca_en50221: Removed useless braces
  media: dvb_ca_en50221: Added line breaks
  media: dvb_ca_en50221: Used a helper variable
  media: dvb_ca_en50221: Avoid assignments in ifs
  media: dvb_ca_en50221: Fixed block comments
  media: dvb_ca_en50221: use usleep_range
  media: dvb_ca_en50221: New function dvb_ca_en50221_poll_cam_gone
  media: dvb_ca_en50221: Refactored dvb_ca_en50221_thread
  media: dvb-frontends/stv0367: improve QAM fe_status
  media: devnode: Rename mdev argument as devnode
  media: Remove useless curly braces and parentheses
  media: dib0090: make const array dib0090_tuning_table_cband_7090e_aci static
  media: drxj: make several const arrays static
  media: drxd: make const arrays slowIncrDecLUT and fastIncrDecLUT static
  media: dvb-frontends/cxd2841er: do sleep on delivery system change
  media: staging: fbtft: make const array gamma_par_mask static
  media: dvb-frontends/cxd2841er: make several arrays static
  media: media/dvb: earth-pt3: fix hang-up in a rare case
  media: ngene: constify i2c_algorithm structure
  media: mantis: constify i2c_algorithm structure
  media: dm1105: constify i2c_algorithm structure
  media: ddbridge: constify i2c_algorithm structure
  media: cx24123: constify i2c_algorithm structure
  media: zd1301_demod: constify i2c_algorithm structure
  media: dib8000: constify i2c_algorithm structure
  media: s5h1420: constify i2c_algorithm structure
  media: dib7000p: constify i2c_algorithm structure
  media: marvell-ccic: constify i2c_algorithm structure
  media: saa7146: constify i2c_algorithm structure
  media: dib9000: constify i2c_algorithm structure
  media: usbvision: constify i2c_algorithm structure
  media: dvb-ttusb-budget: constify i2c_algorithm structure
  tools lib: Update copy of strtobool from the kernel sources
  tools include: Adopt strstarts() from the kernel
  ARM: s3c24xx: make H1940BT depend on RFKILL
  perf trace: Filter out 'sshd' in the tracer ancestry in syswide tracing
  media: dvb-frontends/stv0367: DDB frontend status inquiry fixup
  media: MAINTAINERS: add entries for stv0910 and stv6111
  media: ddbridge: stv0910 single demod mode module option
  media: ddbridge: support for CineS2 V7(A) and DuoFlex S2 V4 hardware
  media: ddbridge: return stv09xx id in port_has_stv0900_aa()
  media: dvb-frontends: add ST STV6111 DVB-S/S2 tuner frontend driver
  media: dvb-frontends/stv0910: Add missing set_frontend fe-op
  media: dvb-frontends/stv0910: Add demod-only signal strength reporting
  media: dvb-frontends/stv0910: add multistream (ISI) and PLS capabilities
  media: dvb-frontends/stv0910: Fix possible buffer overflow
  media: dvb-frontends: add ST STV0910 DVB-S/S2 demodulator frontend driver
  smp/hotplug: Handle removal correctly in cpuhp_store_callbacks()
  of: overlay: add overlay symbols to live device tree
  ACPICA: Update version to 20170629
  ACPICA: Update resource descriptor handling
  ACPICA: iasl: Update to IORT SMMUv3 disassembling
  ACPICA: Disassembler: skip parsing of incorrect external declarations
  ACPICA: iASL: Ensure that the target node is valid in acpi_ex_create_alias
  ACPICA: Tables: Add deferred table verification support
  ACPICA: Tables: Combine checksum/duplication verification together
  ACPICA: Tables: Change table duplication check to be related to acpi_gbl_verify_table_checksum
  ACPICA: Tables: Do not validate signature for dynamic table load
  ACPICA: Tables: Cleanup table handler invokers
  ACPICA: Tables: Add sanity check in acpi_put_table()
  ACPICA: linuxize: cleanup typedef definitions
  Back port of "ACPICA: Use designated initializers"
  ACPICA: iASL compiler: allow compilation of externals with paths that refer to existing names
  ACPICA: Tools: Deallocate memory allocated by ac_get_all_tables_from_file via ac_delete_table_list
  ACPICA: IORT: Update SMMU models for revision C
  ACPICA: Small indentation changes, no functional change
  of: overlay: correctly apply overlay node with unit-address
  of: overlay: add overlay unittest data for node names and symbols
  perf trace: Introduce filter_loop_pids()
  perf trace beauty clone: Suppress unused args according to 'flags' arg
  perf trace beauty clone: Beautify syscall arguments
  tools include uapi: Grab a copy of linux/sched.h
  HID: asus: Add T100CHI bluetooth keyboard dock special keys mapping
  HID: asus: Add T100TA touchpad resolution info
  HID: asus: Fix T100TA touchpad y dimensions
  HID: asus: Parameterize the touchpad code
  HID: asus: Add support for T100 touchpad
  HID: wacom: Remove comparison of u8 mode with zero and simplify.
  perf trace: Allow specifying names to syscall arguments formatters
  perf trace: Allow specifying number of syscall args for tracepointless syscalls
  perf trace: Ditch __syscall__arg_val() variant, not needed anymore
  perf trace: Use the syscall_fmt formatters without a tracepoint
  perf trace: Allow allocating sc->arg_fmt even without the syscall tracepoint
  perf trace beauty mmap: Ignore 'fd' and 'offset' args for MAP_ANONYMOUS
  perf trace: Add missing ' = ' in the default formatting of syscall returns
  perf intel-pt: Always set no branch for dummy event
  perf intel-pt: Set no_aux_samples for the tracking event
  prctl: Allow local CAP_SYS_ADMIN changing exe_file
  security: Use user_namespace::level to avoid redundant iterations in cap_capable()
  userns,pidns: Verify the userns for new pid namespaces
  regulator: core: fix a possible race in disable_work handling
  ASoC: rt5665: add clock sync control for master mode
  ASoC: rt5665: add clcok control for master mode
  ASoC: rt5514: Support the TDM docking mode
  arm64: zynqmp: Remove leading 0s from mtd table for spi flashes
  arm64: dts: xilinx: fix PCI bus dtc warnings
  ASoC: rt5677: Remove never used variables
  ASoC: Intel: board: Add Geminilake platform support
  ASoC: hdac_hdmi: Add the vendor nid for Geminilake HDMI
  ASoC: Intel: board: Remove .owner initialization in bxt_rt298 driver
  regulator: fan53555: Use of_device_get_match_data() to simplify probe
  media: platform: video-mux: convert to multiplexer framework
  arm: dts: mt7623: fixup binding violation missing reset in ethernet node
  dt-bindings: net: mediatek: update documentation for reset signals
  media: usbvision-i2c: fix format overflow warning
  media: v4l2-mediabus: Add helper functions
  media: adv7180: add missing adv7180cp, adv7180st i2c device IDs
  media: solo6x10: fix detection of TW2864B chips
  media: dt-bindings: media: Add r8a7796 DRIF bindings
  arm64: dts: mt7622: add dts file for MT7622 reference board variant 1
  arm64: dts: mt7622: add basic nodes to the mt7622.dtsi file
  drm/i915/selftests: Fix an error handling path in 'mock_gem_device()'
  drm/i915: s/INTEL_INFO(dev_priv)->gen/INTEL_GEN(dev_priv) in i915_irq
  ARC: reset: introduce HSDKv1 reset driver
  x86/boot: Fix memremap() related build failure
  Bluetooth: btwilink: remove unnecessary static in bt_ti_probe()
  Bluetooth: hci_ll: Use new hci_uart_unregister_device() function
  Bluetooth: hci_nokia: Use new hci_uart_unregister_device() function
  Bluetooth: hci_serdev: Introduce hci_uart_unregister_device()
  Bluetooth: btusb: fix QCA Rome suspend/resume
  Bluetooth: hci_nokia: remove duplicate call to pm_runtime_disable()
  Bluetooth: hci_nokia: prevent crash on module removal
  Bluetooth: btqca: Fixed a coding style error
  Bluetooth: btusb: Add support of all Foxconn (105b) Broadcom devices
  Bluetooth: hci_bcm: Make bcm_request_irq fail if no IRQ resource
  Revert "x86/hyper-v: include hyperv/ only when CONFIG_HYPERV is set"
  drm/i915: Unbreak gpu reset vs. modeset locking
  drm/i915: Nuke legacy flip queueing code
  drm/i915: Pass enum pipe to intel_set_pch_fifo_underrun_reporting()
  cxgb4: Update register ranges of T4/T5/T6 adapters
  netvsc: add rtnl annotations in rndis
  netvsc: save pointer to parent netvsc_device in channel table
  netvsc: need rcu_derefence when accessing internal device info
  netvsc: use ERR_PTR to avoid dereference issues
  netvsc: change logic for change mtu and set_queues
  netvsc: change order of steps in setting queues
  netvsc: add some rtnl_dereference annotations
  netvsc: force link update after MTU change
  ARM: s3c24xx: Do not confuse local define with Kconfig
  ARM: s3c24xx: Remove non-existing SND_SOC_SMDK2443_WM9710
  ARM: s3c24xx: Remove non-existing CONFIG_CPU_S3C2413
  signal/testing: Don't look for __SI_FAULT in userspace
  signal/mips: Document a conflict with SI_USER with SIGFPE
  signal/sparc: Document a conflict with SI_USER with SIGFPE
  signal/ia64: Document a conflict with SI_USER with SIGFPE
  signal/alpha: Document a conflict with SI_USER for SIGTRAP
  net: make dev_close and related functions void
  hns: remove useless void cast
  bluetooth: 6lowpan dev_close never returns error
  liquidio: lio_main: remove unnecessary static in setup_io_queues()
  liquidio: lio_vf_main: remove unnecessary static in setup_io_queues()
  net: ethernet: mediatek: remove useless code in mtk_poll_tx()
  qlcnic: remove unnecessary static in qlcnic_dump_fw()
  net: tulip: remove useless code in tulip_init_one()
  rtlwifi: remove useless code
  wireless: airo: remove unnecessary static in writerids()
  net: dsa: unexport dsa_is_port_initialized
  net/packet: remove unused PGV_FROM_VMALLOC definition.
  ISDN: eicon: switch to use native bitmaps
  sfc: Add ethtool -m support for QSFP modules
  tcp: adjust tail loss probe timeout
  media: adv748x: get rid of unused var
  openvswitch: Optimize operations for OvS flow_stats.
  openvswitch: Optimize updating for OvS flow_stats.
  ARM: bcm2835_defconfig: Enable wifi driver for RPi Zero W
  ARM: bcm2835_defconfig: Increase CMA for VC4
  ARM: bcm2835_defconfig: Enable Mini UART console support
  media: MAINTAINERS: Add ADV748x driver
  media: i2c: adv748x: add adv748x driver
  media: adv748x: Add adv7481, adv7482 bindings
  media: staging: atomisp: fixed trivial coding style issue
  media: staging: atomisp: fixed trivial coding style warning
  media: staging: atomisp: hmm: Alignment code (rebased)
  media: staging: atomisp: hmm: Fixed comment style
  media: staging: atomisp: Use kvfree() instead of kfree()/vfree()
  media: staging: atomisp: use kstrdup to replace kmalloc and memcpy
  media: staging: atomisp: gc2235: constify acpi_device_id
  liquidio: lowmem: init allocated memory to 0
  liquidio: lowmem: do not dereference null ptr
  liquidio: lowmem: init allocated memory to 0
  media: staging: atomisp: mt9m114: constify acpi_device_id
  media: staging: atomisp: ov5693: constify acpi_device_id
  media: staging: atomisp: ov2722: constify acpi_device_id
  media: staging: atomisp: gc0310: constify acpi_device_id
  media: staging: atomisp: ov8858: constify acpi_device_id
  media: staging: atomisp: ov2680: constify acpi_device_id
  media: staging: atomisp: lm3554: constify acpi_device_id
  liquidio: support new firmware statistic fw_err_pki
  media: staging: atomisp: i2c: ov5693: Fix style a coding style issue
  media: staging: atomisp: gc2235: fix sparse warning: missing static
  media: staging: atomisp: Remove unnecessary return statement in void function
  media: i2c: Add Omnivision OV5670 5M sensor support
  media: MAINTAINERS: Change OV5647 Maintainer
  media: smiapp: make various const arrays static
  media: docs-rst: v4l: Fix sink compose selection target documentation
  media: ov5645: Add control to export CSI2 link frequency
  media: ov5645: Add control to export pixel clock frequency
  media: ov5645: Set media entity function
  media: omap3isp: Ignore endpoints with invalid configuration
  media: omap3isp: Return -EPROBE_DEFER if the required regulators can't be obtained
  media: omap3isp: add CSI1 support
  media: omap3isp: Explicitly set the number of CSI-2 lanes used in lane cfg
  media: omap3isp: Destroy CSI-2 phy mutexes in error and module removal
  media: omap3isp: Check for valid port in endpoints
  media: smiapp: add CCP2 support
  media: v4l: Add support for CSI-1 and CCP2 busses
  media: v4l: fwnode: Obtain data bus type from FW
  media: v4l: fwnode: Call CSI2 bus csi2, not csi
  media: dt: bindings: Add strobe property for CCP2
  media: dt: bindings: Explicitly specify bus type
  media: coda: wake up capture queue on encoder stop after output streamoff
  media: coda: mark CODA960 firmware versions 2.3.10 and 3.1.1 as supported
  media: coda: set MPEG-4 encoder class register
  media: coda: align internal mpeg4 framebuffers to 16x16 macroblocks
  media: coda: set field of destination buffers
  media: coda: extend GOP size range
  media: coda: do not reassign ctx->tiled_map_type in coda_s_fmt
  media: coda: add h264 and mpeg4 profile and level controls
  media: davinci: vpif_capture: fix potential NULL deref
  media: fc001[23]: make const gain table arrays static
  media: solo6x10: make const array saa7128_regs_ntsc static
  media: platform: video-mux: fix Kconfig dependency
  media: mediatek: constify vb2_ops structure
  media: mtk-mdp: constify vb2_ops structure
  media: davinci: vpif_capture: constify vb2_ops structure
  media: davinci: vpif_display: constify vb2_ops structure
  media: atmel-isc: constify vb2_ops structure
  media: rcar_fdp1: constify vb2_ops structure
  media: pxa_camera: constify vb2_ops structure
  media: st-delta: constify vb2_ops structures
  media: stm32-dcmi: constify vb2_ops structure
  media: tuners: remove unnecessary static in simple_dvb_configure()
  media: media/i2c/saa717x: fix spelling mistake: "implementd" -> "implemented"
  media: i2c: m5mols: fix spelling mistake: "Machanics" -> "Mechanics"
  media: vb2 dma-sg: Constify dma_buf_ops structures
  media: vb2 vmalloc: Constify dma_buf_ops structures
  media: vb2 dma-contig: Constify dma_buf_ops structures
  media: cx23885: add const to v4l2_file_operations structure
  media: media/platform: add const to v4l2_file_operations structures
  media: cec-core: fix a Sphinx warning
  drm/i915/selftests: Mark contexts as lost during freeing of mock device
  gfs2: Fixup to "Get rid of flush_delayed_work in gfs2_evict_inode"
  ASoC: tegra: explicitly request exclusive reset control
  ASoC: sun4i: explicitly request exclusive reset control
  ASoC: stm32: explicitly request exclusive reset control
  ASoC: img: explicitly request exclusive reset control
  spi: tegra20-sflash: explicitly request exclusive reset control
  spi: tegra114: explicitly request exclusive reset control
  spi: tegra20-slink: explicitly request exclusive reset control
  clk: renesas: rcar-gen3-cpg: Refactor checks for accessing the div table
  spi: sun6i: explicitly request exclusive reset control
  spi: stm32: explicitly request exclusive reset control
  clk: renesas: rcar-gen3-cpg: Drop superfluous variable
  gfs2: Don't clear SGID when inheriting ACLs
  drm/i915: unregister interfaces first in unload
  drm/i915: Fix fbdev unload sequence
  drm/atomic-helper: Fix leak in disable_all
  drm/i915/selftests: Attach a stub pm_domain
  drm/i915: Drain the device workqueue on unload
  drm/i915: More stolen quirking
  drm/i915: Fix bad comparison in skl_compute_plane_wm, v2.
  regulator: of: regulator_of_get_init_data() missing of_node_get()
  ASoC: rt5677: Refactor code to avoid comparison unsigned >= 0
  ASoC: rt5677: Hide platform data in the module sources
  regulator: pwm-regulator: fix example syntax
  spi: Convert to using %pOF instead of full_name
  regulator: Convert to using %pOF instead of full_name
  ASoC: rt5663: Correct the mixer switch setting and remove redundant routing path
  ASoC: rt274: correct comment style
  reset: make (de)assert report success for self-deasserting reset drivers
  reset: Add APIs to manage array of resets
  reset: zx2967: constify zx2967_reset_ops.
  drm/i915: Explicit the connector name for DP link training result
  EDAC, cpc925, ppc4xx: Convert to using %pOF instead of full_name
  pinctrl: samsung: Consistently use unsigned instead of u32 for nr_banks
  pinctrl: samsung: Use unsigned int for number of controller IO mem resources
  dmaengine: bcm-scm-raid: statify functions
  dmaengine: qcom_hidma: correct channel QOS register offset
  dmaengine: qcom_hidma: correct overriding message
  dmaengine: qcom_hidma: introduce memset support
  dmaengine: Convert to using %pOF instead of full_name
  perf report: Show branch type in callchain entry
  perf report: Show branch type statistics for stdio mode
  perf util: Create branch.c/.h for common branch functions
  perf report: Refactor the branch info printing code
  perf record: Create a new option save_type in --branch-filter
  perf/x86/intel: Record branch type
  perf/core: Define the common branch type classification
  perf header: Add event desc to pipe-mode header
  perf tools: Add feature header record to pipe-mode
  perf tool: Add show_feature_header to perf_tool
  perf header: Change FEAT_OP* macros
  perf header: Add a buffer to struct feat_fd
  perf header: Make write_pmu_mappings pipe-mode friendly
  perf header: Use struct feat_fd in read header records
  perf header: Don't pass struct perf_file_section to process_##_feat
  perf header: Use struct feat_fd to process header records
  perf header: Use struct feat_fd for print
  perf header: Add struct feat_fd for write
  perf header: Revamp do_write()
  perf util: Add const modifier to buf in "writen" function
  perf header: Fail on write_padded error
  perf header: Add PROCESS_STR_FUN macro
  perf header: Encapsulate read and swap
  perf report: Enable finding kernel inline functions
  perf trace beauty: Simplify syscall return formatting
  perf trace beauty fcntl: Beautify the 'arg' for DUPFD
  perf trace beauty fcntl: Do not suppress 'cmd' when zero, should be DUPFD
  perf trace: Allow syscall arg formatters to request non suppression of zeros
  perf trace: Group per syscall arg formatter info into one struct
  perf trace beauty fcntl: Beautify F_GETLEASE and F_SETLEASE arg/return
  perf trace beauty: Export strarray for use in per-object beautifiers
  perf tests attr: Add optional term
  perf tests attr: Fix stat sample_type setup
  perf tests attr: Fix precise_ip setup
  perf tests attr: Fix sample_period setup
  perf tests attr: Fix cpu test disabled term setup
  perf tests attr: Add proper return values
  perf tests attr: Fix no-delay test
  perf tests attr: Fix record dwarf test
  perf tests attr: Add 1s for exclude_kernel and task base bits
  perf tests attr: Rename compare_data to data_equal
  perf tests attr: Make compare_data global
  perf tests attr: Add test_attr__ready function
  perf tests attr: Do not store failed events
  perf test sdt: Handle realpath() failure
  perf record: Do not ask for precise_ip with --no-samples
  perf evlist: Allow asking for max precise_ip in add_default()
  perf evsel: Allow asking for max precise_ip in new_cycles()
  perf buildid-cache: Cache debuginfo
  perf buildid-cache: Support binary objects from other namespaces
  perf probe: Allow placing uprobes in alternate namespaces.
  perf maps: Lookup maps in both intitial mountns and inner mountns.
  perf symbols: Find symbols in different mount namespace
  tools build: Add test for setns()
  tools include uapi x86: Add __NR_setns, if missing
  tools include uapi x86: Grab a copy of unistd.h
  perf vendor events: Add POWER9 PVRs to mapfile
  perf vendor events: Add POWER9 PMU events
  perf pmu-events: Support additional POWER8+ PVR in mapfile
  perf trace beauty fcntl: Beautify F_GETOWN and F_SETOWN
  perf trace beauty: Export the pid beautifier for use in more places
  perf trace beauty fcntl: Augment the return of F_DUPFD(_CLOEXEC)
  perf trace beauty: Export the fd beautifier for use in more places
  perf trace beauty: Give syscall return beautifier more context
  perf trace beauty fcntl: Beautify F_[GS]ETFD arg/return value
  perf trace beauty fcntl flags: Beautify F_SETFL arg
  perf trace beauty open flags: Move RDRW to the start of the output
  perf trace beauty fcntl: Beautify F_GETFL return value
  perf trace beauty open flags: Do not depend on the system's O_LARGEFILE define
  perf trace beauty open flags: Support O_TMPFILE and O_NOFOLLOW
  perf trace: Allow syscall_arg beautifiers to set a different return formatter
  perf beauty open: Detach the syscall_arg agnostic bits from the flags formatter
  perf trace: Beautify new write hint fcntl commands
  perf trace beauty fcntl: Basic 'arg' beautifier
  tools include uapi asm-generic: Grab a copy of fcntl.h
  perf trace beauty: Introduce syscall arg beautifier for long integers
  perf trace beauty: Export the "int" and "hex" syscall arg formatters
  perf trace beauty: Allow accessing syscall args values in a syscall arg formatter
  perf trace beauty: Mask ignored fcntl 'arg' parameter
  perf trace: Only build tools/perf/trace/beauty/ when building 'perf trace'
  perf trace beauty: Export the strarrays scnprintf method
  tools: Update include/uapi/linux/fcntl.h copy from the kernel
  perf trace: Beautify linux specific fcntl commands
  perf trace: Remove F_ from some of the fcntl command strings
  perf annotate: Implement visual marker for macro fusion
  perf annotate: Check for fused instructions
  usb: chipidea: msm: ci_hdrc_msm_probe() missing of_node_get()
  usb: chipidea: udc: compress return logic into line
  extcon: Convert to using %pOF instead of full_name
  of: Convert to using %pOF instead of full_name
  ata: Convert to using %pOF instead of full_name
  net: chelsio: cxgb3: constify attribute_group structures.
  net: bonding: constify attribute_group structures.
  arcnet: com20020-pci: constify attribute_group structures.
  wireless: iwlegacy: Constify attribute_group structures.
  wireless: iwlegacy: constify attribute_group structures.
  wireless: ipw2100: constify attribute_group structures.
  wireless: ipw2200: constify attribute_group structures.
  net: can: janz-ican3: constify attribute_group structures.
  net: can: at91_can: constify attribute_group structures.
  net: cdc_ncm: constify attribute_group structures.
  mlxsw: spectrum_router: Update prefix count for IPv6
  mlxsw: spectrum_router: Rename functions to add / delete a FIB entry
  mlxsw: spectrum_router: Drop unnecessary parameter
  mlxsw: spectrum_router: Mark IPv4 specific function accordingly
  mlxsw: spectrum_router: Create IPv4 specific entry struct
  mlxsw: spectrum_router: Set abort trap for IPv6
  mlxsw: spectrum_router: Allow IPv6 routes to be programmed
  mlxsw: reg: Update RALUE register with IPv6 support
  mlxsw: spectrum_router: Extend virtual routers with IPv6 support
  mlxsw: spectrum_router: Make FIB node retrieval family agnostic
  mlxsw: spectrum_router: Don't create FIB node during lookup
  mlxsw: spectrum_router: Don't assume neighbour type
  mlxsw: spectrum_router: Set activity interval according to both neighbour tables
  mlxsw: spectrum_router: Periodically dump active IPv6 neighbours
  mlxsw: reg: Update RAUHTD register with IPv6 support
  mlxsw: spectrum_router: Reflect IPv6 neighbours to the device
  mlxsw: reg: Update RAUHT register with IPv6 support
  mlxsw: spectrum_router: Configure RIFs based on IPv6 addresses
  mlxsw: spectrum_router: Flood unregistered multicast packets to router
  mlxsw: spectrum: Add support for IPv6 traps
  mlxsw: reg: Enable IPv6 on router interfaces
  mlxsw: spectrum_router: Enable IPv6 router
  workqueue: doc change for ST behavior on NUMA systems
  x86/mm: Add support to make use of Secure Memory Encryption
  compiler-gcc.h: Introduce __nostackprotector function attribute
  pinctrl: samsung: Use define from dt-bindings for pin mux function
  xfrm: add xdst pcpu cache
  xfrm: remove flow cache
  xfrm_policy: make xfrm_bundle_lookup return xfrm dst object
  xfrm_policy: remove xfrm_policy_lookup
  xfrm_policy: kill flow to policy dir conversion
  xfrm_policy: remove always true/false branches
  xfrm_policy: bypass flow_cache_lookup
  net: xfrm: revert to lower xfrm dst gc limit
  vti: revert flush x-netns xfrm cache when vti interface is removed
  drivers: net: add missing interrupt.h include
  net: dsa: mv88e6xxx: add a multi_chip info flag
  net: dsa: mv88e6xxx: add Energy Detect ops
  net: dsa: mv88e6xxx: add a global2_addr info flag
  net: dsa: mv88e6xxx: add POT operation
  net: dsa: mv88e6xxx: add POT flag to 88E6390
  net: dsa: mv88e6xxx: distinguish Global 2 Rsvd2CPU
  net: dsa: mv88e6xxx: add number of Global 2 IRQs
  net: dsa: mv88e6xxx: remove 88E6185 G2 interrupt
  net: dsa: mv88e6xxx: remove unused capabilities
  net: dsa: mv88e6xxx: fix 88E6321 family comment
  net: dsa: mv88e6xxx: remove LED control register
  net: dsa: mv88e6xxx: remove unneeded dsa header
  ALSA: hda: constify pci_device_id.
  pinctrl: samsung: dt-bindings: Use better name for external interrupt function
  pinctrl: samsung: Fix invalid register offset used for Exynos5433 external interrupts
  dmaengine: Add driver for Altera / Intel mSGDMA IP core
  sun4i_hdmi: add CEC support
  dmaengine: dmatest: add support for memset test
  pinctrl: samsung: Fix NULL pointer exception on external interrupts on S3C24xx
  dmaengine: ioat: constify pci_device_id.
  media: pulse8-cec/rainshadow-cec: make adapter name unique
  media: cec: drop senseless message
  media: cec: move cec_register_cec_notifier to cec-notifier.h
  media: pulse8-cec.rst: add documentation for the pulse8-cec driver
  media: cec: be smarter about detecting the number of attempts made
  ARM: exynos_defconfig: Enable locking test options
  media: cec-core.rst: include cec-pin.h and cec-notifier.h
  media: cec-pin: add low-level pin hardware support
  ARM: exynos_defconfig: Enable NLS_UTF8 and some crypto algorithms
  media: cec: add core support for low-level CEC pin monitoring
  ARM: exynos_defconfig: Enable Bluetooth, mac80211, NFC and more USB drivers
  ALSA: pcxhr: fix string overflow warnings
  ALSA: rme9652: fix format overflow warnings
  media: cec: document the new CEC pin capability, events and mode
  ALSA: mixart: fix string overflow warning
  ALSA: opti9xx: fix format string overflow warning
  ALSA: ad1848: fix format string overflow warning
  ALSA: cs423x: fix format string overflow warning
  ARM: qcom_defconfig: Cleanup from non-existing options
  ARM: ezx_defconfig: Cleanup from non-existing options
  ARM: vexpress_defconfig: Cleanup from non-existing options
  ARM: ixp4xx_defconfig: Cleanup from non-existing options
  ALSA: als100: fix format string overflow warning
  ARM: multi_v7_defconfig: Cleanup from non-existing options
  media: cec: rework the cec event handling
  media: linux/cec.h: add pin monitoring API support
  media: cec-core.rst: document the adap_free callback
  media: cec: add adap_free op
  media: cec: add *_ts variants for transmit_done/received_msg
  media: cec: improve transmit timeout logging
  media: cec: only increase the seqnr if CEC_TRANSMIT would return 0
  media: cec: clear all cec_log_addrs fields
  media: ov6650: convert to standalone v4l2 subdevice
  media: svg: avoid too long lines
  media: svg files: simplify files
  media: selection.svg: simplify the SVG file
  dt-bindings: display: sunxi: Improve endpoint ID scheme readability
  drm/sun4i: tcon: remove unused function
  drm/sun4i: Remove useless atomic_check
  drm/sun4i: Add if statement instead of depends on
  ASoC: rt274: add rt274 codec driver
  ASoC: rt5663: Modify the default value for ASRC function
  spi: loopback-test: make several module parameters static
  mtd: spi-nor: parse Serial Flash Discoverable Parameters (SFDP) tables
  hwrng: remember rng chosen by user
  hwrng: use rng source with best quality
  crypto: caam - fix condition for the jump over key(s) command
  crypto: caam - clean-up in caam_init_rng()
  crypto: caam - remove unused variables in caam_drv_private
  crypto: caam - remove unused sg_to_sec4_sg_len()
  crypto: caam/qi - lower driver verbosity
  crypto: caam/qi - remove unused header sg_sw_sec4.h
  crypto: caam/qi - explicitly set dma_ops
  crypto: caam/qi - fix AD length endianness in S/G entry
  crypto: caam/qi - handle large number of S/Gs case
  crypto: caam/qi - properly set IV after {en,de}crypt
  crypto: caam/qi - fix compilation with CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
  crypto: caam/qi - fix compilation with DEBUG enabled
  crypto: caam/qi - fix typo in authenc alg driver name
  crypto: brcm - add NULL check on of_match_device() return value
  crypto: geode-aes - fixed coding style warnings and error
  crypto: ccp - remove ccp_present() check from device initialize
  crypto: ccp - rename ccp driver initialize files as sp device
  drm/i915: Fix cursor updates on some platforms
  crypto: ccp - Abstract interrupt registeration
  crypto: ccp - Introduce the AMD Secure Processor device
  crypto: ccp - Use devres interface to allocate PCI/iomap and cleanup
  MAINTAINERS: add a maintainer for Microchip / Atmel ECC driver
  crypto: atmel-ecc - introduce Microchip / Atmel ECC driver
  crypto: kpp - add get/set_flags helpers
  crypto: sun4i-ss - support the Security System PRNG
  crypto: omap-des - fix error return code in omap_des_probe()
  crypto: omap-aes - fix error return code in omap_aes_probe()
  crypto: mxs-dcp - print error message on platform_get_irq failure
  crypto: mxc-scc - fix error code in mxc_scc_probe()
  crypto: mediatek - fix error return code in mtk_crypto_probe()
  crypto: ccp - print error message on platform_get_irq failure
  crypto: ccp - Provide an error path for debugfs setup failure
  crypto: ccp - Change all references to use the JOB ID macro
  crypto: ccp - Fix some line spacing
  crypto: sahara - make of_device_ids const
  crypto: qat - fix spelling mistake: "runing" -> "running"
  crypto: virtio - Refacotor virtio_crypto driver for new virito crypto services
  x86/boot: Add early cmdline parsing for options with arguments
  x86/mm: Add support to encrypt the kernel in-place
  x86/mm: Create native_make_p4d() for PGTABLE_LEVELS <= 4
  x86/mm: Use proper encryption attributes with /dev/mem
  xen/x86: Remove SME feature in PV guests
  x86/mm, kexec: Allow kexec to be used with SME
  kvm/x86/svm: Support Secure Memory Encryption within KVM
  x86, drm, fbdev: Do not specify encrypted memory for video mappings
  x86/boot/realmode: Check for memory encryption on the APs
  iommu/amd: Allow the AMD IOMMU to work with memory encryption
  x86/cpu/AMD: Make the microcode level available earlier in the boot
  swiotlb: Add warnings for use of bounce buffers with SME
  x86, swiotlb: Add memory encryption support
  x86/realmode: Decrypt trampoline area if memory encryption is active
  x86/mm: Add support for changing the memory encryption attribute
  x86/mm: Add support to access persistent memory in the clear
  x86/boot: Use memremap() to map the MPF and MPC data
  x86/mm: Add support to access boot related data in the clear
  x86/efi: Update EFI pagetable creation to work with SME
  efi: Update efi_mem_type() to return an error rather than 0
  efi: Add an EFI table address match function
  x86/boot/e820: Add support to determine the E820 type of an address
  x86/mm: Insure that boot memory areas are mapped properly
  x86/mm: Add support for early encryption/decryption of memory
  x86/mm: Extend early_memremap() support with additional attrs
  x86/mm: Add SME support for read_cr3_pa()
  x86/mm: Provide general kernel support for memory encryption
  x86/mm: Simplify p[g4um]d_page() macros
  x86/mm: Add support to enable SME in early boot processing
  x86/mm: Remove phys_to_virt() usage in ioremap()
  x86/mm: Add Secure Memory Encryption (SME) support
  x86/cpu/AMD: Handle SME reduction in physical address size
  x86/cpu/AMD: Add the Secure Memory Encryption CPU feature
  x86, mpparse, x86/acpi, x86/PCI, x86/dmi, SFI: Use memremap() for RAM mappings
  x86/mm/pat: Set write-protect cache mode for full PAT support
  x86/cpu/AMD: Document AMD Secure Memory Encryption (SME)
  arm64: defconfig: enable nop-xceiv PHY driver
  x86/numa_emulation: Recalculate numa_nodes_parsed from emulated nodes
  x86/numa_emulation: Assign physnode_mask directly from numa_nodes_parsed
  x86/numa_emulation: Refine the calculation of max_emu_nid and dfl_phys_nid
  x86/boot/KASLR: Rename process_e820_entry() into process_mem_region()
  x86/boot/KASLR: Switch to pass struct mem_vector to process_e820_entry()
  x86/boot/KASLR: Wrap e820 entries walking code into new function process_e820_entries()
  x86/asm: Add unwind hint annotations to sync_core()
  x86/entry/64: Add unwind hint annotations
  objtool, x86: Add facility for asm code to provide unwind hints
  objtool: Add ORC unwind table generation
  x86/dumpstack: Fix interrupt and exception stack boundary checks
  x86/dumpstack: Fix occasionally missing registers
  x86/entry/64: Initialize the top of the IRQ stack before switching stacks
  x86/entry/64: Refactor IRQ stacks and make them NMI-safe
  tty/serial/fsl_lpuart: Add CONSOLE_POLL support for lpuart32.
  tty: serial: owl: Implement console driver
  ARM: ux500: Add vendor prefix to tps61052 node
  mfd: tps6105x: Add OF device ID table
  dt-bindings: mfd: Add TI tps6105x chip bindings
  i2c: i2c-cbus-gpio: Add vendor prefix to retu node in example
  mfd: retu: Add OF device ID table
  ARM: dts: n8x0: Add vendor prefix to retu node
  mfd: retu: Drop -mfd suffix from I2C device ID name
  dt-bindings: mfd: Add retu/tahvo ASIC chips bindings
  LSM: Remove security_task_create() hook.
  drm: Don't complain too much about struct_mutex.
  Staging: vt6655: Fixing coding style warnings
  staging: wlan-ng: Use little-endian type
  drivers: staging: ccree: use __func__ to get function name in error messages.
  Staging:vc04_services:vchiq_util.c: kzalloc call changed to kcalloc
  Staging: wlan-ng: hfa384x.h: fixed sparse warning
  staging: gs_fpgaboot: remove FSF address from GPL notice
  staging: pi433: Fix a couple of spelling mistakes
  staging: unisys: visornic: fix multi-line function definition
  staging: unisys: visorinput: fix multi-line function definition
  staging: unisys: visorhba: fix multi-line function definition
  staging: unisys: visorbus: visorchannel.c: fix multi-line function definition
  staging: unisys: include: Remove COVER macro from channel.h
  staging: unisys: visorbus: Remove unused define for visorchipset.
  staging: unisys: visorbus: cleaned up include block of visorchipset.c
  staging: unisys: visorbus: Removed unused define from visorbus_main.c
  staging: unisys: visorbus: removed blank line in viorbus_main.c
  staging: unisys: visorchipset: remove local_addr in handle_command
  staging: unisys: visorbus: remove target_hostname comment
  staging: unisys: visorbus: rename fix_vbus_dev_info
  staging: unisys: visorbus: Fix memory leak
  staging: unisys: moved visor_check_channel from include/channel.h to visorbus/visorbus_main.c
  staging: unisys: include: Remove unused CHANNEL_OK defines.
  staging: unisys: remove unused define VISOR_VSWITCH_CHANNEL_VERSIONID
  staging: unisys: visorbus: add checks for probe, remove, pause and resume in visorbus_register_visor_driver
  staging: unisys: visorbus: visorbus_main.c: remove check from typename_show
  staging: unisys: visorbus: visorbus_main.c: put function name and return value on same line.
  staging: unisys: visorbus: visorbus_main.c: remove extra checks for dev->visorchannel
  staging: unisys: visorbus: convert VMCALL_CONTROLVM_ADDR enum to #define
  staging: unisys: include: iochannel.h: removed VISOR_VSWITCH_CHANNEL_SIGNATURE
  staging: unisys: include: iochannel.h: removed VISOR_VNIC_CHANNEL_SIGNATURE
  staging: unisys: include: iochannel.h: removed VISOR_VHBA_CHANNEL_SIGNATURE
  staging: unisys: visorbus: vbuschannel.h: removed VISOR_VBUS_CHANNEL_SIGNATURE
  staging: unisys: visorbus: controlvmchannel.h: removed VISOR_CONTROLVM_CHANNEL_SIGNATURE
  staging: unisys: include: channel.h: remove unused pound defines
  staging: unisys: visorhba: viosrhba_main.c: Remove unnecessary checks
  staging: unisys: visorbus: controlvmchannel.h: fix spacing
  staging: unisys: visornic: visornic_main.c: Adjust whitespace usage
  staging: unisys: visorinput: visorinput.c: Adjust whitespace usage
  staging: unisys: visorhba: visorhba_main.c: Adjust whitespace usage
  staging: unisys: visorbus: visorbus_main.c: Adjust code layout
  staging: unisys: visorbus: visorchipset.c: Adjust code layout
  staging: unisys: visorbus: visorbus_main.c: use __func__ over hardcoded name
  drm/zte: Use gem_free_object_unlocked
  drm/pl111: Use gem_free_object_unlocked
  drm/mxsfb: Use gem_free_object_unlocked
  drm/i915: Consistently use enum pipe for PCH transcoders
  drm/bridge/synopsys: Add MIPI DSI host controller bridge
  dt-bindings: display: Add Synopsys DW MIPI DSI host controller
  drm/stm: ltdc: Add panel-bridge support
  drm/stm: ltdc: Fix leak of px clk enable in some error paths
  arm64: dts: exynos: Remove num-slots from exynos platforms
  ARM: dts: exynos: Remove num-slots from exynos platforms
  ARM: dts: exynos: Remove the OF graph from DSI node
  arm64: dts: exynos: Add extcon property for TM2 and TM2E
  arm64: dts: exynos: Fix wrong label for USB 3.0 controller node
  arm64: dts: exynos: Remove the OF graph from DSI node
  net: fix build error in devmap helper calls
  arm64: allwinner: a64: add DTSI file for AXP803 PMIC
  arm64: allwinner: a64: add AXP803 node to Pine64 device tree
  clk: mmp: Drop unnecessary static
  clk: moxart: remove unnecessary statics
  clk: qcom: clk-smd-rpm: Fix the reported rate of branches
  clk: mediatek: fixed static checker warning in clk_cpumux_get_parent call
  mdio_bus: Remove unneeded gpiod NULL check
  iio: Documentation: Add missing documentation for power attribute
  docs: disable KASLR when debugging kernel
  iio: adc: ad7766: Remove unneeded gpiod NULL check
  samples/bpf: add option for native and skb mode for redirect apps
  iio: orientation: hid-sensor-rotation: Drop unnecessary static
  docs: disable KASLR when debugging kernel
  net: ec_bhf: constify pci_device_id.
  net: cadence: macb: constify pci_device_id.
  docs: Do not include from drivers/scsi/constants.c
  docs: Get the struct cmbdata kernel doc from the right file
  docs: Do not include from .../seqno-fence.c
  docs: Do not include kerneldoc comments from kernel/sys.c
  docs: Get module_init() docs from module.h
  docs RTD theme: code-block with line nos - lines and line numbers don't line up.
  docs RDT theme: fix bottom margin of lists items
  Documentation: arm: Replace use of virt_to_phys with __pa_symbol
  sphinx.rst: better organize the documentation about PDF build
  sphinx.rst: describe the install requirements for kfigure
  sphinx.rst: fix unknown reference
  sphinx.rst: explain the usage of virtual environment
  docs-rst: move Sphinx install instructions to sphinx.rst
  changes.rst: Update Sphinx minimal requirements
  ARM: dts: rockchip: add efuse device node for rk3228
  drm/vgem: add compat_ioctl support
  dt: Add bindings for IDT VersaClock 5P49V5925
  clk: vc5: Add support for IDT VersaClock 5P49V5925
  clk: vc5: Add support for IDT VersaClock 5P49V6901
  clk: vc5: Add bindings for IDT VersaClock 5P49V6901
  clk: vc5: Add support for the input frequency doubler
  clk: vc5: Split clock input mux and predivider
  clk: vc5: Configure the output buffer input mux on prepare
  clk: vc5: Do not warn about disabled output buffer input muxes
  clk: vc5: Fix trivial typo
  clk: vc5: Prevent division by zero on unconfigured outputs
  clk: axs10x: introduce AXS10X pll driver
  gfs2: Lock holder cleanup (fixup)
  dt-bindings: input: ti,drv260x: fix typo in property name
  net: Revert "net: add function to allocate sk_buff head without data area"
  dt-bindings: clock: ti-sci: Fix incorrect usage of headers
  staging: iio: tsl2x7x: add device tree documentation
  dt-bindings: nvmem: mediatek: add support for MediaTek MT7623 and MT7622 SoC
  clk: si5351: expand compatible strings in documentation
  net: Kill NETIF_F_UFO and SKB_GSO_UDP.
  inet: Remove software UFO fragmenting code.
  net: Remove all references to SKB_GSO_UDP.
  inet: Stop generating UFO packets.
  net: Remove references to NETIF_F_UFO from ethtool.
  net: Remove references to NETIF_F_UFO in netdev_fix_features().
  virtio_net: Remove references to NETIF_F_UFO.
  dummy: Remove references to NETIF_F_UFO.
  tun/tap: Remove references to NETIF_F_UFO.
  macvlan/macvtap: Remove NETIF_F_UFO advertisement.
  ipvlan: Stop advertising NETIF_F_UFO support.
  macb: Remove bogus reference to NETIF_F_UFO.
  s2io: Remove UFO support.
  xdp: bpf redirect with map sample program
  net: add notifier hooks for devmap bpf map
  xdp: Add batching support to redirect map
  bpf: add bpf_redirect_map helper routine
  bpf: add devmap, a map for storing net device references
  xdp: add trace event for xdp redirect
  ixgbe: add initial support for xdp redirect
  net: implement XDP_REDIRECT for xdp generic
  xdp: sample program for new bpf_redirect helper
  xdp: add bpf_redirect helper function
  net: xdp: support xdp generic on virtual devices
  ixgbe: NULL xdp_tx rings on resource cleanup
  mlxsw: spectrum: Improve IPv6 unregistered multicast flooding
  mlxsw: spectrum: Add support for IPv6 MLDv1/2 traps
  mlxsw: spectrum: Trap IPv4 packets with Router Alert option
  mlxsw: spectrum: Mark packets trapped in router
  mlxsw: spectrum_flower: Add support for ip tos
  mlxsw: spectrum: Add tos to the ipv4 acl block
  mlxsw: acl: Add ip tos acl element
  mlxsw: spectrum_flower: Add support for ip ttl
  mlxsw: spectrum: Add ttl to the ipv4 acl block
  mlxsw: acl: Add ip ttl acl element
  ASoC: rsnd: remove unnecessary static in rsnd_ssiu_probe()
  inetpeer: remove AVL implementation in favor of RB tree
  net/unix: drop obsolete fd-recursion limits
  skbuff: optimize the pull_pages code in __pskb_pull_tail()
  ASoC: tas5720: constify snd_soc_dai_ops structure
  ASoC: dwc: constify snd_soc_dai_ops structure
  ASoC: hdac_hdmi: constify snd_soc_dai_ops structure
  ASoC: rk3036: constify snd_soc_dai_ops structure
  ASoC: max9867: constify snd_soc_dai_ops structure
  dt-bindings: net: ravb : Add support for r8a7743 SoC
  ASoC: codecs: msm8916-wcd-digital: constify snd_soc_dai_ops structure
  ASoC: rt5514: constify snd_soc_dai_ops structure
  ASoC: max98926: constify snd_soc_dai_ops structure
  net: axienet: add support for standard phy-mode binding
  ASoC: msm8916-wcd-analog: constify snd_soc_dai_ops structure
  ASoC: rt5616: constify snd_soc_dai_ops structure
  ASoC: rt5663: constify snd_soc_dai_ops structure
  ASoC: cs42l42: constify snd_soc_dai_ops structure
  arch_topology: Get rid of cap_parsing_done
  arch_topology: Localize cap_parsing_failed to topology_parse_cpu_capacity()
  arch_topology: Change return type of topology_parse_cpu_capacity() to bool
  arch_topology: Convert switch block to if block
  arch_topology: Don't break lines unnecessarily
  fpga manager: Add Altera CvP driver
  fpga: Add flag to indicate bitstream needs decompression
  of: Add vendor prefix for Lattice Semiconductor
  fpga-manager: altera-ps-spi: use bitrev8x4
  lib: add bitrev8x4()
  ARM: dts: imx6q-evi: support altera-ps-spi
  fpga manager: Add altera-ps-spi driver for Altera FPGAs
  doc: dt: document altera-passive-serial binding
  fpga: Add flag to indicate SPI bitstream is bit-reversed
  Make FPGA a menuconfig to ease disabling it all
  dt-bindings: fpga: Add bindings document for Xilinx LogiCore PR Decoupler
  ppdev: remove unused ROUND_UP macro
  auxdisplay: constify charlcd_ops.
  char/mwave: make some arrays static const to make object code smaller
  drivers/misc: (aspeed-lpc-snoop): Add ast2400 to compat
  ASoC: tlv320aic32x4: Add gpio configuration to the codec
  ASoC: tlv320aic32x4: Add support for tlv320aic32x6
  x86/hyper-v: stash the max number of virtual/logical processor
  x86/hyper-v: include hyperv/ only when CONFIG_HYPERV is set
  ASoC: zte: spdif: constify snd_soc_dai_ops structure
  ASoC: zx-tdm: constify snd_soc_dai_ops structure
  ASoC: zx-i2s: constify snd_soc_dai_ops structure
  ASoC: mmp-sspa: constify snd_soc_dai_ops structure
  ASoC: mediatek: mt2701: constify snd_soc_dai_ops structure
  ASoC: hisilicon: constify snd_soc_dai_ops structure
  ASoC: fsl_asrc: constify snd_soc_dai_ops structure
  ASoC: fsl_esai: constify snd_soc_dai_ops structure
  ASoC: fsl_spdif: constify snd_soc_dai_ops structure
  ASoC: sun8i-codec: constify snd_soc_dai_ops structure
  vmbus: add prefetch to ring buffer iterator
  vmbus: more host signalling avoidance
  vmbus: eliminate duplicate cached index
  vmbus: refactor hv_signal_on_read
  vmbus: drop unused ring_buffer_info elements
  ASoC: tegra: constify snd_soc_dai_ops structure
  vmbus: simplify hv_ringbuffer_read
  percpu: update the header comment and pcpu_build_alloc_info comments
  percpu: expose pcpu_nr_empty_pop_pages in pcpu_stats
  ASoC: rt5514: Support the DSP recording continuously after the hotwording triggered
  percpu: change the format for percpu_stats output
  percpu: pcpu-stats change void buffer to int buffer
  ASoC: sta32x: Remove unneeded gpiod NULL check
  ASoC: cs53l30: Remove unneeded gpiod NULL check
  ASoC: cs42l42: Remove unneeded gpiod NULL check
  ASoC: cs35l34: Remove unneeded gpiod NULL check
  ASoC: cs35l33: Remove unneeded gpiod NULL check
  ASoC: wm8804: Remove unneeded gpiod NULL check
  ASoC: adau1977: Remove unneeded gpiod NULL check
  ASoC: sun4i-codec: Remove unneeded gpiod NULL check
  ASoC: rsnd: add missing of_node_put
  drm/crc: Only open CRC on atomic drivers when the CRTC is active.
  drm/crc: Handle opening and closing crc better
  spi: loopback-test: provide loop_req option.
  media: vimc: set id_table for platform drivers
  debugfs: Add dummy implementation of few helpers
  ASoC: rt5665: force using PLL if MCLK is not suitable
  ASoC: Intel: Atom: constify snd_soc_dai_ops structures
  ASoC: Intel: Skylake: constify snd_soc_dai_ops structures
  ASoC: Intel: Skylake: fix type in debug message
  ASoC: au1x: psc-i2s: constify dev_pm_ops structure
  ASoC: psc-ac97: constify dev_pm_ops structure
  ASoC: fsi: constify dev_pm_ops structure
  ASoC: samsung: Remove non-existing CONFIG_CPU_S3C2413
  block: order /proc/devices by major number
  GFS2: Prevent double brelse in gfs2_meta_indirect_buffer
  char_dev: order /proc/devices by major number
  char_dev: extend dynamic allocation of majors into a higher range
  mei: me: use an index instead of a pointer for private data
  mei: me: enable asynchronous probing
  binder: remove unused BINDER_SMALL_BUF_SIZE define
  android: binder: Use dedicated helper to access rlimit value
  binder: remove global binder lock
  binder: fix death race conditions
  binder: protect against stale pointers in print_binder_transaction
  binder: protect binder_ref with outer lock
  binder: use inner lock to protect thread accounting
  binder: protect transaction_stack with inner lock.
  binder: protect proc->threads with inner_lock
  binder: protect proc->nodes with inner lock
  binder: add spinlock to protect binder_node
  binder: add spinlocks to protect todo lists
  binder: use inner lock to sync work dq and node counts
  binder: introduce locking helper functions
  binder: use node->tmp_refs to ensure node safety
  binder: refactor binder ref inc/dec for thread safety
  binder: make sure accesses to proc/thread are safe
  binder: make sure target_node has strong ref
  binder: guarantee txn complete / errors delivered in-order
  binder: refactor binder_pop_transaction
  binder: use atomic for transaction_log index
  binder: add more debug info when allocation fails.
  binder: protect against two threads freeing buffer
  binder: remove dead code in binder_get_ref_for_node
  binder: don't modify thread->looper from other threads
  binder: avoid race conditions when enqueuing txn
  binder: refactor queue management in binder_thread_read
  binder: add log information for binder transaction failures
  binder: make binder_last_id an atomic
  binder: change binder_stats to atomics
  binder: add protection for non-perf cases
  binder: remove binder_debug_no_lock mechanism
  binder: move binder_alloc to separate file
  binder: separate out binder_alloc functions
  binder: remove unneeded cleanup code
  binder: separate binder allocator structure from binder proc
  staging: lustre: fix spelling mistake, "grranted" -> "granted"
  staging: lustre: lustre: fix all braces issues reported by checkpatch
  Staging: rtl8192u: Use __func__ instead of function name.
  backlight: lm3630a: Bump REG_MAX value to 0x50 instead of 0x1F
  EDAC: Get rid of mci->mod_ver
  drm/i915: Fix user ptr check size in eb_relocate_vma()
  drm/i915: Fix error checking/locking in perf/lookup_context()
  usb: atm: ueagle-atm: fix spelling mistake: "submition" -> "submission"
  usb: renesas_usbhs: make array type_array static const
  usb: misc: ftdi-elan: compress return logic into one line
  usb: misc: sisusbvga: compress return logic into one line
  usb: isp1760: compress return logic into one line
  regulator: cpcap: Add OF mode mapping
  regulator: cpcap: Fix standby mode
  spi: sh-msiof: Limit minimum divider on R-Car Gen3
  spi: sh-msiof: Add support for R-Car H3
  spi: pxa2xx: Only claim CS GPIOs when the slave device is created
  spi: imx: add selection for iMX53 and iMX6 controller
  spi: imx: introduce fifo_size and has_dmamode in spi_imx_devtype_data
  spi/bcm63xx-hspi: Fix checkpatch warnings
  spi/ath79: Fix checkpatch warnings
  ASoC: twl6040: fix error return code in twl6040_probe()
  ASoC: spear: fix error return code in spdif_in_probe()
  ASoC: samsung: i2s: Support more resolution rates
  ASoC: rt5663: Add the manual offset field to compensate the DC offset
  ASoC: rt5663: add in missing loop counter to avoid infinite loop
  ASoC: rt5663: Modify the power sequence for reducing the pop sound
  ASoC: rt5663: Optimize the Jack Type detection
  ASoC: rt5663: Update the calibration funciton
  ASoC: rt5514: Move the auto disable DSP function to set_bias_level()
  ASoC: kirkwood-i2s: fix error return code in kirkwood_i2s_dev_probe()
  ASoC: hdmi-codec: make const array hdmi_codec_eld_spk_alloc_bits static
  ASoC: hdmi-codec: ELD control corresponds to the PCM stream
  drm/imx: lock scanout transfers for consecutive bursts
  drm/imx: ipuv3-plane: use fb local variable instead of state->fb
  dt-bindings: extcon: Add support for cros-ec device
  extcon: cros-ec: Add extcon-cros-ec driver to support display out
  ARM: dts: at91: sama5d2_xplained: use pin macros instead of numbers
  ARM: dts: at91: at91-sama5d27_som1_ek: Add sama5d27 SoM1 EK support
  ARM: dts: at91: at91-sama5d27_som1: add sama5d27 SoM1 support
  ARM: dts: at91: sama5d2: add isc node
  ARM: dts: at91: sama5d2: add QSPI nodes
  pinctrl: sh-pfc: r8a7796: Rename CS1# pin function definitions
  pinctrl: sh-pfc: r8a7796: Fix IPSR and MOD_SEL register pin assignment for FSO pins group
  pinctrl: sh-pfc: r8a7796: Fix to delete MOD_SEL0 bit2 register definitions
  pinctrl: sh-pfc: r8a7796: Fix to delete SATA_DEVSLP_B pins function definitions
  pinctrl: sh-pfc: r8a7796: Fix to delete FSCLKST pin and IPSR7 bit[15:12] register definitions
  pinctrl: sh-pfc: r8a7796: Fix MOD_SEL register pin assignment for TCLK{1,2}_{A,B} pins group
  pinctrl: sh-pfc: r8a7796: Fix NFDATA{0..13} and NF{ALE,CLE,WE_N,RE_N} pin function definitions
  pinctrl: sh-pfc: r8a7796: Fix FMCLK{_C,_D} and FMIN{_C,_D} pin function definitions
  pinctrl: sh-pfc: r8a7796: Fix SCIF_CLK_{A,B} pin's MOD_SEL assignment to MOD_SEL1 bit10
  pinctrl: sh-pfc: r8a7796: Fix MOD_SEL2 bit26 to 0x0 when using SCK5_A
  pinctrl: sh-pfc: r8a7796: Fix MOD_SEL1 bit[25:24] to 0x3 when using STP_ISEN_1_D
  pinctrl: sh-pfc: r8a7791: Add missing mmc_data8_b pin group
  pinctrl: sh-pfc: r8a7796: Fix MSIOF3 SS2_E mux
  pinctrl: sh-pfc: r8a7796: Fix IPSR setting for MSIOF3_SS1_E pin
  pinctrl: sh-pfc: r8a7796: Fix MSIOF3_{SS1,SS2}_E pin function definitions
  pinctrl: sh-pfc: r8a7795: Add MSIOF pins, groups and functions
  pinctrl: sh-pfc: r8a7795: Fix MSIOF3_{SS1,SS2}_E pin function definitions
  pinctrl: sh-pfc: Propagate errors on group config
  clk: renesas: Allow compile-testing of all (sub)drivers
  clk: renesas: r8a7792: Add IMR-LX3/LSX3 clocks
  clk: renesas: div6: Document fields used for parent selection
  EDAC: Constify attribute_group structures
  ARM: debug: Use generic 8250 debug_ll for am3517 and am335x
  ARM: debug: Use generic 8250 debug_ll for ti81xx
  ARM: debug: Use generic 8250 debug_ll for omap3/4/5
  VFS: Differentiate mount flags (MS_*) from internal superblock flags
  VFS: Convert sb->s_flags & MS_RDONLY to sb_rdonly(sb)
  vfs: Add sb_rdonly(sb) to query the MS_RDONLY flag on s_flags
  ARM: debug: Use generic 8250 debug_ll for omap2 and omap3/4/5 common uarts
  drm/i915: Update DRIVER_DATE to 20170717
  drm/sun4i: hdmi: Implement I2C adapter for A10s DDC bus
  drm/sun4i: constify drm_plane_helper_funcs
  EDAC, mce_amd: Use cpu_to_node() to find the node ID
  sctp: remove the typedef sctp_hmac_algo_param_t
  sctp: remove the typedef sctp_chunks_param_t
  sctp: remove the typedef sctp_random_param_t
  sctp: remove the typedef sctp_supported_ext_param_t
  sctp: remove the typedef sctp_adaptation_ind_param_t
  sctp: remove struct sctp_ecn_capable_param
  sctp: remove the typedef sctp_supported_addrs_param_t
  sctp: remove the typedef sctp_hostname_param_t
  sctp: remove the typedef sctp_cookie_preserve_param_t
  sctp: remove the typedef sctp_ipv6addr_param_t
  sctp: remove the typedef sctp_ipv4addr_param_t
  rds: cancel send/recv work before queuing connection shutdown
  arm64: allwinner: a64: add NMI (R_INTC) controller on A64
  cgroup: replace css_set walking populated test with testing cgrp->nr_populated_csets
  cgroup: distinguish local and children populated states
  cgroup: remove now unused list_head @pending in cgroup_apply_cftypes()
  cgroup: update outdated cgroup.procs documentation
  atm: idt77252: constify pci_device_id.
  atm: eni: constify pci_device_id.
  atm: firestream: constify pci_device_id.
  atm: zatm: constify pci_device_id.
  atm: lanai: constify pci_device_id.
  atm: solos-pci: constify pci_device_id.
  atm: horizon: constify pci_device_id.
  atm: he: constify pci_device_id.
  atm: nicstar: constify pci_device_id.
  atm: fore200e: constify pci_device_id.
  atm: ambassador: constify pci_device_id.
  atm: iphase: constify pci_device_id.
  ip6: fix PMTU discovery when using /127 subnets
  tools: hv: ignore a NIC if it has been configured
  sunvnet: add support for IPv6 checksum offloads
  leds: tlc591xx: add missing of_node_put
  leds: tlc591xx: merge conditional tests
  arm64: dts: rockchip: remove num-slots from all platforms
  arm64: dts: rockchip: change clkreq mode for rk3399-evb
  arm64: dts: rockchip: add SdioAudio pd control for rk3399
  arm64: dts: rockchip: enable usb2 for RK3328 evaluation board
  arm64: dts: rockchip: add usb2 nodes for RK3328 SoCs
  arm64: dts: rockchip: set rk3399 dynamic CPU power coefficients
  arm64: dts: rockchip: Use vctrl regulators for dynamic CPU voltages on Gru/Kevin
  arm64: dts: rockchip: Update CPU regulator voltage ranges for Gru
  arm64: dts: rockchip: fix typo in mmc pinctrl
  ARM: dts: rockchip: add gpio power-key for rk3229-evb
  ARM: dts: rockchip: enable tsadc for rk3229-evb
  ARM: dts: rockchip: enable eMMC for rk3229-evb
  ARM: dts: rockchip: enable io-domain for rk3229-evb
  ARM: dts: rockchip: add cpu-supply property for cpu node of rk3229-evb
  ARM: dts: rockchip: add regulator nodes for rk3229-evb
  ARM: dts: rockchip: add sdmmc and sdio nodes for rk3228 SoC
  ARM: dts: rockchip: fix compatible string for eMMC node of rk3228 SoC
  ARM: dts: rockchip: add cpu enable method for rk3228 SoC
  ARM: dts: rockchip: remove num-slots from all platforms
  ARM: dts: rockchip: Add io-domain node for rk3228
  ARM: dts: rockchip: add basic dtsi file for RK3229 SoC
  ARM: dts: rockchip: enable adc key for rk3288-evb
  ARM: dts: rockchip: enable saradc for rk3288-evb
  ARM: dts: rockchip: enable ARM Mali GPU on rk3288-fennec
  ARM: dts: rockchip: enable ARM Mali GPU on rk3288-evb
  ARM: dts: rockchip: enable ARM Mali GPU on rk3288-tinker
  ARM: dts: rockchip: fix typo in rk3036 mmc pinctrl
  ARM: dts: rockchip: add rk322x spdif node
  ARM: dts: rockchip: change to "max-frequency" from "clock-freq-min-max" on rv1108
  soc: rockchip: disable jtag switching for RK3328 Soc
  staging: pi433: New driver
  fs/locks: Remove fl_nspid and use fs-specific l_pid for remote locks
  fs/locks: Use allocation rather than the stack in fcntl_getlk()
  Staging: Lustre Fix block statement style issue
  Staging: Lustre Fixing multiline block comments in lnetst.h
  Staging: Lustre Fix up multiple Block Comments in lib-types.h
  Staging: Lustre Clean up line over 80Char in lib-lnet.h
  staging: vt6656: Use variable instead of its type in sizeof(...)
  staging: vt6656: Align function parameters
  staging: vt6656: Remove unnecessary blank lines
  staging: vt6656: Add spaces between operators
  staging: ks7010: Fix cast to restricted __le16 in ks_wlan_net.c
  staging: rtl8192u: Fix braces placement and spacing
  staging: rtl8192u: reduce stack frame size in ieee80211_rx_mgt_rsl
  staging: fbtft: make const array gamma_par_mask static
  staging: lustre: fix sparse error: incompatible types in comparison expression
  staging: ccree: move comment to fit coding style
  staging: ccree: remove whitespace before a quoted newline
  staging: ccree: avoid unnecessary line continuation
  staging: ccree: avoid constant comparison
  staging: ccree: CamelCase to snake_case in aead struct
  staging: ccree: CamelCase to snake_case in func vars
  staging: ccree: use proper printk format for dma_addr_t
  staging: ccree: clean up struct ssi_aead_ctx
  staging: ccree remove unnecessary parentheses
  staging: comedi: Use offset_in_page macro
  Staging: android: use BIT macro
  Staging: android: Fix code alignment issue
  Staging: android: Remove unnecessary blank lines
  Staging: android: fix sizeof style issue
  Staging: android: remove unnecessary blank lines
  staging: android: ion: statify __ion_add_cma_heaps
  staging: fsl-dpaa2/eth: Remove dead code
  staging: unisys: visorbus: fix improper bracket blocks
  staging: unisys: visorbus: use __func__ over hardcoded name
  staging: unisys: visorbus: Indent struct assignment correctly
  staging: unisys: visorbus: adjust tabs in function
  staging: unisys: visorbus: controlvmchannel.h: Adjust whitespace usage
  staging: unisys: include: visorbus.h: Adjust whitespace usage
  staging: unisys: include: iochannel.h: Adjust whitespace usage
  staging: unisys: include: channel.h: Adjust whitespace usage
  staging: unisys: visorhba: Fix up existing function comments
  staging: unisys: visorbus: Rename #define to fit surrounding namespace
  staging: unisys: visorbus: Remove unused #define
  staging: unisys: include: Fix spelling mistake
  staging: unisys: visorinput: ultrainputreport.h: fixed comment formatting issues
  staging: unisys: visorinput: visorinput.c: fixed comment formatting issues
  staging: unisys: visorhba: visorhba_main.c: fixed comment formatting issues
  staging: unisys: visornic: visornic_main.c: fixed comment formatting issues
  staging: unisys: include: iochannel.h: fixed comment formatting issues
  staging: unisys: include: channel.h: fixed comment formatting issues
  staging: unisys: visorbus: visorchipset.c: fixed comment formatting issues
  staging: unisys: visorbus: visorchannel.c: fixed comment formatting issues
  staging: unisys: include: remove unused macros in channel.h
  staging: unisys: visorbus: visorbus_main.c: fixed comment formatting issues
  staging: unisys: visorbus: vmcallinterface.h: fixed comment formatting issues
  staging: unisys: visorbus: vbuschannel.h: fixed comment formatting issues
  staging: unisys: visorbus: controlvmchannel.h: fixed comment formatting issues
  staging: lustre: lnet: remove dead code and useless wrapper
  staging: typec: Fix endianness warning discovered by sparse
  staging: rtl8723bs: Place constant at the right.
  staging: rtl8712: Remove explicit NULL comparison
  staging: rtl8712: fix "Alignment match open parenthesis"
  staging: greybus: arche: wrap over-length lines
  staging: greybus: loopback_test: fix comment style issues
  staging: wilc1000: fix variable signedness
  staging: wilc1000: add parameter name to function definition
  staging: wilc1000: fix a typo: "incative" -> "inactive"
  staging: wilc1000: Neaten refresh_scan - remove always 1 argument
  staging: ccree: Fix alignment issues in ssi_sysfs.c
  staging: ccree: Fix alignment issues in ssi_sram_mgr.c
  staging: ccree: Fix alignment issues in ssi_request_mgr.c
  staging: ccree: Fix alignment issues in ssi_ivgen.c
  staging: ccree: Fix alignment issues in ssi_driver.c
  staging: ccree: Fix alignment issues in ssi_cipher.c
  staging: ccree: Fix alignment issues in ssi_buffer_mgr.c
  staging: ccree: move FIPS support to kernel infrastructure
  staging: ccree: fix switch case indentation
  staging: ccree: export symbol immediately following function
  staging: ccree: remove assignement in conditional
  staging: ccree: fix placement of curly braces
  staging: ccree: remove redudant semicolons
  staging: ccree: use sizeof(*var) in kmalloc
  staging: ccree: remove unnecessary cast on kmalloc
  staging: ccree: Use __func__ instead of function name
  phy: qcom-usb-hs: Replace the extcon API
  extcon: int3496: Constify acpi_device_id
  ARM: dts: uniphier: use SPDX-License-Identifier (2nd)
  arm64: dts: uniphier: add watchdog node for LD11 and LD20
  ARM: dts: imx6ul-evk: Pass the 'backlight' property
  ARM: dts: imx6ul-evk: Add DRM panel support
  ARM: dts: imx: update snvs-poweroff mask
  ARM: dts: imx6qdl-icore-rqs: Remove unneeded 'fsl,mode' property
  ARM: dts: imx7d-sdb: Pass phy-reset-gpios
  ARM: dts: imx: Correct B850v3 clock assignment
  ARM: dts: imx7d-sdb: Set VLDO4 outpt to 2.8V for MIPI CSI/DSI
  ARM: dts: imx: ventana: add ADV1780 analog video decoder
  ARM: dts: imx6ul-geam: Add Sound card with codec node
  ARM: dts: imx6ul-geam: Skip suffix -kit from dts name
  ARM: dts: imx6ul-geam: Drop imx6ul-geam.dtsi
  ARM: dts: imx6ul-geam-kit: Remove re-enabled usdhc1
  ARM: dts: imx6ul-isiot: Add FEC node support
  ARM: dts: imx6ul-isiot: Add Sound card with codec node
  ARM: dts: imx6ul-isiot: Move common nodes in imx6ul-isiot.dtsi
  ARM: imx_v6_v7_defconfig: Select the coda driver as module
  ARM: imx_v6_v7_defconfig: Enable GPIO_74X164
  ARM: imx_v6_v7_defconfig: Enable SPI_GPIO
  arm64: dts: zte: remove num-slots from zx296718
  ARM: dts: zte: remove num-slots from zx296702-ad1
  get rid of SYSVIPC_COMPAT on ia64
  semtimedop(): move compat to native
  shmat(2): move compat to native
  msgrcv(2), msgsnd(2): move compat to native
  ipc(2): move compat to native
  ipc: make use of compat ipc_perm helpers
  semctl(): move compat to native
  semctl(): separate all layout-dependent copyin/copyout
  msgctl(): move compat to native
  msgctl(): split the actual work from copyin/copyout
  ipc: move compat shmctl to native
  shmctl: split the work from copyin/copyout
  ACPI / video: Add force_none quirk for Dell OptiPlex 9020M
  PM / OPP: OF: Use pr_debug() instead of pr_err() while adding OPP table
  cpufreq: dt: Add zynqmp to the cpufreq dt platdev
  cpufreq: speedstep: remove unnecessary static in speedstep_detect_chipset()
  iio: core: Fix mapping of iio channels to entry numbers
  iio: dac: stm32: add support for stm32f4
  iio: dac: stm32: fix error message
  dt-bindings: iio: stm32-dac: add support for STM32F4
  drm/vc4: Fix misleading name of the continuous flag.
  drm/vc4: Fix DSI T_INIT timing.
  drm: add helper functions for YCBCR420 handling
  drm/edid: parse ycbcr 420 deep color information
  drm/edid: parse YCBCR420 videomodes from EDID
  drm: add helper to validate YCBCR420 modes
  drm/edid: cleanup patch for CEA extended-tag macro
  drm/edid: parse sink information before CEA blocks
  drm/edid: complete CEA modedb(VIC 1-107)
  drm: handle HDMI 2.0 VICs in AVI info-frames
  drm/tinydrm: Add RePaper e-ink driver
  drm/tinydrm: Add tinydrm_xrgb8888_to_gray8() helper
  dt-bindings: Add Pervasive Displays RePaper bindings
  of: Add vendor prefix for Pervasive Displays
  drm/amd/powerplay: add profile mode for vega10.
  drm/amdgpu: fix amdgpu_bo_gpu_accessible()
  drm/amdgpu: map VM BOs for CPU based updates only once
  drm/amdgpu: make sure BOs are always kunmapped
  drm/amdgpu: flush the HDP only once for CPU based VM updates
  drm/amdgpu: trace setting VM page tables with the CPU as well
  drm/amdgpu: remove VM shadow WARN_ONs
  drm/amdgpu: fix amdgpu_vm_bo_wait
  drm/amdgpu: fix VM flush for CPU based updates
  drm/amdgpu/gfx: keep all compute queues on the same pipe
  drm/amd/amdgpu: fix si_enable_smc_cac() failed issue
  drm/amdgpu: Off by one sanity checks
  drm/amdgpu: implement si_read_bios_from_rom
  drm/amdgpu/soc15: drop dead function
  drm/amdgpu: call atomfirmware get_clock_info for atomfirmware systems
  drm/amdgpu: add get_clock_info for atomfirmware
  drm/amdgpu: Send no-retry XNACK for all fault types
  drm/amdgpu: Correctly establish the suspend/resume hook for amdkfd
  drm/amdgpu: Make SDMA phase quantum configurable
  drm/amdgpu: Enable SDMA context switching for CIK
  drm/amdgpu: Enable SDMA_CNTL.ATC_L1_ENABLE for SDMA on CZ
  drm/amdgpu: Try evicting from CPU visible to invisible VRAM first
  drm/amdgpu: Don't force BOs into visible VRAM for page faults
  drm/amdgpu: Set/clear CPU_ACCESS flag on page fault and move to VRAM
  drm/amdgpu: Throttle visible VRAM moves separately
  drm/amdgpu: Add vis_vramlimit module parameter
  drm/amdgpu: change gartsize default to 256MB
  drm/amdgpu: add new gttsize module parameter v2
  drm/amdgpu: limit the GTT manager address space
  drm/amdgpu: consistent name all GART related parts
  drm/amdgpu: remove gtt_base_align handling
  drm/amdgpu: move GART struct and function into amdgpu_gart.h v2
  drm/amdgpu: check scratch registers to see if we need post (v2)
  drm/amdgpu/soc15: init nbio registers for vega10
  drm/amdgpu: add nbio 6.1 register init function
  drm/amd/powerplay: added didt support for vega10
  drm/amd/powerplay: added grbm_idx_mutex lock/unlock to cgs v2
  drm/amd/powerplay: added support for new se_cac_idx APIs to cgs
  drm/amd/powerplay: added soc15 support for new se_cac_idx APIs
  drm/amd/powerplay: added new se_cac_idx r/w APIs v2
  drm/amd/powerplay: added index gc cac read/write apis for vega10
  drm/amdgpu: use TTM values instead of MC values for the info queries
  drm/amdgpu: remove maximum BO size limitation v2
  drm/amdgpu: stop mapping BOs to GTT
  drm/amdgpu: use the GTT windows for BO moves v2
  drm/amdgpu: add amdgpu_gart_map function v2
  drm/amdgpu: reserve the first 2x512 pages of GART
  drm/amdgpu: make arrays pctl0_data and pctl1_data static
  drm/amdgpu/gmc9: get vram width from atom for Raven
  drm/amdgpu/atomfirmware: implement vram_width for APUs
  drm/amdgpu/atom: fix atom_fw check
  drm/amdgpu: Free resources of bo_list when idr_alloc fails
  drm/amd/powerplay: add avfs check for old asics on Vi.
  drm/amd/powerplay: move VI common AVFS code to smu7_smumgr.c
  drm/amd/powerplay: refine avfs enable code on fiji.
  drm/amd/powerplay: fix avfs state update error on polaris.
  drm/amd/powerplay: fixed wrong data type declaration for ppfeaturemask
  drm/amdgpu: set firmware loading type as direct by default for raven
  drm/amdgpu: make psp cmd buffer as a reserve memory
  drm/amdgpu: fix missed asd bo free when hw_fini
  drm/amdgpu: remove superfluous check
  drm/amdgpu: NO KIQ usage on nbio hdp flush routine
  drm/amdgpu: Add WREG32_SOC15_NO_KIQ macro define
  drm/amdgpu:fix world switch hang
  drm/amd/powerplay: enable ACG feature on vega10.
  drm/amd/powerplay: add acg support in pptable for vega10
  drm/amd/powerplay: export ACG related smu message for vega10
  drm/amd/powerplay: add avfs profiling_info_v4_2 support on Vega10.
  drm/amdgpu: add ACG SMU firmware for other vega10 variants
  drm/amdgpu: drop SMU_DRIVER_IF_VERSION check for some vega10 variants
  drm/amdgpu: add workaround for S3 issues on some vega10 boards
  drm/amdgpu/atombios: add function for whether we need asic_init
  drm/amdgpu: unify some atombios/atomfirmware scratch reg functions
  drm/amdgpu/atombios: use bios_scratch_reg_offset for atombios
  drm: amd: amdgpu: constify ttm_place structures.
  drm: radeon: constify drm_prop_enum_list structures.
  drm: radeon: radeon_ttm: constify ttm_place structures.
  drm/amdgpu: trace VM flags as 64bits
  drm/amdgpu: remove stale TODO comment
  drm/amd/sched: print sched job id in amd_sched_job trace
  drm/amdgpu: update pctl1 ram index/data for mmhub on raven
  drm/amdgpu: add check when no firmware need to load
  drm/amdgpu: bind BOs with GTT space allocated directly v2
  drm/amdgpu: bind BOs to TTM only once
  drm/amdgpu: add vm_needs_flush parameter to amdgpu_copy_buffer
  drm/amdgpu: allow flushing VMID0 before IB execution as well
  drm/amdgpu: fix amdgpu_ring_write_multiple
  drm/amdgpu: move ring helpers to amdgpu_ring.h
  drm/radeon: add header comment for clarification to vce_v2_0_enable_mgcg()
  drm/amdgpu: Update default vram_page_split description
  drm/amdgpu: Changed CU reservation golden settings
  drm/amdgpu: fix amdgpu_debugfs_gem_bo_info
  drm/amdgpu: cleanup initializing gtt_size
  drm/amdgpu: Support passing amdgpu critical error to host via GPU Mailbox.
  drm/amdgpu: Allow vblank_disable_immediate.
  drm/radeon: Allow vblank_disable_immediate.
  drm/amdgpu: remove *_mc_access from display funcs
  drm/amdgpu: drop set_vga_render_state from display funcs
  drm/amdgpu/gmc6: drop fb location programming
  drm/amdgpu/gmc7: drop fb location programming
  drm/amdgpu/gmc8: drop fb location programming
  drm/amdgpu/gmc6: use the vram location programmed by the vbios
  drm/amdgpu/gmc7: use the vram location programmed by the vbios
  drm/amdgpu/gmc8: use the vram location programmed by the vbios
  drm/amdgpu: disable vga render in dce hw_init
  drm/amdgpu: simplify VM shadow handling v2
  drm/amdgpu: enable 4 level page table on raven (v3)
  drm/amdgpu: use kernel is_power_of_2 rather than local version
  drm/fb-helper: separate the fb_setcmap helper into atomic and legacy paths
  drm/atomic-helper: update lut props directly in ..._legacy_gamma_set
  drm: rename, adjust and export drm_atomic_replace_property_blob
  drm/i915: Protect against deferred fbdev setup
  drm/i915/fbdev: Always forward hotplug events
  drm/dp/mst: Use memchr_inv() instead of memcmp() against a zeroed array
  drm/atomic: Make private objs proper objects
  drm/atomic: Remove pointless private object NULL state check
  drm/dp/mst: Handle errors from drm_atomic_get_private_obj_state() correctly
  drm/i915/skl+: unify cpp value in WM calculation
  drm/i915/skl+: WM calculation don't require height
  drm/i915: Addition wrapper for fixed16.16 operation
  drm/i915: cleanup fixed-point wrappers naming
  drm/i915: Always perform internal fixed16 division in 64 bits
  drm/i915: take-out common clamping code of fixed16 wrappers
  drm/mediatek: Convert to new iterator macros
  drm/imx: Use atomic iterator macros
  drm/mali: Use new atomic iterator macros
  drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush
  drm/atmel-hlcdec: Use for_each_new_connector_in_state
  drm/i915: Use correct iterator macro
  drm/vmwgfx: Make check_modeset() use the new atomic iterator macros.
  drm/atomic: Use new iterator macros in drm_atomic_helper_wait_for_flip_done
  drm/atomic: Use the new helpers in drm_atomic_helper_disable_all()
  drm/atomic: Use the correct iterator macro in atomic_remove_fb
  drm/simple-kms-helper: Fix the check for the mismatch between plane and CRTC enabled.
  Input: sur40 - skip all blobs that are not touches
  Input: sur40 - silence unnecessary noisy debug output
  Input: sur40 - add additional reverse-engineered information
  Input: ads7846 - constify attribute_group structures
  Input: elants_i2c - constify attribute_group structures
  Input: raydium_i2c_ts - constify attribute_group structures
  Input: psmouse - constify attribute_group structures
  Input: elantech - constify attribute_group structures
  Input: gpio_keys - constify attribute_group structures
  Input: yealink - constify attribute_group structures
  Input: ims-pcu - constify attribute_group structures
  Input: synaptics-rmi4 - constify attribute_group structures in F01
  Input: synaptics-rmi4 - constify attribute_group structures in F34
  Input: constify attribute_group structures
  Input: aiptek - constify attribute_group structures
  Input: serio - constify attribute_group structures
  bus: omap-ocp2scp: Fix error handling in omap_ocp2scp_probe
  drm/i915/cnl: Add missing type case.
  drm: inhibit drm drivers register to uninitialized drm core
  iio: adc: at91: make array startup_lookup static
  drm/i915/cnl: Add max allowed Cannonlake DC.
  regulator: cpcap: Fix standby mode
  drm/i915: Make DP-MST connector info work
  iio: accel: st_accel: rename H3LIS331DL_DRIVER_NAME in H3LIS331DL_ACCEL_DEV_NAME
  iio: accel: st_accel_spi: add support to H3LIS331DL, LIS331DL, LIS3LV02DL
  iio: accel: st_accel_i2c: fix i2c_device_id table
  iio:adc:at91-sama5d2: make array startup_lookup static to reduce code size
  iio: accel: make array init_data static to reduce code size
  iio: adc: rockchip_saradc: add NULL check on of_match_device() return value
  iio: adc: meson-saradc: add NULL check on of_match_device() return value
  staging: iio: tsl2x7x: check return value from tsl2x7x_invoke_change()
  staging: iio: tsl2x7x: use usleep_range() instead of mdelay()
  staging: iio: tsl2x7x: refactor {read,write}_event_value to allow handling multiple iio_event_infos
  staging: iio: tsl2x7x: cleaned up i2c calls in tsl2x7x_als_calibrate()
  staging: iio: tsl2x7x: remove tsl2x7x_i2c_read()
  staging: iio: tsl2x7x: remove redundant power_state sysfs attribute
  staging: iio: tsl2x7x: add of_match table for device tree support
  iio: adc: Add support for DLN2 ADC
  arm64/syscalls: Check address limit on user-mode return
  arm/syscalls: Check address limit on user-mode return
  x86/syscalls: Check address limit on user-mode return
  drm/i915/cnl: Get DDI clock based on PLLs.
  drm/i915/cnl: Inherit RPS stuff from previous platforms.
  drm/i915/cnl: Gen10 render context size.
  drm/i915/cnl: Don't trust VBT's alternate pin for port D for now.
  regulator: axp20x: add NULL check on devm_kzalloc() return value
  regulator: qcom_smd: add NULL check on of_match_device() return value
  regulator: qcom_rpm-regulator: add NULL check on of_match_device() return value
  drm/i915: Fix the kernel panic when using aliasing ppgtt
  drm/i915/cnl: Cannonlake color init.
  drm/i915/cnl: Add force wake for gen10+.
  x86/gpu: CNL uses the same GMS values as SKL
  iio: pressure: zpa2326: Add newlines to logging macros
  drm/i915/cnl: Fix comment about AUX IO power well enable/disable
  drm/i915/gen9+: Don't remove secondary power well requests
  drm/i915/bxt, glk: Fix assert on conditions for DC9 enabling
  drm/i915/skl: Don't disable misc IO power well during display uninit
  drm/i915/gen9+: Add 10 us delay after power well 1/AUX IO pw disabling
  ath10k: increase buffer len to print all wmi services
  ath10k: add copy engine register MAP for wcn3990 target
  ath10k: make CE layer bus agnostic
  ath10k: fix indenting in ath10k_wmi_update_noa()
  drm/i915: Only free the oldest stale context before allocating
  drm/i915: Drop request retirement before reaping stale contexts
  drm/i915: Move stale context reaping to common i915_gem_context_create
  drm/i915: Check new context against kernel_context after reporting an error
  drm/i915: Setting pch_id for HSW/BDW in virtual environment
  drm: i915: sysfs: constify attribute_group structures.
  drm/bridge: ti-tfp410: clean up drm_bridge_add call
  drm/bridge: tc358767: clean up drm_bridge_add call
  drm/bridge: synopsys: dw-hdmi: clean up drm_bridge_add call
  drm/bridge: sii902x: clean up drm_bridge_add call
  drm/bridge: ps8622: clean up drm_bridge_add call
  drm/bridge: panel: clean up drm_bridge_add call
  drm/bridge: nxp-ptn3460: clean up drm_bridge_add call
  drm/bridge: vga-dac: clean up drm_bridge_add call
  drm/bridge: analogix-anx78xx: clean up drm_bridge_add call
  drm/bridge: adv7511: clean up drm_bridge_add call
  drm/fb-helper: remove drm_fb_helper_save_lut_atomic
  drm/fb-helper: keep the .gamma_store updated in drm_fb_helper_setcmap
  drm/fb-helper: factor out pseudo-palette
  drm/fb-helper: Split dpms handling into legacy and atomic paths
  drm/fb-helper: Stop using mode_config.mutex for internals
  drm/fb-helper: Push locking into restore_fbdev_mode_atomic|legacy
  drm/fb-helper: Push locking into pan_display_atomic|legacy
  drm/fb-helper: Drop locking from the vsync wait ioctl code
  drm/fb-helper: Push locking in fb_is_bound
  drm/fb-helper: Add top-level lock
  drm/i915: Drop FBDEV #ifdev in mst code
  drm/fb-helper: Push down modeset lock into FB helpers
  drm: Remove pending_read_domains and pending_write_domain
  x86/mm: Enable CR4.PCIDE on supported systems
  x86/mm: Add the 'nopcid' boot option to turn off PCID
  x86/mm: Disable PCID on 32-bit kernels
  x86/mm: Stop calling leave_mm() in idle code
  x86/mm: Rework lazy TLB mode and TLB freshness tracking
  x86/mm: Track the TLB's tlb_gen and update the flushing algorithm
  x86/mm: Give each mm TLB flush generation a unique ID
  iio: Add LTC2471/LTC2473 driver
  iio: light: rpr0521 triggered buffer
  drm/atomic-helper: Realign function parameters
  drm/i915/edp: Add a T12 panel delay quirk to fix DP AUX CH timeouts
  drm/i915/skl+: Scaling not supported in IF-ID Interlace mode
  drm/i915/skl+: Check for supported plane configuration in Interlace mode
  drm/i915/fbdev: Check for existence of ifbdev->vma before operations
  drm/i915: Fix use-after-free of context during free_contexts
  drm/fb-helper: Remove drm_mode_config_fb.
  drm/i915: Prevent kernel panic when reading/writing compliance debugfs files, v2.
  drm/i915: Hold RPM wakelock while initializing OA buffer
  drm/etnaviv: populate GEM objects on cpu_prep
  drm/etnaviv: reduce allocation failure message severity
  drm/etnaviv: don't trigger OOM killer when page allocation fails
  drm/bochs: switch fb_ops over to use drm_fb_helper_cfb helpers
  drm: qxl: constify ttm_place structures.
  drm: ttm: virtio-gpu: dma-buf: Constify ttm_place structures.
  drm/udl: dma-buf: Constify dma_buf_ops structures.
  drm: armada: Constify drm_prop_enum_list structures.
  drm: armada: constify drm_prop_enum_list structures.
  drm/atomic: initial support for asynchronous plane update
  drm/i915: Update DRIVER_DATE to 20170703
  iio: adis16400: Change unsigned to unsigned int
  iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi
  iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi
  iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi
  iio: accel: st_accel_spi: add OF capability to st_accel_spi
  iio: magnetometer: Only declare ACPI table when ACPI is enable
  iio: sca3000: Remove trailing whitespace
  iio:adc:ltc2497: Add support for board file based iio consumer mapping.
  iio: adc: stm32: make array stm32h7_adc_ckmodes_spec static
  iio: adc: mcp3422: Checking for error on probe
  iio: adc: mcp3422: Changing initial channel
  iio: gyro: mpu3050: Allow open drain with anything
  iio: light: tcs3472: add link to datasheet
  iio: adc: mt7622: Add compatible node for mt7622.
  iio: adc: mt7622: add support for suspend/resume.
  dt-bindings: adc: mt7622: add binding document
  dt-bindings: iio: accel: add LIS3L02DQ sensor device binding
  dt-bindings: iio: imu: st_lsm6dsx: support open drain mode
  iio: imu: st_lsm6dsx: support open drain mode
  dt-bindings: iio: pressure: Add bindings for MS5637, MS5805, MS5837 and MS8607 sensors
  iio: pressure: ms5637: Add OF match table
  dt-bindings: iio: humidity: Add bindings for HTU21 and MS8607 sensors
  iio: humidity: htu21: Add OF match table
  dt-bindings: iio: update STM32 timers clock names
  iio: adc: at91-sama5d2_adc: add support for suspend/resume functionality
  iio: accel: st_accel_spi: rename of_device_id table in st_accel_of_match
  iio: common: st_sensors: move st_sensors_of_i2c_probe() in common code
  iio: magnetometer: st_magn_core: enable multiread by default for LIS3MDL
  iio: light: tcs3472: fix ATIME register write
  iio: adc: Fix polling of INA219 conversion ready flag
  dt-bindings: iio: temperature: Add bindings for TSYS01 temperature sensor
  iio: temperature: tsys01: Add OF match table
  iio: adc: at91-sama5d2_adc: add hw trigger and buffer support
  Documentation: dt: iio: at91-sama5d2_adc: add hw trigger edge binding
  iio: adc: Kconfig: Append vendor name for IMX7D_ADC
  iio: humidity: hdc100x: add match table and device id's
  iio: humidity: hdc100x: document compatible HDC10xx devices
  dt-bindings: iio: humidity: add bindings for HDC100x sensors
  dt-bindings: iio: gyro: add L3GD20H sensor device binding
  iio: gyro: st_gyro: fix L3GD20H support
  iio: accel: bmc150: Add support for BOSC0200 ACPI device id
  drm/i915/cnl: Fix the CURSOR_COEFF_MASK used in DDI Vswing Programming
  drm/atomic: Drop helper include from drm_atomic.c
  drm: Convert atomic drivers from CRTC .disable() to .atomic_disable()
  drm: Add old state pointer to CRTC .enable() helper function
  dma-buf/sw-sync: Use an rbtree to sort fences in the timeline
  dma-buf/sw-sync: Fix locking around sync_timeline lists
  dma-buf/sw-sync: sync_pt is private and of fixed size
  dma-buf/sw-sync: Reduce irqsave/irqrestore from known context
  dma-buf/sw-sync: Prevent user overflow on timeline advance
  dma-buf/sw-sync: Fix the is-signaled test to handle u32 wraparound
  dma-buf/dma-fence: Extract __dma_fence_is_later()
  drm/i915/cfl: Fix Workarounds.
  drm/i915: Avoid undefined behaviour of "u32 >> 32"
  drm/i915: reintroduce VLV/CHV PFI programming power domain workaround
  drm/gma500: remove an unneeded NULL check
  locking/atomic/x86: Use 's64 *' for 'old' argument of atomic64_try_cmpxchg()
  locking/atomic/x86: Un-macro-ify atomic ops implementation
  drm/i915: Avoid keeping waitboost active for signaling threads
  drm/i915: Drop flushing of the object free list/worker from i915_gem_suspend
  drm: vmwgfx: Replace CRTC .commit() helper operation with .enable()
  drm: vmwgfx: Remove unneeded CRTC .prepare() helper operation
  drm: qxl: Replace CRTC .commit() helper operation with .enable()
  drm: qxl: Remove unused CRTC .dpms() helper operation
  drm: arcpgu: Remove CRTC .prepare() helper operation
  drm: arcpgu: Remove CRTC .commit() helper operation
  drm/vblank: Unexport drm_vblank_cleanup
  drm/hdlcd: remove drm_vblank_cleanup, rise of the zoombies edition
  drm/i915: Cancel pending execlists irq handler upon idling
  drm/core: Fail atomic IOCTL with no CRTC state but with signaling.
  IB/hfi1: Handle missing magic values in config file
  IB/hfi1: Resolve kernel panics by reference counting receive contexts
  IB/hfi1: Initialize TID lists to avoid crash on cleanup
  IB/qib: Replace deprecated pci functions with new API
  IB/hfi1: Add traces for TID operations
  IB/hfi1: Use a template for tid reg/unreg
  IB/hfi1: Remove reading platform configuration from EFI variable
  IB/hfi1: Create common expected receive verbs/PSM code
  IB/hfi1: Set proper logging levels on QSFP cable error events
  IB/hfi1: Fix DC 8051 host info flag array
  IB/hfi1,qib: Do not send QKey trap for UD qps
  IB/hfi1: Modify handling of physical link state by Host Driver
  IB/core: Allow QP state transition from reset to error
  IB/hfi1: Add error checking for buffer overrun in OPA aggregate
  IB/hfi1: Remove subtraction of uninitialized value
  IB/hfi1: Use QPN mask to avoid overflow
  IB/hfi1: Fix spelling mistake in linkdown reason
  IB/hfi1: Ensure dd->gi_mask can not be overflowed
  IB/rdmavt: Remove duplicated functions
  IB/hfi1: Fix up sdma_init function comment
  IB/hfi1: Reclassify type of messages printed for platform config logic
  IB/hfi1: Remove atomic SDMA_REQ_HAS_ERROR bit operation
  IB/hfi1: Remove atomic SDMA_REQ_SEND_DONE bit operation
  IB/core,rdmavt,hfi1,opa-vnic: Send OPA cap_mask3 in trap
  IB/hfi1: Replace deprecated pci functions with new API
  IB/hfi1: Name function prototype parameters for affinity module
  IB/hfi1: Optimize cachelines for user SDMA request structure
  IB/hfi1: Don't remove RB entry when not needed.
  IB/rdmavt: Compress adjacent SGEs in rvt_lkey_ok()
  IB/hfi1: Setup common IB fields in hfi1_packet struct
  IB/hfi1: Separate input/output header tracing
  IB/hfi1: Add functions to parse BTH/IB headers
  IB/hfi1: Remove unused mk_qpn function
  IB/hfi1: Remove unnecessary initialization from tx request
  drm/i915: Fix an error checking test
  drm/i915/selftests: Fix mutex imbalance for igt_render_engine_reset_fallback
  drm/i915: Disable MSI for all pre-gen5
  drm/atomic-helper: Simplify commit tracking locking
  drm/i915/dp: Remove -1/+1 from t11_t12 for Gen9_LP/CNP case
  drm/i915/dp: Fix the t11_t12 panel power cycle delay from VBT read
  drm/vmwgfx: Drop drm_vblank_cleanup
  drm/udl: Drop drm_vblank_cleanup
  drm/rockchip: Drop drm_vblank_cleanup
  drm/nouveau: Drop drm_vblank_cleanup
  drm/mtk: Drop drm_vblank_cleanup
  drm/i915: Drop drm_vblank_cleanup
  drm/kirin: Drop drm_vblank_cleanup
  drm/hibmc: Drop drm_vblank_cleanup
  drm/i915: Break modeset deadlocks on reset
  drm/vgem: Pin our pages for dmabuf exports
  drm: arcpgu: arc_pgu_crtc_mode_valid() can be static
  drm/i915: Add option to support dynamic backlight via DPCD
  drm/i915: Add heuristic to determine better way to adjust brightness
  drm/i915: Set PWM divider to match desired frequency in vbt
  drm/mxsfb: Drop drm_vblank_cleanup
  drm/amd|radeon: Drop drm_vblank_cleanup
  drm/qxl: move extern variable declaration header file
  drm/qxl: declare a bunch of functions as static
  drm/qxl: fix __user annotations
  drm/rockchip: dw_hdmi: introduce the pclk for grf
  drm/rockchip: dw_hdmi: introduce the VPLL clock setting
  drm/rockchip: dw_hdmi: add RK3399 HDMI support
  drm: atmel-hlcdc: add support for 8-bit color lookup table mode
  drm: atmel-hlcdc: add missing .set_property helper to the crtc
  drm/vc4: Remove dead vc4_event_pending().
  drm/vc4: Use the atomic state's commit workqueue.
  drm/vc4: Wait for fences interruptibly in blocking mode.
  drm/vc4: Hook up plane prepare_fb to lookup dma-buf reservations.
  drm/vc4: Allow vblank_disable_immediate on non-fw-kms. (v2)
  drm/i915: Always use 9 bits of the LPC bridge device ID for PCH detection
  drm/i915: Clean up some expressions
  drm/i915: Document that PPT==CPT and WPT==LPT
  drm/i915: s/Couar/Cougar/
  drm/i915: Use HAS_PCH_CPT() everywhere
  drm/i915: pass the vma to insert_entries
  drm: Add drm_atomic_helper_wait_for_flip_done()
  drm/i915: Clear execbuf's vma backpointer upon release
  drm: arcpgu: Use crtc->mode_valid() callback
  drm/zte: Drop drm_vblank_cleanup
  drm/shmob: Drop drm_vblank_cleanup
  drm/vc4: Send a VBLANK event when disabling a CRTC
  drm: Check for drm_device->dev in drm_set_busid
  drm/i915: Cancel pending execlist tasklet upon wedging
  drm: sti: sti_hqvdp: undo preparation of a clock source.
  drm/rockchip: Remove unnecessary NULL check
  drm/atmel-hlcdc: Remove unnecessary NULL check
  drm/i915: Hold struct_mutex for per-file stats in debugfs/i915_gem_object
  drm/i915: Assert the vma's active tracking is clear before free
  drm/i915: Retire the VMA's fence tracker before unbinding
  drm/i915: select CRC32
  drm: armada: make of_device_ids const.
  drm/i915: Pass the right flags to i915_vma_move_to_active()
  drm/i915: Enable Engine reset and recovery support
  drm/i915/selftests: reset engine self tests
  drm/i915: Export per-engine reset count info to debugfs
  drm/i915: Add engine reset count to error state
  drm/i915: Add support for per engine reset recovery
  drm/i915: Modify error handler for per engine hang recovery
  drm/i915: Update i915.reset to handle engine resets
  drm/i915: Look for active requests earlier in the reset path
  drm/i915: Wait for concurrent global resets to complete
  drm/i915: Enable rcu-only context lookups
  drm/i915: Allow contexts to be unreferenced locklessly
  drm/i915: Group all the global context information together
  drm: Convert CMA fbdev console suspend helpers to use bool
  drm/i915: Do not re-calculate num_rings locally
  drm/i915: Simplify intel_engines_init
  drm: sti: sti_hqvdp: make of_device_ids const.
  drm: sti: sti_dvo: make of_device_ids const.
  drm: More links for gamma support helpers
  drm: vc4: Use crtc->mode_valid() and encoder->mode_valid() callbacks
  drm/doc: Improve ioctl/fops docs a bit more
  drm/pci: Deprecate drm_pci_init/exit completely
  drm: Remove drm_driver->set_busid hook
  drm/udl: Remove dummy busid callback
  drm/vblank: Consistent drm_crtc_ prefix
  drm/vblank: _ioctl posfix for ioctl handler
  drm/doc: vblank cleanup
  drm/doc: Drop empty include for drm_color_mgmt.h
  drm/tegra: Drop drm_vblank_cleanup
  drm/sti: Drop drm_vblank_cleanup
  drm/i915/cnl: Fix RMW on ddi vswing sequence.
  drm/i915: Make intel_digital_port_connected() work for any port
  ARM: dts: dra7: Add "max-frequency" property to MMC dt nodes
  ARM: dts: dra7-evm: Correct the vmmc-supply for mmc2
  ARM: dts: am57xx-beagle-x15-revb1: Fix supply name used for MMC1 IO lines
  ARM: dts: dra72-evm-revc: Add vqmmc supply to mmc1
  ARM: dts: dra72-evm: Add vqmmc supply to mmc1
  ARM: dts: dra72-evm-common: Correct vmmc-supply for mmc2

Conflicts:
	Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt
	arch/arm64/include/asm/arch_gicv3.h
	arch/arm64/include/asm/traps.h
	arch/arm64/mm/cache.S
	arch/arm64/mm/dma-mapping.c
	drivers/android/Makefile
	drivers/android/binder.c
	drivers/android/binder_alloc.c
	drivers/android/binder_alloc.h
	drivers/base/dd.c
	drivers/base/firmware_class.c
	drivers/firmware/efi/libstub/Makefile
	drivers/iommu/Kconfig
	drivers/iommu/arm-smmu.c
	drivers/iommu/iommu.c
	drivers/irqchip/Kconfig
	drivers/irqchip/irq-gic-v3.c
	drivers/md/dm-linear.c
	drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
	drivers/rpmsg/Kconfig
	drivers/rpmsg/qcom_glink_native.c
	drivers/scsi/ufs/ufshcd.c
	drivers/soc/qcom/Kconfig
	drivers/soc/qcom/Makefile
	drivers/staging/android/ion/ion.h
	drivers/staging/android/ion/ion_cma_heap.c
	drivers/staging/android/ion/ion_system_heap.c
	drivers/usb/dwc3/dwc3-of-simple.c
	drivers/usb/gadget/function/f_midi.c
	fs/namespace.c
	fs/proc/task_mmu.c
	fs/super.c
	include/linux/dcache.h
	include/linux/mmc/core.h
	include/linux/mmc/host.h
	include/uapi/linux/serial_core.h
	kernel/cgroup/cgroup.c
	kernel/power/process.c
	kernel/power/suspend.c
	net/bridge/br_device.c

Change-Id: Ic5d030c15fb0993f07d462a381445268b2c1aa5c
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
2017-10-09 16:05:18 -07:00

5705 lines
157 KiB
C

/*
* kernel/workqueue.c - generic async execution with shared worker pool
*
* Copyright (C) 2002 Ingo Molnar
*
* Derived from the taskqueue/keventd code by:
* David Woodhouse <dwmw2@infradead.org>
* Andrew Morton
* Kai Petzke <wpp@marie.physik.tu-berlin.de>
* Theodore Ts'o <tytso@mit.edu>
*
* Made to use alloc_percpu by Christoph Lameter.
*
* Copyright (C) 2010 SUSE Linux Products GmbH
* Copyright (C) 2010 Tejun Heo <tj@kernel.org>
*
* This is the generic async execution mechanism. Work items as are
* executed in process context. The worker pool is shared and
* automatically managed. There are two worker pools for each CPU (one for
* normal work items and the other for high priority ones) and some extra
* pools for workqueues which are not bound to any specific CPU - the
* number of these backing pools is dynamic.
*
* Please read Documentation/core-api/workqueue.rst for details.
*/
#include <linux/export.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/signal.h>
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include <linux/cpu.h>
#include <linux/notifier.h>
#include <linux/kthread.h>
#include <linux/hardirq.h>
#include <linux/mempolicy.h>
#include <linux/freezer.h>
#include <linux/kallsyms.h>
#include <linux/debug_locks.h>
#include <linux/lockdep.h>
#include <linux/idr.h>
#include <linux/jhash.h>
#include <linux/hashtable.h>
#include <linux/rculist.h>
#include <linux/nodemask.h>
#include <linux/moduleparam.h>
#include <linux/uaccess.h>
#include <linux/bug.h>
#include <linux/delay.h>
#include "workqueue_internal.h"
enum {
/*
* worker_pool flags
*
* A bound pool is either associated or disassociated with its CPU.
* While associated (!DISASSOCIATED), all workers are bound to the
* CPU and none has %WORKER_UNBOUND set and concurrency management
* is in effect.
*
* While DISASSOCIATED, the cpu may be offline and all workers have
* %WORKER_UNBOUND set and concurrency management disabled, and may
* be executing on any CPU. The pool behaves as an unbound one.
*
* Note that DISASSOCIATED should be flipped only while holding
* attach_mutex to avoid changing binding state while
* worker_attach_to_pool() is in progress.
*/
POOL_DISASSOCIATED = 1 << 2, /* cpu can't serve workers */
/* worker flags */
WORKER_DIE = 1 << 1, /* die die die */
WORKER_IDLE = 1 << 2, /* is idle */
WORKER_PREP = 1 << 3, /* preparing to run works */
WORKER_CPU_INTENSIVE = 1 << 6, /* cpu intensive */
WORKER_UNBOUND = 1 << 7, /* worker is unbound */
WORKER_REBOUND = 1 << 8, /* worker was rebound */
WORKER_NOT_RUNNING = WORKER_PREP | WORKER_CPU_INTENSIVE |
WORKER_UNBOUND | WORKER_REBOUND,
NR_STD_WORKER_POOLS = 2, /* # standard pools per cpu */
UNBOUND_POOL_HASH_ORDER = 6, /* hashed by pool->attrs */
BUSY_WORKER_HASH_ORDER = 6, /* 64 pointers */
MAX_IDLE_WORKERS_RATIO = 4, /* 1/4 of busy can be idle */
IDLE_WORKER_TIMEOUT = 300 * HZ, /* keep idle ones for 5 mins */
MAYDAY_INITIAL_TIMEOUT = HZ / 100 >= 2 ? HZ / 100 : 2,
/* call for help after 10ms
(min two ticks) */
MAYDAY_INTERVAL = HZ / 10, /* and then every 100ms */
CREATE_COOLDOWN = HZ, /* time to breath after fail */
/*
* Rescue workers are used only on emergencies and shared by
* all cpus. Give MIN_NICE.
*/
RESCUER_NICE_LEVEL = MIN_NICE,
HIGHPRI_NICE_LEVEL = MIN_NICE,
WQ_NAME_LEN = 24,
};
/*
* Structure fields follow one of the following exclusion rules.
*
* I: Modifiable by initialization/destruction paths and read-only for
* everyone else.
*
* P: Preemption protected. Disabling preemption is enough and should
* only be modified and accessed from the local cpu.
*
* L: pool->lock protected. Access with pool->lock held.
*
* X: During normal operation, modification requires pool->lock and should
* be done only from local cpu. Either disabling preemption on local
* cpu or grabbing pool->lock is enough for read access. If
* POOL_DISASSOCIATED is set, it's identical to L.
*
* A: pool->attach_mutex protected.
*
* PL: wq_pool_mutex protected.
*
* PR: wq_pool_mutex protected for writes. Sched-RCU protected for reads.
*
* PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads.
*
* PWR: wq_pool_mutex and wq->mutex protected for writes. Either or
* sched-RCU for reads.
*
* WQ: wq->mutex protected.
*
* WR: wq->mutex protected for writes. Sched-RCU protected for reads.
*
* MD: wq_mayday_lock protected.
*/
/* struct worker is defined in workqueue_internal.h */
struct worker_pool {
spinlock_t lock; /* the pool lock */
int cpu; /* I: the associated cpu */
int node; /* I: the associated node ID */
int id; /* I: pool ID */
unsigned int flags; /* X: flags */
unsigned long watchdog_ts; /* L: watchdog timestamp */
struct list_head worklist; /* L: list of pending works */
int nr_workers; /* L: total number of workers */
/* nr_idle includes the ones off idle_list for rebinding */
int nr_idle; /* L: currently idle ones */
struct list_head idle_list; /* X: list of idle workers */
struct timer_list idle_timer; /* L: worker idle timeout */
struct timer_list mayday_timer; /* L: SOS timer for workers */
/* a workers is either on busy_hash or idle_list, or the manager */
DECLARE_HASHTABLE(busy_hash, BUSY_WORKER_HASH_ORDER);
/* L: hash of busy workers */
/* see manage_workers() for details on the two manager mutexes */
struct mutex manager_arb; /* manager arbitration */
struct worker *manager; /* L: purely informational */
struct mutex attach_mutex; /* attach/detach exclusion */
struct list_head workers; /* A: attached workers */
struct completion *detach_completion; /* all workers detached */
struct ida worker_ida; /* worker IDs for task name */
struct workqueue_attrs *attrs; /* I: worker attributes */
struct hlist_node hash_node; /* PL: unbound_pool_hash node */
int refcnt; /* PL: refcnt for unbound pools */
/*
* The current concurrency level. As it's likely to be accessed
* from other CPUs during try_to_wake_up(), put it in a separate
* cacheline.
*/
atomic_t nr_running ____cacheline_aligned_in_smp;
/*
* Destruction of pool is sched-RCU protected to allow dereferences
* from get_work_pool().
*/
struct rcu_head rcu;
} ____cacheline_aligned_in_smp;
/*
* The per-pool workqueue. While queued, the lower WORK_STRUCT_FLAG_BITS
* of work_struct->data are used for flags and the remaining high bits
* point to the pwq; thus, pwqs need to be aligned at two's power of the
* number of flag bits.
*/
struct pool_workqueue {
struct worker_pool *pool; /* I: the associated pool */
struct workqueue_struct *wq; /* I: the owning workqueue */
int work_color; /* L: current color */
int flush_color; /* L: flushing color */
int refcnt; /* L: reference count */
int nr_in_flight[WORK_NR_COLORS];
/* L: nr of in_flight works */
int nr_active; /* L: nr of active works */
int max_active; /* L: max active works */
struct list_head delayed_works; /* L: delayed works */
struct list_head pwqs_node; /* WR: node on wq->pwqs */
struct list_head mayday_node; /* MD: node on wq->maydays */
/*
* Release of unbound pwq is punted to system_wq. See put_pwq()
* and pwq_unbound_release_workfn() for details. pool_workqueue
* itself is also sched-RCU protected so that the first pwq can be
* determined without grabbing wq->mutex.
*/
struct work_struct unbound_release_work;
struct rcu_head rcu;
} __aligned(1 << WORK_STRUCT_FLAG_BITS);
/*
* Structure used to wait for workqueue flush.
*/
struct wq_flusher {
struct list_head list; /* WQ: list of flushers */
int flush_color; /* WQ: flush color waiting for */
struct completion done; /* flush completion */
};
struct wq_device;
/*
* The externally visible workqueue. It relays the issued work items to
* the appropriate worker_pool through its pool_workqueues.
*/
struct workqueue_struct {
struct list_head pwqs; /* WR: all pwqs of this wq */
struct list_head list; /* PR: list of all workqueues */
struct mutex mutex; /* protects this wq */
int work_color; /* WQ: current work color */
int flush_color; /* WQ: current flush color */
atomic_t nr_pwqs_to_flush; /* flush in progress */
struct wq_flusher *first_flusher; /* WQ: first flusher */
struct list_head flusher_queue; /* WQ: flush waiters */
struct list_head flusher_overflow; /* WQ: flush overflow list */
struct list_head maydays; /* MD: pwqs requesting rescue */
struct worker *rescuer; /* I: rescue worker */
int nr_drainers; /* WQ: drain in progress */
int saved_max_active; /* WQ: saved pwq max_active */
struct workqueue_attrs *unbound_attrs; /* PW: only for unbound wqs */
struct pool_workqueue *dfl_pwq; /* PW: only for unbound wqs */
#ifdef CONFIG_SYSFS
struct wq_device *wq_dev; /* I: for sysfs interface */
#endif
#ifdef CONFIG_LOCKDEP
struct lockdep_map lockdep_map;
#endif
char name[WQ_NAME_LEN]; /* I: workqueue name */
/*
* Destruction of workqueue_struct is sched-RCU protected to allow
* walking the workqueues list without grabbing wq_pool_mutex.
* This is used to dump all workqueues from sysrq.
*/
struct rcu_head rcu;
/* hot fields used during command issue, aligned to cacheline */
unsigned int flags ____cacheline_aligned; /* WQ: WQ_* flags */
struct pool_workqueue __percpu *cpu_pwqs; /* I: per-cpu pwqs */
struct pool_workqueue __rcu *numa_pwq_tbl[]; /* PWR: unbound pwqs indexed by node */
};
static struct kmem_cache *pwq_cache;
static cpumask_var_t *wq_numa_possible_cpumask;
/* possible CPUs of each node */
static bool wq_disable_numa;
module_param_named(disable_numa, wq_disable_numa, bool, 0444);
/* see the comment above the definition of WQ_POWER_EFFICIENT */
static bool wq_power_efficient = IS_ENABLED(CONFIG_WQ_POWER_EFFICIENT_DEFAULT);
module_param_named(power_efficient, wq_power_efficient, bool, 0444);
static bool wq_online; /* can kworkers be created yet? */
static bool wq_numa_enabled; /* unbound NUMA affinity enabled */
/* buf for wq_update_unbound_numa_attrs(), protected by CPU hotplug exclusion */
static struct workqueue_attrs *wq_update_unbound_numa_attrs_buf;
static DEFINE_MUTEX(wq_pool_mutex); /* protects pools and workqueues list */
static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
static LIST_HEAD(workqueues); /* PR: list of all workqueues */
static bool workqueue_freezing; /* PL: have wqs started freezing? */
/* PL: allowable cpus for unbound wqs and work items */
static cpumask_var_t wq_unbound_cpumask;
/* CPU where unbound work was last round robin scheduled from this CPU */
static DEFINE_PER_CPU(int, wq_rr_cpu_last);
/*
* Local execution of unbound work items is no longer guaranteed. The
* following always forces round-robin CPU selection on unbound work items
* to uncover usages which depend on it.
*/
#ifdef CONFIG_DEBUG_WQ_FORCE_RR_CPU
static bool wq_debug_force_rr_cpu = true;
#else
static bool wq_debug_force_rr_cpu = false;
#endif
module_param_named(debug_force_rr_cpu, wq_debug_force_rr_cpu, bool, 0644);
/* the per-cpu worker pools */
static DEFINE_PER_CPU_SHARED_ALIGNED(struct worker_pool [NR_STD_WORKER_POOLS], cpu_worker_pools);
static DEFINE_IDR(worker_pool_idr); /* PR: idr of all pools */
/* PL: hash of all unbound pools keyed by pool->attrs */
static DEFINE_HASHTABLE(unbound_pool_hash, UNBOUND_POOL_HASH_ORDER);
/* I: attributes used when instantiating standard unbound pools on demand */
static struct workqueue_attrs *unbound_std_wq_attrs[NR_STD_WORKER_POOLS];
/* I: attributes used when instantiating ordered pools on demand */
static struct workqueue_attrs *ordered_wq_attrs[NR_STD_WORKER_POOLS];
struct workqueue_struct *system_wq __read_mostly;
EXPORT_SYMBOL(system_wq);
struct workqueue_struct *system_highpri_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_highpri_wq);
struct workqueue_struct *system_long_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_long_wq);
struct workqueue_struct *system_unbound_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_unbound_wq);
struct workqueue_struct *system_freezable_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_freezable_wq);
struct workqueue_struct *system_power_efficient_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_power_efficient_wq);
struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq);
static int worker_thread(void *__worker);
static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
#define CREATE_TRACE_POINTS
#include <trace/events/workqueue.h>
#define assert_rcu_or_pool_mutex() \
RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \
!lockdep_is_held(&wq_pool_mutex), \
"sched RCU or wq_pool_mutex should be held")
#define assert_rcu_or_wq_mutex(wq) \
RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \
!lockdep_is_held(&wq->mutex), \
"sched RCU or wq->mutex should be held")
#define assert_rcu_or_wq_mutex_or_pool_mutex(wq) \
RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \
!lockdep_is_held(&wq->mutex) && \
!lockdep_is_held(&wq_pool_mutex), \
"sched RCU, wq->mutex or wq_pool_mutex should be held")
#define for_each_cpu_worker_pool(pool, cpu) \
for ((pool) = &per_cpu(cpu_worker_pools, cpu)[0]; \
(pool) < &per_cpu(cpu_worker_pools, cpu)[NR_STD_WORKER_POOLS]; \
(pool)++)
/**
* for_each_pool - iterate through all worker_pools in the system
* @pool: iteration cursor
* @pi: integer used for iteration
*
* This must be called either with wq_pool_mutex held or sched RCU read
* locked. If the pool needs to be used beyond the locking in effect, the
* caller is responsible for guaranteeing that the pool stays online.
*
* The if/else clause exists only for the lockdep assertion and can be
* ignored.
*/
#define for_each_pool(pool, pi) \
idr_for_each_entry(&worker_pool_idr, pool, pi) \
if (({ assert_rcu_or_pool_mutex(); false; })) { } \
else
/**
* for_each_pool_worker - iterate through all workers of a worker_pool
* @worker: iteration cursor
* @pool: worker_pool to iterate workers of
*
* This must be called with @pool->attach_mutex.
*
* The if/else clause exists only for the lockdep assertion and can be
* ignored.
*/
#define for_each_pool_worker(worker, pool) \
list_for_each_entry((worker), &(pool)->workers, node) \
if (({ lockdep_assert_held(&pool->attach_mutex); false; })) { } \
else
/**
* for_each_pwq - iterate through all pool_workqueues of the specified workqueue
* @pwq: iteration cursor
* @wq: the target workqueue
*
* This must be called either with wq->mutex held or sched RCU read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
*
* The if/else clause exists only for the lockdep assertion and can be
* ignored.
*/
#define for_each_pwq(pwq, wq) \
list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node) \
if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
else
#ifdef CONFIG_DEBUG_OBJECTS_WORK
static struct debug_obj_descr work_debug_descr;
static void *work_debug_hint(void *addr)
{
return ((struct work_struct *) addr)->func;
}
static bool work_is_static_object(void *addr)
{
struct work_struct *work = addr;
return test_bit(WORK_STRUCT_STATIC_BIT, work_data_bits(work));
}
/*
* fixup_init is called when:
* - an active object is initialized
*/
static bool work_fixup_init(void *addr, enum debug_obj_state state)
{
struct work_struct *work = addr;
switch (state) {
case ODEBUG_STATE_ACTIVE:
cancel_work_sync(work);
debug_object_init(work, &work_debug_descr);
return true;
default:
return false;
}
}
/*
* fixup_free is called when:
* - an active object is freed
*/
static bool work_fixup_free(void *addr, enum debug_obj_state state)
{
struct work_struct *work = addr;
switch (state) {
case ODEBUG_STATE_ACTIVE:
cancel_work_sync(work);
debug_object_free(work, &work_debug_descr);
return true;
default:
return false;
}
}
static struct debug_obj_descr work_debug_descr = {
.name = "work_struct",
.debug_hint = work_debug_hint,
.is_static_object = work_is_static_object,
.fixup_init = work_fixup_init,
.fixup_free = work_fixup_free,
};
static inline void debug_work_activate(struct work_struct *work)
{
debug_object_activate(work, &work_debug_descr);
}
static inline void debug_work_deactivate(struct work_struct *work)
{
debug_object_deactivate(work, &work_debug_descr);
}
void __init_work(struct work_struct *work, int onstack)
{
if (onstack)
debug_object_init_on_stack(work, &work_debug_descr);
else
debug_object_init(work, &work_debug_descr);
}
EXPORT_SYMBOL_GPL(__init_work);
void destroy_work_on_stack(struct work_struct *work)
{
debug_object_free(work, &work_debug_descr);
}
EXPORT_SYMBOL_GPL(destroy_work_on_stack);
void destroy_delayed_work_on_stack(struct delayed_work *work)
{
destroy_timer_on_stack(&work->timer);
debug_object_free(&work->work, &work_debug_descr);
}
EXPORT_SYMBOL_GPL(destroy_delayed_work_on_stack);
#else
static inline void debug_work_activate(struct work_struct *work) { }
static inline void debug_work_deactivate(struct work_struct *work) { }
#endif
/**
* worker_pool_assign_id - allocate ID and assing it to @pool
* @pool: the pool pointer of interest
*
* Returns 0 if ID in [0, WORK_OFFQ_POOL_NONE) is allocated and assigned
* successfully, -errno on failure.
*/
static int worker_pool_assign_id(struct worker_pool *pool)
{
int ret;
lockdep_assert_held(&wq_pool_mutex);
ret = idr_alloc(&worker_pool_idr, pool, 0, WORK_OFFQ_POOL_NONE,
GFP_KERNEL);
if (ret >= 0) {
pool->id = ret;
return 0;
}
return ret;
}
/**
* unbound_pwq_by_node - return the unbound pool_workqueue for the given node
* @wq: the target workqueue
* @node: the node ID
*
* This must be called with any of wq_pool_mutex, wq->mutex or sched RCU
* read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
*
* Return: The unbound pool_workqueue for @node.
*/
static struct pool_workqueue *unbound_pwq_by_node(struct workqueue_struct *wq,
int node)
{
assert_rcu_or_wq_mutex_or_pool_mutex(wq);
/*
* XXX: @node can be NUMA_NO_NODE if CPU goes offline while a
* delayed item is pending. The plan is to keep CPU -> NODE
* mapping valid and stable across CPU on/offlines. Once that
* happens, this workaround can be removed.
*/
if (unlikely(node == NUMA_NO_NODE))
return wq->dfl_pwq;
return rcu_dereference_raw(wq->numa_pwq_tbl[node]);
}
static unsigned int work_color_to_flags(int color)
{
return color << WORK_STRUCT_COLOR_SHIFT;
}
static int get_work_color(struct work_struct *work)
{
return (*work_data_bits(work) >> WORK_STRUCT_COLOR_SHIFT) &
((1 << WORK_STRUCT_COLOR_BITS) - 1);
}
static int work_next_color(int color)
{
return (color + 1) % WORK_NR_COLORS;
}
/*
* While queued, %WORK_STRUCT_PWQ is set and non flag bits of a work's data
* contain the pointer to the queued pwq. Once execution starts, the flag
* is cleared and the high bits contain OFFQ flags and pool ID.
*
* set_work_pwq(), set_work_pool_and_clear_pending(), mark_work_canceling()
* and clear_work_data() can be used to set the pwq, pool or clear
* work->data. These functions should only be called while the work is
* owned - ie. while the PENDING bit is set.
*
* get_work_pool() and get_work_pwq() can be used to obtain the pool or pwq
* corresponding to a work. Pool is available once the work has been
* queued anywhere after initialization until it is sync canceled. pwq is
* available only while the work item is queued.
*
* %WORK_OFFQ_CANCELING is used to mark a work item which is being
* canceled. While being canceled, a work item may have its PENDING set
* but stay off timer and worklist for arbitrarily long and nobody should
* try to steal the PENDING bit.
*/
static inline void set_work_data(struct work_struct *work, unsigned long data,
unsigned long flags)
{
WARN_ON_ONCE(!work_pending(work));
atomic_long_set(&work->data, data | flags | work_static(work));
}
static void set_work_pwq(struct work_struct *work, struct pool_workqueue *pwq,
unsigned long extra_flags)
{
set_work_data(work, (unsigned long)pwq,
WORK_STRUCT_PENDING | WORK_STRUCT_PWQ | extra_flags);
}
static void set_work_pool_and_keep_pending(struct work_struct *work,
int pool_id)
{
set_work_data(work, (unsigned long)pool_id << WORK_OFFQ_POOL_SHIFT,
WORK_STRUCT_PENDING);
}
static void set_work_pool_and_clear_pending(struct work_struct *work,
int pool_id)
{
/*
* The following wmb is paired with the implied mb in
* test_and_set_bit(PENDING) and ensures all updates to @work made
* here are visible to and precede any updates by the next PENDING
* owner.
*/
smp_wmb();
set_work_data(work, (unsigned long)pool_id << WORK_OFFQ_POOL_SHIFT, 0);
/*
* The following mb guarantees that previous clear of a PENDING bit
* will not be reordered with any speculative LOADS or STORES from
* work->current_func, which is executed afterwards. This possible
* reordering can lead to a missed execution on attempt to qeueue
* the same @work. E.g. consider this case:
*
* CPU#0 CPU#1
* ---------------------------- --------------------------------
*
* 1 STORE event_indicated
* 2 queue_work_on() {
* 3 test_and_set_bit(PENDING)
* 4 } set_..._and_clear_pending() {
* 5 set_work_data() # clear bit
* 6 smp_mb()
* 7 work->current_func() {
* 8 LOAD event_indicated
* }
*
* Without an explicit full barrier speculative LOAD on line 8 can
* be executed before CPU#0 does STORE on line 1. If that happens,
* CPU#0 observes the PENDING bit is still set and new execution of
* a @work is not queued in a hope, that CPU#1 will eventually
* finish the queued @work. Meanwhile CPU#1 does not see
* event_indicated is set, because speculative LOAD was executed
* before actual STORE.
*/
smp_mb();
}
static void clear_work_data(struct work_struct *work)
{
smp_wmb(); /* see set_work_pool_and_clear_pending() */
set_work_data(work, WORK_STRUCT_NO_POOL, 0);
}
static struct pool_workqueue *get_work_pwq(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
if (data & WORK_STRUCT_PWQ)
return (void *)(data & WORK_STRUCT_WQ_DATA_MASK);
else
return NULL;
}
/**
* get_work_pool - return the worker_pool a given work was associated with
* @work: the work item of interest
*
* Pools are created and destroyed under wq_pool_mutex, and allows read
* access under sched-RCU read lock. As such, this function should be
* called under wq_pool_mutex or with preemption disabled.
*
* All fields of the returned pool are accessible as long as the above
* mentioned locking is in effect. If the returned pool needs to be used
* beyond the critical section, the caller is responsible for ensuring the
* returned pool is and stays online.
*
* Return: The worker_pool @work was last associated with. %NULL if none.
*/
static struct worker_pool *get_work_pool(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
int pool_id;
assert_rcu_or_pool_mutex();
if (data & WORK_STRUCT_PWQ)
return ((struct pool_workqueue *)
(data & WORK_STRUCT_WQ_DATA_MASK))->pool;
pool_id = data >> WORK_OFFQ_POOL_SHIFT;
if (pool_id == WORK_OFFQ_POOL_NONE)
return NULL;
return idr_find(&worker_pool_idr, pool_id);
}
/**
* get_work_pool_id - return the worker pool ID a given work is associated with
* @work: the work item of interest
*
* Return: The worker_pool ID @work was last associated with.
* %WORK_OFFQ_POOL_NONE if none.
*/
static int get_work_pool_id(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
if (data & WORK_STRUCT_PWQ)
return ((struct pool_workqueue *)
(data & WORK_STRUCT_WQ_DATA_MASK))->pool->id;
return data >> WORK_OFFQ_POOL_SHIFT;
}
static void mark_work_canceling(struct work_struct *work)
{
unsigned long pool_id = get_work_pool_id(work);
pool_id <<= WORK_OFFQ_POOL_SHIFT;
set_work_data(work, pool_id | WORK_OFFQ_CANCELING, WORK_STRUCT_PENDING);
}
static bool work_is_canceling(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
return !(data & WORK_STRUCT_PWQ) && (data & WORK_OFFQ_CANCELING);
}
/*
* Policy functions. These define the policies on how the global worker
* pools are managed. Unless noted otherwise, these functions assume that
* they're being called with pool->lock held.
*/
static bool __need_more_worker(struct worker_pool *pool)
{
return !atomic_read(&pool->nr_running);
}
/*
* Need to wake up a worker? Called from anything but currently
* running workers.
*
* Note that, because unbound workers never contribute to nr_running, this
* function will always return %true for unbound pools as long as the
* worklist isn't empty.
*/
static bool need_more_worker(struct worker_pool *pool)
{
return !list_empty(&pool->worklist) && __need_more_worker(pool);
}
/* Can I start working? Called from busy but !running workers. */
static bool may_start_working(struct worker_pool *pool)
{
return pool->nr_idle;
}
/* Do I need to keep working? Called from currently running workers. */
static bool keep_working(struct worker_pool *pool)
{
return !list_empty(&pool->worklist) &&
atomic_read(&pool->nr_running) <= 1;
}
/* Do we need a new worker? Called from manager. */
static bool need_to_create_worker(struct worker_pool *pool)
{
return need_more_worker(pool) && !may_start_working(pool);
}
/* Do we have too many workers and should some go away? */
static bool too_many_workers(struct worker_pool *pool)
{
bool managing = mutex_is_locked(&pool->manager_arb);
int nr_idle = pool->nr_idle + managing; /* manager is considered idle */
int nr_busy = pool->nr_workers - nr_idle;
return nr_idle > 2 && (nr_idle - 2) * MAX_IDLE_WORKERS_RATIO >= nr_busy;
}
/*
* Wake up functions.
*/
/* Return the first idle worker. Safe with preemption disabled */
static struct worker *first_idle_worker(struct worker_pool *pool)
{
if (unlikely(list_empty(&pool->idle_list)))
return NULL;
return list_first_entry(&pool->idle_list, struct worker, entry);
}
/**
* wake_up_worker - wake up an idle worker
* @pool: worker pool to wake worker from
*
* Wake up the first idle worker of @pool.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void wake_up_worker(struct worker_pool *pool)
{
struct worker *worker = first_idle_worker(pool);
if (likely(worker))
wake_up_process(worker->task);
}
/**
* wq_worker_waking_up - a worker is waking up
* @task: task waking up
* @cpu: CPU @task is waking up to
*
* This function is called during try_to_wake_up() when a worker is
* being awoken.
*
* CONTEXT:
* spin_lock_irq(rq->lock)
*/
void wq_worker_waking_up(struct task_struct *task, int cpu)
{
struct worker *worker = kthread_data(task);
if (!(worker->flags & WORKER_NOT_RUNNING)) {
WARN_ON_ONCE(worker->pool->cpu != cpu);
atomic_inc(&worker->pool->nr_running);
}
}
/**
* wq_worker_sleeping - a worker is going to sleep
* @task: task going to sleep
*
* This function is called during schedule() when a busy worker is
* going to sleep. Worker on the same cpu can be woken up by
* returning pointer to its task.
*
* CONTEXT:
* spin_lock_irq(rq->lock)
*
* Return:
* Worker task on @cpu to wake up, %NULL if none.
*/
struct task_struct *wq_worker_sleeping(struct task_struct *task)
{
struct worker *worker = kthread_data(task), *to_wakeup = NULL;
struct worker_pool *pool;
/*
* Rescuers, which may not have all the fields set up like normal
* workers, also reach here, let's not access anything before
* checking NOT_RUNNING.
*/
if (worker->flags & WORKER_NOT_RUNNING)
return NULL;
pool = worker->pool;
/* this can only happen on the local cpu */
if (WARN_ON_ONCE(pool->cpu != raw_smp_processor_id()))
return NULL;
/*
* The counterpart of the following dec_and_test, implied mb,
* worklist not empty test sequence is in insert_work().
* Please read comment there.
*
* NOT_RUNNING is clear. This means that we're bound to and
* running on the local cpu w/ rq lock held and preemption
* disabled, which in turn means that none else could be
* manipulating idle_list, so dereferencing idle_list without pool
* lock is safe.
*/
if (atomic_dec_and_test(&pool->nr_running) &&
!list_empty(&pool->worklist))
to_wakeup = first_idle_worker(pool);
return to_wakeup ? to_wakeup->task : NULL;
}
/**
* worker_set_flags - set worker flags and adjust nr_running accordingly
* @worker: self
* @flags: flags to set
*
* Set @flags in @worker->flags and adjust nr_running accordingly.
*
* CONTEXT:
* spin_lock_irq(pool->lock)
*/
static inline void worker_set_flags(struct worker *worker, unsigned int flags)
{
struct worker_pool *pool = worker->pool;
WARN_ON_ONCE(worker->task != current);
/* If transitioning into NOT_RUNNING, adjust nr_running. */
if ((flags & WORKER_NOT_RUNNING) &&
!(worker->flags & WORKER_NOT_RUNNING)) {
atomic_dec(&pool->nr_running);
}
worker->flags |= flags;
}
/**
* worker_clr_flags - clear worker flags and adjust nr_running accordingly
* @worker: self
* @flags: flags to clear
*
* Clear @flags in @worker->flags and adjust nr_running accordingly.
*
* CONTEXT:
* spin_lock_irq(pool->lock)
*/
static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
{
struct worker_pool *pool = worker->pool;
unsigned int oflags = worker->flags;
WARN_ON_ONCE(worker->task != current);
worker->flags &= ~flags;
/*
* If transitioning out of NOT_RUNNING, increment nr_running. Note
* that the nested NOT_RUNNING is not a noop. NOT_RUNNING is mask
* of multiple flags, not a single flag.
*/
if ((flags & WORKER_NOT_RUNNING) && (oflags & WORKER_NOT_RUNNING))
if (!(worker->flags & WORKER_NOT_RUNNING))
atomic_inc(&pool->nr_running);
}
/**
* find_worker_executing_work - find worker which is executing a work
* @pool: pool of interest
* @work: work to find worker for
*
* Find a worker which is executing @work on @pool by searching
* @pool->busy_hash which is keyed by the address of @work. For a worker
* to match, its current execution should match the address of @work and
* its work function. This is to avoid unwanted dependency between
* unrelated work executions through a work item being recycled while still
* being executed.
*
* This is a bit tricky. A work item may be freed once its execution
* starts and nothing prevents the freed area from being recycled for
* another work item. If the same work item address ends up being reused
* before the original execution finishes, workqueue will identify the
* recycled work item as currently executing and make it wait until the
* current execution finishes, introducing an unwanted dependency.
*
* This function checks the work item address and work function to avoid
* false positives. Note that this isn't complete as one may construct a
* work function which can introduce dependency onto itself through a
* recycled work item. Well, if somebody wants to shoot oneself in the
* foot that badly, there's only so much we can do, and if such deadlock
* actually occurs, it should be easy to locate the culprit work function.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*
* Return:
* Pointer to worker which is executing @work if found, %NULL
* otherwise.
*/
static struct worker *find_worker_executing_work(struct worker_pool *pool,
struct work_struct *work)
{
struct worker *worker;
hash_for_each_possible(pool->busy_hash, worker, hentry,
(unsigned long)work)
if (worker->current_work == work &&
worker->current_func == work->func)
return worker;
return NULL;
}
/**
* move_linked_works - move linked works to a list
* @work: start of series of works to be scheduled
* @head: target list to append @work to
* @nextp: out parameter for nested worklist walking
*
* Schedule linked works starting from @work to @head. Work series to
* be scheduled starts at @work and includes any consecutive work with
* WORK_STRUCT_LINKED set in its predecessor.
*
* If @nextp is not NULL, it's updated to point to the next work of
* the last scheduled work. This allows move_linked_works() to be
* nested inside outer list_for_each_entry_safe().
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void move_linked_works(struct work_struct *work, struct list_head *head,
struct work_struct **nextp)
{
struct work_struct *n;
/*
* Linked worklist will always end before the end of the list,
* use NULL for list head.
*/
list_for_each_entry_safe_from(work, n, NULL, entry) {
list_move_tail(&work->entry, head);
if (!(*work_data_bits(work) & WORK_STRUCT_LINKED))
break;
}
/*
* If we're already inside safe list traversal and have moved
* multiple works to the scheduled queue, the next position
* needs to be updated.
*/
if (nextp)
*nextp = n;
}
/**
* get_pwq - get an extra reference on the specified pool_workqueue
* @pwq: pool_workqueue to get
*
* Obtain an extra reference on @pwq. The caller should guarantee that
* @pwq has positive refcnt and be holding the matching pool->lock.
*/
static void get_pwq(struct pool_workqueue *pwq)
{
lockdep_assert_held(&pwq->pool->lock);
WARN_ON_ONCE(pwq->refcnt <= 0);
pwq->refcnt++;
}
/**
* put_pwq - put a pool_workqueue reference
* @pwq: pool_workqueue to put
*
* Drop a reference of @pwq. If its refcnt reaches zero, schedule its
* destruction. The caller should be holding the matching pool->lock.
*/
static void put_pwq(struct pool_workqueue *pwq)
{
lockdep_assert_held(&pwq->pool->lock);
if (likely(--pwq->refcnt))
return;
if (WARN_ON_ONCE(!(pwq->wq->flags & WQ_UNBOUND)))
return;
/*
* @pwq can't be released under pool->lock, bounce to
* pwq_unbound_release_workfn(). This never recurses on the same
* pool->lock as this path is taken only for unbound workqueues and
* the release work item is scheduled on a per-cpu workqueue. To
* avoid lockdep warning, unbound pool->locks are given lockdep
* subclass of 1 in get_unbound_pool().
*/
schedule_work(&pwq->unbound_release_work);
}
/**
* put_pwq_unlocked - put_pwq() with surrounding pool lock/unlock
* @pwq: pool_workqueue to put (can be %NULL)
*
* put_pwq() with locking. This function also allows %NULL @pwq.
*/
static void put_pwq_unlocked(struct pool_workqueue *pwq)
{
if (pwq) {
/*
* As both pwqs and pools are sched-RCU protected, the
* following lock operations are safe.
*/
spin_lock_irq(&pwq->pool->lock);
put_pwq(pwq);
spin_unlock_irq(&pwq->pool->lock);
}
}
static void pwq_activate_delayed_work(struct work_struct *work)
{
struct pool_workqueue *pwq = get_work_pwq(work);
trace_workqueue_activate_work(work);
if (list_empty(&pwq->pool->worklist))
pwq->pool->watchdog_ts = jiffies;
move_linked_works(work, &pwq->pool->worklist, NULL);
__clear_bit(WORK_STRUCT_DELAYED_BIT, work_data_bits(work));
pwq->nr_active++;
}
static void pwq_activate_first_delayed(struct pool_workqueue *pwq)
{
struct work_struct *work = list_first_entry(&pwq->delayed_works,
struct work_struct, entry);
pwq_activate_delayed_work(work);
}
/**
* pwq_dec_nr_in_flight - decrement pwq's nr_in_flight
* @pwq: pwq of interest
* @color: color of work which left the queue
*
* A work either has completed or is removed from pending queue,
* decrement nr_in_flight of its pwq and handle workqueue flushing.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void pwq_dec_nr_in_flight(struct pool_workqueue *pwq, int color)
{
/* uncolored work items don't participate in flushing or nr_active */
if (color == WORK_NO_COLOR)
goto out_put;
pwq->nr_in_flight[color]--;
pwq->nr_active--;
if (!list_empty(&pwq->delayed_works)) {
/* one down, submit a delayed one */
if (pwq->nr_active < pwq->max_active)
pwq_activate_first_delayed(pwq);
}
/* is flush in progress and are we at the flushing tip? */
if (likely(pwq->flush_color != color))
goto out_put;
/* are there still in-flight works? */
if (pwq->nr_in_flight[color])
goto out_put;
/* this pwq is done, clear flush_color */
pwq->flush_color = -1;
/*
* If this was the last pwq, wake up the first flusher. It
* will handle the rest.
*/
if (atomic_dec_and_test(&pwq->wq->nr_pwqs_to_flush))
complete(&pwq->wq->first_flusher->done);
out_put:
put_pwq(pwq);
}
/**
* try_to_grab_pending - steal work item from worklist and disable irq
* @work: work item to steal
* @is_dwork: @work is a delayed_work
* @flags: place to store irq state
*
* Try to grab PENDING bit of @work. This function can handle @work in any
* stable state - idle, on timer or on worklist.
*
* Return:
* 1 if @work was pending and we successfully stole PENDING
* 0 if @work was idle and we claimed PENDING
* -EAGAIN if PENDING couldn't be grabbed at the moment, safe to busy-retry
* -ENOENT if someone else is canceling @work, this state may persist
* for arbitrarily long
*
* Note:
* On >= 0 return, the caller owns @work's PENDING bit. To avoid getting
* interrupted while holding PENDING and @work off queue, irq must be
* disabled on entry. This, combined with delayed_work->timer being
* irqsafe, ensures that we return -EAGAIN for finite short period of time.
*
* On successful return, >= 0, irq is disabled and the caller is
* responsible for releasing it using local_irq_restore(*@flags).
*
* This function is safe to call from any context including IRQ handler.
*/
static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
unsigned long *flags)
{
struct worker_pool *pool;
struct pool_workqueue *pwq;
local_irq_save(*flags);
/* try to steal the timer if it exists */
if (is_dwork) {
struct delayed_work *dwork = to_delayed_work(work);
/*
* dwork->timer is irqsafe. If del_timer() fails, it's
* guaranteed that the timer is not queued anywhere and not
* running on the local CPU.
*/
if (likely(del_timer(&dwork->timer)))
return 1;
}
/* try to claim PENDING the normal way */
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
return 0;
/*
* The queueing is in progress, or it is already queued. Try to
* steal it from ->worklist without clearing WORK_STRUCT_PENDING.
*/
pool = get_work_pool(work);
if (!pool)
goto fail;
spin_lock(&pool->lock);
/*
* work->data is guaranteed to point to pwq only while the work
* item is queued on pwq->wq, and both updating work->data to point
* to pwq on queueing and to pool on dequeueing are done under
* pwq->pool->lock. This in turn guarantees that, if work->data
* points to pwq which is associated with a locked pool, the work
* item is currently queued on that pool.
*/
pwq = get_work_pwq(work);
if (pwq && pwq->pool == pool) {
debug_work_deactivate(work);
/*
* A delayed work item cannot be grabbed directly because
* it might have linked NO_COLOR work items which, if left
* on the delayed_list, will confuse pwq->nr_active
* management later on and cause stall. Make sure the work
* item is activated before grabbing.
*/
if (*work_data_bits(work) & WORK_STRUCT_DELAYED)
pwq_activate_delayed_work(work);
list_del_init(&work->entry);
pwq_dec_nr_in_flight(pwq, get_work_color(work));
/* work->data points to pwq iff queued, point to pool */
set_work_pool_and_keep_pending(work, pool->id);
spin_unlock(&pool->lock);
return 1;
}
spin_unlock(&pool->lock);
fail:
local_irq_restore(*flags);
if (work_is_canceling(work))
return -ENOENT;
cpu_relax();
/*
* The queueing is in progress in another context. If we keep
* taking the pool->lock in a busy loop, the other context may
* never get the lock. Give 1 usec delay to avoid this contention.
*/
udelay(1);
return -EAGAIN;
}
/**
* insert_work - insert a work into a pool
* @pwq: pwq @work belongs to
* @work: work to insert
* @head: insertion point
* @extra_flags: extra WORK_STRUCT_* flags to set
*
* Insert @work which belongs to @pwq after @head. @extra_flags is or'd to
* work_struct flags.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void insert_work(struct pool_workqueue *pwq, struct work_struct *work,
struct list_head *head, unsigned int extra_flags)
{
struct worker_pool *pool = pwq->pool;
/* we own @work, set data and link */
set_work_pwq(work, pwq, extra_flags);
list_add_tail(&work->entry, head);
get_pwq(pwq);
/*
* Ensure either wq_worker_sleeping() sees the above
* list_add_tail() or we see zero nr_running to avoid workers lying
* around lazily while there are works to be processed.
*/
smp_mb();
if (__need_more_worker(pool))
wake_up_worker(pool);
}
/*
* Test whether @work is being queued from another work executing on the
* same workqueue.
*/
static bool is_chained_work(struct workqueue_struct *wq)
{
struct worker *worker;
worker = current_wq_worker();
/*
* Return %true iff I'm a worker execuing a work item on @wq. If
* I'm @worker, it's safe to dereference it without locking.
*/
return worker && worker->current_pwq->wq == wq;
}
/*
* When queueing an unbound work item to a wq, prefer local CPU if allowed
* by wq_unbound_cpumask. Otherwise, round robin among the allowed ones to
* avoid perturbing sensitive tasks.
*/
static int wq_select_unbound_cpu(int cpu)
{
static bool printed_dbg_warning;
int new_cpu;
if (likely(!wq_debug_force_rr_cpu)) {
if (cpumask_test_cpu(cpu, wq_unbound_cpumask))
return cpu;
} else if (!printed_dbg_warning) {
pr_warn("workqueue: round-robin CPU selection forced, expect performance impact\n");
printed_dbg_warning = true;
}
if (cpumask_empty(wq_unbound_cpumask))
return cpu;
new_cpu = __this_cpu_read(wq_rr_cpu_last);
new_cpu = cpumask_next_and(new_cpu, wq_unbound_cpumask, cpu_online_mask);
if (unlikely(new_cpu >= nr_cpu_ids)) {
new_cpu = cpumask_first_and(wq_unbound_cpumask, cpu_online_mask);
if (unlikely(new_cpu >= nr_cpu_ids))
return cpu;
}
__this_cpu_write(wq_rr_cpu_last, new_cpu);
return new_cpu;
}
static void __queue_work(int cpu, struct workqueue_struct *wq,
struct work_struct *work)
{
struct pool_workqueue *pwq;
struct worker_pool *last_pool;
struct list_head *worklist;
unsigned int work_flags;
unsigned int req_cpu = cpu;
/*
* While a work item is PENDING && off queue, a task trying to
* steal the PENDING will busy-loop waiting for it to either get
* queued or lose PENDING. Grabbing PENDING and queueing should
* happen with IRQ disabled.
*/
WARN_ON_ONCE(!irqs_disabled());
debug_work_activate(work);
/* if draining, only works from the same workqueue are allowed */
if (unlikely(wq->flags & __WQ_DRAINING) &&
WARN_ON_ONCE(!is_chained_work(wq)))
return;
retry:
if (req_cpu == WORK_CPU_UNBOUND)
cpu = wq_select_unbound_cpu(raw_smp_processor_id());
/* pwq which will be used unless @work is executing elsewhere */
if (!(wq->flags & WQ_UNBOUND))
pwq = per_cpu_ptr(wq->cpu_pwqs, cpu);
else
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
/*
* If @work was previously on a different pool, it might still be
* running there, in which case the work needs to be queued on that
* pool to guarantee non-reentrancy.
*/
last_pool = get_work_pool(work);
if (last_pool && last_pool != pwq->pool) {
struct worker *worker;
spin_lock(&last_pool->lock);
worker = find_worker_executing_work(last_pool, work);
if (worker && worker->current_pwq->wq == wq) {
pwq = worker->current_pwq;
} else {
/* meh... not running there, queue here */
spin_unlock(&last_pool->lock);
spin_lock(&pwq->pool->lock);
}
} else {
spin_lock(&pwq->pool->lock);
}
/*
* pwq is determined and locked. For unbound pools, we could have
* raced with pwq release and it could already be dead. If its
* refcnt is zero, repeat pwq selection. Note that pwqs never die
* without another pwq replacing it in the numa_pwq_tbl or while
* work items are executing on it, so the retrying is guaranteed to
* make forward-progress.
*/
if (unlikely(!pwq->refcnt)) {
if (wq->flags & WQ_UNBOUND) {
spin_unlock(&pwq->pool->lock);
cpu_relax();
goto retry;
}
/* oops */
WARN_ONCE(true, "workqueue: per-cpu pwq for %s on cpu%d has 0 refcnt",
wq->name, cpu);
}
/* pwq determined, queue */
trace_workqueue_queue_work(req_cpu, pwq, work);
if (WARN_ON(!list_empty(&work->entry))) {
spin_unlock(&pwq->pool->lock);
return;
}
pwq->nr_in_flight[pwq->work_color]++;
work_flags = work_color_to_flags(pwq->work_color);
if (likely(pwq->nr_active < pwq->max_active)) {
trace_workqueue_activate_work(work);
pwq->nr_active++;
worklist = &pwq->pool->worklist;
if (list_empty(worklist))
pwq->pool->watchdog_ts = jiffies;
} else {
work_flags |= WORK_STRUCT_DELAYED;
worklist = &pwq->delayed_works;
}
insert_work(pwq, work, worklist, work_flags);
spin_unlock(&pwq->pool->lock);
}
/**
* queue_work_on - queue work on specific cpu
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @work: work to queue
*
* We queue the work to a specific CPU, the caller must ensure it
* can't go away.
*
* Return: %false if @work was already on a queue, %true otherwise.
*/
bool queue_work_on(int cpu, struct workqueue_struct *wq,
struct work_struct *work)
{
bool ret = false;
unsigned long flags;
local_irq_save(flags);
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
__queue_work(cpu, wq, work);
ret = true;
}
local_irq_restore(flags);
return ret;
}
EXPORT_SYMBOL(queue_work_on);
void delayed_work_timer_fn(unsigned long __data)
{
struct delayed_work *dwork = (struct delayed_work *)__data;
/* should have been called from irqsafe timer with irq already off */
__queue_work(dwork->cpu, dwork->wq, &dwork->work);
}
EXPORT_SYMBOL(delayed_work_timer_fn);
static void __queue_delayed_work(int cpu, struct workqueue_struct *wq,
struct delayed_work *dwork, unsigned long delay)
{
struct timer_list *timer = &dwork->timer;
struct work_struct *work = &dwork->work;
WARN_ON_ONCE(!wq);
WARN_ON_ONCE(timer->function != delayed_work_timer_fn ||
timer->data != (unsigned long)dwork);
WARN_ON_ONCE(timer_pending(timer));
WARN_ON_ONCE(!list_empty(&work->entry));
/*
* If @delay is 0, queue @dwork->work immediately. This is for
* both optimization and correctness. The earliest @timer can
* expire is on the closest next tick and delayed_work users depend
* on that there's no such delay when @delay is 0.
*/
if (!delay) {
__queue_work(cpu, wq, &dwork->work);
return;
}
dwork->wq = wq;
dwork->cpu = cpu;
timer->expires = jiffies + delay;
if (unlikely(cpu != WORK_CPU_UNBOUND))
add_timer_on(timer, cpu);
else
add_timer(timer);
}
/**
* queue_delayed_work_on - queue work on specific CPU after delay
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @dwork: work to queue
* @delay: number of jiffies to wait before queueing
*
* Return: %false if @work was already on a queue, %true otherwise. If
* @delay is zero and @dwork is idle, it will be scheduled for immediate
* execution.
*/
bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
struct delayed_work *dwork, unsigned long delay)
{
struct work_struct *work = &dwork->work;
bool ret = false;
unsigned long flags;
/* read the comment in __queue_work() */
local_irq_save(flags);
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
__queue_delayed_work(cpu, wq, dwork, delay);
ret = true;
}
local_irq_restore(flags);
return ret;
}
EXPORT_SYMBOL(queue_delayed_work_on);
/**
* mod_delayed_work_on - modify delay of or queue a delayed work on specific CPU
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @dwork: work to queue
* @delay: number of jiffies to wait before queueing
*
* If @dwork is idle, equivalent to queue_delayed_work_on(); otherwise,
* modify @dwork's timer so that it expires after @delay. If @delay is
* zero, @work is guaranteed to be scheduled immediately regardless of its
* current state.
*
* Return: %false if @dwork was idle and queued, %true if @dwork was
* pending and its timer was modified.
*
* This function is safe to call from any context including IRQ handler.
* See try_to_grab_pending() for details.
*/
bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
struct delayed_work *dwork, unsigned long delay)
{
unsigned long flags;
int ret;
do {
ret = try_to_grab_pending(&dwork->work, true, &flags);
} while (unlikely(ret == -EAGAIN));
if (likely(ret >= 0)) {
__queue_delayed_work(cpu, wq, dwork, delay);
local_irq_restore(flags);
}
/* -ENOENT from try_to_grab_pending() becomes %true */
return ret;
}
EXPORT_SYMBOL_GPL(mod_delayed_work_on);
/**
* worker_enter_idle - enter idle state
* @worker: worker which is entering idle state
*
* @worker is entering idle state. Update stats and idle timer if
* necessary.
*
* LOCKING:
* spin_lock_irq(pool->lock).
*/
static void worker_enter_idle(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
if (WARN_ON_ONCE(worker->flags & WORKER_IDLE) ||
WARN_ON_ONCE(!list_empty(&worker->entry) &&
(worker->hentry.next || worker->hentry.pprev)))
return;
/* can't use worker_set_flags(), also called from create_worker() */
worker->flags |= WORKER_IDLE;
pool->nr_idle++;
worker->last_active = jiffies;
/* idle_list is LIFO */
list_add(&worker->entry, &pool->idle_list);
if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
/*
* Sanity check nr_running. Because wq_unbind_fn() releases
* pool->lock between setting %WORKER_UNBOUND and zapping
* nr_running, the warning may trigger spuriously. Check iff
* unbind is not in progress.
*/
WARN_ON_ONCE(!(pool->flags & POOL_DISASSOCIATED) &&
pool->nr_workers == pool->nr_idle &&
atomic_read(&pool->nr_running));
}
/**
* worker_leave_idle - leave idle state
* @worker: worker which is leaving idle state
*
* @worker is leaving idle state. Update stats.
*
* LOCKING:
* spin_lock_irq(pool->lock).
*/
static void worker_leave_idle(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
if (WARN_ON_ONCE(!(worker->flags & WORKER_IDLE)))
return;
worker_clr_flags(worker, WORKER_IDLE);
pool->nr_idle--;
list_del_init(&worker->entry);
}
static struct worker *alloc_worker(int node)
{
struct worker *worker;
worker = kzalloc_node(sizeof(*worker), GFP_KERNEL, node);
if (worker) {
INIT_LIST_HEAD(&worker->entry);
INIT_LIST_HEAD(&worker->scheduled);
INIT_LIST_HEAD(&worker->node);
/* on creation a worker is in !idle && prep state */
worker->flags = WORKER_PREP;
}
return worker;
}
/**
* worker_attach_to_pool() - attach a worker to a pool
* @worker: worker to be attached
* @pool: the target pool
*
* Attach @worker to @pool. Once attached, the %WORKER_UNBOUND flag and
* cpu-binding of @worker are kept coordinated with the pool across
* cpu-[un]hotplugs.
*/
static void worker_attach_to_pool(struct worker *worker,
struct worker_pool *pool)
{
mutex_lock(&pool->attach_mutex);
/*
* set_cpus_allowed_ptr() will fail if the cpumask doesn't have any
* online CPUs. It'll be re-applied when any of the CPUs come up.
*/
set_cpus_allowed_ptr(worker->task, pool->attrs->cpumask);
/*
* The pool->attach_mutex ensures %POOL_DISASSOCIATED remains
* stable across this function. See the comments above the
* flag definition for details.
*/
if (pool->flags & POOL_DISASSOCIATED)
worker->flags |= WORKER_UNBOUND;
list_add_tail(&worker->node, &pool->workers);
mutex_unlock(&pool->attach_mutex);
}
/**
* worker_detach_from_pool() - detach a worker from its pool
* @worker: worker which is attached to its pool
* @pool: the pool @worker is attached to
*
* Undo the attaching which had been done in worker_attach_to_pool(). The
* caller worker shouldn't access to the pool after detached except it has
* other reference to the pool.
*/
static void worker_detach_from_pool(struct worker *worker,
struct worker_pool *pool)
{
struct completion *detach_completion = NULL;
mutex_lock(&pool->attach_mutex);
list_del(&worker->node);
if (list_empty(&pool->workers))
detach_completion = pool->detach_completion;
mutex_unlock(&pool->attach_mutex);
/* clear leftover flags without pool->lock after it is detached */
worker->flags &= ~(WORKER_UNBOUND | WORKER_REBOUND);
if (detach_completion)
complete(detach_completion);
}
/**
* create_worker - create a new workqueue worker
* @pool: pool the new worker will belong to
*
* Create and start a new worker which is attached to @pool.
*
* CONTEXT:
* Might sleep. Does GFP_KERNEL allocations.
*
* Return:
* Pointer to the newly created worker.
*/
static struct worker *create_worker(struct worker_pool *pool)
{
struct worker *worker = NULL;
int id = -1;
char id_buf[16];
/* ID is needed to determine kthread name */
id = ida_simple_get(&pool->worker_ida, 0, 0, GFP_KERNEL);
if (id < 0)
goto fail;
worker = alloc_worker(pool->node);
if (!worker)
goto fail;
worker->pool = pool;
worker->id = id;
if (pool->cpu >= 0)
snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id,
pool->attrs->nice < 0 ? "H" : "");
else
snprintf(id_buf, sizeof(id_buf), "u%d:%d", pool->id, id);
worker->task = kthread_create_on_node(worker_thread, worker, pool->node,
"kworker/%s", id_buf);
if (IS_ERR(worker->task))
goto fail;
set_user_nice(worker->task, pool->attrs->nice);
kthread_bind_mask(worker->task, pool->attrs->cpumask);
/* successful, attach the worker to the pool */
worker_attach_to_pool(worker, pool);
/* start the newly created worker */
spin_lock_irq(&pool->lock);
worker->pool->nr_workers++;
worker_enter_idle(worker);
wake_up_process(worker->task);
spin_unlock_irq(&pool->lock);
return worker;
fail:
if (id >= 0)
ida_simple_remove(&pool->worker_ida, id);
kfree(worker);
return NULL;
}
/**
* destroy_worker - destroy a workqueue worker
* @worker: worker to be destroyed
*
* Destroy @worker and adjust @pool stats accordingly. The worker should
* be idle.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void destroy_worker(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
lockdep_assert_held(&pool->lock);
/* sanity check frenzy */
if (WARN_ON(worker->current_work) ||
WARN_ON(!list_empty(&worker->scheduled)) ||
WARN_ON(!(worker->flags & WORKER_IDLE)))
return;
pool->nr_workers--;
pool->nr_idle--;
list_del_init(&worker->entry);
worker->flags |= WORKER_DIE;
wake_up_process(worker->task);
}
static void idle_worker_timeout(unsigned long __pool)
{
struct worker_pool *pool = (void *)__pool;
spin_lock_irq(&pool->lock);
while (too_many_workers(pool)) {
struct worker *worker;
unsigned long expires;
/* idle_list is kept in LIFO order, check the last one */
worker = list_entry(pool->idle_list.prev, struct worker, entry);
expires = worker->last_active + IDLE_WORKER_TIMEOUT;
if (time_before(jiffies, expires)) {
mod_timer(&pool->idle_timer, expires);
break;
}
destroy_worker(worker);
}
spin_unlock_irq(&pool->lock);
}
static void send_mayday(struct work_struct *work)
{
struct pool_workqueue *pwq = get_work_pwq(work);
struct workqueue_struct *wq = pwq->wq;
lockdep_assert_held(&wq_mayday_lock);
if (!wq->rescuer)
return;
/* mayday mayday mayday */
if (list_empty(&pwq->mayday_node)) {
/*
* If @pwq is for an unbound wq, its base ref may be put at
* any time due to an attribute change. Pin @pwq until the
* rescuer is done with it.
*/
get_pwq(pwq);
list_add_tail(&pwq->mayday_node, &wq->maydays);
wake_up_process(wq->rescuer->task);
}
}
static void pool_mayday_timeout(unsigned long __pool)
{
struct worker_pool *pool = (void *)__pool;
struct work_struct *work;
spin_lock_irq(&pool->lock);
spin_lock(&wq_mayday_lock); /* for wq->maydays */
if (need_to_create_worker(pool)) {
/*
* We've been trying to create a new worker but
* haven't been successful. We might be hitting an
* allocation deadlock. Send distress signals to
* rescuers.
*/
list_for_each_entry(work, &pool->worklist, entry)
send_mayday(work);
}
spin_unlock(&wq_mayday_lock);
spin_unlock_irq(&pool->lock);
mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INTERVAL);
}
/**
* maybe_create_worker - create a new worker if necessary
* @pool: pool to create a new worker for
*
* Create a new worker for @pool if necessary. @pool is guaranteed to
* have at least one idle worker on return from this function. If
* creating a new worker takes longer than MAYDAY_INTERVAL, mayday is
* sent to all rescuers with works scheduled on @pool to resolve
* possible allocation deadlock.
*
* On return, need_to_create_worker() is guaranteed to be %false and
* may_start_working() %true.
*
* LOCKING:
* spin_lock_irq(pool->lock) which may be released and regrabbed
* multiple times. Does GFP_KERNEL allocations. Called only from
* manager.
*/
static void maybe_create_worker(struct worker_pool *pool)
__releases(&pool->lock)
__acquires(&pool->lock)
{
restart:
spin_unlock_irq(&pool->lock);
/* if we don't make progress in MAYDAY_INITIAL_TIMEOUT, call for help */
mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INITIAL_TIMEOUT);
while (true) {
if (create_worker(pool) || !need_to_create_worker(pool))
break;
schedule_timeout_interruptible(CREATE_COOLDOWN);
if (!need_to_create_worker(pool))
break;
}
del_timer_sync(&pool->mayday_timer);
spin_lock_irq(&pool->lock);
/*
* This is necessary even after a new worker was just successfully
* created as @pool->lock was dropped and the new worker might have
* already become busy.
*/
if (need_to_create_worker(pool))
goto restart;
}
/**
* manage_workers - manage worker pool
* @worker: self
*
* Assume the manager role and manage the worker pool @worker belongs
* to. At any given time, there can be only zero or one manager per
* pool. The exclusion is handled automatically by this function.
*
* The caller can safely start processing works on false return. On
* true return, it's guaranteed that need_to_create_worker() is false
* and may_start_working() is true.
*
* CONTEXT:
* spin_lock_irq(pool->lock) which may be released and regrabbed
* multiple times. Does GFP_KERNEL allocations.
*
* Return:
* %false if the pool doesn't need management and the caller can safely
* start processing works, %true if management function was performed and
* the conditions that the caller verified before calling the function may
* no longer be true.
*/
static bool manage_workers(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
/*
* Anyone who successfully grabs manager_arb wins the arbitration
* and becomes the manager. mutex_trylock() on pool->manager_arb
* failure while holding pool->lock reliably indicates that someone
* else is managing the pool and the worker which failed trylock
* can proceed to executing work items. This means that anyone
* grabbing manager_arb is responsible for actually performing
* manager duties. If manager_arb is grabbed and released without
* actual management, the pool may stall indefinitely.
*/
if (!mutex_trylock(&pool->manager_arb))
return false;
pool->manager = worker;
maybe_create_worker(pool);
pool->manager = NULL;
mutex_unlock(&pool->manager_arb);
return true;
}
/**
* process_one_work - process single work
* @worker: self
* @work: work to process
*
* Process @work. This function contains all the logics necessary to
* process a single work including synchronization against and
* interaction with other workers on the same cpu, queueing and
* flushing. As long as context requirement is met, any worker can
* call this function to process a work.
*
* CONTEXT:
* spin_lock_irq(pool->lock) which is released and regrabbed.
*/
static void process_one_work(struct worker *worker, struct work_struct *work)
__releases(&pool->lock)
__acquires(&pool->lock)
{
struct pool_workqueue *pwq = get_work_pwq(work);
struct worker_pool *pool = worker->pool;
bool cpu_intensive = pwq->wq->flags & WQ_CPU_INTENSIVE;
int work_color;
struct worker *collision;
#ifdef CONFIG_LOCKDEP
/*
* It is permissible to free the struct work_struct from
* inside the function that is called from it, this we need to
* take into account for lockdep too. To avoid bogus "held
* lock freed" warnings as well as problems when looking into
* work->lockdep_map, make a copy and use that here.
*/
struct lockdep_map lockdep_map;
lockdep_copy_map(&lockdep_map, &work->lockdep_map);
#endif
/* ensure we're on the correct CPU */
WARN_ON_ONCE(!(pool->flags & POOL_DISASSOCIATED) &&
raw_smp_processor_id() != pool->cpu);
/*
* A single work shouldn't be executed concurrently by
* multiple workers on a single cpu. Check whether anyone is
* already processing the work. If so, defer the work to the
* currently executing one.
*/
collision = find_worker_executing_work(pool, work);
if (unlikely(collision)) {
move_linked_works(work, &collision->scheduled, NULL);
return;
}
/* claim and dequeue */
debug_work_deactivate(work);
hash_add(pool->busy_hash, &worker->hentry, (unsigned long)work);
worker->current_work = work;
worker->current_func = work->func;
worker->current_pwq = pwq;
work_color = get_work_color(work);
list_del_init(&work->entry);
/*
* CPU intensive works don't participate in concurrency management.
* They're the scheduler's responsibility. This takes @worker out
* of concurrency management and the next code block will chain
* execution of the pending work items.
*/
if (unlikely(cpu_intensive))
worker_set_flags(worker, WORKER_CPU_INTENSIVE);
/*
* Wake up another worker if necessary. The condition is always
* false for normal per-cpu workers since nr_running would always
* be >= 1 at this point. This is used to chain execution of the
* pending work items for WORKER_NOT_RUNNING workers such as the
* UNBOUND and CPU_INTENSIVE ones.
*/
if (need_more_worker(pool))
wake_up_worker(pool);
/*
* Record the last pool and clear PENDING which should be the last
* update to @work. Also, do this inside @pool->lock so that
* PENDING and queued state changes happen together while IRQ is
* disabled.
*/
set_work_pool_and_clear_pending(work, pool->id);
spin_unlock_irq(&pool->lock);
lock_map_acquire(&pwq->wq->lockdep_map);
lock_map_acquire(&lockdep_map);
/*
* Strictly speaking we should mark the invariant state without holding
* any locks, that is, before these two lock_map_acquire()'s.
*
* However, that would result in:
*
* A(W1)
* WFC(C)
* A(W1)
* C(C)
*
* Which would create W1->C->W1 dependencies, even though there is no
* actual deadlock possible. There are two solutions, using a
* read-recursive acquire on the work(queue) 'locks', but this will then
* hit the lockdep limitation on recursive locks, or simply discard
* these locks.
*
* AFAICT there is no possible deadlock scenario between the
* flush_work() and complete() primitives (except for single-threaded
* workqueues), so hiding them isn't a problem.
*/
lockdep_invariant_state(true);
trace_workqueue_execute_start(work);
worker->current_func(work);
/*
* While we must be careful to not use "work" after this, the trace
* point will only record its address.
*/
trace_workqueue_execute_end(work);
lock_map_release(&lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
if (unlikely(in_atomic() || lockdep_depth(current) > 0)) {
pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n"
" last function: %pf\n",
current->comm, preempt_count(), task_pid_nr(current),
worker->current_func);
debug_show_held_locks(current);
dump_stack();
}
/*
* The following prevents a kworker from hogging CPU on !PREEMPT
* kernels, where a requeueing work item waiting for something to
* happen could deadlock with stop_machine as such work item could
* indefinitely requeue itself while all other CPUs are trapped in
* stop_machine. At the same time, report a quiescent RCU state so
* the same condition doesn't freeze RCU.
*/
cond_resched_rcu_qs();
spin_lock_irq(&pool->lock);
/* clear cpu intensive status */
if (unlikely(cpu_intensive))
worker_clr_flags(worker, WORKER_CPU_INTENSIVE);
/* we're done with it, release */
hash_del(&worker->hentry);
worker->current_work = NULL;
worker->current_func = NULL;
worker->current_pwq = NULL;
worker->desc_valid = false;
pwq_dec_nr_in_flight(pwq, work_color);
}
/**
* process_scheduled_works - process scheduled works
* @worker: self
*
* Process all scheduled works. Please note that the scheduled list
* may change while processing a work, so this function repeatedly
* fetches a work from the top and executes it.
*
* CONTEXT:
* spin_lock_irq(pool->lock) which may be released and regrabbed
* multiple times.
*/
static void process_scheduled_works(struct worker *worker)
{
while (!list_empty(&worker->scheduled)) {
struct work_struct *work = list_first_entry(&worker->scheduled,
struct work_struct, entry);
process_one_work(worker, work);
}
}
/**
* worker_thread - the worker thread function
* @__worker: self
*
* The worker thread function. All workers belong to a worker_pool -
* either a per-cpu one or dynamic unbound one. These workers process all
* work items regardless of their specific target workqueue. The only
* exception is work items which belong to workqueues with a rescuer which
* will be explained in rescuer_thread().
*
* Return: 0
*/
static int worker_thread(void *__worker)
{
struct worker *worker = __worker;
struct worker_pool *pool = worker->pool;
/* tell the scheduler that this is a workqueue worker */
worker->task->flags |= PF_WQ_WORKER;
woke_up:
spin_lock_irq(&pool->lock);
/* am I supposed to die? */
if (unlikely(worker->flags & WORKER_DIE)) {
spin_unlock_irq(&pool->lock);
WARN_ON_ONCE(!list_empty(&worker->entry));
worker->task->flags &= ~PF_WQ_WORKER;
set_task_comm(worker->task, "kworker/dying");
ida_simple_remove(&pool->worker_ida, worker->id);
worker_detach_from_pool(worker, pool);
kfree(worker);
return 0;
}
worker_leave_idle(worker);
recheck:
/* no more worker necessary? */
if (!need_more_worker(pool))
goto sleep;
/* do we need to manage? */
if (unlikely(!may_start_working(pool)) && manage_workers(worker))
goto recheck;
/*
* ->scheduled list can only be filled while a worker is
* preparing to process a work or actually processing it.
* Make sure nobody diddled with it while I was sleeping.
*/
WARN_ON_ONCE(!list_empty(&worker->scheduled));
/*
* Finish PREP stage. We're guaranteed to have at least one idle
* worker or that someone else has already assumed the manager
* role. This is where @worker starts participating in concurrency
* management if applicable and concurrency management is restored
* after being rebound. See rebind_workers() for details.
*/
worker_clr_flags(worker, WORKER_PREP | WORKER_REBOUND);
do {
struct work_struct *work =
list_first_entry(&pool->worklist,
struct work_struct, entry);
pool->watchdog_ts = jiffies;
if (likely(!(*work_data_bits(work) & WORK_STRUCT_LINKED))) {
/* optimization path, not strictly necessary */
process_one_work(worker, work);
if (unlikely(!list_empty(&worker->scheduled)))
process_scheduled_works(worker);
} else {
move_linked_works(work, &worker->scheduled, NULL);
process_scheduled_works(worker);
}
} while (keep_working(pool));
worker_set_flags(worker, WORKER_PREP);
sleep:
/*
* pool->lock is held and there's no work to process and no need to
* manage, sleep. Workers are woken up only while holding
* pool->lock or from local cpu, so setting the current state
* before releasing pool->lock is enough to prevent losing any
* event.
*/
worker_enter_idle(worker);
__set_current_state(TASK_IDLE);
spin_unlock_irq(&pool->lock);
schedule();
goto woke_up;
}
/**
* rescuer_thread - the rescuer thread function
* @__rescuer: self
*
* Workqueue rescuer thread function. There's one rescuer for each
* workqueue which has WQ_MEM_RECLAIM set.
*
* Regular work processing on a pool may block trying to create a new
* worker which uses GFP_KERNEL allocation which has slight chance of
* developing into deadlock if some works currently on the same queue
* need to be processed to satisfy the GFP_KERNEL allocation. This is
* the problem rescuer solves.
*
* When such condition is possible, the pool summons rescuers of all
* workqueues which have works queued on the pool and let them process
* those works so that forward progress can be guaranteed.
*
* This should happen rarely.
*
* Return: 0
*/
static int rescuer_thread(void *__rescuer)
{
struct worker *rescuer = __rescuer;
struct workqueue_struct *wq = rescuer->rescue_wq;
struct list_head *scheduled = &rescuer->scheduled;
bool should_stop;
set_user_nice(current, RESCUER_NICE_LEVEL);
/*
* Mark rescuer as worker too. As WORKER_PREP is never cleared, it
* doesn't participate in concurrency management.
*/
rescuer->task->flags |= PF_WQ_WORKER;
repeat:
set_current_state(TASK_IDLE);
/*
* By the time the rescuer is requested to stop, the workqueue
* shouldn't have any work pending, but @wq->maydays may still have
* pwq(s) queued. This can happen by non-rescuer workers consuming
* all the work items before the rescuer got to them. Go through
* @wq->maydays processing before acting on should_stop so that the
* list is always empty on exit.
*/
should_stop = kthread_should_stop();
/* see whether any pwq is asking for help */
spin_lock_irq(&wq_mayday_lock);
while (!list_empty(&wq->maydays)) {
struct pool_workqueue *pwq = list_first_entry(&wq->maydays,
struct pool_workqueue, mayday_node);
struct worker_pool *pool = pwq->pool;
struct work_struct *work, *n;
bool first = true;
__set_current_state(TASK_RUNNING);
list_del_init(&pwq->mayday_node);
spin_unlock_irq(&wq_mayday_lock);
worker_attach_to_pool(rescuer, pool);
spin_lock_irq(&pool->lock);
rescuer->pool = pool;
/*
* Slurp in all works issued via this workqueue and
* process'em.
*/
WARN_ON_ONCE(!list_empty(scheduled));
list_for_each_entry_safe(work, n, &pool->worklist, entry) {
if (get_work_pwq(work) == pwq) {
if (first)
pool->watchdog_ts = jiffies;
move_linked_works(work, scheduled, &n);
}
first = false;
}
if (!list_empty(scheduled)) {
process_scheduled_works(rescuer);
/*
* The above execution of rescued work items could
* have created more to rescue through
* pwq_activate_first_delayed() or chained
* queueing. Let's put @pwq back on mayday list so
* that such back-to-back work items, which may be
* being used to relieve memory pressure, don't
* incur MAYDAY_INTERVAL delay inbetween.
*/
if (need_to_create_worker(pool)) {
spin_lock(&wq_mayday_lock);
get_pwq(pwq);
list_move_tail(&pwq->mayday_node, &wq->maydays);
spin_unlock(&wq_mayday_lock);
}
}
/*
* Put the reference grabbed by send_mayday(). @pool won't
* go away while we're still attached to it.
*/
put_pwq(pwq);
/*
* Leave this pool. If need_more_worker() is %true, notify a
* regular worker; otherwise, we end up with 0 concurrency
* and stalling the execution.
*/
if (need_more_worker(pool))
wake_up_worker(pool);
rescuer->pool = NULL;
spin_unlock_irq(&pool->lock);
worker_detach_from_pool(rescuer, pool);
spin_lock_irq(&wq_mayday_lock);
}
spin_unlock_irq(&wq_mayday_lock);
if (should_stop) {
__set_current_state(TASK_RUNNING);
rescuer->task->flags &= ~PF_WQ_WORKER;
return 0;
}
/* rescuers should never participate in concurrency management */
WARN_ON_ONCE(!(rescuer->flags & WORKER_NOT_RUNNING));
schedule();
goto repeat;
}
/**
* check_flush_dependency - check for flush dependency sanity
* @target_wq: workqueue being flushed
* @target_work: work item being flushed (NULL for workqueue flushes)
*
* %current is trying to flush the whole @target_wq or @target_work on it.
* If @target_wq doesn't have %WQ_MEM_RECLAIM, verify that %current is not
* reclaiming memory or running on a workqueue which doesn't have
* %WQ_MEM_RECLAIM as that can break forward-progress guarantee leading to
* a deadlock.
*/
static void check_flush_dependency(struct workqueue_struct *target_wq,
struct work_struct *target_work)
{
work_func_t target_func = target_work ? target_work->func : NULL;
struct worker *worker;
if (target_wq->flags & WQ_MEM_RECLAIM)
return;
worker = current_wq_worker();
WARN_ONCE(current->flags & PF_MEMALLOC,
"workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%pf",
current->pid, current->comm, target_wq->name, target_func);
WARN_ONCE(worker && ((worker->current_pwq->wq->flags &
(WQ_MEM_RECLAIM | __WQ_LEGACY)) == WQ_MEM_RECLAIM),
"workqueue: WQ_MEM_RECLAIM %s:%pf is flushing !WQ_MEM_RECLAIM %s:%pf",
worker->current_pwq->wq->name, worker->current_func,
target_wq->name, target_func);
}
struct wq_barrier {
struct work_struct work;
struct completion done;
struct task_struct *task; /* purely informational */
};
static void wq_barrier_func(struct work_struct *work)
{
struct wq_barrier *barr = container_of(work, struct wq_barrier, work);
complete(&barr->done);
}
/**
* insert_wq_barrier - insert a barrier work
* @pwq: pwq to insert barrier into
* @barr: wq_barrier to insert
* @target: target work to attach @barr to
* @worker: worker currently executing @target, NULL if @target is not executing
*
* @barr is linked to @target such that @barr is completed only after
* @target finishes execution. Please note that the ordering
* guarantee is observed only with respect to @target and on the local
* cpu.
*
* Currently, a queued barrier can't be canceled. This is because
* try_to_grab_pending() can't determine whether the work to be
* grabbed is at the head of the queue and thus can't clear LINKED
* flag of the previous work while there must be a valid next work
* after a work with LINKED flag set.
*
* Note that when @worker is non-NULL, @target may be modified
* underneath us, so we can't reliably determine pwq from @target.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void insert_wq_barrier(struct pool_workqueue *pwq,
struct wq_barrier *barr,
struct work_struct *target, struct worker *worker)
{
struct list_head *head;
unsigned int linked = 0;
/*
* debugobject calls are safe here even with pool->lock locked
* as we know for sure that this will not trigger any of the
* checks and call back into the fixup functions where we
* might deadlock.
*/
INIT_WORK_ONSTACK(&barr->work, wq_barrier_func);
__set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&barr->work));
/*
* Explicitly init the crosslock for wq_barrier::done, make its lock
* key a subkey of the corresponding work. As a result we won't
* build a dependency between wq_barrier::done and unrelated work.
*/
lockdep_init_map_crosslock((struct lockdep_map *)&barr->done.map,
"(complete)wq_barr::done",
target->lockdep_map.key, 1);
__init_completion(&barr->done);
barr->task = current;
/*
* If @target is currently being executed, schedule the
* barrier to the worker; otherwise, put it after @target.
*/
if (worker)
head = worker->scheduled.next;
else {
unsigned long *bits = work_data_bits(target);
head = target->entry.next;
/* there can already be other linked works, inherit and set */
linked = *bits & WORK_STRUCT_LINKED;
__set_bit(WORK_STRUCT_LINKED_BIT, bits);
}
debug_work_activate(&barr->work);
insert_work(pwq, &barr->work, head,
work_color_to_flags(WORK_NO_COLOR) | linked);
}
/**
* flush_workqueue_prep_pwqs - prepare pwqs for workqueue flushing
* @wq: workqueue being flushed
* @flush_color: new flush color, < 0 for no-op
* @work_color: new work color, < 0 for no-op
*
* Prepare pwqs for workqueue flushing.
*
* If @flush_color is non-negative, flush_color on all pwqs should be
* -1. If no pwq has in-flight commands at the specified color, all
* pwq->flush_color's stay at -1 and %false is returned. If any pwq
* has in flight commands, its pwq->flush_color is set to
* @flush_color, @wq->nr_pwqs_to_flush is updated accordingly, pwq
* wakeup logic is armed and %true is returned.
*
* The caller should have initialized @wq->first_flusher prior to
* calling this function with non-negative @flush_color. If
* @flush_color is negative, no flush color update is done and %false
* is returned.
*
* If @work_color is non-negative, all pwqs should have the same
* work_color which is previous to @work_color and all will be
* advanced to @work_color.
*
* CONTEXT:
* mutex_lock(wq->mutex).
*
* Return:
* %true if @flush_color >= 0 and there's something to flush. %false
* otherwise.
*/
static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
int flush_color, int work_color)
{
bool wait = false;
struct pool_workqueue *pwq;
if (flush_color >= 0) {
WARN_ON_ONCE(atomic_read(&wq->nr_pwqs_to_flush));
atomic_set(&wq->nr_pwqs_to_flush, 1);
}
for_each_pwq(pwq, wq) {
struct worker_pool *pool = pwq->pool;
spin_lock_irq(&pool->lock);
if (flush_color >= 0) {
WARN_ON_ONCE(pwq->flush_color != -1);
if (pwq->nr_in_flight[flush_color]) {
pwq->flush_color = flush_color;
atomic_inc(&wq->nr_pwqs_to_flush);
wait = true;
}
}
if (work_color >= 0) {
WARN_ON_ONCE(work_color != work_next_color(pwq->work_color));
pwq->work_color = work_color;
}
spin_unlock_irq(&pool->lock);
}
if (flush_color >= 0 && atomic_dec_and_test(&wq->nr_pwqs_to_flush))
complete(&wq->first_flusher->done);
return wait;
}
/**
* flush_workqueue - ensure that any scheduled work has run to completion.
* @wq: workqueue to flush
*
* This function sleeps until all work items which were queued on entry
* have finished execution, but it is not livelocked by new incoming ones.
*/
void flush_workqueue(struct workqueue_struct *wq)
{
struct wq_flusher this_flusher = {
.list = LIST_HEAD_INIT(this_flusher.list),
.flush_color = -1,
.done = COMPLETION_INITIALIZER_ONSTACK(this_flusher.done),
};
int next_color;
if (WARN_ON(!wq_online))
return;
lock_map_acquire(&wq->lockdep_map);
lock_map_release(&wq->lockdep_map);
mutex_lock(&wq->mutex);
/*
* Start-to-wait phase
*/
next_color = work_next_color(wq->work_color);
if (next_color != wq->flush_color) {
/*
* Color space is not full. The current work_color
* becomes our flush_color and work_color is advanced
* by one.
*/
WARN_ON_ONCE(!list_empty(&wq->flusher_overflow));
this_flusher.flush_color = wq->work_color;
wq->work_color = next_color;
if (!wq->first_flusher) {
/* no flush in progress, become the first flusher */
WARN_ON_ONCE(wq->flush_color != this_flusher.flush_color);
wq->first_flusher = &this_flusher;
if (!flush_workqueue_prep_pwqs(wq, wq->flush_color,
wq->work_color)) {
/* nothing to flush, done */
wq->flush_color = next_color;
wq->first_flusher = NULL;
goto out_unlock;
}
} else {
/* wait in queue */
WARN_ON_ONCE(wq->flush_color == this_flusher.flush_color);
list_add_tail(&this_flusher.list, &wq->flusher_queue);
flush_workqueue_prep_pwqs(wq, -1, wq->work_color);
}
} else {
/*
* Oops, color space is full, wait on overflow queue.
* The next flush completion will assign us
* flush_color and transfer to flusher_queue.
*/
list_add_tail(&this_flusher.list, &wq->flusher_overflow);
}
check_flush_dependency(wq, NULL);
mutex_unlock(&wq->mutex);
wait_for_completion(&this_flusher.done);
/*
* Wake-up-and-cascade phase
*
* First flushers are responsible for cascading flushes and
* handling overflow. Non-first flushers can simply return.
*/
if (wq->first_flusher != &this_flusher)
return;
mutex_lock(&wq->mutex);
/* we might have raced, check again with mutex held */
if (wq->first_flusher != &this_flusher)
goto out_unlock;
wq->first_flusher = NULL;
WARN_ON_ONCE(!list_empty(&this_flusher.list));
WARN_ON_ONCE(wq->flush_color != this_flusher.flush_color);
while (true) {
struct wq_flusher *next, *tmp;
/* complete all the flushers sharing the current flush color */
list_for_each_entry_safe(next, tmp, &wq->flusher_queue, list) {
if (next->flush_color != wq->flush_color)
break;
list_del_init(&next->list);
complete(&next->done);
}
WARN_ON_ONCE(!list_empty(&wq->flusher_overflow) &&
wq->flush_color != work_next_color(wq->work_color));
/* this flush_color is finished, advance by one */
wq->flush_color = work_next_color(wq->flush_color);
/* one color has been freed, handle overflow queue */
if (!list_empty(&wq->flusher_overflow)) {
/*
* Assign the same color to all overflowed
* flushers, advance work_color and append to
* flusher_queue. This is the start-to-wait
* phase for these overflowed flushers.
*/
list_for_each_entry(tmp, &wq->flusher_overflow, list)
tmp->flush_color = wq->work_color;
wq->work_color = work_next_color(wq->work_color);
list_splice_tail_init(&wq->flusher_overflow,
&wq->flusher_queue);
flush_workqueue_prep_pwqs(wq, -1, wq->work_color);
}
if (list_empty(&wq->flusher_queue)) {
WARN_ON_ONCE(wq->flush_color != wq->work_color);
break;
}
/*
* Need to flush more colors. Make the next flusher
* the new first flusher and arm pwqs.
*/
WARN_ON_ONCE(wq->flush_color == wq->work_color);
WARN_ON_ONCE(wq->flush_color != next->flush_color);
list_del_init(&next->list);
wq->first_flusher = next;
if (flush_workqueue_prep_pwqs(wq, wq->flush_color, -1))
break;
/*
* Meh... this color is already done, clear first
* flusher and repeat cascading.
*/
wq->first_flusher = NULL;
}
out_unlock:
mutex_unlock(&wq->mutex);
}
EXPORT_SYMBOL(flush_workqueue);
/**
* drain_workqueue - drain a workqueue
* @wq: workqueue to drain
*
* Wait until the workqueue becomes empty. While draining is in progress,
* only chain queueing is allowed. IOW, only currently pending or running
* work items on @wq can queue further work items on it. @wq is flushed
* repeatedly until it becomes empty. The number of flushing is determined
* by the depth of chaining and should be relatively short. Whine if it
* takes too long.
*/
void drain_workqueue(struct workqueue_struct *wq)
{
unsigned int flush_cnt = 0;
struct pool_workqueue *pwq;
/*
* __queue_work() needs to test whether there are drainers, is much
* hotter than drain_workqueue() and already looks at @wq->flags.
* Use __WQ_DRAINING so that queue doesn't have to check nr_drainers.
*/
mutex_lock(&wq->mutex);
if (!wq->nr_drainers++)
wq->flags |= __WQ_DRAINING;
mutex_unlock(&wq->mutex);
reflush:
flush_workqueue(wq);
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq) {
bool drained;
spin_lock_irq(&pwq->pool->lock);
drained = !pwq->nr_active && list_empty(&pwq->delayed_works);
spin_unlock_irq(&pwq->pool->lock);
if (drained)
continue;
if (++flush_cnt == 10 ||
(flush_cnt % 100 == 0 && flush_cnt <= 1000))
pr_warn("workqueue %s: drain_workqueue() isn't complete after %u tries\n",
wq->name, flush_cnt);
mutex_unlock(&wq->mutex);
goto reflush;
}
if (!--wq->nr_drainers)
wq->flags &= ~__WQ_DRAINING;
mutex_unlock(&wq->mutex);
}
EXPORT_SYMBOL_GPL(drain_workqueue);
static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr)
{
struct worker *worker = NULL;
struct worker_pool *pool;
struct pool_workqueue *pwq;
might_sleep();
local_irq_disable();
pool = get_work_pool(work);
if (!pool) {
local_irq_enable();
return false;
}
spin_lock(&pool->lock);
/* see the comment in try_to_grab_pending() with the same code */
pwq = get_work_pwq(work);
if (pwq) {
if (unlikely(pwq->pool != pool))
goto already_gone;
} else {
worker = find_worker_executing_work(pool, work);
if (!worker)
goto already_gone;
pwq = worker->current_pwq;
}
check_flush_dependency(pwq->wq, work);
insert_wq_barrier(pwq, barr, work, worker);
spin_unlock_irq(&pool->lock);
/*
* Force a lock recursion deadlock when using flush_work() inside a
* single-threaded or rescuer equipped workqueue.
*
* For single threaded workqueues the deadlock happens when the work
* is after the work issuing the flush_work(). For rescuer equipped
* workqueues the deadlock happens when the rescuer stalls, blocking
* forward progress.
*/
if (pwq->wq->saved_max_active == 1 || pwq->wq->rescuer) {
lock_map_acquire(&pwq->wq->lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
}
return true;
already_gone:
spin_unlock_irq(&pool->lock);
return false;
}
/**
* flush_work - wait for a work to finish executing the last queueing instance
* @work: the work to flush
*
* Wait until @work has finished execution. @work is guaranteed to be idle
* on return if it hasn't been requeued since flush started.
*
* Return:
* %true if flush_work() waited for the work to finish execution,
* %false if it was already idle.
*/
bool flush_work(struct work_struct *work)
{
struct wq_barrier barr;
if (WARN_ON(!wq_online))
return false;
lock_map_acquire(&work->lockdep_map);
lock_map_release(&work->lockdep_map);
if (start_flush_work(work, &barr)) {
wait_for_completion(&barr.done);
destroy_work_on_stack(&barr.work);
return true;
} else {
return false;
}
}
EXPORT_SYMBOL_GPL(flush_work);
struct cwt_wait {
wait_queue_entry_t wait;
struct work_struct *work;
};
static int cwt_wakefn(wait_queue_entry_t *wait, unsigned mode, int sync, void *key)
{
struct cwt_wait *cwait = container_of(wait, struct cwt_wait, wait);
if (cwait->work != key)
return 0;
return autoremove_wake_function(wait, mode, sync, key);
}
static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
{
static DECLARE_WAIT_QUEUE_HEAD(cancel_waitq);
unsigned long flags;
int ret;
do {
ret = try_to_grab_pending(work, is_dwork, &flags);
/*
* If someone else is already canceling, wait for it to
* finish. flush_work() doesn't work for PREEMPT_NONE
* because we may get scheduled between @work's completion
* and the other canceling task resuming and clearing
* CANCELING - flush_work() will return false immediately
* as @work is no longer busy, try_to_grab_pending() will
* return -ENOENT as @work is still being canceled and the
* other canceling task won't be able to clear CANCELING as
* we're hogging the CPU.
*
* Let's wait for completion using a waitqueue. As this
* may lead to the thundering herd problem, use a custom
* wake function which matches @work along with exclusive
* wait and wakeup.
*/
if (unlikely(ret == -ENOENT)) {
struct cwt_wait cwait;
init_wait(&cwait.wait);
cwait.wait.func = cwt_wakefn;
cwait.work = work;
prepare_to_wait_exclusive(&cancel_waitq, &cwait.wait,
TASK_UNINTERRUPTIBLE);
if (work_is_canceling(work))
schedule();
finish_wait(&cancel_waitq, &cwait.wait);
}
} while (unlikely(ret < 0));
/* tell other tasks trying to grab @work to back off */
mark_work_canceling(work);
local_irq_restore(flags);
/*
* This allows canceling during early boot. We know that @work
* isn't executing.
*/
if (wq_online)
flush_work(work);
clear_work_data(work);
/*
* Paired with prepare_to_wait() above so that either
* waitqueue_active() is visible here or !work_is_canceling() is
* visible there.
*/
smp_mb();
if (waitqueue_active(&cancel_waitq))
__wake_up(&cancel_waitq, TASK_NORMAL, 1, work);
return ret;
}
/**
* cancel_work_sync - cancel a work and wait for it to finish
* @work: the work to cancel
*
* Cancel @work and wait for its execution to finish. This function
* can be used even if the work re-queues itself or migrates to
* another workqueue. On return from this function, @work is
* guaranteed to be not pending or executing on any CPU.
*
* cancel_work_sync(&delayed_work->work) must not be used for
* delayed_work's. Use cancel_delayed_work_sync() instead.
*
* The caller must ensure that the workqueue on which @work was last
* queued can't be destroyed before this function returns.
*
* Return:
* %true if @work was pending, %false otherwise.
*/
bool cancel_work_sync(struct work_struct *work)
{
return __cancel_work_timer(work, false);
}
EXPORT_SYMBOL_GPL(cancel_work_sync);
/**
* flush_delayed_work - wait for a dwork to finish executing the last queueing
* @dwork: the delayed work to flush
*
* Delayed timer is cancelled and the pending work is queued for
* immediate execution. Like flush_work(), this function only
* considers the last queueing instance of @dwork.
*
* Return:
* %true if flush_work() waited for the work to finish execution,
* %false if it was already idle.
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
local_irq_disable();
if (del_timer_sync(&dwork->timer))
__queue_work(dwork->cpu, dwork->wq, &dwork->work);
local_irq_enable();
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
static bool __cancel_work(struct work_struct *work, bool is_dwork)
{
unsigned long flags;
int ret;
do {
ret = try_to_grab_pending(work, is_dwork, &flags);
} while (unlikely(ret == -EAGAIN));
if (unlikely(ret < 0))
return false;
set_work_pool_and_clear_pending(work, get_work_pool_id(work));
local_irq_restore(flags);
return ret;
}
/*
* See cancel_delayed_work()
*/
bool cancel_work(struct work_struct *work)
{
return __cancel_work(work, false);
}
/**
* cancel_delayed_work - cancel a delayed work
* @dwork: delayed_work to cancel
*
* Kill off a pending delayed_work.
*
* Return: %true if @dwork was pending and canceled; %false if it wasn't
* pending.
*
* Note:
* The work callback function may still be running on return, unless
* it returns %true and the work doesn't re-arm itself. Explicitly flush or
* use cancel_delayed_work_sync() to wait on it.
*
* This function is safe to call from any context including IRQ handler.
*/
bool cancel_delayed_work(struct delayed_work *dwork)
{
return __cancel_work(&dwork->work, true);
}
EXPORT_SYMBOL(cancel_delayed_work);
/**
* cancel_delayed_work_sync - cancel a delayed work and wait for it to finish
* @dwork: the delayed work cancel
*
* This is cancel_work_sync() for delayed works.
*
* Return:
* %true if @dwork was pending, %false otherwise.
*/
bool cancel_delayed_work_sync(struct delayed_work *dwork)
{
return __cancel_work_timer(&dwork->work, true);
}
EXPORT_SYMBOL(cancel_delayed_work_sync);
/**
* schedule_on_each_cpu - execute a function synchronously on each online CPU
* @func: the function to call
*
* schedule_on_each_cpu() executes @func on each online CPU using the
* system workqueue and blocks until all CPUs have completed.
* schedule_on_each_cpu() is very slow.
*
* Return:
* 0 on success, -errno on failure.
*/
int schedule_on_each_cpu(work_func_t func)
{
int cpu;
struct work_struct __percpu *works;
works = alloc_percpu(struct work_struct);
if (!works)
return -ENOMEM;
get_online_cpus();
for_each_online_cpu(cpu) {
struct work_struct *work = per_cpu_ptr(works, cpu);
INIT_WORK(work, func);
schedule_work_on(cpu, work);
}
for_each_online_cpu(cpu)
flush_work(per_cpu_ptr(works, cpu));
put_online_cpus();
free_percpu(works);
return 0;
}
/**
* execute_in_process_context - reliably execute the routine with user context
* @fn: the function to execute
* @ew: guaranteed storage for the execute work structure (must
* be available when the work executes)
*
* Executes the function immediately if process context is available,
* otherwise schedules the function for delayed execution.
*
* Return: 0 - function was executed
* 1 - function was scheduled for execution
*/
int execute_in_process_context(work_func_t fn, struct execute_work *ew)
{
if (!in_interrupt()) {
fn(&ew->work);
return 0;
}
INIT_WORK(&ew->work, fn);
schedule_work(&ew->work);
return 1;
}
EXPORT_SYMBOL_GPL(execute_in_process_context);
/**
* free_workqueue_attrs - free a workqueue_attrs
* @attrs: workqueue_attrs to free
*
* Undo alloc_workqueue_attrs().
*/
void free_workqueue_attrs(struct workqueue_attrs *attrs)
{
if (attrs) {
free_cpumask_var(attrs->cpumask);
kfree(attrs);
}
}
/**
* alloc_workqueue_attrs - allocate a workqueue_attrs
* @gfp_mask: allocation mask to use
*
* Allocate a new workqueue_attrs, initialize with default settings and
* return it.
*
* Return: The allocated new workqueue_attr on success. %NULL on failure.
*/
struct workqueue_attrs *alloc_workqueue_attrs(gfp_t gfp_mask)
{
struct workqueue_attrs *attrs;
attrs = kzalloc(sizeof(*attrs), gfp_mask);
if (!attrs)
goto fail;
if (!alloc_cpumask_var(&attrs->cpumask, gfp_mask))
goto fail;
cpumask_copy(attrs->cpumask, cpu_possible_mask);
return attrs;
fail:
free_workqueue_attrs(attrs);
return NULL;
}
static void copy_workqueue_attrs(struct workqueue_attrs *to,
const struct workqueue_attrs *from)
{
to->nice = from->nice;
cpumask_copy(to->cpumask, from->cpumask);
/*
* Unlike hash and equality test, this function doesn't ignore
* ->no_numa as it is used for both pool and wq attrs. Instead,
* get_unbound_pool() explicitly clears ->no_numa after copying.
*/
to->no_numa = from->no_numa;
}
/* hash value of the content of @attr */
static u32 wqattrs_hash(const struct workqueue_attrs *attrs)
{
u32 hash = 0;
hash = jhash_1word(attrs->nice, hash);
hash = jhash(cpumask_bits(attrs->cpumask),
BITS_TO_LONGS(nr_cpumask_bits) * sizeof(long), hash);
return hash;
}
/* content equality test */
static bool wqattrs_equal(const struct workqueue_attrs *a,
const struct workqueue_attrs *b)
{
if (a->nice != b->nice)
return false;
if (!cpumask_equal(a->cpumask, b->cpumask))
return false;
return true;
}
/**
* init_worker_pool - initialize a newly zalloc'd worker_pool
* @pool: worker_pool to initialize
*
* Initialize a newly zalloc'd @pool. It also allocates @pool->attrs.
*
* Return: 0 on success, -errno on failure. Even on failure, all fields
* inside @pool proper are initialized and put_unbound_pool() can be called
* on @pool safely to release it.
*/
static int init_worker_pool(struct worker_pool *pool)
{
spin_lock_init(&pool->lock);
pool->id = -1;
pool->cpu = -1;
pool->node = NUMA_NO_NODE;
pool->flags |= POOL_DISASSOCIATED;
pool->watchdog_ts = jiffies;
INIT_LIST_HEAD(&pool->worklist);
INIT_LIST_HEAD(&pool->idle_list);
hash_init(pool->busy_hash);
setup_deferrable_timer(&pool->idle_timer, idle_worker_timeout,
(unsigned long)pool);
setup_timer(&pool->mayday_timer, pool_mayday_timeout,
(unsigned long)pool);
mutex_init(&pool->manager_arb);
mutex_init(&pool->attach_mutex);
INIT_LIST_HEAD(&pool->workers);
ida_init(&pool->worker_ida);
INIT_HLIST_NODE(&pool->hash_node);
pool->refcnt = 1;
/* shouldn't fail above this point */
pool->attrs = alloc_workqueue_attrs(GFP_KERNEL);
if (!pool->attrs)
return -ENOMEM;
return 0;
}
static void rcu_free_wq(struct rcu_head *rcu)
{
struct workqueue_struct *wq =
container_of(rcu, struct workqueue_struct, rcu);
if (!(wq->flags & WQ_UNBOUND))
free_percpu(wq->cpu_pwqs);
else
free_workqueue_attrs(wq->unbound_attrs);
kfree(wq->rescuer);
kfree(wq);
}
static void rcu_free_pool(struct rcu_head *rcu)
{
struct worker_pool *pool = container_of(rcu, struct worker_pool, rcu);
ida_destroy(&pool->worker_ida);
free_workqueue_attrs(pool->attrs);
kfree(pool);
}
/**
* put_unbound_pool - put a worker_pool
* @pool: worker_pool to put
*
* Put @pool. If its refcnt reaches zero, it gets destroyed in sched-RCU
* safe manner. get_unbound_pool() calls this function on its failure path
* and this function should be able to release pools which went through,
* successfully or not, init_worker_pool().
*
* Should be called with wq_pool_mutex held.
*/
static void put_unbound_pool(struct worker_pool *pool)
{
DECLARE_COMPLETION_ONSTACK(detach_completion);
struct worker *worker;
lockdep_assert_held(&wq_pool_mutex);
if (--pool->refcnt)
return;
/* sanity checks */
if (WARN_ON(!(pool->cpu < 0)) ||
WARN_ON(!list_empty(&pool->worklist)))
return;
/* release id and unhash */
if (pool->id >= 0)
idr_remove(&worker_pool_idr, pool->id);
hash_del(&pool->hash_node);
/*
* Become the manager and destroy all workers. Grabbing
* manager_arb prevents @pool's workers from blocking on
* attach_mutex.
*/
mutex_lock(&pool->manager_arb);
spin_lock_irq(&pool->lock);
while ((worker = first_idle_worker(pool)))
destroy_worker(worker);
WARN_ON(pool->nr_workers || pool->nr_idle);
spin_unlock_irq(&pool->lock);
mutex_lock(&pool->attach_mutex);
if (!list_empty(&pool->workers))
pool->detach_completion = &detach_completion;
mutex_unlock(&pool->attach_mutex);
if (pool->detach_completion)
wait_for_completion(pool->detach_completion);
mutex_unlock(&pool->manager_arb);
/* shut down the timers */
del_timer_sync(&pool->idle_timer);
del_timer_sync(&pool->mayday_timer);
/* sched-RCU protected to allow dereferences from get_work_pool() */
call_rcu_sched(&pool->rcu, rcu_free_pool);
}
/**
* get_unbound_pool - get a worker_pool with the specified attributes
* @attrs: the attributes of the worker_pool to get
*
* Obtain a worker_pool which has the same attributes as @attrs, bump the
* reference count and return it. If there already is a matching
* worker_pool, it will be used; otherwise, this function attempts to
* create a new one.
*
* Should be called with wq_pool_mutex held.
*
* Return: On success, a worker_pool with the same attributes as @attrs.
* On failure, %NULL.
*/
static struct worker_pool *get_unbound_pool(const struct workqueue_attrs *attrs)
{
u32 hash = wqattrs_hash(attrs);
struct worker_pool *pool;
int node;
int target_node = NUMA_NO_NODE;
lockdep_assert_held(&wq_pool_mutex);
/* do we already have a matching pool? */
hash_for_each_possible(unbound_pool_hash, pool, hash_node, hash) {
if (wqattrs_equal(pool->attrs, attrs)) {
pool->refcnt++;
return pool;
}
}
/* if cpumask is contained inside a NUMA node, we belong to that node */
if (wq_numa_enabled) {
for_each_node(node) {
if (cpumask_subset(attrs->cpumask,
wq_numa_possible_cpumask[node])) {
target_node = node;
break;
}
}
}
/* nope, create a new one */
pool = kzalloc_node(sizeof(*pool), GFP_KERNEL, target_node);
if (!pool || init_worker_pool(pool) < 0)
goto fail;
lockdep_set_subclass(&pool->lock, 1); /* see put_pwq() */
copy_workqueue_attrs(pool->attrs, attrs);
pool->node = target_node;
/*
* no_numa isn't a worker_pool attribute, always clear it. See
* 'struct workqueue_attrs' comments for detail.
*/
pool->attrs->no_numa = false;
if (worker_pool_assign_id(pool) < 0)
goto fail;
/* create and start the initial worker */
if (wq_online && !create_worker(pool))
goto fail;
/* install */
hash_add(unbound_pool_hash, &pool->hash_node, hash);
return pool;
fail:
if (pool)
put_unbound_pool(pool);
return NULL;
}
static void rcu_free_pwq(struct rcu_head *rcu)
{
kmem_cache_free(pwq_cache,
container_of(rcu, struct pool_workqueue, rcu));
}
/*
* Scheduled on system_wq by put_pwq() when an unbound pwq hits zero refcnt
* and needs to be destroyed.
*/
static void pwq_unbound_release_workfn(struct work_struct *work)
{
struct pool_workqueue *pwq = container_of(work, struct pool_workqueue,
unbound_release_work);
struct workqueue_struct *wq = pwq->wq;
struct worker_pool *pool = pwq->pool;
bool is_last;
if (WARN_ON_ONCE(!(wq->flags & WQ_UNBOUND)))
return;
mutex_lock(&wq->mutex);
list_del_rcu(&pwq->pwqs_node);
is_last = list_empty(&wq->pwqs);
mutex_unlock(&wq->mutex);
mutex_lock(&wq_pool_mutex);
put_unbound_pool(pool);
mutex_unlock(&wq_pool_mutex);
call_rcu_sched(&pwq->rcu, rcu_free_pwq);
/*
* If we're the last pwq going away, @wq is already dead and no one
* is gonna access it anymore. Schedule RCU free.
*/
if (is_last)
call_rcu_sched(&wq->rcu, rcu_free_wq);
}
/**
* pwq_adjust_max_active - update a pwq's max_active to the current setting
* @pwq: target pool_workqueue
*
* If @pwq isn't freezing, set @pwq->max_active to the associated
* workqueue's saved_max_active and activate delayed work items
* accordingly. If @pwq is freezing, clear @pwq->max_active to zero.
*/
static void pwq_adjust_max_active(struct pool_workqueue *pwq)
{
struct workqueue_struct *wq = pwq->wq;
bool freezable = wq->flags & WQ_FREEZABLE;
unsigned long flags;
/* for @wq->saved_max_active */
lockdep_assert_held(&wq->mutex);
/* fast exit for non-freezable wqs */
if (!freezable && pwq->max_active == wq->saved_max_active)
return;
/* this function can be called during early boot w/ irq disabled */
spin_lock_irqsave(&pwq->pool->lock, flags);
/*
* During [un]freezing, the caller is responsible for ensuring that
* this function is called at least once after @workqueue_freezing
* is updated and visible.
*/
if (!freezable || !workqueue_freezing) {
pwq->max_active = wq->saved_max_active;
while (!list_empty(&pwq->delayed_works) &&
pwq->nr_active < pwq->max_active)
pwq_activate_first_delayed(pwq);
/*
* Need to kick a worker after thawed or an unbound wq's
* max_active is bumped. It's a slow path. Do it always.
*/
wake_up_worker(pwq->pool);
} else {
pwq->max_active = 0;
}
spin_unlock_irqrestore(&pwq->pool->lock, flags);
}
/* initialize newly alloced @pwq which is associated with @wq and @pool */
static void init_pwq(struct pool_workqueue *pwq, struct workqueue_struct *wq,
struct worker_pool *pool)
{
BUG_ON((unsigned long)pwq & WORK_STRUCT_FLAG_MASK);
memset(pwq, 0, sizeof(*pwq));
pwq->pool = pool;
pwq->wq = wq;
pwq->flush_color = -1;
pwq->refcnt = 1;
INIT_LIST_HEAD(&pwq->delayed_works);
INIT_LIST_HEAD(&pwq->pwqs_node);
INIT_LIST_HEAD(&pwq->mayday_node);
INIT_WORK(&pwq->unbound_release_work, pwq_unbound_release_workfn);
}
/* sync @pwq with the current state of its associated wq and link it */
static void link_pwq(struct pool_workqueue *pwq)
{
struct workqueue_struct *wq = pwq->wq;
lockdep_assert_held(&wq->mutex);
/* may be called multiple times, ignore if already linked */
if (!list_empty(&pwq->pwqs_node))
return;
/* set the matching work_color */
pwq->work_color = wq->work_color;
/* sync max_active to the current setting */
pwq_adjust_max_active(pwq);
/* link in @pwq */
list_add_rcu(&pwq->pwqs_node, &wq->pwqs);
}
/* obtain a pool matching @attr and create a pwq associating the pool and @wq */
static struct pool_workqueue *alloc_unbound_pwq(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
struct worker_pool *pool;
struct pool_workqueue *pwq;
lockdep_assert_held(&wq_pool_mutex);
pool = get_unbound_pool(attrs);
if (!pool)
return NULL;
pwq = kmem_cache_alloc_node(pwq_cache, GFP_KERNEL, pool->node);
if (!pwq) {
put_unbound_pool(pool);
return NULL;
}
init_pwq(pwq, wq, pool);
return pwq;
}
/**
* wq_calc_node_cpumask - calculate a wq_attrs' cpumask for the specified node
* @attrs: the wq_attrs of the default pwq of the target workqueue
* @node: the target NUMA node
* @cpu_going_down: if >= 0, the CPU to consider as offline
* @cpumask: outarg, the resulting cpumask
*
* Calculate the cpumask a workqueue with @attrs should use on @node. If
* @cpu_going_down is >= 0, that cpu is considered offline during
* calculation. The result is stored in @cpumask.
*
* If NUMA affinity is not enabled, @attrs->cpumask is always used. If
* enabled and @node has online CPUs requested by @attrs, the returned
* cpumask is the intersection of the possible CPUs of @node and
* @attrs->cpumask.
*
* The caller is responsible for ensuring that the cpumask of @node stays
* stable.
*
* Return: %true if the resulting @cpumask is different from @attrs->cpumask,
* %false if equal.
*/
static bool wq_calc_node_cpumask(const struct workqueue_attrs *attrs, int node,
int cpu_going_down, cpumask_t *cpumask)
{
if (!wq_numa_enabled || attrs->no_numa)
goto use_dfl;
/* does @node have any online CPUs @attrs wants? */
cpumask_and(cpumask, cpumask_of_node(node), attrs->cpumask);
if (cpu_going_down >= 0)
cpumask_clear_cpu(cpu_going_down, cpumask);
if (cpumask_empty(cpumask))
goto use_dfl;
/* yeap, return possible CPUs in @node that @attrs wants */
cpumask_and(cpumask, attrs->cpumask, wq_numa_possible_cpumask[node]);
if (cpumask_empty(cpumask)) {
pr_warn_once("WARNING: workqueue cpumask: online intersect > "
"possible intersect\n");
return false;
}
return !cpumask_equal(cpumask, attrs->cpumask);
use_dfl:
cpumask_copy(cpumask, attrs->cpumask);
return false;
}
/* install @pwq into @wq's numa_pwq_tbl[] for @node and return the old pwq */
static struct pool_workqueue *numa_pwq_tbl_install(struct workqueue_struct *wq,
int node,
struct pool_workqueue *pwq)
{
struct pool_workqueue *old_pwq;
lockdep_assert_held(&wq_pool_mutex);
lockdep_assert_held(&wq->mutex);
/* link_pwq() can handle duplicate calls */
link_pwq(pwq);
old_pwq = rcu_access_pointer(wq->numa_pwq_tbl[node]);
rcu_assign_pointer(wq->numa_pwq_tbl[node], pwq);
return old_pwq;
}
/* context to store the prepared attrs & pwqs before applying */
struct apply_wqattrs_ctx {
struct workqueue_struct *wq; /* target workqueue */
struct workqueue_attrs *attrs; /* attrs to apply */
struct list_head list; /* queued for batching commit */
struct pool_workqueue *dfl_pwq;
struct pool_workqueue *pwq_tbl[];
};
/* free the resources after success or abort */
static void apply_wqattrs_cleanup(struct apply_wqattrs_ctx *ctx)
{
if (ctx) {
int node;
for_each_node(node)
put_pwq_unlocked(ctx->pwq_tbl[node]);
put_pwq_unlocked(ctx->dfl_pwq);
free_workqueue_attrs(ctx->attrs);
kfree(ctx);
}
}
/* allocate the attrs and pwqs for later installation */
static struct apply_wqattrs_ctx *
apply_wqattrs_prepare(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
struct apply_wqattrs_ctx *ctx;
struct workqueue_attrs *new_attrs, *tmp_attrs;
int node;
lockdep_assert_held(&wq_pool_mutex);
ctx = kzalloc(sizeof(*ctx) + nr_node_ids * sizeof(ctx->pwq_tbl[0]),
GFP_KERNEL);
new_attrs = alloc_workqueue_attrs(GFP_KERNEL);
tmp_attrs = alloc_workqueue_attrs(GFP_KERNEL);
if (!ctx || !new_attrs || !tmp_attrs)
goto out_free;
/*
* Calculate the attrs of the default pwq.
* If the user configured cpumask doesn't overlap with the
* wq_unbound_cpumask, we fallback to the wq_unbound_cpumask.
*/
copy_workqueue_attrs(new_attrs, attrs);
cpumask_and(new_attrs->cpumask, new_attrs->cpumask, wq_unbound_cpumask);
if (unlikely(cpumask_empty(new_attrs->cpumask)))
cpumask_copy(new_attrs->cpumask, wq_unbound_cpumask);
/*
* We may create multiple pwqs with differing cpumasks. Make a
* copy of @new_attrs which will be modified and used to obtain
* pools.
*/
copy_workqueue_attrs(tmp_attrs, new_attrs);
/*
* If something goes wrong during CPU up/down, we'll fall back to
* the default pwq covering whole @attrs->cpumask. Always create
* it even if we don't use it immediately.
*/
ctx->dfl_pwq = alloc_unbound_pwq(wq, new_attrs);
if (!ctx->dfl_pwq)
goto out_free;
for_each_node(node) {
if (wq_calc_node_cpumask(new_attrs, node, -1, tmp_attrs->cpumask)) {
ctx->pwq_tbl[node] = alloc_unbound_pwq(wq, tmp_attrs);
if (!ctx->pwq_tbl[node])
goto out_free;
} else {
ctx->dfl_pwq->refcnt++;
ctx->pwq_tbl[node] = ctx->dfl_pwq;
}
}
/* save the user configured attrs and sanitize it. */
copy_workqueue_attrs(new_attrs, attrs);
cpumask_and(new_attrs->cpumask, new_attrs->cpumask, cpu_possible_mask);
ctx->attrs = new_attrs;
ctx->wq = wq;
free_workqueue_attrs(tmp_attrs);
return ctx;
out_free:
free_workqueue_attrs(tmp_attrs);
free_workqueue_attrs(new_attrs);
apply_wqattrs_cleanup(ctx);
return NULL;
}
/* set attrs and install prepared pwqs, @ctx points to old pwqs on return */
static void apply_wqattrs_commit(struct apply_wqattrs_ctx *ctx)
{
int node;
/* all pwqs have been created successfully, let's install'em */
mutex_lock(&ctx->wq->mutex);
copy_workqueue_attrs(ctx->wq->unbound_attrs, ctx->attrs);
/* save the previous pwq and install the new one */
for_each_node(node)
ctx->pwq_tbl[node] = numa_pwq_tbl_install(ctx->wq, node,
ctx->pwq_tbl[node]);
/* @dfl_pwq might not have been used, ensure it's linked */
link_pwq(ctx->dfl_pwq);
swap(ctx->wq->dfl_pwq, ctx->dfl_pwq);
mutex_unlock(&ctx->wq->mutex);
}
static void apply_wqattrs_lock(void)
{
/* CPUs should stay stable across pwq creations and installations */
get_online_cpus();
mutex_lock(&wq_pool_mutex);
}
static void apply_wqattrs_unlock(void)
{
mutex_unlock(&wq_pool_mutex);
put_online_cpus();
}
static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
struct apply_wqattrs_ctx *ctx;
/* only unbound workqueues can change attributes */
if (WARN_ON(!(wq->flags & WQ_UNBOUND)))
return -EINVAL;
/* creating multiple pwqs breaks ordering guarantee */
if (!list_empty(&wq->pwqs)) {
if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
return -EINVAL;
wq->flags &= ~__WQ_ORDERED;
}
ctx = apply_wqattrs_prepare(wq, attrs);
if (!ctx)
return -ENOMEM;
/* the ctx has been prepared successfully, let's commit it */
apply_wqattrs_commit(ctx);
apply_wqattrs_cleanup(ctx);
return 0;
}
/**
* apply_workqueue_attrs - apply new workqueue_attrs to an unbound workqueue
* @wq: the target workqueue
* @attrs: the workqueue_attrs to apply, allocated with alloc_workqueue_attrs()
*
* Apply @attrs to an unbound workqueue @wq. Unless disabled, on NUMA
* machines, this function maps a separate pwq to each NUMA node with
* possibles CPUs in @attrs->cpumask so that work items are affine to the
* NUMA node it was issued on. Older pwqs are released as in-flight work
* items finish. Note that a work item which repeatedly requeues itself
* back-to-back will stay on its current pwq.
*
* Performs GFP_KERNEL allocations.
*
* Return: 0 on success and -errno on failure.
*/
int apply_workqueue_attrs(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
int ret;
apply_wqattrs_lock();
ret = apply_workqueue_attrs_locked(wq, attrs);
apply_wqattrs_unlock();
return ret;
}
/**
* wq_update_unbound_numa - update NUMA affinity of a wq for CPU hot[un]plug
* @wq: the target workqueue
* @cpu: the CPU coming up or going down
* @online: whether @cpu is coming up or going down
*
* This function is to be called from %CPU_DOWN_PREPARE, %CPU_ONLINE and
* %CPU_DOWN_FAILED. @cpu is being hot[un]plugged, update NUMA affinity of
* @wq accordingly.
*
* If NUMA affinity can't be adjusted due to memory allocation failure, it
* falls back to @wq->dfl_pwq which may not be optimal but is always
* correct.
*
* Note that when the last allowed CPU of a NUMA node goes offline for a
* workqueue with a cpumask spanning multiple nodes, the workers which were
* already executing the work items for the workqueue will lose their CPU
* affinity and may execute on any CPU. This is similar to how per-cpu
* workqueues behave on CPU_DOWN. If a workqueue user wants strict
* affinity, it's the user's responsibility to flush the work item from
* CPU_DOWN_PREPARE.
*/
static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
bool online)
{
int node = cpu_to_node(cpu);
int cpu_off = online ? -1 : cpu;
struct pool_workqueue *old_pwq = NULL, *pwq;
struct workqueue_attrs *target_attrs;
cpumask_t *cpumask;
lockdep_assert_held(&wq_pool_mutex);
if (!wq_numa_enabled || !(wq->flags & WQ_UNBOUND) ||
wq->unbound_attrs->no_numa)
return;
/*
* We don't wanna alloc/free wq_attrs for each wq for each CPU.
* Let's use a preallocated one. The following buf is protected by
* CPU hotplug exclusion.
*/
target_attrs = wq_update_unbound_numa_attrs_buf;
cpumask = target_attrs->cpumask;
copy_workqueue_attrs(target_attrs, wq->unbound_attrs);
pwq = unbound_pwq_by_node(wq, node);
/*
* Let's determine what needs to be done. If the target cpumask is
* different from the default pwq's, we need to compare it to @pwq's
* and create a new one if they don't match. If the target cpumask
* equals the default pwq's, the default pwq should be used.
*/
if (wq_calc_node_cpumask(wq->dfl_pwq->pool->attrs, node, cpu_off, cpumask)) {
if (cpumask_equal(cpumask, pwq->pool->attrs->cpumask))
return;
} else {
goto use_dfl_pwq;
}
/* create a new pwq */
pwq = alloc_unbound_pwq(wq, target_attrs);
if (!pwq) {
pr_warn("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n",
wq->name);
goto use_dfl_pwq;
}
/* Install the new pwq. */
mutex_lock(&wq->mutex);
old_pwq = numa_pwq_tbl_install(wq, node, pwq);
goto out_unlock;
use_dfl_pwq:
mutex_lock(&wq->mutex);
spin_lock_irq(&wq->dfl_pwq->pool->lock);
get_pwq(wq->dfl_pwq);
spin_unlock_irq(&wq->dfl_pwq->pool->lock);
old_pwq = numa_pwq_tbl_install(wq, node, wq->dfl_pwq);
out_unlock:
mutex_unlock(&wq->mutex);
put_pwq_unlocked(old_pwq);
}
static int alloc_and_link_pwqs(struct workqueue_struct *wq)
{
bool highpri = wq->flags & WQ_HIGHPRI;
int cpu, ret;
if (!(wq->flags & WQ_UNBOUND)) {
wq->cpu_pwqs = alloc_percpu(struct pool_workqueue);
if (!wq->cpu_pwqs)
return -ENOMEM;
for_each_possible_cpu(cpu) {
struct pool_workqueue *pwq =
per_cpu_ptr(wq->cpu_pwqs, cpu);
struct worker_pool *cpu_pools =
per_cpu(cpu_worker_pools, cpu);
init_pwq(pwq, wq, &cpu_pools[highpri]);
mutex_lock(&wq->mutex);
link_pwq(pwq);
mutex_unlock(&wq->mutex);
}
return 0;
} else if (wq->flags & __WQ_ORDERED) {
ret = apply_workqueue_attrs(wq, ordered_wq_attrs[highpri]);
/* there should only be single pwq for ordering guarantee */
WARN(!ret && (wq->pwqs.next != &wq->dfl_pwq->pwqs_node ||
wq->pwqs.prev != &wq->dfl_pwq->pwqs_node),
"ordering guarantee broken for workqueue %s\n", wq->name);
return ret;
} else {
return apply_workqueue_attrs(wq, unbound_std_wq_attrs[highpri]);
}
}
static int wq_clamp_max_active(int max_active, unsigned int flags,
const char *name)
{
int lim = flags & WQ_UNBOUND ? WQ_UNBOUND_MAX_ACTIVE : WQ_MAX_ACTIVE;
if (max_active < 1 || max_active > lim)
pr_warn("workqueue: max_active %d requested for %s is out of range, clamping between %d and %d\n",
max_active, name, 1, lim);
return clamp_val(max_active, 1, lim);
}
struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
unsigned int flags,
int max_active,
struct lock_class_key *key,
const char *lock_name, ...)
{
size_t tbl_size = 0;
va_list args;
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
/*
* Unbound && max_active == 1 used to imply ordered, which is no
* longer the case on NUMA machines due to per-node pools. While
* alloc_ordered_workqueue() is the right way to create an ordered
* workqueue, keep the previous behavior to avoid subtle breakages
* on NUMA.
*/
if ((flags & WQ_UNBOUND) && max_active == 1)
flags |= __WQ_ORDERED;
/* see the comment above the definition of WQ_POWER_EFFICIENT */
if ((flags & WQ_POWER_EFFICIENT) && wq_power_efficient)
flags |= WQ_UNBOUND;
/* allocate wq and format name */
if (flags & WQ_UNBOUND)
tbl_size = nr_node_ids * sizeof(wq->numa_pwq_tbl[0]);
wq = kzalloc(sizeof(*wq) + tbl_size, GFP_KERNEL);
if (!wq)
return NULL;
if (flags & WQ_UNBOUND) {
wq->unbound_attrs = alloc_workqueue_attrs(GFP_KERNEL);
if (!wq->unbound_attrs)
goto err_free_wq;
}
va_start(args, lock_name);
vsnprintf(wq->name, sizeof(wq->name), fmt, args);
va_end(args);
max_active = max_active ?: WQ_DFL_ACTIVE;
max_active = wq_clamp_max_active(max_active, flags, wq->name);
/* init wq */
wq->flags = flags;
wq->saved_max_active = max_active;
mutex_init(&wq->mutex);
atomic_set(&wq->nr_pwqs_to_flush, 0);
INIT_LIST_HEAD(&wq->pwqs);
INIT_LIST_HEAD(&wq->flusher_queue);
INIT_LIST_HEAD(&wq->flusher_overflow);
INIT_LIST_HEAD(&wq->maydays);
lockdep_init_map(&wq->lockdep_map, lock_name, key, 0);
INIT_LIST_HEAD(&wq->list);
if (alloc_and_link_pwqs(wq) < 0)
goto err_free_wq;
/*
* Workqueues which may be used during memory reclaim should
* have a rescuer to guarantee forward progress.
*/
if (flags & WQ_MEM_RECLAIM) {
struct worker *rescuer;
rescuer = alloc_worker(NUMA_NO_NODE);
if (!rescuer)
goto err_destroy;
rescuer->rescue_wq = wq;
rescuer->task = kthread_create(rescuer_thread, rescuer, "%s",
wq->name);
if (IS_ERR(rescuer->task)) {
kfree(rescuer);
goto err_destroy;
}
wq->rescuer = rescuer;
kthread_bind_mask(rescuer->task, cpu_possible_mask);
wake_up_process(rescuer->task);
}
if ((wq->flags & WQ_SYSFS) && workqueue_sysfs_register(wq))
goto err_destroy;
/*
* wq_pool_mutex protects global freeze state and workqueues list.
* Grab it, adjust max_active and add the new @wq to workqueues
* list.
*/
mutex_lock(&wq_pool_mutex);
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
list_add_tail_rcu(&wq->list, &workqueues);
mutex_unlock(&wq_pool_mutex);
return wq;
err_free_wq:
free_workqueue_attrs(wq->unbound_attrs);
kfree(wq);
return NULL;
err_destroy:
destroy_workqueue(wq);
return NULL;
}
EXPORT_SYMBOL_GPL(__alloc_workqueue_key);
/**
* destroy_workqueue - safely terminate a workqueue
* @wq: target workqueue
*
* Safely destroy a workqueue. All work currently pending will be done first.
*/
void destroy_workqueue(struct workqueue_struct *wq)
{
struct pool_workqueue *pwq;
int node;
/* drain it before proceeding with destruction */
drain_workqueue(wq);
/* sanity checks */
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq) {
int i;
for (i = 0; i < WORK_NR_COLORS; i++) {
if (WARN_ON(pwq->nr_in_flight[i])) {
mutex_unlock(&wq->mutex);
show_workqueue_state();
return;
}
}
if (WARN_ON((pwq != wq->dfl_pwq) && (pwq->refcnt > 1)) ||
WARN_ON(pwq->nr_active) ||
WARN_ON(!list_empty(&pwq->delayed_works))) {
mutex_unlock(&wq->mutex);
show_workqueue_state();
return;
}
}
mutex_unlock(&wq->mutex);
/*
* wq list is used to freeze wq, remove from list after
* flushing is complete in case freeze races us.
*/
mutex_lock(&wq_pool_mutex);
list_del_rcu(&wq->list);
mutex_unlock(&wq_pool_mutex);
workqueue_sysfs_unregister(wq);
if (wq->rescuer)
kthread_stop(wq->rescuer->task);
if (!(wq->flags & WQ_UNBOUND)) {
/*
* The base ref is never dropped on per-cpu pwqs. Directly
* schedule RCU free.
*/
call_rcu_sched(&wq->rcu, rcu_free_wq);
} else {
/*
* We're the sole accessor of @wq at this point. Directly
* access numa_pwq_tbl[] and dfl_pwq to put the base refs.
* @wq will be freed when the last pwq is released.
*/
for_each_node(node) {
pwq = rcu_access_pointer(wq->numa_pwq_tbl[node]);
RCU_INIT_POINTER(wq->numa_pwq_tbl[node], NULL);
put_pwq_unlocked(pwq);
}
/*
* Put dfl_pwq. @wq may be freed any time after dfl_pwq is
* put. Don't access it afterwards.
*/
pwq = wq->dfl_pwq;
wq->dfl_pwq = NULL;
put_pwq_unlocked(pwq);
}
}
EXPORT_SYMBOL_GPL(destroy_workqueue);
/**
* workqueue_set_max_active - adjust max_active of a workqueue
* @wq: target workqueue
* @max_active: new max_active value.
*
* Set max_active of @wq to @max_active.
*
* CONTEXT:
* Don't call from IRQ context.
*/
void workqueue_set_max_active(struct workqueue_struct *wq, int max_active)
{
struct pool_workqueue *pwq;
/* disallow meddling with max_active for ordered workqueues */
if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
return;
max_active = wq_clamp_max_active(max_active, wq->flags, wq->name);
mutex_lock(&wq->mutex);
wq->flags &= ~__WQ_ORDERED;
wq->saved_max_active = max_active;
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
}
EXPORT_SYMBOL_GPL(workqueue_set_max_active);
/**
* current_is_workqueue_rescuer - is %current workqueue rescuer?
*
* Determine whether %current is a workqueue rescuer. Can be used from
* work functions to determine whether it's being run off the rescuer task.
*
* Return: %true if %current is a workqueue rescuer. %false otherwise.
*/
bool current_is_workqueue_rescuer(void)
{
struct worker *worker = current_wq_worker();
return worker && worker->rescue_wq;
}
/**
* workqueue_congested - test whether a workqueue is congested
* @cpu: CPU in question
* @wq: target workqueue
*
* Test whether @wq's cpu workqueue for @cpu is congested. There is
* no synchronization around this function and the test result is
* unreliable and only useful as advisory hints or for debugging.
*
* If @cpu is WORK_CPU_UNBOUND, the test is performed on the local CPU.
* Note that both per-cpu and unbound workqueues may be associated with
* multiple pool_workqueues which have separate congested states. A
* workqueue being congested on one CPU doesn't mean the workqueue is also
* contested on other CPUs / NUMA nodes.
*
* Return:
* %true if congested, %false otherwise.
*/
bool workqueue_congested(int cpu, struct workqueue_struct *wq)
{
struct pool_workqueue *pwq;
bool ret;
rcu_read_lock_sched();
if (cpu == WORK_CPU_UNBOUND)
cpu = smp_processor_id();
if (!(wq->flags & WQ_UNBOUND))
pwq = per_cpu_ptr(wq->cpu_pwqs, cpu);
else
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
ret = !list_empty(&pwq->delayed_works);
rcu_read_unlock_sched();
return ret;
}
EXPORT_SYMBOL_GPL(workqueue_congested);
/**
* work_busy - test whether a work is currently pending or running
* @work: the work to be tested
*
* Test whether @work is currently pending or running. There is no
* synchronization around this function and the test result is
* unreliable and only useful as advisory hints or for debugging.
*
* Return:
* OR'd bitmask of WORK_BUSY_* bits.
*/
unsigned int work_busy(struct work_struct *work)
{
struct worker_pool *pool;
unsigned long flags;
unsigned int ret = 0;
if (work_pending(work))
ret |= WORK_BUSY_PENDING;
local_irq_save(flags);
pool = get_work_pool(work);
if (pool) {
spin_lock(&pool->lock);
if (find_worker_executing_work(pool, work))
ret |= WORK_BUSY_RUNNING;
spin_unlock(&pool->lock);
}
local_irq_restore(flags);
return ret;
}
EXPORT_SYMBOL_GPL(work_busy);
/**
* set_worker_desc - set description for the current work item
* @fmt: printf-style format string
* @...: arguments for the format string
*
* This function can be called by a running work function to describe what
* the work item is about. If the worker task gets dumped, this
* information will be printed out together to help debugging. The
* description can be at most WORKER_DESC_LEN including the trailing '\0'.
*/
void set_worker_desc(const char *fmt, ...)
{
struct worker *worker = current_wq_worker();
va_list args;
if (worker) {
va_start(args, fmt);
vsnprintf(worker->desc, sizeof(worker->desc), fmt, args);
va_end(args);
worker->desc_valid = true;
}
}
/**
* print_worker_info - print out worker information and description
* @log_lvl: the log level to use when printing
* @task: target task
*
* If @task is a worker and currently executing a work item, print out the
* name of the workqueue being serviced and worker description set with
* set_worker_desc() by the currently executing work item.
*
* This function can be safely called on any task as long as the
* task_struct itself is accessible. While safe, this function isn't
* synchronized and may print out mixups or garbages of limited length.
*/
void print_worker_info(const char *log_lvl, struct task_struct *task)
{
work_func_t *fn = NULL;
char name[WQ_NAME_LEN] = { };
char desc[WORKER_DESC_LEN] = { };
struct pool_workqueue *pwq = NULL;
struct workqueue_struct *wq = NULL;
bool desc_valid = false;
struct worker *worker;
if (!(task->flags & PF_WQ_WORKER))
return;
/*
* This function is called without any synchronization and @task
* could be in any state. Be careful with dereferences.
*/
worker = kthread_probe_data(task);
/*
* Carefully copy the associated workqueue's workfn and name. Keep
* the original last '\0' in case the original contains garbage.
*/
probe_kernel_read(&fn, &worker->current_func, sizeof(fn));
probe_kernel_read(&pwq, &worker->current_pwq, sizeof(pwq));
probe_kernel_read(&wq, &pwq->wq, sizeof(wq));
probe_kernel_read(name, wq->name, sizeof(name) - 1);
/* copy worker description */
probe_kernel_read(&desc_valid, &worker->desc_valid, sizeof(desc_valid));
if (desc_valid)
probe_kernel_read(desc, worker->desc, sizeof(desc) - 1);
if (fn || name[0] || desc[0]) {
printk("%sWorkqueue: %s %pf", log_lvl, name, fn);
if (desc[0])
pr_cont(" (%s)", desc);
pr_cont("\n");
}
}
static void pr_cont_pool_info(struct worker_pool *pool)
{
pr_cont(" cpus=%*pbl", nr_cpumask_bits, pool->attrs->cpumask);
if (pool->node != NUMA_NO_NODE)
pr_cont(" node=%d", pool->node);
pr_cont(" flags=0x%x nice=%d", pool->flags, pool->attrs->nice);
}
static void pr_cont_work(bool comma, struct work_struct *work)
{
if (work->func == wq_barrier_func) {
struct wq_barrier *barr;
barr = container_of(work, struct wq_barrier, work);
pr_cont("%s BAR(%d)", comma ? "," : "",
task_pid_nr(barr->task));
} else {
pr_cont("%s %pf", comma ? "," : "", work->func);
}
}
static void show_pwq(struct pool_workqueue *pwq)
{
struct worker_pool *pool = pwq->pool;
struct work_struct *work;
struct worker *worker;
bool has_in_flight = false, has_pending = false;
int bkt;
pr_info(" pwq %d:", pool->id);
pr_cont_pool_info(pool);
pr_cont(" active=%d/%d%s\n", pwq->nr_active, pwq->max_active,
!list_empty(&pwq->mayday_node) ? " MAYDAY" : "");
hash_for_each(pool->busy_hash, bkt, worker, hentry) {
if (worker->current_pwq == pwq) {
has_in_flight = true;
break;
}
}
if (has_in_flight) {
bool comma = false;
pr_info(" in-flight:");
hash_for_each(pool->busy_hash, bkt, worker, hentry) {
if (worker->current_pwq != pwq)
continue;
pr_cont("%s %d%s:%pf", comma ? "," : "",
task_pid_nr(worker->task),
worker == pwq->wq->rescuer ? "(RESCUER)" : "",
worker->current_func);
list_for_each_entry(work, &worker->scheduled, entry)
pr_cont_work(false, work);
comma = true;
}
pr_cont("\n");
}
list_for_each_entry(work, &pool->worklist, entry) {
if (get_work_pwq(work) == pwq) {
has_pending = true;
break;
}
}
if (has_pending) {
bool comma = false;
pr_info(" pending:");
list_for_each_entry(work, &pool->worklist, entry) {
if (get_work_pwq(work) != pwq)
continue;
pr_cont_work(comma, work);
comma = !(*work_data_bits(work) & WORK_STRUCT_LINKED);
}
pr_cont("\n");
}
if (!list_empty(&pwq->delayed_works)) {
bool comma = false;
pr_info(" delayed:");
list_for_each_entry(work, &pwq->delayed_works, entry) {
pr_cont_work(comma, work);
comma = !(*work_data_bits(work) & WORK_STRUCT_LINKED);
}
pr_cont("\n");
}
}
/**
* show_workqueue_state - dump workqueue state
*
* Called from a sysrq handler or try_to_freeze_tasks() and prints out
* all busy workqueues and pools.
*/
void show_workqueue_state(void)
{
struct workqueue_struct *wq;
struct worker_pool *pool;
unsigned long flags;
int pi;
rcu_read_lock_sched();
pr_info("Showing busy workqueues and worker pools:\n");
list_for_each_entry_rcu(wq, &workqueues, list) {
struct pool_workqueue *pwq;
bool idle = true;
for_each_pwq(pwq, wq) {
if (pwq->nr_active || !list_empty(&pwq->delayed_works)) {
idle = false;
break;
}
}
if (idle)
continue;
pr_info("workqueue %s: flags=0x%x\n", wq->name, wq->flags);
for_each_pwq(pwq, wq) {
spin_lock_irqsave(&pwq->pool->lock, flags);
if (pwq->nr_active || !list_empty(&pwq->delayed_works))
show_pwq(pwq);
spin_unlock_irqrestore(&pwq->pool->lock, flags);
}
}
for_each_pool(pool, pi) {
struct worker *worker;
bool first = true;
spin_lock_irqsave(&pool->lock, flags);
if (pool->nr_workers == pool->nr_idle)
goto next_pool;
pr_info("pool %d:", pool->id);
pr_cont_pool_info(pool);
pr_cont(" hung=%us workers=%d",
jiffies_to_msecs(jiffies - pool->watchdog_ts) / 1000,
pool->nr_workers);
if (pool->manager)
pr_cont(" manager: %d",
task_pid_nr(pool->manager->task));
list_for_each_entry(worker, &pool->idle_list, entry) {
pr_cont(" %s%d", first ? "idle: " : "",
task_pid_nr(worker->task));
first = false;
}
pr_cont("\n");
next_pool:
spin_unlock_irqrestore(&pool->lock, flags);
}
rcu_read_unlock_sched();
}
/*
* CPU hotplug.
*
* There are two challenges in supporting CPU hotplug. Firstly, there
* are a lot of assumptions on strong associations among work, pwq and
* pool which make migrating pending and scheduled works very
* difficult to implement without impacting hot paths. Secondly,
* worker pools serve mix of short, long and very long running works making
* blocked draining impractical.
*
* This is solved by allowing the pools to be disassociated from the CPU
* running as an unbound one and allowing it to be reattached later if the
* cpu comes back online.
*/
static void wq_unbind_fn(struct work_struct *work)
{
int cpu = smp_processor_id();
struct worker_pool *pool;
struct worker *worker;
for_each_cpu_worker_pool(pool, cpu) {
mutex_lock(&pool->attach_mutex);
spin_lock_irq(&pool->lock);
/*
* We've blocked all attach/detach operations. Make all workers
* unbound and set DISASSOCIATED. Before this, all workers
* except for the ones which are still executing works from
* before the last CPU down must be on the cpu. After
* this, they may become diasporas.
*/
for_each_pool_worker(worker, pool)
worker->flags |= WORKER_UNBOUND;
pool->flags |= POOL_DISASSOCIATED;
spin_unlock_irq(&pool->lock);
mutex_unlock(&pool->attach_mutex);
/*
* Call schedule() so that we cross rq->lock and thus can
* guarantee sched callbacks see the %WORKER_UNBOUND flag.
* This is necessary as scheduler callbacks may be invoked
* from other cpus.
*/
schedule();
/*
* Sched callbacks are disabled now. Zap nr_running.
* After this, nr_running stays zero and need_more_worker()
* and keep_working() are always true as long as the
* worklist is not empty. This pool now behaves as an
* unbound (in terms of concurrency management) pool which
* are served by workers tied to the pool.
*/
atomic_set(&pool->nr_running, 0);
/*
* With concurrency management just turned off, a busy
* worker blocking could lead to lengthy stalls. Kick off
* unbound chain execution of currently pending work items.
*/
spin_lock_irq(&pool->lock);
wake_up_worker(pool);
spin_unlock_irq(&pool->lock);
}
}
/**
* rebind_workers - rebind all workers of a pool to the associated CPU
* @pool: pool of interest
*
* @pool->cpu is coming online. Rebind all workers to the CPU.
*/
static void rebind_workers(struct worker_pool *pool)
{
struct worker *worker;
lockdep_assert_held(&pool->attach_mutex);
/*
* Restore CPU affinity of all workers. As all idle workers should
* be on the run-queue of the associated CPU before any local
* wake-ups for concurrency management happen, restore CPU affinity
* of all workers first and then clear UNBOUND. As we're called
* from CPU_ONLINE, the following shouldn't fail.
*/
for_each_pool_worker(worker, pool)
WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task,
pool->attrs->cpumask) < 0);
spin_lock_irq(&pool->lock);
/*
* XXX: CPU hotplug notifiers are weird and can call DOWN_FAILED
* w/o preceding DOWN_PREPARE. Work around it. CPU hotplug is
* being reworked and this can go away in time.
*/
if (!(pool->flags & POOL_DISASSOCIATED)) {
spin_unlock_irq(&pool->lock);
return;
}
pool->flags &= ~POOL_DISASSOCIATED;
for_each_pool_worker(worker, pool) {
unsigned int worker_flags = worker->flags;
/*
* A bound idle worker should actually be on the runqueue
* of the associated CPU for local wake-ups targeting it to
* work. Kick all idle workers so that they migrate to the
* associated CPU. Doing this in the same loop as
* replacing UNBOUND with REBOUND is safe as no worker will
* be bound before @pool->lock is released.
*/
if (worker_flags & WORKER_IDLE)
wake_up_process(worker->task);
/*
* We want to clear UNBOUND but can't directly call
* worker_clr_flags() or adjust nr_running. Atomically
* replace UNBOUND with another NOT_RUNNING flag REBOUND.
* @worker will clear REBOUND using worker_clr_flags() when
* it initiates the next execution cycle thus restoring
* concurrency management. Note that when or whether
* @worker clears REBOUND doesn't affect correctness.
*
* ACCESS_ONCE() is necessary because @worker->flags may be
* tested without holding any lock in
* wq_worker_waking_up(). Without it, NOT_RUNNING test may
* fail incorrectly leading to premature concurrency
* management operations.
*/
WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
worker_flags |= WORKER_REBOUND;
worker_flags &= ~WORKER_UNBOUND;
ACCESS_ONCE(worker->flags) = worker_flags;
}
spin_unlock_irq(&pool->lock);
}
/**
* restore_unbound_workers_cpumask - restore cpumask of unbound workers
* @pool: unbound pool of interest
* @cpu: the CPU which is coming up
*
* An unbound pool may end up with a cpumask which doesn't have any online
* CPUs. When a worker of such pool get scheduled, the scheduler resets
* its cpus_allowed. If @cpu is in @pool's cpumask which didn't have any
* online CPU before, cpus_allowed of all its workers should be restored.
*/
static void restore_unbound_workers_cpumask(struct worker_pool *pool, int cpu)
{
static cpumask_t cpumask;
struct worker *worker;
lockdep_assert_held(&pool->attach_mutex);
/* is @cpu allowed for @pool? */
if (!cpumask_test_cpu(cpu, pool->attrs->cpumask))
return;
cpumask_and(&cpumask, pool->attrs->cpumask, cpu_online_mask);
/* as we're called from CPU_ONLINE, the following shouldn't fail */
for_each_pool_worker(worker, pool)
WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, &cpumask) < 0);
}
int workqueue_prepare_cpu(unsigned int cpu)
{
struct worker_pool *pool;
for_each_cpu_worker_pool(pool, cpu) {
if (pool->nr_workers)
continue;
if (!create_worker(pool))
return -ENOMEM;
}
return 0;
}
int workqueue_online_cpu(unsigned int cpu)
{
struct worker_pool *pool;
struct workqueue_struct *wq;
int pi;
mutex_lock(&wq_pool_mutex);
for_each_pool(pool, pi) {
mutex_lock(&pool->attach_mutex);
if (pool->cpu == cpu)
rebind_workers(pool);
else if (pool->cpu < 0)
restore_unbound_workers_cpumask(pool, cpu);
mutex_unlock(&pool->attach_mutex);
}
/* update NUMA affinity of unbound workqueues */
list_for_each_entry(wq, &workqueues, list)
wq_update_unbound_numa(wq, cpu, true);
mutex_unlock(&wq_pool_mutex);
return 0;
}
int workqueue_offline_cpu(unsigned int cpu)
{
struct work_struct unbind_work;
struct workqueue_struct *wq;
/* unbinding per-cpu workers should happen on the local CPU */
INIT_WORK_ONSTACK(&unbind_work, wq_unbind_fn);
queue_work_on(cpu, system_highpri_wq, &unbind_work);
/* update NUMA affinity of unbound workqueues */
mutex_lock(&wq_pool_mutex);
list_for_each_entry(wq, &workqueues, list)
wq_update_unbound_numa(wq, cpu, false);
mutex_unlock(&wq_pool_mutex);
/* wait for per-cpu unbinding to finish */
flush_work(&unbind_work);
destroy_work_on_stack(&unbind_work);
return 0;
}
#ifdef CONFIG_SMP
struct work_for_cpu {
struct work_struct work;
long (*fn)(void *);
void *arg;
long ret;
};
static void work_for_cpu_fn(struct work_struct *work)
{
struct work_for_cpu *wfc = container_of(work, struct work_for_cpu, work);
wfc->ret = wfc->fn(wfc->arg);
}
/**
* work_on_cpu - run a function in thread context on a particular cpu
* @cpu: the cpu to run on
* @fn: the function to run
* @arg: the function arg
*
* It is up to the caller to ensure that the cpu doesn't go offline.
* The caller must not hold any locks which would prevent @fn from completing.
*
* Return: The value @fn returns.
*/
long work_on_cpu(int cpu, long (*fn)(void *), void *arg)
{
struct work_for_cpu wfc = { .fn = fn, .arg = arg };
INIT_WORK_ONSTACK(&wfc.work, work_for_cpu_fn);
schedule_work_on(cpu, &wfc.work);
flush_work(&wfc.work);
destroy_work_on_stack(&wfc.work);
return wfc.ret;
}
EXPORT_SYMBOL_GPL(work_on_cpu);
/**
* work_on_cpu_safe - run a function in thread context on a particular cpu
* @cpu: the cpu to run on
* @fn: the function to run
* @arg: the function argument
*
* Disables CPU hotplug and calls work_on_cpu(). The caller must not hold
* any locks which would prevent @fn from completing.
*
* Return: The value @fn returns.
*/
long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg)
{
long ret = -ENODEV;
get_online_cpus();
if (cpu_online(cpu))
ret = work_on_cpu(cpu, fn, arg);
put_online_cpus();
return ret;
}
EXPORT_SYMBOL_GPL(work_on_cpu_safe);
#endif /* CONFIG_SMP */
#ifdef CONFIG_FREEZER
/**
* freeze_workqueues_begin - begin freezing workqueues
*
* Start freezing workqueues. After this function returns, all freezable
* workqueues will queue new works to their delayed_works list instead of
* pool->worklist.
*
* CONTEXT:
* Grabs and releases wq_pool_mutex, wq->mutex and pool->lock's.
*/
void freeze_workqueues_begin(void)
{
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
mutex_lock(&wq_pool_mutex);
WARN_ON_ONCE(workqueue_freezing);
workqueue_freezing = true;
list_for_each_entry(wq, &workqueues, list) {
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
}
mutex_unlock(&wq_pool_mutex);
}
/**
* freeze_workqueues_busy - are freezable workqueues still busy?
*
* Check whether freezing is complete. This function must be called
* between freeze_workqueues_begin() and thaw_workqueues().
*
* CONTEXT:
* Grabs and releases wq_pool_mutex.
*
* Return:
* %true if some freezable workqueues are still busy. %false if freezing
* is complete.
*/
bool freeze_workqueues_busy(void)
{
bool busy = false;
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
mutex_lock(&wq_pool_mutex);
WARN_ON_ONCE(!workqueue_freezing);
list_for_each_entry(wq, &workqueues, list) {
if (!(wq->flags & WQ_FREEZABLE))
continue;
/*
* nr_active is monotonically decreasing. It's safe
* to peek without lock.
*/
rcu_read_lock_sched();
for_each_pwq(pwq, wq) {
WARN_ON_ONCE(pwq->nr_active < 0);
if (pwq->nr_active) {
busy = true;
rcu_read_unlock_sched();
goto out_unlock;
}
}
rcu_read_unlock_sched();
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
return busy;
}
/**
* thaw_workqueues - thaw workqueues
*
* Thaw workqueues. Normal queueing is restored and all collected
* frozen works are transferred to their respective pool worklists.
*
* CONTEXT:
* Grabs and releases wq_pool_mutex, wq->mutex and pool->lock's.
*/
void thaw_workqueues(void)
{
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
mutex_lock(&wq_pool_mutex);
if (!workqueue_freezing)
goto out_unlock;
workqueue_freezing = false;
/* restore max_active and repopulate worklist */
list_for_each_entry(wq, &workqueues, list) {
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
}
#endif /* CONFIG_FREEZER */
static int workqueue_apply_unbound_cpumask(void)
{
LIST_HEAD(ctxs);
int ret = 0;
struct workqueue_struct *wq;
struct apply_wqattrs_ctx *ctx, *n;
lockdep_assert_held(&wq_pool_mutex);
list_for_each_entry(wq, &workqueues, list) {
if (!(wq->flags & WQ_UNBOUND))
continue;
/* creating multiple pwqs breaks ordering guarantee */
if (wq->flags & __WQ_ORDERED)
continue;
ctx = apply_wqattrs_prepare(wq, wq->unbound_attrs);
if (!ctx) {
ret = -ENOMEM;
break;
}
list_add_tail(&ctx->list, &ctxs);
}
list_for_each_entry_safe(ctx, n, &ctxs, list) {
if (!ret)
apply_wqattrs_commit(ctx);
apply_wqattrs_cleanup(ctx);
}
return ret;
}
/**
* workqueue_set_unbound_cpumask - Set the low-level unbound cpumask
* @cpumask: the cpumask to set
*
* The low-level workqueues cpumask is a global cpumask that limits
* the affinity of all unbound workqueues. This function check the @cpumask
* and apply it to all unbound workqueues and updates all pwqs of them.
*
* Retun: 0 - Success
* -EINVAL - Invalid @cpumask
* -ENOMEM - Failed to allocate memory for attrs or pwqs.
*/
int workqueue_set_unbound_cpumask(cpumask_var_t cpumask)
{
int ret = -EINVAL;
cpumask_var_t saved_cpumask;
if (!zalloc_cpumask_var(&saved_cpumask, GFP_KERNEL))
return -ENOMEM;
cpumask_and(cpumask, cpumask, cpu_possible_mask);
if (!cpumask_empty(cpumask)) {
apply_wqattrs_lock();
/* save the old wq_unbound_cpumask. */
cpumask_copy(saved_cpumask, wq_unbound_cpumask);
/* update wq_unbound_cpumask at first and apply it to wqs. */
cpumask_copy(wq_unbound_cpumask, cpumask);
ret = workqueue_apply_unbound_cpumask();
/* restore the wq_unbound_cpumask when failed. */
if (ret < 0)
cpumask_copy(wq_unbound_cpumask, saved_cpumask);
apply_wqattrs_unlock();
}
free_cpumask_var(saved_cpumask);
return ret;
}
#ifdef CONFIG_SYSFS
/*
* Workqueues with WQ_SYSFS flag set is visible to userland via
* /sys/bus/workqueue/devices/WQ_NAME. All visible workqueues have the
* following attributes.
*
* per_cpu RO bool : whether the workqueue is per-cpu or unbound
* max_active RW int : maximum number of in-flight work items
*
* Unbound workqueues have the following extra attributes.
*
* id RO int : the associated pool ID
* nice RW int : nice value of the workers
* cpumask RW mask : bitmask of allowed CPUs for the workers
*/
struct wq_device {
struct workqueue_struct *wq;
struct device dev;
};
static struct workqueue_struct *dev_to_wq(struct device *dev)
{
struct wq_device *wq_dev = container_of(dev, struct wq_device, dev);
return wq_dev->wq;
}
static ssize_t per_cpu_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
return scnprintf(buf, PAGE_SIZE, "%d\n", (bool)!(wq->flags & WQ_UNBOUND));
}
static DEVICE_ATTR_RO(per_cpu);
static ssize_t max_active_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
return scnprintf(buf, PAGE_SIZE, "%d\n", wq->saved_max_active);
}
static ssize_t max_active_store(struct device *dev,
struct device_attribute *attr, const char *buf,
size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int val;
if (sscanf(buf, "%d", &val) != 1 || val <= 0)
return -EINVAL;
workqueue_set_max_active(wq, val);
return count;
}
static DEVICE_ATTR_RW(max_active);
static struct attribute *wq_sysfs_attrs[] = {
&dev_attr_per_cpu.attr,
&dev_attr_max_active.attr,
NULL,
};
ATTRIBUTE_GROUPS(wq_sysfs);
static ssize_t wq_pool_ids_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
const char *delim = "";
int node, written = 0;
rcu_read_lock_sched();
for_each_node(node) {
written += scnprintf(buf + written, PAGE_SIZE - written,
"%s%d:%d", delim, node,
unbound_pwq_by_node(wq, node)->pool->id);
delim = " ";
}
written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
rcu_read_unlock_sched();
return written;
}
static ssize_t wq_nice_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int written;
mutex_lock(&wq->mutex);
written = scnprintf(buf, PAGE_SIZE, "%d\n", wq->unbound_attrs->nice);
mutex_unlock(&wq->mutex);
return written;
}
/* prepare workqueue_attrs for sysfs store operations */
static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
{
struct workqueue_attrs *attrs;
lockdep_assert_held(&wq_pool_mutex);
attrs = alloc_workqueue_attrs(GFP_KERNEL);
if (!attrs)
return NULL;
copy_workqueue_attrs(attrs, wq->unbound_attrs);
return attrs;
}
static ssize_t wq_nice_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
struct workqueue_attrs *attrs;
int ret = -ENOMEM;
apply_wqattrs_lock();
attrs = wq_sysfs_prep_attrs(wq);
if (!attrs)
goto out_unlock;
if (sscanf(buf, "%d", &attrs->nice) == 1 &&
attrs->nice >= MIN_NICE && attrs->nice <= MAX_NICE)
ret = apply_workqueue_attrs_locked(wq, attrs);
else
ret = -EINVAL;
out_unlock:
apply_wqattrs_unlock();
free_workqueue_attrs(attrs);
return ret ?: count;
}
static ssize_t wq_cpumask_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int written;
mutex_lock(&wq->mutex);
written = scnprintf(buf, PAGE_SIZE, "%*pb\n",
cpumask_pr_args(wq->unbound_attrs->cpumask));
mutex_unlock(&wq->mutex);
return written;
}
static ssize_t wq_cpumask_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
struct workqueue_attrs *attrs;
int ret = -ENOMEM;
apply_wqattrs_lock();
attrs = wq_sysfs_prep_attrs(wq);
if (!attrs)
goto out_unlock;
ret = cpumask_parse(buf, attrs->cpumask);
if (!ret)
ret = apply_workqueue_attrs_locked(wq, attrs);
out_unlock:
apply_wqattrs_unlock();
free_workqueue_attrs(attrs);
return ret ?: count;
}
static ssize_t wq_numa_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int written;
mutex_lock(&wq->mutex);
written = scnprintf(buf, PAGE_SIZE, "%d\n",
!wq->unbound_attrs->no_numa);
mutex_unlock(&wq->mutex);
return written;
}
static ssize_t wq_numa_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
struct workqueue_attrs *attrs;
int v, ret = -ENOMEM;
apply_wqattrs_lock();
attrs = wq_sysfs_prep_attrs(wq);
if (!attrs)
goto out_unlock;
ret = -EINVAL;
if (sscanf(buf, "%d", &v) == 1) {
attrs->no_numa = !v;
ret = apply_workqueue_attrs_locked(wq, attrs);
}
out_unlock:
apply_wqattrs_unlock();
free_workqueue_attrs(attrs);
return ret ?: count;
}
static struct device_attribute wq_sysfs_unbound_attrs[] = {
__ATTR(pool_ids, 0444, wq_pool_ids_show, NULL),
__ATTR(nice, 0644, wq_nice_show, wq_nice_store),
__ATTR(cpumask, 0644, wq_cpumask_show, wq_cpumask_store),
__ATTR(numa, 0644, wq_numa_show, wq_numa_store),
__ATTR_NULL,
};
static struct bus_type wq_subsys = {
.name = "workqueue",
.dev_groups = wq_sysfs_groups,
};
static ssize_t wq_unbound_cpumask_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
int written;
mutex_lock(&wq_pool_mutex);
written = scnprintf(buf, PAGE_SIZE, "%*pb\n",
cpumask_pr_args(wq_unbound_cpumask));
mutex_unlock(&wq_pool_mutex);
return written;
}
static ssize_t wq_unbound_cpumask_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
cpumask_var_t cpumask;
int ret;
if (!zalloc_cpumask_var(&cpumask, GFP_KERNEL))
return -ENOMEM;
ret = cpumask_parse(buf, cpumask);
if (!ret)
ret = workqueue_set_unbound_cpumask(cpumask);
free_cpumask_var(cpumask);
return ret ? ret : count;
}
static struct device_attribute wq_sysfs_cpumask_attr =
__ATTR(cpumask, 0644, wq_unbound_cpumask_show,
wq_unbound_cpumask_store);
static int __init wq_sysfs_init(void)
{
int err;
err = subsys_virtual_register(&wq_subsys, NULL);
if (err)
return err;
return device_create_file(wq_subsys.dev_root, &wq_sysfs_cpumask_attr);
}
core_initcall(wq_sysfs_init);
static void wq_device_release(struct device *dev)
{
struct wq_device *wq_dev = container_of(dev, struct wq_device, dev);
kfree(wq_dev);
}
/**
* workqueue_sysfs_register - make a workqueue visible in sysfs
* @wq: the workqueue to register
*
* Expose @wq in sysfs under /sys/bus/workqueue/devices.
* alloc_workqueue*() automatically calls this function if WQ_SYSFS is set
* which is the preferred method.
*
* Workqueue user should use this function directly iff it wants to apply
* workqueue_attrs before making the workqueue visible in sysfs; otherwise,
* apply_workqueue_attrs() may race against userland updating the
* attributes.
*
* Return: 0 on success, -errno on failure.
*/
int workqueue_sysfs_register(struct workqueue_struct *wq)
{
struct wq_device *wq_dev;
int ret;
/*
* Adjusting max_active or creating new pwqs by applying
* attributes breaks ordering guarantee. Disallow exposing ordered
* workqueues.
*/
if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
return -EINVAL;
wq->wq_dev = wq_dev = kzalloc(sizeof(*wq_dev), GFP_KERNEL);
if (!wq_dev)
return -ENOMEM;
wq_dev->wq = wq;
wq_dev->dev.bus = &wq_subsys;
wq_dev->dev.release = wq_device_release;
dev_set_name(&wq_dev->dev, "%s", wq->name);
/*
* unbound_attrs are created separately. Suppress uevent until
* everything is ready.
*/
dev_set_uevent_suppress(&wq_dev->dev, true);
ret = device_register(&wq_dev->dev);
if (ret) {
kfree(wq_dev);
wq->wq_dev = NULL;
return ret;
}
if (wq->flags & WQ_UNBOUND) {
struct device_attribute *attr;
for (attr = wq_sysfs_unbound_attrs; attr->attr.name; attr++) {
ret = device_create_file(&wq_dev->dev, attr);
if (ret) {
device_unregister(&wq_dev->dev);
wq->wq_dev = NULL;
return ret;
}
}
}
dev_set_uevent_suppress(&wq_dev->dev, false);
kobject_uevent(&wq_dev->dev.kobj, KOBJ_ADD);
return 0;
}
/**
* workqueue_sysfs_unregister - undo workqueue_sysfs_register()
* @wq: the workqueue to unregister
*
* If @wq is registered to sysfs by workqueue_sysfs_register(), unregister.
*/
static void workqueue_sysfs_unregister(struct workqueue_struct *wq)
{
struct wq_device *wq_dev = wq->wq_dev;
if (!wq->wq_dev)
return;
wq->wq_dev = NULL;
device_unregister(&wq_dev->dev);
}
#else /* CONFIG_SYSFS */
static void workqueue_sysfs_unregister(struct workqueue_struct *wq) { }
#endif /* CONFIG_SYSFS */
/*
* Workqueue watchdog.
*
* Stall may be caused by various bugs - missing WQ_MEM_RECLAIM, illegal
* flush dependency, a concurrency managed work item which stays RUNNING
* indefinitely. Workqueue stalls can be very difficult to debug as the
* usual warning mechanisms don't trigger and internal workqueue state is
* largely opaque.
*
* Workqueue watchdog monitors all worker pools periodically and dumps
* state if some pools failed to make forward progress for a while where
* forward progress is defined as the first item on ->worklist changing.
*
* This mechanism is controlled through the kernel parameter
* "workqueue.watchdog_thresh" which can be updated at runtime through the
* corresponding sysfs parameter file.
*/
#ifdef CONFIG_WQ_WATCHDOG
static void wq_watchdog_timer_fn(unsigned long data);
static unsigned long wq_watchdog_thresh = 30;
static struct timer_list wq_watchdog_timer =
TIMER_DEFERRED_INITIALIZER(wq_watchdog_timer_fn, 0, 0);
static unsigned long wq_watchdog_touched = INITIAL_JIFFIES;
static DEFINE_PER_CPU(unsigned long, wq_watchdog_touched_cpu) = INITIAL_JIFFIES;
static void wq_watchdog_reset_touched(void)
{
int cpu;
wq_watchdog_touched = jiffies;
for_each_possible_cpu(cpu)
per_cpu(wq_watchdog_touched_cpu, cpu) = jiffies;
}
static void wq_watchdog_timer_fn(unsigned long data)
{
unsigned long thresh = READ_ONCE(wq_watchdog_thresh) * HZ;
bool lockup_detected = false;
struct worker_pool *pool;
int pi;
if (!thresh)
return;
rcu_read_lock();
for_each_pool(pool, pi) {
unsigned long pool_ts, touched, ts;
if (list_empty(&pool->worklist))
continue;
/* get the latest of pool and touched timestamps */
pool_ts = READ_ONCE(pool->watchdog_ts);
touched = READ_ONCE(wq_watchdog_touched);
if (time_after(pool_ts, touched))
ts = pool_ts;
else
ts = touched;
if (pool->cpu >= 0) {
unsigned long cpu_touched =
READ_ONCE(per_cpu(wq_watchdog_touched_cpu,
pool->cpu));
if (time_after(cpu_touched, ts))
ts = cpu_touched;
}
/* did we stall? */
if (time_after(jiffies, ts + thresh)) {
lockup_detected = true;
pr_emerg("BUG: workqueue lockup - pool");
pr_cont_pool_info(pool);
pr_cont(" stuck for %us!\n",
jiffies_to_msecs(jiffies - pool_ts) / 1000);
}
}
rcu_read_unlock();
if (lockup_detected)
show_workqueue_state();
wq_watchdog_reset_touched();
mod_timer(&wq_watchdog_timer, jiffies + thresh);
}
void wq_watchdog_touch(int cpu)
{
if (cpu >= 0)
per_cpu(wq_watchdog_touched_cpu, cpu) = jiffies;
else
wq_watchdog_touched = jiffies;
}
static void wq_watchdog_set_thresh(unsigned long thresh)
{
wq_watchdog_thresh = 0;
del_timer_sync(&wq_watchdog_timer);
if (thresh) {
wq_watchdog_thresh = thresh;
wq_watchdog_reset_touched();
mod_timer(&wq_watchdog_timer, jiffies + thresh * HZ);
}
}
static int wq_watchdog_param_set_thresh(const char *val,
const struct kernel_param *kp)
{
unsigned long thresh;
int ret;
ret = kstrtoul(val, 0, &thresh);
if (ret)
return ret;
if (system_wq)
wq_watchdog_set_thresh(thresh);
else
wq_watchdog_thresh = thresh;
return 0;
}
static const struct kernel_param_ops wq_watchdog_thresh_ops = {
.set = wq_watchdog_param_set_thresh,
.get = param_get_ulong,
};
module_param_cb(watchdog_thresh, &wq_watchdog_thresh_ops, &wq_watchdog_thresh,
0644);
static void wq_watchdog_init(void)
{
wq_watchdog_set_thresh(wq_watchdog_thresh);
}
#else /* CONFIG_WQ_WATCHDOG */
static inline void wq_watchdog_init(void) { }
#endif /* CONFIG_WQ_WATCHDOG */
static void __init wq_numa_init(void)
{
cpumask_var_t *tbl;
int node, cpu;
if (num_possible_nodes() <= 1)
return;
if (wq_disable_numa) {
pr_info("workqueue: NUMA affinity support disabled\n");
return;
}
wq_update_unbound_numa_attrs_buf = alloc_workqueue_attrs(GFP_KERNEL);
BUG_ON(!wq_update_unbound_numa_attrs_buf);
/*
* We want masks of possible CPUs of each node which isn't readily
* available. Build one from cpu_to_node() which should have been
* fully initialized by now.
*/
tbl = kzalloc(nr_node_ids * sizeof(tbl[0]), GFP_KERNEL);
BUG_ON(!tbl);
for_each_node(node)
BUG_ON(!zalloc_cpumask_var_node(&tbl[node], GFP_KERNEL,
node_online(node) ? node : NUMA_NO_NODE));
for_each_possible_cpu(cpu) {
node = cpu_to_node(cpu);
if (WARN_ON(node == NUMA_NO_NODE)) {
pr_warn("workqueue: NUMA node mapping not available for cpu%d, disabling NUMA support\n", cpu);
/* happens iff arch is bonkers, let's just proceed */
return;
}
cpumask_set_cpu(cpu, tbl[node]);
}
wq_numa_possible_cpumask = tbl;
wq_numa_enabled = true;
}
/**
* workqueue_init_early - early init for workqueue subsystem
*
* This is the first half of two-staged workqueue subsystem initialization
* and invoked as soon as the bare basics - memory allocation, cpumasks and
* idr are up. It sets up all the data structures and system workqueues
* and allows early boot code to create workqueues and queue/cancel work
* items. Actual work item execution starts only after kthreads can be
* created and scheduled right before early initcalls.
*/
int __init workqueue_init_early(void)
{
int std_nice[NR_STD_WORKER_POOLS] = { 0, HIGHPRI_NICE_LEVEL };
int i, cpu;
WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long));
BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL));
cpumask_copy(wq_unbound_cpumask, cpu_possible_mask);
pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC);
/* initialize CPU pools */
for_each_possible_cpu(cpu) {
struct worker_pool *pool;
i = 0;
for_each_cpu_worker_pool(pool, cpu) {
BUG_ON(init_worker_pool(pool));
pool->cpu = cpu;
cpumask_copy(pool->attrs->cpumask, cpumask_of(cpu));
pool->attrs->nice = std_nice[i++];
pool->node = cpu_to_node(cpu);
/* alloc pool ID */
mutex_lock(&wq_pool_mutex);
BUG_ON(worker_pool_assign_id(pool));
mutex_unlock(&wq_pool_mutex);
}
}
/* create default unbound and ordered wq attrs */
for (i = 0; i < NR_STD_WORKER_POOLS; i++) {
struct workqueue_attrs *attrs;
BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
attrs->nice = std_nice[i];
unbound_std_wq_attrs[i] = attrs;
/*
* An ordered wq should have only one pwq as ordering is
* guaranteed by max_active which is enforced by pwqs.
* Turn off NUMA so that dfl_pwq is used for all nodes.
*/
BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
attrs->nice = std_nice[i];
attrs->no_numa = true;
ordered_wq_attrs[i] = attrs;
}
system_wq = alloc_workqueue("events", 0, 0);
system_highpri_wq = alloc_workqueue("events_highpri", WQ_HIGHPRI, 0);
system_long_wq = alloc_workqueue("events_long", 0, 0);
system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND,
WQ_UNBOUND_MAX_ACTIVE);
system_freezable_wq = alloc_workqueue("events_freezable",
WQ_FREEZABLE, 0);
system_power_efficient_wq = alloc_workqueue("events_power_efficient",
WQ_POWER_EFFICIENT, 0);
system_freezable_power_efficient_wq = alloc_workqueue("events_freezable_power_efficient",
WQ_FREEZABLE | WQ_POWER_EFFICIENT,
0);
BUG_ON(!system_wq || !system_highpri_wq || !system_long_wq ||
!system_unbound_wq || !system_freezable_wq ||
!system_power_efficient_wq ||
!system_freezable_power_efficient_wq);
return 0;
}
/**
* workqueue_init - bring workqueue subsystem fully online
*
* This is the latter half of two-staged workqueue subsystem initialization
* and invoked as soon as kthreads can be created and scheduled.
* Workqueues have been created and work items queued on them, but there
* are no kworkers executing the work items yet. Populate the worker pools
* with the initial workers and enable future kworker creations.
*/
int __init workqueue_init(void)
{
struct workqueue_struct *wq;
struct worker_pool *pool;
int cpu, bkt;
/*
* It'd be simpler to initialize NUMA in workqueue_init_early() but
* CPU to node mapping may not be available that early on some
* archs such as power and arm64. As per-cpu pools created
* previously could be missing node hint and unbound pools NUMA
* affinity, fix them up.
*/
wq_numa_init();
mutex_lock(&wq_pool_mutex);
for_each_possible_cpu(cpu) {
for_each_cpu_worker_pool(pool, cpu) {
pool->node = cpu_to_node(cpu);
}
}
list_for_each_entry(wq, &workqueues, list)
wq_update_unbound_numa(wq, smp_processor_id(), true);
mutex_unlock(&wq_pool_mutex);
/* create the initial workers */
for_each_online_cpu(cpu) {
for_each_cpu_worker_pool(pool, cpu) {
pool->flags &= ~POOL_DISASSOCIATED;
BUG_ON(!create_worker(pool));
}
}
hash_for_each(unbound_pool_hash, bkt, pool, hash_node)
BUG_ON(!create_worker(pool));
wq_online = true;
wq_watchdog_init();
return 0;
}