Merge android11-5.4.278(7453ecf) into msm-5.4

* remotes/origin/tmp-7453ecf:
  UPSTREAM: usb: gadget: configfs: Prevent OOB read/write in usb_string_copy()
  ANDROID: 16K: Don't set padding vm_flags on 32-bit archs
  ANDROID: GKI: refresh ABI to include kimage_vaddr
  BACKPORT: arm64: move kimage_vaddr to .rodata
  BACKPORT: arm64: kernel: Convert to modern annotations for assembly data
  ANDROID: fix kernelci build breaks due to hid/uhid cyclic dependency
  UPSTREAM: af_unix: Fix garbage collector racing against connect()
  Revert "drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector"
  Linux 5.4.278
  nfs: fix undefined behavior in nfs_block_bits()
  s390/ap: Fix crash in AP internal function modify_bitmap()
  ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()
  sparc: move struct termio to asm/termios.h
  xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING
  net: fix __dst_negative_advice() race
  kdb: Use format-specifiers rather than memset() for padding in kdb_read()
  kdb: Merge identical case statements in kdb_read()
  kdb: Fix console handling when editing and tab-completing commands
  kdb: Use format-strings rather than '\0' injection in kdb_read()
  kdb: Fix buffer overflow during tab-complete
  sparc64: Fix number of online CPUs
  intel_th: pci: Add Meteor Lake-S CPU support
  net/9p: fix uninit-value in p9_client_rpc()
  net/ipv6: Fix route deleting failure when metric equals 0
  crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak
  crypto: ecrdsa - Fix module auto-load on add_key
  KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
  fbdev: savage: Handle err return when savagefb_check_var failed
  media: v4l2-core: hold videodev_lock until dev reg, finishes
  media: mxl5xx: Move xpt structures off stack
  media: mc: mark the media devnode as registered from the, start
  arm64: dts: hi3798cv200: fix the size of GICR
  wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU
  md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
  arm64: tegra: Correct Tegra132 I2C alias
  ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx
  ata: pata_legacy: make legacy_exit() work again
  drm/amdgpu: add error handle to avoid out-of-bounds
  media: lgdt3306a: Add a check against null-pointer-def
  f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()
  x86/mm: Remove broken vsyscall emulation code from the page fault code
  vxlan: Fix regression when dropping packets due to invalid src addresses
  nilfs2: fix use-after-free of timer for log writer thread
  afs: Don't cross .backup mountpoint from backup volume
  io_uring: fail NOP if non-zero op flags is passed in
  mmc: core: Do not force a retune before RPMB switch
  binder: fix max_thread type inconsistency
  SUNRPC: Fix loop termination condition in gss_free_in_token_pages()
  genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline
  ALSA: timer: Set lower bound of start tick time
  ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound
  spi: stm32: Don't warn about spurious interrupts
  kconfig: fix comparison to constant symbols, 'm', 'n'
  netfilter: tproxy: bail out if IP has been disabled on the device
  net:fec: Add fec_enet_deinit()
  net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM
  smsc95xx: use usbnet->driver_priv
  smsc95xx: remove redundant function arguments
  enic: Validate length of nl attributes in enic_set_vf_port
  dma-buf/sw-sync: don't enable IRQ from sync_print_obj()
  net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion
  nvmet: fix ns enable/disable possible hang
  spi: Don't mark message DMA mapped when no transfer in it is
  netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
  nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()
  nfc: nci: Fix kcov check in nci_rx_work()
  net: fec: avoid lock evasion when reading pps_enable
  virtio: delete vq in vp_find_vqs_msix() when request_irq() fails
  arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY
  openvswitch: Set the skbuff pkt_type for proper pmtud support.
  tcp: Fix shift-out-of-bounds in dctcp_update_alpha().
  params: lift param_set_uint_minmax to common code
  ipv6: sr: fix memleak in seg6_hmac_init_algo
  sunrpc: fix NFSACL RPC retry on soft mount
  nfc: nci: Fix uninit-value in nci_rx_work
  x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
  null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()
  media: cec: cec-api: add locking in cec_release()
  media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
  um: Fix the -Wmissing-prototypes warning for __switch_mm
  powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp
  scsi: qla2xxx: Replace all non-returning strlcpy() with strscpy()
  media: stk1160: fix bounds checking in stk1160_copy_video()
  um: Add winch to winch_handlers before registering winch IRQ
  um: Fix return value in ubd_init()
  drm/msm/dpu: Always flush the slave INTF on the CTL
  Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation
  Input: ims-pcu - fix printf string overflow
  libsubcmd: Fix parse-options memory leak
  serial: sh-sci: protect invalidating RXDMA on shutdown
  f2fs: fix to release node block count in error path of f2fs_new_node_page()
  extcon: max8997: select IRQ_DOMAIN instead of depending on it
  ppdev: Add an error check in register_device
  ppdev: Remove usage of the deprecated ida_simple_xx() API
  stm class: Fix a double free in stm_register_device()
  usb: gadget: u_audio: Clear uac pointer when freed.
  microblaze: Remove early printk call from cpuinfo-static.c
  microblaze: Remove gcc flag for non existing early_printk.c file
  iio: pressure: dps310: support negative temperature values
  greybus: arche-ctrl: move device table to its right location
  serial: max3100: Fix bitwise types
  serial: max3100: Update uart_driver_registered on driver removal
  serial: max3100: Lock port->lock when calling uart_handle_cts_change()
  firmware: dmi-id: add a release callback function
  dmaengine: idma64: Add check for dma_set_max_seg_size
  soundwire: cadence: fix invalid PDI offset
  soundwire: cadence_master: improve PDI allocation
  soundwire: intel: don't filter out PDI0/1
  soundwire: cadence/intel: simplify PDI/port mapping
  greybus: lights: check return of get_channel_from_mode
  sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level
  sched/topology: Don't set SD_BALANCE_WAKE on cpuset domain relax
  af_packet: do not call packet_read_pending() from tpacket_destruct_skb()
  netrom: fix possible dead-lock in nr_rt_ioctl()
  RDMA/IPoIB: Fix format truncation compilation errors
  selftests/kcmp: remove unused open mode
  selftests/kcmp: Make the test output consistent and clear
  SUNRPC: Fix gss_free_in_token_pages()
  sunrpc: removed redundant procp check
  ext4: avoid excessive credit estimate in ext4_tmpfile()
  x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map
  RDMA/hns: Use complete parentheses in macros
  drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector
  ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value
  drm/arm/malidp: fix a possible null pointer dereference
  fbdev: sh7760fb: allow modular build
  platform/x86: wmi: Make two functions static
  media: radio-shark2: Avoid led_names truncations
  media: ngene: Add dvb_ca_en50221_init return value check
  fbdev: sisfb: hide unused variables
  powerpc/fsl-soc: hide unused const variable
  drm/mediatek: Add 0 size check to mtk_drm_gem_obj
  fbdev: shmobile: fix snprintf truncation
  mtd: rawnand: hynix: fixed typo
  drm/amd/display: Fix potential index out of bounds in color transformation function
  ipv6: sr: fix invalid unregister error path
  ipv6: sr: fix incorrect unregister order
  ipv6: sr: add missing seg6_local_exit
  net: openvswitch: fix overwriting ct original tuple for ICMPv6
  net: usb: smsc95xx: stop lying about skb->truesize
  af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg
  net: ethernet: cortina: Locking fixes
  m68k: mac: Fix reboot hang on Mac IIci
  m68k: Fix spinlock race in kernel thread creation
  net: usb: sr9700: stop lying about skb->truesize
  usb: aqc111: stop lying about skb->truesize
  wifi: mwl8k: initialize cmd->addr[] properly
  scsi: qedf: Ensure the copied buf is NUL terminated
  scsi: bfa: Ensure the copied buf is NUL terminated
  HID: intel-ish-hid: ipc: Add check for pci_alloc_irq_vectors
  Revert "sh: Handle calling csum_partial with misaligned data"
  sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()
  wifi: ar5523: enable proper endpoint verification
  wifi: carl9170: add a proper sanity check for endpoints
  macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
  tcp: avoid premature drops in tcp_add_backlog()
  tcp: fix a signed-integer-overflow bug in tcp_add_backlog()
  tcp: minor optimization in tcp_add_backlog()
  wifi: ath10k: populate board data for WCN3990
  wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()
  x86/purgatory: Switch to the position-independent small code model
  scsi: hpsa: Fix allocation size for Scsi_Host private data
  scsi: libsas: Fix the failure of adding phy with zero-address to port
  cpufreq: exit() callback is optional
  cpufreq: Rearrange locking in cpufreq_remove_dev()
  cpufreq: Split cpufreq_offline()
  cpufreq: Reorganize checks in cpufreq_offline()
  ACPI: disable -Wstringop-truncation
  irqchip/alpine-msi: Fix off-by-one in allocation error path
  scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL
  scsi: ufs: core: Perform read back after disabling interrupts
  scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV
  scsi: ufs: qcom: Perform read back after writing reset bit
  qed: avoid truncating work queue length
  x86/boot: Ignore relocations in .notes sections in walk_relocs() too
  wifi: ath10k: poll service ready message before failing
  md: fix resync softlockup when bitmap size is less than array size
  null_blk: Fix missing mutex_destroy() at module removal
  jffs2: prevent xattr node from overflowing the eraseblock
  s390/cio: fix tracepoint subchannel type field
  crypto: ccp - drop platform ifdef checks
  parisc: add missing export of __cmpxchg_u8()
  nilfs2: fix out-of-range warning
  ecryptfs: Fix buffer size for tag 66 packet
  firmware: raspberrypi: Use correct device for DMA mappings
  crypto: bcm - Fix pointer arithmetic
  openpromfs: finish conversion to the new mount API
  nvme: find numa distance only if controller has valid numa id
  drm/amdkfd: Flush the process wq before creating a kfd_process
  ASoC: da7219-aad: fix usage of device_get_named_child_node()
  ASoC: dt-bindings: rt5645: add cbj sleeve gpio property
  ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating
  drm/amd/display: Set color_mgmt_changed to true on unsuspend
  net: usb: qmi_wwan: add Telit FN920C04 compositions
  wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class
  nilfs2: fix potential hang in nilfs_detach_log_writer()
  nilfs2: fix unexpected freezing of nilfs_segctor_sync()
  net: smc91x: Fix m68k kernel compilation for ColdFire CPU
  ring-buffer: Fix a race between readers and resize checks
  speakup: Fix sizeof() vs ARRAY_SIZE() bug
  tty: n_gsm: fix possible out-of-bounds in gsm0_receive()
  x86/tsc: Trust initial offset in architectural TSC-adjust MSRs
  Linux 5.4.277
  docs: kernel_include.py: Cope with docutils 0.21
  serial: kgdboc: Fix NMI-safety problems from keyboard reset code
  usb: typec: ucsi: displayport: Fix potential deadlock
  drm/amdgpu: Fix possible NULL dereference in amdgpu_ras_query_error_status_helper()
  btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks()
  arm64: dts: qcom: Fix 'interrupt-map' parent address cells
  firmware: arm_scmi: Harden accesses to the reset domains
  smb: client: fix potential OOBs in smb2_parse_contexts()
  net: bcmgenet: synchronize UMAC_CMD access
  net: bcmgenet: synchronize use of bcmgenet_set_rx_mode()
  net: bcmgenet: synchronize EXT_RGMII_OOB_CTRL access
  net: bcmgenet: keep MAC in reset until PHY is up
  Revert "net: bcmgenet: use RGMII loopback for MAC reset"
  Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems"
  ext4: fix bug_on in __es_tree_search
  pinctrl: core: handle radix_tree_insert() errors in pinctrl_register_one_pin()
  Linux 5.4.276
  pinctrl: mediatek: paris: Fix PIN_CONFIG_INPUT_SCHMITT_ENABLE readback
  pinctrl: mediatek: remove set but not used variable 'e'
  pinctrl: mediatek: Fix some off by one bugs
  pinctrl: mediatek: Fix fallback behavior for bias_set_combo
  regulator: core: fix debugfs creation regression
  net: fix out-of-bounds access in ops_init
  drm/vmwgfx: Fix invalid reads in fence signaled events
  dyndbg: fix old BUG_ON in >control parser
  tipc: fix UAF in error path
  usb: gadget: f_fs: Fix a race condition when processing setup packets.
  usb: gadget: composite: fix OS descriptors w_value logic
  firewire: nosy: ensure user_length is taken into account when fetching packet contents
  net: qede: use return from qede_parse_flow_attr() for flower
  net: qede: sanitize 'rc' in qede_add_tc_flower_fltr()
  ipv6: fib6_rules: avoid possible NULL dereference in fib6_rule_action()
  net: bridge: fix corrupted ethernet header on multicast-to-unicast
  phonet: fix rtm_phonet_notify() skb allocation
  rtnetlink: Correct nested IFLA_VF_VLAN_LIST attribute validation
  Bluetooth: l2cap: fix null-ptr-deref in l2cap_chan_timeout
  Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout
  tcp: Use refcount_inc_not_zero() in tcp_twsk_unique().
  tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets
  xfrm: Preserve vlan tags for transport mode software GRO
  pinctrl: mediatek: Fix fallback call path
  net:usb:qmi_wwan: support Rolling modules
  fs/9p: drop inodes immediately on non-.L too
  clk: Don't hold prepare_lock when calling kref_put()
  gpio: crystalcove: Use -ENOTSUPP consistently
  gpio: wcove: Use -ENOTSUPP consistently
  9p: explicitly deny setlease attempts
  fs/9p: translate O_TRUNC into OTRUNC
  fs/9p: only translate RWX permissions for plain 9P2000
  selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior
  MIPS: scall: Save thread_info.syscall unconditionally on entry
  gpu: host1x: Do not setup DMA for virtual devices
  scsi: target: Fix SELinux error when systemd-modules loads the target module
  btrfs: always clear PERTRANS metadata during commit
  btrfs: make btrfs_clear_delalloc_extent() free delalloc reserve
  tools/power turbostat: Fix Bzy_MHz documentation typo
  tools/power turbostat: Fix added raw MSR output
  firewire: ohci: mask bus reset interrupts between ISR and bottom half
  ata: sata_gemini: Check clk_enable() result
  net: bcmgenet: Reset RBUF on first open
  ALSA: line6: Zero-initialize message buffers
  scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload
  net: mark racy access on sk->sk_rcvbuf
  wifi: cfg80211: fix rdev_dump_mpp() arguments order
  wifi: mac80211: fix ieee80211_bss_*_flags kernel-doc
  gfs2: Fix invalid metadata access in punch_hole
  scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic
  clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change
  tipc: fix a possible memleak in tipc_buf_append
  net: bridge: fix multicast-to-unicast with fraglist GSO
  net: dsa: mv88e6xxx: Fix number of databases for 88E6141 / 88E6341
  net: dsa: mv88e6xxx: Add number of MACs in the ATU
  net: qede: use return from qede_parse_flow_attr() for flow_spec
  net l2tp: drop flow hash on forward
  nsh: Restore skb->{protocol,data,mac_header} for outer header in nsh_gso_segment().
  bna: ensure the copied buf is NUL terminated
  s390/mm: Fix clearing storage keys for huge pages
  s390/mm: Fix storage key clearing for guest huge pages
  pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map()
  power: rt9455: hide unused rt9455_boost_voltage_values
  nfs: Handle error of rpc_proc_register() in nfs_net_init().
  nfs: make the rpc_stat per net namespace
  nfs: expose /proc/net/sunrpc/nfs in net namespaces
  sunrpc: add a struct rpc_stats arg to rpc_create_args
  pinctrl: mediatek: paris: Rework support for PIN_CONFIG_{INPUT,OUTPUT}_ENABLE
  pinctrl: mediatek: paris: Rework mtk_pinconf_{get,set} switch/case logic
  pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback
  pinctrl: mediatek: remove shadow variable declaration
  pinctrl: mediatek: Backward compatible to previous Mediatek's bias-pull usage
  pinctrl: mediatek: Refine mtk_pinconf_get()
  pinctrl: mediatek: Refine mtk_pinconf_get() and mtk_pinconf_set()
  pinctrl: mediatek: Supporting driving setting without mapping current to register value
  pinctrl: mediatek: Check gpio pin number and use binary search in mtk_hw_pin_field_lookup()
  pinctrl: core: delete incorrect free in pinctrl_enable()
  wifi: nl80211: don't free NULL coalescing rule
  dmaengine: Revert "dmaengine: pl330: issue_pending waits until WFP state"
  dmaengine: pl330: issue_pending waits until WFP state
  Revert "clk: Get runtime PM before walking tree during disable_unused"
  Linux 5.4.275
  serial: core: fix kernel-doc for uart_port_unlock_irqrestore()
  udp: preserve the connected status if only UDP cmsg
  dm: limit the number of targets and parameter size area
  bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS
  HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up
  i2c: smbus: fix NULL function pointer dereference
  idma64: Don't try to serve interrupts when device is powered off
  dmaengine: owl: fix register access functions
  tcp: Fix NEW_SYN_RECV handling in inet_twsk_purge()
  tcp: Clean up kernel listener's reqsk in inet_twsk_purge()
  mtd: diskonchip: work around ubsan link failure
  stackdepot: respect __GFP_NOLOCKDEP allocation flag
  net: b44: set pause params only when interface is up
  ethernet: Add helper for assigning packet type when dest address does not match device address
  irqchip/gic-v3-its: Prevent double free on error
  drm/amdgpu: Fix leak when GPU memory allocation fails
  arm64: dts: rockchip: enable internal pull-up for Q7_THRM# on RK3399 Puma
  btrfs: fix information leak in btrfs_ioctl_logical_to_ino()
  Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853
  Bluetooth: Fix type of len in {l2cap,sco}_sock_getsockopt_old()
  tracing: Increase PERF_MAX_TRACE_SIZE to handle Sentinel1 and docker together
  tracing: Show size of requested perf buffer
  net/mlx5e: Fix a race in command alloc flow
  Revert "crypto: api - Disallow identical driver names"
  drm/amdgpu: validate the parameters of bo mapping operations more clearly
  amdgpu: validate offset_in_bo of drm_amdgpu_gem_va
  drm/amdgpu: restrict bo mapping within gpu address limits
  serial: mxs-auart: add spinlock around changing cts state
  serial: core: Provide port lock wrappers
  af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc().
  iavf: Fix TC config comparison with existing adapter TC config
  i40e: Do not use WQ_MEM_RECLAIM flag for workqueue
  mlxsw: spectrum_acl_tcam: Fix memory leak when canceling rehash work
  mlxsw: spectrum_acl_tcam: Fix incorrect list API usage
  mlxsw: spectrum_acl_tcam: Fix warning during rehash
  mlxsw: spectrum_acl_tcam: Fix memory leak during rehash
  mlxsw: spectrum_acl_tcam: Rate limit error message
  mlxsw: spectrum_acl_tcam: Fix possible use-after-free during rehash
  mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update
  mlxsw: spectrum_acl_tcam: Fix race during rehash delayed work
  net: openvswitch: Fix Use-After-Free in ovs_ct_exit
  ipvs: Fix checksumming on GSO of SCTP packets
  net: gtp: Fix Use-After-Free in gtp_dellink
  net: usb: ax88179_178a: stop lying about skb->truesize
  NFC: trf7970a: disable all regulators on removal
  mlxsw: core: Unregister EMAD trap using FORWARD action
  vxlan: drop packets from invalid src-address
  ARC: [plat-hsdk]: Remove misplaced interrupt-cells property
  arm64: dts: mediatek: mt2712: fix validation errors
  arm64: dts: mt2712: add ethernet device node
  arm64: dts: mediatek: mt7622: drop "reset-names" from thermal block
  arm64: dts: mediatek: mt7622: fix ethernet controller "compatible"
  arm64: dts: mediatek: mt7622: fix IR nodename
  arm64: dts: rockchip: enable internal pull-up on PCIE_WAKE# for RK3399 Puma
  arm64: dts: rockchip: fix alphabetical ordering RK3399 puma
  KVM: async_pf: Cleanup kvm_setup_async_pf()
  nilfs2: fix OOB in nilfs_set_de_type
  nouveau: fix instmem race condition around ptr stores
  fs: sysfs: Fix reference leak in sysfs_break_active_protection()
  speakup: Avoid crash on very long word
  usb: Disable USB3 LPM at shutdown
  usb: dwc2: host: Fix dereference issue in DDMA completion flow.
  Revert "usb: cdc-wdm: close race between read and workqueue"
  USB: serial: option: add Telit FN920C04 rmnet compositions
  USB: serial: option: add Rolling RW101-GL and RW135-GL support
  USB: serial: option: support Quectel EM060K sub-models
  USB: serial: option: add Lonsung U8300/U9300 product
  USB: serial: option: add support for Fibocom FM650/FG650
  USB: serial: option: add Fibocom FM135-GL variants
  serial/pmac_zilog: Remove flawed mitigation for rx irq flood
  comedi: vmk80xx: fix incomplete endpoint checking
  binder: check offset alignment in binder_get_object()
  x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ
  clk: Get runtime PM before walking tree during disable_unused
  clk: Initialize struct clk_core kref earlier
  clk: Print an info line before disabling unused clocks
  clk: remove extra empty line
  clk: Mark 'all_lists' as const
  clk: Remove prepare_lock hold assertion in __clk_release()
  drm: nv04: Fix out of bounds access
  RDMA/mlx5: Fix port number for counter query in multi-port configuration
  RDMA/rxe: Fix the problem "mutex_destroy missing"
  tun: limit printing rate when illegal packet received by tun dev
  netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get()
  Revert "tracing/trigger: Fix to return error if failed to alloc snapshot"
  kprobes: Fix possible use-after-free issue on kprobe registration
  selftests/ftrace: Limit length in subsystem-enable tests
  btrfs: record delayed inode root in transaction
  x86/apic: Force native_apic_mem_read() to use the MOV instruction
  selftests: timers: Fix abs() warning in posix_timers test
  vhost: Add smp_rmb() in vhost_vq_avail_empty()
  drm/client: Fully protect modes[] with dev->mode_config.mutex
  btrfs: qgroup: correctly model root qgroup rsv in convert
  net: ena: Fix potential sign extension issue
  af_unix: Fix garbage collector racing against connect()
  af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
  net/mlx5: Properly link new fs rules into the tree
  ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr
  ipv4/route: avoid unused-but-set-variable warning
  ipv6: fib: hide unused 'pn' variable
  geneve: fix header validation in geneve[6]_xmit_skb
  u64_stats: fix u64_stats_init() for lockdep when used repeatedly in one file
  net: openvswitch: fix unwanted error log on timeout policy probing
  nouveau: fix function cast warning
  Bluetooth: Fix memory leak in hci_req_sync_complete()
  batman-adv: Avoid infinite loop trying to resize local TT

Change-Id: I36df890fc0cf15277cf5d6be8f56774233fb4431
Signed-off-by: kamasali Satyanarayan <quic_kamasali@quicinc.com>
This commit is contained in:
kamasali Satyanarayan 2024-09-23 13:08:11 +05:30
commit e88bb9b374
358 changed files with 149736 additions and 145971 deletions

View file

@ -19,7 +19,7 @@ int main(void)
DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS);
DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES);
#ifdef CONFIG_SMP
DEFINE(NR_CPUS_BITS, bits_per(CONFIG_NR_CPUS));
DEFINE(NR_CPUS_BITS, order_base_2(CONFIG_NR_CPUS));
#endif
DEFINE(SPINLOCK_SIZE, sizeof(spinlock_t));
/* End of constants */

View file

@ -1883,7 +1883,7 @@ bool current_cpuset_is_being_rebound(void)
static int update_relax_domain_level(struct cpuset *cs, s64 val)
{
#ifdef CONFIG_SMP
if (val < -1 || val >= sched_domain_level_max)
if (val < -1 || val > sched_domain_level_max + 1)
return -EINVAL;
#endif

View file

@ -170,6 +170,33 @@ static int kdb_read_get_key(char *buffer, size_t bufsize)
return key;
}
/**
* kdb_position_cursor() - Place cursor in the correct horizontal position
* @prompt: Nil-terminated string containing the prompt string
* @buffer: Nil-terminated string containing the entire command line
* @cp: Cursor position, pointer the character in buffer where the cursor
* should be positioned.
*
* The cursor is positioned by sending a carriage-return and then printing
* the content of the line until we reach the correct cursor position.
*
* There is some additional fine detail here.
*
* Firstly, even though kdb_printf() will correctly format zero-width fields
* we want the second call to kdb_printf() to be conditional. That keeps things
* a little cleaner when LOGGING=1.
*
* Secondly, we can't combine everything into one call to kdb_printf() since
* that renders into a fixed length buffer and the combined print could result
* in unwanted truncation.
*/
static void kdb_position_cursor(char *prompt, char *buffer, char *cp)
{
kdb_printf("\r%s", kdb_prompt_str);
if (cp > buffer)
kdb_printf("%.*s", (int)(cp - buffer), buffer);
}
/*
* kdb_read
*
@ -208,7 +235,6 @@ static char *kdb_read(char *buffer, size_t bufsize)
* and null byte */
char *lastchar;
char *p_tmp;
char tmp;
static char tmpbuffer[CMD_BUFLEN];
int len = strlen(buffer);
int len_tmp;
@ -247,12 +273,8 @@ poll_again:
}
*(--lastchar) = '\0';
--cp;
kdb_printf("\b%s \r", cp);
tmp = *cp;
*cp = '\0';
kdb_printf(kdb_prompt_str);
kdb_printf("%s", buffer);
*cp = tmp;
kdb_printf("\b%s ", cp);
kdb_position_cursor(kdb_prompt_str, buffer, cp);
}
break;
case 13: /* enter */
@ -269,19 +291,14 @@ poll_again:
memcpy(tmpbuffer, cp+1, lastchar - cp - 1);
memcpy(cp, tmpbuffer, lastchar - cp - 1);
*(--lastchar) = '\0';
kdb_printf("%s \r", cp);
tmp = *cp;
*cp = '\0';
kdb_printf(kdb_prompt_str);
kdb_printf("%s", buffer);
*cp = tmp;
kdb_printf("%s ", cp);
kdb_position_cursor(kdb_prompt_str, buffer, cp);
}
break;
case 1: /* Home */
if (cp > buffer) {
kdb_printf("\r");
kdb_printf(kdb_prompt_str);
cp = buffer;
kdb_position_cursor(kdb_prompt_str, buffer, cp);
}
break;
case 5: /* End */
@ -297,11 +314,10 @@ poll_again:
}
break;
case 14: /* Down */
memset(tmpbuffer, ' ',
strlen(kdb_prompt_str) + (lastchar-buffer));
*(tmpbuffer+strlen(kdb_prompt_str) +
(lastchar-buffer)) = '\0';
kdb_printf("\r%s\r", tmpbuffer);
case 16: /* Up */
kdb_printf("\r%*c\r",
(int)(strlen(kdb_prompt_str) + (lastchar - buffer)),
' ');
*lastchar = (char)key;
*(lastchar+1) = '\0';
return lastchar;
@ -311,15 +327,6 @@ poll_again:
++cp;
}
break;
case 16: /* Up */
memset(tmpbuffer, ' ',
strlen(kdb_prompt_str) + (lastchar-buffer));
*(tmpbuffer+strlen(kdb_prompt_str) +
(lastchar-buffer)) = '\0';
kdb_printf("\r%s\r", tmpbuffer);
*lastchar = (char)key;
*(lastchar+1) = '\0';
return lastchar;
case 9: /* Tab */
if (tab < 2)
++tab;
@ -363,15 +370,25 @@ poll_again:
kdb_printf("\n");
kdb_printf(kdb_prompt_str);
kdb_printf("%s", buffer);
if (cp != lastchar)
kdb_position_cursor(kdb_prompt_str, buffer, cp);
} else if (tab != 2 && count > 0) {
len_tmp = strlen(p_tmp);
strncpy(p_tmp+len_tmp, cp, lastchar-cp+1);
len_tmp = strlen(p_tmp);
strncpy(cp, p_tmp+len, len_tmp-len + 1);
len = len_tmp - len;
kdb_printf("%s", cp);
cp += len;
lastchar += len;
/* How many new characters do we want from tmpbuffer? */
len_tmp = strlen(p_tmp) - len;
if (lastchar + len_tmp >= bufend)
len_tmp = bufend - lastchar;
if (len_tmp) {
/* + 1 ensures the '\0' is memmove'd */
memmove(cp+len_tmp, cp, (lastchar-cp) + 1);
memcpy(cp, p_tmp+len, len_tmp);
kdb_printf("%s", cp);
cp += len_tmp;
lastchar += len_tmp;
if (cp != lastchar)
kdb_position_cursor(kdb_prompt_str,
buffer, cp);
}
}
kdb_nextline = 1; /* reset output line number */
break;
@ -382,13 +399,9 @@ poll_again:
memcpy(cp+1, tmpbuffer, lastchar - cp);
*++lastchar = '\0';
*cp = key;
kdb_printf("%s\r", cp);
kdb_printf("%s", cp);
++cp;
tmp = *cp;
*cp = '\0';
kdb_printf(kdb_prompt_str);
kdb_printf("%s", buffer);
*cp = tmp;
kdb_position_cursor(kdb_prompt_str, buffer, cp);
} else {
*++lastchar = '\0';
*cp++ = key;

View file

@ -72,6 +72,14 @@ static bool migrate_one_irq(struct irq_desc *desc)
return false;
}
/*
* Complete an eventually pending irq move cleanup. If this
* interrupt was moved in hard irq context, then the vectors need
* to be cleaned up. It can't wait until this interrupt actually
* happens and this CPU was involved.
*/
irq_force_complete_move(desc);
/*
* No move required, if:
* - Interrupt is per cpu
@ -90,14 +98,6 @@ static bool migrate_one_irq(struct irq_desc *desc)
return false;
}
/*
* Complete an eventually pending irq move cleanup. If this
* interrupt was moved in hard irq context, then the vectors need
* to be cleaned up. It can't wait until this interrupt actually
* happens and this CPU was involved.
*/
irq_force_complete_move(desc);
/*
* If there is a setaffinity pending, then try to reuse the pending
* mask, so the last change of the affinity does not get lost. If

View file

@ -1593,10 +1593,17 @@ static int check_kprobe_address_safe(struct kprobe *p,
jump_label_lock();
preempt_disable();
/* Ensure it is not in reserved area nor out of text */
if (!(core_kernel_text((unsigned long) p->addr) ||
is_module_text_address((unsigned long) p->addr)) ||
in_gate_area_no_mm((unsigned long) p->addr) ||
/* Ensure the address is in a text area, and find a module if exists. */
*probed_mod = NULL;
if (!core_kernel_text((unsigned long) p->addr)) {
*probed_mod = __module_text_address((unsigned long) p->addr);
if (!(*probed_mod)) {
ret = -EINVAL;
goto out;
}
}
/* Ensure it is not in reserved area. */
if (in_gate_area_no_mm((unsigned long) p->addr) ||
within_kprobe_blacklist((unsigned long) p->addr) ||
jump_label_text_reserved(p->addr, p->addr) ||
find_bug((unsigned long)p->addr)) {
@ -1604,8 +1611,7 @@ static int check_kprobe_address_safe(struct kprobe *p,
goto out;
}
/* Check if are we probing a module */
*probed_mod = __module_text_address((unsigned long) p->addr);
/* Get module refcount and reject __init functions for loaded modules. */
if (*probed_mod) {
/*
* We must hold a refcount of the probed module while updating

View file

@ -242,6 +242,24 @@ STANDARD_PARAM_DEF(long, long, "%li", kstrtol);
STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", kstrtoul);
STANDARD_PARAM_DEF(ullong, unsigned long long, "%llu", kstrtoull);
int param_set_uint_minmax(const char *val, const struct kernel_param *kp,
unsigned int min, unsigned int max)
{
unsigned int num;
int ret;
if (!val)
return -EINVAL;
ret = kstrtouint(val, 0, &num);
if (ret)
return ret;
if (num < min || num > max)
return -EINVAL;
*((unsigned int *)kp->arg) = num;
return 0;
}
EXPORT_SYMBOL_GPL(param_set_uint_minmax);
int param_set_charp(const char *val, const struct kernel_param *kp)
{
if (strlen(val) > 1024) {

View file

@ -1209,16 +1209,13 @@ static void set_domain_attribute(struct sched_domain *sd,
if (!attr || attr->relax_domain_level < 0) {
if (default_relax_domain_level < 0)
return;
else
request = default_relax_domain_level;
request = default_relax_domain_level;
} else
request = attr->relax_domain_level;
if (request < sd->level) {
if (sd->level >= request) {
/* Turn off idle balance on this domain: */
sd->flags &= ~(SD_BALANCE_WAKE|SD_BALANCE_NEWIDLE);
} else {
/* Turn on idle balance on this domain: */
sd->flags |= (SD_BALANCE_WAKE|SD_BALANCE_NEWIDLE);
}
}

View file

@ -1174,6 +1174,11 @@ static int rb_check_list(struct ring_buffer_per_cpu *cpu_buffer,
*
* As a safety measure we check to make sure the data pages have not
* been corrupted.
*
* Callers of this function need to guarantee that the list of pages doesn't get
* modified during the check. In particular, if it's possible that the function
* is invoked with concurrent readers which can swap in a new reader page then
* the caller should take cpu_buffer->reader_lock.
*/
static int rb_check_pages(struct ring_buffer_per_cpu *cpu_buffer)
{
@ -1890,8 +1895,12 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size,
*/
synchronize_rcu();
for_each_buffer_cpu(buffer, cpu) {
unsigned long flags;
cpu_buffer = buffer->buffers[cpu];
raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
rb_check_pages(cpu_buffer);
raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
}
atomic_dec(&buffer->record_disabled);
}

View file

@ -400,7 +400,8 @@ void *perf_trace_buf_alloc(int size, struct pt_regs **regs, int *rctxp)
BUILD_BUG_ON(PERF_MAX_TRACE_SIZE % sizeof(unsigned long));
if (WARN_ONCE(size > PERF_MAX_TRACE_SIZE,
"perf buffer not large enough"))
"perf buffer not large enough, wanted %d, have %d",
size, PERF_MAX_TRACE_SIZE))
return NULL;
*rctxp = rctx = perf_swevent_get_recursion_context();

View file

@ -1140,10 +1140,8 @@ register_snapshot_trigger(char *glob, struct event_trigger_ops *ops,
struct event_trigger_data *data,
struct trace_event_file *file)
{
int ret = tracing_alloc_snapshot_instance(file->tr);
if (ret < 0)
return ret;
if (tracing_alloc_snapshot_instance(file->tr) != 0)
return 0;
return register_trigger(glob, ops, data, file);
}