Files
linux/kernel/watch_queue.c
Greg Kroah-Hartman cac3a605c5 Merge 64f18041dd ("Merge branch 'android13-5.10' into branch 'android13-5.10-lts'") into android13-5.10-lts
This is the merge of the upstream LTS release of 5.10.118 into the
android13-5.10 branch.

It contains the following commits:

64f18041dd Merge branch 'android13-5.10' into branch 'android13-5.10-lts'
3cbab1c9ac Revert "xfrm: Add possibility to set the default to block if we have no policy"
49412256c9 Revert "net: xfrm: fix shift-out-of-bounce"
65b0a22abc Revert "xfrm: make user policy API complete"
b60c58879e Revert "xfrm: notify default policy on update"
51b82c1241 Revert "xfrm: fix dflt policy check when there is no policy configured"
f91fa99d4b Revert "xfrm: rework default policy structure"
c932832406 Revert "xfrm: fix "disable_policy" flag use when arriving from different devices"
6629a18b57 Revert "include/uapi/linux/xfrm.h: Fix XFRM_MSG_MAPPING ABI breakage"
a6c120a514 Merge "Merge 5.10.118 into android13-5.10-lts" into android13-5.10-lts
17267bb8e8 ANDROID: Adding Image.gz and boot-gz.img
3b28477cb8 ANDROID: Creating boot-img.tar.gz for aarch64
4cbf7ff510 Merge 5.10.118 into android13-5.10-lts
9ab92c66ba Merge 5.10.117 into android13-5.10-lts
d96a068cc6 Merge 5.10.116 into android13-5.10-lts
8e6b4843be Merge 5.10.115 into android13-5.10-lts
a8cb914f75 ANDROID: GKI: update the abi .xml file due to hex_to_bin() changes
3828f1164c Revert "tcp: ensure to use the most recently sent skb when filling the rate sample"
52ddbabcb3 Merge 5.10.114 into android13-5.10-lts
902d7527c1 Revert "ipv6: make ip6_rt_gc_expire an atomic_t"
d3d4f869cd Revert "oom_kill.c: futex: delay the OOM reaper to allow time for proper futex cleanup"
11565b017b Merge 5.10.113 into android13-5.10-lts
fe917bad60 Merge 5.10.112 into android13-5.10-lts
c356141b2b ANDROID: fix up gpio change in 5.10.111
44eebe417e Merge 5.10.111 into android13-5.10-lts
c204ee3350 Linux 5.10.118
56642f6af2 module: check for exit sections in layout_sections() instead of module_init_section()
633be494c3 include/uapi/linux/xfrm.h: Fix XFRM_MSG_MAPPING ABI breakage
61a4cc41e5 afs: Fix afs_getattr() to refetch file status if callback break occurred
606011cb6a i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
030de84d45 module: treat exit sections the same as init sections when !CONFIG_MODULE_UNLOAD
355141fdbf dt-bindings: pinctrl: aspeed-g6: remove FWQSPID group
d30fdf7d13 Input: ili210x - fix reset timing
a698bf1f72 arm64: Enable repeat tlbi workaround on KRYO4XX gold CPUs
696292b9b5 net: atlantic: verify hw_head_ lies within TX buffer ring
cd66ab20a8 net: atlantic: add check for MAX_SKB_FRAGS
9bee8b4275 net: atlantic: reduce scope of is_rsc_complete
9b84e83a92 net: atlantic: fix "frag[0] not initialized"
0ae23a1d47 net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe()
d4c6e5cebc ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one()
3a6dee284f nl80211: fix locking in nl80211_set_tx_bitrate_mask()
efe580c436 selftests: add ping test with ping_group_range tuned
1cfbf6d3a7 nl80211: validate S1G channel width
a0f5ff2049 mac80211: fix rx reordering with non explicit / psmp ack policy
e21d734fd0 scsi: qla2xxx: Fix missed DMA unmap for aborted commands
c5af341747 perf bench numa: Address compiler error on s390
210ea7da5c gpio: mvebu/pwm: Refuse requests with inverted polarity
30d4721fec gpio: gpio-vf610: do not touch other bits when set the target bit
ea8a9cb4a7 riscv: dts: sifive: fu540-c000: align dma node name with dtschema
dfd1f0cb62 net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
579061f391 igb: skip phy status check where unavailable
a89888648e ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
1756b45d8d ARM: 9196/1: spectre-bhb: enable for Cortex-A15
7b676abe32 net: af_key: add check for pfkey_broadcast in function pfkey_process
697f3219ee net/mlx5e: Properly block LRO when XDP is enabled
b503d0228c NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
42d4287cc1 net/qla3xxx: Fix a test in ql_reset_work()
d35bf8d766 clk: at91: generated: consider range when calculating best rate
9e0e75a5e7 ice: fix possible under reporting of ethtool Tx and Rx statistics
6e2caee5cd net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
a54d86cf41 net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
201e5b5c27 net: systemport: Fix an error handling path in bcm_sysport_probe()
9bfe898e2b net/sched: act_pedit: sanitize shift argument before usage
47f04f95ed xfrm: fix "disable_policy" flag use when arriving from different devices
0d2e9d8000 xfrm: rework default policy structure
57c1bbe709 xfrm: fix dflt policy check when there is no policy configured
9856c3a129 xfrm: notify default policy on update
20fd28df40 xfrm: make user policy API complete
ab610ee1d1 net: xfrm: fix shift-out-of-bounce
5b7f84b1f9 xfrm: Add possibility to set the default to block if we have no policy
243e72e204 net: evaluate net.ipvX.conf.all.disable_policy and disable_xfrm
1bc27eb71b net: macb: Increment rx bd head after allocating skb and buffer
998e305bd1 net: ipa: record proper RX transaction count
0599d5a8b4 ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
0a2847d448 pinctrl: pinctrl-aspeed-g6: remove FWQSPID group in pinctrl
d8ca684c3d ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
3fc2846099 dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
e5289affba drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
8ceca1a069 libceph: fix potential use-after-free on linger ping and resends
233a3cc60e crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
6013ef5f51 arm64: mte: Ensure the cleared tags are visible before setting the PTE
a817f78ed6 arm64: paravirt: Use RCU read locks to guard stolen_time
b49bc8d615 KVM: x86/mmu: Update number of zapped pages even if page list is stable
146128ba26 PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold
ec0d801d1a Fix double fget() in vhost_net_set_backend()
b42e5e3a84 selinux: fix bad cleanup on error in hashtab_duplicate()
3ee8e109c3 perf: Fix sys_perf_event_open() race against self
18fb7d533c ALSA: hda/realtek: Add quirk for TongFang devices with pop noise
3eaf770163 ALSA: wavefront: Proper check of get_user() error
a34d018b6e ALSA: usb-audio: Restore Rane SL-1 quirk
f3f2247ac3 Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
e2cfa7b093 Revert "swiotlb: fix info leak with DMA_FROM_DEVICE"
fe5ac3da50 nilfs2: fix lockdep warnings during disk space reclamation
d626fcdabe nilfs2: fix lockdep warnings in page operations for btree nodes
aca18bacdb ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
0acaf9cacd platform/chrome: cros_ec_debugfs: detach log reader wq from devm
5a19f3c2d3 drbd: remove usage of list iterator variable after loop
9b7f321106 MIPS: lantiq: check the return value of kzalloc()
05c073b1ad fs: fix an infinite loop in iomap_fiemap
00d8b06a4e rtc: mc146818-lib: Fix the AltCentury for AMD platforms
87fd0dd43e nvme-multipath: fix hang when disk goes live over reconnect
3663d6023a tools/virtio: compile with -pthread
5a4cbcb3df vhost_vdpa: don't setup irq offloading when irq_num < 0
f0931ee125 s390/pci: improve zpci_dev reference counting
7d3f69cbde ALSA: hda/realtek: Enable headset mic on Lenovo P360
a59450656b crypto: x86/chacha20 - Avoid spurious jumps to other functions
39acee8aea crypto: stm32 - fix reference leak in stm32_crc_remove
703c80ff43 rtc: sun6i: Fix time overflow handling
bab037ebbe gfs2: Disable page faults during lockless buffered reads
e803f12ea2 nvme-pci: add quirks for Samsung X5 SSDs
5565fc538d Input: stmfts - fix reference leak in stmfts_input_open
d5e88c2d76 Input: add bounds checking to input_set_capability()
ea6a86886c um: Cleanup syscall_handler_t definition/cast, fix warning
c39b91fcd5 rtc: pcf2127: fix bug when reading alarm registers
2b4e5a2d7d rtc: fix use-after-free on device removal
67136fff5b igc: Update I226_K device ID
d0229838b6 igc: Remove phy->type checking
170110adbe igc: Remove _I_PHY_ID checking
55c820c1b2 Revert "drm/i915/opregion: check port number bounds for SWSCI display power state"
911b362678 floppy: use a statically allocated error counter
3c48558be5 io_uring: always grab file table for deferred statx
a1a2c957da usb: gadget: fix race when gadget driver register via ioctl
7686a5c2a8 Linux 5.10.117
937c6b0e3e SUNRPC: Fix fall-through warnings for Clang
29f077d070 io_uring: always use original task when preparing req identity
1444e0568b usb: gadget: uvc: allow for application to cleanly shutdown
42505e3622 usb: gadget: uvc: rename function to be more consistent
002e7223dc ping: fix address binding wrt vrf
d9a1e82bf6 arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
49750c5e9a net: phy: Fix race condition on link status change
e68b60ae29 SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
dbe6974a39 SUNRPC: Don't call connect() more than once on a TCP socket
47541ed4d4 SUNRPC: Prevent immediate close+reconnect
2ab569edd8 SUNRPC: Clean up scheduling of autoclose
85844ea29f drm/vmwgfx: Initialize drm_mode_fb_cmd2
7e849dbe60 cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
6aa239d82e net: atlantic: always deep reset on pm op, fixing up my null deref regression
6158df4fa5 i40e: i40e_main: fix a missing check on list iterator
819796024c drm/nouveau/tegra: Stop using iommu_present()
e06605af8b ceph: fix setting of xattrs on async created inodes
86db01f373 serial: 8250_mtk: Fix register address for XON/XOFF character
84ad84e495 serial: 8250_mtk: Fix UART_EFR register address
f8d8440f13 slimbus: qcom: Fix IRQ check in qcom_slim_probe
d7b7c5532a USB: serial: option: add Fibocom MA510 modem
2ba0034e36 USB: serial: option: add Fibocom L610 modem
319b312edb USB: serial: qcserial: add support for Sierra Wireless EM7590
994395f356 USB: serial: pl2303: add device id for HP LM930 Display
8276a3dbe2 usb: typec: tcpci_mt6360: Update for BMC PHY setting
54979aa49e usb: typec: tcpci: Don't skip cleanup in .remove() on error
7335a6b11d usb: cdc-wdm: fix reading stuck on device close
6d47eceaf3 tty: n_gsm: fix mux activation issues in gsm_config()
69139a45b8 tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
5a73581116 firmware_loader: use kernel credentials when reading firmware
d254309aab tcp: resalt the secret every 10 seconds
3abbfac1ab net: sfp: Add tx-fault workaround for Huawei MA5671A SFP ONT
48f1dd67a8 net: emaclite: Don't advertise 1000BASE-T and do auto negotiation
5c09dbdfd4 s390: disable -Warray-bounds
03ebc6fd5c ASoC: ops: Validate input values in snd_soc_put_volsw_range()
31606a73ba ASoC: max98090: Generate notifications on changes for custom control
ce154bd3bc ASoC: max98090: Reject invalid values in custom control put()
5ecaaaeb2c hwmon: (f71882fg) Fix negative temperature
88091c0275 gfs2: Fix filesystem block deallocation for short writes
fccf4bf3f2 tls: Fix context leak on tls_device_down
161c4edeca net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
d5e1b41bf7 net/smc: non blocking recvmsg() return -EAGAIN when no data and signal_pending
e417a8fcea net: dsa: bcm_sf2: Fix Wake-on-LAN with mac_link_down()
9012209f43 net: bcmgenet: Check for Wake-on-LAN interrupt probe deferral
abe35bf3be net/sched: act_pedit: really ensure the skb is writable
b816ed53f3 s390/lcs: fix variable dereferenced before check
4d3c6d7418 s390/ctcm: fix potential memory leak
5497f87edc s390/ctcm: fix variable dereferenced before check
cc71c9f17c selftests: vm: Makefile: rename TARGETS to VMTARGETS
ce12e5ff8d hwmon: (ltq-cputemp) restrict it to SOC_XWAY
ceb3db723f dim: initialize all struct fields
8b1b8fc819 ionic: fix missing pci_release_regions() on error in ionic_probe()
2cb8689f45 nfs: fix broken handling of the softreval mount option
49c10784b9 mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
79432d2237 net: sfc: fix memory leak due to ptp channel
bdb8d4aed1 sfc: Use swap() instead of open coding it
33c93f6e55 netlink: do not reset transport header in netlink_recvmsg()
9e40f2c513 drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
54f26fc07e ipv4: drop dst in multicast routing path
c07a84492f net: mscc: ocelot: avoid corrupting hardware counters when moving VCAP filters
abb237c544 net: mscc: ocelot: restrict tc-trap actions to VCAP IS2 lookup 0
f9674c52a1 net: mscc: ocelot: fix VCAP IS2 filters matching on both lookups
c1184d2888 net: mscc: ocelot: fix last VCAP IS1/IS2 filter persisting in hardware when deleted
e2cdde89d2 net: Fix features skip in for_each_netdev_feature()
c420d66047 mac80211: Reset MBSSID parameters upon connection
9cbf2a7d5d hwmon: (tmp401) Add OF device ID table
85eba08be2 iwlwifi: iwl-dbg: Use del_timer_sync() before freeing
a6a73781b4 batman-adv: Don't skb_split skbuffs with frag_list
85cac60500 ANDROID: fix up abi issue with struct snd_pcm_runtime, again
7d94299466 ANDROID: GKI: fix crc issue with commit ce1927b8cf ("block: don't merge across cgroup boundaries if blkcg is enabled")
07a4d3649a Linux 5.10.116
d1ac096f88 mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and __mcopy_atomic()
c6cbf5431a mm: hugetlb: fix missing cache flush in copy_huge_page_from_user()
308ff6a6e7 mm: fix missing cache flush for all tail pages of compound page
185fa5984d Bluetooth: Fix the creation of hdev->name
9ff4a6b806 arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
dfb55dcf9d nfp: bpf: silence bitwise vs. logical OR warning
f89f76f4b0 drm/amd/display/dc/gpio/gpio_service: Pass around correct dce_{version, environment} types
efd1429fa9 block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
a71658c7db regulator: consumer: Add missing stubs to regulator/consumer.h
7648f42d1a MIPS: Use address-of operator on section symbols
baaf34359d Revert "coredump: Snapshot the vmas in do_coredump"
1ad18c9235 Revert "coredump: Remove the WARN_ON in dump_vma_snapshot"
e64fed6577 Revert "coredump: Use the vma snapshot in fill_files_note"
5a0cd73f55 Revert "pstore: Don't use semaphores in always-atomic-context code"
95002a201f Revert "PCI: Reduce warnings on possible RW1C corruption"
15136f3380 ANDROID: remove CONFIG_HW_RANDOM_CAVIUM from arm64 gki_defconfig
74d428eb6b UPSTREAM: Linux 5.10.110
a352ccd683 ANDROID: fix up abi issue with struct snd_pcm_runtime
c31dae74ed UPSTREAM: Linux 5.10.109
359ee5274b BACKPORT: vsock: each transport cycles only on its own sockets
4a29d82a6d Revert "vsock: each transport cycles only on its own sockets"
279ff602d6 UPSTREAM: Linux 5.10.108
1f7d764785 ANDROID: reset android13-5.10-lts branch back to android13-5.10 state
e61686bb77 Linux 5.10.115
8528806abe mmc: rtsx: add 74 Clocks in power on flow
e1ab92302b PCI: aardvark: Fix reading MSI interrupt number
49143c9ed2 PCI: aardvark: Clear all MSIs at setup
7676a5b99f dm: interlock pending dm_io and dm_wait_for_bios_completion
a439819f47 block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
a22d66eb51 rcu: Apply callbacks processing time limit only on softirq
40fb3812d9 rcu: Fix callbacks processing time limit retaining cond_resched()
43dbc3edad KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised
9c8474fa34 KVM: x86/mmu: avoid NULL-pointer dereference on page freeing bugs
a474ee5ece KVM: x86: Do not change ICR on write to APIC_SELF_IPI
64e3e16dbc x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
5f884e0c2e net/mlx5: Fix slab-out-of-bounds while reading resource dump menu
599fc32e74 kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
0a960a3672 net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
4fd45ef704 btrfs: always log symlinks in full mode
687167eef9 smsc911x: allow using IRQ0
b280877eab selftests: ocelot: tc_flower_chains: specify conform-exceed action for policer
a9fd5d6cd5 bnxt_en: Fix unnecessary dropping of RX packets
72e4fc1a4e bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag
9ac9f07f0f selftests: mirror_gre_bridge_1q: Avoid changing PVID while interface is operational
475237e807 hinic: fix bug of wq out of bound access
1b9f1f455d net: emaclite: Add error handling for of_address_to_resource()
8459485db7 net: cpsw: add missing of_node_put() in cpsw_probe_dt()
4eee980950 net: stmmac: dwmac-sun8i: add missing of_node_put() in sun8i_dwmac_register_mdio_mux()
2347e9c922 net: dsa: mt7530: add missing of_node_put() in mt7530_setup()
1092656cc4 net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init()
408fb2680e NFSv4: Don't invalidate inode attributes on delegation return
c1b480e6be RDMA/siw: Fix a condition race issue in MPA request processing
5bf2a45e33 selftests/seccomp: Don't call read() on TTY from background pgrp
3ea0b44c01 net/mlx5: Avoid double clear or set of sync reset requested
2455331591 net/mlx5e: Fix the calling of update_buffer_lossy() API
e07c13fbdd net/mlx5e: CT: Fix queued up restore put() executing after relevant ft release
d8338a7a09 net/mlx5e: Don't match double-vlan packets if cvlan is not set
c7f87ad115 net/mlx5e: Fix trust state reset in reload
87f0d9a518 ASoC: dmaengine: Restore NULL prepare_slave_config() callback
ad87f8498e hwmon: (adt7470) Fix warning on module removal
997b8605e8 gpio: pca953x: fix irq_stat not updated when irq is disabled (irq_mask not set)
879b075a9a NFC: netlink: fix sleep in atomic bug when firmware download timeout
1961c5a688 nfc: nfcmrvl: main: reorder destructive operations in nfcmrvl_nci_unregister_dev to avoid bugs
8a9e7c64f4 nfc: replace improper check device_is_registered() in netlink related functions
11adc9ab3e can: grcan: only use the NAPI poll budget for RX
4df5e498e0 can: grcan: grcan_probe(): fix broken system id check for errata workaround needs
dd973c0185 can: grcan: use ofdev->dev when allocating DMA memory
45bdcb5ca4 can: isotp: remove re-binding of bound socket
13959b9117 can: grcan: grcan_close(): fix deadlock
6c7c0e131e s390/dasd: Fix read inconsistency for ESE DASD devices
6e02c0413a s390/dasd: Fix read for ESE with blksize < 4k
ecc8396827 s390/dasd: prevent double format of tracks for ESE devices
30e008ab3f s390/dasd: fix data corruption for ESE devices
d53d47fadd ASoC: meson: Fix event generation for AUI CODEC mux
93a1f0755e ASoC: meson: Fix event generation for G12A tohdmi mux
e8b08e2f17 ASoC: meson: Fix event generation for AUI ACODEC mux
954d55170f ASoC: wm8958: Fix change notifications for DSP controls
f45359824a ASoC: da7219: Fix change notifications for tone generator frequency
e6e61aab49 genirq: Synchronize interrupt thread startup
dcf1150f2e net: stmmac: disable Split Header (SPH) for Intel platforms
68f35987d4 firewire: core: extend card->lock in fw_core_handle_bus_reset
629b4003a7 firewire: remove check of list iterator against head past the loop body
e757ff4bbc firewire: fix potential uaf in outbound_phy_packet_callback()
70d25d4fba Revert "SUNRPC: attempt AF_LOCAL connect on setup"
466721d767 drm/amd/display: Avoid reading audio pattern past AUDIO_CHANNELS_COUNT
2e6f3d665a iommu/vt-d: Calculate mask for non-aligned flushes
fbb7c61e76 KVM: x86/svm: Account for family 17h event renumberings in amd_pmc_perf_hw_id
b085afe226 gpiolib: of: fix bounds check for 'gpio-reserved-ranges'
2b7cb072d0 mmc: core: Set HS clock speed before sending HS CMD13
66651d7199 mmc: sdhci-msm: Reset GCC_SDCC_BCR register for SDHC
2906c73632 ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
03ab174805 ALSA: hda/realtek: Add quirk for Yoga Duet 7 13ITL6 speakers
a196f277c5 parisc: Merge model and model name into one line in /proc/cpuinfo
326f02f172 MIPS: Fix CP0 counter erratum detection for R4k CPUs
f40e35e79c Linux 5.10.114
2d74f61787 perf symbol: Remove arch__symbols__fixup_end()
bf98302e68 tty: n_gsm: fix software flow control handling
95b267271a tty: n_gsm: fix incorrect UA handling
70b045d9ae tty: n_gsm: fix reset fifo race condition
320a24c4ef tty: n_gsm: fix wrong command frame length field encoding
935f314b6f tty: n_gsm: fix wrong command retry handling
17b86db43c tty: n_gsm: fix missing explicit ldisc flush
a2baa907c2 tty: n_gsm: fix wrong DLCI release order
705925e693 tty: n_gsm: fix insufficient txframe size
842a9bbbef netfilter: nft_socket: only do sk lookups when indev is available
7346e54dbf tty: n_gsm: fix malformed counter for out of frame data
d19613895e tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
26f127f6d9 tty: n_gsm: fix mux cleanup after unregister tty device
f26c271492 tty: n_gsm: fix decoupled mux resource
47132f9f7f tty: n_gsm: fix restart handling via CLD command
b3c88d46db perf symbol: Update symbols__fixup_end()
3d0a3168a3 perf symbol: Pass is_kallsyms to symbols__fixup_end()
2ab14625b8 x86/cpu: Load microcode during restore_processor_state()
795afbe8b4 thermal: int340x: Fix attr.show callback prototype
11d16498d7 net: ethernet: stmmac: fix write to sgmii_adapter_base
236dd62230 drm/i915: Fix SEL_FETCH_PLANE_*(PIPE_B+) register addresses
78d4dccf16 kasan: prevent cpu_quarantine corruption when CPU offline and cache shrink occur at same time
5fef6df273 zonefs: Clear inode information flags on inode creation
92ed64a920 zonefs: Fix management of open zones
42e8ec3b4b powerpc/perf: Fix 32bit compile
ac3d077043 drivers: net: hippi: Fix deadlock in rr_close()
5399e7b80c cifs: destage any unwritten data to the server before calling copychunk_write
80fc45377f x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
585ef03c9e ext4: fix bug_on in start_this_handle during umount filesystem
07da0be588 ASoC: wm8731: Disable the regulator when probing fails
1b1747ad7e ASoC: Intel: soc-acpi: correct device endpoints for max98373
aa138efd2b tcp: fix F-RTO may not work correctly when receiving DSACK
9d56e369bd Revert "ibmvnic: Add ethtool private flag for driver-defined queue limits"
96904c8289 ibmvnic: fix miscellaneous checks
17f71272ef ixgbe: ensure IPsec VF<->PF compatibility
c33d717e06 net: fec: add missing of_node_put() in fec_enet_init_stop_mode()
9591967ac4 bnx2x: fix napi API usage sequence
1781beb879 tls: Skip tls_append_frag on zero copy size
77b922683e drm/amd/display: Fix memory leak in dcn21_clock_source_create
18068e0527 drm/amdkfd: Fix GWS queue count
c0396f5e5b net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
1204386e26 net: phy: marvell10g: fix return value on error
e974c730f0 net: bcmgenet: hide status block before TX timestamping
ee71b47da5 clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource()
8dacbef4fe bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
9f29f6f8da tcp: make sure treq->af_specific is initialized
8a9d6ca360 tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
720b6ced85 ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
41661b4c1a ip6_gre: Make o_seqno start from 0 in native mode
7b187fbd7e ip_gre: Make o_seqno start from 0 in native mode
83d128daff net/smc: sync err code when tcp connection was refused
9eb25e00f5 net: hns3: add return value for mailbox handling in PF
929c30c02d net: hns3: add validity check for message data length
e3ec78d82d net: hns3: modify the return code of hclge_get_ring_chain_from_mbx
06a40e7105 cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
fb172e93f8 pinctrl: pistachio: fix use of irq_of_parse_and_map()
8f042884af arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
73c35379db ARM: dts: imx6ull-colibri: fix vqmmc regulator
61a89d0a5b sctp: check asoc strreset_chunk in sctp_generate_reconf_event
41d6ac687d wireguard: device: check for metadata_dst with skb_valid_dst()
3c464db03c tcp: ensure to use the most recently sent skb when filling the rate sample
ce4c3f7087 pinctrl: stm32: Keep pinctrl block clock enabled when LEVEL IRQ requested
0c60271df0 tcp: md5: incorrect tcp_header_len for incoming connections
f4dad5a48d pinctrl: rockchip: fix RK3308 pinmux bits
9ef33d23f8 bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt hook
6ac03e6ddd netfilter: nft_set_rbtree: overlap detection with element re-addition after deletion
72ae15d5ce net: dsa: Add missing of_node_put() in dsa_port_link_register_of
14cc2044c1 memory: renesas-rpc-if: Fix HF/OSPI data transfer in Manual Mode
690c1bc4bf pinctrl: stm32: Do not call stm32_gpio_get() for edge triggered IRQs in EOI
6f2bf9c5dd mtd: fix 'part' field data corruption in mtd_info
4da421035b mtd: rawnand: Fix return value check of wait_for_completion_timeout
94ca69b702 pinctrl: mediatek: moore: Fix build error
123b7e0388 ipvs: correctly print the memory size of ip_vs_conn_tab
f4446f2136 ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
4a526cc29c ARM: dts: am3517-evm: Fix misc pinmuxing
b622bca852 ARM: dts: Fix mmc order for omap3-gta04
9419d27fe1 phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
9e00a6e1fd phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
eb659608e6 ARM: dts: at91: sama5d4_xplained: fix pinctrl phandle name
bb524f5a95 ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
4691ce8f28 phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
76d1591a38 bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific
1b9855bf31 ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
93cc8f184e phy: samsung: exynos5250-sata: fix missing device put in probe error paths
3ca7491570 phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
8f7644ac24 ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
23b0711fcd USB: Fix xhci event ring dequeue pointer ERDP update issue
712302aed1 mtd: rawnand: fix ecc parameters for mt7622
207c7af341 iio:imu:bmi160: disable regulator in error path
70d2df257e arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
2d320609be arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
c4fb41bdf4 video: fbdev: udlfb: properly check endpoint type
0967830e72 iocost: don't reset the inuse weight of under-weighted debtors
ad604cbd1d x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
8fcce58c59 riscv: patch_text: Fixup last cpu should be master
51477d3b38 hex2bin: fix access beyond string end
616d354fb9 hex2bin: make the function hex_to_bin constant-time
1633cb2d4a pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config
bdc3ad9251 arch_topology: Do not set llc_sibling if llc_id is invalid
aaee3f6617 serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
662f945a20 serial: 8250: Also set sticky MCR bits in console restoration
8be962c89d serial: imx: fix overrun interrupts in DMA mode
d22d92230f usb: phy: generic: Get the vbus supply
b820764c64 usb: cdns3: Fix issue for clear halt endpoint
bd7f84708e usb: dwc3: gadget: Return proper request status
a633b8c341 usb: dwc3: core: Only handle soft-reset in DCTL
5fa59bb867 usb: dwc3: core: Fix tx/rx threshold settings
140801d3fb usb: dwc3: Try usb-role-switch first in dwc3_drd_init
4dd5feb279 usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
6c3da0e19c usb: gadget: uvc: Fix crash when encoding data for usb request
fb1fe1a455 usb: typec: ucsi: Fix role swapping
06826eb063 usb: typec: ucsi: Fix reuse of completion structure
7b510d4bb4 usb: misc: fix improper handling of refcount in uss720_probe()
bb8ecca2dd iio: imu: inv_icm42600: Fix I2C init possible nack
ca2b54b6ad iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
1060604fc7 iio: dac: ad5446: Fix read_raw not returning set value
6ff33c01be iio: dac: ad5592r: Fix the missing return value.
06ada9487f xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
e1be000166 xhci: stop polling roothubs after shutdown
2eb6c86891 xhci: Enable runtime PM on second Alderlake controller
63eda431b2 USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
e9971dac69 USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
34ff5455ee USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
729a81ae10 USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
008ba29f33 USB: quirks: add STRING quirk for VCOM device
ac6ad0ef83 USB: quirks: add a Realtek card reader
8ba02cebb7 usb: mtu3: fix USB 3.0 dual-role-switch from device to host
549209caab lightnvm: disable the subsystem
54c028cfc4 floppy: disable FDRAWCMD by default
54af9dd2b9 Linux 5.10.113
7992fdb045 Revert "net: micrel: fix KS8851_MLL Kconfig"
8bedbc8f7f block/compat_ioctl: fix range check in BLKGETSIZE
fea24b07ed staging: ion: Prevent incorrect reference counting behavour
dccee748af spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and controller
572761645b jbd2: fix a potential race while discarding reserved buffers after an abort
50aac44273 can: isotp: stop timeout monitoring when no first frame was sent
e1e96e3727 ext4: force overhead calculation if the s_overhead_cluster makes no sense
4789149b9e ext4: fix overhead calculation to account for the reserved gdt blocks
0c54b09376 ext4, doc: fix incorrect h_reserved size
22c450d39f ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
75ac724684 ext4: fix use-after-free in ext4_search_dir
a46b3d8498 ext4: fix symlink file size not match to file content
f6038d43b2 ext4: fix fallocate to use file_modified to update permissions consistently
19590bbc69 perf report: Set PERF_SAMPLE_DATA_SRC bit for Arm SPE event
e012f9d1af powerpc/perf: Fix power9 event alternatives
0a2cef65b3 drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
f8f8b3124b KVM: PPC: Fix TCE handling for VFIO
405d984274 drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
231381f521 drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
51d9cbbb0f perf/core: Fix perf_mmap fail when CONFIG_PERF_USE_VMALLOC enabled
88fcfd6ee6 sched/pelt: Fix attach_entity_load_avg() corner case
c55327bc37 arm_pmu: Validate single/group leader events
5580b974a8 ARC: entry: fix syscall_trace_exit argument
7082650eb8 e1000e: Fix possible overflow in LTR decoding
43a2a3734a ASoC: soc-dapm: fix two incorrect uses of list iterator
54e6180c8c gpio: Request interrupts after IRQ is initialized
0837ff17d0 openvswitch: fix OOB access in reserve_sfa_size()
19f6dcb1f0 xtensa: fix a7 clobbering in coprocessor context load/store
f399ab11dd xtensa: patch_text: Fixup last cpu should be master
ba2716da23 net: atlantic: invert deep par in pm functions, preventing null derefs
358a3846f6 dma: at_xdmac: fix a missing check on list iterator
cf23a960c5 ata: pata_marvell: Check the 'bmdma_addr' beforing reading
9ca66d7914 mm/mmu_notifier.c: fix race in mmu_interval_notifier_remove()
ed5d4efb4d oom_kill.c: futex: delay the OOM reaper to allow time for proper futex cleanup
6b932920b9 mm, hugetlb: allow for "high" userspace addresses
50cbc583fa EDAC/synopsys: Read the error count from the correct register
7ec6e06ee4 nvme-pci: disable namespace identifiers for Qemu controllers
316bd86c22 nvme: add a quirk to disable namespace identifiers
76101c8e0c stat: fix inconsistency between struct stat and struct compat_stat
bf28bba304 scsi: qedi: Fix failed disconnect handling
a284cca3d8 net: macb: Restart tx only if queue pointer is lagging
9581e07b54 drm/msm/mdp5: check the return of kzalloc()
8d71edabb0 dpaa_eth: Fix missing of_node_put in dpaa_get_ts_info()
b3afe5a7fd brcmfmac: sdio: Fix undefined behavior due to shift overflowing the constant
202748f441 mt76: Fix undefined behavior due to shift overflowing the constant
0de9c104d0 net: atlantic: Avoid out-of-bounds indexing
5bef9fc38f cifs: Check the IOCB_DIRECT flag, not O_DIRECT
e129c55153 vxlan: fix error return code in vxlan_fdb_append
8e7ea11364 arm64: dts: imx: Fix imx8*-var-som touchscreen property sizes
cd227ac03f ALSA: usb-audio: Fix undefined behavior due to shift overflowing the constant
490815f0b5 platform/x86: samsung-laptop: Fix an unsigned comparison which can never be negative
cb17b56a9b reset: tegra-bpmp: Restore Handle errors in BPMP response
d513ea9b7e ARM: vexpress/spc: Avoid negative array index when !SMP
052e4a661f arm64: mm: fix p?d_leaf()
18ff7a2efa arm64/mm: Remove [PUD|PMD]_TABLE_BIT from [pud|pmd]_bad()
3bf8ca3501 selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets
520aab8b72 dmaengine: idxd: add RO check for wq max_transfer_size write
9a3c026dc3 dmaengine: idxd: add RO check for wq max_batch_size write
f593f49fcd net: stmmac: Use readl_poll_timeout_atomic() in atomic state
3d55b19574 netlink: reset network and mac headers in netlink_dump()
49516e6ed9 ipv6: make ip6_rt_gc_expire an atomic_t
078d839f11 l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu
0ac8f83d8f net/sched: cls_u32: fix possible leak in u32_init_knode()
93366275be ip6_gre: Fix skb_under_panic in __gre6_xmit()
200f96ebb3 ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit()
8fb76adb89 net/packet: fix packet_sock xmit return value checking
a499cb5f3e net/smc: Fix sock leak when release after smc_shutdown()
60592f16a4 rxrpc: Restore removed timer deletion
fc7116a79a igc: Fix BUG: scheduling while atomic
46b0e4f998 igc: Fix infinite loop in release_swfw_sync
c075c3ea03 esp: limit skb_page_frag_refill use to a single page
3f7914dbea spi: spi-mtk-nor: initialize spi controller after resume
f714abf28f dmaengine: mediatek:Fix PM usage reference leak of mtk_uart_apdma_alloc_chan_resources
9bc949a181 dmaengine: imx-sdma: Fix error checking in sdma_event_remap
12aa8021c7 ASoC: codecs: wcd934x: do not switch off SIDO Buck when codec is in use
b6f474cd30 ASoC: msm8916-wcd-digital: Check failure for devm_snd_soc_register_component
608fc58858 ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek
d29c78d3f9 dm: fix mempool NULL pointer race when completing IO
cf9b195464 ALSA: hda/realtek: Add quirk for Clevo NP70PNP
8ce3820fc9 ALSA: usb-audio: Clear MIDI port active flag after draining
43ce33a68e net/sched: cls_u32: fix netns refcount changes in u32_change()
04dd45d977 gfs2: assign rgrp glock before compute_bitstructs
378061c9b8 perf tools: Fix segfault accessing sample_id xyarray
5e8446e382 tracing: Dump stacktrace trigger to the corresponding instance
69848f9488 mm: page_alloc: fix building error on -Werror=array-compare
08ad7a770e etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead
95c07d1955 ANDROID: Suppress build.sh deprecation warnings.
d7beefb20a ANDROID: Update the ABI symbol list
1052f9bce6 Linux 5.10.112
5c62d3bf14 ax25: Fix UAF bugs in ax25 timers
f934fa478d ax25: Fix NULL pointer dereferences in ax25 timers
145ea8d213 ax25: fix NPD bug in ax25_disconnect
a4942c6fea ax25: fix UAF bug in ax25_send_control()
b20a5ab0f5 ax25: Fix refcount leaks caused by ax25_cb_del()
57cc15f5fd ax25: fix UAF bugs of net_device caused by rebinding operation
5ddae8d064 ax25: fix reference count leaks of ax25_dev
5ea00fc606 ax25: add refcount in ax25_dev to avoid UAF bugs
361288633b scsi: iscsi: Fix unbound endpoint error handling
129db30599 scsi: iscsi: Fix endpoint reuse regression
26f827e095 dma-direct: avoid redundant memory sync for swiotlb
9a5a4d23e2 timers: Fix warning condition in __run_timers()
84837f43e5 i2c: pasemi: Wait for write xfers to finish
89496d80bf smp: Fix offline cpu check in flush_smp_call_function_queue()
cd02b2687d dm integrity: fix memory corruption when tag_size is less than digest size
0a312ec66a ARM: davinci: da850-evm: Avoid NULL pointer dereference
0806f19305 tick/nohz: Use WARN_ON_ONCE() to prevent console saturation
0275c75955 genirq/affinity: Consider that CPUs on nodes can be unbalanced
1fcfe37d17 drm/amdgpu: Enable gfxoff quirk on MacBook Pro
68ae52efa1 drm/amd/display: don't ignore alpha property on pre-multiplied mode
a263712ba8 ipv6: fix panic when forwarding a pkt with no in6 dev
659214603b nl80211: correctly check NL80211_ATTR_REG_ALPHA2 size
912797e54c ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
48d070ca5e ALSA: hda/realtek: add quirk for Lenovo Thinkpad X12 speakers
163e162471 ALSA: hda/realtek: Add quirk for Clevo PD50PNT
5e4dd17998 btrfs: mark resumed async balance as writing
1d2eda18f6 btrfs: fix root ref counts in error handling in btrfs_get_root_ref
9b7ec35253 ath9k: Fix usage of driver-private space in tx_info
0f65cedae5 ath9k: Properly clear TX status area before reporting to mac80211
cc21ae9326 gcc-plugins: latent_entropy: use /dev/urandom
c089ffc846 memory: renesas-rpc-if: fix platform-device leak in error path
342454231e KVM: x86/mmu: Resolve nx_huge_pages when kvm.ko is loaded
06c348fde5 mm: kmemleak: take a full lowmem check in kmemleak_*_phys()
20ed94f818 mm: fix unexpected zeroed page mapping with zram swap
192e507ef8 mm, page_alloc: fix build_zonerefs_node()
000b3921b4 perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
ca24c5e8f0 drivers: net: slip: fix NPD bug in sl_tx_timeout()
e8cf1e4d95 scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
5b7ce74b6b scsi: mvsas: Add PCI ID of RocketRaid 2640
4b44cd5840 drm/amd/display: Fix allocate_mst_payload assert on resume
34ea097fb6 drm/amd/display: Revert FEC check in validation
fa5ee7c423 myri10ge: fix an incorrect free for skb in myri10ge_sw_tso
d90df6da50 net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
9c12fcf1d8 net: axienet: setup mdio unconditionally
b643807a73 tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
98973d2bdd arm64: alternatives: mark patch_alternative() as `noinstr`
2462faffbf regulator: wm8994: Add an off-on delay for WM8994 variant
aa8cdedaf7 gpu: ipu-v3: Fix dev_dbg frequency output
150fe861c5 ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
1ff5359afa net: micrel: fix KS8851_MLL Kconfig
d3478709ed scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
b9a110fa75 scsi: lpfc: Fix queue failures when recovering from PCI parity error
aec36b98a1 scsi: target: tcmu: Fix possible page UAF
4366679805 Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer
1d7a5aae88 drm/amdkfd: Check for potential null return of kmalloc_array()
e5afacc826 drm/amdgpu/vcn: improve vcn dpg stop procedure
d2e0931e6d drm/amdkfd: Fix Incorrect VMIDs passed to HWS
7fc0610ad8 drm/amd/display: Update VTEM Infopacket definition
6906e05cf3 drm/amd/display: FEC check in timing validation
756c61c168 drm/amd/display: fix audio format not updated after edid updated
76e086ce7b btrfs: do not warn for free space inode in cow_file_range
217190dc66 btrfs: fix fallocate to use file_modified to update permissions consistently
9b5d1b3413 drm/amd: Add USBC connector ID
6f9c06501d net: bcmgenet: Revert "Use stronger register read/writes to assure ordering"
504c15f07f dm mpath: only use ktime_get_ns() in historical selector
4e166a4118 cifs: potential buffer overflow in handling symlinks
67677050ce nfc: nci: add flush_workqueue to prevent uaf
bfba9722cf perf tools: Fix misleading add event PMU debug message
280f721edc testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set
eb8873b324 sctp: Initialize daddr on peeled off socket
45226fac4d scsi: iscsi: Fix conn cleanup and stop race during iscsid restart
73805795c9 scsi: iscsi: Fix offload conn cleanup when iscsid restarts
699bd835c3 scsi: iscsi: Move iscsi_ep_disconnect()
46f37a34a5 scsi: iscsi: Fix in-kernel conn failure handling
8125738967 scsi: iscsi: Rel ref after iscsi_lookup_endpoint()
22608545b8 scsi: iscsi: Use system_unbound_wq for destroy_work
4029a1e992 scsi: iscsi: Force immediate failure during shutdown
17d14456f6 scsi: iscsi: Stop queueing during ep_disconnect
da9cf24aa7 scsi: pm80xx: Enable upper inbound, outbound queues
e08d269712 scsi: pm80xx: Mask and unmask upper interrupt vectors 32-63
35b91e49bc net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
98a7f6c4ad drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init()
5f78ad9383 drm/msm: Fix range size vs end confusion
5513f9a0b0 cfg80211: hold bss_lock while updating nontrans_list
a44938950e net/sched: taprio: Check if socket flags are valid
08d5e3e954 net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link
2ad9d890d8 net: dsa: felix: suppress -EPROBE_DEFER errors
f2cc341fcc net/sched: fix initialization order when updating chain 0 head
7a7cf84148 mlxsw: i2c: Fix initialization error flow
43e58e119a net: mdio: Alphabetically sort header inclusion
9709c8b5cd gpiolib: acpi: use correct format characters
d67c900f19 veth: Ensure eth header is in skb's linear part
845f44ce3d net/sched: flower: fix parsing of ethertype following VLAN header
85ee17ca21 SUNRPC: Fix the svc_deferred_event trace class
af12dd7123 media: rockchip/rga: do proper error checking in probe
5637129712 firmware: arm_scmi: Fix sorting of retrieved clock rates
16c628b0c6 memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
cb66641f81 drm/msm: Add missing put_task_struct() in debugfs path
921fdc45a0 btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()
5d131318bb ACPI: processor idle: Check for architectural support for LPI
503934df31 cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
cfa98ffc42 hamradio: remove needs_free_netdev to avoid UAF
80a4df1464 hamradio: defer 6pack kfree after unregister_netdev
f0c31f192f drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu
232d82176f ANDROID: Move BRANCH from build.config.common to .constants.
6c8e5cb264 Linux 5.10.111
d36febbcd5 powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
5c672073bc mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
5973f7507a irqchip/gic, gic-v3: Prevent GSI to SGI translations
000e09462f Drivers: hv: vmbus: Replace smp_store_mb() with virt_store_mb()
e1f540b752 arm64: module: remove (NOLOAD) from linker script
919823bd67 selftests: cgroup: Test open-time cgroup namespace usage for migration checks
637eca44b8 selftests: cgroup: Test open-time credential usage for migration checks
9dd39d2c65 selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
e74da71e66 selftests/cgroup: Fix build on older distros
4665722d36 cgroup: Use open-time credentials for process migraton perm checks
f089471d1b mm: don't skip swap entry even if zap_details specified
58823a9b09 ubsan: remove CONFIG_UBSAN_OBJECT_SIZE
03b39bbbec dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
40e00885a6 tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
75c8558d41 tools build: Filter out options and warnings not supported by clang
6374faf49e perf python: Fix probing for some clang command line options
79abc219ba perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13
82e4395014 drm/amdkfd: Create file descriptor after client is added to smi_clients list
326b408e7e drm/nouveau/pmu: Add missing callbacks for Tegra devices
786ae8de3a drm/amdgpu/smu10: fix SoC/fclk units in auto mode
ff24114bb0 irqchip/gic-v3: Fix GICR_CTLR.RWP polling
451214b266 perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
fc629224aa ata: sata_dwc_460ex: Fix crash due to OOB write
7e88a50704 gpio: Restrict usage of GPIO chip irq members before initialization
5f54364ff6 RDMA/hfi1: Fix use-after-free bug for mm struct
8bb4168291 arm64: patch_text: Fixup last cpu should be master
a044bca8ef btrfs: prevent subvol with swapfile from being deleted
82ae73ac96 btrfs: fix qgroup reserve overflow the qgroup limit
fc4bdaed4d x86/speculation: Restore speculation related MSRs during S3 resume
8c9e26c890 x86/pm: Save the MSR validity status at context setup
2827328e64 io_uring: fix race between timeout flush and removal
f7e183b0a7 mm/mempolicy: fix mpol_new leak in shared_policy_replace
7d659cb176 mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
6adc01a7aa lz4: fix LZ4_decompress_safe_partial read out of bound
8b6f04b4c9 mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is complete
029b417073 mmc: mmci: stm32: correctly check all elements of sg list
41a519c05b Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
9de98470db arm64: Add part number for Arm Cortex-A78AE
4604b5738d perf session: Remap buf if there is no space for event
362ced3769 perf tools: Fix perf's libperf_print callback
65210fac63 perf: arm-spe: Fix perf report --mem-mode
bd905fed87 iommu/omap: Fix regression in probe for NULL pointer dereference
b3c00be2ff SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec()
9a45e08636 SUNRPC: Handle low memory situations in call_status()
132cbe2f18 SUNRPC: Handle ENOMEM in call_transmit_status()
aed30a2054 io_uring: don't touch scm_fp_list after queueing skb
594205b493 drbd: Fix five use after free bugs in get_initial_state
970a6bb729 bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
6c17f4ef3c spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
8928239e5e qede: confirm skb is allocated before using
b7893388bb net: phy: mscc-miim: reject clause 45 register accesses
08ff0e74fa rxrpc: fix a race in rxrpc_exit_net()
5ae05b5eb5 net: openvswitch: fix leak of nested actions
42ab401d22 net: openvswitch: don't send internal clone attribute to the userspace.
e54ea8fc51 ice: synchronize_rcu() when terminating rings
e3dd1202ab ipv6: Fix stats accounting in ip6_pkt_drop
ffce126c95 ice: Do not skip not enabled queues in ice_vc_dis_qs_msg
b003fc4913 ice: Set txq_teid to ICE_INVAL_TEID on ring creation
ebd1e3458d dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
43c2d7890e IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
3a57babfb6 RDMA/mlx5: Don't remove cache MRs when a delay is needed
d8992b393f sfc: Do not free an empty page_ring
0ac74169eb bnxt_en: reserve space inside receive page for skb_shared_info
f8b0ef0a58 drm/imx: Fix memory leak in imx_pd_connector_get_modes
25bc9fd4c8 drm/imx: imx-ldb: Check for null pointer after calling kmemdup
02ab4abe5b net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
63ea57478a net: ipv4: fix route with nexthop object delete warning
4be6ed0310 ice: Clear default forwarding VSI during VSI release
589154d0f1 net/tls: fix slab-out-of-bounds bug in decrypt_internal
c5f77b5953 scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
45b9932b4d NFSv4: fix open failure with O_ACCMODE flag
c688705a39 Revert "NFSv4: Handle the special Linux file open access mode"
cf580d2e38 Drivers: hv: vmbus: Fix potential crash on module unload
0c122eb3a1 drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
84e5dfc05f Revert "hv: utils: add PTP_1588_CLOCK to Kconfig to fix build"
3c3fbfa6dd mm: fix race between MADV_FREE reclaim and blkdev direct IO read
1753a49e26 parisc: Fix patch code locking and flushing
f7c3522030 parisc: Fix CPU affinity for Lasi, WAX and Dino chips
c74e2f6ecc NFS: Avoid writeback threads getting stuck in mempool_alloc()
34681aeddc NFS: nfsiod should not block forever in mempool_alloc()
7a506fabcf SUNRPC: Fix socket waits for write buffer space
b9c5ac0a15 jfs: prevent NULL deref in diFree
c69b442125 virtio_console: eliminate anonymous module_init & module_exit
3309b32217 serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()
9cb90f9ad5 x86/Kconfig: Do not allow CONFIG_X86_X32_ABI=y with llvm-objcopy
b3882e78aa NFS: swap-out must always use STABLE writes.
d4170a2821 NFS: swap IO handling is slightly different for O_DIRECT IO
4b6f122bdf SUNRPC: remove scheduling boost for "SWAPPER" tasks.
f4fc47e71e SUNRPC/xprt: async tasks mustn't block waiting for memory
f9244d31e0 SUNRPC/call_alloc: async tasks mustn't block waiting for memory
e2b2542f74 clk: Enforce that disjoints limits are invalid
1e9b5538cf clk: ti: Preserve node in ti_dt_clocks_register()
a2a0e04f64 xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
4a2544ce24 NFSv4: Protect the state recovery thread against direct reclaim
9b9feec97c NFSv4.2: fix reference count leaks in _nfs42_proc_copy_notify()
2e16895d06 w1: w1_therm: fixes w1_seq for ds28ea00 sensors
93498c6e77 staging: wfx: fix an error handling in wfx_init_common()
8f1d24f85f phy: amlogic: meson8b-usb2: Use dev_err_probe()
aa0b729678 staging: vchiq_core: handle NULL result of find_service_by_handle
be4ecca958 clk: si5341: fix reported clk_rate when output divider is 2
c9cf6baabf minix: fix bug when opening a file with O_DIRECT
8d9efd4434 init/main.c: return 1 from handled __setup() functions
f442978612 ceph: fix memory leak in ceph_readdir when note_last_dentry returns error
d745512d54 netlabel: fix out-of-bounds memory accesses
2cc803804e Bluetooth: Fix use after free in hci_send_acl
789621df19 MIPS: ingenic: correct unit node address
61e25021e6 xtensa: fix DTC warning unit_address_format
f6b9550f53 usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
a4dd3e9e5a net: sfp: add 2500base-X quirk for Lantech SFP module
278b652f0a net: limit altnames to 64k total
423e7107f6 net: account alternate interface name memory
74c4d50255 can: isotp: set default value for N_As to 50 micro seconds
1d7effe5ff scsi: libfc: Fix use after free in fc_exch_abts_resp()
02222bf4f0 powerpc/secvar: fix refcount leak in format_show()
fd416c3f5a MIPS: fix fortify panic when copying asm exception handlers
7c657c0694 PCI: endpoint: Fix misused goto label
79cfc0052f bnxt_en: Eliminate unintended link toggle during FW reset
9567d54e70 Bluetooth: use memset avoid memory leaks
f9b183f133 Bluetooth: Fix not checking for valid hdev on bt_dev_{info,warn,err,dbg}
647b35aaf4 tuntap: add sanity checks about msg_controllen in sendmsg
797b4ea951 macvtap: advertise link netns via netlink
142ae7d4f2 mips: ralink: fix a refcount leak in ill_acc_of_setup()
f2565cb40e net/smc: correct settings of RMB window update limit
224903cc60 scsi: hisi_sas: Free irq vectors in order for v3 HW
f49ffaa85d scsi: aha152x: Fix aha152x_setup() __setup handler return value
91ee8a14ef mt76: mt7615: Fix assigning negative values to unsigned variable
d83574666b scsi: pm8001: Fix memory leak in pm8001_chip_fw_flash_update_req()
a0bb65eadb scsi: pm8001: Fix tag leaks on error
2051044d79 scsi: pm8001: Fix task leak in pm8001_send_abort_all()
3bd9a28798 scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
ef969095c4 scsi: pm8001: Fix pm80xx_pci_mem_copy() interface
fe4b6d5a0d drm/amdkfd: make CRAT table missing message informational only
2f2f017ea8 dm: requeue IO if mapping table not yet available
71c8df33fd dm ioctl: prevent potential spectre v1 gadget
f655b724b4 ipv4: Invalidate neighbour for broadcast address upon address addition
bae03957e8 iwlwifi: mvm: Correctly set fragmented EBS
9538563d31 power: supply: axp288-charger: Set Vhold to 4.4V
c66cc04043 PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
b1b27b0e8d tcp: Don't acquire inet_listen_hashbucket::lock with disabled BH.
b02a1a6502 PCI: endpoint: Fix alignment fault error in copy tests
4820847e8b usb: ehci: add pci device support for Aspeed platforms
0b9cf0b599 iommu/arm-smmu-v3: fix event handling soft lockup
e07e420a00 PCI: aardvark: Fix support for MSI interrupts
6694b8643b drm/amdgpu: Fix recursive locking warning
ea21eaea7f powerpc: Set crashkernel offset to mid of RMA region
fb5ac62fbe ipv6: make mc_forwarding atomic
5baf92a2c4 libbpf: Fix build issue with llvm-readelf
26a1e4739e cfg80211: don't add non transmitted BSS to 6GHz scanned channels
9a56e2b271 mt76: dma: initialize skip_unmap in mt76_dma_rx_fill
b42b6d0ec3 power: supply: axp20x_battery: properly report current when discharging
de9505936c scsi: bfa: Replace snprintf() with sysfs_emit()
ed7db95920 scsi: mvsas: Replace snprintf() with sysfs_emit()
995f517888 bpf: Make dst_port field in struct bpf_sock 16-bit wide
339bd0b55e ath11k: mhi: use mhi_sync_power_up()
c6a815f5ab ath11k: fix kernel panic during unload/load ath11k modules
e4d2d72013 powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
02e2ee8619 ptp: replace snprintf with sysfs_emit
9ea17b9f1d usb: gadget: tegra-xudc: Fix control endpoint's definitions
07971b818e usb: gadget: tegra-xudc: Do not program SPARAM
927beb05aa drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
85313d9bc7 drm/amd/display: Add signal type check when verify stream backends same
9d7d83d039 ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
850c4351e8 drm: Add orientation quirk for GPD Win Max
a24479c5e9 KVM: x86/emulator: Emulate RDPID only if it is enabled in guest
66b0fa6b22 KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
2e52a29470 rtc: wm8350: Handle error for wm8350_register_irq
0777fe98a4 gfs2: gfs2_setattr_size error path fix
f349d7f9ee gfs2: Fix gfs2_release for non-writers regression
3f53715fd5 gfs2: Check for active reservation in gfs2_release
2dc49f58a2 ubifs: Rectify space amount budget for mkdir/tmpfile operations
65eadb5fc4 Merge 5.10.110 into android13-5.10-lts
35ce455788 ANDROID: Update the ABI symbol list
3238bffaf9 Linux 5.10.110
cf342cbfb3 PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup"
a25864c5bc arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory zones
558564db44 coredump: Use the vma snapshot in fill_files_note
b7933f145a coredump/elf: Pass coredump_params into fill_note_info
b043ae637a coredump: Remove the WARN_ON in dump_vma_snapshot
936c8be4d1 coredump: Snapshot the vmas in do_coredump
5318cdf4fd can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path
869016a293 can: m_can: m_can_tx_handler(): fix use after free of skb
e90518d10c KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
e36c45263a openvswitch: Fixed nd target mask field in the flow dump.
415edc68b6 docs: sysctl/kernel: add missing bit to panic_print
272c74323d um: Fix uml_mconsole stop/go
c0a6a54738 ARM: dts: spear13xx: Update SPI dma properties
ea3912af8b ARM: dts: spear1340: Update serial node properties
74f7971985 ASoC: topology: Allow TLV control to be either read or write
3ca47556d9 ubi: fastmap: Return error code if memory allocation fails in add_aeb()
7704f243cb dt-bindings: spi: mxic: The interrupt property is not mandatory
648ab1dcc1 dt-bindings: mtd: nand-controller: Fix a comment in the examples
71917e45e1 dt-bindings: mtd: nand-controller: Fix the reg property description
73f2f37417 bpf: Fix comment for helper bpf_current_task_under_cgroup()
90805175a2 bpf: Adjust BPF stack helper functions to accommodate skip > 0
86489492e8 mm/usercopy: return 1 from hardened_usercopy __setup() handler
81a04b9a32 mm/memcontrol: return 1 from cgroup.memory __setup() handler
f321621f5c ARM: 9187/1: JIVE: fix return value of __setup handler
d57feed3b1 mm/mmap: return 1 from stack_guard_gap __setup() handler
73f7cbb151 batman-adv: Check ptr for NULL before reducing its refcnt
f6da750bfa ASoC: soc-compress: Change the check for codec_dai
d3f786b7cf staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet
12e380bb6f proc: bootconfig: Add null pointer check
90ec1b1538 can: isotp: restore accidentally removed MSG_PEEK feature
16960ac92b platform/chrome: cros_ec_typec: Check for EC device
e5b681822c ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
785a53373c riscv module: remove (NOLOAD)
b27de7011c io_uring: fix memory leak of uid in files registration
20499ed3c0 ARM: iop32x: offset IRQ numbers by 1
432b057f8e ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
f28a857a61 ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
ecfc3f8a63 pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
503868a7c0 pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
d9afc5146b watchdog: rti-wdt: Add missing pm_runtime_disable() in probe function
402b53dc7c pinctrl: pinconf-generic: Print arguments for bias-pull-*
7169f60110 watch_queue: Free the page array when watch_queue is dismantled
e64dc94990 crypto: arm/aes-neonbs-cbc - Select generic cbc and aes
a16f5ae8ad mailbox: imx: fix wakeup failure from freeze mode
051360e513 rxrpc: Fix call timer start racing with call destruction
a94d98e06e net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
c73af4bc8a gfs2: Make sure FITRIM minlen is rounded up to fs block size
33c204266c rtc: check if __rtc_read_time was successful
381636f33f XArray: Update the LRU list in xas_split()
3b9fabe8f6 can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error value
ef0acc5141 can: mcba_usb: properly check endpoint type
0801a51d79 can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
1ac49c8fd4 XArray: Fix xas_create_range() when multi-order entry present
49f77ab50a wireguard: socket: ignore v6 endpoints when ipv6 is disabled
096f9d35ca wireguard: socket: free skb in send6 when ipv6 is disabled
cd032f218c wireguard: queueing: use CFI-safe ptr_ring cleanup function
8a0c70c238 ubifs: rename_whiteout: correct old_dir size computing
c34ae24a25 ubifs: Fix to add refcount once page is set private
07a209fade ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
d07a242169 ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
13b2a8151e ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
83e42a7842 ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
a90e2dbe66 ubifs: rename_whiteout: Fix double free for whiteout_ui->data
0c307349fe ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
0fb470eb48 KVM: SVM: fix panic on out-of-bounds guest IRQ
cd8c2d7c7c KVM: x86: fix sending PV IPI
eccfee4494 KVM: Prevent module exit until all VMs are freed
09c771c45c KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
aea4ffdcf3 platform: chrome: Split trace include file
d3a913ba1f scsi: qla2xxx: Use correct feature type field during RFF_ID processing
633450063c scsi: qla2xxx: Reduce false trigger to login
dd48727cab scsi: qla2xxx: Fix N2N inconsistent PLOGI
0910a791a6 scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
f296e888e9 scsi: qla2xxx: Fix hang due to session stuck
edea037716 scsi: qla2xxx: Fix incorrect reporting of task management failure
9dc104edd7 scsi: qla2xxx: Fix disk failure to rediscover
f97316dd39 scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
0e4a89efc2 scsi: qla2xxx: Check for firmware dump already collected
ef10a7530c scsi: qla2xxx: Add devids and conditionals for 28xx
bad77c9a47 scsi: qla2xxx: Fix device reconnect in loop topology
8b52e20c22 scsi: qla2xxx: Fix warning for missing error code
7c9745421d scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
7fef50214d scsi: qla2xxx: Fix scheduling while atomic
c45147018d scsi: qla2xxx: Fix stuck session in gpdb
031547f4c6 powerpc: Fix build errors with newer binutils
68fa67e939 powerpc/lib/sstep: Fix build errors with newer binutils
ad806b4022 powerpc/lib/sstep: Fix 'sthcx' instruction
f39a330939 powerpc/kasan: Fix early region not updated correctly
89e5a42687 KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMU
a3ad453008 ALSA: hda/realtek: Add alc256-samsung-headphone fixup
aa2ad067cd media: atomisp: fix bad usage at error handling logic
2412a5d294 mmc: host: Return an error when ->enable_sdio_irq() ops is missing
808990afd8 media: hdpvr: initialize dev->worker at hdpvr_register_videodev
32582f82df media: Revert "media: em28xx: add missing em28xx_close_extension"
b1c2857752 video: fbdev: sm712fb: Fix crash in smtcfb_write()
e7bb29df2a ARM: mmp: Fix failure to remove sram device
add823a9a5 ARM: tegra: tamonten: Fix I2C3 pad setting
08ec8450f3 lib/test_lockup: fix kernel pointer check for separate address spaces
40a5c93a74 uaccess: fix type mismatch warnings from access_ok()
a49b687a75 media: cx88-mpeg: clear interrupt status register before streaming video
4606350268 ASoC: soc-core: skip zero num_dai component in searching dai name
a840fc067e ARM: dts: bcm2711: Add the missing L1/L2 cache information
681a317034 video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
a7c624abf6 video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()
543dae0a46 video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
910715c4b4 arm64: defconfig: build imx-sdma as a module
14df2556a1 ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk
c241cfd0a5 ARM: ftrace: avoid redundant loads or clobbering IP
41082d6432 media: atomisp: fix dummy_ptr check to avoid duplicate active_bo
b554196e6d media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator off on some boards
370b50492e ASoC: madera: Add dependencies on MFD
0020667edc ARM: dts: bcm2837: Add the missing L1/L2 cache information
f040c08102 ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
da210b1b55 video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
8c7e2141fb video: fbdev: cirrusfb: check pixclock to avoid divide by zero
1e33f19746 video: fbdev: w100fb: Reset global state
08dff48201 video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
99e3f83539 media: ir_toy: free before error exiting
d658178b5a media: staging: media: zoran: fix various V4L2 compliance errors
bafec1a6ba media: staging: media: zoran: calculate the right buffer number for zoran_reap_stat_com
bd01629315 media: staging: media: zoran: move videodev alloc
b230f2d944 ntfs: add sanity check on allocation size
f7e8aff062 f2fs: compress: fix to print raw data size in error path of lz4 decompression
d91d1e681c NFSD: Fix nfsd_breaker_owns_lease() return values
498b7088db f2fs: fix to do sanity check on curseg->alloc_type
330d0e44fc ext4: don't BUG if someone dirty pages without asking ext4 first
cd6d719534 ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit
69d2421b55 ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bb
ecd384c436 locking/lockdep: Iterate lock_classes directly when reading lockdep files
3ad817f1bd spi: tegra20: Use of_device_get_match_data()
1c200c8bce nvme-tcp: lockdep: annotate in-kernel sockets
7e4967e913 parisc: Fix handling off probe non-access faults
ede1ef1a7d PM: core: keep irq flags in device_pm_check_callbacks()
227718c8bb ACPI/APEI: Limit printable size of BERT table data
cc051f497e Revert "Revert "block, bfq: honor already-setup queue merges""
1b69302bfa lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
1b87ce6a77 ACPICA: Avoid walking the ACPI Namespace if it is not there
df6e00b1a5 bfq: fix use-after-free in bfq_dispatch_request
dd85ed4af8 fs/binfmt_elf: Fix AT_PHDR for unusual ELF files
9fc899ce5a irqchip/nvic: Release nvic_base upon failure
4bbd910de1 irqchip/qcom-pdc: Fix broken locking
f038185b6a Fix incorrect type in assignment of ipv6 port for audit
012c572007 loop: use sysfs_emit() in the sysfs xxx show()
448857f580 selinux: allow FIOCLEX and FIONCLEX with policy capability
4b9b60b5bf selinux: use correct type for context length
7507ead1e9 block, bfq: don't move oom_bfqq
79b16d00de pinctrl: npcm: Fix broken references to chip->parent_device
9d1d8e5e42 gcc-plugins/stackleak: Exactly match strings instead of prefixes
b0f2f89d74 regulator: rpi-panel: Handle I2C errors/timing to the Atmel
2784604c8c LSM: general protection fault in legacy_parse_param
e600b5973e fs: fix fd table size alignment properly
327f07e370 lib/test: use after free in register_test_dev_kmod()
00d2b9fe5e fs: fd tables have to be multiples of BITS_PER_LONG
1752fcd404 net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
edb91a475d NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
5c94b6205e net/x25: Fix null-ptr-deref caused by x25_disconnect
4896c308a5 qlcnic: dcb: default to returning -EOPNOTSUPP
2165d0ebfb selftests: test_vxlan_under_vrf: Fix broken test case
f98dc124a4 net: phy: broadcom: Fix brcm_fet_config_init()
3e7a483af3 net: hns3: fix bug when PF set the duplicate MAC address for VFs
3eb92660e6 net: enetc: report software timestamping via SO_TIMESTAMPING
e9445a7a59 xen: fix is_xen_pmu()
af0c3ced24 clk: Initialize orphan req_rate
845e734f97 clk: qcom: gcc-msm8994: Fix gpll4 width
e2a2625392 kdb: Fix the putarea helper function
a9fa7d48a1 NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
8cd30d28da netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
fbd56a61ce jfs: fix divide error in dbNextAG
acb96e62e6 driver core: dd: fix return value of __setup handler
89748be18f firmware: google: Properly state IOMEM dependency
3d934d7b90 kgdbts: fix return value of __setup handler
f65ba8b988 serial: 8250: fix XOFF/XON sending when DMA is used
45e95a7bf8 kgdboc: fix return value of __setup handler
96038b1cf4 tty: hvc: fix return value of __setup handler
566e30289d pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
669b05ff43 pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
9d095fe2fb pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual GPIOs
861946289d pinctrl: mediatek: paris: Fix pingroup pin config state readback
7675fb2aaf pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
901e192ac9 pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback
72ea0fefea pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
fddbfe43bf staging: mt7621-dts: fix GB-PC2 devicetree
00e0739ca1 staging: mt7621-dts: fix pinctrl properties for ethernet
47c31fe8ca staging: mt7621-dts: fix formatting
59ec187d7c staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
942f68bf29 NFS: remove unneeded check in decode_devicenotify_args()
e025c66387 clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
54c8128297 clk: clps711x: Terminate clk_div_table with sentinel element
9ff533033d clk: loongson1: Terminate clk_div_table with sentinel element
bb680cabf2 clk: actions: Terminate clk_div_table with sentinel element
431f8a9cec nvdimm/region: Fix default alignment for small regions
f7210ca29a remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region
7a494580a8 remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
5c1d484d96 remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
f95fd61dd8 dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dma
d047d68ff0 clk: qcom: clk-rcg2: Update the frac table for pixel clock
334720f418 clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
639744b242 clk: at91: sama7g5: fix parents of PDMCs' GCLK
0553ecbce9 clk: imx7d: Remove audio_mclk_root_clk
867258d3f3 dma-debug: fix return value of __setup handlers
2f3885514e NFS: Return valid errors from nfs2/3_decode_dirent()
7b59afe84a habanalabs: Add check for pci_enable_device
afcbc63752 iio: adc: Add check for devm_request_threaded_irq
df2dc4cf71 serial: 8250: Fix race condition in RTS-after-send handling
469ce5119f NFS: Use of mapping_set_error() results in spurious errors
659fe4d653 serial: 8250_lpss: Balance reference count for PCI DMA device
0aebb3944a serial: 8250_mid: Balance reference count for PCI DMA device
c92bd51313 phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
80805f555e clk: qcom: ipq8074: Use floor ops for SDCC1 clock
fd2601e366 pinctrl: renesas: checker: Fix miscalculation of number of states
c5cf977515 pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
b5db33a81e staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
f5b01abf5f iio: mma8452: Fix probe failing when an i2c_device_id is used
8b89c9e68a clk: qcom: ipq8074: fix PCI-E clock oops
a70d5dbe2e soundwire: intel: fix wrong register name in intel_shim_wake
091704a9a7 cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fuse
f90ad94322 misc: alcor_pci: Fix an error handling path
553541c453 fsi: Aspeed: Fix a potential double free
cb212c3f0d fsi: aspeed: convert to devm_platform_ioremap_resource
c0b3c06414 pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
2cd05c38a2 mxser: fix xmit_buf leak in activate when LSR == 0xff
8513c93ead mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
084be6309f tipc: fix the timer expires after interval 100ms
5d8162371c openvswitch: always update flow key after nat
4593c76a65 tcp: ensure PMTU updates are processed during fastopen
b26091a020 net: bcmgenet: Use stronger register read/writes to assure ordering
9088614323 PCI: Avoid broken MSI on SB600 USB devices
75a4a97b74 selftests/bpf/test_lirc_mode2.sh: Exit with proper code
0d3ad6142a i2c: mux: demux-pinctrl: do not deactivate a master that is not active
c483f8002d i2c: meson: Fix wrong speed use from probe
b089836218 af_netlink: Fix shift out of bounds in group mask calculation
40f3b8dada ipv4: Fix route lookups when handling ICMP redirects and PMTU updates
70a6cf749d Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
b441fcdff2 Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed
876cfe1380 selftests/bpf: Fix error reporting from sock_fields programs
ac1ec6f319 bareudp: use ipv6_mod_enabled to check if IPv6 enabled
c037e13539 can: isotp: support MSG_TRUNC flag when reading from socket
f402c49865 can: isotp: return -EADDRNOTAVAIL when reading from unbound socket
8a9d996d4e USB: storage: ums-realtek: fix error code in rts51x_read_mem()
f9a6661009 samples/bpf, xdpsock: Fix race when running for fix duration of time
cd84ea3920 bpf, sockmap: Fix double uncharge the mem of sk_msg
7b812a369e bpf, sockmap: Fix more uncharged while msg has more_data
bec34a91eb bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
c98d903ff9 RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
a3587259ae mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
fa3d444245 MIPS: pgalloc: fix memory leak caused by pgd_free()
8c4808ff9e MIPS: RB532: fix return value of __setup handler
ef1728e3cb mips: cdmm: Fix refcount leak in mips_cdmm_phys_base
315772133a ath10k: Fix error handling in ath10k_setup_msa_resources
71f311b123 vxcan: enable local echo for sent CAN frames
3c2a397849 powerpc: 8xx: fix a return value error in mpc8xx_pic_init
956fab99ad platform/x86: huawei-wmi: check the return value of device_create_file()
1ba28cb692 selftests/bpf: Make test_lwt_ip_encap more stable and faster
08ab406781 libbpf: Unmap rings when umem deleted
6fa8edfc90 mfd: mc13xxx: Add check for mc13xxx_irq_request
bcf93175ed powerpc/sysdev: fix incorrect use to determine if list is empty
ab0a335b54 mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
bbd91cdb62 net: axienet: fix RX ring refill allocation failure handling
9ec698984d PCI: Reduce warnings on possible RW1C corruption
a84cb039d2 IB/hfi1: Allow larger MTU without AIP
48d23ef901 power: supply: wm8350-power: Add missing free in free_charger_irq
9d3dab40af power: supply: wm8350-power: Handle error for wm8350_register_irq
5cf1371628 i2c: xiic: Make bus names unique
f01e08083c hv_balloon: rate-limit "Unhandled message" warning
ba2c6e353b KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()
fa9089949d KVM: x86: Fix emulation in writing cr8
3e7e73ae2b powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
05abd49972 powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties()
3e04a837db libbpf: Skip forward declaration when counting duplicated type names
6bb107332d gpu: host1x: Fix a memory leak in 'host1x_remove()'
d1c7759304 bpf, arm64: Feed byte-offset into bpf line info
694398af5f bpf, arm64: Call build_prologue() first in first JIT pass
06a0001366 drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
a3d53f0005 scsi: hisi_sas: Change permission of parameter prot_mask
705c70399e power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return
1e06710c43 drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
9ffa07c699 ext2: correct max file size computing
60605acf5b TOMOYO: fix __setup handlers return values
adb7c8d1de drm/amd/display: Remove vupdate_int_entry definition
e462b0f518 RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR
279f318bd7 scsi: pm8001: Fix abort all task initialization
780c668a2d scsi: pm8001: Fix NCQ NON DATA command completion handling
f7a3f9e4e8 scsi: pm8001: Fix NCQ NON DATA command task initialization
f76bbee39e scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req()
6bc86bca35 scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req()
27ccdcaa01 scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update()
6c0e850c22 scsi: pm8001: Fix le32 values handling in pm80xx_set_sas_protocol_timer_config()
edde1ede76 scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
257a55622c scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
f55a7bc38f scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
5349cde1df dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
d4862bea08 drm/msm/dpu: fix dp audio condition
7b52fb813c drm/msm/dpu: add DSPP blocks teardown
413c62697b drm/msm/dp: populate connector of struct dp_panel
441a83ff27 iwlwifi: mvm: Fix an error code in iwl_mvm_up()
c12692c3e9 iwlwifi: Fix -EIO error code that is never returned
ec376f5c11 dax: make sure inodes are flushed before destroy cache
5e6b030ac3 IB/cma: Allow XRC INI QPs to set their local ACK timeout
9c384e1afa drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
80b96ac9d2 drm/amd/pm: enable pm sysfs write for one VF mode
06e778d184 iommu/ipmmu-vmsa: Check for error num after setting mask
ab63b24ae6 HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
879356a6a0 power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
f03ef518c1 drm/bridge: dw-hdmi: use safe format when first in bridge chain
e0e25e131d PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
b1af8b9ec0 livepatch: Fix build failure on 32 bits processors
6f095441f8 scripts/dtc: Call pkg-config POSIXly correct
080822563b net: dsa: mv88e6xxx: Enable port policy support on 6097
2ac4f049db mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
2430af1241 mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
232c1cc986 mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv
253cc4aafc mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta mode
b5d363ff17 powerpc/perf: Don't use perf_hw_context for trace IMC PMU
c18b538617 KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init
8b64c158a0 powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch
be703360ed ray_cs: Check ioremap return value
43f2fe2a69 power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
da71a1483b i40e: respect metadata on XSK Rx to skb
b2e48cd141 i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
e8fe653fa7 KVM: PPC: Fix vmx/vsx mixup in mmio emulation
11cb9eba06 RDMA/core: Set MR type in ib_reg_user_mr
11f11ac281 ath9k_htc: fix uninit value bugs
6e669baa33 drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function
19a7eba284 drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()
9abee51534 drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl()
47402eaf88 ionic: fix type complaint in ionic_dev_cmd_clean()
1ba10e5c39 drm/edid: Don't clear formats if using deep color
d99e7feaed mtd: rawnand: gpmi: fix controller timings setting
364b2eee62 mtd: onenand: Check for error irq
96ea88eb9b Bluetooth: hci_serdev: call init_rwsem() before p->open()
b267a8118c udmabuf: validate ubuf->pagecount
56722aa77b libbpf: Fix possible NULL pointer dereference when destroying skeleton
4a9c268a40 drm/panfrost: Check for error num after setting mask
5d1114ede5 ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
fb2be762a4 drm: bridge: adv7511: Fix ADV7535 HPD enablement
d9d61beb21 drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe
064e7f7532 drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
d8db734df6 drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
ec3924eab5 drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops
a1c665f5b7 ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS
1f24716e38 ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_data
abefbf602c ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
90ac679aa6 ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe
ec26e3ce3c ASoC: atmel: sam9x5_wm8731: use devm_snd_soc_register_card()
541251b903 mmc: davinci_mmc: Handle error for clk_enable
19eb5c7957 ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
42042c7a3d ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
fe4db4ea21 ASoC: fsl_spdif: Disable TX clock when stop
86b6cf9894 ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
c8c981cfc0 ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
f452cff025 ASoC: SOF: Add missing of_node_put() in imx8m_probe
0d82401d46 ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probe
7e8b0fd0eb ASoC: rockchip: i2s: Use devm_platform_get_and_ioremap_resource()
b5664a584e ivtv: fix incorrect device_caps for ivtvfb
ebd4f1501e media: saa7134: fix incorrect use to determine if list is empty
dd67315994 media: saa7134: convert list_for_each to entry variant
066d9b48f9 video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
20da8404e4 ASoC: fsi: Add check for clk_enable
db1c00a025 ASoC: wm8350: Handle error for wm8350_register_irq
662ee5ac6b ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
663e7a7287 media: vidtv: Check for null return of vzalloc
4d68603cc4 media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED
b02752d753 m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined
9ca3635a0a arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
7e6f578662 ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
64eee4127c memory: emif: check the pointer temp in get_device_details()
330a9b0d38 memory: emif: Add check for setup_interrupts
4639c1d97f ASoC: soc-compress: prevent the potentially use of null pointer
a6ee60d4a9 ASoC: dwc-i2s: Handle errors for clk_enable
39bee81e30 ASoC: atmel_ssc_dai: Handle errors for clk_enable
dc947d175c ASoC: mxs-saif: Handle errors for clk_enable
a754ea0de3 printk: fix return value of printk.devkmsg __setup handler
87a265e292 arm64: dts: broadcom: Fix sata nodename
f63122803d arm64: dts: ns2: Fix spi-cpol and spi-cpha property
5d6a0dc6ba ALSA: spi: Add check for clk_enable()
039fae34f8 ASoC: ti: davinci-i2s: Add check for clk_enable()
94cb9fe5d8 ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
7ce3e6e103 uaccess: fix nios2 and microblaze get_user_8()
19894751f6 ASoC: codecs: wcd934x: fix return value of wcd934x_rx_hph_mode_put
f126dcbe70 media: cedrus: h264: Fix neighbour info buffer size
c011ae1665 media: cedrus: H265: Fix neighbour info buffer size
44973633b0 media: usb: go7007: s2250-board: fix leak in probe()
ec8a37b2d9 media: em28xx: initialize refcount before kref_get
1b46f57d51 media: video/hdmi: handle short reads of hdmi info frame.
170ad3942b ARM: dts: imx: Add missing LVDS decoder on M53Menlo
2a0eb50d9a ARM: dts: sun8i: v3s: Move the csi1 block to follow address order
77406ac6ef soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
18b2ec361a firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not defined
8395a17ef6 arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
d19248e23f arm64: dts: qcom: sdm845: fix microphone bias properties and values
2042c6fbfb soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
5a990a65d4 soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem
b5d6eba719 soc: qcom: rpmpd: Check for null return of devm_kcalloc
0c11cb8db4 ARM: dts: qcom: ipq4019: fix sleep clock
22474dfd0c firmware: qcom: scm: Remove reassignment to desc following initializer
bf4bad1114 video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
6de6a64f23 video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
64ec3e678d video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
0dff86aeb1 video: fbdev: controlfb: Fix COMPILE_TEST build
ec1c20b02a video: fbdev: controlfb: Fix set but not used warnings
f8bf19f7f3 video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to avoid black screen
3187a1d4d5 media: aspeed: Correct value for h-total-pixels
245561612b media: hantro: Fix overfill bottom register field name
032b141a91 media: meson: vdec: potential dereference of null pointer
d3e5106c67 media: coda: Fix missing put_device() call in coda_get_vdoa_data
c9f4586d99 ASoC: generic: simple-card-utils: remove useless assignment
2c357e0277 ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting
712dd2ac26 media: bttv: fix WARNING regression on tunerless devices
bc2573abc6 media: mtk-vcodec: potential dereference of null pointer
8a83731a09 media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
c76188715d media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size
f622bd0758 kunit: make kunit_test_timeout compatible with comment
9e63bcb71d selftests, x86: fix how check_cc.sh is being invoked
d2c53e77b0 f2fs: fix compressed file start atomic write may cause data corruption
1c4d94e4f0 f2fs: compress: remove unneeded read when rewrite whole cluster
2c4741d1b0 btrfs: fix unexpected error path when reflinking an inline extent
3ef3bc75cd f2fs: fix to avoid potential deadlock
85cc399b65 nfsd: more robust allocation failure handling in nfsd_file_cache_init
1a11a87374 f2fs: fix missing free nid in f2fs_handle_failed_inode
c0cffc1fb3 perf/x86/intel/pt: Fix address filter config for 32-bit kernel
13c8e37e1f perf/core: Fix address filter parser for multiple filters
a9faa5beda rseq: Remove broken uapi field layout on 32-bit little endian
f0250e05e5 rseq: Optimise rseq_get_rseq_cs() and clear_rseq_cs()
ecc17de4b9 sched/core: Export pelt_thermal_tp
40732cab51 sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
2b5d41bcf2 f2fs: fix to enable ATGC correctly via gc_idle sysfs interface
9d92be1a09 watch_queue: Actually free the watch
5ae75b4ed3 watch_queue: Fix NULL dereference in error cleanup
509565faed io_uring: terminate manual loop iterator loop correctly for non-vecs
44a77e52bd clocksource: acpi_pm: fix return value of __setup handler
d678f002f0 hwmon: (pmbus) Add Vin unit off handling
7ca525b4cc hwrng: nomadik - Change clk_disable to clk_disable_unprepare
e4c777fd8c amba: Make the remove callback return void
1c6ac39763 vfio: platform: simplify device removal
c93017c8d5 crypto: ccree - Fix use after free in cc_cipher_exit()
78622926fe crypto: ccp - ccp_dmaengine_unregister release dma channels
9eeee6f684 ACPI: APEI: fix return value of __setup handlers
0b45bf1659 clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()
b33c753cff clocksource/drivers/timer-microchip-pit64b: Use notrace
db9d00461b clocksource/drivers/exynos_mct: Handle DTS with higher number of interrupts
d4e13c4a6f clocksource/drivers/exynos_mct: Refactor resources allocation
42d331a279 clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fix
aedff03da4 crypto: vmx - add missing dependencies
51939008ca crypto: amlogic - call finalize with bh disabled
24857d87cc crypto: sun8i-ce - call finalize with bh disabled
bf4814d58b crypto: sun8i-ss - call finalize with bh disabled
a4067ccb97 hwrng: atmel - disable trng on failure path
b7940bef6f spi: spi-zynqmp-gqspi: Handle error for dma_set_mask
3928a04bc6 PM: suspend: fix return value of __setup handler
052a218db0 PM: hibernate: fix __setup handler error handling
0b5924a14d block: don't delete queue kobject before its children
40b288a861 nvme: cleanup __nvme_check_ids
32c4db2a52 hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
ec8536f701 hwmon: (pmbus) Add mutex to regulator ops
18a18594ae spi: pxa2xx-pci: Balance reference count for PCI DMA device
55259cb374 crypto: ccree - don't attempt 0 len DMA mappings
d788ad472f EVM: fix the evm= __setup handler return value
a137f93ae5 audit: log AUDIT_TIME_* records only from rules
5e9501e60b crypto: rockchip - ECB does not need IV
8265bea7d8 selftests/x86: Add validity check and allow field splitting
f7d9249af3 arm64/mm: avoid fixmap race condition when create pud mapping
99a8dfce7c spi: tegra114: Add missing IRQ check in tegra_spi_probe
71dba67138 thermal: int340x: Check for NULL after calling kmemdup()
8e57117142 crypto: mxs-dcp - Fix scatterlist processing
ec1d372974 crypto: authenc - Fix sleep in atomic context in decrypt_tail
fdfaafeb4b crypto: sun8i-ss - really disable hash on A80
19693838c8 hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDER
bc20294cc8 hwrng: cavium - Check health status while reading random data
962d1f59d5 selinux: check return value of sel_make_avc_files
1ae9b020dd regulator: qcom_smd: fix for_each_child.cocci warnings
c20975954e PCI: xgene: Revert "PCI: xgene: Fix IB window setup"
0f56f24015 PCI: pciehp: Clear cmd_busy bit in polling mode
89ddcc8191 drm/i915/gem: add missing boundary check in vm_access
b84857c06e drm/i915/opregion: check port number bounds for SWSCI display power state
88975951d4 brcmfmac: pcie: Fix crashes due to early IRQs
1cbcf93a93 brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
f3820ddaf4 brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
daa07f2902 brcmfmac: firmware: Allocate space for default boardrev in nvram
1dd031eb99 xtensa: fix xtensa_wsr always writing 0
dac518bbce xtensa: fix stop_machine_cpuslocked call in patch_text
20f974dce5 media: davinci: vpif: fix unbalanced runtime PM enable
7c9b915b94 media: davinci: vpif: fix unbalanced runtime PM get
cde90e8291 media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC
785ffce44a DEC: Limit PMAX memory probing to R3k systems
8dde2296ec bcache: fixup multiple threads crash
37d2b4fa5c crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
b89fb8b882 crypto: rsa-pkcs1pad - restore signature length check
f38c318068 crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
c1db3f44f2 crypto: rsa-pkcs1pad - only allow with rsa
27a6f495b6 exec: Force single empty string when argv is empty
b02d33171d lib/raid6/test: fix multiple definition linking error
bf057eac9a thermal: int340x: Increase bitmap size
86a926c3f0 pstore: Don't use semaphores in always-atomic-context code
b26f400e4f carl9170: fix missing bit-wise or operator for tx_params
3aef4df6e1 mgag200 fix memmapsl configuration in GCTL6 register
ef1df91685 ARM: dts: exynos: add missing HDMI supplies on SMDK5420
3cde68a1eb ARM: dts: exynos: add missing HDMI supplies on SMDK5250
5ac205c414 ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
7187c9beb7 ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
2ca2a5552a video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
72af881092 video: fbdev: sm712fb: Fix crash in smtcfb_read()
ba09b04173 drm/edid: check basic audio support on CEA extension block
ce1927b8cf block: don't merge across cgroup boundaries if blkcg is enabled
6e0d24598c block: limit request dispatch loop duration
958e9b56de mailbox: tegra-hsp: Flush whole channel
f67a140078 drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
b35eb48471 ext4: fix fs corruption when tring to remove a non-empty directory with IO error
a1e6884b2d ext4: fix ext4_fc_stats trace point
c119fb65f6 coredump: Also dump first pages of non-executable ELF libraries
7ad5ccc3da ACPI: properties: Consistently return -ENOENT if there are no more references
ef3a87e0c4 arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs
18864e8b83 arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regs
e85fa9f4e9 arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs
7ce550a01b arm64: signal: nofpsimd: Do not allocate fp/simd context when not available
210e7b43d4 udp: call udp_encap_enable for v6 sockets when enabling encap
e1a58498ef powerpc/kvm: Fix kvm_use_magic_page
d72866a7f5 can: isotp: sanitize CAN ID checks in isotp_bind()
fde8c5cad0 drbd: fix potential silent data corruption
b101e74f9a dm integrity: set journal entry unused when shrinking device
d5d5804acc mm/kmemleak: reset tag when compare object pointer
bc2f58b8e4 mm,hwpoison: unmap poisoned page before invalidation
608c501d70 Revert "mm: madvise: skip unmapped vma holes passed to process_madvise"
8b354e3032 mm: madvise: return correct bytes advised with process_madvise
928c06c114 mm: madvise: skip unmapped vma holes passed to process_madvise
51f7557c3c ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
9017201e8d ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
7b7a03d8b5 ALSA: hda: Avoid unsol event during RPM suspending
a55e2d7423 ALSA: cs4236: fix an incorrect NULL check on list iterator
edefc4b2a8 cifs: fix NULL ptr dereference in smb2_ioctl_query_info()
9963ccea60 cifs: prevent bad output lengths in smb2_ioctl_query_info()
b75198edda Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
34bc1f69bf riscv: Increase stack size under KASAN
24b9b8e95c riscv: Fix fill_callchain return value
0f8c0bd0a4 qed: validate and restrict untrusted VFs vlan promisc mode
a3af3d4319 qed: display VF trust config
aa28075f06 scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
4bcefc78c8 mempolicy: mbind_range() set_policy() after vma_merge()
fa37c17143 mm: invalidate hwpoison page cache page in fault path
7188e7c96f mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
51dbb5e36d jffs2: fix memory leak in jffs2_scan_medium
607d3aab73 jffs2: fix memory leak in jffs2_do_mount_fs
7bb7428dd7 jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
b417f9c505 can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
3a21ee89bc mtd: rawnand: protect access to rawnand devices while in suspend
145a63201d spi: mxic: Fix the transmit path
be22ebe79e pinctrl: samsung: drop pin banks references on error paths
b97b305656 remoteproc: Fix count check in rproc_coredump_write()
784630df17 f2fs: fix to do sanity check on .cp_pack_total_block_count
e58ee6bd93 f2fs: quota: fix loop condition at f2fs_quota_sync()
ec67040703 f2fs: fix to unlock page correctly in error path of is_alive()
7af164fa2f NFSD: prevent integer overflow on 32 bit systems
65e21cc042 NFSD: prevent underflow in nfssvc_decode_writeargs()
b7b430104a SUNRPC: avoid race between mod_timer() and del_timer_sync()
f51ab2f60a HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
a1df8e60f2 firmware: stratix10-svc: add missing callback parameter on RSU
e94f5fbe7a Documentation: update stable tree link
f4bab992ee Documentation: add link to stable release candidate tree
10ee5662d5 KEYS: fix length validation in keyctl_pkey_params_get_2()
5a41a3033a ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
2775d8e364 clk: uniphier: Fix fixed-rate initialization
25cd5872d9 greybus: svc: fix an error handling bug in gb_svc_hello()
9f0cd81174 iio: inkern: make a best effort on offset calculation
19e533452f iio: inkern: apply consumer scale when no channel scale is available
e10dbe7f6a iio: inkern: apply consumer scale on IIO_VAL_INT cases
9f4fffc2ab iio: afe: rescale: use s64 for temporary scale calculations
9cd1b02655 coresight: Fix TRCCONFIGR.QE sysfs interface
7b478cb67b mei: avoid iterator usage outside of list_for_each_entry
ec8975417d mei: me: add Alder Lake N device id.
0a0c61dd07 xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
811f403519 xhci: make xhci_handshake timeout for xhci_reset() adjustable
3a820d1ca1 xhci: fix runtime PM imbalance in USB2 resume
c41387f96a xhci: fix garbage USBSTS being logged in some cases
1e0f089f70 USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
39a70732eb virtio-blk: Use blk_validate_block_size() to validate block size
290e05f346 tpm: fix reference counting for struct tpm_chip
fcd3c31dd1 iommu/iova: Improve 32-bit free space estimate
68c80088f5 locking/lockdep: Avoid potential access of invalid memory in lock_class
f19d8dfad6 net: dsa: microchip: add spi_device_id tables
8d3f4ad430 af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register
ef1a6ab36d Input: zinitix - do not report shadow fingers
21680aabc4 spi: Fix erroneous sgs value with min_t()
8fb7af1b5a Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"
18a4417a19 net:mcf8390: Use platform_get_irq() to get the interrupt
102d7f6c2e spi: Fix invalid sgs value
a4f4ce3dee gpio: Revert regression in sysfs-gpio (gpiolib.c)
fc9a35627c ethernet: sun: Free the coherent when failing in probing
3c84471925 tools/virtio: fix virtio_test execution
6d98dc2369 vdpa/mlx5: should verify CTRL_VQ feature exists for MQ
c97ffb4184 virtio_console: break out of buf poll on remove
0c00d38337 ARM: mstar: Select HAVE_ARM_ARCH_TIMER
a7e75e5ed4 xfrm: fix tunnel model fragmentation behavior
e05ae08ea8 HID: logitech-dj: add new lightspeed receiver id
ff919a7ad9 netdevice: add the case if dev is NULL
c4dc584a2d hv: utils: add PTP_1588_CLOCK to Kconfig to fix build
d136a2574a USB: serial: simple: add Nokia phone driver
38e3d48ffe USB: serial: pl2303: add IBM device IDs
d4d975e792 swiotlb: fix info leak with DMA_FROM_DEVICE
e2faffea7f Merge 5.10.109 into android13-5.10-lts
d9c5818a0b Linux 5.10.109
163960a7de llc: only change llc->dev when bind() succeeds
2b5a6d7714 nds32: fix access_ok() checks in get/put_user
c064268eb8 wcn36xx: Differentiate wcn3660 from wcn3620
95193d12f1 tpm: use try_get_ops() in tpm-space.c
5d3ff9542a mac80211: fix potential double free on mesh join
fcc9797d0d rcu: Don't deboost before reporting expedited quiescent state
87f7ed7c36 Revert "ath: add support for special 0x0 regulatory domain"
c971e6a1c8 crypto: qat - disable registration of algorithms
9f4e64611e ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
0b2ffba2de ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
2724b72b22 ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
2c74374c2e netfilter: nf_tables: initialize registers in nft_do_chain()
eb1ba8d1c3 drivers: net: xgene: Fix regression in CRC stripping
a2368d10b7 ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
6936d2ecf8 ALSA: cmipci: Restore aux vol on suspend/resume
cbd27127af ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
0ae81ef3ea ALSA: pcm: Add stream lock during PCM reset ioctl operations
b560d670c8 ALSA: pcm: Fix races among concurrent prealloc proc writes
a38440f006 ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
8527c8f052 ALSA: pcm: Fix races among concurrent read/write and buffer changes
0f6947f5f5 ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
014c81dfb3 ALSA: hda/realtek: Add quirk for ASUS GA402
05256f3fd6 ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
ca8247b4df ALSA: hda/realtek: Add quirk for Clevo NP50PNJ
26fe8f3103 ALSA: hda/realtek: Add quirk for Clevo NP70PNJ
80eab86a86 ALSA: usb-audio: add mapping for new Corsair Virtuoso SE
5ce74ff705 ALSA: oss: Fix PCM OSS buffer allocation overflow
db03abd0da ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
571df3393f llc: fix netdevice reference leaks in llc_ui_bind()
56dc187b35 staging: fbtft: fb_st7789v: reset display before initialization
351493858e tpm: Fix error handling in async work
ea21245cdc cgroup-v1: Correct privileges check in release_agent writes
824a950c3f cgroup: Use open-time cgroup namespace for process migration perm checks
f28364fe38 cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
9eeaa2d7d5 exfat: avoid incorrectly releasing for root inode
ae8ec5eabb net: ipv6: fix skb_over_panic in __ip6_append_data
25c23fe40e nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
f0c4090040 Merge 5.10.108 into android13-5.10-lts
9940314ebf Linux 5.10.108
37119edab8 Revert "selftests/bpf: Add test for bpf_timer overwriting crash"
9248694dac esp: Fix possible buffer overflow in ESP transformation
96340cdd55 smsc95xx: Ignore -ENODEV errors when device is unplugged
e27b51af54 net: usb: Correct reset handling of smsc95xx
b54daeafc1 net: usb: Correct PHY handling of smsc95xx
204d38dc6a perf symbols: Fix symbol size calculation condition
f0d43d22d2 Input: aiptek - properly check endpoint type
98e7a654a5 scsi: mpt3sas: Page fault in reply q processing
10a805334a usb: usbtmc: Fix bug in pipe direction for control transfers
00bdd9bf1a usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
28bc026739 usb: gadget: rndis: prevent integer overflow in rndis_set_response()
2c010c61e6 arm64: fix clang warning about TRAMP_VALIAS
277b7f6394 net: mscc: ocelot: fix backwards compatibility with single-chain tc-flower offload
2550afba2a net: bcmgenet: skip invalid partial checksums
bf5b7aae86 bnx2x: fix built-in kernel driver load failure
c07fdba12f net: phy: mscc: Add MODULE_FIRMWARE macros
ba50073cf4 net: dsa: Add missing of_node_put() in dsa_port_parse_of
a630ad5e8b net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
336b6be6ad drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
9d45aec02f drm/imx: parallel-display: Remove bus flags check in imx_pd_bridge_atomic_check()
9b763ceda6 hv_netvsc: Add check for kvmalloc_array
09a7264fb0 atm: eni: Add check for dma_map_single
70b7b3c055 net/packet: fix slab-out-of-bounds access in packet_recvmsg()
169add82d2 net: phy: marvell: Fix invalid comparison in the resume and suspend functions
01fac1ca8a esp6: fix check on ipv6_skip_exthdr's return value
d9fe590970 vsock: each transport cycles only on its own sockets
ac7dd60946 efi: fix return value of __setup handlers
fa3aa103e7 mm: swap: get rid of livelock in swapin readahead
df3301dc60 ocfs2: fix crash when initialize filecheck kobj fails
0f9b7b8df1 crypto: qcom-rng - ensure buffer for generate is completely filled

Change-Id: Iacc484b0ea31dd8f14ab254d6978b189acddc4d9
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2022-11-29 16:06:29 +00:00

704 lines
17 KiB
C

// SPDX-License-Identifier: GPL-2.0
/* Watch queue and general notification mechanism, built on pipes
*
* Copyright (C) 2020 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* See Documentation/watch_queue.rst
*/
#define pr_fmt(fmt) "watchq: " fmt
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/printk.h>
#include <linux/miscdevice.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/poll.h>
#include <linux/uaccess.h>
#include <linux/vmalloc.h>
#include <linux/file.h>
#include <linux/security.h>
#include <linux/cred.h>
#include <linux/sched/signal.h>
#include <linux/watch_queue.h>
#include <linux/pipe_fs_i.h>
MODULE_DESCRIPTION("Watch queue");
MODULE_AUTHOR("Red Hat, Inc.");
MODULE_LICENSE("GPL");
#define WATCH_QUEUE_NOTE_SIZE 128
#define WATCH_QUEUE_NOTES_PER_PAGE (PAGE_SIZE / WATCH_QUEUE_NOTE_SIZE)
/*
* This must be called under the RCU read-lock, which makes
* sure that the wqueue still exists. It can then take the lock,
* and check that the wqueue hasn't been destroyed, which in
* turn makes sure that the notification pipe still exists.
*/
static inline bool lock_wqueue(struct watch_queue *wqueue)
{
spin_lock_bh(&wqueue->lock);
if (unlikely(wqueue->defunct)) {
spin_unlock_bh(&wqueue->lock);
return false;
}
return true;
}
static inline void unlock_wqueue(struct watch_queue *wqueue)
{
spin_unlock_bh(&wqueue->lock);
}
static void watch_queue_pipe_buf_release(struct pipe_inode_info *pipe,
struct pipe_buffer *buf)
{
struct watch_queue *wqueue = (struct watch_queue *)buf->private;
struct page *page;
unsigned int bit;
/* We need to work out which note within the page this refers to, but
* the note might have been maximum size, so merely ANDing the offset
* off doesn't work. OTOH, the note must've been more than zero size.
*/
bit = buf->offset + buf->len;
if ((bit & (WATCH_QUEUE_NOTE_SIZE - 1)) == 0)
bit -= WATCH_QUEUE_NOTE_SIZE;
bit /= WATCH_QUEUE_NOTE_SIZE;
page = buf->page;
bit += page->index;
set_bit(bit, wqueue->notes_bitmap);
generic_pipe_buf_release(pipe, buf);
}
// No try_steal function => no stealing
#define watch_queue_pipe_buf_try_steal NULL
/* New data written to a pipe may be appended to a buffer with this type. */
static const struct pipe_buf_operations watch_queue_pipe_buf_ops = {
.release = watch_queue_pipe_buf_release,
.try_steal = watch_queue_pipe_buf_try_steal,
.get = generic_pipe_buf_get,
};
/*
* Post a notification to a watch queue.
*
* Must be called with the RCU lock for reading, and the
* watch_queue lock held, which guarantees that the pipe
* hasn't been released.
*/
static bool post_one_notification(struct watch_queue *wqueue,
struct watch_notification *n)
{
void *p;
struct pipe_inode_info *pipe = wqueue->pipe;
struct pipe_buffer *buf;
struct page *page;
unsigned int head, tail, mask, note, offset, len;
bool done = false;
if (!pipe)
return false;
spin_lock_irq(&pipe->rd_wait.lock);
mask = pipe->ring_size - 1;
head = pipe->head;
tail = pipe->tail;
if (pipe_full(head, tail, pipe->ring_size))
goto lost;
note = find_first_bit(wqueue->notes_bitmap, wqueue->nr_notes);
if (note >= wqueue->nr_notes)
goto lost;
page = wqueue->notes[note / WATCH_QUEUE_NOTES_PER_PAGE];
offset = note % WATCH_QUEUE_NOTES_PER_PAGE * WATCH_QUEUE_NOTE_SIZE;
get_page(page);
len = n->info & WATCH_INFO_LENGTH;
p = kmap_atomic(page);
memcpy(p + offset, n, len);
kunmap_atomic(p);
buf = &pipe->bufs[head & mask];
buf->page = page;
buf->private = (unsigned long)wqueue;
buf->ops = &watch_queue_pipe_buf_ops;
buf->offset = offset;
buf->len = len;
buf->flags = PIPE_BUF_FLAG_WHOLE;
smp_store_release(&pipe->head, head + 1); /* vs pipe_read() */
if (!test_and_clear_bit(note, wqueue->notes_bitmap)) {
spin_unlock_irq(&pipe->rd_wait.lock);
BUG();
}
wake_up_interruptible_sync_poll_locked(&pipe->rd_wait, EPOLLIN | EPOLLRDNORM);
done = true;
out:
spin_unlock_irq(&pipe->rd_wait.lock);
if (done)
kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
return done;
lost:
buf = &pipe->bufs[(head - 1) & mask];
buf->flags |= PIPE_BUF_FLAG_LOSS;
goto out;
}
/*
* Apply filter rules to a notification.
*/
static bool filter_watch_notification(const struct watch_filter *wf,
const struct watch_notification *n)
{
const struct watch_type_filter *wt;
unsigned int st_bits = sizeof(wt->subtype_filter[0]) * 8;
unsigned int st_index = n->subtype / st_bits;
unsigned int st_bit = 1U << (n->subtype % st_bits);
int i;
if (!test_bit(n->type, wf->type_filter))
return false;
for (i = 0; i < wf->nr_filters; i++) {
wt = &wf->filters[i];
if (n->type == wt->type &&
(wt->subtype_filter[st_index] & st_bit) &&
(n->info & wt->info_mask) == wt->info_filter)
return true;
}
return false; /* If there is a filter, the default is to reject. */
}
/**
* __post_watch_notification - Post an event notification
* @wlist: The watch list to post the event to.
* @n: The notification record to post.
* @cred: The creds of the process that triggered the notification.
* @id: The ID to match on the watch.
*
* Post a notification of an event into a set of watch queues and let the users
* know.
*
* The size of the notification should be set in n->info & WATCH_INFO_LENGTH and
* should be in units of sizeof(*n).
*/
void __post_watch_notification(struct watch_list *wlist,
struct watch_notification *n,
const struct cred *cred,
u64 id)
{
const struct watch_filter *wf;
struct watch_queue *wqueue;
struct watch *watch;
if (((n->info & WATCH_INFO_LENGTH) >> WATCH_INFO_LENGTH__SHIFT) == 0) {
WARN_ON(1);
return;
}
rcu_read_lock();
hlist_for_each_entry_rcu(watch, &wlist->watchers, list_node) {
if (watch->id != id)
continue;
n->info &= ~WATCH_INFO_ID;
n->info |= watch->info_id;
wqueue = rcu_dereference(watch->queue);
wf = rcu_dereference(wqueue->filter);
if (wf && !filter_watch_notification(wf, n))
continue;
if (security_post_notification(watch->cred, cred, n) < 0)
continue;
if (lock_wqueue(wqueue)) {
post_one_notification(wqueue, n);
unlock_wqueue(wqueue);
}
}
rcu_read_unlock();
}
EXPORT_SYMBOL(__post_watch_notification);
/*
* Allocate sufficient pages to preallocation for the requested number of
* notifications.
*/
long watch_queue_set_size(struct pipe_inode_info *pipe, unsigned int nr_notes)
{
struct watch_queue *wqueue = pipe->watch_queue;
struct page **pages;
unsigned long *bitmap;
unsigned long user_bufs;
unsigned int bmsize;
int ret, i, nr_pages;
if (!wqueue)
return -ENODEV;
if (wqueue->notes)
return -EBUSY;
if (nr_notes < 1 ||
nr_notes > 512) /* TODO: choose a better hard limit */
return -EINVAL;
nr_pages = (nr_notes + WATCH_QUEUE_NOTES_PER_PAGE - 1);
nr_pages /= WATCH_QUEUE_NOTES_PER_PAGE;
user_bufs = account_pipe_buffers(pipe->user, pipe->nr_accounted, nr_pages);
if (nr_pages > pipe->max_usage &&
(too_many_pipe_buffers_hard(user_bufs) ||
too_many_pipe_buffers_soft(user_bufs)) &&
pipe_is_unprivileged_user()) {
ret = -EPERM;
goto error;
}
nr_notes = nr_pages * WATCH_QUEUE_NOTES_PER_PAGE;
ret = pipe_resize_ring(pipe, roundup_pow_of_two(nr_notes));
if (ret < 0)
goto error;
pages = kcalloc(sizeof(struct page *), nr_pages, GFP_KERNEL);
if (!pages)
goto error;
for (i = 0; i < nr_pages; i++) {
pages[i] = alloc_page(GFP_KERNEL);
if (!pages[i])
goto error_p;
pages[i]->index = i * WATCH_QUEUE_NOTES_PER_PAGE;
}
bmsize = (nr_notes + BITS_PER_LONG - 1) / BITS_PER_LONG;
bmsize *= sizeof(unsigned long);
bitmap = kmalloc(bmsize, GFP_KERNEL);
if (!bitmap)
goto error_p;
memset(bitmap, 0xff, bmsize);
wqueue->notes = pages;
wqueue->notes_bitmap = bitmap;
wqueue->nr_pages = nr_pages;
wqueue->nr_notes = nr_notes;
return 0;
error_p:
while (--i >= 0)
__free_page(pages[i]);
kfree(pages);
error:
(void) account_pipe_buffers(pipe->user, nr_pages, pipe->nr_accounted);
return ret;
}
/*
* Set the filter on a watch queue.
*/
long watch_queue_set_filter(struct pipe_inode_info *pipe,
struct watch_notification_filter __user *_filter)
{
struct watch_notification_type_filter *tf;
struct watch_notification_filter filter;
struct watch_type_filter *q;
struct watch_filter *wfilter;
struct watch_queue *wqueue = pipe->watch_queue;
int ret, nr_filter = 0, i;
if (!wqueue)
return -ENODEV;
if (!_filter) {
/* Remove the old filter */
wfilter = NULL;
goto set;
}
/* Grab the user's filter specification */
if (copy_from_user(&filter, _filter, sizeof(filter)) != 0)
return -EFAULT;
if (filter.nr_filters == 0 ||
filter.nr_filters > 16 ||
filter.__reserved != 0)
return -EINVAL;
tf = memdup_user(_filter->filters, filter.nr_filters * sizeof(*tf));
if (IS_ERR(tf))
return PTR_ERR(tf);
ret = -EINVAL;
for (i = 0; i < filter.nr_filters; i++) {
if ((tf[i].info_filter & ~tf[i].info_mask) ||
tf[i].info_mask & WATCH_INFO_LENGTH)
goto err_filter;
/* Ignore any unknown types */
if (tf[i].type >= WATCH_TYPE__NR)
continue;
nr_filter++;
}
/* Now we need to build the internal filter from only the relevant
* user-specified filters.
*/
ret = -ENOMEM;
wfilter = kzalloc(struct_size(wfilter, filters, nr_filter), GFP_KERNEL);
if (!wfilter)
goto err_filter;
wfilter->nr_filters = nr_filter;
q = wfilter->filters;
for (i = 0; i < filter.nr_filters; i++) {
if (tf[i].type >= WATCH_TYPE__NR)
continue;
q->type = tf[i].type;
q->info_filter = tf[i].info_filter;
q->info_mask = tf[i].info_mask;
q->subtype_filter[0] = tf[i].subtype_filter[0];
__set_bit(q->type, wfilter->type_filter);
q++;
}
kfree(tf);
set:
pipe_lock(pipe);
wfilter = rcu_replace_pointer(wqueue->filter, wfilter,
lockdep_is_held(&pipe->mutex));
pipe_unlock(pipe);
if (wfilter)
kfree_rcu(wfilter, rcu);
return 0;
err_filter:
kfree(tf);
return ret;
}
static void __put_watch_queue(struct kref *kref)
{
struct watch_queue *wqueue =
container_of(kref, struct watch_queue, usage);
struct watch_filter *wfilter;
int i;
for (i = 0; i < wqueue->nr_pages; i++)
__free_page(wqueue->notes[i]);
kfree(wqueue->notes);
bitmap_free(wqueue->notes_bitmap);
wfilter = rcu_access_pointer(wqueue->filter);
if (wfilter)
kfree_rcu(wfilter, rcu);
kfree_rcu(wqueue, rcu);
}
/**
* put_watch_queue - Dispose of a ref on a watchqueue.
* @wqueue: The watch queue to unref.
*/
void put_watch_queue(struct watch_queue *wqueue)
{
kref_put(&wqueue->usage, __put_watch_queue);
}
EXPORT_SYMBOL(put_watch_queue);
static void free_watch(struct rcu_head *rcu)
{
struct watch *watch = container_of(rcu, struct watch, rcu);
put_watch_queue(rcu_access_pointer(watch->queue));
atomic_dec(&watch->cred->user->nr_watches);
put_cred(watch->cred);
kfree(watch);
}
static void __put_watch(struct kref *kref)
{
struct watch *watch = container_of(kref, struct watch, usage);
call_rcu(&watch->rcu, free_watch);
}
/*
* Discard a watch.
*/
static void put_watch(struct watch *watch)
{
kref_put(&watch->usage, __put_watch);
}
/**
* init_watch_queue - Initialise a watch
* @watch: The watch to initialise.
* @wqueue: The queue to assign.
*
* Initialise a watch and set the watch queue.
*/
void init_watch(struct watch *watch, struct watch_queue *wqueue)
{
kref_init(&watch->usage);
INIT_HLIST_NODE(&watch->list_node);
INIT_HLIST_NODE(&watch->queue_node);
rcu_assign_pointer(watch->queue, wqueue);
}
static int add_one_watch(struct watch *watch, struct watch_list *wlist, struct watch_queue *wqueue)
{
const struct cred *cred;
struct watch *w;
hlist_for_each_entry(w, &wlist->watchers, list_node) {
struct watch_queue *wq = rcu_access_pointer(w->queue);
if (wqueue == wq && watch->id == w->id)
return -EBUSY;
}
cred = current_cred();
if (atomic_inc_return(&cred->user->nr_watches) > task_rlimit(current, RLIMIT_NOFILE)) {
atomic_dec(&cred->user->nr_watches);
return -EAGAIN;
}
watch->cred = get_cred(cred);
rcu_assign_pointer(watch->watch_list, wlist);
kref_get(&wqueue->usage);
kref_get(&watch->usage);
hlist_add_head(&watch->queue_node, &wqueue->watches);
hlist_add_head_rcu(&watch->list_node, &wlist->watchers);
return 0;
}
/**
* add_watch_to_object - Add a watch on an object to a watch list
* @watch: The watch to add
* @wlist: The watch list to add to
*
* @watch->queue must have been set to point to the queue to post notifications
* to and the watch list of the object to be watched. @watch->cred must also
* have been set to the appropriate credentials and a ref taken on them.
*
* The caller must pin the queue and the list both and must hold the list
* locked against racing watch additions/removals.
*/
int add_watch_to_object(struct watch *watch, struct watch_list *wlist)
{
struct watch_queue *wqueue;
int ret = -ENOENT;
rcu_read_lock();
wqueue = rcu_access_pointer(watch->queue);
if (lock_wqueue(wqueue)) {
spin_lock(&wlist->lock);
ret = add_one_watch(watch, wlist, wqueue);
spin_unlock(&wlist->lock);
unlock_wqueue(wqueue);
}
rcu_read_unlock();
return ret;
}
EXPORT_SYMBOL(add_watch_to_object);
/**
* remove_watch_from_object - Remove a watch or all watches from an object.
* @wlist: The watch list to remove from
* @wq: The watch queue of interest (ignored if @all is true)
* @id: The ID of the watch to remove (ignored if @all is true)
* @all: True to remove all objects
*
* Remove a specific watch or all watches from an object. A notification is
* sent to the watcher to tell them that this happened.
*/
int remove_watch_from_object(struct watch_list *wlist, struct watch_queue *wq,
u64 id, bool all)
{
struct watch_notification_removal n;
struct watch_queue *wqueue;
struct watch *watch;
int ret = -EBADSLT;
rcu_read_lock();
again:
spin_lock(&wlist->lock);
hlist_for_each_entry(watch, &wlist->watchers, list_node) {
if (all ||
(watch->id == id && rcu_access_pointer(watch->queue) == wq))
goto found;
}
spin_unlock(&wlist->lock);
goto out;
found:
ret = 0;
hlist_del_init_rcu(&watch->list_node);
rcu_assign_pointer(watch->watch_list, NULL);
spin_unlock(&wlist->lock);
/* We now own the reference on watch that used to belong to wlist. */
n.watch.type = WATCH_TYPE_META;
n.watch.subtype = WATCH_META_REMOVAL_NOTIFICATION;
n.watch.info = watch->info_id | watch_sizeof(n.watch);
n.id = id;
if (id != 0)
n.watch.info = watch->info_id | watch_sizeof(n);
wqueue = rcu_dereference(watch->queue);
if (lock_wqueue(wqueue)) {
post_one_notification(wqueue, &n.watch);
if (!hlist_unhashed(&watch->queue_node)) {
hlist_del_init_rcu(&watch->queue_node);
put_watch(watch);
}
unlock_wqueue(wqueue);
}
if (wlist->release_watch) {
void (*release_watch)(struct watch *);
release_watch = wlist->release_watch;
rcu_read_unlock();
(*release_watch)(watch);
rcu_read_lock();
}
put_watch(watch);
if (all && !hlist_empty(&wlist->watchers))
goto again;
out:
rcu_read_unlock();
return ret;
}
EXPORT_SYMBOL(remove_watch_from_object);
/*
* Remove all the watches that are contributory to a queue. This has the
* potential to race with removal of the watches by the destruction of the
* objects being watched or with the distribution of notifications.
*/
void watch_queue_clear(struct watch_queue *wqueue)
{
struct watch_list *wlist;
struct watch *watch;
bool release;
rcu_read_lock();
spin_lock_bh(&wqueue->lock);
/* Prevent new notifications from being stored. */
wqueue->defunct = true;
while (!hlist_empty(&wqueue->watches)) {
watch = hlist_entry(wqueue->watches.first, struct watch, queue_node);
hlist_del_init_rcu(&watch->queue_node);
/* We now own a ref on the watch. */
spin_unlock_bh(&wqueue->lock);
/* We can't do the next bit under the queue lock as we need to
* get the list lock - which would cause a deadlock if someone
* was removing from the opposite direction at the same time or
* posting a notification.
*/
wlist = rcu_dereference(watch->watch_list);
if (wlist) {
void (*release_watch)(struct watch *);
spin_lock(&wlist->lock);
release = !hlist_unhashed(&watch->list_node);
if (release) {
hlist_del_init_rcu(&watch->list_node);
rcu_assign_pointer(watch->watch_list, NULL);
/* We now own a second ref on the watch. */
}
release_watch = wlist->release_watch;
spin_unlock(&wlist->lock);
if (release) {
if (release_watch) {
rcu_read_unlock();
/* This might need to call dput(), so
* we have to drop all the locks.
*/
(*release_watch)(watch);
rcu_read_lock();
}
put_watch(watch);
}
}
put_watch(watch);
spin_lock_bh(&wqueue->lock);
}
spin_unlock_bh(&wqueue->lock);
rcu_read_unlock();
}
/**
* get_watch_queue - Get a watch queue from its file descriptor.
* @fd: The fd to query.
*/
struct watch_queue *get_watch_queue(int fd)
{
struct pipe_inode_info *pipe;
struct watch_queue *wqueue = ERR_PTR(-EINVAL);
struct fd f;
f = fdget(fd);
if (f.file) {
pipe = get_pipe_info(f.file, false);
if (pipe && pipe->watch_queue) {
wqueue = pipe->watch_queue;
kref_get(&wqueue->usage);
}
fdput(f);
}
return wqueue;
}
EXPORT_SYMBOL(get_watch_queue);
/*
* Initialise a watch queue
*/
int watch_queue_init(struct pipe_inode_info *pipe)
{
struct watch_queue *wqueue;
wqueue = kzalloc(sizeof(*wqueue), GFP_KERNEL);
if (!wqueue)
return -ENOMEM;
wqueue->pipe = pipe;
kref_init(&wqueue->usage);
spin_lock_init(&wqueue->lock);
INIT_HLIST_HEAD(&wqueue->watches);
pipe->watch_queue = wqueue;
return 0;
}