Commit Graph

1109 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
9ef4727680 Merge tag 'android12-5.10.149_r00' into android12-5.10
This is the merge of the upstream LTS release of 5.10.149 into the
android12-5.10 branch.

It contains the following commits:

0118fb827b Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
69a9a62c66 ANDROID: GKI: db845c: Update symbols list and ABI
2498b03977 Merge 5.10.149 into android12-5.10-lts
09be132bfe Linux 5.10.149
31ce5da48a wifi: mac80211: fix MBSSID parsing use-after-free
353b5c8d4b wifi: mac80211: don't parse mbssid in assoc response
66dacdbc2e mac80211: mlme: find auth challenge directly
a07708a843 Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
c1e111543d Merge 5.10.148 into android12-5.10-lts
3783e64fee Linux 5.10.148
0df206bdc6 misc: pci_endpoint_test: Fix pci_endpoint_test_{copy,write,read}() panic
40a29e58f6 misc: pci_endpoint_test: Aggregate params checking for xfer
9c13b1a044 Input: xpad - fix wireless 360 controller breaking after suspend
19dba9c3b5 Input: xpad - add supported devices as contributed on github
b2b9386667 wifi: cfg80211: update hidden BSSes to avoid WARN_ON
58c0306d0b wifi: mac80211: fix crash in beacon protection for P2P-device
3539e75abe wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
b0e5c5deb7 wifi: cfg80211: avoid nontransmitted BSS list corruption
6b94484503 wifi: cfg80211: fix BSS refcounting bugs
6144c97f96 wifi: cfg80211: ensure length byte is present before access
e7aa7fd10e wifi: cfg80211/mac80211: reject bad MBSSID elements
a6408e0b69 wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()
b0c37581be random: use expired timer rather than wq for mixing fast pool
c1a4423fd3 random: avoid reading two cache lines on irq randomness
638f84a718 USB: serial: qcserial: add new usb-id for Dell branded EM7455
36b33c6351 scsi: stex: Properly zero out the passthrough command structure
438994b8cd efi: Correct Macmini DMI match in uefi cert quirk
2fd1caa0c6 ALSA: hda: Fix position reporting on Poulsbo
011399a3f9 random: clamp credited irq bits to maximum mixed
fc87c413f2 random: restore O_NONBLOCK support
c04b67c544 Revert "clk: ti: Stop using legacy clkctrl names for omap4 and 5"
0a49bfa8f8 rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
3451df3a51 USB: serial: ftdi_sio: fix 300 bps rate for SIO
1b257f97fe usb: mon: make mmapped memory read only
3ba555d8e1 mmc: core: Terminate infinite loop in SD-UHS voltage switch
0684658366 mmc: core: Replace with already defined values for readability
4f32f266b1 drm/amd/display: skip audio setup when audio stream is enabled
a6fe179ba0 drm/amd/display: update gamut remap if plane has changed
73e1b27b58 net: atlantic: fix potential memory leak in aq_ndev_close()
3287f0d727 arch: um: Mark the stack non-executable to fix a binutils warning
aeb8315593 um: Cleanup compiler warning in arch/x86/um/tls_32.c
6d4deaba06 um: Cleanup syscall_handler_t cast in syscalls_32.h
6d7a47e849 ALSA: hda/hdmi: Fix the converter reuse for the silent stream
c1337f8ea8 net/ieee802154: fix uninit value bug in dgram_sendmsg
034b30c311 scsi: qedf: Fix a UAF bug in __qedf_probe()
29461bbe2d ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
dae0b77cb8 dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API failure
e0ca2998df dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
789e590cb8 dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling
64e240934c firmware: arm_scmi: Add SCMI PM driver remove routine
6df7c6d141 compiler_attributes.h: move __compiletime_{error|warning}
1e555c3ed1 fs: fix UAF/GPF bug in nilfs_mdt_destroy
acf05d61d3 powerpc/64s/radix: don't need to broadcast IPI for radix pmd collapse flush
377c60dd32 mm: gup: fix the fast GUP race against THP collapse
fce793a056 ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
132590d776 xsk: Inherit need_wakeup flag for shared sockets
beffc38dc6 perf tools: Fixup get_current_dir_name() compilation
fb380f548c docs: update mediator information in CoC docs
c7f4af575b Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
b23b0cd57e ceph: don't truncate file in atomic_open
8a18fdc5ae nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
aad4c99785 nilfs2: fix leak of nilfs_root in case of writer thread creation failure
21ee3cffed nilfs2: fix use-after-free bug of struct nilfs_root
3f840480e3 nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
bc7618b493 Merge 5.10.147 into android12-5.10-lts
014862eecf Linux 5.10.147
98f722cc24 ALSA: hda/hdmi: fix warning about PCM count when used with SOF
b12d0489e4 x86/alternative: Fix race in try_get_desc()
374d4c3075 KVM: x86: Hide IA32_PLATFORM_DCA_CAP[31:0] from the guest
a8e6cde506 clk: iproc: Do not rely on node name for correct PLL setup
cf41711aa4 clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
83db457b41 selftests: Fix the if conditions of in test_extra_filter()
84cab3531f net: stmmac: power up/down serdes in stmmac_open/release
743a6e53cf nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
469dc5fd9a nvme: add new line after variable declatation
2c248c4681 cxgb4: fix missing unlock on ETHOFLD desc collect fail path
fde656dbc3 net: sched: act_ct: fix possible refcount leak in tcf_ct_init()
fa065e6081 usbnet: Fix memory leak in usbnet_disconnect()
57959392f7 Input: melfas_mip4 - fix return value check in mip4_probe()
330b775781 Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time"
359e73edd3 ASoC: tas2770: Reinit regcache on reset
8884a192f9 soc: sunxi: sram: Fix debugfs info for A64 SRAM C
4e2ede7cb9 soc: sunxi: sram: Fix probe function ordering issues
50fbc81f80 soc: sunxi_sram: Make use of the helper function devm_platform_ioremap_resource()
0fdc3ab9b4 soc: sunxi: sram: Prevent the driver from being unbound
3e0405c69b soc: sunxi: sram: Actually claim SRAM regions
a658f0bc72 reset: imx7: Fix the iMX8MP PCIe PHY PERST support
8934aea1a4 ARM: dts: am33xx: Fix MMCHS0 dma properties
cce5dc0333 scsi: hisi_sas: Revert "scsi: hisi_sas: Limit max hw sectors for v3 HW"
625899cd06 swiotlb: max mapping size takes min align mask into account
6f478fe8c3 media: rkvdec: Disable H.264 error detection
ac828e2416 media: dvb_vb2: fix possible out of bound access
be2cd261ca mm: fix madivse_pageout mishandling on non-LRU page
1002d5fef4 mm/migrate_device.c: flush TLB while holding PTL
a54fc53691 mm: prevent page_frag_alloc() from corrupting the memory
466a26af2d mm/page_alloc: fix race condition between build_all_zonelists and page allocation
9b751b4dc3 mmc: hsq: Fix data stomping during mmc recovery
36b10cde0c mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
02d55a837e libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
e72a435fa3 net: mt7531: only do PLL once after the reset
a48daecd09 ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
1d71422bd4 ARM: dts: integrator: Tag PCI host with device_type
dab144c5dd clk: ingenic-tcu: Properly enable registers before accessing timers
6c5742372b Input: snvs_pwrkey - fix SNVS_HPVIDR1 register address
8cf377baf0 net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
0695e590de thunderbolt: Explicitly reset plug events delay back to USB4 spec value
efdff53394 usb: typec: ucsi: Remove incorrect warning
e5ee7b77ac uas: ignore UAS for Thinkplus chips
5f91ceea6c usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
1e4b856fc0 uas: add no-uas quirk for Hiksemi usb_disk
6ac5b52e3f btrfs: fix hang during unmount when stopping a space reclaim worker
29d849c3de ALSA: hda: Fix Nvidia dp infoframe
24070d32c6 ALSA: hda/hdmi: let new platforms assign the pcm slot dynamically
c1256c531d ALSA: hda/tegra: Reset hardware
ded9e8964d ALSA: hda/tegra: Use clk_bulk helpers
b2ad53fbc0 thunderbolt: Add support for Intel Maple Ridge single port controller
53e6282dde thunderbolt: Add support for Intel Maple Ridge
0e8dfc1216 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
391716695e Revert "usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind"
1d17080edb Merge 5.10.146 into android12-5.10-lts
62aea69444 Linux 5.10.146
c18383218c ext4: make directory inode spreading reflect flexbg size
a968542d7e ext4: limit the number of retries after discarding preallocations blocks
958b0ee23f ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
2511726515 devdax: Fix soft-reservation memory description
0fa11239c4 i2c: mlxbf: Fix frequency calculation
48ee0a864d i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction()
4f6db1f921 i2c: mlxbf: incorrect base address passed during io write
2f58c47c36 i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible
90f1c0025b workqueue: don't skip lockdep work dependency in cancel_work_sync()
4dfc96d8d7 drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
58101a9cfc drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage
3ae1dede22 drm/amd/display: Limit user regamma to a valid value
867b2b2b68 drm/amdgpu: use dirty framebuffer helper
c5812807e4 drm/gma500: Fix BUG: sleeping function called from invalid context errors
ec2bf249bd Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region
2a2e503a62 cifs: always initialize struct msghdr smb_msg completely
877231b0e6 cifs: use discard iterator to discard unneeded network data more efficiently
09867977fc drm/amdgpu: Fix check for RAS support
8c6fd05cf8 vfio/type1: fix vaddr_get_pfns() return in vfio_pin_page_external()
f31ea57c11 usb: xhci-mtk: fix issue of out-of-bounds array access
f5fcc9d6d7 s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
fb189aa1be serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
e1993864a9 serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
7f11386733 serial: Create uart_xmit_advance()
fda04a0bab drm/amd/amdgpu: fixing read wrong pf2vf data in SRIOV
4bc4b6419e selftests: forwarding: add shebang for sch_red.sh
8844c750ee net: sched: fix possible refcount leak in tc_new_tfilter()
75ca7f44da net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
d76151a813 net/smc: Stop the CLC flow if no link to map buffers on
fd938b4ce0 drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
c990621606 perf kcore_copy: Do not check /proc/modules is unchanged
28d185095e perf jit: Include program header in ELF files
78926cf762 can: gs_usb: gs_can_open(): fix race dev->can.state condition
ebd97dbe3c netfilter: ebtables: fix memory leak when blob is malformed
b043a525a3 netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain()
710e3f526b netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain()
1e7e55374d net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs
586def6ebe net/sched: taprio: avoid disabling offload when it was never enabled
aa400ccadf net: socket: remove register_gifconf
8bd98cfbfc net: enetc: move enetc_set_psfp() out of the common enetc_set_features()
f0a057f49b wireguard: netlink: avoid variable-sized memcpy on sockaddr
b7b3859598 wireguard: ratelimiter: disable timings test by default
ddd47f1cd6 net: ipa: properly limit modem routing table use
8c1454d549 net: ipa: kill IPA_TABLE_ENTRY_SIZE
53b1715e28 net: ipa: DMA addresses are nicely aligned
48afea293a net: ipa: avoid 64-bit modulus
3ae25aca3f net: ipa: fix table alignment requirement
c2cf0613d1 net: ipa: fix assumptions about DMA address size
d58815af89 of: mdio: Add of_node_put() when breaking out of for_each_xx
9101e54c95 drm/hisilicon: Add depends on MMU
bac7328fc0 drm/hisilicon/hibmc: Allow to be built if COMPILE_TEST is enabled
b3b41d4d95 sfc: fix null pointer dereference in efx_hard_start_xmit
b4afd3878f sfc: fix TX channel offset when using legacy interrupts
2dbf487d6b i40e: Fix set max_tx_rate when it is lower than 1 Mbps
65ee2bcc89 i40e: Fix VF set max MTU size
15e9724f6b iavf: Fix set max MTU size with port VLAN and jumbo frames
ccddb1db4b iavf: Fix bad page state
21b535fe5e MIPS: Loongson32: Fix PHY-mode being left unspecified
a4121785a3 MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
1ac50c1ad4 drm/panel: simple: Fix innolux_g121i1_l01 bus_format
90fbcb26d6 net: team: Unsync device addresses on ndo_stop
e2b94a1122 net: bonding: Unsync device addresses on ndo_stop
dc209962c0 net: bonding: Share lacpdu_mcast_addr definition
2b9aba0c5d scsi: mpt3sas: Fix return value check of dma_get_required_mask()
e7fafef983 scsi: mpt3sas: Force PCIe scatterlist allocations to be within same 4 GB region
351f2d2c35 net: phy: aquantia: wait for the suspend/resume operations to finish
d298fc2eef net: core: fix flow symmetric hash
e90001e1dd net: let flow have same hash in two directions
ab4a733874 ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
14446a1bc2 iavf: Fix cached head and tail value for iavf_get_tx_pending
5d75fef3e6 netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
9a5d7e0acb netfilter: nf_conntrack_irc: Tighten matching on DCC message
369ec4dab0 netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
66f9470ffe arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
aa11dae059 dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get()
1cc871fe6d arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
3ca272b231 drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks
39f97714f3 arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
dce4662869 xfs: validate inode fork size against fork format
a6bfdc157f xfs: reorder iunlink remove operation in xfs_ifree
e811a534ec xfs: fix up non-directory creation in SGID directories
4e74179a16 interconnect: qcom: icc-rpmh: Add BCMs to commit list in pre_aggregate
a60babeb60 KVM: SEV: add cache flush to solve SEV cache incoherency issues
379ac7905f mm/slub: fix to return errno if kmalloc() fails
fa57bb9b1a can: flexcan: flexcan_mailbox_read() fix return value for drop = true
12fda27a41 riscv: fix a nasty sigreturn bug...
657803b918 gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully
bdea98b98f gpio: mockup: fix NULL pointer dereference when removing debugfs
bd5958ccfc wifi: mt76: fix reading current per-tid starting sequence number for aggregation
85f9a2d51e efi: libstub: check Shim mode using MokSBStateRT
3490ebe435 efi: x86: Wipe setup_data on pure EFI boot
c5ee36018d media: flexcop-usb: fix endpoint type check
0d99b180ce iommu/vt-d: Check correct capability for sagaw determination
213cdb2901 ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
10c7e52d95 ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
4cd84a9518 ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
2f7cad4ecd ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
62ce31979f ALSA: hda/realtek: Re-arrange quirk table entries
d4bad13828 ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop
62b0824c2c ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
c78bce842d ALSA: hda: add Intel 5 Series / 3400 PCI DID
f109dd1607 ALSA: hda/tegra: set depop delay for tegra
a1926f11d9 USB: serial: option: add Quectel RM520N
4d1d91a634 USB: serial: option: add Quectel BG95 0x0203 composition
3a26651a78 USB: core: Fix RST error in hub.c
381f77b6a6 arm64/bti: Disable in kernel BTI when cross section thunks are broken
050de28980 arm64: Restrict ARM64_BTI_KERNEL to clang 12.0.0 and newer
561d86bd0e Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
578d644edc vfio/type1: Unpin zero pages
abb560abdf vfio/type1: Prepare for batched pinning with struct vfio_batch
38cb9b8683 vfio/type1: Change success value of vaddr_get_pfn()
c4adbfa9ce Revert "usb: add quirks for Lenovo OneLink+ Dock"
905e8be528 usb: cdns3: fix issue with rearming ISO OUT endpoint
8fcb5f027b usb: cdns3: fix incorrect handling TRB_SMM flag for ISOC transfer
f457bb2198 usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
b9e5c47e33 usb: add quirks for Lenovo OneLink+ Dock
345bdea212 tty: serial: atmel: Preserve previous USART mode if RS485 disabled
730f78c51b serial: atmel: remove redundant assignment in rs485_config
b3f2adf426 mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure
7780b3dda2 usb: xhci-mtk: relax TT periodic bandwidth allocation
99f48a3a6e usb: xhci-mtk: allow multiple Start-Split in a microframe
b19f9f4122 usb: xhci-mtk: add some schedule error number
402fa9214e usb: xhci-mtk: add a function to (un)load bandwidth info
c2e7000b13 usb: xhci-mtk: use @sch_tt to check whether need do TT schedule
a2566a8dc5 usb: xhci-mtk: add only one extra CS for FS/LS INTR
b1e11bc66c usb: xhci-mtk: get the microframe boundary for ESIT
9c28189bb6 usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
ff23c7277f usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
ab046365c9 usb: dwc3: gadget: Refactor pullup()
db27874477 usb: dwc3: gadget: Prevent repeat pullup()
6bd182beef usb: dwc3: Issue core soft reset before enabling run/stop
b83692feb0 usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
2a358ad19c usb: typec: intel_pmc_mux: Add new ACPI ID for Meteor Lake IOM device
c267bb8334 usb: typec: intel_pmc_mux: Update IOM port status offset for AlderLake
7b0db849ea drm/amdgpu: make sure to init common IP before gmc
9d18013dac drm/amdgpu: Separate vf2pf work item init from virt data exchange
87a4e51fb8 drm/amdgpu: indirect register access for nv12 sriov
9f55f36f74 drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega
ef2aee5cec Merge 5.10.145 into android12-5.10-lts
4a77e6ef20 Linux 5.10.145
ca5539d421 ALSA: hda/sigmatel: Fix unused variable warning for beep power change
9f267393b0 cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
06e194e113 video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
3fefe614ed mksysmap: Fix the mismatch of 'L0' symbols in System.map
3e6d2eff56 MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
72602bc620 afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
517a0324db net: usb: qmi_wwan: add Quectel RM520N
a36fd2d8d6 ALSA: hda/tegra: Align BDL entry to 4KB boundary
e41b97a277 ALSA: hda/sigmatel: Keep power up while beep is enabled
b95a5ef4c0 wifi: mac80211_hwsim: check length for virtio packets
c505fee07b rxrpc: Fix calc of resend age
35da670ed1 rxrpc: Fix local destruction being repeated
891d5c46f2 regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe()
c2ef959e33 ASoC: nau8824: Fix semaphore unbalance at error paths
107c6b6058 Revert "serial: 8250: Fix reporting real baudrate value in c_ospeed field"
e00582a361 video: fbdev: i740fb: Error out if 'pixclock' equals zero
f63ddf62d0 tools/include/uapi: Fix <asm/errno.h> for parisc and xtensa
331eba80cb cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
f3fbd08e7c cifs: revalidate mapping when doing direct writes
a9398cb81c of/device: Fix up of_dma_configure_id() stub
6a27acda3d tracing: hold caller_addr to hardirq_{enable,disable}_ip
65dd251c51 parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
1f24b0a7ca drm/meson: Fix OSD1 RGB to YCbCr coefficient
4d3d2e384b drm/meson: Correct OSD1 global alpha value
24196210b1 gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
4d065f8356 NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
2f16f5b582 pinctrl: sunxi: Fix name for A100 R_PIO
ee4369260e of: fdt: fix off-by-one error in unflatten_dt_nodes()
cae6172a94 net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports
4a6c6041e8 platform/x86/intel: hid: add quirk to support Surface Go 3
8faabaf112 usb: cdns3: gadget: fix new urb never complete if ep cancel previous requests
cd226d8c1b powerpc/pseries/mobility: ignore ibm, platform-facilities updates
d5ee5a9e47 powerpc/pseries/mobility: refactor node lookup during DT update
4dbe84b9b6 dmaengine: bestcomm: fix system boot lockups
7bbdf49e26 parisc: Flush kernel data mapping in set_pte_at() when installing pte for user page
b00a56e647 parisc: Optimize per-pagetable spinlocks
59819f0aaf serial: 8250: Fix reporting real baudrate value in c_ospeed field
9230af9188 KVM: PPC: Tick accounting should defer vtime accounting 'til after IRQ handling
6bae475481 KVM: PPC: Book3S HV: Context tracking exit guest context before enabling irqs
7474313da8 Merge 5.10.144 into android12-5.10-lts
3dbfa90b61 Merge 5.10.143 into android12-5.10-lts
51659937e3 Revert "USB: core: Prevent nested device-reset calls"
2e00a2dc61 Revert "xhci: Add grace period after xHC start to prevent premature runtime suspend."
e0f0b200a5 Merge 5.10.142 into android12-5.10-lts
e69a383052 Revert "mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse"
e4a7358455 Revert "io_uring: disable polling pollfree files"
99c2dfe47a Linux 5.10.144
744f98f71d Input: goodix - add compatible string for GT1158
c7f4c203d1 soc: fsl: select FSL_GUTS driver for DPIO
35371fd688 x86/ftrace: Use alternative RET encoding
4586df06a0 x86/ibt,ftrace: Make function-graph play nice
33015556a9 Revert "x86/ftrace: Use alternative RET encoding"
891f03f688 mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
dd3aa77d5d usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
5ce017619c platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
fc2c14c2cd perf/arm_pmu_platform: fix tests for platform_get_irq() failure
187908079d drm/amd/amdgpu: skip ucode loading if ucode_size == 0
c598e2704c nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
1cae6f8e17 Input: iforce - add support for Boeder Force Feedback Wheel
de2aa49523 ieee802154: cc2520: add rc code in cc2520_tx()
3815e66c21 gpio: mockup: remove gpio debugfs when remove device
1b8b5384e8 tg3: Disable tg3 device on system reboot to avoid triggering AER
704d1f2ac6 hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
ef033e619e HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
cff2b3a50c drm/msm/rd: Fix FIFO-full deadlock
fac2c299ef Input: goodix - add support for GT1158
218b71e32f tracefs: Only clobber mode/uid/gid on remount if asked
0a81ddfc20 iommu/vt-d: Correctly calculate sagaw value of IOMMU
5ce1b0a0c2 ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible
a381cac2ab ARM: dts: imx: align SPI NOR node name with dtschema
f1101295c1 Linux 5.10.143
71d3adbb28 arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly
202341395c hwmon: (mr75203) enable polling for all VM channels
c9da73ae78 hwmon: (mr75203) fix multi-channel voltage reading
19841592ae hwmon: (mr75203) fix voltage equation for negative source input
8e8dc8fc53 hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors
13521c94b9 hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined
5e17967c7e iommu/amd: use full 64-bit value in build_completion_wait()
1a27425523 swiotlb: avoid potential left shift overflow
586f8c8330 MIPS: loongson32: ls1c: Fix hang during startup
a9453be390 ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion
9dacdc1d47 ASoC: mchp-spdiftx: remove references to mchp_i2s_caps
2ead78fbe6 sch_sfb: Also store skb len before calling child enqueue
d47475d4e5 tcp: fix early ETIMEDOUT after spurious non-SACK RTO
6a2a344844 nvme-tcp: fix regression that causes sporadic requests to time out
5914fa32ef nvme-tcp: fix UAF when detecting digest errors
a00b1b10e0 RDMA/mlx5: Set local port to one when accessing counters
e8de6cb575 IB/core: Fix a nested dead lock as part of ODP flow
076f2479fc ipv6: sr: fix out-of-bounds read when setting HMAC data.
047e66867e RDMA/siw: Pass a pointer to virt_to_page()
0f1e7977e1 xen-netback: only remove 'hotplug-status' when the vif is actually destroyed
342d77769a i40e: Fix kernel crash during module removal
9d11d06e50 ice: use bitmap_free instead of devm_kfree
22922da737 tipc: fix shift wrapping bug in map_get()
2ee85ac1b2 sch_sfb: Don't assume the skb is still around after enqueueing to child
63677a0923 afs: Use the operation issue time instead of the reply time for callbacks
fbbd5d05ea rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
6ccbb74801 ALSA: usb-audio: Register card again for iface over delayed_register option
1d29a63585 ALSA: usb-audio: Inform the delayed registration more properly
e12ce30fe5 netfilter: nf_conntrack_irc: Fix forged IP logic
910891a2a4 netfilter: nf_tables: clean up hook list when offload flags check fails
908180f633 netfilter: br_netfilter: Drop dst references before setting.
7d29f2bdd1 ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time
0796953300 ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time
360dd120eb ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges
6bbef2694a ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges
e198c08570 RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift
b2e82e325a RDMA/hns: Fix supported page size
6dc0251638 soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
e9ea271c2e RDMA/cma: Fix arguments order in net device validation
465eecd2b3 tee: fix compiler warning in tee_shm_register()
75c961d011 regulator: core: Clean up on enable failure
bb4bee3eca ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
015c2ec053 smb3: missing inode locks in punch hole
98127f140b cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl()
dee1e2b18c cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
bfbacc2ef7 cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
a5620d3e0c scsi: lpfc: Add missing destroy_workqueue() in error path
ea10a652ad scsi: mpt3sas: Fix use-after-free warning
de572edecc drm/i915: Implement WaEdpLinkRateDataReload
be01f1c988 nvmet: fix a use-after-free
68f22c80c1 debugfs: add debugfs_lookup_and_remove()
ab60010225 kprobes: Prohibit probes in gate area
6123bec848 ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()
ab730d3c44 ALSA: aloop: Fix random zeros in capture data when using jiffies timer
39a90720f3 ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
dfb27648ee drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
2078e326b6 fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
9d040a629e net/core/skbuff: Check the return value of skb_copy_bits()
43b9af7275 arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level
96d206d0a1 parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
44739b5aae parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
826b46fd59 drm/radeon: add a force flush to delay work when radeon
0410256867 drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
c19656cd95 drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to psp_hw_fini
67bf86ff81 drm/gem: Fix GEM handle release errors
a175aed83e scsi: megaraid_sas: Fix double kfree()
004e26ef05 scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX
a14f1799ce Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
13c8f561be fs: only do a memory barrier for the first set_buffer_uptodate()
2946d2ae5a wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd()
918d9c4a4b efi: capsule-loader: Fix use-after-free in efi_capsule_write
94f0f30b2d efi: libstub: Disable struct randomization
eb75efdec8 tty: n_gsm: avoid call of sleeping functions from atomic context
fb6cadd2a3 tty: n_gsm: initialize more members at gsm_alloc_mux()
186cb020bd xen-blkfront: Cache feature_persistent value before advertisement
d3d885507b NFSD: Fix verifier returned in stable WRITEs
281e81a5e2 Linux 5.10.142
2058aab4e3 USB: serial: ch341: fix disabled rx timer on older devices
2a4c619a87 USB: serial: ch341: fix lost character on LCR updates
06a84bda0a usb: dwc3: disable USB core PHY management
451fa90150 usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
8984ca41de usb: dwc3: fix PHY disable sequence
cb27189360 mmc: core: Fix UHS-I SD 1.8V workaround branch
7f73a9dea0 btrfs: harden identification of a stale device
3c63a22d02 drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
1079d09572 ALSA: seq: Fix data-race at module auto-loading
f19a209f61 ALSA: seq: oss: Fix data-race for max_midi_devs access
7565c15030 ALSA: hda/realtek: Add speaker AMP init for Samsung laptops with ALC298
ab9f890377 net: mac802154: Fix a condition in the receive path
d71a1c9fce net: Use u64_stats_fetch_begin_irq() for stats fetch.
685f4e5671 ip: fix triggering of 'icmp redirect'
4abc8c07a0 wifi: mac80211: Fix UAF in ieee80211_scan_rx()
dd649b4921 wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
742e222dd5 driver core: Don't probe devices after bus_type.match() probe deferral
6202637fde usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
abe3cfb7a7 USB: core: Prevent nested device-reset calls
b0d4993c4b s390: fix nospec table alignments
0361d50e86 s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
b9097c5e10 usb-storage: Add ignore-residue quirk for NXP PN7462AU
5f0d11796a USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
d608c131df usb: dwc2: fix wrong order of phy_power_on and phy_init
95791d51f7 usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
89b01a88ef USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
7f1f176715 USB: serial: option: add Quectel EM060K modem
efcc3e1e6a USB: serial: option: add support for OPPO R11 diag port
e547c07c28 USB: serial: cp210x: add Decagon UCA device id
5a603f4c12 xhci: Add grace period after xHC start to prevent premature runtime suspend.
587f793c64 media: mceusb: Use new usb_control_msg_*() routines
07fb6b10b6 thunderbolt: Use the actual buffer in tb_async_error()
f210912d1a xen-blkfront: Advertise feature-persistent as user requested
aa45c50703 xen-blkback: Advertise feature-persistent as user requested
47a73e5e6b mm: pagewalk: Fix race between unmap and page walker
5d0d46e625 xen/grants: prevent integer overflow in gnttab_dma_alloc_pages()
eb0c614c42 KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES
7efcbac55a gpio: pca953x: Add mutex_lock for regcache sync in PM
517dba7987 hwmon: (gpio-fan) Fix array out of bounds access
a971343557 clk: bcm: rpi: Add missing newline
fcae47b2d2 clk: bcm: rpi: Prevent out-of-bounds access
8c90a3e0d3 clk: bcm: rpi: Use correct order for the parameters of devm_kcalloc()
00d8bc0c16 clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
e32982115d Input: rk805-pwrkey - fix module autoloading
e2945f936c clk: core: Fix runtime PM sequence in clk_core_unprepare()
4ff599df31 Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
c0f0ed9ef9 clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
5f1aee7f05 drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
9629f2dfdb binder: fix UAF of ref->proc caused by race condition
08fa8cb6df USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
5cf2a57c7a misc: fastrpc: fix memory corruption on open
c99bc901d5 misc: fastrpc: fix memory corruption on probe
30fd0e23e3 iio: adc: mcp3911: use correct formula for AD conversion
89aa443437 iio: ad7292: Prevent regulator double disable
b271090eea Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
b202400c9c tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete
989201bb8c vt: Clear selection before changing the font
7fd8d33adb powerpc: align syscall table for ppc32
19e3f69d19 staging: rtl8712: fix use after free bugs
6ccd69141b serial: fsl_lpuart: RS485 RTS polariy is inverse
e416fe7f16 net/smc: Remove redundant refcount increase
d73b89c3b3 Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
f3d1554d0f tcp: annotate data-race around challenge_timestamp
870b6a1561 sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
1b6666964c kcm: fix strp_init() order and cleanup
406d554844 ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
44dfa64589 net/sched: fix netdevice reference leaks in attach_default_qdiscs()
699d82e9a6 net: sched: tbf: don't call qdisc_put() while holding tree lock
c0cb63ee2e Revert "xhci: turn off port power in shutdown"
6855efbaf5 wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
ddcb56e841 ALSA: hda: intel-nhlt: Correct the handling of fmt_config flexible array
9276eb98cd ALSA: hda: intel-nhlt: remove use of __func__ in dev_dbg
23a2993271 ieee802154/adf7242: defer destroy_workqueue call
c5f975e3eb bpf, cgroup: Fix kernel BUG in purge_effective_progs
e6aeb8be85 iio: adc: mcp3911: make use of the sign bit
b69e05b1e8 platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
f040abf62e drm/msm/dsi: Fix number of regulators for SDM660
43e523a407 drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
1487e8fc16 drm/msm/dp: delete DP_RECOVERED_CLOCK_OUT_EN to fix tps4
631fbefd87 drm/msm/dsi: fix the inconsistent indenting
5d60de7a5f Merge 5.10.141 into android12-5.10-lts
0b8e37cbaa Linux 5.10.141
bdc786d737 net: neigh: don't call kfree_skb() under spin_lock_irqsave()
4931af31c4 net/af_packet: check len when min_header_len equals to 0
64f6da455b xfs: revert "xfs: actually bump warning counts when we send warnings"
d34798d846 xfs: fix soft lockup via spinning in filestream ag selection loop
f168801da9 xfs: fix overfilling of reserve pool
72a259bdd5 xfs: always succeed at setting the reserve pool size
cb41f22df3 xfs: remove infinite loop when reserving free block pool
28d8d2737e io_uring: disable polling pollfree files
744b0d3080 kprobes: don't call disarm_kprobe() for disabled kprobes
8c70cce892 lib/vdso: Mark do_hres_timens() and do_coarse_timens() __always_inline()
6ba9e8fb47 netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y
afa169f79d drm/amdgpu: Increase tlb flush timeout for sriov
f08a3712ba drm/amd/display: Fix pixel clock programming
60d522f317 drm/amd/pm: add missing ->fini_microcode interface for Sienna Cichlid
f2b7b8b1c4 s390/hypfs: avoid error message under KVM
c35adafe42 neigh: fix possible DoS due to net iface start/stop loop
3c1dfeaeb3 drm/amd/display: clear optc underflow before turn off odm clock
4e5e67b13a drm/amd/display: For stereo keep "FLIP_ANY_FRAME"
828b2a5399 drm/amd/display: Avoid MPC infinite loop
9d36e2c264 mmc: mtk-sd: Clear interrupts when cqe off/disable
98f401d363 mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
6204bf78b2 bpf: Don't redirect packets with invalid pkt_len
dbd8c8fc60 ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is dead
8fc778ee2f fbdev: fb_pm2fb: Avoid potential divide by zero error
61cc798591 net: fix refcount bug in sk_psock_get (2)
7e2fa79226 HID: hidraw: fix memory leak in hidraw_release()
bacb37bdc2 media: pvrusb2: fix memory leak in pvr_probe
872875c9ec udmabuf: Set the DMA mask for the udmabuf device (v2)
dc81576194 HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
412b844143 Revert "PCI/portdrv: Don't disable AER reporting in get_port_device_capability()"
38267d2663 Bluetooth: L2CAP: Fix build errors in some archs
ad697ade59 kbuild: Fix include path in scripts/Makefile.modpost
b9feeb6100 s390/mm: do not trigger write fault when vma does not allow VM_WRITE
0dea6b3e22 crypto: lib - remove unneeded selection of XOR_BLOCKS
e5796ff9ac x86/nospec: Fix i386 RSB stuffing
adee8f3082 x86/nospec: Unwreck the RSB stuffing
895428ee12 mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
5939035887 Merge 5.10.140 into android12-5.10-lts
18ed766f36 Linux 5.10.140
e897980717 bpf: Don't use tnum_range on array range checking for poke descriptors
46fcb0fc88 scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
8d5c106fe2 scsi: ufs: core: Enable link lost interrupt
c0ba9aa95b perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
5a768c9770 perf python: Fix build when PYTHON_CONFIG is user supplied
3ddbd0907f blk-mq: fix io hung due to missing commit_rqs
7ca73d0a16 Documentation/ABI: Mention retbleed vulnerability info file for sysfs
1896232619 arm64: Fix match_list for erratum 1286807 on Arm Cortex-A76
a5a58fab55 md: call __md_stop_writes in md_stop
f68f025c7e Revert "md-raid: destroy the bitmap after destroying the thread"
62af37c5cd mm/hugetlb: fix hugetlb not supporting softdirty tracking
6de50db104 xen/privcmd: fix error exit of privcmd_ioctl_dm_op()
8d5f8a4f25 ACPI: processor: Remove freq Qos request for all CPUs
297ae7e87a s390: fix double free of GS and RI CBs on fork() failure
c60ae87878 asm-generic: sections: refactor memory_intersects
6858933131 loop: Check for overflow while configuring loop
14cbbb9c99 x86/bugs: Add "unknown" reporting for MMIO Stale Data
e3e0d11729 x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
090f0ac167 perf/x86/lbr: Enable the branch type for the Arch LBR by default
d2bd18d50c btrfs: check if root is readonly while setting security xattr
dcac6293f5 btrfs: add info when mount fails due to stale replace target
b2d352ed4d btrfs: replace: drop assert for suspended replace
2fc3c168d5 btrfs: fix silent failure when deleting root reference
3a351b567e ionic: fix up issues with handling EAGAIN on FW cmds
79e2ca7aa9 rxrpc: Fix locking in rxrpc's sendmsg
c3a6e863d5 ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
23cf93bb32 net: Fix a data-race around sysctl_somaxconn.
9fcc4f4066 net: Fix data-races around sysctl_devconf_inherit_init_net.
371a3bcf31 net: Fix data-races around sysctl_fb_tunnels_only_for_init_net.
c3bda708e9 net: Fix a data-race around netdev_budget_usecs.
12a34d7f04 net: Fix a data-race around netdev_budget.
410c88314c net: Fix a data-race around sysctl_net_busy_read.
2c7dae6c45 net: Fix a data-race around sysctl_net_busy_poll.
8db070463e net: Fix a data-race around sysctl_tstamp_allow_data.
ed48223f87 net: Fix data-races around sysctl_optmem_max.
27e8ade792 bpf: Folding omem_charge() into sk_storage_charge()
4d4e39245d ratelimit: Fix data-races in ___ratelimit().
e73009ebc1 net: Fix data-races around netdev_tstamp_prequeue.
3850060352 net: Fix data-races around netdev_max_backlog.
b498a1b017 net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
fb442c72db net: Fix data-races around sysctl_[rw]mem_(max|default).
613fd02620 net: Fix data-races around sysctl_[rw]mem(_offset)?.
e73a29554f tcp: tweak len/truesize ratio for coalesce candidates
c08a104a8b netfilter: nf_tables: disallow binding to already bound chain
6301a73bd8 netfilter: nf_tables: disallow jump to implicit chain from set element
9882768759 netfilter: nf_tables: upfront validation of data via nft_data_init()
8790eecdea netfilter: bitwise: improve error goto labels
2267d38520 netfilter: nft_cmp: optimize comparison for 16-bytes
1d7d74a824 netfilter: nf_tables: consolidate rule verdict trace call
cd962806c4 netfilter: nftables: remove redundant assignment of variable err
35519ce7ba netfilter: nft_tunnel: restrict it to netdev family
9a67c2c89c netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
c907dfe4ea netfilter: nf_tables: do not leave chain stats enabled on error
ea358cfc8e netfilter: nft_payload: do not truncate csum_offset and csum_type
93a46d6c72 netfilter: nft_payload: report ERANGE for too long offset and length
e0f8cf0192 bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
624c305212 netfilter: ebtables: reject blobs that don't provide all entry points
f82a6b85e0 net: ipvtap - add __init/__exit annotations to module init/exit funcs
7e7e88e8b5 bonding: 802.3ad: fix no transmission of LACPDUs
14ef913a95 net: moxa: get rid of asymmetry in DMA mapping/unmapping
faa8bf8451 net: ipa: don't assume SMEM is page-aligned
29accb2d96 net/mlx5e: Properly disable vlan strip on non-UL reps
1bfdcde723 ice: xsk: prohibit usage of non-balanced queue id
d29d7108e1 ice: xsk: Force rings to be sized to power of 2
50403ee6da nfc: pn533: Fix use-after-free bugs caused by pn532_cmd_timeout
de3deadd11 rose: check NULL rose_loopback_neigh->loopback
e9fe1283a8 mm/smaps: don't access young/dirty bit if pte unpresent
c7c77185fa mm/huge_memory.c: use helper function migration_entry_to_page()
8be096f018 SUNRPC: RPC level errors should set task->tk_rpc_status
5e49ea0998 NFSv4.2 fix problems with __nfs42_ssc_open
23c6f25a60 NFS: Don't allocate nfs_fattr on the stack in __nfs42_ssc_open()
2761612bcd xfrm: policy: fix metadata dst->dev xmit null pointer dereference
c5c4d4c980 af_key: Do not call xfrm_probe_algs in parallel
4379a10c1d xfrm: clone missing x->lastused in xfrm_do_migrate
1305d7d4f3 xfrm: fix refcount leak in __xfrm_policy_check()
c30c0f7205 kernel/sched: Remove dl_boosted flag comment
70d560e2fb xfs: only bother with sync_filesystem during readonly remount
37837bc3ef xfs: return errors in xfs_fs_sync_fs
76a51e49da vfs: make sync_filesystem return errors from ->sync_fs
9255a42fe7 fs: remove __sync_filesystem
1b9b4139d7 xfs: reject crazy array sizes being fed to XFS_IOC_GETBMAP*
6a564bad3a xfs: prevent a WARN_ONCE() in xfs_ioc_attr_list()
a5757df612 pinctrl: amd: Don't save/restore interrupt status and wake status bits
665433b5dd kernel/sys_ni: add compat entry for fadvise64_64
df1d445e7f parisc: Fix exception handler for fldw and fstw instructions
e10bb2f2e9 audit: fix potential double free on error path from fsnotify_add_inode_mark
44cde61acc Merge 5.10.139 into android12-5.10-lts
7a3ca8147f Revert "ALSA: control: Use deferred fasync helper"
5597d5439f Merge 5.10.138 into android12-5.10-lts
1e247e4040 Revert "block: remove the request_queue to argument request based tracepoints"
33d6fea819 Revert "blktrace: Trace remapped requests correctly"
eb5eb075d8 Revert "USB: HCD: Fix URB giveback issue in tasklet function"
fbe6a13851 Merge 5.10.137 into android12-5.10-lts
665ee74607 Linux 5.10.139
37c7f25fe2 kbuild: dummy-tools: avoid tmpdir leak in dummy gcc
fa3303d70b Linux 5.10.138
606fe84a41 tee: fix memory leak in tee_shm_register()
3527e3cbb8 bpf: Fix KASAN use-after-free Read in compute_effective_progs
4f7286422a qrtr: Convert qrtr_ports from IDR to XArray
1daa7629d2 PCI/ERR: Retain status from error notification
a220ff3433 can: j1939: j1939_session_destroy(): fix memory leak of skbs
05b9b0a7a7 can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once()
184e73f12c tracing/probes: Have kprobes and uprobes use $COMM too
3debec96ca netfilter: nf_tables: fix audit memory leak in nf_tables_commit
f3d0db3b43 netfilter: nftables: fix a warning message in nf_tables_commit_audit_collect()
059f47b3a4 MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
4b20c61365 video: fbdev: i740fb: Check the argument of i740_calc_vclk()
dac28dff90 powerpc/64: Init jump labels before parse_early_param()
52a408548a smb3: check xattr value length earlier
336936f72a f2fs: fix to do sanity check on segment type in build_sit_entries()
800ba89791 f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
857ccedcf5 ALSA: control: Use deferred fasync helper
658bc550a4 ALSA: timer: Use deferred fasync helper
be094c417a ALSA: core: Add async signal helpers
6ed3e280c7 powerpc/32: Don't always pass -mcpu=powerpc to the compiler
63671b2bdf watchdog: export lockup_detector_reconfigure
399d245775 RISC-V: Add fast call path of crash_kexec()
d881c98d0a riscv: mmap with PROT_WRITE but no PROT_READ is invalid
333bdb72be modules: Ensure natural alignment for .altinstructions and __bug_table sections
1e39037e44 mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
5e034e03f4 vfio: Clear the caps->buf to NULL after free
81939c4fbc tty: serial: Fix refcount leak bug in ucc_uart.c
58275db3c7 lib/list_debug.c: Detect uninitialized lists
8028888329 ext4: avoid resizing to a partial cluster size
285447b819 ext4: avoid remove directory when directory is corrupted
5d8325fd15 drivers:md:fix a potential use-after-free bug
534e96302a nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
6d7aabdba6 md: Notify sysfs sync_completed in md_reap_sync_thread()
f43a72d4da dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
b30aa4ff11 selftests/kprobe: Do not test for GRP/ without event failures
fa45327d8c csky/kprobe: reclaim insn_slot on kprobe unregistration
18f62a453b RDMA/rxe: Limit the number of calls to each tasklet
9a6178c225 um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
e4c9f16219 PCI/ACPI: Guard ARM64-specific mcfg_quirks
4be138bcd6 cxl: Fix a memory leak in an error handling path
84d94619c7 pinctrl: intel: Check against matching data instead of ACPI companion
9ac14f973c gadgetfs: ep_io - wait until IRQ finishes
c29a4baaad scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input
eb01065fd3 clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description
56a4bccab9 zram: do not lookup algorithm in backends table
09c90f89b2 uacce: Handle parent device removal or parent driver module rmmod
6b90ab9524 clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
eddb352a80 vboxguest: Do not use devm for irq
9a87f33f1d usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch
9790a5a4f0 usb: renesas: Fix refcount leak bug
cb5dd65e88 usb: host: ohci-ppc-of: Fix refcount leak bug
d86c6447ee clk: ti: Stop using legacy clkctrl names for omap4 and 5
152c94c10b drm/meson: Fix overflow implicit truncation warnings
da6b37983a irqchip/tegra: Fix overflow implicit truncation warnings
24304c6f9c usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info
6d7ac60098 usb: cdns3 fix use-after-free at workaround 2
0a0da5ef5b platform/chrome: cros_ec_proto: don't show MKBP version if unsupported
e2ab7afe66 PCI: Add ACS quirk for Broadcom BCM5750x NICs
a1e7908f78 drm/sun4i: dsi: Prevent underflow when computing packet sizes
bd6165b802 netfilter: add helper function to set up the nfnetlink header and use it
06fde3cd0b netfilter: nftables: add helper function to set the base sequence number
e2a49009ba audit: log nftables configuration change events once per table
3aa710e967 drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
1bfdb1912c ASoC: SOF: intel: move sof_intel_dsp_desc() forward
823280a8fb locking/atomic: Make test_and_*_bit() ordered on failure
0bd35968bc gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
9112826f28 kbuild: fix the modules order between drivers and libs
0f516dcd14 igb: Add lock to avoid data race
02f3642d8e stmmac: intel: Add a missing clk_disable_unprepare() call in intel_eth_pci_remove()
efae1735ff fec: Fix timer capture timing in `fec_ptp_enable_pps()`
668f38fb9a i40e: Fix to stop tx_timeout recovery if GLOBR fails
bbd6723d75 regulator: pca9450: Remove restrictions for regulator-name
b5ba5c3669 i2c: imx: Make sure to unregister adapter on remove()
19cb691faf ice: Ignore EEXIST when setting promisc mode
7983e1e44c net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions()
83411c9f05 net: genl: fix error path memory leak in policy dumping
af1748ee51 net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters
9900af65f2 net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
7d51385ae0 net: moxa: pass pdev instead of ndev to DMA functions
92dc64e8f5 net: dsa: mv88e6060: prevent crash on an unused port
aa16c8c4e8 spi: meson-spicc: add local pow2 clock ops to preserve rate between messages
a868f771ee powerpc/pci: Fix get_phb_number() locking
3561f4d12f netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified
01b0cae6b7 netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT flag
8d2fe4b9ed netfilter: nf_tables: really skip inactive sets when allocating name
330f0a552b ASoC: tas2770: Fix handling of mute/unmute
353cc4cb97 ASoC: tas2770: Drop conflicting set_bias_level power setting
dffe1c4780 ASoC: tas2770: Allow mono streams
fc57e3fde2 ASoC: tas2770: Set correct FSYNC polarity
4fe80492d5 iavf: Fix adminq error handling
63684e467b nios2: add force_successful_syscall_return()
600ff4b13b nios2: restarts apply only to the first sigframe we build...
f20bc59ccf nios2: fix syscall restart checks
8d0118a027 nios2: traced syscall does need to check the syscall number
1d2c89dc48 nios2: don't leave NULLs in sys_call_table[]
d29cdf865a nios2: page fault et.al. are *not* restartable syscalls...
76be981882 dpaa2-eth: trace the allocated address instead of page struct
787511c768 perf probe: Fix an error handling path in 'parse_perf_probe_command()'
2c746ec91d geneve: fix TOS inheriting for ipv4
a0ae122e9a atm: idt77252: fix use-after-free bugs caused by tst_timer
291cba960b xen/xenbus: fix return type in xenbus_file_read()
3c555a0599 nfp: ethtool: fix the display error of `ethtool -m DEVNAME`
76f3b97e56 NTB: ntb_tool: uninitialized heap data in tool_fn_write()
7ef9f0efbe tools build: Switch to new openssl API for test-libcrypto
7ef0645ebe kbuild: dummy-tools: avoid tmpdir leak in dummy gcc
aee18421bd ceph: don't leak snap_rwsem in handle_cap_grant
eea0d84a4f tools/vm/slabinfo: use alphabetic order when two values are equal
97cea2cb7c ceph: use correct index when encoding client supported features
7a327285a7 dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources
87c4b359e3 dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
55fdefcb52 vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
38ddccbda5 vsock: Fix memory leak in vsock_connect()
549822e0dc plip: avoid rcu debug splat
0c4542cb6a ipv6: do not use RT_TOS for IPv6 flowlabel
38b83883ce geneve: do not use RT_TOS for IPv6 flowlabel
b0c3eec4ac ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
cc0bfd933c pinctrl: qcom: sm8250: Fix PDC map
d35d9bba29 pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
e8f5699a82 pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
78d0510389 pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
ab2b55bb25 net: bgmac: Fix a BUG triggered by wrong bytes_compl
0e28678a77 devlink: Fix use-after-free after a failed reload
faafa2a87f virtio_net: fix memory leak inside XPD_TX with mergeable
fd70ebf299 SUNRPC: Reinitialise the backchannel request buffers before reuse
59d2e8fa41 sunrpc: fix expiry of auth creds
df60c534d4 net: atlantic: fix aq_vec index out of range error
cc25abcec8 can: mcp251x: Fix race condition on receive interrupt
b9d9cf88c8 bpf: Check the validity of max_rdwr_access for sock local storage map iterator
f7d844df5e bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator
d7ad7e65aa bpf: Acquire map uref in .init_seq_private for sock local storage map iterator
bda6fe3ea8 bpf: Acquire map uref in .init_seq_private for hash map iterator
30d7198da8 bpf: Acquire map uref in .init_seq_private for array map iterator
76ffd20424 NFSv4/pnfs: Fix a use-after-free bug in open
f2bd1cc1fe NFSv4.1: RECLAIM_COMPLETE must handle EACCES
cfde64bd31 NFSv4: Fix races in the legacy idmapper upcall
060c111373 NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
a351a73d90 NFSv4.1: Don't decrease the value of seq_nr_highest_sent
a408f135c4 Documentation: ACPI: EINJ: Fix obsolete example
8aab429558 apparmor: Fix memleak in aa_simple_write_to_buffer()
2ceeb3296e apparmor: fix reference count leak in aa_pivotroot()
2672f3eb7a apparmor: fix overlapping attachment computation
1ac89741a2 apparmor: fix setting unconfined mode on a loaded profile
4188f91c82 apparmor: fix aa_label_asxprint return check
e0ca0156a7 apparmor: Fix failed mount permission check error message
08f8128bc9 apparmor: fix absroot causing audited secids to begin with =
bca03f0bbc apparmor: fix quiet_denied for file rules
2b74344135 can: ems_usb: fix clang's -Wunaligned-access warning
7f06c78211 ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II
5d3b02b80d tracing: Have filter accept "common_cpu" to be consistent
6359850f9d btrfs: fix lost error handling when looking up extended ref on log replay
79895cefa4 mmc: meson-gx: Fix an error handling path in meson_mmc_probe()
13a497c3c5 mmc: pxamci: Fix an error handling path in pxamci_probe()
4a211dd485 mmc: pxamci: Fix another error handling path in pxamci_probe()
a785d84178 ata: libata-eh: Add missing command name
fb1857c2e4 rds: add missing barrier to release_refill
6876b4804b x86/mm: Use proper mask when setting PUD mapping
b68e40b52f ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU
e14e2fec35 ALSA: info: Fix llseek return value when using callback
a634d58881 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
74ded189e5 Linux 5.10.137
fb4e220e1b btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
1e1a039f44 btrfs: only write the sectors in the vertical stripe which has data stripes
8f317cd888 sched/fair: Fix fault in reweight_entity
aa318d35be net_sched: cls_route: disallow handle of 0
5a2a00b604 net/9p: Initialize the iounit field during fid creation
578c349570 tee: add overflow check in register_shm_helper()
98b20e1612 kvm: x86/pmu: Fix the compare function used by the pmu event filter
705dfc4575 mtd: rawnand: arasan: Prevent an unsupported configuration
c898e917d8 Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
e81046da1d Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"
a60996dc02 drm/vc4: change vc4_dma_range_matches from a global to static
3422e24af9 drm/bridge: tc358767: Fix (e)DP bridge endpoint parsing in dedicated function
2223b35c57 Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv"
8338305317 tcp: fix over estimation in sk_forced_mem_schedule()
c35c01a7cb mac80211: fix a memory leak where sta_info is not freed
ac7de8c2ba KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast()
4c85e207c1 KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
a4c94205ba KVM: Add infrastructure and macro to mark VM as bugged
7018f03d97 net_sched: cls_route: remove from list when handle is 0
49dba30638 dm raid: fix address sanitizer warning in raid_status
c2d47bef93 dm raid: fix address sanitizer warning in raid_resume
d0b495aa26 ext4: correct the misjudgment in ext4_iget_extra_inode
603fb7bd74 ext4: correct max_inline_xattr_value_size computing
e8c747496f ext4: fix extent status tree race in writeback error recovery path
ac8cc06114 ext4: update s_overhead_clusters in the superblock during an on-line resize
bb8592efcf ext4: fix use-after-free in ext4_xattr_set_entry
69d1a36eb4 ext4: make sure ext4_append() always allocates new block
e1682c7171 ext4: fix warning in ext4_iomap_begin as race between bmap and write
2da44a2927 ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
1571c46130 ext4: check if directory block is within i_size
e99da0f921 tracing: Use a struct alignof to determine trace event field alignment
35508b60b5 tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
0e48eaf75d KEYS: asymmetric: enforce SM2 signature use pkey algo
135d9e0710 xen-blkfront: Apply 'feature_persistent' parameter when connect
d4fb08e5a4 xen-blkback: Apply 'feature_persistent' parameter when connect
9e84088452 xen-blkback: fix persistent grants negotiation
b788508a09 KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesn't support global_ctrl
6b4addec2f KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU
46ec3d8e90 KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter
2ba1feb143 KVM: x86/pmu: Use different raw event masks for AMD and Intel
4bbfc055d3 KVM: x86/pmu: Use binary search to check filtered events
441726394e KVM: x86/pmu: preserve IA32_PERF_CAPABILITIES across CPUID refresh
a7d0b21c6b KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4
c72a9b1d0d KVM: x86: Move vendor CR4 validity check to dedicated kvm_x86_ops hook
2f04a04d06 KVM: SVM: Drop VMXE check from svm_set_cr4()
da7f731f2e KVM: VMX: Drop explicit 'nested' check from vmx_set_cr4()
8b8b376903 KVM: VMX: Drop guest CPUID check for VMXE in vmx_set_cr4()
5f3c8352cc ACPI: CPPC: Do not prevent CPPC from working in the future
40d28ae576 btrfs: reset block group chunk force if we have to wait
e2f1507303 btrfs: reject log replay if there is unsupported RO compat flag
b58294ce1a um: Allow PM with suspend-to-idle
c6cf21d8d5 timekeeping: contribute wall clock to rng on time change
5e2cf70515 dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
539c20ad26 kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
782e73acdb dm writecache: set a default MAX_WRITEBACK_JOBS
e41b3b8831 serial: 8250: Fold EndRun device support into OxSemi Tornado code
194dc559e6 serial: 8250_pci: Replace dev_*() by pci_*() macros
297e2fd08a serial: 8250_pci: Refactor the loop in pci_ite887x_init()
3110e5a49b serial: 8250: Correct the clock for OxSemi PCIe devices
3e9baedb32 serial: 8250: Dissociate 4MHz Titan ports from Oxford ports
85d6306a87 PCI/AER: Iterate over error counters instead of error strings
d83d886e69 PCI/ERR: Recover from RCEC AER errors
bb6990fd37 PCI/ERR: Add pci_walk_bridge() to pcie_do_recovery()
7730ba6151 PCI/ERR: Avoid negated conditional for clarity
078d79fad5 PCI/ERR: Use "bridge" for clarity in pcie_do_recovery()
2e3458b995 PCI/ERR: Simplify by computing pci_pcie_type() once
f236fa3850 PCI/ERR: Simplify by using pci_upstream_bridge()
de4534ac28 PCI/ERR: Rename reset_link() to reset_subordinates()
78d431e8a5 PCI/ERR: Bind RCEC devices to the Root Port driver
dce8d7427c PCI/AER: Write AER Capability only when we control it
5659efdadf iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
e7ccee2f09 KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS)
f5385a590d KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors
6a84dae3a7 intel_th: pci: Add Raptor Lake-S CPU support
581f7eb8ae intel_th: pci: Add Raptor Lake-S PCH support
36f5ddde67 intel_th: pci: Add Meteor Lake-P support
08272646cd firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
bc945ca496 usbnet: smsc95xx: Avoid link settings race on interrupt reception
e9733561e9 usbnet: smsc95xx: Don't clear read-only PHY interrupt
04c9d23ac3 mtd: rawnand: arasan: Fix clock rate in NV-DDR
dc0e4a10b4 mtd: rawnand: arasan: Support NV-DDR interface
87d1266b4c mtd: rawnand: arasan: Fix a macro parameter
d4f7bcce90 mtd: rawnand: Add NV-DDR timings
72fae7e7f7 mtd: rawnand: arasan: Check the proposed data interface is supported
c91e5215a4 mtd: rawnand: Add a helper to clarify the interface configuration
ae1e2bc7bf drm/vc4: drv: Adopt the dma configuration from the HVS or V3D component
fe695a2b46 HID: hid-input: add Surface Go battery quirk
434c4aad53 HID: Ignore battery for Elan touchscreen on HP Spectre X360 15-df0xxx
2d05cf1069 drm/mediatek: Keep dsi as LP00 before dcs cmds transfer
3117287578 drm/mediatek: Allow commands to be sent during video mode
a3a85c045a drm/i915/dg1: Update DMC_DEBUG3 register
dd02510fb4 spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
bc8c5b3b3e __follow_mount_rcu(): verify that mount_lock remains unchanged
bda7046d4d Input: gscps2 - check return value of ioremap() in gscps2_probe()
541840859a posix-cpu-timers: Cleanup CPU timers before freeing them during exec
ce19182b43 x86/olpc: fix 'logical not is only applied to the left hand side'
43e059d016 ftrace/x86: Add back ftrace_expected assignment
fd96b61389 x86/bugs: Enable STIBP for IBPB mitigated RETBleed
1118020b3b scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests
912408ba0b scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os
82cb0ebe5b scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
7941ca578c scsi: qla2xxx: Turn off multi-queue for 8G adapters
2ffe5285ea scsi: qla2xxx: Fix discovery issues in FC-AL topology
b8aad5eba7 scsi: zfcp: Fix missing auto port scan and thus missing target ports
5e0da18956 video: fbdev: s3fb: Check the size of screen before memset_io()
09e733d6ac video: fbdev: arkfb: Check the size of screen before memset_io()
bd8269e576 video: fbdev: vt8623fb: Check the size of screen before memset_io()
a9943942a5 x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y
e6c228b950 sched: Fix the check of nr_running at queue wakelist
bd1ebcbbf0 tools/thermal: Fix possible path truncations
0288fa799e video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
94398c1fec x86/numa: Use cpumask_available instead of hardcoded NULL check
336626564b sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed
0039189a3b sched/deadline: Merge dl_task_can_attach() and dl_cpu_busy()
e695256d46 scripts/faddr2line: Fix vmlinux detection on arm64
232f4aca40 genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
cadeb5186e powerpc/pci: Fix PHB numbering when using opal-phbid
2a49b025c3 kprobes: Forbid probing on trampoline and BPF code areas
4296089f61 perf symbol: Fail to read phdr workaround
00dc7cbbb5 powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
6d1e53f7f1 powerpc/xive: Fix refcount leak in xive_get_max_prio
85aff6a9b7 powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
50e7896c8e f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time
ec769406d0 f2fs: write checkpoint during FG_GC
d031105739 f2fs: don't set GC_FAILURE_PIN for background GC
47a8fe1b15 powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias
7ac58a83d8 powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
2d2b6adb22 ASoC: mchp-spdifrx: disable end of block interrupt on failures
ca326aff6b video: fbdev: sis: fix typos in SiS_GetModeID()
da276dc288 video: fbdev: amba-clcd: Fix refcount leak bugs
345208581c watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
d3e6460619 ASoC: audio-graph-card: Add of_node_put() in fail path
92644d505b fuse: Remove the control interface for virtio-fs
60e494b4d5 ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
5682b4f84a ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format
9c2ad32ed9 s390/zcore: fix race when reading from hardware system area
ae921d176b s390/dump: fix old lowcore virtual vs physical address confusion
b002a71d45 perf tools: Fix dso_id inode generation comparison
2ada6b4a80 iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
afdbadbf18 mfd: max77620: Fix refcount leak in max77620_initialise_fps
52ae9c1599 mfd: t7l66xb: Drop platform disable callback
5a0e3350c2 remoteproc: sysmon: Wait for SSCTL service to come up
3487aa558a lib/smp_processor_id: fix imbalanced instrumentation_end() call
483ad8a16f kfifo: fix kfifo_to_user() return type
9715809b9e rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
0ce20194b4 iommu/exynos: Handle failed IOMMU device registration properly
8fd063a608 tty: n_gsm: fix missing corner cases in gsmld_poll()
01c8094bed tty: n_gsm: fix DM command
6737d4f5f5 tty: n_gsm: fix wrong T1 retry count handling
b16d653bc7 vfio/ccw: Do not change FSM state in subchannel event
db574d3bb6 vfio/mdev: Make to_mdev_device() into a static inline
a2fbf4acd2 vfio: Split creation of a vfio_device into init and register ops
f54fa910e6 vfio: Simplify the lifetime logic for vfio_device
0abdb80e81 vfio: Remove extra put/gets around vfio_device->group
cb83b12320 remoteproc: qcom: wcnss: Fix handling of IRQs
2f735069cd ASoC: qcom: Fix missing of_node_put() in asoc_qcom_lpass_cpu_platform_probe()
273d412177 tty: n_gsm: fix race condition in gsmld_write()
2466486cae tty: n_gsm: fix packet re-transmission without open control channel
34c9fe392d tty: n_gsm: fix non flow control frames during mux flow off
006e9d5a98 tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output()
c45b5d24fe tty: n_gsm: fix user open not possible at responder until initiator open
9e38020f17 tty: n_gsm: Delete gsmtty open SABM frame when config requester
d94a552183 ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to static variables
875b2bf469 powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI check in power_pmu_disable
ba889da9a0 ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header
4046f3ef3b profiling: fix shift too large makes kernel panic
3bf64b9cc6 selftests/livepatch: better synchronize test_klp_callbacks_busy
75358732af remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init
2aa8737d49 rpmsg: mtk_rpmsg: Fix circular locking dependency
1d5fc40382 ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
4181b21418 ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
4b171ac88c serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
d98dd16d3d serial: 8250: Export ICR access helpers for internal use
403d469719 ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
132b2757c5 ASoC: codecs: da7210: add check for i2c_add_driver
a0381a9f3e ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
aa1214ece3 ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
ec0c272b18 ASoC: samsung: Fix error handling in aries_audio_probe
bae95c5aee ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe
e2a4e46f52 opp: Fix error check in dev_pm_opp_attach_genpd()
3b97370322 usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable()
f7161d0da9 jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
a6d7f22473 ext4: recover csum seed of tmp_inode after migrating to extents
914bf4aa2d jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
706960d328 nvme: use command_id instead of req->tag in trace_nvme_complete_rq()
7a4b46784a null_blk: fix ida error handling in null_add_dev()
3ef491b26c RDMA/rxe: Fix error unwind in rxe_create_qp()
53da1f0fa0 RDMA/mlx5: Add missing check for return value in get namespace flow
c0ba87f3e7 selftests: kvm: set rax before vmcall
4ffa6cecb5 mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
de95b52d9a RDMA/srpt: Fix a use-after-free
d14a44cf29 RDMA/srpt: Introduce a reference count in struct srpt_device
204a8486d7 RDMA/srpt: Duplicate port name members
5ba56d9bd0 platform/olpc: Fix uninitialized data in debugfs write
7af83bb516 usb: cdns3: change place of 'priv_ep' assignment in cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable()
a916e80360 USB: serial: fix tty-port initialized comments
b1124a2f47 PCI: tegra194: Fix link up retry sequence
88a694d9c8 PCI: tegra194: Fix Root Port interrupt handling
e2d132ca7f HID: alps: Declare U1_UNICORN_LEGACY support
74e57439e2 mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
3bed7b9811 mmc: cavium-octeon: Add of_node_put() when breaking out of loop
66c8e816f2 HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()
26975d8ea9 gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
a85c7dd1ed RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
9ade92ddaf RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
0ecc91cf96 RDMA/hns: Fix incorrect clearing of interrupt status register
79ce50ddda RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr()
aaa1a81506 RDMA/qedr: Improve error logs for rdma_alloc_tid error return
84f83a2619 RDMA/rtrs-srv: Fix modinfo output for stringify
50a249ad1d RDMA/rtrs: Avoid Wtautological-constant-out-of-range-compare
2b3dcfbece RDMA/rtrs: Define MIN_CHUNK_SIZE
993cd16211 um: random: Don't initialise hwrng struct with zero
a6a7f80e62 interconnect: imx: fix max_node_id
5bcc37dc24 eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write()
4ab5662cc3 usb: dwc3: qcom: fix missing optional irq warnings
d376ca6716 usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup
251572a26d usb: dwc3: core: Deprecate GCTL.CORESOFTRESET
e6db5780c2 usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc()
c818fa991c usb: gadget: udc: amd5536 depends on HAS_DMA
d6d344eeef xtensa: iss: fix handling error cases in iss_net_configure()
fb4c1555f9 xtensa: iss/network: provide release() callback
2fe0b06c16 scsi: smartpqi: Fix DMA direction for RAID requests
7542130af1 PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks
ee70aa214a PCI/portdrv: Don't disable AER reporting in get_port_device_capability()
9d216035d1 KVM: s390: pv: leak the topmost page table when destroy fails
59fd7c0b41 mmc: block: Add single read for 4k sector cards
2985acdaf2 mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
9260a154b3 memstick/ms_block: Fix a memory leak
ae2369ac42 memstick/ms_block: Fix some incorrect memory allocation
b305475df7 mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
028c8632a2 staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
6ae2881c1d intel_th: msu: Fix vmalloced buffers
81222cfda6 intel_th: msu-sink: Potential dereference of null pointer
a8f3b78b1f intel_th: Fix a resource leak in an error handling path
ab3b82435f PCI: endpoint: Don't stop controller when unbinding endpoint function
b9b4992f89 dmaengine: sf-pdma: Add multithread support for a DMA channel
37e1d474a3 dmaengine: sf-pdma: apply proper spinlock flags in sf_pdma_prep_dma_memcpy()
38715a0ccb KVM: arm64: Don't return from void function
fbd7b564f9 soundwire: bus_type: fix remove and shutdown support
ed457b0029 PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists
e7599a5974 PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors
80d9f6541e PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu()
2293b23d27 clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
b28ebe7d2f clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
b83af7b4ec clk: qcom: ipq8074: fix NSS port frequency tables
58023f5291 clk: qcom: ipq8074: SW workaround for UBI32 PLL lock
e2330494f0 clk: qcom: ipq8074: fix NSS core PLL-s
b840c2926d usb: host: xhci: use snprintf() in xhci_decode_trb()
42f1827096 clk: qcom: clk-krait: unlock spin after mux completion
a93f33aeef driver core: fix potential deadlock in __driver_attach
2593f971f0 misc: rtsx: Fix an error handling path in rtsx_pci_probe()
267c5f17a0 dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics
956b79c206 mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv
803526555b mwifiex: Ignore BTCOEX events from the 88W8897 firmware
dceedbb5ab KVM: Don't set Accessed/Dirty bits for ZERO_PAGE
02d203f488 clk: mediatek: reset: Fix written reset bit offset
4f51a09f3d iio: accel: bma400: Reordering of header files
ab831a12c8 platform/chrome: cros_ec: Always expose last resume result
366d0123c3 iio: accel: bma400: Fix the scale min and max macro values
edfa0851d8 netfilter: xtables: Bring SPDX identifier back
9feb3ecd07 usb: xhci: tegra: Fix error check
bb5e59f00f usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()
d35903e965 usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
585d22a562 usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
474f12deaa fpga: altera-pr-ip: fix unsigned comparison with less than zero
175428c86f mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
55d0f7da66 mtd: partitions: Fix refcount leak in parse_redboot_of
b4e150d295 mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
ebda3d6b00 HID: cp2112: prevent a buffer overflow in cp2112_xfer()
cdf92a0aee PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep()
b0e82f95fd mtd: rawnand: meson: Fix a potential double free issue
941ef6997f mtd: maps: Fix refcount leak in ap_flash_init
52ae2b14f7 mtd: maps: Fix refcount leak in of_flash_probe_versatile
6471c83894 clk: renesas: r9a06g032: Fix UART clkgrp bitsel
38c9cc68e3 wireguard: allowedips: don't corrupt stack when detecting overflow
17541a4aab wireguard: ratelimiter: use hrtimer in selftest
aa8f559336 dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
5b69f34dac net: ionic: fix error check for vlan flags in ionic_set_nic_features()
9a070a4417 net: rose: fix netdev reference changes
397e52dec1 netdevsim: Avoid allocation warnings triggered from user space
692751f260 iavf: Fix max_rate limiting
b0d67ef5b4 net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set
1d9c81833d tcp: Fix data-races around sysctl_tcp_l3mdev_accept.
0de9b3f81e ipv6: add READ_ONCE(sk->sk_bound_dev_if) in INET6_MATCH()
b7325b27d8 tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if()
f7884d9500 inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH()
c206177ca8 crypto: hisilicon/sec - fix auth key size error
9524edb1a7 crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
cb62775079 crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq
e6cbd15950 net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
1f7ffdea19 net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS cipher/version
420cf3b781 media: cedrus: hevc: Add check for invalid timestamp
97e5d3e46a wifi: libertas: Fix possible refcount leak in if_usb_probe()
38d71acc15 wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
6c5fee83bd wifi: wil6210: debugfs: fix uninitialized variable use in `wil_write_file_wmi()`
c040a02e4c i2c: mux-gpmux: Add of_node_put() when breaking out of loop
353d55ff1b i2c: cadence: Support PEC for SMBus block read
0c5dbac1ce Bluetooth: hci_intel: Add check for platform_driver_register
a7a7488cb1 can: pch_can: pch_can_error(): initialize errc before using it
4c036be757 can: error: specify the values of data[5..7] of CAN error frames
f0ef21b739 can: usb_8dev: do not report txerr and rxerr during bus-off
ca1a2c5388 can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
9e6ceba6be can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
cddef4bbeb can: sun4i_can: do not report txerr and rxerr during bus-off
22e382d47d can: hi311x: do not report txerr and rxerr during bus-off
06e355b46c can: sja1000: do not report txerr and rxerr during bus-off
6ec509679b can: rcar_can: do not report txerr and rxerr during bus-off
5d85a89875 can: pch_can: do not report txerr and rxerr during bus-off
d2b9e664bb selftests/bpf: fix a test for snprintf() overflow
a06c98c47e wifi: p54: add missing parentheses in p54_flush()
56924fc19d wifi: p54: Fix an error handling path in p54spi_probe()
05ceda14ef wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
36ba389960 fs: check FMODE_LSEEK to control internal pipe splicing
7430e58764 bpf: Fix subprog names in stack traces.
990ca39e78 selftests: timers: clocksource-switch: fix passing errors from child
ee3cc4c761 selftests: timers: valid-adjtimex: build fix for newer toolchains
f29cf37698 libbpf: Fix the name of a reused map
799cfed1b1 tcp: make retransmitted SKB fit into the send window
5713b0be6d drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
9aa4ad5cca mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
3ad958bc48 mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg
b1812f6500 media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
1008c6d98b crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
16e18a8ac7 crypto: hisilicon/sec - don't sleep when in softirq
1f697d7952 crypto: hisilicon/sec - fixes some coding style
bf386c955f drm/msm/mdp5: Fix global state lock backoff
e74f3097a9 net: hinic: avoid kernel hung in hinic_get_stats64()
e286a882f2 net: hinic: fix bug that ethtool get wrong stats
8369a39b52 hinic: Use the bitmap API when applicable
26a10aef28 lib: bitmap: provide devm_bitmap_alloc() and devm_bitmap_zalloc()
1238da5f32 lib: bitmap: order includes alphabetically
7f29d75693 drm: bridge: sii8620: fix possible off-by-one
8bb0be3186 drm/mediatek: dpi: Only enable dpi after the bridge is enabled
c47d69ed56 drm/mediatek: dpi: Remove output format of YUV
fc85cb33f6 drm/rockchip: Fix an error handling path rockchip_dp_probe()
9f416e32ed drm/rockchip: vop: Don't crash for invalid duplicate_state()
e2d2dcab19 selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0
64b1e3f904 crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
2e306d74ad drm/vc4: hdmi: Correct HDMI timing registers for interlaced modes
36f797a10f drm/vc4: hdmi: Fix timings for interlaced modes
717325e814 drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling
c015d12317 drm/vc4: hdmi: Don't access the connector state in reset if kmalloc fails
ba8ffdb450 drm/vc4: hdmi: Avoid full hdmi audio fifo writes
b161b27067 drm/vc4: hdmi: Remove firmware logic for MAI threshold setting
cefc8e7e0e drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable iteration
acfca24ec0 drm/vc4: dsi: Fix dsi0 interrupt support
97c2fa3a7b drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type
6cc1edddcf drm/vc4: dsi: Introduce a variant structure
79374da862 drm/vc4: dsi: Use snprintf for the PHY clocks instead of an array
1f98187a7c drm/vc4: drv: Remove the DSI pointer in vc4_drv
ed2f42bd80 drm/vc4: dsi: Correct pixel order for DSI0
ddf6af3b0b drm/vc4: dsi: Correct DSI divider calculations
f517da5234 drm/vc4: plane: Fix margin calculations for the right/bottom edges
5aec7cb08b drm/vc4: plane: Remove subpixel positioning check
611f86965d media: tw686x: Fix memory leak in tw686x_video_init
7f7336ce35 media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set
bb480bffc1 media: hdpvr: fix error value returns in hdpvr_read
f57699a9b6 drm/mcde: Fix refcount leak in mcde_dsi_bind
6a43236ebc drm: bridge: adv7511: Add check for mipi_dsi_driver_register
87af9b0b45 crypto: ccp - During shutdown, check SEV data pointer before using
5f8a6e8f14 test_bpf: fix incorrect netdev features
45e1dbe5f6 drm/radeon: fix incorrrect SPDX-License-Identifiers
e7d6cac696 wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
eccd7c3e25 ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
918f42ca1d media: tw686x: Register the irq at the end of probe
d45eaf4114 crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs()
81cb317568 i2c: Fix a potential use after free
d0412d8f69 net: fix sk_wmem_schedule() and sk_rmem_schedule() errors
0e70bb9cdb crypto: sun8i-ss - fix error codes in allocate_flows()
e8673fbc10 crypto: sun8i-ss - do not allocate memory when handling hash requests
648b1bb29a drm: adv7511: override i2c address of cec before accessing it
259773fc87 virtio-gpu: fix a missing check to avoid NULL dereference
e28aa4f467 i2c: npcm: Correct slave role behavior
385f6ef4de i2c: npcm: Remove own slave addresses 2:10
5ce9cff371 drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
b54bc0013d drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs
0cb6589885 drm/mediatek: Modify dsi funcs to atomic operations
8508d6d23a drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
ac22537643 ath11k: Fix incorrect debug_mask mappings
648d3c8714 drm/mipi-dbi: align max_chunk to 2 in spi_transfer
a2c45f8c3d ath11k: fix netdev open race
58fd794675 wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
71426d31d0 drm/st7735r: Fix module autoloading for Okaya RH128128T
fd98ccda50 ath10k: do not enforce interrupt trigger type
bcc05372a2 drm/bridge: tc358767: Make sure Refclk clock are enabled
c038b9b733 drm/bridge: tc358767: Move (e)DP bridge endpoint parsing into dedicated function
f312bc33ca pwm: lpc18xx-sct: Convert to devm_platform_ioremap_resource()
6aaac1d924 pwm: sifive: Shut down hardware only after pwmchip_remove() completed
9073dbec88 pwm: sifive: Ensure the clk is enabled exactly once per running PWM
47902de24a pwm: sifive: Simplify offset calculation for PWMCMP registers
6d7f7ffbcd pwm: sifive: Don't check the return code of pwmchip_remove()
b7e2d64d67 dm: return early from dm_pr_call() if DM device is suspended
b3f5cc0cc0 thermal/tools/tmon: Include pthread and time headers in tmon.h
7aa3a25599 selftests/seccomp: Fix compile warning when CC=clang
e06a31e61f nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
298417471e drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX
a1891d3df7 arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment
a7753a260e soc: qcom: Make QCOM_RPMPD depend on PM
332e555dca regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
1ed71e6bce blktrace: Trace remapped requests correctly
1cb3032406 block: remove the request_queue to argument request based tracepoints
d125b13a66 hwmon: (drivetemp) Add module alias
ed6ae23811 blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
0ca556256f erofs: avoid consecutive detection for Highmem memory
8dee22b457 arm64: tegra: Fix SDMMC1 CD on P2888
a1e2386909 arm64: dts: mt7622: fix BPI-R64 WPS button
7eafa9a1aa bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
7fcf4401d5 ARM: dts: qcom: pm8841: add required thermal-sensor-cells
97713ed9b6 soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
07aea6819d soc: qcom: ocmem: Fix refcount leak in of_get_ocmem
71042279b1 ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP
5f29b045da regulator: qcom_smd: Fix pm8916_pldo range
22e6d8bcde cpufreq: zynq: Fix refcount leak in zynq_get_revision
d294d60dc6 ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
14bac0c703 ARM: OMAP2+: Fix refcount leak in omapdss_init_of
fdcb1fdbdc ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
c32d5491c8 block: fix infinite loop for invalid zone append
2d9a1a96eb soc: fsl: guts: machine variable might be unset
4cea839177 locking/lockdep: Fix lockdep_init_map_*() confusion
87e415aec4 arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1
30119131e3 hexagon: select ARCH_WANT_LD_ORPHAN_WARN
9d744229cd ARM: dts: ast2600-evb: fix board compatible
75a24da2b9 ARM: dts: ast2500-evb: fix board compatible
2c07688d3e x86/pmem: Fix platform-device leak in error path
6a28f363d3 arm64: dts: renesas: Fix thermal-sensors on single-zone sensors
80c469e63b soc: amlogic: Fix refcount leak in meson-secure-pwrc.c
6cd8ba0c0b soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values
6771609e19 Input: atmel_mxt_ts - fix up inverted RESET handler
11903c5457 ARM: dts: imx7d-colibri-emmc: add cpu1 supply
b8b1f0d74f ACPI: processor/idle: Annotate more functions to live in cpuidle section
91e7f04f53 ARM: bcm: Fix refcount leak in bcm_kona_smc_init
f6a6cc6d57 arm64: dts: renesas: beacon: Fix regulator node names
2691b8780f meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
ccf56ea52b ARM: findbit: fix overflowing offset
71fc6e0dca spi: spi-rspi: Fix PIO fallback on RZ platforms
4234c5f34e powerpc/64s: Disable stack variable initialisation for prom_init
adbfdaacde selinux: Add boundary check in put_entry()
003a456ae6 PM: hibernate: defer device probing when resuming from hibernation
70bccff899 firmware: tegra: Fix error check return value of debugfs_create_file()
c2e53a1b07 ARM: shmobile: rcar-gen2: Increase refcount for new reference
f48cec5736 arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
fcdc1e13e0 arm64: dts: qcom: ipq8074: fix NAND node name
931d0a574c ACPI: LPSS: Fix missing check in register_device_clock()
d257d9b0a4 ACPI: PM: save NVS memory for Lenovo G40-45
85bc8689a7 ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk
def469523d ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
88d556029a ARM: OMAP2+: display: Fix refcount leak bug
43157bc5f9 spi: synquacer: Add missing clk_disable_unprepare()
607570808a ARM: dts: BCM5301X: Add DT for Meraki MR26
9213e5a397 ARM: dts: imx6ul: fix qspi node compatible
976db15fee ARM: dts: imx6ul: fix lcdif node compatible
6045ac40e3 ARM: dts: imx6ul: fix csi node compatible
c7ce841f48 ARM: dts: imx6ul: fix keypad compatible
15af2deb19 ARM: dts: imx6ul: change operating-points to uint32-matrix
278aa4c73d ARM: dts: imx6ul: add missing properties for sram
695a3c2a82 wait: Fix __wait_event_hrtimeout for RT/DL tasks
2b8c55900d irqchip/mips-gic: Check the return value of ioremap() in gic_of_init()
8dfb4a99b1 genirq: GENERIC_IRQ_IPI depends on SMP
f460141f29 irqchip/mips-gic: Only register IPI domain when SMP is enabled
4aba3247af genirq: Don't return error on missing optional irq_request_resources()
d08bb199a4 ext2: Add more validity checks for inode counts
353b4673d0 arm64: fix oops in concurrently setting insn_emulation sysctls
913f173237 arm64: Do not forget syscall when starting a new thread.
fb086aea39 x86: Handle idle=nomwait cmdline properly for x86_idle
48c3900210 epoll: autoremove wakers even more aggressively
80977126bc netfilter: nf_tables: fix null deref due to zeroed list head
0cc5c6b756 netfilter: nf_tables: do not allow RULE_ID to refer to another chain
9e7dcb88ec netfilter: nf_tables: do not allow CHAIN_ID to refer to another table
1a4b18b1ff netfilter: nf_tables: do not allow SET_ID to refer to another table
19bf7199c3 lockdep: Allow tuning tracing capacity constants.
f294829fb4 usb: dwc3: gadget: fix high speed multiplier setting
fc2a039cdb usb: dwc3: gadget: refactor dwc3_repare_one_trb
9a3a61bd73 arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
63228d8328 ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
4d7da7e565 USB: HCD: Fix URB giveback issue in tasklet function
37c7fe9b31 usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion
847b9273dd coresight: Clear the connection field properly
807adf6ffa MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
26d767990e powerpc/powernv: Avoid crashing if rng is NULL
3db593ab8e powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
b326b8d6ae powerpc/fsl-pci: Fix Class Code of PCIe Root Port
39c51471ef PCI: Add defines for normal and subtractive PCI bridges
23c2f921f2 ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
2f36ba13cb media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator
5fd4ffa237 md-raid10: fix KASAN warning
e0bdaed154 md-raid: destroy the bitmap after destroying the thread
3bdda8656a serial: mvebu-uart: uart2 error bits clearing
cfe17ae313 fuse: limit nsec
e63ea5814b scsi: qla2xxx: Zero undefined mailbox IN registers
6f18b5ad2d scsi: qla2xxx: Fix incorrect display of max frame size
408bfa1489 scsi: sg: Allow waiting for commands to complete on removed device
fb1888205c iio: light: isl29028: Fix the warning in isl29028_remove()
fb7eea3946 mtd: rawnand: arasan: Update NAND bus clock instead of system clock
15d0aeb017 drm/amdgpu: Check BO's requested pinning domains against its preferred_domains
55f5584427 drm/nouveau/acpi: Don't print error when we get -EINPROGRESS from pm_runtime
92050011e0 drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend()
ca0742a8ed drm/nouveau: fix another off-by-one in nvbios_addr
de63dbc296 drm/vc4: hdmi: Disable audio if dmas property is present but empty
1ff71d4f53 drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
043f4642c1 parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
fc3918d70b parisc: Check the return value of ioremap() in lba_driver_probe()
b0dfba6d3b parisc: Fix device names in /proc/iomem
542d2e799d ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
135199a2ed usbnet: Fix linkwatch use-after-free on disconnect
d65c3fcd6d fbcon: Fix accelerated fbdev scrolling while logo is still shown
16badd9987 fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
826955eebc thermal: sysfs: Fix cooling_device_stats_setup() error code path
60a8f0e62a fs: Add missing umask strip in vfs_tmpfile
cf65b5bfac vfs: Check the truncate maximum size in inode_newsize_ok()
5c6c65681f tty: vt: initialize unicode screen buffer
f9b244e541 ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED
7b9ee47c28 ALSA: hda/realtek: Add quirk for another Asus K42JZ model
c366ccad5b ALSA: hda/cirrus - support for iMac 12,1 model
f2b72c51c2 ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
2613baa3ab mm/mremap: hold the rmap lock in write mode when moving page table entries.
0a69f1f842 xfs: fix I_DONTCACHE
e32bb24281 xfs: only set IOMAP_F_SHARED when providing a srcmap to a write
f5f3e54f81 mm: Add kvrealloc()
3ff605513f riscv: set default pm_power_off to NULL
230e369d49 KVM: x86: Tag kvm_mmu_x86_module_init() with __init
0dd8ba6670 KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
68ba319b88 KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
b670a58549 KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
e9c55562b3 KVM: s390: pv: don't present the ecall interrupt twice
8bb6834902 KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
860e334395 KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
ab4805c263 KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
40593c5898 HID: wacom: Don't register pad_input for touch switch
0ba645def7 HID: wacom: Only report rotation for art pen
57f2ee517d add barriers to buffer_uptodate and set_buffer_uptodate
6dece5ad6e wifi: mac80211_hwsim: use 32-bit skb cookie
d400222f49 wifi: mac80211_hwsim: add back erroneously removed cast
eb8fc4277b wifi: mac80211_hwsim: fix race condition in pending packet
9a22b1f7da ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx
d909d9bdc8 ALSA: hda/realtek: Add quirk for Clevo NV45PZ
348620464a ALSA: bcd2000: Fix a UAF bug on the error path of probing
101e0c052d scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
14eb40fd79 Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING"
4ad6a94c68 x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
8f4f2c9b98 Makefile: link with -z noexecstack --no-warn-rwx-segments

Add the following symbol as needed by the -lts merge:

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function ssize_t strscpy_pad(char*, const char*, size_t)'

Change-Id: I7b4e08152fafe9bf2285afd207af47481eb9c774
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2022-11-29 14:09:15 +00:00
Eric Dumazet
a2afe6cc0f UPSTREAM: inet: fully convert sk->sk_rx_dst to RCU rules
commit 8f905c0e7354ef261360fb7535ea079b1082c105 upstream.

syzbot reported various issues around early demux,
one being included in this changelog [1]

sk->sk_rx_dst is using RCU protection without clearly
documenting it.

And following sequences in tcp_v4_do_rcv()/tcp_v6_do_rcv()
are not following standard RCU rules.

[a]    dst_release(dst);
[b]    sk->sk_rx_dst = NULL;

They look wrong because a delete operation of RCU protected
pointer is supposed to clear the pointer before
the call_rcu()/synchronize_rcu() guarding actual memory freeing.

In some cases indeed, dst could be freed before [b] is done.

We could cheat by clearing sk_rx_dst before calling
dst_release(), but this seems the right time to stick
to standard RCU annotations and debugging facilities.

[1]
BUG: KASAN: use-after-free in dst_check include/net/dst.h:470 [inline]
BUG: KASAN: use-after-free in tcp_v4_early_demux+0x95b/0x960 net/ipv4/tcp_ipv4.c:1792
Read of size 2 at addr ffff88807f1cb73a by task syz-executor.5/9204

CPU: 0 PID: 9204 Comm: syz-executor.5 Not tainted 5.16.0-rc5-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
 print_address_description.constprop.0.cold+0x8d/0x320 mm/kasan/report.c:247
 __kasan_report mm/kasan/report.c:433 [inline]
 kasan_report.cold+0x83/0xdf mm/kasan/report.c:450
 dst_check include/net/dst.h:470 [inline]
 tcp_v4_early_demux+0x95b/0x960 net/ipv4/tcp_ipv4.c:1792
 ip_rcv_finish_core.constprop.0+0x15de/0x1e80 net/ipv4/ip_input.c:340
 ip_list_rcv_finish.constprop.0+0x1b2/0x6e0 net/ipv4/ip_input.c:583
 ip_sublist_rcv net/ipv4/ip_input.c:609 [inline]
 ip_list_rcv+0x34e/0x490 net/ipv4/ip_input.c:644
 __netif_receive_skb_list_ptype net/core/dev.c:5508 [inline]
 __netif_receive_skb_list_core+0x549/0x8e0 net/core/dev.c:5556
 __netif_receive_skb_list net/core/dev.c:5608 [inline]
 netif_receive_skb_list_internal+0x75e/0xd80 net/core/dev.c:5699
 gro_normal_list net/core/dev.c:5853 [inline]
 gro_normal_list net/core/dev.c:5849 [inline]
 napi_complete_done+0x1f1/0x880 net/core/dev.c:6590
 virtqueue_napi_complete drivers/net/virtio_net.c:339 [inline]
 virtnet_poll+0xca2/0x11b0 drivers/net/virtio_net.c:1557
 __napi_poll+0xaf/0x440 net/core/dev.c:7023
 napi_poll net/core/dev.c:7090 [inline]
 net_rx_action+0x801/0xb40 net/core/dev.c:7177
 __do_softirq+0x29b/0x9c2 kernel/softirq.c:558
 invoke_softirq kernel/softirq.c:432 [inline]
 __irq_exit_rcu+0x123/0x180 kernel/softirq.c:637
 irq_exit_rcu+0x5/0x20 kernel/softirq.c:649
 common_interrupt+0x52/0xc0 arch/x86/kernel/irq.c:240
 asm_common_interrupt+0x1e/0x40 arch/x86/include/asm/idtentry.h:629
RIP: 0033:0x7f5e972bfd57
Code: 39 d1 73 14 0f 1f 80 00 00 00 00 48 8b 50 f8 48 83 e8 08 48 39 ca 77 f3 48 39 c3 73 3e 48 89 13 48 8b 50 f8 48 89 38 49 8b 0e <48> 8b 3e 48 83 c3 08 48 83 c6 08 eb bc 48 39 d1 72 9e 48 39 d0 73
RSP: 002b:00007fff8a413210 EFLAGS: 00000283
RAX: 00007f5e97108990 RBX: 00007f5e97108338 RCX: ffffffff81d3aa45
RDX: ffffffff81d3aa45 RSI: 00007f5e97108340 RDI: ffffffff81d3aa45
RBP: 00007f5e97107eb8 R08: 00007f5e97108d88 R09: 0000000093c2e8d9
R10: 0000000000000000 R11: 0000000000000000 R12: 00007f5e97107eb0
R13: 00007f5e97108338 R14: 00007f5e97107ea8 R15: 0000000000000019
 </TASK>

Allocated by task 13:
 kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38
 kasan_set_track mm/kasan/common.c:46 [inline]
 set_alloc_info mm/kasan/common.c:434 [inline]
 __kasan_slab_alloc+0x90/0xc0 mm/kasan/common.c:467
 kasan_slab_alloc include/linux/kasan.h:259 [inline]
 slab_post_alloc_hook mm/slab.h:519 [inline]
 slab_alloc_node mm/slub.c:3234 [inline]
 slab_alloc mm/slub.c:3242 [inline]
 kmem_cache_alloc+0x202/0x3a0 mm/slub.c:3247
 dst_alloc+0x146/0x1f0 net/core/dst.c:92
 rt_dst_alloc+0x73/0x430 net/ipv4/route.c:1613
 ip_route_input_slow+0x1817/0x3a20 net/ipv4/route.c:2340
 ip_route_input_rcu net/ipv4/route.c:2470 [inline]
 ip_route_input_noref+0x116/0x2a0 net/ipv4/route.c:2415
 ip_rcv_finish_core.constprop.0+0x288/0x1e80 net/ipv4/ip_input.c:354
 ip_list_rcv_finish.constprop.0+0x1b2/0x6e0 net/ipv4/ip_input.c:583
 ip_sublist_rcv net/ipv4/ip_input.c:609 [inline]
 ip_list_rcv+0x34e/0x490 net/ipv4/ip_input.c:644
 __netif_receive_skb_list_ptype net/core/dev.c:5508 [inline]
 __netif_receive_skb_list_core+0x549/0x8e0 net/core/dev.c:5556
 __netif_receive_skb_list net/core/dev.c:5608 [inline]
 netif_receive_skb_list_internal+0x75e/0xd80 net/core/dev.c:5699
 gro_normal_list net/core/dev.c:5853 [inline]
 gro_normal_list net/core/dev.c:5849 [inline]
 napi_complete_done+0x1f1/0x880 net/core/dev.c:6590
 virtqueue_napi_complete drivers/net/virtio_net.c:339 [inline]
 virtnet_poll+0xca2/0x11b0 drivers/net/virtio_net.c:1557
 __napi_poll+0xaf/0x440 net/core/dev.c:7023
 napi_poll net/core/dev.c:7090 [inline]
 net_rx_action+0x801/0xb40 net/core/dev.c:7177
 __do_softirq+0x29b/0x9c2 kernel/softirq.c:558

Freed by task 13:
 kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38
 kasan_set_track+0x21/0x30 mm/kasan/common.c:46
 kasan_set_free_info+0x20/0x30 mm/kasan/generic.c:370
 ____kasan_slab_free mm/kasan/common.c:366 [inline]
 ____kasan_slab_free mm/kasan/common.c:328 [inline]
 __kasan_slab_free+0xff/0x130 mm/kasan/common.c:374
 kasan_slab_free include/linux/kasan.h:235 [inline]
 slab_free_hook mm/slub.c:1723 [inline]
 slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1749
 slab_free mm/slub.c:3513 [inline]
 kmem_cache_free+0xbd/0x5d0 mm/slub.c:3530
 dst_destroy+0x2d6/0x3f0 net/core/dst.c:127
 rcu_do_batch kernel/rcu/tree.c:2506 [inline]
 rcu_core+0x7ab/0x1470 kernel/rcu/tree.c:2741
 __do_softirq+0x29b/0x9c2 kernel/softirq.c:558

Last potentially related work creation:
 kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38
 __kasan_record_aux_stack+0xf5/0x120 mm/kasan/generic.c:348
 __call_rcu kernel/rcu/tree.c:2985 [inline]
 call_rcu+0xb1/0x740 kernel/rcu/tree.c:3065
 dst_release net/core/dst.c:177 [inline]
 dst_release+0x79/0xe0 net/core/dst.c:167
 tcp_v4_do_rcv+0x612/0x8d0 net/ipv4/tcp_ipv4.c:1712
 sk_backlog_rcv include/net/sock.h:1030 [inline]
 __release_sock+0x134/0x3b0 net/core/sock.c:2768
 release_sock+0x54/0x1b0 net/core/sock.c:3300
 tcp_sendmsg+0x36/0x40 net/ipv4/tcp.c:1441
 inet_sendmsg+0x99/0xe0 net/ipv4/af_inet.c:819
 sock_sendmsg_nosec net/socket.c:704 [inline]
 sock_sendmsg+0xcf/0x120 net/socket.c:724
 sock_write_iter+0x289/0x3c0 net/socket.c:1057
 call_write_iter include/linux/fs.h:2162 [inline]
 new_sync_write+0x429/0x660 fs/read_write.c:503
 vfs_write+0x7cd/0xae0 fs/read_write.c:590
 ksys_write+0x1ee/0x250 fs/read_write.c:643
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x44/0xae

The buggy address belongs to the object at ffff88807f1cb700
 which belongs to the cache ip_dst_cache of size 176
The buggy address is located 58 bytes inside of
 176-byte region [ffff88807f1cb700, ffff88807f1cb7b0)
The buggy address belongs to the page:
page:ffffea0001fc72c0 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x7f1cb
flags: 0xfff00000000200(slab|node=0|zone=1|lastcpupid=0x7ff)
raw: 00fff00000000200 dead000000000100 dead000000000122 ffff8881413bb780
raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112a20(GFP_ATOMIC|__GFP_NOWARN|__GFP_NORETRY|__GFP_HARDWALL), pid 5, ts 108466983062, free_ts 108048976062
 prep_new_page mm/page_alloc.c:2418 [inline]
 get_page_from_freelist+0xa72/0x2f50 mm/page_alloc.c:4149
 __alloc_pages+0x1b2/0x500 mm/page_alloc.c:5369
 alloc_pages+0x1a7/0x300 mm/mempolicy.c:2191
 alloc_slab_page mm/slub.c:1793 [inline]
 allocate_slab mm/slub.c:1930 [inline]
 new_slab+0x32d/0x4a0 mm/slub.c:1993
 ___slab_alloc+0x918/0xfe0 mm/slub.c:3022
 __slab_alloc.constprop.0+0x4d/0xa0 mm/slub.c:3109
 slab_alloc_node mm/slub.c:3200 [inline]
 slab_alloc mm/slub.c:3242 [inline]
 kmem_cache_alloc+0x35c/0x3a0 mm/slub.c:3247
 dst_alloc+0x146/0x1f0 net/core/dst.c:92
 rt_dst_alloc+0x73/0x430 net/ipv4/route.c:1613
 __mkroute_output net/ipv4/route.c:2564 [inline]
 ip_route_output_key_hash_rcu+0x921/0x2d00 net/ipv4/route.c:2791
 ip_route_output_key_hash+0x18b/0x300 net/ipv4/route.c:2619
 __ip_route_output_key include/net/route.h:126 [inline]
 ip_route_output_flow+0x23/0x150 net/ipv4/route.c:2850
 ip_route_output_key include/net/route.h:142 [inline]
 geneve_get_v4_rt+0x3a6/0x830 drivers/net/geneve.c:809
 geneve_xmit_skb drivers/net/geneve.c:899 [inline]
 geneve_xmit+0xc4a/0x3540 drivers/net/geneve.c:1082
 __netdev_start_xmit include/linux/netdevice.h:4994 [inline]
 netdev_start_xmit include/linux/netdevice.h:5008 [inline]
 xmit_one net/core/dev.c:3590 [inline]
 dev_hard_start_xmit+0x1eb/0x920 net/core/dev.c:3606
 __dev_queue_xmit+0x299a/0x3650 net/core/dev.c:4229
page last free stack trace:
 reset_page_owner include/linux/page_owner.h:24 [inline]
 free_pages_prepare mm/page_alloc.c:1338 [inline]
 free_pcp_prepare+0x374/0x870 mm/page_alloc.c:1389
 free_unref_page_prepare mm/page_alloc.c:3309 [inline]
 free_unref_page+0x19/0x690 mm/page_alloc.c:3388
 qlink_free mm/kasan/quarantine.c:146 [inline]
 qlist_free_all+0x5a/0xc0 mm/kasan/quarantine.c:165
 kasan_quarantine_reduce+0x180/0x200 mm/kasan/quarantine.c:272
 __kasan_slab_alloc+0xa2/0xc0 mm/kasan/common.c:444
 kasan_slab_alloc include/linux/kasan.h:259 [inline]
 slab_post_alloc_hook mm/slab.h:519 [inline]
 slab_alloc_node mm/slub.c:3234 [inline]
 kmem_cache_alloc_node+0x255/0x3f0 mm/slub.c:3270
 __alloc_skb+0x215/0x340 net/core/skbuff.c:414
 alloc_skb include/linux/skbuff.h:1126 [inline]
 alloc_skb_with_frags+0x93/0x620 net/core/skbuff.c:6078
 sock_alloc_send_pskb+0x783/0x910 net/core/sock.c:2575
 mld_newpack+0x1df/0x770 net/ipv6/mcast.c:1754
 add_grhead+0x265/0x330 net/ipv6/mcast.c:1857
 add_grec+0x1053/0x14e0 net/ipv6/mcast.c:1995
 mld_send_initial_cr.part.0+0xf6/0x230 net/ipv6/mcast.c:2242
 mld_send_initial_cr net/ipv6/mcast.c:1232 [inline]
 mld_dad_work+0x1d3/0x690 net/ipv6/mcast.c:2268
 process_one_work+0x9b2/0x1690 kernel/workqueue.c:2298
 worker_thread+0x658/0x11f0 kernel/workqueue.c:2445

Memory state around the buggy address:
 ffff88807f1cb600: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff88807f1cb680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc
>ffff88807f1cb700: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                        ^
 ffff88807f1cb780: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc
 ffff88807f1cb800: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb

Fixes: 41063e9dd1 ("ipv4: Early TCP socket demux.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20211220143330.680945-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[cmllamas: fixed trivial merge conflict]
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit f039b43cba)
Bug: 252686090
Signed-off-by: Wei Liu <liuwei.a@oppo.com>
Change-Id: If7fbbe7ef4e6423617aadb8bd1ef06f525a571b7
2022-11-08 22:14:26 +00:00
Greg Kroah-Hartman
3dbfa90b61 Merge 5.10.143 into android12-5.10-lts
Changes in 5.10.143
	NFSD: Fix verifier returned in stable WRITEs
	xen-blkfront: Cache feature_persistent value before advertisement
	tty: n_gsm: initialize more members at gsm_alloc_mux()
	tty: n_gsm: avoid call of sleeping functions from atomic context
	efi: libstub: Disable struct randomization
	efi: capsule-loader: Fix use-after-free in efi_capsule_write
	wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd()
	fs: only do a memory barrier for the first set_buffer_uptodate()
	Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
	scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX
	scsi: megaraid_sas: Fix double kfree()
	drm/gem: Fix GEM handle release errors
	drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to psp_hw_fini
	drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
	drm/radeon: add a force flush to delay work when radeon
	parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
	parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
	arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level
	net/core/skbuff: Check the return value of skb_copy_bits()
	fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
	drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
	ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
	ALSA: aloop: Fix random zeros in capture data when using jiffies timer
	ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()
	kprobes: Prohibit probes in gate area
	debugfs: add debugfs_lookup_and_remove()
	nvmet: fix a use-after-free
	drm/i915: Implement WaEdpLinkRateDataReload
	scsi: mpt3sas: Fix use-after-free warning
	scsi: lpfc: Add missing destroy_workqueue() in error path
	cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
	cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
	cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl()
	smb3: missing inode locks in punch hole
	ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
	regulator: core: Clean up on enable failure
	tee: fix compiler warning in tee_shm_register()
	RDMA/cma: Fix arguments order in net device validation
	soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
	RDMA/hns: Fix supported page size
	RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift
	ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges
	ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges
	ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time
	ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time
	netfilter: br_netfilter: Drop dst references before setting.
	netfilter: nf_tables: clean up hook list when offload flags check fails
	netfilter: nf_conntrack_irc: Fix forged IP logic
	ALSA: usb-audio: Inform the delayed registration more properly
	ALSA: usb-audio: Register card again for iface over delayed_register option
	rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
	afs: Use the operation issue time instead of the reply time for callbacks
	sch_sfb: Don't assume the skb is still around after enqueueing to child
	tipc: fix shift wrapping bug in map_get()
	ice: use bitmap_free instead of devm_kfree
	i40e: Fix kernel crash during module removal
	xen-netback: only remove 'hotplug-status' when the vif is actually destroyed
	RDMA/siw: Pass a pointer to virt_to_page()
	ipv6: sr: fix out-of-bounds read when setting HMAC data.
	IB/core: Fix a nested dead lock as part of ODP flow
	RDMA/mlx5: Set local port to one when accessing counters
	nvme-tcp: fix UAF when detecting digest errors
	nvme-tcp: fix regression that causes sporadic requests to time out
	tcp: fix early ETIMEDOUT after spurious non-SACK RTO
	sch_sfb: Also store skb len before calling child enqueue
	ASoC: mchp-spdiftx: remove references to mchp_i2s_caps
	ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion
	MIPS: loongson32: ls1c: Fix hang during startup
	swiotlb: avoid potential left shift overflow
	iommu/amd: use full 64-bit value in build_completion_wait()
	hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined
	hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors
	hwmon: (mr75203) fix voltage equation for negative source input
	hwmon: (mr75203) fix multi-channel voltage reading
	hwmon: (mr75203) enable polling for all VM channels
	arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly
	Linux 5.10.143

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ia1bc1b76bcad0e2cb3b27d1a37278b1d24c6b90d
2022-09-22 14:38:08 +02:00
Greg Kroah-Hartman
e0f0b200a5 Merge 5.10.142 into android12-5.10-lts
Changes in 5.10.142
	drm/msm/dsi: fix the inconsistent indenting
	drm/msm/dp: delete DP_RECOVERED_CLOCK_OUT_EN to fix tps4
	drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
	drm/msm/dsi: Fix number of regulators for SDM660
	platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
	iio: adc: mcp3911: make use of the sign bit
	bpf, cgroup: Fix kernel BUG in purge_effective_progs
	ieee802154/adf7242: defer destroy_workqueue call
	ALSA: hda: intel-nhlt: remove use of __func__ in dev_dbg
	ALSA: hda: intel-nhlt: Correct the handling of fmt_config flexible array
	wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
	Revert "xhci: turn off port power in shutdown"
	net: sched: tbf: don't call qdisc_put() while holding tree lock
	net/sched: fix netdevice reference leaks in attach_default_qdiscs()
	ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
	kcm: fix strp_init() order and cleanup
	sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
	tcp: annotate data-race around challenge_timestamp
	Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
	net/smc: Remove redundant refcount increase
	serial: fsl_lpuart: RS485 RTS polariy is inverse
	staging: rtl8712: fix use after free bugs
	powerpc: align syscall table for ppc32
	vt: Clear selection before changing the font
	tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete
	Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
	iio: ad7292: Prevent regulator double disable
	iio: adc: mcp3911: use correct formula for AD conversion
	misc: fastrpc: fix memory corruption on probe
	misc: fastrpc: fix memory corruption on open
	USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
	binder: fix UAF of ref->proc caused by race condition
	drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
	clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
	Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
	clk: core: Fix runtime PM sequence in clk_core_unprepare()
	Input: rk805-pwrkey - fix module autoloading
	clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
	clk: bcm: rpi: Use correct order for the parameters of devm_kcalloc()
	clk: bcm: rpi: Prevent out-of-bounds access
	clk: bcm: rpi: Add missing newline
	hwmon: (gpio-fan) Fix array out of bounds access
	gpio: pca953x: Add mutex_lock for regcache sync in PM
	KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES
	xen/grants: prevent integer overflow in gnttab_dma_alloc_pages()
	mm: pagewalk: Fix race between unmap and page walker
	xen-blkback: Advertise feature-persistent as user requested
	xen-blkfront: Advertise feature-persistent as user requested
	thunderbolt: Use the actual buffer in tb_async_error()
	media: mceusb: Use new usb_control_msg_*() routines
	xhci: Add grace period after xHC start to prevent premature runtime suspend.
	USB: serial: cp210x: add Decagon UCA device id
	USB: serial: option: add support for OPPO R11 diag port
	USB: serial: option: add Quectel EM060K modem
	USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
	usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
	usb: dwc2: fix wrong order of phy_power_on and phy_init
	USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
	usb-storage: Add ignore-residue quirk for NXP PN7462AU
	s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
	s390: fix nospec table alignments
	USB: core: Prevent nested device-reset calls
	usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
	driver core: Don't probe devices after bus_type.match() probe deferral
	wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
	wifi: mac80211: Fix UAF in ieee80211_scan_rx()
	ip: fix triggering of 'icmp redirect'
	net: Use u64_stats_fetch_begin_irq() for stats fetch.
	net: mac802154: Fix a condition in the receive path
	ALSA: hda/realtek: Add speaker AMP init for Samsung laptops with ALC298
	ALSA: seq: oss: Fix data-race for max_midi_devs access
	ALSA: seq: Fix data-race at module auto-loading
	drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
	btrfs: harden identification of a stale device
	mmc: core: Fix UHS-I SD 1.8V workaround branch
	usb: dwc3: fix PHY disable sequence
	usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
	usb: dwc3: disable USB core PHY management
	USB: serial: ch341: fix lost character on LCR updates
	USB: serial: ch341: fix disabled rx timer on older devices
	Linux 5.10.142

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I32d9b4c4c0e6c802744abb8b1c87ad794f4de0c8
2022-09-22 13:46:39 +02:00
Neal Cardwell
d47475d4e5 tcp: fix early ETIMEDOUT after spurious non-SACK RTO
[ Upstream commit 686dc2db2a0fdc1d34b424ec2c0a735becd8d62b ]

Fix a bug reported and analyzed by Nagaraj Arankal, where the handling
of a spurious non-SACK RTO could cause a connection to fail to clear
retrans_stamp, causing a later RTO to very prematurely time out the
connection with ETIMEDOUT.

Here is the buggy scenario, expanding upon Nagaraj Arankal's excellent
report:

(*1) Send one data packet on a non-SACK connection

(*2) Because no ACK packet is received, the packet is retransmitted
     and we enter CA_Loss; but this retransmission is spurious.

(*3) The ACK for the original data is received. The transmitted packet
     is acknowledged.  The TCP timestamp is before the retrans_stamp,
     so tcp_may_undo() returns true, and tcp_try_undo_loss() returns
     true without changing state to Open (because tcp_is_sack() is
     false), and tcp_process_loss() returns without calling
     tcp_try_undo_recovery().  Normally after undoing a CA_Loss
     episode, tcp_fastretrans_alert() would see that the connection
     has returned to CA_Open and fall through and call
     tcp_try_to_open(), which would set retrans_stamp to 0.  However,
     for non-SACK connections we hold the connection in CA_Loss, so do
     not fall through to call tcp_try_to_open() and do not set
     retrans_stamp to 0. So retrans_stamp is (erroneously) still
     non-zero.

     At this point the first "retransmission event" has passed and
     been recovered from. Any future retransmission is a completely
     new "event". However, retrans_stamp is erroneously still
     set. (And we are still in CA_Loss, which is correct.)

(*4) After 16 minutes (to correspond with tcp_retries2=15), a new data
     packet is sent. Note: No data is transmitted between (*3) and
     (*4) and we disabled keep alives.

     The socket's timeout SHOULD be calculated from this point in
     time, but instead it's calculated from the prior "event" 16
     minutes ago (step (*2)).

(*5) Because no ACK packet is received, the packet is retransmitted.

(*6) At the time of the 2nd retransmission, the socket returns
     ETIMEDOUT, prematurely, because retrans_stamp is (erroneously)
     too far in the past (set at the time of (*2)).

This commit fixes this bug by ensuring that we reuse in
tcp_try_undo_loss() the same careful logic for non-SACK connections
that we have in tcp_try_undo_recovery(). To avoid duplicating logic,
we factor out that logic into a new
tcp_is_non_sack_preventing_reopen() helper and call that helper from
both undo functions.

Fixes: da34ac7626 ("tcp: only undo on partial ACKs in CA_Loss")
Reported-by: Nagaraj Arankal <nagaraj.p.arankal@hpe.com>
Link: https://lore.kernel.org/all/SJ0PR84MB1847BE6C24D274C46A1B9B0EB27A9@SJ0PR84MB1847.NAMPRD84.PROD.OUTLOOK.COM/
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20220903121023.866900-1-ncardwell.kernel@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-09-15 11:32:06 +02:00
Eric Dumazet
f3d1554d0f tcp: annotate data-race around challenge_timestamp
[ Upstream commit 8c70521238b7863c2af607e20bcba20f974c969b ]

challenge_timestamp can be read an written by concurrent threads.

This was expected, but we need to annotate the race to avoid potential issues.

Following patch moves challenge_timestamp and challenge_count
to per-netns storage to provide better isolation.

Fixes: 354e4aa391 ("tcp: RFC 5961 5.2 Blind Data Injection Attack Mitigation")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-09-08 11:11:37 +02:00
Greg Kroah-Hartman
5939035887 Merge 5.10.140 into android12-5.10-lts
Changes in 5.10.140
	audit: fix potential double free on error path from fsnotify_add_inode_mark
	parisc: Fix exception handler for fldw and fstw instructions
	kernel/sys_ni: add compat entry for fadvise64_64
	pinctrl: amd: Don't save/restore interrupt status and wake status bits
	xfs: prevent a WARN_ONCE() in xfs_ioc_attr_list()
	xfs: reject crazy array sizes being fed to XFS_IOC_GETBMAP*
	fs: remove __sync_filesystem
	vfs: make sync_filesystem return errors from ->sync_fs
	xfs: return errors in xfs_fs_sync_fs
	xfs: only bother with sync_filesystem during readonly remount
	kernel/sched: Remove dl_boosted flag comment
	xfrm: fix refcount leak in __xfrm_policy_check()
	xfrm: clone missing x->lastused in xfrm_do_migrate
	af_key: Do not call xfrm_probe_algs in parallel
	xfrm: policy: fix metadata dst->dev xmit null pointer dereference
	NFS: Don't allocate nfs_fattr on the stack in __nfs42_ssc_open()
	NFSv4.2 fix problems with __nfs42_ssc_open
	SUNRPC: RPC level errors should set task->tk_rpc_status
	mm/huge_memory.c: use helper function migration_entry_to_page()
	mm/smaps: don't access young/dirty bit if pte unpresent
	rose: check NULL rose_loopback_neigh->loopback
	nfc: pn533: Fix use-after-free bugs caused by pn532_cmd_timeout
	ice: xsk: Force rings to be sized to power of 2
	ice: xsk: prohibit usage of non-balanced queue id
	net/mlx5e: Properly disable vlan strip on non-UL reps
	net: ipa: don't assume SMEM is page-aligned
	net: moxa: get rid of asymmetry in DMA mapping/unmapping
	bonding: 802.3ad: fix no transmission of LACPDUs
	net: ipvtap - add __init/__exit annotations to module init/exit funcs
	netfilter: ebtables: reject blobs that don't provide all entry points
	bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
	netfilter: nft_payload: report ERANGE for too long offset and length
	netfilter: nft_payload: do not truncate csum_offset and csum_type
	netfilter: nf_tables: do not leave chain stats enabled on error
	netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
	netfilter: nft_tunnel: restrict it to netdev family
	netfilter: nftables: remove redundant assignment of variable err
	netfilter: nf_tables: consolidate rule verdict trace call
	netfilter: nft_cmp: optimize comparison for 16-bytes
	netfilter: bitwise: improve error goto labels
	netfilter: nf_tables: upfront validation of data via nft_data_init()
	netfilter: nf_tables: disallow jump to implicit chain from set element
	netfilter: nf_tables: disallow binding to already bound chain
	tcp: tweak len/truesize ratio for coalesce candidates
	net: Fix data-races around sysctl_[rw]mem(_offset)?.
	net: Fix data-races around sysctl_[rw]mem_(max|default).
	net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
	net: Fix data-races around netdev_max_backlog.
	net: Fix data-races around netdev_tstamp_prequeue.
	ratelimit: Fix data-races in ___ratelimit().
	bpf: Folding omem_charge() into sk_storage_charge()
	net: Fix data-races around sysctl_optmem_max.
	net: Fix a data-race around sysctl_tstamp_allow_data.
	net: Fix a data-race around sysctl_net_busy_poll.
	net: Fix a data-race around sysctl_net_busy_read.
	net: Fix a data-race around netdev_budget.
	net: Fix a data-race around netdev_budget_usecs.
	net: Fix data-races around sysctl_fb_tunnels_only_for_init_net.
	net: Fix data-races around sysctl_devconf_inherit_init_net.
	net: Fix a data-race around sysctl_somaxconn.
	ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
	rxrpc: Fix locking in rxrpc's sendmsg
	ionic: fix up issues with handling EAGAIN on FW cmds
	btrfs: fix silent failure when deleting root reference
	btrfs: replace: drop assert for suspended replace
	btrfs: add info when mount fails due to stale replace target
	btrfs: check if root is readonly while setting security xattr
	perf/x86/lbr: Enable the branch type for the Arch LBR by default
	x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
	x86/bugs: Add "unknown" reporting for MMIO Stale Data
	loop: Check for overflow while configuring loop
	asm-generic: sections: refactor memory_intersects
	s390: fix double free of GS and RI CBs on fork() failure
	ACPI: processor: Remove freq Qos request for all CPUs
	xen/privcmd: fix error exit of privcmd_ioctl_dm_op()
	mm/hugetlb: fix hugetlb not supporting softdirty tracking
	Revert "md-raid: destroy the bitmap after destroying the thread"
	md: call __md_stop_writes in md_stop
	arm64: Fix match_list for erratum 1286807 on Arm Cortex-A76
	Documentation/ABI: Mention retbleed vulnerability info file for sysfs
	blk-mq: fix io hung due to missing commit_rqs
	perf python: Fix build when PYTHON_CONFIG is user supplied
	perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
	scsi: ufs: core: Enable link lost interrupt
	scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
	bpf: Don't use tnum_range on array range checking for poke descriptors
	Linux 5.10.140

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I29f4b4af2a584dc2f2789aac613583603002464a
2022-08-31 18:52:48 +02:00
Kuniyuki Iwashima
613fd02620 net: Fix data-races around sysctl_[rw]mem(_offset)?.
[ Upstream commit 02739545951ad4c1215160db7fbf9b7a918d3c0b ]

While reading these sysctl variables, they can be changed concurrently.
Thus, we need to add READ_ONCE() to their readers.

  - .sysctl_rmem
  - .sysctl_rwmem
  - .sysctl_rmem_offset
  - .sysctl_wmem_offset
  - sysctl_tcp_rmem[1, 2]
  - sysctl_tcp_wmem[1, 2]
  - sysctl_decnet_rmem[1]
  - sysctl_decnet_wmem[1]
  - sysctl_tipc_rmem[1]

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-31 17:15:19 +02:00
Eric Dumazet
e73a29554f tcp: tweak len/truesize ratio for coalesce candidates
[ Upstream commit 240bfd134c592791fdceba1ce7fc3f973c33df2d ]

tcp_grow_window() is using skb->len/skb->truesize to increase tp->rcv_ssthresh
which has a direct impact on advertized window sizes.

We added TCP coalescing in linux-3.4 & linux-3.5:

Instead of storing skbs with one or two MSS in receive queue (or OFO queue),
we try to append segments together to reduce memory overhead.

High performance network drivers tend to cook skb with 3 parts :

1) sk_buff structure (256 bytes)
2) skb->head contains room to copy headers as needed, and skb_shared_info
3) page fragment(s) containing the ~1514 bytes frame (or more depending on MTU)

Once coalesced into a previous skb, 1) and 2) are freed.

We can therefore tweak the way we compute len/truesize ratio knowing
that skb->truesize is inflated by 1) and 2) soon to be freed.

This is done only for in-order skb, or skb coalesced into OFO queue.

The result is that low rate flows no longer pay the memory price of having
low GRO aggregation factor. Same result for drivers not using GRO.

This is critical to allow a big enough receiver window,
typically tcp_rmem[2] / 2.

We have been using this at Google for about 5 years, it is due time
to make it upstream.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Soheil Hassas Yeganeh <soheil@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-31 17:15:19 +02:00
Greg Kroah-Hartman
30abcdabf2 Merge 5.10.135 into android12-5.10-lts
Changes in 5.10.135
	Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
	Revert "ocfs2: mount shared volume without ha stack"
	ntfs: fix use-after-free in ntfs_ucsncmp()
	s390/archrandom: prevent CPACF trng invocations in interrupt context
	nouveau/svm: Fix to migrate all requested pages
	watch_queue: Fix missing rcu annotation
	watch_queue: Fix missing locking in add_watch_to_object()
	tcp: Fix data-races around sysctl_tcp_dsack.
	tcp: Fix a data-race around sysctl_tcp_app_win.
	tcp: Fix a data-race around sysctl_tcp_adv_win_scale.
	tcp: Fix a data-race around sysctl_tcp_frto.
	tcp: Fix a data-race around sysctl_tcp_nometrics_save.
	tcp: Fix data-races around sysctl_tcp_no_ssthresh_metrics_save.
	ice: check (DD | EOF) bits on Rx descriptor rather than (EOP | RS)
	ice: do not setup vlan for loopback VSI
	scsi: ufs: host: Hold reference returned by of_parse_phandle()
	Revert "tcp: change pingpong threshold to 3"
	tcp: Fix data-races around sysctl_tcp_moderate_rcvbuf.
	tcp: Fix a data-race around sysctl_tcp_limit_output_bytes.
	tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit.
	net: ping6: Fix memleak in ipv6_renew_options().
	ipv6/addrconf: fix a null-ptr-deref bug for ip6_ptr
	net/tls: Remove the context from the list in tls_device_down
	igmp: Fix data-races around sysctl_igmp_qrv.
	net: sungem_phy: Add of_node_put() for reference returned by of_get_parent()
	tcp: Fix a data-race around sysctl_tcp_min_tso_segs.
	tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen.
	tcp: Fix a data-race around sysctl_tcp_autocorking.
	tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
	Documentation: fix sctp_wmem in ip-sysctl.rst
	macsec: fix NULL deref in macsec_add_rxsa
	macsec: fix error message in macsec_add_rxsa and _txsa
	macsec: limit replay window size with XPN
	macsec: always read MACSEC_SA_ATTR_PN as a u64
	net: macsec: fix potential resource leak in macsec_add_rxsa() and macsec_add_txsa()
	tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns.
	tcp: Fix a data-race around sysctl_tcp_comp_sack_slack_ns.
	tcp: Fix a data-race around sysctl_tcp_comp_sack_nr.
	tcp: Fix data-races around sysctl_tcp_reflect_tos.
	i40e: Fix interface init with MSI interrupts (no MSI-X)
	sctp: fix sleep in atomic context bug in timer handlers
	netfilter: nf_queue: do not allow packet truncation below transport header offset
	virtio-net: fix the race between refill work and close
	perf symbol: Correct address for bss symbols
	sfc: disable softirqs for ptp TX
	sctp: leave the err path free in sctp_stream_init to sctp_stream_free
	ARM: crypto: comment out gcc warning that breaks clang builds
	page_alloc: fix invalid watermark check on a negative value
	mt7601u: add USB device ID for some versions of XiaoDu WiFi Dongle.
	ARM: 9216/1: Fix MAX_DMA_ADDRESS overflow
	EDAC/ghes: Set the DIMM label unconditionally
	docs/kernel-parameters: Update descriptions for "mitigations=" param with retbleed
	xfs: refactor xfs_file_fsync
	xfs: xfs_log_force_lsn isn't passed a LSN
	xfs: prevent UAF in xfs_log_item_in_current_chkpt
	xfs: fix log intent recovery ENOSPC shutdowns when inactivating inodes
	xfs: force the log offline when log intent item recovery fails
	xfs: hold buffer across unpin and potential shutdown processing
	xfs: remove dead stale buf unpin handling code
	xfs: logging the on disk inode LSN can make it go backwards
	xfs: Enforce attr3 buffer recovery order
	x86/bugs: Do not enable IBPB at firmware entry when IBPB is not available
	bpf: Consolidate shared test timing code
	bpf: Add PROG_TEST_RUN support for sk_lookup programs
	selftests: bpf: Don't run sk_lookup in verifier tests
	Linux 5.10.135

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I3bcd5c460b652174673d9911710b1904f338d8d8
2022-08-04 10:59:03 +02:00
Greg Kroah-Hartman
f6ce9a9115 Merge 5.10.134 into android12-5.10-lts
Changes in 5.10.134
	pinctrl: stm32: fix optional IRQ support to gpios
	riscv: add as-options for modules with assembly compontents
	mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication
	lockdown: Fix kexec lockdown bypass with ima policy
	io_uring: Use original task for req identity in io_identity_cow()
	xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE
	docs: net: explain struct net_device lifetime
	net: make free_netdev() more lenient with unregistering devices
	net: make sure devices go through netdev_wait_all_refs
	net: move net_set_todo inside rollback_registered()
	net: inline rollback_registered()
	net: move rollback_registered_many()
	net: inline rollback_registered_many()
	Revert "m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch"
	PCI: hv: Fix multi-MSI to allow more than one MSI vector
	PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
	PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
	PCI: hv: Fix interrupt mapping for multi-MSI
	serial: mvebu-uart: correctly report configured baudrate value
	xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in xfrm_bundle_lookup()
	power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe
	pinctrl: ralink: Check for null return of devm_kcalloc
	perf/core: Fix data race between perf_event_set_output() and perf_mmap_close()
	drm/amdgpu/display: add quirk handling for stutter mode
	igc: Reinstate IGC_REMOVED logic and implement it properly
	ip: Fix data-races around sysctl_ip_no_pmtu_disc.
	ip: Fix data-races around sysctl_ip_fwd_use_pmtu.
	ip: Fix data-races around sysctl_ip_fwd_update_priority.
	ip: Fix data-races around sysctl_ip_nonlocal_bind.
	ip: Fix a data-race around sysctl_ip_autobind_reuse.
	ip: Fix a data-race around sysctl_fwmark_reflect.
	tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
	tcp: Fix data-races around sysctl_tcp_mtu_probing.
	tcp: Fix data-races around sysctl_tcp_base_mss.
	tcp: Fix data-races around sysctl_tcp_min_snd_mss.
	tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor.
	tcp: Fix a data-race around sysctl_tcp_probe_threshold.
	tcp: Fix a data-race around sysctl_tcp_probe_interval.
	net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow
	i2c: cadence: Change large transfer count reset logic to be unconditional
	net: stmmac: fix dma queue left shift overflow issue
	net/tls: Fix race in TLS device down flow
	igmp: Fix data-races around sysctl_igmp_llm_reports.
	igmp: Fix a data-race around sysctl_igmp_max_memberships.
	igmp: Fix data-races around sysctl_igmp_max_msf.
	tcp: Fix data-races around keepalive sysctl knobs.
	tcp: Fix data-races around sysctl_tcp_syncookies.
	tcp: Fix data-races around sysctl_tcp_reordering.
	tcp: Fix data-races around some timeout sysctl knobs.
	tcp: Fix a data-race around sysctl_tcp_notsent_lowat.
	tcp: Fix a data-race around sysctl_tcp_tw_reuse.
	tcp: Fix data-races around sysctl_max_syn_backlog.
	tcp: Fix data-races around sysctl_tcp_fastopen.
	tcp: Fix data-races around sysctl_tcp_fastopen_blackhole_timeout.
	iavf: Fix handling of dummy receive descriptors
	i40e: Fix erroneous adapter reinitialization during recovery process
	ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero
	gpio: pca953x: only use single read/write for No AI mode
	gpio: pca953x: use the correct range when do regmap sync
	gpio: pca953x: use the correct register address when regcache sync during init
	be2net: Fix buffer overflow in be_get_module_eeprom
	drm/imx/dcss: Add missing of_node_put() in fail path
	ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh.
	ip: Fix data-races around sysctl_ip_prot_sock.
	udp: Fix a data-race around sysctl_udp_l3mdev_accept.
	tcp: Fix data-races around sysctl knobs related to SYN option.
	tcp: Fix a data-race around sysctl_tcp_early_retrans.
	tcp: Fix data-races around sysctl_tcp_recovery.
	tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts.
	tcp: Fix data-races around sysctl_tcp_slow_start_after_idle.
	tcp: Fix a data-race around sysctl_tcp_retrans_collapse.
	tcp: Fix a data-race around sysctl_tcp_stdurg.
	tcp: Fix a data-race around sysctl_tcp_rfc1337.
	tcp: Fix data-races around sysctl_tcp_max_reordering.
	spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA transfers
	KVM: Don't null dereference ops->destroy
	mm/mempolicy: fix uninit-value in mpol_rebind_policy()
	bpf: Make sure mac_header was set before using it
	sched/deadline: Fix BUG_ON condition for deboosted tasks
	x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
	dlm: fix pending remove if msg allocation fails
	drm/imx/dcss: fix unused but set variable warnings
	bitfield.h: Fix "type of reg too small for mask" test
	ALSA: memalloc: Align buffer allocations in page size
	Bluetooth: Add bt_skb_sendmsg helper
	Bluetooth: Add bt_skb_sendmmsg helper
	Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg
	Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg
	Bluetooth: Fix passing NULL to PTR_ERR
	Bluetooth: SCO: Fix sco_send_frame returning skb->len
	Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks
	x86/amd: Use IBPB for firmware calls
	x86/alternative: Report missing return thunk details
	watchqueue: make sure to serialize 'wqueue->defunct' properly
	tty: drivers/tty/, stop using tty_schedule_flip()
	tty: the rest, stop using tty_schedule_flip()
	tty: drop tty_schedule_flip()
	tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push()
	tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
	net: usb: ax88179_178a needs FLAG_SEND_ZLP
	watch-queue: remove spurious double semicolon
	Linux 5.10.134

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I55defdcdd6658e3ec9a3684b7e8cdfe114772a19
2022-08-03 12:42:13 +02:00
Kuniyuki Iwashima
f310fb69a0 tcp: Fix a data-race around sysctl_tcp_comp_sack_nr.
[ Upstream commit 79f55473bfc8ac51bd6572929a679eeb4da22251 ]

While reading sysctl_tcp_comp_sack_nr, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its reader.

Fixes: 9c21d2fc41 ("tcp: add tcp_comp_sack_nr sysctl")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-03 12:00:48 +02:00
Kuniyuki Iwashima
d2476f2059 tcp: Fix a data-race around sysctl_tcp_comp_sack_slack_ns.
[ Upstream commit 22396941a7f343d704738360f9ef0e6576489d43 ]

While reading sysctl_tcp_comp_sack_slack_ns, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its reader.

Fixes: a70437cc09 ("tcp: add hrtimer slack to sack compression")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-03 12:00:48 +02:00
Kuniyuki Iwashima
4832397891 tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns.
[ Upstream commit 4866b2b0f7672b6d760c4b8ece6fb56f965dcc8a ]

While reading sysctl_tcp_comp_sack_delay_ns, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its reader.

Fixes: 6d82aa2420 ("tcp: add tcp_comp_sack_delay_ns sysctl")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-03 12:00:48 +02:00
Kuniyuki Iwashima
4aea33f404 tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
[ Upstream commit 2afdbe7b8de84c28e219073a6661080e1b3ded48 ]

While reading sysctl_tcp_invalid_ratelimit, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its reader.

Fixes: 032ee42369 ("tcp: helpers to mitigate ACK loops by rate-limiting out-of-window dupacks")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-03 12:00:47 +02:00
Kuniyuki Iwashima
83edb788e6 tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen.
[ Upstream commit 1330ffacd05fc9ac4159d19286ce119e22450ed2 ]

While reading sysctl_tcp_min_rtt_wlen, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its reader.

Fixes: f672258391 ("tcp: track min RTT using windowed min-filter")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-03 12:00:47 +02:00
Kuniyuki Iwashima
c37c7f35d7 tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit.
commit db3815a2fa691da145cfbe834584f31ad75df9ff upstream.

While reading sysctl_tcp_challenge_ack_limit, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its reader.

Fixes: 282f23c6ee ("tcp: implement RFC 5961 3.2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-03 12:00:46 +02:00
Kuniyuki Iwashima
3e93312583 tcp: Fix data-races around sysctl_tcp_moderate_rcvbuf.
commit 780476488844e070580bfc9e3bc7832ec1cea883 upstream.

While reading sysctl_tcp_moderate_rcvbuf, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its readers.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-03 12:00:45 +02:00
Kuniyuki Iwashima
81c45f49e6 tcp: Fix a data-race around sysctl_tcp_frto.
commit 706c6202a3589f290e1ef9be0584a8f4a3cc0507 upstream.

While reading sysctl_tcp_frto, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its reader.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-03 12:00:44 +02:00
Kuniyuki Iwashima
3cddb7a7a5 tcp: Fix a data-race around sysctl_tcp_app_win.
commit 02ca527ac5581cf56749db9fd03d854e842253dd upstream.

While reading sysctl_tcp_app_win, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its reader.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-03 12:00:44 +02:00
Kuniyuki Iwashima
f10a5f905a tcp: Fix data-races around sysctl_tcp_dsack.
commit 58ebb1c8b35a8ef38cd6927431e0fa7b173a632d upstream.

While reading sysctl_tcp_dsack, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its readers.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-03 12:00:44 +02:00
Kuniyuki Iwashima
0648526633 tcp: Fix data-races around sysctl_tcp_max_reordering.
[ Upstream commit a11e5b3e7a59fde1a90b0eaeaa82320495cf8cae ]

While reading sysctl_tcp_max_reordering, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its readers.

Fixes: dca145ffaa ("tcp: allow for bigger reordering level")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:23 +02:00
Kuniyuki Iwashima
03bb3892f3 tcp: Fix a data-race around sysctl_tcp_stdurg.
[ Upstream commit 4e08ed41cb1194009fc1a916a59ce3ed4afd77cd ]

While reading sysctl_tcp_stdurg, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its reader.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:22 +02:00
Kuniyuki Iwashima
d8781f7cd0 tcp: Fix data-races around sysctl_tcp_recovery.
[ Upstream commit e7d2ef837e14a971a05f60ea08c47f3fed1a36e4 ]

While reading sysctl_tcp_recovery, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its readers.

Fixes: 4f41b1c58a ("tcp: use RACK to detect losses")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:21 +02:00
Kuniyuki Iwashima
ffc388f6f0 tcp: Fix data-races around sysctl knobs related to SYN option.
[ Upstream commit 3666f666e99600518ab20982af04a078bbdad277 ]

While reading these knobs, they can be changed concurrently.
Thus, we need to add READ_ONCE() to their readers.

  - tcp_sack
  - tcp_window_scaling
  - tcp_timestamps

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:21 +02:00
Kuniyuki Iwashima
b3ce32e33a tcp: Fix data-races around sysctl_max_syn_backlog.
[ Upstream commit 79539f34743d3e14cc1fa6577d326a82cc64d62f ]

While reading sysctl_max_syn_backlog, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its readers.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:18 +02:00
Kuniyuki Iwashima
474510e174 tcp: Fix data-races around sysctl_tcp_reordering.
[ Upstream commit 46778cd16e6a5ad1b2e3a91f6c057c907379418e ]

While reading sysctl_tcp_reordering, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its readers.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:17 +02:00
Kuniyuki Iwashima
dc1a78a2b2 tcp: Fix data-races around sysctl_tcp_syncookies.
[ Upstream commit f2e383b5bb6bbc60a0b94b87b3e49a2b1aefd11e ]

While reading sysctl_tcp_syncookies, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its readers.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-07-29 17:19:16 +02:00
Greg Kroah-Hartman
8a8eb074ed Merge 5.10.122 into android12-5.10-lts
Changes in 5.10.122
	pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards
	staging: greybus: codecs: fix type confusion of list iterator variable
	iio: adc: ad7124: Remove shift from scan_type
	lkdtm/bugs: Check for the NULL pointer after calling kmalloc
	tty: goldfish: Use tty_port_destroy() to destroy port
	tty: serial: owl: Fix missing clk_disable_unprepare() in owl_uart_probe
	tty: n_tty: Restore EOF push handling behavior
	tty: serial: fsl_lpuart: fix potential bug when using both of_alias_get_id and ida_simple_get
	usb: usbip: fix a refcount leak in stub_probe()
	usb: usbip: add missing device lock on tweak configuration cmd
	USB: storage: karma: fix rio_karma_init return
	usb: musb: Fix missing of_node_put() in omap2430_probe
	staging: fieldbus: Fix the error handling path in anybuss_host_common_probe()
	pwm: lp3943: Fix duty calculation in case period was clamped
	rpmsg: qcom_smd: Fix irq_of_parse_and_map() return value
	usb: dwc3: pci: Fix pm_runtime_get_sync() error checking
	misc: fastrpc: fix an incorrect NULL check on list iterator
	firmware: stratix10-svc: fix a missing check on list iterator
	usb: typec: mux: Check dev_set_name() return value
	iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check
	iio: proximity: vl53l0x: Fix return value check of wait_for_completion_timeout
	iio: adc: sc27xx: fix read big scale voltage not right
	iio: adc: sc27xx: Fine tune the scale calibration values
	rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails
	phy: qcom-qmp: fix pipe-clock imbalance on power-on failure
	serial: sifive: Report actual baud base rather than fixed 115200
	coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier
	extcon: ptn5150: Add queue work sync before driver release
	soc: rockchip: Fix refcount leak in rockchip_grf_init
	clocksource/drivers/riscv: Events are stopped during CPU suspend
	rtc: mt6397: check return value after calling platform_get_resource()
	serial: meson: acquire port->lock in startup()
	serial: 8250_fintek: Check SER_RS485_RTS_* only with RS485
	serial: digicolor-usart: Don't allow CS5-6
	serial: rda-uart: Don't allow CS5-6
	serial: txx9: Don't allow CS5-6
	serial: sh-sci: Don't allow CS5-6
	serial: sifive: Sanitize CSIZE and c_iflag
	serial: st-asc: Sanitize CSIZE and correct PARENB for CS7
	serial: stm32-usart: Correct CSIZE, bits, and parity
	firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
	bus: ti-sysc: Fix warnings for unbind for serial
	driver: base: fix UAF when driver_attach failed
	driver core: fix deadlock in __device_attach
	watchdog: rti-wdt: Fix pm_runtime_get_sync() error checking
	watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe
	ASoC: fsl_sai: Fix FSL_SAI_xDR/xFR definition
	clocksource/drivers/oxnas-rps: Fix irq_of_parse_and_map() return value
	s390/crypto: fix scatterwalk_unmap() callers in AES-GCM
	net: sched: fixed barrier to prevent skbuff sticking in qdisc backlog
	net: ethernet: mtk_eth_soc: out of bounds read in mtk_hwlro_get_fdir_entry()
	net: ethernet: ti: am65-cpsw-nuss: Fix some refcount leaks
	net: dsa: mv88e6xxx: Fix refcount leak in mv88e6xxx_mdios_register
	modpost: fix removing numeric suffixes
	jffs2: fix memory leak in jffs2_do_fill_super
	ubi: fastmap: Fix high cpu usage of ubi_bgt by making sure wl_pool not empty
	ubi: ubi_create_volume: Fix use-after-free when volume creation failed
	bpf: Fix probe read error in ___bpf_prog_run()
	riscv: read-only pages should not be writable
	net/smc: fixes for converting from "struct smc_cdc_tx_pend **" to "struct smc_wr_tx_pend_priv *"
	nfp: only report pause frame configuration for physical device
	sfc: fix considering that all channels have TX queues
	sfc: fix wrong tx channel offset with efx_separate_tx_channels
	net/mlx5: Don't use already freed action pointer
	net/mlx5: correct ECE offset in query qp output
	net/mlx5e: Update netdev features after changing XDP state
	net: sched: add barrier to fix packet stuck problem for lockless qdisc
	tcp: tcp_rtx_synack() can be called from process context
	gpio: pca953x: use the correct register address to do regcache sync
	afs: Fix infinite loop found by xfstest generic/676
	scsi: sd: Fix potential NULL pointer dereference
	tipc: check attribute length for bearer name
	driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction
	perf c2c: Fix sorting in percent_rmt_hitm_cmp()
	dmaengine: idxd: set DMA_INTERRUPT cap bit
	mips: cpc: Fix refcount leak in mips_cpc_default_phys_base
	bootconfig: Make the bootconfig.o as a normal object file
	tracing: Fix sleeping function called from invalid context on RT kernel
	tracing: Avoid adding tracer option before update_tracer_options
	iommu/arm-smmu: fix possible null-ptr-deref in arm_smmu_device_probe()
	iommu/arm-smmu-v3: check return value after calling platform_get_resource()
	f2fs: remove WARN_ON in f2fs_is_valid_blkaddr
	i2c: cadence: Increase timeout per message if necessary
	m68knommu: set ZERO_PAGE() to the allocated zeroed page
	m68knommu: fix undefined reference to `_init_sp'
	dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type
	NFSv4: Don't hold the layoutget locks across multiple RPC calls
	video: fbdev: hyperv_fb: Allow resolutions with size > 64 MB for Gen1
	video: fbdev: pxa3xx-gcu: release the resources correctly in pxa3xx_gcu_probe/remove()
	xprtrdma: treat all calls not a bcall when bc_serv is NULL
	netfilter: nat: really support inet nat without l3 address
	netfilter: nf_tables: delete flowtable hooks via transaction list
	powerpc/kasan: Force thread size increase with KASAN
	netfilter: nf_tables: always initialize flowtable hook list in transaction
	ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe
	netfilter: nf_tables: release new hooks on unsupported flowtable flags
	netfilter: nf_tables: memleak flow rule from commit path
	netfilter: nf_tables: bail out early if hardware offload is not supported
	xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
	af_unix: Fix a data-race in unix_dgram_peer_wake_me().
	bpf, arm64: Clear prog->jited_len along prog->jited
	net: dsa: lantiq_gswip: Fix refcount leak in gswip_gphy_fw_list
	net/mlx4_en: Fix wrong return value on ioctl EEPROM query failure
	SUNRPC: Fix the calculation of xdr->end in xdr_get_next_encode_buffer()
	net: mdio: unexport __init-annotated mdio_bus_init()
	net: xfrm: unexport __init-annotated xfrm4_protocol_init()
	net: ipv6: unexport __init-annotated seg6_hmac_init()
	net/mlx5: Rearm the FW tracer after each tracer event
	net/mlx5: fs, fail conflicting actions
	ip_gre: test csum_start instead of transport header
	net: altera: Fix refcount leak in altera_tse_mdio_create
	drm: imx: fix compiler warning with gcc-12
	iio: dummy: iio_simple_dummy: check the return value of kstrdup()
	staging: rtl8712: fix a potential memory leak in r871xu_drv_init()
	iio: st_sensors: Add a local lock for protecting odr
	lkdtm/usercopy: Expand size of "out of frame" object
	tty: synclink_gt: Fix null-pointer-dereference in slgt_clean()
	tty: Fix a possible resource leak in icom_probe
	drivers: staging: rtl8192u: Fix deadlock in ieee80211_beacons_stop()
	drivers: staging: rtl8192e: Fix deadlock in rtllib_beacons_stop()
	USB: host: isp116x: check return value after calling platform_get_resource()
	drivers: tty: serial: Fix deadlock in sa1100_set_termios()
	drivers: usb: host: Fix deadlock in oxu_bus_suspend()
	USB: hcd-pci: Fully suspend across freeze/thaw cycle
	sysrq: do not omit current cpu when showing backtrace of all active CPUs
	usb: dwc2: gadget: don't reset gadget's driver->bus
	misc: rtsx: set NULL intfdata when probe fails
	extcon: Modify extcon device to be created after driver data is set
	clocksource/drivers/sp804: Avoid error on multiple instances
	staging: rtl8712: fix uninit-value in usb_read8() and friends
	staging: rtl8712: fix uninit-value in r871xu_drv_init()
	serial: msm_serial: disable interrupts in __msm_console_write()
	kernfs: Separate kernfs_pr_cont_buf and rename_lock.
	watchdog: wdat_wdt: Stop watchdog when rebooting the system
	md: protect md_unregister_thread from reentrancy
	scsi: myrb: Fix up null pointer access on myrb_cleanup()
	Revert "net: af_key: add check for pfkey_broadcast in function pfkey_process"
	ceph: allow ceph.dir.rctime xattr to be updatable
	drm/radeon: fix a possible null pointer dereference
	modpost: fix undefined behavior of is_arm_mapping_symbol()
	x86/cpu: Elide KCSAN for cpu_has() and friends
	jump_label,noinstr: Avoid instrumentation for JUMP_LABEL=n builds
	nbd: call genl_unregister_family() first in nbd_cleanup()
	nbd: fix race between nbd_alloc_config() and module removal
	nbd: fix io hung while disconnecting device
	s390/gmap: voluntarily schedule during key setting
	cifs: version operations for smb20 unneeded when legacy support disabled
	nodemask: Fix return values to be unsigned
	vringh: Fix loop descriptors check in the indirect cases
	scripts/gdb: change kernel config dumping method
	ALSA: hda/conexant - Fix loopback issue with CX20632
	ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo Yoga DuetITL 2021
	cifs: return errors during session setup during reconnects
	cifs: fix reconnect on smb3 mount types
	ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files
	mmc: block: Fix CQE recovery reset success
	net: phy: dp83867: retrigger SGMII AN when link change
	nfc: st21nfca: fix incorrect validating logic in EVT_TRANSACTION
	nfc: st21nfca: fix memory leaks in EVT_TRANSACTION handling
	nfc: st21nfca: fix incorrect sizing calculations in EVT_TRANSACTION
	ixgbe: fix bcast packets Rx on VF after promisc removal
	ixgbe: fix unexpected VLAN Rx in promisc mode on VF
	Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag
	drm/bridge: analogix_dp: Support PSR-exit to disable transition
	drm/atomic: Force bridge self-refresh-exit on CRTC switch
	powerpc/32: Fix overread/overwrite of thread_struct via ptrace
	powerpc/mm: Switch obsolete dssall to .long
	interconnect: qcom: sc7180: Drop IP0 interconnects
	interconnect: Restore sync state by ignoring ipa-virt in provider count
	md/raid0: Ignore RAID0 layout if the second zone has only one device
	PCI: qcom: Fix pipe clock imbalance
	zonefs: fix handling of explicit_open option on mount
	dmaengine: idxd: add missing callback function to support DMA_INTERRUPT
	tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd
	Linux 5.10.122

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8b96565fbcb635b2faaf2adcf287c963180c0b92
2022-07-28 15:05:26 +02:00
Eric Dumazet
9ba2b4ac35 tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd
commit 11825765291a93d8e7f44230da67b9f607c777bf upstream.

syzbot got a new report [1] finally pointing to a very old bug,
added in initial support for MTU probing.

tcp_mtu_probe() has checks about starting an MTU probe if
tcp_snd_cwnd(tp) >= 11.

But nothing prevents tcp_snd_cwnd(tp) to be reduced later
and before the MTU probe succeeds.

This bug would lead to potential zero-divides.

Debugging added in commit 40570375356c ("tcp: add accessors
to read/set tp->snd_cwnd") has paid off :)

While we are at it, address potential overflows in this code.

[1]
WARNING: CPU: 1 PID: 14132 at include/net/tcp.h:1219 tcp_mtup_probe_success+0x366/0x570 net/ipv4/tcp_input.c:2712
Modules linked in:
CPU: 1 PID: 14132 Comm: syz-executor.2 Not tainted 5.18.0-syzkaller-07857-gbabf0bb978e3 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:tcp_snd_cwnd_set include/net/tcp.h:1219 [inline]
RIP: 0010:tcp_mtup_probe_success+0x366/0x570 net/ipv4/tcp_input.c:2712
Code: 74 08 48 89 ef e8 da 80 17 f9 48 8b 45 00 65 48 ff 80 80 03 00 00 48 83 c4 30 5b 41 5c 41 5d 41 5e 41 5f 5d c3 e8 aa b0 c5 f8 <0f> 0b e9 16 fe ff ff 48 8b 4c 24 08 80 e1 07 38 c1 0f 8c c7 fc ff
RSP: 0018:ffffc900079e70f8 EFLAGS: 00010287
RAX: ffffffff88c0f7f6 RBX: ffff8880756e7a80 RCX: 0000000000040000
RDX: ffffc9000c6c4000 RSI: 0000000000031f9e RDI: 0000000000031f9f
RBP: 0000000000000000 R08: ffffffff88c0f606 R09: ffffc900079e7520
R10: ffffed101011226d R11: 1ffff1101011226c R12: 1ffff1100eadcf50
R13: ffff8880756e72c0 R14: 1ffff1100eadcf89 R15: dffffc0000000000
FS:  00007f643236e700(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f1ab3f1e2a0 CR3: 0000000064fe7000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 tcp_clean_rtx_queue+0x223a/0x2da0 net/ipv4/tcp_input.c:3356
 tcp_ack+0x1962/0x3c90 net/ipv4/tcp_input.c:3861
 tcp_rcv_established+0x7c8/0x1ac0 net/ipv4/tcp_input.c:5973
 tcp_v6_do_rcv+0x57b/0x1210 net/ipv6/tcp_ipv6.c:1476
 sk_backlog_rcv include/net/sock.h:1061 [inline]
 __release_sock+0x1d8/0x4c0 net/core/sock.c:2849
 release_sock+0x5d/0x1c0 net/core/sock.c:3404
 sk_stream_wait_memory+0x700/0xdc0 net/core/stream.c:145
 tcp_sendmsg_locked+0x111d/0x3fc0 net/ipv4/tcp.c:1410
 tcp_sendmsg+0x2c/0x40 net/ipv4/tcp.c:1448
 sock_sendmsg_nosec net/socket.c:714 [inline]
 sock_sendmsg net/socket.c:734 [inline]
 __sys_sendto+0x439/0x5c0 net/socket.c:2119
 __do_sys_sendto net/socket.c:2131 [inline]
 __se_sys_sendto net/socket.c:2127 [inline]
 __x64_sys_sendto+0xda/0xf0 net/socket.c:2127
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x2b/0x70 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x46/0xb0
RIP: 0033:0x7f6431289109
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f643236e168 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 00007f643139c100 RCX: 00007f6431289109
RDX: 00000000d0d0c2ac RSI: 0000000020000080 RDI: 000000000000000a
RBP: 00007f64312e308d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fff372533af R14: 00007f643236e300 R15: 0000000000022000

Fixes: 5d424d5a67 ("[TCP]: MTU probing")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-14 18:32:47 +02:00
Greg Kroah-Hartman
6273d79c86 Merge 5.10.114 into android12-5.10-lts
Changes in 5.10.114
	floppy: disable FDRAWCMD by default
	lightnvm: disable the subsystem
	usb: mtu3: fix USB 3.0 dual-role-switch from device to host
	USB: quirks: add a Realtek card reader
	USB: quirks: add STRING quirk for VCOM device
	USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
	USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
	USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
	USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
	xhci: Enable runtime PM on second Alderlake controller
	xhci: stop polling roothubs after shutdown
	xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
	iio: dac: ad5592r: Fix the missing return value.
	iio: dac: ad5446: Fix read_raw not returning set value
	iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
	iio: imu: inv_icm42600: Fix I2C init possible nack
	usb: misc: fix improper handling of refcount in uss720_probe()
	usb: typec: ucsi: Fix reuse of completion structure
	usb: typec: ucsi: Fix role swapping
	usb: gadget: uvc: Fix crash when encoding data for usb request
	usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
	usb: dwc3: Try usb-role-switch first in dwc3_drd_init
	usb: dwc3: core: Fix tx/rx threshold settings
	usb: dwc3: core: Only handle soft-reset in DCTL
	usb: dwc3: gadget: Return proper request status
	usb: cdns3: Fix issue for clear halt endpoint
	usb: phy: generic: Get the vbus supply
	serial: imx: fix overrun interrupts in DMA mode
	serial: 8250: Also set sticky MCR bits in console restoration
	serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
	arch_topology: Do not set llc_sibling if llc_id is invalid
	pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config
	hex2bin: make the function hex_to_bin constant-time
	hex2bin: fix access beyond string end
	riscv: patch_text: Fixup last cpu should be master
	x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
	iocost: don't reset the inuse weight of under-weighted debtors
	video: fbdev: udlfb: properly check endpoint type
	arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
	arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
	iio:imu:bmi160: disable regulator in error path
	mtd: rawnand: fix ecc parameters for mt7622
	USB: Fix xhci event ring dequeue pointer ERDP update issue
	ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
	phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
	phy: samsung: exynos5250-sata: fix missing device put in probe error paths
	ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
	bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific
	phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
	ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
	ARM: dts: at91: sama5d4_xplained: fix pinctrl phandle name
	phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
	phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
	ARM: dts: Fix mmc order for omap3-gta04
	ARM: dts: am3517-evm: Fix misc pinmuxing
	ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
	ipvs: correctly print the memory size of ip_vs_conn_tab
	pinctrl: mediatek: moore: Fix build error
	mtd: rawnand: Fix return value check of wait_for_completion_timeout
	mtd: fix 'part' field data corruption in mtd_info
	pinctrl: stm32: Do not call stm32_gpio_get() for edge triggered IRQs in EOI
	memory: renesas-rpc-if: Fix HF/OSPI data transfer in Manual Mode
	net: dsa: Add missing of_node_put() in dsa_port_link_register_of
	netfilter: nft_set_rbtree: overlap detection with element re-addition after deletion
	bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt hook
	pinctrl: rockchip: fix RK3308 pinmux bits
	tcp: md5: incorrect tcp_header_len for incoming connections
	pinctrl: stm32: Keep pinctrl block clock enabled when LEVEL IRQ requested
	tcp: ensure to use the most recently sent skb when filling the rate sample
	wireguard: device: check for metadata_dst with skb_valid_dst()
	sctp: check asoc strreset_chunk in sctp_generate_reconf_event
	ARM: dts: imx6ull-colibri: fix vqmmc regulator
	arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
	pinctrl: pistachio: fix use of irq_of_parse_and_map()
	cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
	net: hns3: modify the return code of hclge_get_ring_chain_from_mbx
	net: hns3: add validity check for message data length
	net: hns3: add return value for mailbox handling in PF
	net/smc: sync err code when tcp connection was refused
	ip_gre: Make o_seqno start from 0 in native mode
	ip6_gre: Make o_seqno start from 0 in native mode
	ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
	tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
	tcp: make sure treq->af_specific is initialized
	bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
	clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource()
	net: bcmgenet: hide status block before TX timestamping
	net: phy: marvell10g: fix return value on error
	net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
	drm/amdkfd: Fix GWS queue count
	drm/amd/display: Fix memory leak in dcn21_clock_source_create
	tls: Skip tls_append_frag on zero copy size
	bnx2x: fix napi API usage sequence
	net: fec: add missing of_node_put() in fec_enet_init_stop_mode()
	ixgbe: ensure IPsec VF<->PF compatibility
	ibmvnic: fix miscellaneous checks
	Revert "ibmvnic: Add ethtool private flag for driver-defined queue limits"
	tcp: fix F-RTO may not work correctly when receiving DSACK
	ASoC: Intel: soc-acpi: correct device endpoints for max98373
	ASoC: wm8731: Disable the regulator when probing fails
	ext4: fix bug_on in start_this_handle during umount filesystem
	x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
	cifs: destage any unwritten data to the server before calling copychunk_write
	drivers: net: hippi: Fix deadlock in rr_close()
	powerpc/perf: Fix 32bit compile
	zonefs: Fix management of open zones
	zonefs: Clear inode information flags on inode creation
	kasan: prevent cpu_quarantine corruption when CPU offline and cache shrink occur at same time
	drm/i915: Fix SEL_FETCH_PLANE_*(PIPE_B+) register addresses
	net: ethernet: stmmac: fix write to sgmii_adapter_base
	thermal: int340x: Fix attr.show callback prototype
	x86/cpu: Load microcode during restore_processor_state()
	perf symbol: Pass is_kallsyms to symbols__fixup_end()
	perf symbol: Update symbols__fixup_end()
	tty: n_gsm: fix restart handling via CLD command
	tty: n_gsm: fix decoupled mux resource
	tty: n_gsm: fix mux cleanup after unregister tty device
	tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
	tty: n_gsm: fix malformed counter for out of frame data
	netfilter: nft_socket: only do sk lookups when indev is available
	tty: n_gsm: fix insufficient txframe size
	tty: n_gsm: fix wrong DLCI release order
	tty: n_gsm: fix missing explicit ldisc flush
	tty: n_gsm: fix wrong command retry handling
	tty: n_gsm: fix wrong command frame length field encoding
	tty: n_gsm: fix reset fifo race condition
	tty: n_gsm: fix incorrect UA handling
	tty: n_gsm: fix software flow control handling
	perf symbol: Remove arch__symbols__fixup_end()
	Linux 5.10.114

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5bae5ef7c58046213b62c82599707f569a955337
2022-05-12 17:48:27 +02:00
Pengcheng Yang
aa138efd2b tcp: fix F-RTO may not work correctly when receiving DSACK
[ Upstream commit d9157f6806d1499e173770df1f1b234763de5c79 ]

Currently DSACK is regarded as a dupack, which may cause
F-RTO to incorrectly enter "loss was real" when receiving
DSACK.

Packetdrill to demonstrate:

// Enable F-RTO and TLP
    0 `sysctl -q net.ipv4.tcp_frto=2`
    0 `sysctl -q net.ipv4.tcp_early_retrans=3`
    0 `sysctl -q net.ipv4.tcp_congestion_control=cubic`

// Establish a connection
   +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
   +0 bind(3, ..., ...) = 0
   +0 listen(3, 1) = 0

// RTT 10ms, RTO 210ms
  +.1 < S 0:0(0) win 32792 <mss 1000,sackOK,nop,nop,nop,wscale 7>
   +0 > S. 0:0(0) ack 1 <...>
 +.01 < . 1:1(0) ack 1 win 257
   +0 accept(3, ..., ...) = 4

// Send 2 data segments
   +0 write(4, ..., 2000) = 2000
   +0 > P. 1:2001(2000) ack 1

// TLP
+.022 > P. 1001:2001(1000) ack 1

// Continue to send 8 data segments
   +0 write(4, ..., 10000) = 10000
   +0 > P. 2001:10001(8000) ack 1

// RTO
+.188 > . 1:1001(1000) ack 1

// The original data is acked and new data is sent(F-RTO step 2.b)
   +0 < . 1:1(0) ack 2001 win 257
   +0 > P. 10001:12001(2000) ack 1

// D-SACK caused by TLP is regarded as a dupack, this results in
// the incorrect judgment of "loss was real"(F-RTO step 3.a)
+.022 < . 1:1(0) ack 2001 win 257 <sack 1001:2001,nop,nop>

// Never-retransmitted data(3001:4001) are acked and
// expect to switch to open state(F-RTO step 3.b)
   +0 < . 1:1(0) ack 4001 win 257
+0 %{ assert tcpi_ca_state == 0, tcpi_ca_state }%

Fixes: e33099f96d ("tcp: implement RFC5682 F-RTO")
Signed-off-by: Pengcheng Yang <yangpc@wangsu.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Tested-by: Neal Cardwell <ncardwell@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/1650967419-2150-1-git-send-email-yangpc@wangsu.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-05-09 09:05:06 +02:00
Eric Dumazet
8a9d6ca360 tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
[ Upstream commit 4bfe744ff1644fbc0a991a2677dc874475dd6776 ]

I had this bug sitting for too long in my pile, it is time to fix it.

Thanks to Doug Porter for reminding me of it!

We had various attempts in the past, including commit
0cbe6a8f08 ("tcp: remove SOCK_QUEUE_SHRUNK"),
but the issue is that TCP stack currently only generates
EPOLLOUT from input path, when tp->snd_una has advanced
and skb(s) cleaned from rtx queue.

If a flow has a big RTT, and/or receives SACKs, it is possible
that the notsent part (tp->write_seq - tp->snd_nxt) reaches 0
and no more data can be sent until tp->snd_una finally advances.

What is needed is to also check if POLLOUT needs to be generated
whenever tp->snd_nxt is advanced, from output path.

This bug triggers more often after an idle period, as
we do not receive ACK for at least one RTT. tcp_notsent_lowat
could be a fraction of what CWND and pacing rate would allow to
send during this RTT.

In a followup patch, I will remove the bogus call
to tcp_chrono_stop(sk, TCP_CHRONO_SNDBUF_LIMITED)
from tcp_check_space(). Fact that we have decided to generate
an EPOLLOUT does not mean the application has immediately
refilled the transmit queue. This optimistic call
might have been the reason the bug seemed not too serious.

Tested:

200 ms rtt, 1% packet loss, 32 MB tcp_rmem[2] and tcp_wmem[2]

$ echo 500000 >/proc/sys/net/ipv4/tcp_notsent_lowat
$ cat bench_rr.sh
SUM=0
for i in {1..10}
do
 V=`netperf -H remote_host -l30 -t TCP_RR -- -r 10000000,10000 -o LOCAL_BYTES_SENT | egrep -v "MIGRATED|Bytes"`
 echo $V
 SUM=$(($SUM + $V))
done
echo SUM=$SUM

Before patch:
$ bench_rr.sh
130000000
80000000
140000000
140000000
140000000
140000000
130000000
40000000
90000000
110000000
SUM=1140000000

After patch:
$ bench_rr.sh
430000000
590000000
530000000
450000000
450000000
350000000
450000000
490000000
480000000
460000000
SUM=4680000000  # This is 410 % of the value before patch.

Fixes: c9bee3b7fd ("tcp: TCP_NOTSENT_LOWAT socket option")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Doug Porter <dsp@fb.com>
Cc: Soheil Hassas Yeganeh <soheil@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-05-09 09:05:04 +02:00
Greg Kroah-Hartman
26d02dc8ef Merge 5.10.97 into android12-5.10-lts
Changes in 5.10.97
	PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
	net: ipa: fix atomic update in ipa_endpoint_replenish()
	net: ipa: use a bitmap for endpoint replenish_enabled
	net: ipa: prevent concurrent replenish
	Revert "drivers: bus: simple-pm-bus: Add support for probing simple bus only devices"
	KVM: x86: Forcibly leave nested virt when SMM state is toggled
	psi: Fix uaf issue when psi trigger is destroyed while being polled
	x86/mce: Add Xeon Sapphire Rapids to list of CPUs that support PPIN
	x86/cpu: Add Xeon Icelake-D to list of CPUs that support PPIN
	drm/vc4: hdmi: Make sure the device is powered with CEC
	cgroup-v1: Require capabilities to set release_agent
	net/mlx5e: Fix handling of wrong devices during bond netevent
	net/mlx5: Use del_timer_sync in fw reset flow of halting poll
	net/mlx5: E-Switch, Fix uninitialized variable modact
	ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
	net: amd-xgbe: ensure to reset the tx_timer_active flag
	net: amd-xgbe: Fix skb data length underflow
	fanotify: Fix stale file descriptor in copy_event_to_user()
	net: sched: fix use-after-free in tc_new_tfilter()
	rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
	cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask()
	af_packet: fix data-race in packet_setsockopt / packet_setsockopt
	tcp: add missing tcp_skb_can_collapse() test in tcp_shift_skb_data()
	Linux 5.10.97

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I428a930b475ba1b15d4b1ad05dde7df36cec6405
2022-02-08 10:08:24 +01:00
Eric Dumazet
176356550c tcp: add missing tcp_skb_can_collapse() test in tcp_shift_skb_data()
commit b67985be400969578d4d4b17299714c0e5d2c07b upstream.

tcp_shift_skb_data() might collapse three packets into a larger one.

P_A, P_B, P_C  -> P_ABC

Historically, it used a single tcp_skb_can_collapse_to(P_A) call,
because it was enough.

In commit 8571248411 ("tcp: coalesce/collapse must respect MPTCP extensions"),
this call was replaced by a call to tcp_skb_can_collapse(P_A, P_B)

But the now needed test over P_C has been missed.

This probably broke MPTCP.

Then later, commit 9b65b17db723 ("net: avoid double accounting for pure zerocopy skbs")
added an extra condition to tcp_skb_can_collapse(), but the missing call
from tcp_shift_skb_data() is also breaking TCP zerocopy, because P_A and P_C
might have different skb_zcopy_pure() status.

Fixes: 8571248411 ("tcp: coalesce/collapse must respect MPTCP extensions")
Fixes: 9b65b17db723 ("net: avoid double accounting for pure zerocopy skbs")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Mat Martineau <mathew.j.martineau@linux.intel.com>
Cc: Talal Ahmad <talalahmad@google.com>
Cc: Arjun Roy <arjunroy@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Link: https://lore.kernel.org/r/20220201184640.756716-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-02-05 12:37:57 +01:00
Greg Kroah-Hartman
beafee90ec Merge 5.10.68 into android12-5.10-lts
Changes in 5.10.68
	drm/bridge: lt9611: Fix handling of 4k panels
	btrfs: fix upper limit for max_inline for page size 64K
	io_uring: ensure symmetry in handling iter types in loop_rw_iter()
	xen: reset legacy rtc flag for PV domU
	bnx2x: Fix enabling network interfaces without VFs
	arm64/sve: Use correct size when reinitialising SVE state
	PM: base: power: don't try to use non-existing RTC for storing data
	PCI: Add AMD GPU multi-function power dependencies
	drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10
	drm/etnaviv: return context from etnaviv_iommu_context_get
	drm/etnaviv: put submit prev MMU context when it exists
	drm/etnaviv: stop abusing mmu_context as FE running marker
	drm/etnaviv: keep MMU context across runtime suspend/resume
	drm/etnaviv: exec and MMU state is lost when resetting the GPU
	drm/etnaviv: fix MMU context leak on GPU reset
	drm/etnaviv: reference MMU context when setting up hardware state
	drm/etnaviv: add missing MMU context put when reaping MMU mapping
	s390/sclp: fix Secure-IPL facility detection
	x86/pat: Pass valid address to sanitize_phys()
	x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
	tipc: fix an use-after-free issue in tipc_recvmsg
	ethtool: Fix rxnfc copy to user buffer overflow
	net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert
	net-caif: avoid user-triggerable WARN_ON(1)
	ptp: dp83640: don't define PAGE0
	dccp: don't duplicate ccid when cloning dccp sock
	net/l2tp: Fix reference count leak in l2tp_udp_recv_core
	r6040: Restore MDIO clock frequency after MAC reset
	tipc: increase timeout in tipc_sk_enqueue()
	drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused
	perf machine: Initialize srcline string member in add_location struct
	net/mlx5: FWTrace, cancel work on alloc pd error flow
	net/mlx5: Fix potential sleeping in atomic context
	nvme-tcp: fix io_work priority inversion
	events: Reuse value read using READ_ONCE instead of re-reading it
	net: ipa: initialize all filter table slots
	gen_compile_commands: fix missing 'sys' package
	vhost_net: fix OoB on sendmsg() failure.
	net/af_unix: fix a data-race in unix_dgram_poll
	net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
	x86/uaccess: Fix 32-bit __get_user_asm_u64() when CC_HAS_ASM_GOTO_OUTPUT=y
	tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
	selftest: net: fix typo in altname test
	qed: Handle management FW error
	udp_tunnel: Fix udp_tunnel_nic work-queue type
	dt-bindings: arm: Fix Toradex compatible typo
	ibmvnic: check failover_pending in login response
	KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing registers
	bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem()
	net: hns3: pad the short tunnel frame before sending to hardware
	net: hns3: change affinity_mask to numa node range
	net: hns3: disable mac in flr process
	net: hns3: fix the timing issue of VF clearing interrupt sources
	mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
	dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
	mfd: db8500-prcmu: Adjust map to reality
	PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms
	fuse: fix use after free in fuse_read_interrupt()
	PCI: tegra194: Fix handling BME_CHGED event
	PCI: tegra194: Fix MSI-X programming
	PCI: tegra: Fix OF node reference leak
	mfd: Don't use irq_create_mapping() to resolve a mapping
	PCI: rcar: Fix runtime PM imbalance in rcar_pcie_ep_probe()
	tracing/probes: Reject events which have the same name of existing one
	PCI: cadence: Use bitfield for *quirk_retrain_flag* instead of bool
	PCI: cadence: Add quirk flag to set minimum delay in LTSSM Detect.Quiet state
	PCI: j721e: Add PCIe support for J7200
	PCI: j721e: Add PCIe support for AM64
	PCI: Add ACS quirks for Cavium multi-function devices
	watchdog: Start watchdog in watchdog_set_last_hw_keepalive only if appropriate
	octeontx2-af: Add additional register check to rvu_poll_reg()
	Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
	net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
	block, bfq: honor already-setup queue merges
	PCI: ibmphp: Fix double unmap of io_mem
	ethtool: Fix an error code in cxgb2.c
	NTB: Fix an error code in ntb_msit_probe()
	NTB: perf: Fix an error code in perf_setup_inbuf()
	s390/bpf: Fix optimizing out zero-extensions
	s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant
	s390/bpf: Fix branch shortening during codegen pass
	mfd: axp20x: Update AXP288 volatile ranges
	backlight: ktd253: Stabilize backlight
	PCI: of: Don't fail devm_pci_alloc_host_bridge() on missing 'ranges'
	PCI: iproc: Fix BCMA probe resource handling
	netfilter: Fix fall-through warnings for Clang
	netfilter: nft_ct: protect nft_ct_pcpu_template_refcnt with mutex
	KVM: arm64: Restrict IPA size to maximum 48 bits on 4K and 16K page size
	PCI: Fix pci_dev_str_match_path() alloc while atomic bug
	mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
	tracing/boot: Fix a hist trigger dependency for boot time tracing
	mtd: mtdconcat: Judge callback existence based on the master
	mtd: mtdconcat: Check _read, _write callbacks existence before assignment
	KVM: arm64: Fix read-side race on updates to vcpu reset state
	KVM: arm64: Handle PSCI resets before userspace touches vCPU state
	PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
	mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()'
	ARC: export clear_user_page() for modules
	perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}
	perf bench inject-buildid: Handle writen() errors
	gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()'
	gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak
	net: dsa: tag_rtl4_a: Fix egress tags
	selftests: mptcp: clean tmp files in simult_flows
	net: hso: add failure handler for add_net_device
	net: dsa: b53: Fix calculating number of switch ports
	net: dsa: b53: Set correct number of ports in the DSA struct
	netfilter: socket: icmp6: fix use-after-scope
	fq_codel: reject silly quantum parameters
	qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
	ip_gre: validate csum_start only on pull
	net: dsa: b53: Fix IMP port setup on BCM5301x
	bnxt_en: fix stored FW_PSID version masks
	bnxt_en: Fix asic.rev in devlink dev info command
	bnxt_en: log firmware debug notifications
	bnxt_en: Consolidate firmware reset event logging.
	bnxt_en: Convert to use netif_level() helpers.
	bnxt_en: Improve logging of error recovery settings information.
	bnxt_en: Fix possible unintended driver initiated error recovery
	mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000"
	mfd: lpc_sch: Rename GPIOBASE to prevent build error
	net: renesas: sh_eth: Fix freeing wrong tx descriptor
	x86/mce: Avoid infinite loop for copy from user recovery
	bnxt_en: Fix error recovery regression
	net: dsa: bcm_sf2: Fix array overrun in bcm_sf2_num_active_ports()
	Linux 5.10.68

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I542f48f8de516dcabce91d3d399583483aba0da7
2021-09-30 18:35:35 +02:00
zhenggy
53947b68c5 tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
commit 4f884f3962767877d7aabbc1ec124d2c307a4257 upstream.

Commit 10d3be5692 ("tcp-tso: do not split TSO packets at retransmit
time") may directly retrans a multiple segments TSO/GSO packet without
split, Since this commit, we can no longer assume that a retransmitted
packet is a single segment.

This patch fixes the tp->undo_retrans accounting in tcp_sacktag_one()
that use the actual segments(pcount) of the retransmitted packet.

Before that commit (10d3be5692), the assumption underlying the
tp->undo_retrans-- seems correct.

Fixes: 10d3be5692 ("tcp-tso: do not split TSO packets at retransmit time")
Signed-off-by: zhenggy <zhenggy@chinatelecom.cn>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-09-22 12:27:58 +02:00
Greg Kroah-Hartman
afe9ed0e13 Merge 5.10.53 into android12-5.10-lts
Changes in 5.10.53
	ARM: dts: gemini: rename mdio to the right name
	ARM: dts: gemini: add device_type on pci
	ARM: dts: rockchip: Fix thermal sensor cells o rk322x
	ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288
	arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi
	ARM: dts: rockchip: Fix the timer clocks order
	ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x
	ARM: dts: rockchip: Fix power-controller node names for rk3066a
	ARM: dts: rockchip: Fix power-controller node names for rk3188
	ARM: dts: rockchip: Fix power-controller node names for rk3288
	arm64: dts: rockchip: Fix power-controller node names for px30
	arm64: dts: rockchip: Fix power-controller node names for rk3328
	arm64: dts: rockchip: Fix power-controller node names for rk3399
	reset: ti-syscon: fix to_ti_syscon_reset_data macro
	ARM: brcmstb: dts: fix NAND nodes names
	ARM: Cygnus: dts: fix NAND nodes names
	ARM: NSP: dts: fix NAND nodes names
	ARM: dts: BCM63xx: Fix NAND nodes names
	ARM: dts: Hurricane 2: Fix NAND nodes names
	ARM: dts: imx6: phyFLEX: Fix UART hardware flow control
	ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info
	arm64: dts: rockchip: fix regulator-gpio states array
	ARM: dts: ux500: Fix interrupt cells
	ARM: dts: ux500: Rename gpio-controller node
	ARM: dts: ux500: Fix orientation of accelerometer
	ARM: dts: imx6dl-riotboard: configure PHY clock and set proper EEE value
	rtc: mxc_v2: add missing MODULE_DEVICE_TABLE
	kbuild: sink stdout from cmd for silent build
	ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios
	ARM: dts: am437x-gp-evm: fix ti,no-reset-on-init flag for gpios
	ARM: dts: am335x: fix ti,no-reset-on-init flag for gpios
	ARM: dts: OMAP2+: Replace underscores in sub-mailbox node names
	arm64: dts: ti: k3-am654x/j721e/j7200-common-proc-board: Fix MCU_RGMII1_TXC direction
	ARM: tegra: wm8903: Fix polarity of headphones-detection GPIO in device-trees
	ARM: tegra: nexus7: Correct 3v3 regulator GPIO of PM269 variant
	arm64: dts: qcom: sc7180: Move rmtfs memory region
	ARM: dts: stm32: Remove extra size-cells on dhcom-pdk2
	ARM: dts: stm32: Fix touchscreen node on dhcom-pdk2
	ARM: dts: stm32: fix stm32mp157c-odyssey card detect pin
	ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
	ARM: dts: stm32: fix RCC node name on stm32f429 MCU
	ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
	memory: tegra: Fix compilation warnings on 64bit platforms
	firmware: arm_scmi: Add SMCCC discovery dependency in Kconfig
	firmware: arm_scmi: Fix the build when CONFIG_MAILBOX is not selected
	ARM: dts: bcm283x: Fix up MMC node names
	ARM: dts: bcm283x: Fix up GPIO LED node names
	arm64: dts: juno: Update SCPI nodes as per the YAML schema
	ARM: dts: rockchip: fix supply properties in io-domains nodes
	ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
	ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
	ARM: dts: stm32: fix the Odyssey SoM eMMC VQMMC supply
	ARM: dts: stm32: Drop unused linux,wakeup from touchscreen node on DHCOM SoM
	ARM: dts: stm32: Rename spi-flash/mx66l51235l@N to flash@N on DHCOM SoM
	ARM: dts: stm32: fix stpmic node for stm32mp1 boards
	ARM: OMAP2+: Block suspend for am3 and am4 if PM is not configured
	soc/tegra: fuse: Fix Tegra234-only builds
	firmware: tegra: bpmp: Fix Tegra234-only builds
	arm64: dts: ls208xa: remove bus-num from dspi node
	arm64: dts: imx8mq: assign PCIe clocks
	thermal/core: Correct function name thermal_zone_device_unregister()
	thermal/drivers/rcar_gen3_thermal: Do not shadow rcar_gen3_ths_tj_1
	thermal/drivers/imx_sc: Add missing of_node_put for loop iteration
	thermal/drivers/sprd: Add missing of_node_put for loop iteration
	kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
	arch/arm64/boot/dts/marvell: fix NAND partitioning scheme
	rtc: max77686: Do not enforce (incorrect) interrupt trigger type
	scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8
	scsi: libsas: Add LUN number check in .slave_alloc callback
	scsi: libfc: Fix array index out of bound exception
	scsi: qedf: Add check to synchronize abort and flush
	sched/fair: Fix CFS bandwidth hrtimer expiry type
	perf/x86/intel/uncore: Clean up error handling path of iio mapping
	thermal/core/thermal_of: Stop zone device before unregistering it
	s390/traps: do not test MONITOR CALL without CONFIG_BUG
	s390: introduce proper type handling call_on_stack() macro
	cifs: prevent NULL deref in cifs_compose_mount_options()
	firmware: turris-mox-rwtm: add marvell,armada-3700-rwtm-firmware compatible string
	arm64: dts: marvell: armada-37xx: move firmware node to generic dtsi file
	Revert "swap: fix do_swap_page() race with swapoff"
	f2fs: Show casefolding support only when supported
	mm/thp: simplify copying of huge zero page pmd when fork
	mm/userfaultfd: fix uffd-wp special cases for fork()
	mm/page_alloc: fix memory map initialization for descending nodes
	usb: cdns3: Enable TDL_CHK only for OUT ep
	net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear
	net: dsa: mv88e6xxx: enable .port_set_policy() on Topaz
	net: dsa: mv88e6xxx: use correct .stats_set_histogram() on Topaz
	net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz
	net: dsa: mv88e6xxx: enable devlink ATU hash param for Topaz
	net: ipv6: fix return value of ip6_skb_dst_mtu
	netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo
	net/sched: act_ct: fix err check for nf_conntrack_confirm
	vmxnet3: fix cksum offload issues for tunnels with non-default udp ports
	net/sched: act_ct: remove and free nf_table callbacks
	net: bridge: sync fdb to new unicast-filtering ports
	net: netdevsim: use xso.real_dev instead of xso.dev in callback functions of struct xfrmdev_ops
	net: bcmgenet: Ensure all TX/RX queues DMAs are disabled
	net: ip_tunnel: fix mtu calculation for ETHER tunnel devices
	net: moxa: fix UAF in moxart_mac_probe
	net: qcom/emac: fix UAF in emac_remove
	net: ti: fix UAF in tlan_remove_one
	net: send SYNACK packet with accepted fwmark
	net: validate lwtstate->data before returning from skb_tunnel_info()
	Revert "mm/shmem: fix shmem_swapin() race with swapoff"
	net: dsa: properly check for the bridge_leave methods in dsa_switch_bridge_leave()
	net: fddi: fix UAF in fza_probe
	dma-buf/sync_file: Don't leak fences on merge failure
	kbuild: do not suppress Kconfig prompts for silent build
	ARM: dts: aspeed: Fix AST2600 machines line names
	ARM: dts: tacoma: Add phase corrections for eMMC
	tcp: consistently disable header prediction for mptcp
	tcp: annotate data races around tp->mtu_info
	tcp: fix tcp_init_transfer() to not reset icsk_ca_initialized
	ipv6: tcp: drop silly ICMPv6 packet too big messages
	tcp: call sk_wmem_schedule before sk_mem_charge in zerocopy path
	tools: bpf: Fix error in 'make -C tools/ bpf_install'
	bpftool: Properly close va_list 'ap' by va_end() on error
	bpf: Track subprog poke descriptors correctly and fix use-after-free
	perf test bpf: Free obj_buf
	drm/panel: nt35510: Do not fail if DSI read fails
	udp: annotate data races around unix_sk(sk)->gso_size
	Linux 5.10.53

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iac8fe9cd2abb2d8dd993967205a97c89f01f3647
2021-07-25 15:37:14 +02:00
Nguyen Dinh Phi
ad4ba34049 tcp: fix tcp_init_transfer() to not reset icsk_ca_initialized
commit be5d1b61a2ad28c7e57fe8bfa277373e8ecffcdc upstream.

This commit fixes a bug (found by syzkaller) that could cause spurious
double-initializations for congestion control modules, which could cause
memory leaks or other problems for congestion control modules (like CDG)
that allocate memory in their init functions.

The buggy scenario constructed by syzkaller was something like:

(1) create a TCP socket
(2) initiate a TFO connect via sendto()
(3) while socket is in TCP_SYN_SENT, call setsockopt(TCP_CONGESTION),
    which calls:
       tcp_set_congestion_control() ->
         tcp_reinit_congestion_control() ->
           tcp_init_congestion_control()
(4) receive ACK, connection is established, call tcp_init_transfer(),
    set icsk_ca_initialized=0 (without first calling cc->release()),
    call tcp_init_congestion_control() again.

Note that in this sequence tcp_init_congestion_control() is called
twice without a cc->release() call in between. Thus, for CC modules
that allocate memory in their init() function, e.g, CDG, a memory leak
may occur. The syzkaller tool managed to find a reproducer that
triggered such a leak in CDG.

The bug was introduced when that commit 8919a9b31e ("tcp: Only init
congestion control if not initialized already")
introduced icsk_ca_initialized and set icsk_ca_initialized to 0 in
tcp_init_transfer(), missing the possibility for a sequence like the
one above, where a process could call setsockopt(TCP_CONGESTION) in
state TCP_SYN_SENT (i.e. after the connect() or TFO open sendmsg()),
which would call tcp_init_congestion_control(). It did not intend to
reset any initialization that the user had already explicitly made;
it just missed the possibility of that particular sequence (which
syzkaller managed to find).

Fixes: 8919a9b31e ("tcp: Only init congestion control if not initialized already")
Reported-by: syzbot+f1e24a0594d4e3a895d3@syzkaller.appspotmail.com
Signed-off-by: Nguyen Dinh Phi <phind.uet@gmail.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Tested-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-07-25 14:36:21 +02:00
Greg Kroah-Hartman
8db62be3c3 Merge 5.10.51 into android12-5.10-lts
Changes in 5.10.51
	drm/mxsfb: Don't select DRM_KMS_FB_HELPER
	drm/zte: Don't select DRM_KMS_FB_HELPER
	drm/ast: Fixed CVE for DP501
	drm/amd/display: fix HDCP reset sequence on reinitialize
	drm/amd/amdgpu/sriov disable all ip hw status by default
	drm/vc4: fix argument ordering in vc4_crtc_get_margins()
	drm/bridge: nwl-dsi: Force a full modeset when crtc_state->active is changed to be true
	net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
	drm/amd/display: fix use_max_lb flag for 420 pixel formats
	clk: renesas: rcar-usb2-clock-sel: Fix error handling in .probe()
	hugetlb: clear huge pte during flush function on mips platform
	atm: iphase: fix possible use-after-free in ia_module_exit()
	mISDN: fix possible use-after-free in HFC_cleanup()
	atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
	net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
	drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init()
	net: mdio: ipq8064: add regmap config to disable REGCACHE
	drm/bridge: lt9611: Add missing MODULE_DEVICE_TABLE
	reiserfs: add check for invalid 1st journal block
	drm/virtio: Fix double free on probe failure
	net: mdio: provide shim implementation of devm_of_mdiobus_register
	net/sched: cls_api: increase max_reclassify_loop
	pinctrl: equilibrium: Add missing MODULE_DEVICE_TABLE
	drm/scheduler: Fix hang when sched_entity released
	drm/sched: Avoid data corruptions
	udf: Fix NULL pointer dereference in udf_symlink function
	drm/vc4: Fix clock source for VEC PixelValve on BCM2711
	drm/vc4: hdmi: Fix PM reference leak in vc4_hdmi_encoder_pre_crtc_co()
	e100: handle eeprom as little endian
	igb: handle vlan types with checker enabled
	igb: fix assignment on big endian machines
	drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer()
	clk: renesas: r8a77995: Add ZA2 clock
	net/mlx5e: IPsec/rep_tc: Fix rep_tc_update_skb drops IPsec packet
	net/mlx5: Fix lag port remapping logic
	drm: rockchip: add missing registers for RK3188
	drm: rockchip: add missing registers for RK3066
	net: stmmac: the XPCS obscures a potential "PHY not found" error
	RDMA/rtrs: Change MAX_SESS_QUEUE_DEPTH
	clk: tegra: Fix refcounting of gate clocks
	clk: tegra: Ensure that PLLU configuration is applied properly
	drm: bridge: cdns-mhdp8546: Fix PM reference leak in
	virtio-net: Add validation for used length
	ipv6: use prandom_u32() for ID generation
	MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B)
	MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
	drm/amd/display: Avoid HDCP over-read and corruption
	drm/amdgpu: remove unsafe optimization to drop preamble ib
	net: tcp better handling of reordering then loss cases
	RDMA/cxgb4: Fix missing error code in create_qp()
	dm space maps: don't reset space map allocation cursor when committing
	dm writecache: don't split bios when overwriting contiguous cache content
	dm: Fix dm_accept_partial_bio() relative to zone management commands
	net: bridge: mrp: Update ring transitions.
	pinctrl: mcp23s08: fix race condition in irq handler
	ice: set the value of global config lock timeout longer
	ice: fix clang warning regarding deadcode.DeadStores
	virtio_net: Remove BUG() to avoid machine dead
	net: mscc: ocelot: check return value after calling platform_get_resource()
	net: bcmgenet: check return value after calling platform_get_resource()
	net: mvpp2: check return value after calling platform_get_resource()
	net: micrel: check return value after calling platform_get_resource()
	net: moxa: Use devm_platform_get_and_ioremap_resource()
	drm/amd/display: Fix DCN 3.01 DSCCLK validation
	drm/amd/display: Update scaling settings on modeset
	drm/amd/display: Release MST resources on switch from MST to SST
	drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7
	drm/amd/display: Fix off-by-one error in DML
	net: phy: realtek: add delay to fix RXC generation issue
	selftests: Clean forgotten resources as part of cleanup()
	net: sgi: ioc3-eth: check return value after calling platform_get_resource()
	drm/amdkfd: use allowed domain for vmbo validation
	fjes: check return value after calling platform_get_resource()
	selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
	r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM
	drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check
	xfrm: Fix error reporting in xfrm_state_construct.
	dm writecache: commit just one block, not a full page
	wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
	wl1251: Fix possible buffer overflow in wl1251_cmd_scan
	cw1200: add missing MODULE_DEVICE_TABLE
	drm/amdkfd: fix circular locking on get_wave_state
	drm/amdkfd: Fix circular lock in nocpsch path
	bpf: Fix up register-based shifts in interpreter to silence KUBSAN
	ice: fix incorrect payload indicator on PTYPE
	ice: mark PTYPE 2 as reserved
	mt76: mt7615: fix fixed-rate tx status reporting
	net: fix mistake path for netdev_features_strings
	net: ipa: Add missing of_node_put() in ipa_firmware_load()
	net: sched: fix error return code in tcf_del_walker()
	io_uring: fix false WARN_ONCE
	drm/amdgpu: fix bad address translation for sienna_cichlid
	drm/amdkfd: Walk through list with dqm lock hold
	mt76: mt7915: fix IEEE80211_HE_PHY_CAP7_MAX_NC for station mode
	rtl8xxxu: Fix device info for RTL8192EU devices
	MIPS: add PMD table accounting into MIPS'pmd_alloc_one
	net: fec: add ndo_select_queue to fix TX bandwidth fluctuations
	atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
	atm: nicstar: register the interrupt handler in the right place
	vsock: notify server to shutdown when client has pending signal
	RDMA/rxe: Don't overwrite errno from ib_umem_get()
	iwlwifi: mvm: don't change band on bound PHY contexts
	iwlwifi: mvm: fix error print when session protection ends
	iwlwifi: pcie: free IML DMA memory allocation
	iwlwifi: pcie: fix context info freeing
	sfc: avoid double pci_remove of VFs
	sfc: error code if SRIOV cannot be disabled
	wireless: wext-spy: Fix out-of-bounds warning
	cfg80211: fix default HE tx bitrate mask in 2G band
	mac80211: consider per-CPU statistics if present
	mac80211_hwsim: add concurrent channels scanning support over virtio
	IB/isert: Align target max I/O size to initiator size
	media, bpf: Do not copy more entries than user space requested
	net: ip: avoid OOM kills with large UDP sends over loopback
	RDMA/cma: Fix rdma_resolve_route() memory leak
	Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip.
	Bluetooth: Fix the HCI to MGMT status conversion table
	Bluetooth: Fix alt settings for incoming SCO with transparent coding format
	Bluetooth: Shutdown controller after workqueues are flushed or cancelled
	Bluetooth: btusb: Add a new QCA_ROME device (0cf3:e500)
	Bluetooth: L2CAP: Fix invalid access if ECRED Reconfigure fails
	Bluetooth: L2CAP: Fix invalid access on ECRED Connection response
	Bluetooth: btusb: Add support USB ALT 3 for WBS
	Bluetooth: mgmt: Fix the command returns garbage parameter value
	Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
	sched/fair: Ensure _sum and _avg values stay consistent
	bpf: Fix false positive kmemleak report in bpf_ringbuf_area_alloc()
	flow_offload: action should not be NULL when it is referenced
	sctp: validate from_addr_param return
	sctp: add size validation when walking chunks
	MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
	MIPS: set mips32r5 for virt extensions
	selftests/resctrl: Fix incorrect parsing of option "-t"
	MIPS: MT extensions are not available on MIPS32r1
	ath11k: unlock on error path in ath11k_mac_op_add_interface()
	arm64: dts: rockchip: add rk3328 dwc3 usb controller node
	arm64: dts: rockchip: Enable USB3 for rk3328 Rock64
	loop: fix I/O error on fsync() in detached loop devices
	mm,hwpoison: return -EBUSY when migration fails
	io_uring: simplify io_remove_personalities()
	io_uring: Convert personality_idr to XArray
	io_uring: convert io_buffer_idr to XArray
	scsi: iscsi: Fix race condition between login and sync thread
	scsi: iscsi: Fix iSCSI cls conn state
	powerpc/mm: Fix lockup on kernel exec fault
	powerpc/barrier: Avoid collision with clang's __lwsync macro
	powerpc/powernv/vas: Release reference to tgid during window close
	drm/amdgpu: Update NV SIMD-per-CU to 2
	drm/amdgpu: enable sdma0 tmz for Raven/Renoir(V2)
	drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create()
	drm/radeon: Call radeon_suspend_kms() in radeon_pci_shutdown() for Loongson64
	drm/vc4: txp: Properly set the possible_crtcs mask
	drm/vc4: crtc: Skip the TXP
	drm/vc4: hdmi: Prevent clock unbalance
	drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info()
	drm/rockchip: dsi: remove extra component_del() call
	drm/amd/display: fix incorrrect valid irq check
	pinctrl/amd: Add device HID for new AMD GPIO controller
	drm/amd/display: Reject non-zero src_y and src_x for video planes
	drm/tegra: Don't set allow_fb_modifiers explicitly
	drm/msm/mdp4: Fix modifier support enabling
	drm/arm/malidp: Always list modifiers
	drm/nouveau: Don't set allow_fb_modifiers explicitly
	drm/i915/display: Do not zero past infoframes.vsc
	mmc: sdhci-acpi: Disable write protect detection on Toshiba Encore 2 WT8-B
	mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
	mmc: core: clear flags before allowing to retune
	mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
	ata: ahci_sunxi: Disable DIPM
	arm64: tlb: fix the TTL value of tlb_get_level
	cpu/hotplug: Cure the cpusets trainwreck
	clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
	fpga: stratix10-soc: Add missing fpga_mgr_free() call
	ASoC: tegra: Set driver_name=tegra for all machine drivers
	i40e: fix PTP on 5Gb links
	qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
	ipmi/watchdog: Stop watchdog timer when the current action is 'none'
	thermal/drivers/int340x/processor_thermal: Fix tcc setting
	ubifs: Fix races between xattr_{set|get} and listxattr operations
	power: supply: ab8500: Fix an old bug
	mfd: syscon: Free the allocated name field of struct regmap_config
	nvmem: core: add a missing of_node_put
	lkdtm/bugs: XFAIL UNALIGNED_LOAD_STORE_WRITE
	selftests/lkdtm: Fix expected text for CR4 pinning
	extcon: intel-mrfld: Sync hardware and software state on init
	seq_buf: Fix overflow in seq_buf_putmem_hex()
	rq-qos: fix missed wake-ups in rq_qos_throttle try two
	tracing: Simplify & fix saved_tgids logic
	tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
	ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe
	coresight: Propagate symlink failure
	coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
	dm zoned: check zone capacity
	dm writecache: flush origin device when writing and cache is full
	dm btree remove: assign new_root only when removal succeeds
	PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
	PCI: aardvark: Fix checking for PIO Non-posted Request
	PCI: aardvark: Implement workaround for the readback value of VEND_ID
	media: subdev: disallow ioctl for saa6588/davinci
	media: dtv5100: fix control-request directions
	media: zr364xx: fix memory leak in zr364xx_start_readpipe
	media: gspca/sq905: fix control-request direction
	media: gspca/sunplus: fix zero-length control requests
	media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
	io_uring: fix clear IORING_SETUP_R_DISABLED in wrong function
	dm writecache: write at least 4k when committing
	pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
	drm/ast: Remove reference to struct drm_device.pdev
	jfs: fix GPF in diFree
	smackfs: restrict bytes count in smk_set_cipso()
	ext4: fix memory leak in ext4_fill_super
	f2fs: fix to avoid racing on fsync_entry_slab by multi filesystem instances
	Linux 5.10.51

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Icb10fed733a0050848ecc23db13ae3d134895acd
2021-07-19 17:29:53 +02:00
Yuchung Cheng
f9c67c179e net: tcp better handling of reordering then loss cases
[ Upstream commit a29cb6914681a55667436a9eb7a42e28da8cf387 ]

This patch aims to improve the situation when reordering and loss are
ocurring in the same flight of packets.

Previously the reordering would first induce a spurious recovery, then
the subsequent ACK may undo the cwnd (based on the timestamps e.g.).
However the current loss recovery does not proceed to invoke
RACK to install a reordering timer. If some packets are also lost, this
may lead to a long RTO-based recovery. An example is
https://groups.google.com/g/bbr-dev/c/OFHADvJbTEI

The solution is to after reverting the recovery, always invoke RACK
to either mount the RACK timer to fast retransmit after the reordering
window, or restarts the recovery if new loss is identified. Hence
it is possible the sender may go from Recovery to Disorder/Open to
Recovery again in one ACK.

Reported-by: mingkun bian <bianmingkun@gmail.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-19 09:44:45 +02:00
Bae Soukjin
2cff74e08c ANDROID: vendor_hooks: Add vendor hook to the net
android_vh_ptype_head:
    To add a debugging chain to ptype list

  android_vh_kfree_skb
    To sniff the dropped packet at kernel network

Bug: 163716381

Signed-off-by: Bae Soukjin <soukjin.bae@samsung.com>
Change-Id: Ide80bf0a129da31a1824d4a33026ac42be327361
(cherry picked from commit d88b2969cf)
(cherry picked from commit a8021ba684c584b8a4361d1680f6e466748ab012)
2021-07-09 05:02:33 +00:00
Pengcheng Yang
a9cd144eb7 tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
commit 62d9f1a6945ba69c125e548e72a36d203b30596e upstream.

Upon receiving a cumulative ACK that changes the congestion state from
Disorder to Open, the TLP timer is not set. If the sender is app-limited,
it can only wait for the RTO timer to expire and retransmit.

The reason for this is that the TLP timer is set before the congestion
state changes in tcp_ack(), so we delay the time point of calling
tcp_set_xmit_timer() until after tcp_fastretrans_alert() returns and
remove the FLAG_SET_XMIT_TIMER from ack_flag when the RACK reorder timer
is set.

This commit has two additional benefits:
1) Make sure to reset RTO according to RFC6298 when receiving ACK, to
avoid spurious RTO caused by RTO timer early expires.
2) Reduce the xmit timer reschedule once per ACK when the RACK reorder
timer is set.

Fixes: df92c8394e ("tcp: fix xmit timer to only be reset if data ACKed/SACKed")
Link: https://lore.kernel.org/netdev/1611311242-6675-1-git-send-email-yangpc@wangsu.com
Signed-off-by: Pengcheng Yang <yangpc@wangsu.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/1611464834-23030-1-git-send-email-yangpc@wangsu.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-03 23:28:52 +01:00
Enke Chen
011c3d9427 tcp: make TCP_USER_TIMEOUT accurate for zero window probes
commit 344db93ae3ee69fc137bd6ed89a8ff1bf5b0db08 upstream.

The TCP_USER_TIMEOUT is checked by the 0-window probe timer. As the
timer has backoff with a max interval of about two minutes, the
actual timeout for TCP_USER_TIMEOUT can be off by up to two minutes.

In this patch the TCP_USER_TIMEOUT is made more accurate by taking it
into account when computing the timer value for the 0-window probes.

This patch is similar to and builds on top of the one that made
TCP_USER_TIMEOUT accurate for RTOs in commit b701a99e43 ("tcp: Add
tcp_clamp_rto_to_user_timeout() helper to improve accuracy").

Fixes: 9721e709fa ("tcp: simplify window probe aborting on USER_TIMEOUT")
Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20210122191306.GA99540@localhost.localdomain
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-03 23:28:51 +01:00
Enke Chen
70746a4779 tcp: fix TCP_USER_TIMEOUT with zero window
commit 9d9b1ee0b2d1c9e02b2338c4a4b0a062d2d3edac upstream.

The TCP session does not terminate with TCP_USER_TIMEOUT when data
remain untransmitted due to zero window.

The number of unanswered zero-window probes (tcp_probes_out) is
reset to zero with incoming acks irrespective of the window size,
as described in tcp_probe_timer():

    RFC 1122 4.2.2.17 requires the sender to stay open indefinitely
    as long as the receiver continues to respond probes. We support
    this by default and reset icsk_probes_out with incoming ACKs.

This counter, however, is the wrong one to be used in calculating the
duration that the window remains closed and data remain untransmitted.
Thanks to Jonathan Maxwell <jmaxwell37@gmail.com> for diagnosing the
actual issue.

In this patch a new timestamp is introduced for the socket in order to
track the elapsed time for the zero-window probes that have not been
answered with any non-zero window ack.

Fixes: 9721e709fa ("tcp: simplify window probe aborting on USER_TIMEOUT")
Reported-by: William McCall <william.mccall@gmail.com>
Co-developed-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
Reviewed-by: Yuchung Cheng <ycheng@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20210115223058.GA39267@localhost.localdomain
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-27 11:55:25 +01:00
Yuchung Cheng
a6fc8314dc tcp: fix TCP socket rehash stats mis-accounting
commit 9c30ae8398b0813e237bde387d67a7f74ab2db2d upstream.

The previous commit 32efcc06d2 ("tcp: export count for rehash attempts")
would mis-account rehashing SNMP and socket stats:

  a. During handshake of an active open, only counts the first
     SYN timeout

  b. After handshake of passive and active open, stop updating
     after (roughly) TCP_RETRIES1 recurring RTOs

  c. After the socket aborts, over count timeout_rehash by 1

This patch fixes this by checking the rehash result from sk_rethink_txhash.

Fixes: 32efcc06d2 ("tcp: export count for rehash attempts")
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Link: https://lore.kernel.org/r/20210119192619.1848270-1-ycheng@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-27 11:55:23 +01:00
Eric Dumazet
72d05c00d7 tcp: select sane initial rcvq_space.space for big MSS
Before commit a337531b94 ("tcp: up initial rmem to 128KB and SYN rwin to around 64KB")
small tcp_rmem[1] values were overridden by tcp_fixup_rcvbuf() to accommodate various MSS.

This is no longer the case, and Hazem Mohamed Abuelfotoh reported
that DRS would not work for MTU 9000 endpoints receiving regular (1500 bytes) frames.

Root cause is that tcp_init_buffer_space() uses tp->rcv_wnd for upper limit
of rcvq_space.space computation, while it can select later a smaller
value for tp->rcv_ssthresh and tp->window_clamp.

ss -temoi on receiver would show :

skmem:(r0,rb131072,t0,tb46080,f0,w0,o0,bl0,d0) rcv_space:62496 rcv_ssthresh:56596

This means that TCP can not increase its window in tcp_grow_window(),
and that DRS can never kick.

Fix this by making sure that rcvq_space.space is not bigger than number of bytes
that can be held in TCP receive queue.

People unable/unwilling to change their kernel can work around this issue by
selecting a bigger tcp_rmem[1] value as in :

echo "4096 196608 6291456" >/proc/sys/net/ipv4/tcp_rmem

Based on an initial report and patch from Hazem Mohamed Abuelfotoh
 https://lore.kernel.org/netdev/20201204180622.14285-1-abuehaze@amazon.com/

Fixes: a337531b94 ("tcp: up initial rmem to 128KB and SYN rwin to around 64KB")
Fixes: 041a14d267 ("tcp: start receiver buffer autotuning sooner")
Reported-by: Hazem Mohamed Abuelfotoh <abuehaze@amazon.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-12-08 16:27:48 -08:00
Arjun Roy
435ccfa894 tcp: Prevent low rmem stalls with SO_RCVLOWAT.
With SO_RCVLOWAT, under memory pressure,
it is possible to enter a state where:

1. We have not received enough bytes to satisfy SO_RCVLOWAT.
2. We have not entered buffer pressure (see tcp_rmem_pressure()).
3. But, we do not have enough buffer space to accept more packets.

In this case, we advertise 0 rwnd (due to #3) but the application does
not drain the receive queue (no wakeup because of #1 and #2) so the
flow stalls.

Modify the heuristic for SO_RCVLOWAT so that, if we are advertising
rwnd<=rcv_mss, force a wakeup to prevent a stall.

Without this patch, setting tcp_rmem to 6143 and disabling TCP
autotune causes a stalled flow. With this patch, no stall occurs. This
is with RPC-style traffic with large messages.

Fixes: 03f45c883c ("tcp: avoid extra wakeups for SO_RCVLOWAT users")
Signed-off-by: Arjun Roy <arjunroy@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20201023184709.217614-1-arjunroy.kdev@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-10-23 19:11:20 -07:00
Neal Cardwell
18ded910b5 tcp: fix to update snd_wl1 in bulk receiver fast path
In the header prediction fast path for a bulk data receiver, if no
data is newly acknowledged then we do not call tcp_ack() and do not
call tcp_ack_update_window(). This means that a bulk receiver that
receives large amounts of data can have the incoming sequence numbers
wrap, so that the check in tcp_may_update_window fails:
   after(ack_seq, tp->snd_wl1)

If the incoming receive windows are zero in this state, and then the
connection that was a bulk data receiver later wants to send data,
that connection can find itself persistently rejecting the window
updates in incoming ACKs. This means the connection can persistently
fail to discover that the receive window has opened, which in turn
means that the connection is unable to send anything, and the
connection's sending process can get permanently "stuck".

The fix is to update snd_wl1 in the header prediction fast path for a
bulk data receiver, so that it keeps up and does not see wrapping
problems.

This fix is based on a very nice and thorough analysis and diagnosis
by Apollon Oikonomopoulos (see link below).

This is a stable candidate but there is no Fixes tag here since the
bug predates current git history. Just for fun: looks like the bug
dates back to when header prediction was added in Linux v2.1.8 in Nov
1996. In that version tcp_rcv_established() was added, and the code
only updates snd_wl1 in tcp_ack(), and in the new "Bulk data transfer:
receiver" code path it does not call tcp_ack(). This fix seems to
apply cleanly at least as far back as v3.2.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Reported-by: Apollon Oikonomopoulos <apoikos@dmesg.gr>
Tested-by: Apollon Oikonomopoulos <apoikos@dmesg.gr>
Link: https://www.spinics.net/lists/netdev/msg692430.html
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20201022143331.1887495-1-ncardwell.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-10-22 12:26:57 -07:00
Julia Lawall
44797589c2 tcp: use semicolons rather than commas to separate statements
Replace commas with semicolons.  Commas introduce unnecessary
variability in the code structure and are hard to see.  What is done
is essentially described by the following Coccinelle semantic patch
(http://coccinelle.lip6.fr/):

// <smpl>
@@ expression e1,e2; @@
e1
-,
+;
e2
... when any
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/1602412498-32025-4-git-send-email-Julia.Lawall@inria.fr
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-10-13 17:11:52 -07:00