Merge remote-tracking branch 'remotes/origin/tmp-aefd2d632eb0' into msm-lahaina

* remotes/origin/tmp-aefd2d632eb0:
  ANDROID: binder: fix sleeping from invalid function caused by RT inheritance
  FROMGIT: scsi: ufs: override auto suspend tunables for ufs
  FROMGIT: scsi: core: allow auto suspend override by low-level driver
  Linux 5.4-rc6
  net: fix installing orphaned programs
  net: cls_bpf: fix NULL deref on offload filter removal
  selftests: bpf: Skip write only files in debugfs
  selftests: net: reuseport_dualstack: fix uninitalized parameter
  r8169: fix wrong PHY ID issue with RTL8168dp
  net: dsa: bcm_sf2: Fix IMP setup for port different than 8
  net: phylink: Fix phylink_dbg() macro
  gve: Fixes DMA synchronization.
  inet: stop leaking jiffies on the wire
  ixgbe: Remove duplicate clear_bit() call
  Documentation: networking: device drivers: Remove stray asterisks
  e1000: fix memory leaks
  i40e: Fix receive buffer starvation for AF_XDP
  igb: Fix constant media auto sense switching when no cable is connected
  net: ethernet: arc: add the missed clk_disable_unprepare
  ANDROID: gki_defconfig: enable CONFIG_KEYBOARD_GPIO
  NFS: Fix an RCU lock leak in nfs4_refresh_delegation_stateid()
  NFSv4: Don't allow a cached open with a revoked delegation
  arm64: apply ARM64_ERRATUM_843419 workaround for Brahma-B53 core
  arm64: Brahma-B53 is SSB and spectre v2 safe
  arm64: apply ARM64_ERRATUM_845719 workaround for Brahma-B53 core
  igb: Enable media autosense for the i350.
  igb/igc: Don't warn on fatal read failures when the device is removed
  tcp: increase tcp_max_syn_backlog max value
  net: increase SOMAXCONN to 4096
  netdevsim: Fix use-after-free during device dismantle
  rxrpc: Fix handling of last subpacket of jumbo packet
  usb: dwc3: gadget: fix race when disabling ep with cancelled xfers
  ANDROID: Remove KVM_INTEL allmodconfig workaround
  ANDROID: Fix x86_64 allmodconfig build
  iocost: don't nest spin_lock_irq in ioc_weight_write()
  s390/idle: fix cpu idle time calculation
  s390/unwind: fix mixing regs and sp
  s390/cmm: fix information leak in cmm_timeout_handler()
  arm64: cpufeature: Enable Qualcomm Falkor errata 1009 for Kryo
  KVM: vmx, svm: always run with EFER.NXE=1 when shadow paging is active
  kvm: call kvm_arch_destroy_vm if vm creation fails
  efi/efi_test: Lock down /dev/efi_test and require CAP_SYS_ADMIN
  x86, efi: Never relocate kernel below lowest acceptable address
  efi: libstub/arm: Account for firmware reserved memory at the base of RAM
  efi/random: Treat EFI_RNG_PROTOCOL output as bootloader randomness
  efi/tpm: Return -EINVAL when determining tpm final events log size fails
  efi: Make CONFIG_EFI_RCI2_TABLE selectable on x86 only
  hv_netvsc: Fix error handling in netvsc_attach()
  hv_netvsc: Fix error handling in netvsc_set_features()
  cxgb4: fix panic when attaching to ULD fail
  net: annotate lockless accesses to sk->sk_napi_id
  FROMLIST: scsi: ufs-qcom: enter and exit hibern8 during clock scaling
  FROMLIST: scsi: ufs: export hibern8 entry and exit
  ANDROID: scsi: ufs: UFS crypto variant operations API
  ANDROID: gki_defconfig: enable inline encryption
  FROMLIST: ext4: add inline encryption support
  FROMLIST: f2fs: add inline encryption support
  FROMLIST: fscrypt: add inline encryption support
  FROMLIST: scsi: ufs: Add inline encryption support to UFS
  FROMLIST: scsi: ufs: UFS crypto API
  FROMLIST: scsi: ufs: UFS driver v2.1 spec crypto additions
  FROMLIST: block: blk-crypto for Inline Encryption
  ANDROID: block: Fix bio_crypt_should_process WARN_ON
  ALSA: timer: Fix mutex deadlock at releasing card
  FROMLIST: block: Add encryption context to struct bio
  io_uring: ensure we clear io_kiocb->result before each issue
  parisc: fix frame pointer in ftrace_regs_caller()
  net: annotate accesses to sk->sk_incoming_cpu
  FROMLIST: block: Keyslot Manager for Inline Encryption
  FROMLIST: f2fs: add support for IV_INO_LBLK_64 encryption policies
  FROMLIST: ext4: add support for IV_INO_LBLK_64 encryption policies
  FROMLIST: fscrypt: add support for IV_INO_LBLK_64 policies
  FROMLIST: docs: ioctl-number: document fscrypt ioctl numbers
  FROMLIST: fscrypt: zeroize fscrypt_info before freeing
  FROMLIST: fscrypt: remove struct fscrypt_ctx
  FROMLIST: fscrypt: invoke crypto API for ESSIV handling
  mlxsw: core: Unpublish devlink parameters during reload
  qed: Optimize execution time for nvm attributes configuration.
  vxlan: fix unexpected failure of vxlan_changelink()
  qed: fix spelling mistake "queuess" -> "queues"
  SUNRPC: Destroy the back channel when we destroy the host transport
  SUNRPC: The RDMA back channel mustn't disappear while requests are outstanding
  SUNRPC: The TCP back channel mustn't disappear while requests are outstanding
  drm/amdgpu: enable -msse2 for GCC 7.1+ users
  drm/amdgpu: fix stack alignment ABI mismatch for GCC 7.1+
  drm/amdgpu: fix stack alignment ABI mismatch for Clang
  drm/radeon: Fix EEH during kexec
  drm/amdgpu/gmc10: properly set BANK_SELECT and FRAGMENT_SIZE
  drm/amdgpu/powerplay/vega10: allow undervolting in p7
  dc.c:use kzalloc without test
  drm/amd/display: setting the DIG_MODE to the correct value.
  drm/amd/display: Passive DP->HDMI dongle detection fix
  drm/amd/display: add 50us buffer as WA for pstate switch in active
  drm/amd/display: Allow inverted gamma
  drm/amd/display: do not synchronize "drr" displays
  drm/amdgpu: If amdgpu_ib_schedule fails return back the error.
  drm/sched: Set error to s_fence if HW job submission failed.
  drm/amdgpu/gfx10: update gfx golden settings for navi12
  drm/amdgpu/gfx10: update gfx golden settings for navi14
  drm/amdgpu/gfx10: update gfx golden settings
  drm/amd/display: Change Navi14's DWB flag to 1
  drm/amdgpu/sdma5: do not execute 0-sized IBs (v2)
  drm/amdgpu: Fix SDMA hang when performing VKexample test
  iwlwifi: fw api: support new API for scan config cmd
  mt76: dma: fix buffer unmap with non-linear skbs
  mt76: mt76x2e: disable pcie_aspm by default
  ALSA: hda - Fix mutex deadlock in HDMI codec driver
  usb: cdns3: gadget: Fix g_audio use case when connected to Super-Speed host
  usb: cdns3: gadget: reset EP_CLAIMED flag while unloading
  gfs2: Fix initialisation of args for remount
  iommu/vt-d: Fix panic after kexec -p for kdump
  iommu/amd: Apply the same IVRS IOAPIC workaround to Acer Aspire A315-41
  iommu/ipmmu-vmsa: Remove dev_err() on platform_get_irq() failure
  nl80211: fix validation of mesh path nexthop
  nl80211: Disallow setting of HT for channel 14
  USB: serial: whiteheat: fix line-speed endianness
  USB: serial: whiteheat: fix potential slab corruption
  MAINTAINERS: Change to my personal email address
  drm/i915: Fix PCH reference clock for FDI on HSW/BDW
  net: rtnetlink: fix a typo fbd -> fdb
  net/smc: fix refcounting for non-blocking connect()
  bonding: fix using uninitialized mode_lock
  net: fec_ptp: Use platform_get_irq_xxx_optional() to avoid error message
  net: fec_main: Use platform_get_irq_byname_optional() to avoid error message
  MAINTAINERS: remove Dave Watson as TLS maintainer
  vxlan: check tun_info options_len properly
  erspan: fix the tun_info options_len check for erspan
  net: hisilicon: Fix ping latency when deal with high throughput
  net/mlx4_core: Dynamically set guaranteed amount of counters per VF
  net/mlx5e: Initialize on stack link modes bitmap
  net/mlx5e: Fix ethtool self test: link speed
  net/mlx5e: Fix handling of compressed CQEs in case of low NAPI budget
  net/mlx5e: Don't store direct pointer to action's tunnel info
  net/mlx5: Fix NULL pointer dereference in extended destination
  net/mlx5: Fix rtable reference leak
  net/mlx5e: Only skip encap flows update when encap init failed
  net/mlx5e: Replace kfree with kvfree when free vhca stats
  net/mlx5e: Remove incorrect match criteria assignment line
  net/mlx5e: Determine source port properly for vlan push action
  net/mlx5: Fix flow counter list auto bits struct
  net: mscc: ocelot: refuse to overwrite the port's native vlan
  net: mscc: ocelot: fix vlan_filtering when enslaving to bridge before link is up
  wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle
  drm/i915/tgl: Fix doc not corresponding to code
  ANDROID: staging: ion: Fix dynamic heap ID assignment
  ANDROID: Fix typo for FROMLIST: section
  drm/panfrost: Don't dereference bogus MMU pointers
  ANDROID: media: increase video max frame number
  drm/panfrost: fix -Wmissing-prototypes warnings
  net: hisilicon: Fix "Trying to free already-free IRQ"
  fjes: Handle workqueue allocation failure
  Revert "sched: Rework pick_next_task() slow-path"
  arm64: cpufeature: Enable Qualcomm Falkor/Kryo errata 1003
  drm/etnaviv: fix dumping of iommuv2
  drm/etnaviv: reinstate MMUv1 command buffer window check
  drm/etnaviv: fix deadlock in GPU coredump
  arm64: Ensure VM_WRITE|VM_SHARED ptes are clean by default
  um-ubd: Entrust re-queue to the upper layers
  nvme-multipath: remove unused groups_only mode in ana log
  nvme-multipath: fix possible io hang after ctrl reconnect
  powerpc/powernv: Fix CPU idle to be called with IRQs disabled
  sched/topology: Allow sched_asym_cpucapacity to be disabled
  sched/topology: Don't try to build empty sched domains
  USB: gadget: Reject endpoints with 0 maxpacket value
  powerpc/prom_init: Undo relocation before entering secure mode
  ANDROID: dummy_cpufreq: Implement get()
  ANDROID: gki_defconfig: enable CONFIG_CPUSETS
  ANDROID: virtio: virtio_input: Set the amount of multitouch slots in virtio input
  scsi: qla2xxx: stop timer in shutdown path
  hwmon: (ina3221) Fix read timeout issue
  net: usb: lan78xx: Disable interrupts before calling generic_handle_irq()
  Revert "ANDROID: Revert "kheaders: make headers archive reproducible""
  net: dsa: sja1105: improve NET_DSA_SJA1105_TAS dependency
  net: ethernet: ftgmac100: Fix DMA coherency issue with SW checksum
  net: fix sk_page_frag() recursion from memory reclaim
  udp: fix data-race in udp_set_dev_scratch()
  net: dpaa2: Use the correct style for SPDX License Identifier
  net: add READ_ONCE() annotation in __skb_wait_for_more_packets()
  net: use skb_queue_empty_lockless() in busy poll contexts
  net: use skb_queue_empty_lockless() in poll() handlers
  udp: use skb_queue_empty_lockless()
  net: add skb_queue_empty_lockless()
  ANDROID: gki_defconfig: enable CONFIG_CPU_FREQ_GOV_CONSERVATIVE
  RDMA/hns: Prevent memory leaks of eq->buf_list
  RISC-V: Add PCIe I/O BAR memory mapping
  RDMA/iw_cxgb4: Avoid freeing skb twice in arp failure case
  RDMA/mlx5: Use irq xarray locking for mkey_table
  ANDROID: fix VIDEOBUF2_CORE dependency in 'allmodconfig' builds
  UAS: Revert commit 3ae62a4209 ("UAS: fix alignment of scatter/gather segments")
  usb-storage: Revert commit 747668dbc0 ("usb-storage: Set virt_boundary_mask to avoid SG overflows")
  usbip: Fix free of unallocated memory in vhci tx
  usbip: tools: Fix read_usb_vudc_device() error path handling
  usb: xhci: fix __le32/__le64 accessors in debugfs code
  usb: xhci: fix Immediate Data Transfer endianness
  xhci: Fix use-after-free regression in xhci clear hub TT implementation
  USB: ldusb: fix control-message timeout
  USB: ldusb: use unsigned size format specifiers
  USB: ldusb: fix ring-buffer locking
  USB: Skip endpoints with 0 maxpacket length
  io_uring: don't touch ctx in setup after ring fd install
  ANDROID: modpost: fix up merge issues due to namespace removal
  Revert "ALSA: hda: Flush interrupts on disabling"
  perf/headers: Fix spelling s/EACCESS/EACCES/, s/privilidge/privilege/
  perf/x86/uncore: Fix event group support
  perf/x86/amd/ibs: Handle erratum #420 only on the affected CPU family (10h)
  perf/x86/amd/ibs: Fix reading of the IBS OpData register and thus precise RIP validity
  perf/core: Start rejecting the syscall with attr.__reserved_2 set
  vringh: fix copy direction of vringh_iov_push_kern()
  vsock/virtio: remove unused 'work' field from 'struct virtio_vsock_pkt'
  virtio_ring: fix stalls for packed rings
  riscv: for C functions called only from assembly, mark with __visible
  riscv: fp: add missing __user pointer annotations
  riscv: add missing header file includes
  riscv: mark some code and data as file-static
  riscv: init: merge split string literals in preprocessor directive
  riscv: add prototypes for assembly language functions from head.S
  io_uring: Fix leaked shadow_req
  fix memory leak in large read decrypt offload
  Linux 5.4-rc5
  usb: cdns3: gadget: Don't manage pullups
  usb: dwc3: remove the call trace of USBx_GFLADJ
  usb: gadget: configfs: fix concurrent issue between composite APIs
  usb: dwc3: pci: prevent memory leak in dwc3_pci_probe
  usb: gadget: composite: Fix possible double free memory bug
  usb: gadget: udc: atmel: Fix interrupt storm in FIFO mode.
  usb: renesas_usbhs: fix type of buf
  usb: renesas_usbhs: Fix warnings in usbhsg_recip_handler_std_set_device()
  usb: gadget: udc: renesas_usb3: Fix __le16 warnings
  usb: renesas_usbhs: fix __le16 warnings
  usb: cdns3: include host-export,h for cdns3_host_init
  usb: mtu3: fix missing include of mtu3_dr.h
  usb: fsl: Check memory resource before releasing it
  usb: dwc3: select CONFIG_REGMAP_MMIO
  ANDROID: add README.md
  selftests: fib_tests: add more tests for metric update
  ipv4: fix route update on metric change.
  net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol()
  ALSA: bebob: Fix prototype of helper function to return negative value
  cxgb4: request the TX CIDX updates to status page
  netns: fix GFP flags in rtnl_net_notifyid()
  net: ethernet: Use the correct style for SPDX License Identifier
  net/smc: keep vlan_id for SMC-R in smc_listen_work()
  net/smc: fix closing of fallback SMC sockets
  ANDROID: virt_wifi: Add data ops for scan data simulation
  ANDROID: Allow DRM_IOCTL_MODE_*_DUMB for render clients.
  riscv: cleanup do_trap_break
  net: hwbm: if CONFIG_NET_HWBM unset, make stub functions static
  ANDROID: cpufreq: create dummy cpufreq driver
  net: mvneta: make stub functions static inline
  net: sch_generic: Use pfifo_fast as fallback scheduler for CAN hardware
  nbd: verify socket is supported during setup
  ata: libahci_platform: Fix regulator_get_optional() misuse
  nbd: handle racing with error'ed out commands
  nbd: protect cmd->status with cmd->lock
  Revert "ANDROID: x86: Remove a useless warning message"
  ANDROID: init: GKI: enable hidden configs for media
  ANDROID: gki_defconfig: add FORTIFY_SOURCE, remove SPMI_MSM_PMIC_ARB
  Revert "Revert "Revert "Revert "x86/mm: Identify the end of the kernel area to be reserved""""
  build.config.*: Link android-mainline kernels with LLD
  ANDROID: ALSA: jack: Update supported jack switch types
  ANDROID: ASoC: compress: fix unsigned integer overflow check
  io_uring: fix bad inflight accounting for SETUP_IOPOLL|SETUP_SQTHREAD
  io_uring: used cached copies of sq->dropped and cq->overflow
  FROMLIST: iommu: Export core IOMMU functions to kernel modules
  FROMLIST: PCI: Export PCI ACS and DMA searching functions to modules
  FROMLIST: of: Export of_phandle_iterator_args() to modules
  ARM: dts: stm32: relax qspi pins slew-rate for stm32mp157
  io_uring: Fix race for sqes with userspace
  io_uring: Fix broken links with offloading
  io_uring: Fix corrupted user_data
  xen: issue deprecation warning for 32-bit pv guest
  kvm: Allocate memslots and buses before calling kvm_arch_init_vm
  powerpc/powernv/eeh: Fix oops when probing cxl devices
  irqchip/sifive-plic: Skip contexts except supervisor in plic_init()
  ANDROID: soc: qcom: Add required header to irq.h
  ACPI: processor: Add QoS requests for all CPUs
  cifs: Fix cifsInodeInfo lock_sem deadlock when reconnect occurs
  CIFS: Fix use after free of file info structures
  CIFS: Fix retry mid list corruption on reconnects
  scsi: sd: define variable dif as unsigned int instead of bool
  ANDROID: v4l2-compat-ioctl32.c: copy reserved fields
  scsi: target: cxgbit: Fix cxgbit_fw4_ack()
  IB/core: Avoid deadlock during netlink message handling
  ANDROID: of: property: Enable of_devlink by default
  virt_wifi: fix refcnt leak in module exit routine
  net: remove unnecessary variables and callback
  vxlan: add adjacent link to limit depth level
  net: core: add ignore flag to netdev_adjacent structure
  macsec: fix refcnt leak in module exit routine
  team: fix nested locking lockdep warning
  bonding: use dynamic lockdep key instead of subclass
  bonding: fix unexpected IFF_BONDING bit unset
  net: core: add generic lockdep keys
  net: core: limit nested device depth
  keys: Fix memory leak in copy_net_ns
  ANDROID: of: property: Make sure child dependencies don't block probing of parent
  ANDROID: driver core: Allow fwnode_operations.add_links to differentiate errors
  ANDROID: driver core: Allow a device to wait on optional suppliers
  ANDROID: driver core: Add device link support for SYNC_STATE_ONLY flag
  FROMGIT: docs: driver-model: Add documentation for sync_state
  FROMGIT: driver: core: Improve documentation for fwnode_operations.add_links()
  FROMGIT: of: property: Minor code formatting/style clean ups
  i2c: stm32f7: remove warning when compiling with W=1
  i2c: stm32f7: fix a race in slave mode with arbitration loss irq
  i2c: stm32f7: fix first byte to send in slave mode
  i2c: mt65xx: fix NULL ptr dereference
  RDMA/nldev: Skip counter if port doesn't match
  irqchip/gic-v3-its: Use the exact ITSList for VMOVP
  FROMLIST: drivers: pinctrl: msm: setup GPIO chip in hierarchy
  FROMLIST: drivers: irqchip: pdc: Add irqchip set/get state calls
  FROMLIST: genirq: Introduce irq_chip_get/set_parent_state calls
  FROMLIST: drivers: irqchip: pdc: additionally set type in SPI config registers
  FROMLIST: dt-bindings/interrupt-controller: pdc: add SPI config register
  FROMLIST: of: irq: document properties for wakeup interrupt parent
  FROMLIST: drivers: irqchip: add PDC irqdomain for wakeup capable GPIOs
  FROMLIST: drivers: irqchip: pdc: Do not toggle IRQ_ENABLE during mask/unmask
  FROMLIST: drivers: irqchip: qcom-pdc: update max PDC interrupts
  FROMLIST: irqdomain: add bus token DOMAIN_BUS_WAKEUP
  gfs2: Fix memory leak when gfs2meta's fs_context is freed
  ALSA: hda/realtek - Fix 2 front mics of codec 0x623
  ALSA: hda/realtek - Add support for ALC623
  ALSA: usb-audio: Add DSD support for Gustard U16/X26 USB Interface
  netfilter: nft_payload: fix missing check for matching length in offloads
  ipvs: move old_secure_tcp into struct netns_ipvs
  ipvs: don't ignore errors in case refcounting ip_vs module fails
  ANDROID: drop patches/ symbolic link
  mfd: mt6397: Fix probe after changing mt6397-core
  net: phy: smsc: LAN8740: add PHY_RST_AFTER_CLK_EN flag
  MIPS: tlbex: Fix build_restore_pagemask KScratch restore
  io_uring: correct timeout req sequence when inserting a new entry
  io_uring : correct timeout req sequence when waiting timeout
  io_uring: revert "io_uring: optimize submit_and_wait API"
  MIPS: bmips: mark exception vectors as char arrays
  xsk: Fix registration of Rx-only sockets
  net/flow_dissector: switch to siphash
  MAINTAINERS: Update the Spreadtrum SoC maintainer
  ANDROID: Revert "ANDROID: Removed check for asm-goto"
  riscv: cleanup <asm/bug.h>
  riscv: Fix undefined reference to vmemmap_populate_basepages
  riscv: Fix implicit declaration of 'page_to_section'
  riscv: fix fs/proc/kcore.c compilation with sparsemem enabled
  ANDROID: sdcardfs: evict dentries on fscrypt key removal
  ANDROID: fscrypt: add key removal notifier chain
  ANDROID: move up spin_unlock_bh() ahead of remove_proc_entry()
  ANDROID: Kconfig.gki: Add hidden MMC config support
  ANDROID: Kconfig.gki: Add Hidden QCOM configs
  ANDROID: Kconfig.gki: Add SND_PCM_ELD to HIDDEN_DRM configs
  ANDROID: Kconfig.gki: Add extra audio selections
  ANDROID: Kconfig.gki: Add extra GKI_HIDDEN_REGMAP_CONFIGS selections
  ANDROID: Four part re-add of asm-goto usage [4/4]
  ANDROID: Four part re-add of asm-goto usage [3/4]
  ANDROID: Four part re-add of asm-goto usage [2/4]
  ANDROID: Four part re-add of asm-goto usage [1/4]
  ANDROID: Move out patches/ and replace by link to kernel/common-patches project
  of: reserved_mem: add missing of_node_put() for proper ref-counting
  of: unittest: fix memory leak in unittest_data_add
  dt-bindings: riscv: Fix CPU schema errors
  MAINTAINERS: Remove Gregory and Brian for ARCH_BRCMSTB
  drm/v3d: Fix memory leak in v3d_submit_cl_ioctl
  panfrost: Properly undo pm_runtime_enable when deferring a probe
  dmaengine: cppi41: Fix cppi41_dma_prep_slave_sg() when idle
  posix-cpu-timers: Fix two trivial comments
  timers/sched_clock: Include local timekeeping.h for missing declarations
  lib/vdso: Make clock_getres() POSIX compliant again
  fuse: redundant get_fuse_inode() calls in fuse_writepages_fill()
  fuse: Add changelog entries for protocols 7.1 - 7.8
  fuse: truncate pending writes on O_TRUNC
  fuse: flush dirty data/metadata before non-truncate setattr
  netfilter: nf_tables_offload: restore basechain deletion
  netfilter: nf_flow_table: set timeout before insertion into hashes
  rtlwifi: rtl_pci: Fix problem of too small skb->len
  iwlwifi: pcie: 0x2720 is qu and 0x30DC is not
  iwlwifi: pcie: add workaround for power gating in integrated 22000
  iwlwifi: mvm: handle iwl_mvm_tvqm_enable_txq() error return
  iwlwifi: pcie: fix all 9460 entries for qnj
  iwlwifi: pcie: fix PCI ID 0x2720 configs that should be soc
  rtlwifi: Fix potential overflow on P2P code
  iwlwifi: pcie: fix merge damage on making QnJ exclusive
  scripts/nsdeps: use alternative sed delimiter
  virtiofs: Remove set but not used variable 'fc'
  fs/dax: Fix pmd vs pte conflict detection
  opp: Reinitialize the list_kref before adding the static OPPs again
  bpf: Fix use after free in bpf_get_prog_name
  ALSA: hda: Add Tigerlake/Jasperlake PCI ID
  scsi: qla2xxx: Fix partial flash write of MBI
  scsi: qla2xxx: Initialized mailbox to prevent driver load failure
  scsi: lpfc: Honor module parameter lpfc_use_adisc
  ipv6: include <net/addrconf.h> for missing declarations
  net: openvswitch: free vport unless register_netdevice() succeeds
  selftests: Make l2tp.sh executable
  net: sched: taprio: fix -Wmissing-prototypes warnings
  bnxt_en: Avoid disabling pci device in bnxt_remove_one() for already disabled device.
  bnxt_en: Minor formatting changes in FW devlink_health_reporter
  bnxt_en: Adjust the time to wait before polling firmware readiness.
  bnxt_en: Fix devlink NVRAM related byte order related issues.
  bnxt_en: Fix the size of devlink MSIX parameters.
  net: stmmac: Fix the problem of tso_xmit
  dynamic_debug: provide dynamic_hex_dump stub
  bpf: Fix use after free in subprog's jited symbol removal
  RDMA/uverbs: Prevent potential underflow
  KVM: nVMX: Don't leak L1 MMIO regions to L2
  ARC: perf: Accommodate big-endian CPU
  ARC: [plat-hsdk]: Enable on-boardi SPI ADC IC
  ARC: [plat-hsdk]: Enable on-board SPI NOR flash IC
  KVM: SVM: Fix potential wrong physical id in avic_handle_ldr_update
  cpufreq: Cancel policy update work scheduled before freeing
  s390/kaslr: add support for R_390_GLOB_DAT relocation type
  s390/zcrypt: fix memleak at release
  ALSA: usb-audio: Fix copy&paste error in the validator
  perf/aux: Fix AUX output stopping
  kvm: clear kvmclock MSR on reset
  KVM: x86: fix bugon.cocci warnings
  KVM: VMX: Remove specialized handling of unexpected exit-reasons
  selftests: kvm: fix sync_regs_test with newer gccs
  selftests: kvm: vmx_dirty_log_test: skip the test when VMX is not supported
  selftests: kvm: consolidate VMX support checks
  selftests: kvm: vmx_set_nested_state_test: don't check for VMX support twice
  KVM: Don't shrink/grow vCPU halt_poll_ns if host side polling is disabled
  selftests: kvm: synchronize .gitignore to Makefile
  kvm: x86: Expose RDPID in KVM_GET_SUPPORTED_CPUID
  cpuidle: haltpoll: Take 'idle=' override into account
  ACPI: NFIT: Fix unlock on error in scrub_show()
  tracing: Fix race in perf_trace_buf initialization
  x86/cpu/vmware: Fix platform detection VMWARE_PORT macro
  x86/cpu/vmware: Use the full form of INL in VMWARE_HYPERCALL, for clang/llvm
  xdp: Handle device unregister for devmap_hash map type
  r8152: add device id for Lenovo ThinkPad USB-C Dock Gen 2
  ipv4: fix IPSKB_FRAG_PMTU handling with fragmentation
  ARM: 8926/1: v7m: remove register save to stack before svc
  Input: st1232 - fix reporting multitouch coordinates
  Revert "pwm: Let pwm_get_state() return the last implemented state"
  mmc: mxs: fix flags passed to dmaengine_prep_slave_sg
  virtiofs: Retry request submission from worker context
  virtiofs: Count pending forgets as in_flight forgets
  virtiofs: Set FR_SENT flag only after request has been sent
  virtiofs: No need to check fpq->connected state
  virtiofs: Do not end request in submission context
  fuse: don't advise readdirplus for negative lookup
  drm/komeda: Fix typos in komeda_splitter_validate
  drm/komeda: Don't flush inactive pipes
  i2c: aspeed: fix master pending state handling
  mmc: cqhci: Commit descriptors before setting the doorbell
  mmc: sdhci-omap: Fix Tuning procedure for temperatures < -20C
  ALSA: hda/realtek - Add support for ALC711
  perf/aux: Fix tracking of auxiliary trace buffer allocation
  fuse: don't dereference req->args on finished request
  opp: core: Revert "add regulators enable and disable"
  cifs: Fix missed free operations
  CIFS: avoid using MID 0xFFFF
  cifs: clarify comment about timestamp granularity for old servers
  cifs: Handle -EINPROGRESS only when noblockcnt is set
  PM: QoS: Drop frequency QoS types from device PM QoS
  cpufreq: Use per-policy frequency QoS
  PM: QoS: Introduce frequency QoS
  Linux 5.4-rc4
  hwmon: (nct7904) Fix the incorrect value of vsen_mask & tcpu_mask & temp_mode in nct7904_data struct.
  perf/x86/intel/pt: Fix base for single entry topa
  KVM: arm64: pmu: Reset sample period on overflow handling
  KVM: arm64: pmu: Set the CHAINED attribute before creating the in-kernel event
  arm64: KVM: Handle PMCR_EL0.LC as RES1 on pure AArch64 systems
  KVM: arm64: pmu: Fix cycle counter truncation
  net: reorder 'struct net' fields to avoid false sharing
  net: dsa: fix switch tree list
  net: ethernet: dwmac-sun8i: show message only when switching to promisc
  net: aquantia: add an error handling in aq_nic_set_multicast_list
  net: netem: correct the parent's backlog when corrupted packet was dropped
  net: netem: fix error path for corrupted GSO frames
  macb: propagate errors when getting optional clocks
  xen/netback: fix error path of xenvif_connect_data()
  net: hns3: fix mis-counting IRQ vector numbers issue
  scripts/gdb: fix debugging modules on s390
  kernel/events/uprobes.c: only do FOLL_SPLIT_PMD for uprobe register
  mm/thp: allow dropping THP from page cache
  mm/vmscan.c: support removing arbitrary sized pages from mapping
  mm/thp: fix node page state in split_huge_page_to_list()
  proc/meminfo: fix output alignment
  mm/init-mm.c: include <linux/mman.h> for vm_committed_as_batch
  mm/filemap.c: include <linux/ramfs.h> for generic_file_vm_ops definition
  mm: include <linux/huge_mm.h> for is_vma_temporary_stack
  zram: fix race between backing_dev_show and backing_dev_store
  mm/memcontrol: update lruvec counters in mem_cgroup_move_account
  ocfs2: fix panic due to ocfs2_wq is null
  hugetlbfs: don't access uninitialized memmaps in pfn_range_valid_gigantic()
  mm: memblock: do not enforce current limit for memblock_phys* family
  mm: memcg: get number of pages on the LRU list in memcgroup base on lru_zone_size
  mm/gup: fix a misnamed "write" argument, and a related bug
  mm/gup_benchmark: add a missing "w" to getopt string
  ocfs2: fix error handling in ocfs2_setattr()
  mm: memcg/slab: fix panic in __free_slab() caused by premature memcg pointer release
  mm/memunmap: don't access uninitialized memmap in memunmap_pages()
  mm/memory_hotplug: don't access uninitialized memmaps in shrink_pgdat_span()
  mm/page_owner: don't access uninitialized memmaps when reading /proc/pagetypeinfo
  scripts/gdb: fix lx-dmesg when CONFIG_PRINTK_CALLER is set
  mm/memory-failure.c: don't access uninitialized memmaps in memory_failure()
  fs/proc/page.c: don't access uninitialized memmaps in fs/proc/page.c
  drivers/base/memory.c: don't access uninitialized memmaps in soft_offline_page_store()
  xdp: Prevent overflow in devmap_hash cost calculation for 32-bit builds
  filldir[64]: remove WARN_ON_ONCE() for bad directory entries
  scsi: ufs-bsg: Wake the device before sending raw upiu commands
  scsi: lpfc: Check queue pointer before use
  mips: vdso: Fix __arch_get_hw_counter()
  MAINTAINERS: Use @kernel.org address for Paul Burton
  scsi: qla2xxx: fixup incorrect usage of host_byte
  selftests/bpf: More compatible nc options in test_tc_edt
  net/mlx5: fix memory leak in mlx5_fw_fatal_reporter_dump
  net/mlx5: prevent memory leak in mlx5_fpga_conn_create_cq
  net/mlx5e: TX, Fix consumer index of error cqe dump
  net/mlx5e: kTLS, Enhance TX resync flow
  net/mlx5e: kTLS, Save a copy of the crypto info
  net/mlx5e: kTLS, Remove unneeded cipher type checks
  net/mlx5e: kTLS, Limit DUMP wqe size
  net/mlx5e: kTLS, Fix missing SQ edge fill
  net/mlx5e: kTLS, Fix page refcnt leak in TX resync error flow
  net/mlx5e: kTLS, Save by-value copy of the record frags
  net/mlx5e: kTLS, Save only the frag page to release at completion
  net/mlx5e: kTLS, Size of a Dump WQE is fixed
  net/mlx5e: kTLS, Release reference on DUMPed fragments in shutdown flow
  net/mlx5e: Tx, Zero-memset WQE info struct upon update
  net/mlx5e: Tx, Fix assumption of single WQEBB of NOP in cleanup flow
  usb: cdns3: Error out if USB_DR_MODE_UNKNOWN in cdns3_core_init_role()
  ARM: dts: bcm2837-rpi-cm3: Avoid leds-gpio probing issue
  USB: ldusb: fix read info leaks
  IB/core: Use rdma_read_gid_l2_fields to compare GID L2 fields
  RDMA/qedr: Fix reported firmware version
  RDMA/siw: free siw_base_qp in kref release routine
  tracing: Fix "gfp_t" format for synthetic events
  RDMA/iwcm: move iw_rem_ref() calls out of spinlock
  iw_cxgb4: fix ECN check on the passive accept
  net: usb: lan78xx: Connect PHY before registering MAC
  vsock/virtio: discard packets if credit is not respected
  vsock/virtio: send a credit update when buffer size is changed
  mlxsw: spectrum_trap: Push Ethernet header before reporting trap
  ASoC: SOF: control: return true when kcontrol values change
  ASoC: stm32: sai: fix sysclk management on shutdown
  ASoC: Intel: sof-rt5682: add a check for devm_clk_get
  ASoC: rsnd: Reinitialize bit clock inversion flag for every format setting
  net: ensure correct skb->tstamp in various fragmenters
  net: bcmgenet: reset 40nm EPHY on energy detect
  net: bcmgenet: soft reset 40nm EPHYs before MAC init
  net: phy: bcm7xxx: define soft_reset for 40nm EPHY
  net: bcmgenet: don't set phydev->link from MAC
  bus: ti-sysc: Fix watchdog quirk handling
  ARM: OMAP2+: Add pdata for OMAP3 ISP IOMMU
  ARM: OMAP2+: Plug in device_enable/idle ops for IOMMUs
  iommu/vt-d: Return the correct dma mask when we are bypassing the IOMMU
  iommu/amd: Check PM_LEVEL_SIZE() condition in locked section
  nvme-pci: Set the prp2 correctly when using more than 4k page
  HID: i2c-hid: add Trekstor Primebook C11B to descriptor override
  symbol namespaces: revert to previous __ksymtab name scheme
  modpost: make updating the symbol namespace explicit
  modpost: delegate updating namespaces to separate function
  HID: logitech-hidpp: do all FF cleanup in hidpp_ff_destroy()
  HID: logitech-hidpp: rework device validation
  HID: logitech-hidpp: split g920_get_config()
  HID: i2c-hid: Remove runtime power management
  x86/boot/acpi: Move get_cmdline_acpi_rsdp() under #ifdef guard
  x86/hyperv: Set pv_info.name to "Hyper-V"
  ACPI: CPPC: Set pcc_data[pcc_ss_id] to NULL in acpi_cppc_processor_exit()
  dmaengine: qcom: bam_dma: Fix resource leak
  scsi: lpfc: remove left-over BUILD_NVME defines
  scsi: core: try to get module before removing device
  scsi: hpsa: add missing hunks in reset-patch
  scsi: target: core: Do not overwrite CDB byte 1
  net: Update address for MediaTek ethernet driver in MAINTAINERS
  ipv4: fix race condition between route lookup and invalidation
  ipv4: Return -ENETUNREACH if we can't create route but saddr is valid
  net: phy: micrel: Update KSZ87xx PHY name
  net: phy: micrel: Discern KSZ8051 and KSZ8795 PHYs
  io_uring: fix logic error in io_timeout
  io_uring: fix up O_NONBLOCK handling for sockets
  drm/amdgpu/vce: fix allocation size in enc ring test
  drm/amdgpu: fix error handling in amdgpu_bo_list_create
  drm/amdgpu: fix potential VM faults
  drm/amdgpu: user pages array memory leak fix
  drm/amdgpu/vcn: fix allocation size in enc ring test
  drm/amdgpu/uvd7: fix allocation size in enc ring test (v2)
  drm/amdgpu/uvd6: fix allocation size in enc ring test (v2)
  IB/hfi1: Use a common pad buffer for 9B and 16B packets
  IB/hfi1: Avoid excessive retry for TID RDMA READ request
  RDMA/mlx5: Clear old rate limit when closing QP
  net: dsa: microchip: Add shared regmap mutex
  net: dsa: microchip: Do not reinit mutexes on KSZ87xx
  net: stmmac: fix argument to stmmac_pcs_ctrl_ane()
  dpaa2-eth: Fix TX FQID values
  dpaa2-eth: add irq for the dpmac connect/disconnect event
  usb: hso: obey DMA rules in tiocmget
  Btrfs: check for the full sync flag while holding the inode lock during fsync
  Btrfs: fix qgroup double free after failure to reserve metadata for delalloc
  coccinelle: api/devm_platform_ioremap_resource: remove useless script
  ALSA: hda - Force runtime PM on Nvidia HDMI codecs
  dm cache: fix bugs when a GFP_NOWAIT allocation fails
  ARM: davinci_all_defconfig: enable GPIO backlight
  ARM: davinci: dm365: Fix McBSP dma_slave_map entry
  binder: Don't modify VMA bounds in ->mmap handler
  btrfs: tracepoints: Fix bad entry members of qgroup events
  btrfs: tracepoints: Fix wrong parameter order for qgroup events
  stop_machine: Avoid potential race behaviour
  EDAC/ghes: Fix Use after free in ghes_edac remove path
  ALSA: hda/realtek - Enable headset mic on Asus MJ401TA
  ALSA: usb-audio: Disable quirks for BOSS Katana amplifiers
  kheaders: substituting --sort in archive creation
  powerpc/32s: fix allow/prevent_user_access() when crossing segment boundaries.
  net: stmmac: disable/enable ptp_ref_clk in suspend/resume flow
  net: phy: Fix "link partner" information disappear issue
  rxrpc: use rcu protection while reading sk->sk_user_data
  drm/i915: Fixup preempt-to-busy vs resubmission of a virtual request
  drm/i915/userptr: Never allow userptr into the mappable GGTT
  drm/i915: Favor last VBT child device with conflicting AUX ch/DDC pin
  drm/i915/execlists: Refactor -EIO markup of hung requests
  Revert "blackhole_netdev: fix syzkaller reported issue"
  arm64: tags: Preserve tags for addresses translated via TTBR1
  arm64: mm: fix inverted PAR_EL1.F check
  arm64: sysreg: fix incorrect definition of SYS_PAR_EL1_F
  arm64: entry.S: Do not preempt from IRQ before all cpufeatures are enabled
  md/raid0: fix warning message for parameter default_layout
  kthread: make __kthread_queue_delayed_work static
  pinctrl: aspeed-g6: Rename SD3 to EMMC and rework pin groups
  pinctrl: aspeed-g6: Fix UART13 group pinmux
  pinctrl: aspeed-g6: Make SIG_DESC_CLEAR() behave intuitively
  pinctrl: aspeed-g6: Fix I3C3/I3C4 pinmux configuration
  pinctrl: aspeed-g6: Fix I2C14 SDA description
  pinctrl: aspeed-g6: Sort pins for sanity
  dt-bindings: pinctrl: aspeed-g6: Rework SD3 function and groups
  perf kmem: Fix memory leak in compact_gfp_flags()
  usercopy: Avoid soft lockups in test_check_nonzero_user()
  pinctrl: berlin: as370: fix a typo s/spififib/spdifib
  ACPI: processor: Avoid NULL pointer dereferences at init time
  USB: serial: ti_usb_3410_5052: clean up serial data access
  USB: serial: ti_usb_3410_5052: fix port-close races
  xtensa: fix change_bit in exclusive access option
  HID: intel-ish-hid: fix wrong error handling in ishtp_cl_alloc_tx_ring()
  RISC-V: fix virtual address overlapped in FIXADDR_START and VMEMMAP_START
  net: usb: sr9800: fix uninitialized local variable
  net: bcmgenet: Fix RGMII_MODE_EN value for GENET v1/2/3
  net: stmmac: make tc_flow_parsers static
  davinci_cpdma: make cpdma_chan_split_pool static
  net: i82596: fix dma_alloc_attr for sni_82596
  sctp: change sctp_prot .no_autobind with true
  sched: etf: Fix ordering of packets with same txtime
  net: avoid potential infinite loop in tc_ctl_action()
  net: dsa: sja1105: Use the correct style for SPDX License Identifier
  tcp: fix a possible lockdep splat in tcp_done()
  arm: dts: mediatek: Update mt7629 dts to reflect the latest dt-binding
  net: ethernet: mediatek: Fix MT7629 missing GMII mode support
  Revert "Input: elantech - enable SMBus on new (2018+) systems"
  net/sched: fix corrupted L2 header with MPLS 'push' and 'pop' actions
  net: avoid errors when trying to pop MLPS header on non-MPLS packets
  net: cavium: Use the correct style for SPDX License Identifier
  net: dsa: microchip: Use the correct style for SPDX License Identifier
  PCI: PM: Fix pci_power_up()
  xtensa: virt: fix PCI IO ports mapping
  libata/ahci: Fix PCS quirk application
  vfio/type1: Initialize resv_msi_base
  8250-men-mcb: fix error checking when get_num_ports returns -ENODEV
  USB: usblp: fix use-after-free on disconnect
  usb: udc: lpc32xx: fix bad bit shift operation
  usb: cdns3: Fix dequeue implementation.
  USB: legousbtower: fix a signedness bug in tower_probe()
  USB: legousbtower: fix memleak on disconnect
  USB: ldusb: fix memleak on disconnect
  net: ethernet: broadcom: have drivers select DIMLIB as needed
  net: Update address for vrf and l3mdev in MAINTAINERS
  net: bcmgenet: Set phydev->dev_flags only for internal PHYs
  blackhole_netdev: fix syzkaller reported issue
  ARM: dts: bcm2835-rpi-zero-w: Fix bus-width of sdhci
  sparc64: disable fast-GUP due to unexplained oopses
  btrfs: qgroup: Always free PREALLOC META reserve in btrfs_delalloc_release_extents()
  drm/panfrost: Handle resetting on timeout better
  blk-rq-qos: fix first node deletion of rq_qos_del()
  blkcg: Fix multiple bugs in blkcg_activate_policy()
  xfs: change the seconds fields in xfs_bulkstat to signed
  tools headers UAPI: Sync sched.h with the kernel
  rbd: cancel lock_dwork if the wait is interrupted
  ceph: just skip unrecognized info in ceph_reply_info_extra
  tools headers kvm: Sync kvm.h headers with the kernel sources
  tools headers kvm: Sync kvm headers with the kernel sources
  tools headers kvm: Sync kvm headers with the kernel sources
  perf c2c: Fix memory leak in build_cl_output()
  perf tools: Fix mode setting in copyfile_mode_ns()
  perf annotate: Fix multiple memory and file descriptor leaks
  io_uring: consider the overflow of sequence for timeout req
  perf tools: Fix resource leak of closedir() on the error paths
  perf evlist: Fix fix for freed id arrays
  perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()
  scripts: setlocalversion: fix a bashism
  kbuild: update comment about KBUILD_ALLDIRS
  virtio-fs: don't show mount options
  nvme-tcp: fix possible leakage during error flow
  nvmet-loop: fix possible leakage during error flow
  btrfs: don't needlessly create extent-refs kernel thread
  iommu/amd: Fix incorrect PASID decoding from event log
  iommu/ipmmu-vmsa: Only call platform_get_irq() when interrupt is mandatory
  iommu/rockchip: Don't use platform_get_irq to implicitly count irqs
  dmaengine: sprd: Fix the possible memory leak issue
  dmaengine: xilinx_dma: Fix control reg update in vdma_channel_set_config
  dmaengine: xilinx_dma: Fix 64-bit simple AXIDMA transfer
  x86/apic/x2apic: Fix a NULL pointer deref when handling a dying cpu
  x86/hyperv: Make vapic support x2apic mode
  KVM: PPC: Book3S HV: XIVE: Ensure VP isn't already in use
  arm64: hibernate: check pgd table allocation
  arm64: cpufeature: Treat ID_AA64ZFR0_EL1 as RAZ when SVE is not enabled
  net: aquantia: correctly handle macvlan and multicast coexistence
  net: aquantia: do not pass lro session with invalid tcp checksum
  net: aquantia: when cleaning hw cache it should be toggled
  net: aquantia: temperature retrieval fix
  gpio: lynxpoint: set default handler to be handle_bad_irq()
  gpio: merrifield: Move hardware initialization to callback
  gpio: lynxpoint: Move hardware initialization to callback
  gpio: intel-mid: Move hardware initialization to callback
  gpiolib: Initialize the hardware with a callback
  gpio: merrifield: Restore use of irq_base
  xtensa: drop EXPORT_SYMBOL for outs*/ins*
  mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if mmaped more than once
  mm/slab.c: fix kernel-doc warning for __ksize()
  xarray.h: fix kernel-doc warning
  bitmap.h: fix kernel-doc warning and typo
  fs/fs-writeback.c: fix kernel-doc warning
  fs/libfs.c: fix kernel-doc warning
  fs/direct-io.c: fix kernel-doc warning
  mm, compaction: fix wrong pfn handling in __reset_isolation_pfn()
  mm, hugetlb: allow hugepage allocations to reclaim as needed
  lib/test_meminit: add a kmem_cache_alloc_bulk() test
  mm/slub.c: init_on_free=1 should wipe freelist ptr for bulk allocations
  lib/generic-radix-tree.c: add kmemleak annotations
  mm/slub: fix a deadlock in show_slab_objects()
  mm, page_owner: rename flag indicating that page is allocated
  mm, page_owner: decouple freeing stack trace from debug_pagealloc
  mm, page_owner: fix off-by-one error in __set_page_owner_handle()
  xtensa: fix type conversion in __get_user_[no]check
  xtensa: clean up assembly arguments in uaccess macros
  block: Fix elv_support_iosched()
  parisc: Remove 32-bit DMA enforcement from sba_iommu
  parisc: Fix vmap memory leak in ioremap()/iounmap()
  parisc: prefer __section from compiler_attributes.h
  parisc: sysctl.c: Use CONFIG_PARISC instead of __hppa_ define
  firmware: dmi: Fix unlikely out-of-bounds read in save_mem_devices
  riscv: tlbflush: remove confusing comment on local_flush_tlb_all()
  riscv: dts: HiFive Unleashed: add default chosen/stdout-path
  riscv: remove the switch statement in do_trap_break()
  drm/panfrost: Add missing GPU feature registers
  bpf: lwtunnel: Fix reroute supplying invalid dst
  xtensa: fix {get,put}_user() for 64bit values
  kmemleak: Do not corrupt the object_list during clean-up
  nvme-tcp: Initialize sk->sk_ll_usec only with NET_RX_BUSY_POLL
  nvme: Wait for reset state when required
  nvme: Prevent resets during paused controller state
  nvme: Restart request timers in resetting state
  nvme: Remove ADMIN_ONLY state
  nvme-pci: Free tagset if no IO queues
  hrtimer: Annotate lockless access to timer->base
  staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS
  ARM: imx_v6_v7_defconfig: Enable CONFIG_DRM_MSM
  arm64: dts: imx8mn: Use correct clock for usdhc's ipg clk
  arm64: dts: imx8mm: Use correct clock for usdhc's ipg clk
  arm64: dts: imx8mq: Use correct clock for usdhc's ipg clk
  platform/x86: i2c-multi-instantiate: Fail the probe if no IRQ provided
  ARM: dts: imx7s: Correct GPT's ipg clock source
  ARM: dts: vf610-zii-scu4-aib: Specify 'i2c-mux-idle-disconnect'
  drm/ttm: fix handling in ttm_bo_add_mem_to_lru
  drm/ttm: Restore ttm prefaulting
  drm/ttm: fix busy reference in ttm_mem_evict_first
  ARM: dts: imx6q-logicpd: Re-Enable SNVS power key
  ath10k: fix latency issue for QCA988x
  virtio-fs: Change module name to virtiofs.ko
  dmaengine: imx-sdma: fix size check for sdma script_number
  dmaengine: tegra210-adma: fix transfer failure
  arm64: dts: lx2160a: Correct CPU core idle state name
  dmaengine: sprd: Fix the link-list pointer register configuration issue
  batman-adv: Avoid free/alloc race when handling OGM buffer
  batman-adv: Avoid free/alloc race when handling OGM2 buffer
  netdevsim: Fix error handling in nsim_fib_init and nsim_fib_exit
  net/ibmvnic: Fix EOI when running in XIVE mode.
  net: lpc_eth: avoid resetting twice
  tcp: annotate sk->sk_wmem_queued lockless reads
  tcp: annotate sk->sk_sndbuf lockless reads
  tcp: annotate sk->sk_rcvbuf lockless reads
  tcp: annotate tp->urg_seq lockless reads
  tcp: annotate tp->snd_nxt lockless reads
  tcp: annotate tp->write_seq lockless reads
  tcp: annotate tp->copied_seq lockless reads
  tcp: annotate tp->rcv_nxt lockless reads
  tcp: add rcu protection around tp->fastopen_rsk
  vhost/test: stop device before reset
  tools/virtio: xen stub
  mailmap: Add Simon Arlott (replacement for expired email address)
  rxrpc: Fix possible NULL pointer access in ICMP handling
  drm/amdgpu/sdma5: fix mask value of POLL_REGMEM packet for pipe sync
  drm/amdgpu: Bail earlier when amdgpu.cik_/si_support is not set to 1
  Revert "drm/radeon: Fix EEH during kexec"
  Input: synaptics-rmi4 - avoid processing unknown IRQs
  btrfs: block-group: Fix a memory leak due to missing btrfs_put_block_group()
  drm/msm/dsi: Implement reset correctly
  Btrfs: add missing extents release on file extent cluster relocation error
  x86/boot/64: Round memory hole size up to next PMD page
  x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area
  arm64: Fix kcore macros after 52-bit virtual addressing fallout
  tools/virtio: more stubs
  net/smc: receive pending data after RCV_SHUTDOWN
  net/smc: receive returns without data
  net/smc: fix SMCD link group creation with VLAN id
  net: update net_dim documentation after rename
  r8169: fix jumbo packet handling on resume from suspend
  arm64: dts: rockchip: Fix override mode for rk3399-kevin panel
  arm64: dts: rockchip: Fix usb-c on Hugsun X99 TV Box
  arm64: dts: rockchip: fix RockPro64 sdmmc settings
  ARM: 8914/1: NOMMU: Fix exc_ret for XIP
  ARM: 8908/1: add __always_inline to functions called from __get_user_check()
  HID: google: add magnemite/masterball USB ids
  MAINTAINERS: Add BCM2711 to BCM2835 ARCH
  dma-buf/resv: fix exclusive fence get
  drm/edid: Add 6 bpc quirk for SDC panel in Lenovo G50
  dm snapshot: rework COW throttling to fix deadlock
  dm snapshot: introduce account_start_copy() and account_end_copy()
  drm/tiny: Kconfig: Remove always-y THERMAL dep. from TINYDRM_REPAPER
  platform/x86: intel_punit_ipc: Avoid error message when retrieving IRQ
  platform/x86: classmate-laptop: remove unused variable
  opp: of: drop incorrect lockdep_assert_held()
  PM: sleep: include <linux/pm_runtime.h> for pm_wq
  cpufreq: Avoid cpufreq_suspend() deadlock on system shutdown
  ACPI: PM: Drop Dell XPS13 9360 from LPS0 Idle _DSM blacklist
  net: silence KCSAN warnings about sk->sk_backlog.len reads
  net: annotate sk->sk_rcvlowat lockless reads
  net: silence KCSAN warnings around sk_add_backlog() calls
  tcp: annotate lockless access to tcp_memory_pressure
  net: add {READ|WRITE}_ONCE() annotations on ->rskq_accept_head
  net: avoid possible false sharing in sk_leave_memory_pressure()
  tun: remove possible false sharing in tun_flow_update()
  netfilter: conntrack: avoid possible false sharing
  netns: fix NLM_F_ECHO mechanism for RTM_NEWNSID
  scsi: ch: Make it possible to open a ch device multiple times again
  scsi: fix kconfig dependency warning related to 53C700_LE_ON_BE
  scsi: sni_53c710: fix compilation error
  scsi: scsi_dh_alua: handle RTPG sense code correctly during state transitions
  scsi: qla2xxx: fix a potential NULL pointer dereference
  net: usb: qmi_wwan: add Telit 0x1050 composition
  act_mirred: Fix mirred_init_module error handling
  net: taprio: Fix returning EINVAL when configuring without flags
  s390/qeth: Fix initialization of vnicc cmd masks during set online
  s390/qeth: Fix error handling during VNICC initialization
  phylink: fix kernel-doc warnings
  sctp: add chunks to sk_backlog when the newsk sk_socket is not set
  bonding: fix potential NULL deref in bond_update_slave_arr
  net: stmmac: fix disabling flexible PPS output
  net: stmmac: fix length of PTP clock's name string
  ARM: mm: alignment: use "u32" for 32-bit instructions
  ARM: mm: fix alignment handler faults under memory pressure
  ARM: dts: Use level interrupt for omap4 & 5 wlcore
  drivers/amba: fix reset control error handling
  ASoC: simple_card_utils.h: Fix potential multiple redefinition error
  ASoC: msm8916-wcd-digital: add missing MIX2 path for RX1/2
  drm/amdgpu/powerplay: fix typo in mvdd table setup
  iwlwifi: pcie: change qu with jf devices to use qu configuration
  iwlwifi: exclude GEO SAR support for 3168
  iwlwifi: pcie: fix memory leaks in iwl_pcie_ctxt_info_gen3_init
  iwlwifi: dbg_ini: fix memory leak in alloc_sgtable
  iwlwifi: pcie: fix rb_allocator workqueue allocation
  iwlwifi: pcie: fix indexing in command dump for new HW
  iwlwifi: mvm: fix race in sync rx queue notification
  iwlwifi: mvm: force single phy init
  iwlwifi: fix ACPI table revision checks
  iwlwifi: don't access trans_cfg via cfg
  memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()'
  mmc: sdhci-iproc: fix spurious interrupts on Multiblock reads with bcm2711
  pinctrl: armada-37xx: swap polarity on LED group
  arm64: dts: armada-3720-turris-mox: convert usb-phy to phy-supply
  ip6erspan: remove the incorrect mtu limit for ip6erspan
  Doc: networking/device_drivers/pensando: fix ionic.rst warnings
  NFC: pn533: fix use-after-free and memleaks
  Input: soc_button_array - partial revert of support for newer surface devices
  net_sched: fix backward compatibility for TCA_ACT_KIND
  net_sched: fix backward compatibility for TCA_KIND
  net/mlx5: DR, Allow insertion of duplicate rules
  selftests/bpf: More compatible nc options in test_lwt_ip_encap
  selftests/bpf: Set rp_filter in test_flow_dissector
  llc: fix sk_buff refcounting in llc_conn_state_process()
  llc: fix another potential sk_buff leak in llc_ui_sendmsg()
  llc: fix sk_buff leak in llc_conn_service()
  llc: fix sk_buff leak in llc_sap_state_process()
  dm clone: Make __hash_find static
  rt2x00: remove input-polldev.h header
  ARM: dts: am3874-iceboard: Fix 'i2c-mux-idle-disconnect' usage
  ARM: dts: omap5: fix gpu_cm clock provider name
  arm64: Allow CAVIUM_TX2_ERRATUM_219 to be selected
  arm64: Avoid Cavium TX2 erratum 219 when switching TTBR
  arm64: Enable workaround for Cavium TX2 erratum 219 when running SMT
  arm64: KVM: Trap VM ops when ARM64_WORKAROUND_CAVIUM_TX2_219_TVM is set
  mac80211: fix scan when operating on DFS channels in ETSI domains
  mac80211: accept deauth frames in IBSS mode
  cfg80211: fix a bunch of RCU issues in multi-bssid code
  nl80211: fix memory leak in nl80211_get_ftm_responder_stats
  ptp: fix typo of "mechanism" in Kconfig help text
  ionic: fix stats memory dereference
  ASoC: core: Fix pcm code debugfs error
  ARM: dts: sun7i: Drop the module clock from the device tree
  dt-bindings: media: sun4i-csi: Drop the module clock
  rxrpc: Fix call crypto state cleanup
  rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record
  rxrpc: Fix trace-after-put looking at the put call record
  rxrpc: Fix trace-after-put looking at the put connection record
  rxrpc: Fix trace-after-put looking at the put peer record
  media: dt-bindings: Fix building error for dt_binding_check
  rxrpc: Fix call ref leak
  ALSA: hdac: clear link output stream mapping
  ALSA: hda/realtek: Reduce the Headphone static noise on XPS 9350/9360
  lib: test_user_copy: style cleanup
  net: stmmac: selftests: Fix L2 Hash Filter test
  net: stmmac: gmac4+: Not all Unicast addresses may be available
  net: stmmac: selftests: Check if filtering is available before running
  net: dsa: b53: Do not clear existing mirrored port mask
  arm64: dts: zii-ultra: fix ARM regulator states
  soc: imx: imx-scu: Getting UID from SCU should have response
  pinctrl: stmfx: fix null pointer on remove
  pinctrl: iproc: allow for error from platform_get_irq()
  nvme: retain split access workaround for capability reads
  nvme: fix possible deadlock when nvme_update_formats fails
  pinctrl: ns2: Fix off by one bugs in ns2_pinmux_enable()
  pinctrl: bcm-iproc: Use SPDX header
  pinctrl: armada-37xx: fix control of pins 32 and up
  arm64: dts: rockchip: fix RockPro64 sdhci settings
  arm64: dts: rockchip: fix RockPro64 vdd-log regulator settings
  regulator: qcom-rpmh: Fix PMIC5 BoB min voltage
  ARM: dts: logicpd-torpedo-som: Remove twl_keypad
  cfg80211: wext: avoid copying malformed SSIDs
  mac80211: Reject malformed SSID elements
  mac80211_hwsim: fix incorrect dev_alloc_name failure goto
  MAINTAINERS: Add hp_sdc drivers to parisc arch
  scsi: MAINTAINERS: Update qla2xxx driver
  scsi: zfcp: fix reaction on bit error threshold notification
  scsi: core: save/restore command resid for error handling
  dt-bindings: arm: rockchip: fix Theobroma-System board bindings
  arm64: dts: rockchip: fix Rockpro64 RK808 interrupt line
  HID: Fix assumption that devices have inputs
  ARM: omap2plus_defconfig: Fix selected panels after generic panel changes
  samples/bpf: Add a workaround for asm_inline
  xsk: Fix crash in poll when device does not support ndo_xsk_wakeup
  samples/bpf: Fix build for task_fd_query_user.c
  ASoc: rockchip: i2s: Fix RPM imbalance
  mmc: sh_mmcif: Use platform_get_irq_optional() for optional interrupt
  mmc: renesas_sdhi: Do not use platform_get_irq() to count interrupts
  ACPI: HMAT: ACPI_HMAT_MEMORY_PD_VALID is deprecated since ACPI-6.3
  Input: goodix - add support for 9-bytes reports
  Input: da9063 - fix capability and drop KEY_SLEEP
  ASoC: wm_adsp: Don't generate kcontrols without READ flags
  sysfs: Fixes __BIN_ATTR_WO() macro
  rt2x00: initialize last_reset
  selftests/bpf: test_progs: Don't leak server_fd in test_sockopt_inherit
  selftests/bpf: test_progs: Don't leak server_fd in tcp_rtt
  regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized
  ASoC: intel: bytcr_rt5651: add null check to support_button_press
  ASoC: intel: sof_rt5682: add remove function to disable jack
  ASoC: rt5682: add NULL handler to set_jack function
  ASoC: intel: sof_rt5682: use separate route map for dmic
  ASoC: SOF: Intel: hda: Disable DMI L1 entry during capture
  ASoC: SOF: Intel: initialise and verify FW crash dump data.
  ASoC: SOF: Intel: hda: fix warnings during FW load
  ASoC: SOF: pcm: harden PCM STOP sequence
  ASoC: SOF: pcm: fix resource leak in hw_free
  ASoC: SOF: topology: fix parse fail issue for byte/bool tuple types
  ASoC: SOF: loader: fix kernel oops on firmware boot failure
  regulator: lochnagar: Add on_off_delay for VDDCORE
  ASoC: wm_adsp: Fix theoretical NULL pointer for alg_region
  pinctrl: cherryview: restore Strago DMI workaround for all versions
  pinctrl: intel: Allocate IRQ chip dynamic
  HID: prodikeys: make array keys static const, makes object smaller
  HID: fix error message in hid_open_report()
  ASoC: max98373: check for device node before parsing
  regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone
  iommu/io-pgtable-arm: Support all Mali configurations
  iommu/io-pgtable-arm: Correct Mali attributes
  iommu/arm-smmu: Free context bitmap in the err path of arm_smmu_init_domain_context
  scsi: qla2xxx: Remove WARN_ON_ONCE in qla2x00_status_cont_entry()
  scsi: sd: Ignore a failure to sync cache due to lack of authorization
  arm64: dts: Fix gpio to pinmux mapping
  libbpf: handle symbol versioning properly for libbpf.a
  arm64: dts: allwinner: a64: sopine-baseboard: Add PHY regulator delay
  arm64: dts: allwinner: a64: Drop PMU node
  arm64: dts: allwinner: a64: pine64-plus: Add PHY regulator delay
  tools: bpf: Use !building_out_of_srctree to determine srctree
  ASoC: topology: Fix a signedness bug in soc_tplg_dapm_widget_create()
  scsi: core: fix dh and multipathing for SCSI hosts without request batching
  scsi: core: fix missing .cleanup_rq for SCSI hosts without request batching
  regulator: da9062: fix suspend_enable/disable preparation
  dt-bindings: fixed-regulator: fix compatible enum
  regulator: fixed: Prevent NULL pointer dereference when !CONFIG_OF
  ASoC: soc-component: fix a couple missing error assignments
  ASoC: wm8994: Do not register inapplicable controls for WM1811
  ASoC: samsung: arndale: Add missing OF node dereferencing
  irqchip/sifive-plic: Switch to fasteoi flow
  irqchip/gic-v3: Fix GIC_LINE_NR accessor
  regulator: core: make regulator_register() EPROBE_DEFER aware
  regulator: of: fix suspend-min/max-voltage parsing
  irqchip/atmel-aic5: Add support for sam9x60 irqchip
  irqchip/al-fic: Add support for irq retrigger

Change-Id: I5e7fd941c93a36889378f480cc27d8ea77d11b39
Signed-off-by: Raghavendra Rao Ananta <[email protected]>
This commit is contained in:
Raghavendra Rao Ananta 2019-11-04 17:30:19 -08:00
commit c249464a77
1257 changed files with 13728 additions and 39772 deletions

View file

@ -502,7 +502,7 @@ int bpf_remove_insns(struct bpf_prog *prog, u32 off, u32 cnt)
return WARN_ON_ONCE(bpf_adj_branches(prog, off, off + cnt, off, false));
}
void bpf_prog_kallsyms_del_subprogs(struct bpf_prog *fp)
static void bpf_prog_kallsyms_del_subprogs(struct bpf_prog *fp)
{
int i;

View file

@ -128,7 +128,7 @@ static int dev_map_init_map(struct bpf_dtab *dtab, union bpf_attr *attr)
if (!dtab->n_buckets) /* Overflow check */
return -EINVAL;
cost += sizeof(struct hlist_head) * dtab->n_buckets;
cost += (u64) sizeof(struct hlist_head) * dtab->n_buckets;
}
/* if map size is larger than memlock limit, reject it */
@ -719,6 +719,32 @@ const struct bpf_map_ops dev_map_hash_ops = {
.map_check_btf = map_check_no_btf,
};
static void dev_map_hash_remove_netdev(struct bpf_dtab *dtab,
struct net_device *netdev)
{
unsigned long flags;
u32 i;
spin_lock_irqsave(&dtab->index_lock, flags);
for (i = 0; i < dtab->n_buckets; i++) {
struct bpf_dtab_netdev *dev;
struct hlist_head *head;
struct hlist_node *next;
head = dev_map_index_hash(dtab, i);
hlist_for_each_entry_safe(dev, next, head, index_hlist) {
if (netdev != dev->dev)
continue;
dtab->items--;
hlist_del_rcu(&dev->index_hlist);
call_rcu(&dev->rcu, __dev_map_entry_free);
}
}
spin_unlock_irqrestore(&dtab->index_lock, flags);
}
static int dev_map_notification(struct notifier_block *notifier,
ulong event, void *ptr)
{
@ -735,6 +761,11 @@ static int dev_map_notification(struct notifier_block *notifier,
*/
rcu_read_lock();
list_for_each_entry_rcu(dtab, &dev_map_list, list) {
if (dtab->map.map_type == BPF_MAP_TYPE_DEVMAP_HASH) {
dev_map_hash_remove_netdev(dtab, netdev);
continue;
}
for (i = 0; i < dtab->map.max_entries; i++) {
struct bpf_dtab_netdev *dev, *odev;

View file

@ -1326,24 +1326,32 @@ static void __bpf_prog_put_rcu(struct rcu_head *rcu)
{
struct bpf_prog_aux *aux = container_of(rcu, struct bpf_prog_aux, rcu);
kvfree(aux->func_info);
free_used_maps(aux);
bpf_prog_uncharge_memlock(aux->prog);
security_bpf_prog_free(aux);
bpf_prog_free(aux->prog);
}
static void __bpf_prog_put_noref(struct bpf_prog *prog, bool deferred)
{
bpf_prog_kallsyms_del_all(prog);
btf_put(prog->aux->btf);
bpf_prog_free_linfo(prog);
if (deferred)
call_rcu(&prog->aux->rcu, __bpf_prog_put_rcu);
else
__bpf_prog_put_rcu(&prog->aux->rcu);
}
static void __bpf_prog_put(struct bpf_prog *prog, bool do_idr_lock)
{
if (atomic_dec_and_test(&prog->aux->refcnt)) {
perf_event_bpf_event(prog, PERF_BPF_EVENT_PROG_UNLOAD, 0);
/* bpf_prog_free_id() must be called first */
bpf_prog_free_id(prog, do_idr_lock);
bpf_prog_kallsyms_del_all(prog);
btf_put(prog->aux->btf);
kvfree(prog->aux->func_info);
bpf_prog_free_linfo(prog);
call_rcu(&prog->aux->rcu, __bpf_prog_put_rcu);
__bpf_prog_put_noref(prog, true);
}
}
@ -1741,11 +1749,12 @@ static int bpf_prog_load(union bpf_attr *attr, union bpf_attr __user *uattr)
return err;
free_used_maps:
bpf_prog_free_linfo(prog);
kvfree(prog->aux->func_info);
btf_put(prog->aux->btf);
bpf_prog_kallsyms_del_subprogs(prog);
free_used_maps(prog->aux);
/* In case we have subprogs, we need to wait for a grace
* period before we can tear down JIT memory since symbols
* are already exposed under kallsyms.
*/
__bpf_prog_put_noref(prog, prog->aux->func_cnt);
return err;
free_prog:
bpf_prog_uncharge_memlock(prog);
free_prog_sec:

View file

@ -798,7 +798,8 @@ static int generate_sched_domains(cpumask_var_t **domains,
cpumask_subset(cp->cpus_allowed, top_cpuset.effective_cpus))
continue;
if (is_sched_load_balance(cp))
if (is_sched_load_balance(cp) &&
!cpumask_empty(cp->effective_cpus))
csa[csn++] = cp;
/* skip @cp's subtree if not a partition root */

View file

@ -5612,8 +5612,10 @@ static void perf_mmap_close(struct vm_area_struct *vma)
perf_pmu_output_stop(event);
/* now it's safe to free the pages */
atomic_long_sub(rb->aux_nr_pages, &mmap_user->locked_vm);
atomic64_sub(rb->aux_mmap_locked, &vma->vm_mm->pinned_vm);
if (!rb->aux_mmap_locked)
atomic_long_sub(rb->aux_nr_pages, &mmap_user->locked_vm);
else
atomic64_sub(rb->aux_mmap_locked, &vma->vm_mm->pinned_vm);
/* this has to be the last one */
rb_free_aux(rb);
@ -6952,7 +6954,7 @@ static void __perf_event_output_stop(struct perf_event *event, void *data)
static int __perf_pmu_output_stop(void *info)
{
struct perf_event *event = info;
struct pmu *pmu = event->pmu;
struct pmu *pmu = event->ctx->pmu;
struct perf_cpu_context *cpuctx = this_cpu_ptr(pmu->pmu_cpu_context);
struct remote_output ro = {
.rb = event->rb,
@ -10638,7 +10640,7 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
attr->size = size;
if (attr->__reserved_1)
if (attr->__reserved_1 || attr->__reserved_2)
return -EINVAL;
if (attr->sample_type & ~(PERF_SAMPLE_MAX-1))

View file

@ -474,14 +474,17 @@ int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm,
struct vm_area_struct *vma;
int ret, is_register, ref_ctr_updated = 0;
bool orig_page_huge = false;
unsigned int gup_flags = FOLL_FORCE;
is_register = is_swbp_insn(&opcode);
uprobe = container_of(auprobe, struct uprobe, arch);
retry:
if (is_register)
gup_flags |= FOLL_SPLIT_PMD;
/* Read the page with vaddr into memory */
ret = get_user_pages_remote(NULL, mm, vaddr, 1,
FOLL_FORCE | FOLL_SPLIT_PMD, &old_page, &vma, NULL);
ret = get_user_pages_remote(NULL, mm, vaddr, 1, gup_flags,
&old_page, &vma, NULL);
if (ret <= 0)
return ret;
@ -489,6 +492,12 @@ retry:
if (ret <= 0)
goto put_old;
if (WARN(!is_register && PageCompound(old_page),
"uprobe unregister should never work on compound page\n")) {
ret = -EINVAL;
goto put_old;
}
/* We are going to replace instruction, update ref_ctr. */
if (!ref_ctr_updated && uprobe->ref_ctr_offset) {
ret = update_ref_ctr(uprobe, mm, is_register ? 1 : -1);

View file

@ -71,7 +71,13 @@ done | cpio --quiet -pd $cpio_dir >/dev/null 2>&1
find $cpio_dir -type f -print0 |
xargs -0 -P8 -n1 perl -pi -e 'BEGIN {undef $/;}; s/\/\*((?!SPDX).)*?\*\///smg;'
tar -Jcf $tarfile -C $cpio_dir/ . > /dev/null
# Create archive and try to normalize metadata for reproducibility.
# For compatibility with older versions of tar, files are fed to tar
# pre-sorted, as --sort=name might not be available.
find $cpio_dir -printf "./%P\n" | LC_ALL=C sort | \
tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
--owner=0 --group=0 --numeric-owner --no-recursion \
-Jcf $tarfile -C $cpio_dir/ -T - > /dev/null
echo "$src_files_md5" > kernel/kheaders.md5
echo "$obj_files_md5" >> kernel/kheaders.md5

View file

@ -866,9 +866,9 @@ void kthread_delayed_work_timer_fn(struct timer_list *t)
}
EXPORT_SYMBOL(kthread_delayed_work_timer_fn);
void __kthread_queue_delayed_work(struct kthread_worker *worker,
struct kthread_delayed_work *dwork,
unsigned long delay)
static void __kthread_queue_delayed_work(struct kthread_worker *worker,
struct kthread_delayed_work *dwork,
unsigned long delay)
{
struct timer_list *timer = &dwork->timer;
struct kthread_work *work = &dwork->work;

View file

@ -15,6 +15,7 @@
#include <linux/seq_file.h>
#include <linux/suspend.h>
#include <linux/syscalls.h>
#include <linux/pm_runtime.h>
#include "power.h"

View file

@ -650,3 +650,243 @@ static int __init pm_qos_power_init(void)
}
late_initcall(pm_qos_power_init);
/* Definitions related to the frequency QoS below. */
/**
* freq_constraints_init - Initialize frequency QoS constraints.
* @qos: Frequency QoS constraints to initialize.
*/
void freq_constraints_init(struct freq_constraints *qos)
{
struct pm_qos_constraints *c;
c = &qos->min_freq;
plist_head_init(&c->list);
c->target_value = FREQ_QOS_MIN_DEFAULT_VALUE;
c->default_value = FREQ_QOS_MIN_DEFAULT_VALUE;
c->no_constraint_value = FREQ_QOS_MIN_DEFAULT_VALUE;
c->type = PM_QOS_MAX;
c->notifiers = &qos->min_freq_notifiers;
BLOCKING_INIT_NOTIFIER_HEAD(c->notifiers);
c = &qos->max_freq;
plist_head_init(&c->list);
c->target_value = FREQ_QOS_MAX_DEFAULT_VALUE;
c->default_value = FREQ_QOS_MAX_DEFAULT_VALUE;
c->no_constraint_value = FREQ_QOS_MAX_DEFAULT_VALUE;
c->type = PM_QOS_MIN;
c->notifiers = &qos->max_freq_notifiers;
BLOCKING_INIT_NOTIFIER_HEAD(c->notifiers);
}
/**
* freq_qos_read_value - Get frequency QoS constraint for a given list.
* @qos: Constraints to evaluate.
* @type: QoS request type.
*/
s32 freq_qos_read_value(struct freq_constraints *qos,
enum freq_qos_req_type type)
{
s32 ret;
switch (type) {
case FREQ_QOS_MIN:
ret = IS_ERR_OR_NULL(qos) ?
FREQ_QOS_MIN_DEFAULT_VALUE :
pm_qos_read_value(&qos->min_freq);
break;
case FREQ_QOS_MAX:
ret = IS_ERR_OR_NULL(qos) ?
FREQ_QOS_MAX_DEFAULT_VALUE :
pm_qos_read_value(&qos->max_freq);
break;
default:
WARN_ON(1);
ret = 0;
}
return ret;
}
/**
* freq_qos_apply - Add/modify/remove frequency QoS request.
* @req: Constraint request to apply.
* @action: Action to perform (add/update/remove).
* @value: Value to assign to the QoS request.
*/
static int freq_qos_apply(struct freq_qos_request *req,
enum pm_qos_req_action action, s32 value)
{
int ret;
switch(req->type) {
case FREQ_QOS_MIN:
ret = pm_qos_update_target(&req->qos->min_freq, &req->pnode,
action, value);
break;
case FREQ_QOS_MAX:
ret = pm_qos_update_target(&req->qos->max_freq, &req->pnode,
action, value);
break;
default:
ret = -EINVAL;
}
return ret;
}
/**
* freq_qos_add_request - Insert new frequency QoS request into a given list.
* @qos: Constraints to update.
* @req: Preallocated request object.
* @type: Request type.
* @value: Request value.
*
* Insert a new entry into the @qos list of requests, recompute the effective
* QoS constraint value for that list and initialize the @req object. The
* caller needs to save that object for later use in updates and removal.
*
* Return 1 if the effective constraint value has changed, 0 if the effective
* constraint value has not changed, or a negative error code on failures.
*/
int freq_qos_add_request(struct freq_constraints *qos,
struct freq_qos_request *req,
enum freq_qos_req_type type, s32 value)
{
int ret;
if (IS_ERR_OR_NULL(qos) || !req)
return -EINVAL;
if (WARN(freq_qos_request_active(req),
"%s() called for active request\n", __func__))
return -EINVAL;
req->qos = qos;
req->type = type;
ret = freq_qos_apply(req, PM_QOS_ADD_REQ, value);
if (ret < 0) {
req->qos = NULL;
req->type = 0;
}
return ret;
}
EXPORT_SYMBOL_GPL(freq_qos_add_request);
/**
* freq_qos_update_request - Modify existing frequency QoS request.
* @req: Request to modify.
* @new_value: New request value.
*
* Update an existing frequency QoS request along with the effective constraint
* value for the list of requests it belongs to.
*
* Return 1 if the effective constraint value has changed, 0 if the effective
* constraint value has not changed, or a negative error code on failures.
*/
int freq_qos_update_request(struct freq_qos_request *req, s32 new_value)
{
if (!req)
return -EINVAL;
if (WARN(!freq_qos_request_active(req),
"%s() called for unknown object\n", __func__))
return -EINVAL;
if (req->pnode.prio == new_value)
return 0;
return freq_qos_apply(req, PM_QOS_UPDATE_REQ, new_value);
}
EXPORT_SYMBOL_GPL(freq_qos_update_request);
/**
* freq_qos_remove_request - Remove frequency QoS request from its list.
* @req: Request to remove.
*
* Remove the given frequency QoS request from the list of constraints it
* belongs to and recompute the effective constraint value for that list.
*
* Return 1 if the effective constraint value has changed, 0 if the effective
* constraint value has not changed, or a negative error code on failures.
*/
int freq_qos_remove_request(struct freq_qos_request *req)
{
if (!req)
return -EINVAL;
if (WARN(!freq_qos_request_active(req),
"%s() called for unknown object\n", __func__))
return -EINVAL;
return freq_qos_apply(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE);
}
EXPORT_SYMBOL_GPL(freq_qos_remove_request);
/**
* freq_qos_add_notifier - Add frequency QoS change notifier.
* @qos: List of requests to add the notifier to.
* @type: Request type.
* @notifier: Notifier block to add.
*/
int freq_qos_add_notifier(struct freq_constraints *qos,
enum freq_qos_req_type type,
struct notifier_block *notifier)
{
int ret;
if (IS_ERR_OR_NULL(qos) || !notifier)
return -EINVAL;
switch (type) {
case FREQ_QOS_MIN:
ret = blocking_notifier_chain_register(qos->min_freq.notifiers,
notifier);
break;
case FREQ_QOS_MAX:
ret = blocking_notifier_chain_register(qos->max_freq.notifiers,
notifier);
break;
default:
WARN_ON(1);
ret = -EINVAL;
}
return ret;
}
EXPORT_SYMBOL_GPL(freq_qos_add_notifier);
/**
* freq_qos_remove_notifier - Remove frequency QoS change notifier.
* @qos: List of requests to remove the notifier from.
* @type: Request type.
* @notifier: Notifier block to remove.
*/
int freq_qos_remove_notifier(struct freq_constraints *qos,
enum freq_qos_req_type type,
struct notifier_block *notifier)
{
int ret;
if (IS_ERR_OR_NULL(qos) || !notifier)
return -EINVAL;
switch (type) {
case FREQ_QOS_MIN:
ret = blocking_notifier_chain_unregister(qos->min_freq.notifiers,
notifier);
break;
case FREQ_QOS_MAX:
ret = blocking_notifier_chain_unregister(qos->max_freq.notifiers,
notifier);
break;
default:
WARN_ON(1);
ret = -EINVAL;
}
return ret;
}
EXPORT_SYMBOL_GPL(freq_qos_remove_notifier);

View file

@ -3919,7 +3919,7 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
p = fair_sched_class.pick_next_task(rq, prev, rf);
if (unlikely(p == RETRY_TASK))
goto restart;
goto again;
/* Assumes fair_sched_class->next == idle_sched_class */
if (unlikely(!p))
@ -3928,19 +3928,14 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
return p;
}
restart:
/*
* Ensure that we put DL/RT tasks before the pick loop, such that they
* can PULL higher prio tasks when we lower the RQ 'priority'.
*/
prev->sched_class->put_prev_task(rq, prev, rf);
if (!rq->nr_running)
newidle_balance(rq, rf);
again:
for_each_class(class) {
p = class->pick_next_task(rq, NULL, NULL);
if (p)
p = class->pick_next_task(rq, prev, rf);
if (p) {
if (unlikely(p == RETRY_TASK))
goto again;
return p;
}
}
/* The idle class should always have a runnable task: */

View file

@ -1761,13 +1761,39 @@ pick_next_task_dl(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
struct task_struct *p;
struct dl_rq *dl_rq;
WARN_ON_ONCE(prev || rf);
dl_rq = &rq->dl;
if (need_pull_dl_task(rq, prev)) {
/*
* This is OK, because current is on_cpu, which avoids it being
* picked for load-balance and preemption/IRQs are still
* disabled avoiding further scheduler activity on it and we're
* being very careful to re-start the picking loop.
*/
rq_unpin_lock(rq, rf);
pull_dl_task(rq);
rq_repin_lock(rq, rf);
/*
* pull_dl_task() can drop (and re-acquire) rq->lock; this
* means a stop task can slip in, in which case we need to
* re-start task selection.
*/
if (rq->stop && task_on_rq_queued(rq->stop))
return RETRY_TASK;
}
/*
* When prev is DL, we may throttle it in put_prev_task().
* So, we update time before we check for dl_nr_running.
*/
if (prev->sched_class == &dl_sched_class)
update_curr_dl(rq);
if (unlikely(!dl_rq->dl_nr_running))
return NULL;
put_prev_task(rq, prev);
dl_se = pick_next_dl_entity(rq, dl_rq);
BUG_ON(!dl_se);

View file

@ -6810,7 +6810,7 @@ again:
goto idle;
#ifdef CONFIG_FAIR_GROUP_SCHED
if (!prev || prev->sched_class != &fair_sched_class)
if (prev->sched_class != &fair_sched_class)
goto simple;
/*
@ -6887,8 +6887,8 @@ again:
goto done;
simple:
#endif
if (prev)
put_prev_task(rq, prev);
put_prev_task(rq, prev);
do {
se = pick_next_entity(cfs_rq, NULL);
@ -6916,9 +6916,6 @@ done: __maybe_unused;
return p;
idle:
if (!rf)
return NULL;
new_tasks = newidle_balance(rq, rf);
/*

View file

@ -390,9 +390,7 @@ pick_next_task_idle(struct rq *rq, struct task_struct *prev, struct rq_flags *rf
{
struct task_struct *next = rq->idle;
if (prev)
put_prev_task(rq, prev);
put_prev_task(rq, prev);
set_next_task_idle(rq, next);
return next;

View file

@ -1554,11 +1554,38 @@ pick_next_task_rt(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
struct task_struct *p;
struct rt_rq *rt_rq = &rq->rt;
WARN_ON_ONCE(prev || rf);
if (need_pull_rt_task(rq, prev)) {
/*
* This is OK, because current is on_cpu, which avoids it being
* picked for load-balance and preemption/IRQs are still
* disabled avoiding further scheduler activity on it and we're
* being very careful to re-start the picking loop.
*/
rq_unpin_lock(rq, rf);
pull_rt_task(rq);
rq_repin_lock(rq, rf);
/*
* pull_rt_task() can drop (and re-acquire) rq->lock; this
* means a dl or stop task can slip in, in which case we need
* to re-start task selection.
*/
if (unlikely((rq->stop && task_on_rq_queued(rq->stop)) ||
rq->dl.dl_nr_running))
return RETRY_TASK;
}
/*
* We may dequeue prev's rt_rq in put_prev_task().
* So, we update time before rt_queued check.
*/
if (prev->sched_class == &rt_sched_class)
update_curr_rt(rq);
if (!rt_rq->rt_queued)
return NULL;
put_prev_task(rq, prev);
p = _pick_next_task_rt(rq);
set_next_task_rt(rq, p);

View file

@ -1724,15 +1724,12 @@ struct sched_class {
void (*check_preempt_curr)(struct rq *rq, struct task_struct *p, int flags);
/*
* Both @prev and @rf are optional and may be NULL, in which case the
* caller must already have invoked put_prev_task(rq, prev, rf).
* It is the responsibility of the pick_next_task() method that will
* return the next task to call put_prev_task() on the @prev task or
* something equivalent.
*
* Otherwise it is the responsibility of the pick_next_task() to call
* put_prev_task() on the @prev task or something equivalent, IFF it
* returns a next task.
*
* In that case (@rf != NULL) it may return RETRY_TASK when it finds a
* higher prio class has runnable tasks.
* May return RETRY_TASK when it finds a higher prio class has runnable
* tasks.
*/
struct task_struct * (*pick_next_task)(struct rq *rq,
struct task_struct *prev,

View file

@ -33,11 +33,10 @@ pick_next_task_stop(struct rq *rq, struct task_struct *prev, struct rq_flags *rf
{
struct task_struct *stop = rq->stop;
WARN_ON_ONCE(prev || rf);
if (!stop || !task_on_rq_queued(stop))
return NULL;
put_prev_task(rq, prev);
set_next_task_stop(rq, stop);
return stop;

View file

@ -1951,13 +1951,16 @@ next_level:
static int
build_sched_domains(const struct cpumask *cpu_map, struct sched_domain_attr *attr)
{
enum s_alloc alloc_state;
enum s_alloc alloc_state = sa_none;
struct sched_domain *sd;
struct s_data d;
int i, ret = -ENOMEM;
struct sched_domain_topology_level *tl_asym;
bool has_asym = false;
if (WARN_ON(cpumask_empty(cpu_map)))
goto error;
alloc_state = __visit_domain_allocation_hell(&d, cpu_map);
if (alloc_state != sa_rootdomain)
goto error;
@ -2022,7 +2025,7 @@ build_sched_domains(const struct cpumask *cpu_map, struct sched_domain_attr *att
rcu_read_unlock();
if (has_asym)
static_branch_enable_cpuslocked(&sched_asym_cpucapacity);
static_branch_inc_cpuslocked(&sched_asym_cpucapacity);
ret = 0;
error:
@ -2112,8 +2115,12 @@ int sched_init_domains(const struct cpumask *cpu_map)
*/
static void detach_destroy_domains(const struct cpumask *cpu_map)
{
unsigned int cpu = cpumask_any(cpu_map);
int i;
if (rcu_access_pointer(per_cpu(sd_asym_cpucapacity, cpu)))
static_branch_dec_cpuslocked(&sched_asym_cpucapacity);
rcu_read_lock();
for_each_cpu(i, cpu_map)
cpu_attach_domain(NULL, &def_root_domain, i);

View file

@ -7,6 +7,7 @@
* Copyright (C) 2010 SUSE Linux Products GmbH
* Copyright (C) 2010 Tejun Heo <tj@kernel.org>
*/
#include <linux/compiler.h>
#include <linux/completion.h>
#include <linux/cpu.h>
#include <linux/init.h>
@ -167,7 +168,7 @@ static void set_state(struct multi_stop_data *msdata,
/* Reset ack counter. */
atomic_set(&msdata->thread_ack, msdata->num_threads);
smp_wmb();
msdata->state = newstate;
WRITE_ONCE(msdata->state, newstate);
}
/* Last one to ack a state moves to the next state. */
@ -186,7 +187,7 @@ void __weak stop_machine_yield(const struct cpumask *cpumask)
static int multi_cpu_stop(void *data)
{
struct multi_stop_data *msdata = data;
enum multi_stop_state curstate = MULTI_STOP_NONE;
enum multi_stop_state newstate, curstate = MULTI_STOP_NONE;
int cpu = smp_processor_id(), err = 0;
const struct cpumask *cpumask;
unsigned long flags;
@ -210,8 +211,9 @@ static int multi_cpu_stop(void *data)
do {
/* Chill out and ensure we re-read multi_stop_state. */
stop_machine_yield(cpumask);
if (msdata->state != curstate) {
curstate = msdata->state;
newstate = READ_ONCE(msdata->state);
if (newstate != curstate) {
curstate = newstate;
switch (curstate) {
case MULTI_STOP_DISABLE_IRQ:
local_irq_disable();

View file

@ -164,7 +164,7 @@ static unsigned long hung_task_timeout_max = (LONG_MAX/HZ);
#ifdef CONFIG_SPARC
#endif
#ifdef __hppa__
#ifdef CONFIG_PARISC
extern int pwrsw_enabled;
#endif
@ -621,7 +621,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
#endif
#ifdef __hppa__
#ifdef CONFIG_PARISC
{
.procname = "soft-power",
.data = &pwrsw_enabled,

View file

@ -164,7 +164,7 @@ struct hrtimer_clock_base *lock_hrtimer_base(const struct hrtimer *timer,
struct hrtimer_clock_base *base;
for (;;) {
base = timer->base;
base = READ_ONCE(timer->base);
if (likely(base != &migration_base)) {
raw_spin_lock_irqsave(&base->cpu_base->lock, *flags);
if (likely(base == timer->base))
@ -244,7 +244,7 @@ again:
return base;
/* See the comment in lock_hrtimer_base() */
timer->base = &migration_base;
WRITE_ONCE(timer->base, &migration_base);
raw_spin_unlock(&base->cpu_base->lock);
raw_spin_lock(&new_base->cpu_base->lock);
@ -253,10 +253,10 @@ again:
raw_spin_unlock(&new_base->cpu_base->lock);
raw_spin_lock(&base->cpu_base->lock);
new_cpu_base = this_cpu_base;
timer->base = base;
WRITE_ONCE(timer->base, base);
goto again;
}
timer->base = new_base;
WRITE_ONCE(timer->base, new_base);
} else {
if (new_cpu_base != this_cpu_base &&
hrtimer_check_target(timer, new_base)) {

View file

@ -266,7 +266,7 @@ static void update_gt_cputime(struct task_cputime_atomic *cputime_atomic,
/**
* thread_group_sample_cputime - Sample cputime for a given task
* @tsk: Task for which cputime needs to be started
* @iimes: Storage for time samples
* @samples: Storage for time samples
*
* Called from sys_getitimer() to calculate the expiry time of an active
* timer. That means group cputime accounting is already active. Called
@ -1038,12 +1038,12 @@ unlock:
* member of @pct->bases[CLK].nextevt. False otherwise
*/
static inline bool
task_cputimers_expired(const u64 *sample, struct posix_cputimers *pct)
task_cputimers_expired(const u64 *samples, struct posix_cputimers *pct)
{
int i;
for (i = 0; i < CPUCLOCK_MAX; i++) {
if (sample[i] >= pct->bases[i].nextevt)
if (samples[i] >= pct->bases[i].nextevt)
return true;
}
return false;

View file

@ -17,6 +17,8 @@
#include <linux/seqlock.h>
#include <linux/bitops.h>
#include "timekeeping.h"
/**
* struct clock_read_data - data required to read from sched_clock()
*

View file

@ -272,9 +272,11 @@ int perf_kprobe_init(struct perf_event *p_event, bool is_retprobe)
goto out;
}
mutex_lock(&event_mutex);
ret = perf_trace_event_init(tp_event, p_event);
if (ret)
destroy_local_trace_kprobe(tp_event);
mutex_unlock(&event_mutex);
out:
kfree(func);
return ret;
@ -282,8 +284,10 @@ out:
void perf_kprobe_destroy(struct perf_event *p_event)
{
mutex_lock(&event_mutex);
perf_trace_event_close(p_event);
perf_trace_event_unreg(p_event);
mutex_unlock(&event_mutex);
destroy_local_trace_kprobe(p_event->tp_event);
}

View file

@ -679,6 +679,8 @@ static bool synth_field_signed(char *type)
{
if (str_has_prefix(type, "u"))
return false;
if (strcmp(type, "gfp_t") == 0)
return false;
return true;
}