"LA.UM.9.14.r1-23300-LAHAINA.QSSI14.0"
* tag 'LA.UM.9.14.r1-23300-LAHAINA.QSSI14.0' of https://git.codelinaro.org/clo/la/platform/vendor/opensource/display-drivers:
disp: msm: sde: skip msm_lastclose if display is stuck in splash
disp: msm: cancel all delayed_works before triggering msm_lastclose
disp: msm: sde: cancel delayed work items during TUI transition
Change-Id: I8dbdda8ada31d7d58a5aceaf7e72d6955cee2ec2
"LA.UM.9.14.r1-23300-LAHAINA.QSSI14.0"
* tag 'LA.UM.9.14.r1-23300-LAHAINA.QSSI14.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0:
Release 2.0.8.34F
qcacld-3.0: Initialize vhtcap and vhtop IE variables
Release 2.0.8.34E
qcacld-3.0: Fix incorrect channel width downgrade
Release 2.0.8.34D
qcacld-3.0: Free HE op element memory for change interface
Release 2.0.8.34C
qcacld-3.0: Stop SAP if all channels are disabled
qcacld-3.0: Restart SAP if current channel is disabled
qcacld-3.0: Modify condition to cover 5G+160MHz
Release 2.0.8.34B
qcacld-3.0: Fix ethertype inspection logic of offload tx data pkt
qcacld-3.0: Fix condition to forward beacon to packet capture interface
Release 2.0.8.34A
qcacld-3.0: Get netdev from wdev instead of iface name
Release 2.0.8.34
qcacld-3.0: Fix to halve tx power received from TPE IE
Release 2.0.8.33Z
qcacld-3.0: Release wakelock when psoc idle timer is stopped
qcacld-3.0: Acquire a wakelock whenever packet capture mode is enabled
Release 2.0.8.33Y
qcacld-3.0: Update set_disable_channel_list cmd for 6 GHz channels
Release 2.0.8.33X
qcacld-3.0: Don't use reg_cache_channel_state
Release 2.0.8.33W
qcacld-3.0: Add vendor attribute to configure ARP/NS offload
Change-Id: Ia3dfacd676d6401955853ca26314e33d7010e4d6
https://source.android.com/docs/security/bulletin/2023-12-01
* tag 'ASB-2023-12-05_11-5.4' of https://android.googlesource.com/kernel/common:
ANDROID: ABI: Update allowed list for QCOM
BACKPORT: ALSA: compress: Allow pause and resume during draining
UPSTREAM: netfilter: nf_tables: pass context to nft_set_destroy()
UPSTREAM: netfilter: nf_tables: don't skip expired elements during walk
ANDROID: GKI: db845c: Update symbols list and ABI on rpmsg_register_device_override
ANDROID: Use GKI Dr. No OWNERS file
ANDROID: Remove android/OWNERs file
FROMGIT: Input: uinput - allow injecting event times
ANDROID: fix up rpmsg_device ABI break
ANDROID: fix up platform_device ABI break
UPSTREAM: rpmsg: Fix possible refcount leak in rpmsg_register_device_override()
UPSTREAM: rpmsg: glink: Release driver_override
BACKPORT: rpmsg: Fix calling device_lock() on non-initialized device
BACKPORT: rpmsg: Fix kfree() of static memory on setting driver_override
UPSTREAM: rpmsg: Constify local variable in field store macro
UPSTREAM: driver: platform: Add helper for safer setting of driver_override
BACKPORT: firmware_loader: Abort all upcoming firmware load request once reboot triggered
UPSTREAM: firmware_loader: Refactor kill_pending_fw_fallback_reqs()
Revert "perf: Disallow mis-matched inherited group reads"
Revert "xfrm: fix a data-race in xfrm_gen_index()"
Revert "Bluetooth: hci_core: Fix build warnings"
Revert "xfrm: interface: use DEV_STATS_INC()"
Revert "netfilter: conntrack: allow sctp hearbeat after connection re-use"
Revert "netfilter: conntrack: don't refresh sctp entries in closed state"
Revert "netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp"
Reapply "netfilter: conntrack: don't refresh sctp entries in closed state"
Reapply "netfilter: conntrack: allow sctp hearbeat after connection re-use"
Linux 5.4.259
xfrm6: fix inet6_dev refcount underflow problem
Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name
Bluetooth: hci_sock: fix slab oob read in create_monitor_event
phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
phy: mapphone-mdm6600: Fix runtime PM for remove
phy: mapphone-mdm6600: Fix runtime disable on probe
ASoC: pxa: fix a memory leak in probe()
gpio: vf610: set value before the direction to avoid a glitch
s390/pci: fix iommu bitmap allocation
perf: Disallow mis-matched inherited group reads
USB: serial: option: add Fibocom to DELL custom modem FM101R-GL
USB: serial: option: add entry for Sierra EM9191 with new firmware
USB: serial: option: add Telit LE910C4-WWX 0x1035 composition
ACPI: irq: Fix incorrect return value in acpi_register_gsi()
Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
mmc: core: Capture correct oemid-bits for eMMC cards
mmc: core: sdio: hold retuning if sdio in 1-bit mode
mtd: physmap-core: Restore map_rom fallback
mtd: spinand: micron: correct bitmask for ecc status
mtd: rawnand: qcom: Unmap the right resource upon probe failure
Bluetooth: hci_event: Fix using memcmp when comparing keys
HID: multitouch: Add required quirk for Synaptics 0xcd7e device
btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c
drm: panel-orientation-quirks: Add quirk for One Mix 2S
sky2: Make sure there is at least one frag_addr available
regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()"
wifi: cfg80211: avoid leaking stack data into trace
wifi: mac80211: allow transmitting EAPOL frames with tainted key
Bluetooth: hci_core: Fix build warnings
Bluetooth: Avoid redundant authentication
HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
tracing: relax trace_event_eval_update() execution with cond_resched()
ata: libata-eh: Fix compilation warning in ata_eh_link_report()
gpio: timberdale: Fix potential deadlock on &tgpio->lock
overlayfs: set ctime when setting mtime and atime
i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
btrfs: initialize start_slot in btrfs_log_prealloc_extents
btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1
ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA
ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA
ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks
ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA
ACPI: resource: Add ASUS model S5402ZA to quirks
ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA
ACPI: resources: Add DMI-based legacy IRQ override quirk
ACPI: Drop acpi_dev_irqresource_disabled()
resource: Add irqresource_disabled()
net: pktgen: Fix interface flags printing
netfilter: nft_set_rbtree: .deactivate fails if element has expired
neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section
net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve
i40e: prevent crash on probe if hw registers have invalid values
net: usb: smsc95xx: Fix an error code in smsc95xx_reset()
ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr
tun: prevent negative ifindex
tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb
tcp: fix excessive TLP and RACK timeouts from HZ rounding
net: rfkill: gpio: prevent value glitch during probe
net: ipv6: fix return value check in esp_remove_trailer
net: ipv4: fix return value check in esp_remove_trailer
xfrm: interface: use DEV_STATS_INC()
xfrm: fix a data-race in xfrm_gen_index()
qed: fix LL2 RX buffer allocation
netfilter: nft_payload: fix wrong mac header matching
KVM: x86: Mask LVTPC when handling a PMI
regmap: fix NULL deref on lookup
nfc: nci: fix possible NULL pointer dereference in send_acknowledge()
ice: fix over-shifted variable
Bluetooth: avoid memcmp() out of bounds warning
Bluetooth: hci_event: Fix coding style
Bluetooth: vhci: Fix race when opening vhci device
Bluetooth: Fix a refcnt underflow problem for hci_conn
Bluetooth: Reject connection with the device which has same BD_ADDR
Bluetooth: hci_event: Ignore NULL link key
usb: hub: Guard against accesses to uninitialized BOS descriptors
Documentation: sysctl: align cells in second content column
dev_forward_skb: do not scrub skb mark within the same name space
ravb: Fix use-after-free issue in ravb_tx_timeout_work()
powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
dmaengine: mediatek: Fix deadlock caused by synchronize_irq()
x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call
usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
pinctrl: avoid unsafe code pattern in find_pinctrl()
cgroup: Remove duplicates in cgroup v1 tasks file
Input: xpad - add PXN V900 support
Input: psmouse - fix fast_reconnect function for PS/2 mode
Input: powermate - fix use-after-free in powermate_config_complete
ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
libceph: use kernel_connect()
mcb: remove is_added flag from mcb_device struct
iio: pressure: ms5611: ms5611_prom_is_valid false negative bug
iio: pressure: dps310: Adjust Timeout Settings
iio: pressure: bmp280: Fix NULL pointer exception
usb: musb: Modify the "HWVers" register address
usb: musb: Get the musb_qh poniter after musb_giveback
usb: dwc3: Soft reset phy on probe for host
net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read
usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer
dmaengine: stm32-mdma: abort resume if no ongoing transfer
workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()
nfc: nci: assert requested protocol is valid
net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn()
ixgbe: fix crash with empty VF macvlan list
drm/vmwgfx: fix typo of sizeof argument
xen-netback: use default TX queue size for vifs
mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type
ieee802154: ca8210: Fix a potential UAF in ca8210_probe
ravb: Fix up dma_free_coherent() call in ravb_remove()
drm/msm/dsi: skip the wait for video mode done if not applicable
drm: etvnaviv: fix bad backport leading to warning
net: prevent address rewrite in kernel_bind()
quota: Fix slow quotaoff
HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect
pwm: hibvt: Explicitly set .polarity in .get_state()
lib/test_meminit: fix off-by-one error in test_pages()
RDMA/cxgb4: Check skb value for failure to allocate
Reapply "ANDROID: Revert "tracing/ring-buffer: Have polling block on watermark""
Revert "ring-buffer: Update "shortest_full" in polling"
Revert "ANDROID: Revert "tracing/ring-buffer: Have polling block on watermark""
Revert "net: bridge: use DEV_STATS_INC()"
FROMLIST: lib/test_meminit: fix off-by-one error in test_pages()
Linux 5.4.258
xen/events: replace evtchn_rwlock with RCU
ima: rework CONFIG_IMA dependency block
NFS: Fix a race in __nfs_list_for_each_server()
parisc: Restore __ldcw_align for PA-RISC 2.0 processors
RDMA/mlx5: Fix NULL string error
RDMA/siw: Fix connection failure handling
RDMA/uverbs: Fix typo of sizeof argument
RDMA/cma: Fix truncation compilation warning in make_cma_ports
gpio: pxa: disable pinctrl calls for MMP_GPIO
gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
IB/mlx4: Fix the size of a buffer in add_port_entries()
RDMA/core: Require admin capabilities to set system parameters
cpupower: add Makefile dependencies for install targets
sctp: update hb timer immediately after users change hb_interval
sctp: update transport state when processing a dupcook packet
tcp: fix delayed ACKs for MSS boundary condition
tcp: fix quick-ack counting to count actual ACKs of new data
net: stmmac: dwmac-stm32: fix resume on STM32 MCU
netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp
net: nfc: llcp: Add lock when modifying device list
net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
net: fix possible store tearing in neigh_periodic_work()
modpost: add missing else to the "of" check
NFSv4: Fix a nfs4_state_manager() race
NFS: Add a helper nfs_client_for_each_server()
NFS4: Trace state recovery operation
wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
wifi: mwifiex: Fix tlv_buf_left calculation
scsi: target: core: Fix deadlock due to recursive locking
drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close()
qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
regmap: rbtree: Fix wrong register marked as in-cache when creating new node
wifi: iwlwifi: dbg_ini: fix structure packing
ubi: Refuse attaching if mtd's erasesize is 0
net: prevent rewrite of msg_name in sock_sendmsg()
net: replace calls to sock->ops->connect() with kernel_connect()
fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
scsi: zfcp: Fix a double put in zfcp_port_enqueue()
ata: libata-sata: increase PMP SRST timeout to 10s
Revert "PCI: qcom: Disable write access to read only registers for IP v2.3.3"
ata: libata-core: Do not register PM operations for SAS ports
rbd: take header_rwsem in rbd_dev_refresh() only when updating
ata: libata-core: Fix port and device removal
rbd: decouple parent info read-in from updating rbd_dev
ata: libata-core: Fix ata_port_request_pm() locking
rbd: decouple header read-in from updating rbd_dev->header
rbd: move rbd_dev_refresh() definition
ring-buffer: Update "shortest_full" in polling
i2c: i801: unregister tco_pdev in i801_probe() error path
net: thunderbolt: Fix TCPv6 GSO checksum calculation
ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
btrfs: properly report 0 avail for very full file systems
ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q
nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
serial: 8250_port: Check IRQ data before use
Smack:- Use overlay inode label in smack_inode_copy_up()
smack: Retrieve transmuting information in smack_inode_getsecurity()
smack: Record transmuting in smk_transmuted
i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc
i40e: always propagate error value in i40e_set_vsi_promisc()
ring-buffer: Avoid softlockup in ring_buffer_resize()
selftests/ftrace: Correctly enable event in instance-event.tc
i40e: improve locking of mac_filter_hash
watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
watchdog: iTCO_wdt: No need to stop the timer in probe
nvme-pci: do not set the NUMA node of device if it has none
fbdev/sh7760fb: Depend on FB=y
ncsi: Propagate carrier gain/loss events to the NCSI controller
powerpc/watchpoints: Annotate atomic context in more places
bpf: Clarify error expectations from bpf_clone_redirect
spi: nxp-fspi: reset the FLSHxCR1 registers
ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
parisc: irq: Make irq_stack_union static to avoid sparse warning
parisc: drivers: Fix sparse warning
parisc: iosapic.c: Fix sparse warnings
parisc: sba: Fix compile warning wrt list of SBA devices
gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
xtensa: boot/lib: fix function prototypes
xtensa: boot: don't add include-dirs
xtensa: iss/network: make functions static
xtensa: add default definition for XCHAL_HAVE_DIV32
bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
clk: tegra: fix error return case for recalc_rate
scsi: qla2xxx: Fix deletion race condition
MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
scsi: qla2xxx: Fix update_fcport for current_topology
ata: libata: disallow dev-initiated LPM transitions to unsupported states
Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
drm/amd/display: prevent potential division by zero errors
i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
drm/amd/display: Fix LFC multiplier changing erratically
gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
drm/amd/display: Reinstate LFC optimization
netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
net: rds: Fix possible NULL-pointer dereference
team: fix null-ptr-deref when team device type is changed
net: bridge: use DEV_STATS_INC()
net: hns3: add 5ms delay before clear firmware reset irq source
dccp: fix dccp_v4_err()/dccp_v6_err() again
powerpc/perf/hv-24x7: Update domain value check
ipv4: fix null-deref in ipv4_link_failure
i40e: Fix VF VLAN offloading when port VLAN is configured
i40e: Fix warning message and call stack during rmmod i40e driver
i40e: Remove scheduling while atomic possibility
i40e: Fix for persistent lldp support
ASoC: imx-audmix: Fix return error with devm_clk_get()
selftests: tls: swap the TX and RX sockets in some tests
ASoC: meson: spdifin: start hw on dai probe
selftests/tls: Add {} to avoid static checker warning
ext4: do not let fstrim block system suspend
bpf: Avoid deadlock when using queue and stack maps from NMI
ext4: move setting of trimmed bit into ext4_try_to_trim_range()
netfilter: nf_tables: disallow element removal on anonymous sets
ext4: replace the traditional ternary conditional operator with with max()/min()
ext4: mark group as trimmed only if it was fully scanned
ext4: change s_last_trim_minblks type to unsigned long
ext4: scope ret locally in ext4_try_to_trim_range()
ext4: add new helper interface ext4_try_to_trim_range()
ext4: remove the 'group' parameter of ext4_trim_extent
ata: libahci: clear pending interrupt status
tracing: Increase trace array ref count on enable and filter files
SUNRPC: Mark the cred for revalidation if the server rejects it
NFS/pNFS: Report EINVAL errors from connect() to the server
Revert "drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01"
Revert "usb: typec: bus: verify partner exists in typec_altmode_attention"
Revert "fs/nls: make load_nls() take a const parameter"
Revert "ip_tunnels: use DEV_STATS_INC()"
Linux 5.4.257
net/sched: Retire rsvp classifier
drm/amdgpu: fix amdgpu_cs_p1_user_fence
mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
ext4: fix rec_len verify error
scsi: megaraid_sas: Fix deadlock on firmware crashdump
i2c: aspeed: Reset the i2c controller when timeout occurs
tracefs: Add missing lockdown check to tracefs_create_dir()
nfsd: fix change_info in NFSv4 RENAME replies
tracing: Have option files inc the trace array ref count
tracing: Have current_trace inc the trace array ref count
btrfs: fix lockdep splat and potential deadlock after failure running delayed items
attr: block mode changes of symlinks
md/raid1: fix error: ISO C90 forbids mixed declarations
selftests: tracing: Fix to unmount tracefs for recovering environment
btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
btrfs: add a helper to read the superblock metadata_uuid
btrfs: move btrfs_pinned_by_swapfile prototype into volumes.h
perf tools: Add an option to build without libbfd
perf jevents: Make build dependency on test JSONs
tools features: Add feature test to check if libbfd has buildid support
kobject: Add sanity check for kset->kobj.ktype in kset_register()
media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
serial: cpm_uart: Avoid suspicious locking
scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
media: pci: cx23885: replace BUG with error return
media: tuners: qt1010: replace BUG_ON with a regular error
media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
media: anysee: fix null-ptr-deref in anysee_master_xfer
media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
ext2: fix datatype of block number in ext2_xattr_set2()
md: raid1: fix potential OOB in raid1_remove_disk()
bus: ti-sysc: Configure uart quirks for k3 SoC
drm/exynos: fix a possible null-pointer dereference due to data race in exynos_drm_crtc_atomic_disable()
wifi: mac80211_hwsim: drop short frames
alx: fix OOB-read compiler warning
mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
tpm_tis: Resend command to recover from data transfer errors
crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
wifi: mwifiex: fix fortify warning
wifi: ath9k: fix printk specifier
devlink: remove reload failed checks in params get/set callbacks
hw_breakpoint: fix single-stepping when using bpf_overflow_handler
perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
kernel/fork: beware of __put_task_struct() calling context
ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
btrfs: output extra debug info if we failed to find an inline backref
autofs: fix memory leak of waitqueues in autofs_catatonic_mode
parisc: Drop loops_per_jiffy from per_cpu struct
drm/amd/display: Fix a bug when searching for insert_above_mpcc
kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
ixgbe: fix timestamp configuration code
net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict()
platform/mellanox: mlxbf-tmfifo: Drop jumbo frames
mlxbf-tmfifo: sparse tags for config access
platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors
kcm: Fix memory leak in error path of kcm_sendmsg()
r8152: check budget for r8152_poll()
net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_hwlro_get_fdir_all()
net: ethernet: mvpp2_main: fix possible OOB write in mvpp2_ethtool_get_rxnfc()
net: ipv4: fix one memleak in __inet_del_ifa()
clk: imx8mm: Move 1443X/1416X PLL clock structure to common place
ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2
usb: typec: bus: verify partner exists in typec_altmode_attention
usb: typec: tcpm: Refactor tcpm_handle_vdm_request
usb: typec: tcpm: Refactor tcpm_handle_vdm_request payload handling
perf tools: Handle old data in PERF_RECORD_ATTR
perf hists browser: Fix hierarchy mode header
mtd: rawnand: brcmnand: Fix potential false time out warning
mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
mtd: rawnand: brcmnand: Fix crash during the panic_write
btrfs: use the correct superblock to compare fsid in btrfs_validate_super
btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
fuse: nlookup missing decrement in fuse_direntplus_link
ata: pata_ftide010: Add missing MODULE_DESCRIPTION
ata: sata_gemini: Add missing MODULE_DESCRIPTION
sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
net: hns3: fix the port information display when sfp is absent
netfilter: nfnetlink_osf: avoid OOB read
ip_tunnels: use DEV_STATS_INC()
idr: fix param name in idr_alloc_cyclic() doc
s390/zcrypt: don't leak memory if dev_set_name() fails
igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
igc: Change IGC_MIN to allow set rx/tx value between 64 and 80
kcm: Destroy mutex in kcm_exit_net()
net: sched: sch_qfq: Fix UAF in qfq_dequeue()
af_unix: Fix data race around sk->sk_err.
af_unix: Fix data-races around sk->sk_shutdown.
af_unix: Fix data-race around unix_tot_inflight.
af_unix: Fix data-races around user->unix_inflight.
net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
veth: Fixing transmit return status for dropped packets
igb: disable virtualization features on 82580
net: read sk->sk_family once in sk_mc_loop()
ipv4: annotate data-races around fi->fib_dead
sctp: annotate data-races around sk->sk_wmem_queued
pwm: lpc32xx: Remove handling of PWM channels
watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
perf top: Don't pass an ERR_PTR() directly to perf_session__delete()
x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
perf annotate bpf: Don't enclose non-debug code with an assert()
kconfig: fix possible buffer overflow
NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
soc: qcom: qmi_encdec: Restrict string length in decode
clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
parisc: led: Reduce CPU overhead for disk & lan LED computation
parisc: led: Fix LAN receive and transmit LEDs
lib/test_meminit: allocate pages up to order MAX_ORDER
drm/ast: Fix DRAM init on AST2200
fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
scsi: qla2xxx: Remove unsupported ql2xenabledif option
scsi: qla2xxx: Turn off noisy message log
scsi: qla2xxx: Fix erroneous link up failure
scsi: qla2xxx: fix inconsistent TMF timeout
net/ipv6: SKB symmetric hash should incorporate transport ports
drm: fix double free for gbo in drm_gem_vram_init and drm_gem_vram_create
udf: initialize newblock to 0
usb: typec: tcpci: clear the fault status bit
serial: sc16is7xx: fix broken port 0 uart init
sc16is7xx: Set iobase to device index
cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
crypto: stm32 - fix loop iterating through scatterlist for DMA
s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
pstore/ram: Check start of empty przs during init
fsverity: skip PKCS#7 parser when keyring is empty
net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
X.509: if signature is unsupported skip validation
dccp: Fix out of bounds access in DCCP error handler
dlm: fix plock lookup when using multiple lockspaces
parisc: Fix /proc/cpuinfo output for lscpu
procfs: block chmod on /proc/thread-self/comm
Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
ntb: Fix calculation ntb_transport_tx_free_entry()
ntb: Clean up tx tail index on link down
ntb: Drop packets when qp link is down
media: dvb: symbol fixup for dvb_attach()
xtensa: PMU: fix base address for the newer hardware
backlight/lv5207lp: Compare against struct fb_info.device
backlight/bd6107: Compare against struct fb_info.device
backlight/gpio_backlight: Compare against struct fb_info.device
ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
ipmi_si: fix a memleak in try_smi_init()
ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
PM / devfreq: Fix leak in devfreq_dev_release()
igb: set max size RX buffer when store bad packet is enabled
skbuff: skb_segment, Call zero copy functions before using skbuff frags
netfilter: xt_sctp: validate the flag_info count
netfilter: xt_u32: validate user space input
netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c
igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
cpufreq: Fix the race condition while updating the transition_task of policy
dmaengine: ste_dma40: Add missing IRQ check in d40_probe
um: Fix hostaudio build errors
mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
rpmsg: glink: Add check for kstrdup
phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
tracing: Fix race issue between cpu buffer write and swap
x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
HID: multitouch: Correct devm device reference for hidinput input_dev name
HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
RDMA/siw: Correct wrong debug message
RDMA/siw: Balance the reference of cep->kref in the error path
Revert "IB/isert: Fix incorrect release of isert connection"
amba: bus: fix refcount leak
serial: tegra: handle clk prepare error in tegra_uart_hw_init()
scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
scsi: core: Use 32-bit hostnum in scsi_host_lookup()
media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
media: ov2680: Fix vflip / hflip set functions
media: ov2680: Fix ov2680_bayer_order()
media: ov2680: Remove auto-gain and auto-exposure controls
media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
media: i2c: ov5640: Configure HVP lines in s_power callback
USB: gadget: f_mass_storage: Fix unused variable warning
media: go7007: Remove redundant if statement
iommu/vt-d: Fix to flush cache of PASID directory table
IB/uverbs: Fix an potential error pointer dereference
driver core: test_async: fix an error code
dma-buf/sync_file: Fix docs syntax
coresight: tmc: Explicit type conversions to prevent integer overflow
scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read() directly
scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read() directly
scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly
x86/APM: drop the duplicate APM_MINOR_DEV macro
serial: sprd: Fix DMA buffer leak issue
serial: sprd: Assign sprd_port after initialized to avoid wrong access
serial: sprd: remove redundant sprd_port cleanup
serial: sprd: getting port index via serial aliases only
scsi: qla4xxx: Add length check when parsing nlattrs
scsi: be2iscsi: Add length check when parsing nlattrs
scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
media: mediatek: vcodec: Return NULL if no vdec_fb is found
media: cx24120: Add retval check for cx24120_message_send()
media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
media: dib7000p: Fix potential division by zero
drivers: usb: smsusb: fix error handling code in smsusb_init_device
media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
media: v4l2-fwnode: simplify v4l2_fwnode_parse_link
media: v4l2-fwnode: fix v4l2_fwnode_parse_link handling
NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
NFSD: da_addr_body field missing in some GETDEVICEINFO replies
fs: lockd: avoid possible wrong NULL parameter
jfs: validate max amount of blocks before allocation.
powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
nfs/blocklayout: Use the passed in gfp flags
wifi: ath10k: Use RMW accessors for changing LNKCTL
drm/radeon: Use RMW accessors for changing LNKCTL
drm/radeon: Prefer pcie_capability_read_word()
drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
drm/radeon: Correct Transmit Margin masks
drm/amdgpu: Use RMW accessors for changing LNKCTL
drm/amdgpu: Prefer pcie_capability_read_word()
drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
drm/amdgpu: Correct Transmit Margin masks
PCI: Add #defines for Enter Compliance, Transmit Margin
powerpc/fadump: reset dump area size if fadump memory reserve fails
clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
PCI/ASPM: Use RMW accessors for changing LNKCTL
PCI: pciehp: Use RMW accessors for changing LNKCTL
PCI: Mark NVIDIA T4 GPUs to avoid bus reset
clk: sunxi-ng: Modify mismatched function name
drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
ipmi:ssif: Fix a memory leak when scanning for an adapter
ipmi:ssif: Add check for kstrdup
ALSA: ac97: Fix possible error value of *rac97
of: unittest: Fix overlay type in apply/revert check
drm/mediatek: Fix potential memory leak if vmap() fail
audit: fix possible soft lockup in __audit_inode_child()
smackfs: Prevent underflow in smk_set_cipso()
drm/msm/mdp5: Don't leak some plane state
ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01
drm/armada: Fix off-by-one error in armada_overlay_get_property()
of: unittest: fix null pointer dereferencing in of_unittest_find_node_by_name()
drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
drm/tegra: Remove superfluous error messages around platform_get_irq()
md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
md/bitmap: don't set max_write_behind if there is no write mostly device
drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
drm: adv7511: Fix low refresh rate register for ADV7533/5
ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
ARM: dts: s5pv210: correct ethernet unit address in SMDKV210
ARM: dts: s5pv210: use defines for IRQ flags in SMDKV210
ARM: dts: s5pv210: add RTC 32 KHz clock in SMDKV210
ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
ARM: dts: s3c64xx: align pinctrl with dtschema
ARM: dts: s3c6410: align node SROM bus node name with dtschema in Mini6410
ARM: dts: s3c6410: move fixed clocks under root node in Mini6410
drm/etnaviv: fix dumping of active MMU context
ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
ARM: dts: BCM53573: Add cells sizes to PCIe node
ARM: dts: BCM53573: Drop nonexistent "default-off" LED trigger
drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
quota: fix dqput() to follow the guarantees dquot_srcu should provide
quota: add new helper dquot_active()
quota: rename dquot_active() to inode_quota_active()
quota: factor out dquot_write_dquot()
quota: avoid increasing DQST_LOOKUPS when iterating over dirty/inuse list
drm/bridge: tc358764: Fix debug print parameter order
netrom: Deny concurrent connect().
net/sched: sch_hfsc: Ensure inner classes have fsc curve
mlxsw: i2c: Limit single transaction buffer size
mlxsw: i2c: Fix chunk size setting in output mailbox buffer
net: arcnet: Do not call kfree_skb() under local_irq_disable()
wifi: ath9k: use IS_ERR() with debugfs_create_dir()
wifi: mwifiex: avoid possible NULL skb pointer dereference
wifi: ath9k: protect WMI command response buffer replacement with a lock
wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
wifi: mwifiex: Fix missed return in oob checks failed path
wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
fs: ocfs2: namei: check return value of ocfs2_add_entry()
lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
lwt: Fix return values of BPF xmit ops
hwrng: iproc-rng200 - Implement suspend and resume calls
hwrng: iproc-rng200 - use semicolons rather than commas to separate statements
crypto: caam - fix unchecked return value error
Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
crypto: stm32 - Properly handle pm_runtime_get failing
wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
mwifiex: switch from 'pci_' to 'dma_' API
wifi: mwifiex: Fix OOB and integer underflow when rx packets
can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM
spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe()
regmap: rbtree: Use alloc_flags for memory allocations
tcp: tcp_enter_quickack_mode() should be static
bpf: Clear the probe_addr for uprobe
cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
perf/imx_ddr: don't enable counter0 if none of 4 counters are used
x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
x86/boot: Annotate local functions
x86/asm: Make more symbols local
OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
tmpfs: verify {g,u}id mount options correctly
fs: Fix error checking for d_hash_and_lookup()
new helper: lookup_positive_unlocked()
eventfd: prevent underflow for eventfd semaphores
eventfd: Export eventfd_ctx_do_read()
reiserfs: Check the return value from __getblk()
Revert "net: macsec: preserve ingress frame ordering"
udf: Handle error when adding extent to a file
udf: Check consistency of Space Bitmap Descriptor
powerpc/32s: Fix assembler warning about r0
net: Avoid address overwrite in kernel_connect
platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE notifications
ALSA: seq: oss: Fix racy open/close of MIDI devices
scsi: storvsc: Always set no_report_opcodes
cifs: add a warning when the in-flight count goes negative
sctp: handle invalid error codes without calling BUG()
bnx2x: fix page fault following EEH recovery
netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
net: usb: qmi_wwan: add Quectel EM05GV2
clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
security: keys: perform capable check only on privileged operations
platform/x86: huawei-wmi: Silence ambient light sensor
platform/x86: intel: hid: Always call BTNL ACPI method
ASoC: atmel: Fix the 8K sample parameter in I2SC master
ASoc: codecs: ES8316: Fix DMIC config
fs/nls: make load_nls() take a const parameter
s390/dasd: fix hanging device after request requeue
s390/dasd: use correct number of retries for ERP requests
m68k: Fix invalid .section syntax
vxlan: generalize vxlan_parse_gpe_hdr and remove unused args
ethernet: atheros: fix return value check in atl1c_tso_csum()
ASoC: da7219: Check for failure reading AAD IRQ events
ASoC: da7219: Flush pending AAD IRQ when suspending
9p: virtio: make sure 'offs' is initialized in zc_request
pinctrl: amd: Don't show `Invalid config param` errors
nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
fsi: master-ast-cf: Add MODULE_FIRMWARE macro
firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
serial: sc16is7xx: fix bug when first setting GPIO direction
Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition
staging: rtl8712: fix race condition
HID: wacom: remove the battery when the EKR is off
USB: serial: option: add FOXCONN T99W368/T99W373 product
USB: serial: option: add Quectel EM05G variant (0x030e)
modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
mmc: au1xmmc: force non-modular build and remove symbol_get usage
ARM: pxa: remove use of symbol_get()
erofs: ensure that the post-EOF tails are all zeroed
Linux 5.4.256
Revert "MIPS: Alchemy: fix dbdma2"
powerpc/pmac/smp: Drop unnecessary volatile qualifier
powerpc/pmac/smp: Avoid unused-variable warnings
Revert "drm/display/dp: Fix the DP DSC Receiver cap size"
Revert "macsec: Fix traffic counters/statistics"
Revert "macsec: use DEV_STATS_INC()"
ANDROID: GKI: add back pm_runtime_get_if_in_use()
Revert "interconnect: Add helpers for enabling/disabling a path"
Revert "interconnect: Do not skip aggregation for disabled paths"
Revert "ALSA: pcm: Set per-card upper limit of PCM buffer allocations"
Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available"
Revert "ALSA: pcm: Fix potential data race at PCM memory allocation helpers"
Revert "ALSA: pcm: Fix build error on m68k and others"
Revert "Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available""
Revert "ALSA: pcm: Check for null pointer of pointer substream before dereferencing it"
Linux 5.4.255
dma-buf/sw_sync: Avoid recursive lock during fence signal
pinctrl: renesas: rza2: Add lock around pinctrl_generic{{add,remove}_group,{add,remove}_function}
clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
scsi: core: raid_class: Remove raid_component_add()
scsi: snic: Fix double free in snic_tgt_create()
irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable
Documentation/sysctl: document page_lock_unfairness
ALSA: pcm: Check for null pointer of pointer substream before dereferencing it
interconnect: Do not skip aggregation for disabled paths
Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available"
ALSA: pcm: Fix build error on m68k and others
rtnetlink: Reject negative ifindexes in RTM_NEWLINK
mm: allow a controlled amount of unfairness in the page lock
x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4
drm/display/dp: Fix the DP DSC Receiver cap size
PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root bus
media: vcodec: Fix potential array out-of-bounds in encoder queue_setup
radix tree: remove unused variable
lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels
batman-adv: Hold rtnl lock during MTU update via netlink
batman-adv: Fix batadv_v_ogm_aggr_send memory leak
batman-adv: Fix TT global entry leak when client roamed back
batman-adv: Do not get eth header before batadv_check_management_packet
batman-adv: Don't increase MTU when set by user
batman-adv: Trigger events for auto adjusted MTU
nfsd: Fix race to FREE_STATEID and cl_revoked
clk: Fix slab-out-of-bounds error in devm_clk_release()
NFSv4: Fix dropped lock for racing OPEN and delegation return
ibmveth: Use dcbf rather than dcbfl
bonding: fix macvlan over alb bond support
net: remove bond_slave_has_mac_rcu()
net/sched: fix a qdisc modification with ambiguous command request
igb: Avoid starting unnecessary workqueues
net: validate veth and vxcan peer ifindexes
net: bcmgenet: Fix return value check for fixed_phy_register()
net: bgmac: Fix return value check for fixed_phy_register()
ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()
dccp: annotate data-races in dccp_poll()
sock: annotate data-races around prot->memory_pressure
octeontx2-af: SDP: fix receive link config
tracing: Fix memleak due to race between current_tracer and trace
drm/amd/display: check TG is non-null before checking if enabled
drm/amd/display: do not wait for mpc idle if tg is disabled
ASoC: fsl_sai: Disable bit clock with transmitter
ASoC: fsl_sai: Add new added registers and new bit definition
ASoC: fsl_sai: Refine enable/disable TE/RE sequence in trigger()
regmap: Account for register length in SMBus I/O limits
ALSA: pcm: Fix potential data race at PCM memory allocation helpers
ALSA: pcm: Use SG-buffer only when direct DMA is available
ALSA: pcm: Set per-card upper limit of PCM buffer allocations
dm integrity: reduce vmalloc space footprint on 32-bit architectures
dm integrity: increase RECALC_SECTORS to improve recalculate speed
fbdev: fix potential OOB read in fast_imageblit()
fbdev: Fix sys_imageblit() for arbitrary image widths
fbdev: Improve performance of sys_imageblit()
MIPS: cpu-features: Use boot_cpu_type for CPU type based features
MIPS: cpu-features: Enable octeon_cache by cpu_type
fs: dlm: fix mismatch of plock results from userspace
fs: dlm: use dlm_plock_info for do_unlock_close
fs: dlm: change plock interrupted message to debug again
fs: dlm: add pid to debug log
dlm: replace usage of found with dedicated list iterator variable
dlm: improve plock logging if interrupted
PCI: acpiphp: Reassign resources on bridge if necessary
net: phy: broadcom: stub c45 read/write for 54810
mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove
net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled
virtio-net: set queues after driver_ok
af_unix: Fix null-ptr-deref in unix_stream_sendpage().
netfilter: set default timeout to 3 secs for sctp shutdown send and recv state
mmc: block: Fix in_flight[issue_type] value error
mmc: wbsd: fix double mmc_free_host() in wbsd_init()
cifs: Release folio lock on fscache read hit.
ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces.
serial: 8250: Fix oops for port->pm on uart_change_pm()
ASoC: meson: axg-tdm-formatter: fix channel slot allocation
ASoC: rt5665: add missed regulator_bulk_disable
ARM: dts: imx: Set default tuning step for imx6sx usdhc
ARM: dts: imx: Set default tuning step for imx7d usdhc
ARM: dts: imx: Adjust dma-apbh node name
ARM: dts: imx7s: Drop dma-apb interrupt-names
bus: ti-sysc: Flush posted write on enable before reset
bus: ti-sysc: Improve reset to work with modules with no sysconfig
net: do not allow gso_size to be set to GSO_BY_FRAGS
sock: Fix misuse of sk_under_memory_pressure()
net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset
i40e: fix misleading debug logs
team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
netfilter: nft_dynset: disallow object maps
ipvs: fix racy memcpy in proc_do_sync_threshold
selftests: mirror_gre_changes: Tighten up the TTL test match
xfrm: add NULL check in xfrm_update_ae_params
ip_vti: fix potential slab-use-after-free in decode_session6
ip6_vti: fix slab-use-after-free in decode_session6
xfrm: fix slab-use-after-free in decode_session6
xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c
net: af_key: fix sadb_x_filter validation
net: xfrm: Fix xfrm_address_filter OOB read
btrfs: fix BUG_ON condition in btrfs_cancel_balance
tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms
powerpc/rtas_flash: allow user copy to flash block cache objects
fbdev: mmp: fix value check in mmphw_probe()
i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue
virtio-mmio: don't break lifecycle of vm_dev
virtio-mmio: Use to_virtio_mmio_device() to simply code
virtio-mmio: convert to devm_platform_ioremap_resource
nfsd: Remove incorrect check in nfsd4_validate_stateid
nfsd4: kill warnings on testing stateids with mismatched clientids
net/ncsi: Fix gma flag setting after response
tracing/probes: Fix to update dynamic data counter if fetcharg uses it
tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs
leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
mmc: sunxi: fix deferred probing
mmc: bcm2835: fix deferred probing
USB: dwc3: qcom: fix NULL-deref on suspend
usb: dwc3: qcom: Add helper functions to enable,disable wake irqs
interconnect: Add helpers for enabling/disabling a path
interconnect: Move internal structs into a separate file
irqchip/mips-gic: Use raw spinlock for gic_lock
irqchip/mips-gic: Get rid of the reliance on irq_cpu_online()
ALSA: hda: Fix unhandled register update during auto-suspend period
PM: runtime: Add pm_runtime_get_if_active()
PM-runtime: add tracepoints for usage_count changes
iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE
iio: addac: stx104: Fix race condition when converting analog-to-digital
iio: addac: stx104: Fix race condition for stx104_write_raw()
iio: stx104: Move to addac subdirectory
iio: adc: stx104: Implement and utilize register structures
iio: adc: stx104: Utilize iomap interface
iio: add addac subdirectory
IMA: allow/fix UML builds
powerpc/kasan: Disable KCOV in KASAN code
ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync()
ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
drm/amdgpu: Fix potential fence use-after-free v2
Bluetooth: L2CAP: Fix use-after-free
pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
gfs2: Fix possible data races in gfs2_show_options()
usb: chipidea: imx: don't request QoS for imx8ulp
media: platform: mediatek: vpu: fix NULL ptr dereference
media: v4l2-mem2mem: add lock to protect parameter num_rdy
FS: JFS: Check for read-only mounted filesystem in txBegin
FS: JFS: Fix null-ptr-deref Read in txBegin
MIPS: dec: prom: Address -Warray-bounds warning
fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev
udf: Fix uninitialized array access for some pathnames
ovl: check type and offset of struct vfsmount in ovl_entry
HID: add quirk for 03f0:464a HP Elite Presenter Mouse
quota: fix warning in dqgrab()
quota: Properly disable quotas when add_dquot_ref() fails
ALSA: emu10k1: roll up loops in DSP setup code for Audigy
drm/radeon: Fix integer overflow in radeon_cs_parser_init
macsec: use DEV_STATS_INC()
macsec: Fix traffic counters/statistics
selftests: forwarding: tc_flower: Relax success criterion
mmc: sdhci-f-sdh30: Replace with sdhci_pltfm
mmc: sdhci_f_sdh30: convert to devm_platform_ioremap_resource
Conflicts:
drivers/devfreq/devfreq.c
drivers/mmc/core/block.c
drivers/rpmsg/qcom_glink_native.c
include/net/tcp.h
Change-Id: Ic33d13451796752e101ed9f9bdb8c80a580af8b5
With a stream with low bitrate, user can't pause or resume the stream
near the end of the stream because current ALSA doesn't allow it.
If the stream has very low bitrate enough to store whole stream into
the buffer, user can't do anything except stop the stream and then
restart it from the first because most of applications call draining
after sending last frame to the kernel.
If pause, resume are allowed during draining, user experience can be
enhanced.
To prevent malfunction in HW drivers which don't support pause
during draining, pause during draining will only work if HW driver
enable this feature explicitly by calling
snd_compr_use_pause_in_draining().
Bug: 307192739
Change-Id: Ie40e6131746f8ee780e38f7f876622b407b84a75
Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
Acked-by: Vinod Koul <vkoul@kernel.org>
Link: https://lore.kernel.org/r/000101d6c3f0$89b312b0$9d193810$@samsung.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
(cherry picked from commit 9be9f2d3d073ef42127475f4fb6a392ab133f629)
[quic_c_smanag@quicinc.com: ported patch in abi safe way]
Signed-off-by: Soumya Managoli <quic_c_smanag@quicinc.com>
commit 0c2a85edd143162b3a698f31e94bf8cdc041da87 upstream.
The patch that adds support for stateful expressions in set definitions
require this.
Bug: 299922216
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit e1eed9e0b5)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Icd0339beda7c78b58caa7f77e5303ff3add7e4e6
commit 24138933b97b055d486e8064b4a1721702442a9b upstream.
There is an asymmetry between commit/abort and preparation phase if the
following conditions are met:
1. set is a verdict map ("1.2.3.4 : jump foo")
2. timeouts are enabled
In this case, following sequence is problematic:
1. element E in set S refers to chain C
2. userspace requests removal of set S
3. kernel does a set walk to decrement chain->use count for all elements
from preparation phase
4. kernel does another set walk to remove elements from the commit phase
(or another walk to do a chain->use increment for all elements from
abort phase)
If E has already expired in 1), it will be ignored during list walk, so its use count
won't have been changed.
Then, when set is culled, ->destroy callback will zap the element via
nf_tables_set_elem_destroy(), but this function is only safe for
elements that have been deactivated earlier from the preparation phase:
lack of earlier deactivate removes the element but leaks the chain use
count, which results in a WARN splat when the chain gets removed later,
plus a leak of the nft_chain structure.
Update pipapo_get() not to skip expired elements, otherwise flush
command reports bogus ENOENT errors.
Bug: 299922216
Fixes: 3c4287f62044 ("nf_tables: Add set type for arbitrary concatenation of ranges")
Fixes: 8d8540c4f5 ("netfilter: nft_set_rbtree: add timeout support")
Fixes: 9d0982927e ("netfilter: nft_hash: add support for timeouts")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 1da4874d05)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I644f3fe0e4e565014ff1fa1a0851bd2cc4d0e707
The v5.4 branches seem to have been left behind in this regard.
Let's unify the way we implement OWNERS semantics on all branches.
Bug: 314749503
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I54562c23a38ebe2d0059b6134f758cd8d7ec6bc0
An OWNERS file does now exist in the root directory and the fear that it
would be excessively permissive has not become a reality. Simplify the
situation by inheriting directly from it instead of proving an override.
Bug: 314749503
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I795eee3d7b44aa0f91a2ac4d9a27d0c7cbdc1cc6
(cherry picked from commit a1bbeb516a5aa4ad86f0d260784ea9b9be454244)
Signed-off-by: Lee Jones <joneslee@google.com>
Currently, uinput doesn't use the input_set_timestamp API, so any
event injected using uinput is not accurately timestamped in terms of
measuring when the actual event happened. Hence, call the
input_set_timestamp API from uinput in order to provide a more
accurate sense of time for the event. Propagate only the timestamps
which are a) positive, b) within a pre-defined offset (10 secs) from
the current time, and c) not in the future.
Bug: 271946580
Bug: 277040837
Change-Id: I928be61d0114b78e2098995ee49eeb0376bef2a3
(cherry picked from commit 3a2df60200a03f78173f1fd831aa54c08464dcde
https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git master)
Signed-off-by: Biswarup Pal <biswarupp@google.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Siarhei Vishniakou <svv@google.com>
Link: https://lore.kernel.org/r/20230427000152.1407471-1-biswarupp@google.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
(cherry picked from commit ee1f5fc55cc7bf1bca78edbb8a1f9d989d4ea03e)
In commit e70898ae1a ("rpmsg: Fix kfree() of static memory on setting
driver_override") a pointer was changed to const, which messes with the
CRC and ABI checks. As the code is fine if this is left as not-const,
just put it back to preserve the abi.
Bug: 161946584
Fixes: e70898ae1a ("rpmsg: Fix kfree() of static memory on setting driver_override")
Change-Id: I9a87b9cf412191d9872b48f1f876a81df6701de0
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from commit 0443350950)
Signed-off-by: Lee Jones <joneslee@google.com>
In commit 063444d66f ("driver: platform: Add helper for safer setting
of driver_override"), a pointer was changed to const, which messes with
the CRC and ABI checks. As the code is fine if this is left as
not-const, just put it back to preserve the abi.
Bug: 161946584
Fixes: 063444d66f ("driver: platform: Add helper for safer setting of driver_override")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ieb4a730a6a5767d31fbec2f1ba683617f5cda7a9
(cherry picked from commit 398b357f13)
Signed-off-by: Lee Jones <joneslee@google.com>
commit d7bd416d35121c95fe47330e09a5c04adbc5f928 upstream.
rpmsg_register_device_override need to call put_device to free vch when
driver_set_override fails.
Fix this by adding a put_device() to the error path.
Bug: 295334746
Fixes: bb17d110cbf2 ("rpmsg: Fix calling device_lock() on non-initialized device")
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
Link: https://lore.kernel.org/r/20220624024120.11576-1-hbh25y@gmail.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit d4c8bf5635c4bedaf2470761ced1f502b2d5434e)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I10440a18479d5d207bafb706311c0467b853cf6c
commit fb80ef67e8ff6a00d3faad4cb348dafdb8eccfd8 upstream.
Upon termination of the rpmsg_device, driver_override needs to be freed
to avoid leaking the potentially assigned string.
Bug: 295334746
Fixes: 42cd402b8fd4 ("rpmsg: Fix kfree() of static memory on setting driver_override")
Fixes: 39e47767ec ("rpmsg: Add driver_override device attribute for rpmsg_device")
Reviewed-by: Chris Lew <quic_clew@quicinc.com>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230109223931.1706429-1-quic_bjorande@quicinc.com
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit a82e0fda8a2f8561a6a6681e8b3557e60cad17da)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I08b147ad640a8e2d71699a09815bbf048425a1fd
commit bb17d110cbf270d5247a6e261c5ad50e362d1675 upstream.
driver_set_override() helper uses device_lock() so it should not be
called before rpmsg_register_device() (which calls device_register()).
Effect can be seen with CONFIG_DEBUG_MUTEXES:
DEBUG_LOCKS_WARN_ON(lock->magic != lock)
WARNING: CPU: 3 PID: 57 at kernel/locking/mutex.c:582 __mutex_lock+0x1ec/0x430
...
Call trace:
__mutex_lock+0x1ec/0x430
mutex_lock_nested+0x44/0x50
driver_set_override+0x124/0x150
qcom_glink_native_probe+0x30c/0x3b0
glink_rpm_probe+0x274/0x350
platform_probe+0x6c/0xe0
really_probe+0x17c/0x3d0
__driver_probe_device+0x114/0x190
driver_probe_device+0x3c/0xf0
...
Refactor the rpmsg_register_device() function to use two-step device
registering (initialization + add) and call driver_set_override() in
proper moment.
This moves the code around, so while at it also NULL-ify the
rpdev->driver_override in error path to be sure it won't be kfree()
second time.
Bug: 295334746
Fixes: 42cd402b8fd4 ("rpmsg: Fix kfree() of static memory on setting driver_override")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20220429195946.1061725-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit bfd4a664ddfbe12f008efb0b0ab6bf25a8ab2538)
[Lee: Git was confused that the hunk being removed had changed]
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ic07d9ff669e88a50354ad8e978ae8e93316a2a5e
commit 42cd402b8fd4672b692400fe5f9eecd55d2794ac upstream.
The driver_override field from platform driver should not be initialized
from static memory (string literal) because the core later kfree() it,
for example when driver_override is set via sysfs.
Use dedicated helper to set driver_override properly.
Bug: 295334746
Fixes: 950a7388f02b ("rpmsg: Turn name service into a stand alone driver")
Fixes: c0cdc19f84 ("rpmsg: Driver for user space endpoint interface")
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220419113435.246203-13-krzysztof.kozlowski@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 2e76b4f6218c4db3ff00eb15d94d72f371736de4)
[Lee: Cater for name change s/rpmsg_chrdev/rpmsg_ctrl/ due to previous backport]
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ib900ad13efcfdf7e50fb92bb45dff2b8aa8ff443
commit e5f89131a06142e91073b6959d91cea73861d40e upstream.
Memory pointed by variable 'old' in field store macro is not modified,
so it can be made a pointer to const.
Bug: 295334746
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220419113435.246203-12-krzysztof.kozlowski@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 5c0da71871d3ac3f96d37067bf1a0ba9c25c2c72)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: If5610892601368e855ec1be57e01dbbe06ae046a
commit 6c2f421174273de8f83cde4286d1c076d43a2d35 upstream.
Several core drivers and buses expect that driver_override is a
dynamically allocated memory thus later they can kfree() it.
However such assumption is not documented, there were in the past and
there are already users setting it to a string literal. This leads to
kfree() of static memory during device release (e.g. in error paths or
during unbind):
kernel BUG at ../mm/slub.c:3960!
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
...
(kfree) from [<c058da50>] (platform_device_release+0x88/0xb4)
(platform_device_release) from [<c0585be0>] (device_release+0x2c/0x90)
(device_release) from [<c0a69050>] (kobject_put+0xec/0x20c)
(kobject_put) from [<c0f2f120>] (exynos5_clk_probe+0x154/0x18c)
(exynos5_clk_probe) from [<c058de70>] (platform_drv_probe+0x6c/0xa4)
(platform_drv_probe) from [<c058b7ac>] (really_probe+0x280/0x414)
(really_probe) from [<c058baf4>] (driver_probe_device+0x78/0x1c4)
(driver_probe_device) from [<c0589854>] (bus_for_each_drv+0x74/0xb8)
(bus_for_each_drv) from [<c058b48c>] (__device_attach+0xd4/0x16c)
(__device_attach) from [<c058a638>] (bus_probe_device+0x88/0x90)
(bus_probe_device) from [<c05871fc>] (device_add+0x3dc/0x62c)
(device_add) from [<c075ff10>] (of_platform_device_create_pdata+0x94/0xbc)
(of_platform_device_create_pdata) from [<c07600ec>] (of_platform_bus_create+0x1a8/0x4fc)
(of_platform_bus_create) from [<c0760150>] (of_platform_bus_create+0x20c/0x4fc)
(of_platform_bus_create) from [<c07605f0>] (of_platform_populate+0x84/0x118)
(of_platform_populate) from [<c0f3c964>] (of_platform_default_populate_init+0xa0/0xb8)
(of_platform_default_populate_init) from [<c01031f8>] (do_one_initcall+0x8c/0x404)
Provide a helper which clearly documents the usage of driver_override.
This will allow later to reuse the helper and reduce the amount of
duplicated code.
Convert the platform driver to use a new helper and make the
driver_override field const char (it is not modified by the core).
Bug: 295334746
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220419113435.246203-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 063444d66f)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I221cb27e2dda0382f0a2f8466a95d046940ffe9c
As INIT_WORK during suspend resume path is
only supported with bus scaling support
hence use the same check for flush_work.
Change-Id: I5172d574a2bc33a1cdba1fead7e6c4208648448c
Signed-off-by: Monika Singh <monising@codeaurora.org>
Checkpatch tool generates some errors and warnings due to added PM QoS feature
This change fixes these issues.
Change-Id: I0843ecd33144d7ac65649ee90ed156e97a1a2f8a
Signed-off-by: George Gao <georgao@codeaurora.org>
They're used only in their own source files so just mark them static.
Change-Id: Ie8699f97074a5838af4bc6eab4c1108258b97e4c
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
Cross-checked with msm-5.15 tag. The change does not exist as a separate
commit and is squashed into the initial import.
Change-Id: I8ba245606f8b538c9bf3dbdc9dfb621fea721de8
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
Cross-checked with msm-5.15 tag. The change does not exist as a separate
commit and is squashed into the initial import.
Change-Id: Ie922c512d7ea24661d3179cfd156ab8eb6fcc363
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
Caused by upstream patch applied on top of 87ebbd27e9
("usb: dwc3: gadget: Ignore ENDXFER completion for GSI endpoints").
Change-Id: Icf843d03752496c6c8ad214ad7b8c02b8d3b6a9b
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
Cross-checked with msm-4.14 and msm-5.15 tags. The change does not exist
as a separate commit and is squashed into the initial import.
Change-Id: Ib3defedf0fbd5b7cdccdfba26383313ff05b4ef0
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
It was disabled in aa30ee3b61. Let's fix these warnings instead.
Change-Id: Id3f9b4a5f7eed17f7fb10633e3dc378923b80a60
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
Suspend attempts can abort when the FUSE daemon is already frozen
and a client is waiting uninterruptibly for a response, causing
freezing of tasks to fail.
Use the freeze-friendly wait API, but disregard other signals.
Change-Id: Icefb7e4bbc718ccb76bf3c04daaa5eeea7e0e63c
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Tashfin Shakeer Rhythm <tashfinshakeerrhythm@gmail.com>
When FUSE passthrough is used, the lower file system file is manipulated
directly, but neither mtime, atime or ctime of the referencing FUSE file
is updated.
Fix by updating the file times when passthrough operations are
performed.
Bug: 200779468
Bug: 201730208
Reported-by: Fengnan Chang <changfengnan@vivo.com>
Reported-by: Ed Tsai <ed.tsai@mediatek.com>
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I35b72196b2cc1d79a9f62ddb32e2cfa934c3b6d3
With commit f8425c939663 ("fuse: 32-bit user space ioctl compat for fuse
device") the matching constraints for the FUSE_DEV_IOC_CLONE ioctl command
are relaxed, limited to the testing of command type and number. As Arnd
noticed, this is wrong as it wouldn't ensure the correctness of the data
size or direction for the received FUSE device ioctl.
Fix by bringing back the comparison of the ioctl received by the FUSE
device to the originally generated FUSE_DEV_IOC_CLONE.
Fixes: f8425c939663 ("fuse: 32-bit user space ioctl compat for fuse device")
Reported-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Alessio Balsini <balsini@android.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: I372d8399db6d603ba20ef50528acf6645e4d3c66
(cherry picked from commit 6076f5f341e612152879bfda99f0b76c1953bf0b)
The initial FUSE passthrough interface has the issue of introducing an
ioctl which receives as a parameter a data structure containing a
pointer. What happens is that, depending on the architecture, the size
of this struct might change, and especially for 32-bit userspace running
on 64-bit kernel, the size mismatch results into different a single
ioctl the behavior of which depends on the data that is passed (e.g.,
with an enum). This is just a poor ioctl design as mentioned by Arnd
Bergmann [1].
Introduce the new FUSE_PASSTHROUGH_OPEN ioctl which only gets the fd of
the lower file system, which is a fixed-size __u32, dropping the
confusing fuse_passthrough_out data structure.
[1] https://lore.kernel.org/lkml/CAK8P3a2K2FzPvqBYL9W=Yut58SFXyetXwU4Fz50G5O3TsS0pPQ@mail.gmail.com/
Bug: 175195837
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I486d71cbe20f3c0c87544fa75da4e2704fe57c7c
If the system doesn't have enough memory when fuse_passthrough_read_iter
is requested in asynchronous IO, an error is directly returned without
restoring the caller's credentials.
Fix by always ensuring credentials are restored.
Fixes: aa29f32988c1f84c96e2457b049dea437601f2cc ("FROMLIST: fuse: Use daemon creds in passthrough mode")
Link: https://lore.kernel.org/lkml/YB0qPHVORq7bJy6G@google.com/
Reported-by: Peng Tao <bergwolf@gmail.com>
Signed-off-by: Alessio Balsini <balsini@android.com>
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I4aff43f5dd8ddab2cc8871cd9f81438963ead5b6
The current UAPI interface for FUSE passthrough is still under
discussion upstream, thus we are reserving this ioctl number to avoid
future conflicts with user space binaries.
The user space implementation in Android will take care of doing all the
checking to fall into the most appropriate ioctl number.
Bug: 167695973
Link: https://lore.kernel.org/lkml/20210125153057.3623715-3-balsini@android.com/
Fixes: 9655e27a40d2 ("FROMLIST: fuse: Definitions and ioctl for passthrough")
Test: manual test with additional printks
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I658c5ab2ebfe2b76d20685a099ac1b1fee3549cc
Enabling FUSE passthrough for mmap-ed operations not only affects
performance, but has also been shown as mandatory for the correct
functioning of FUSE passthrough.
yanwu noticed [1] that a FUSE file with passthrough enabled may suffer
data inconsistencies if the same file is also accessed with mmap. What
happens is that read/write operations are directly applied to the lower
file system (and its cache), while mmap-ed operations are affecting the
FUSE cache.
Extend the FUSE passthrough implementation to also handle memory-mapped
FUSE file, to both fix the cache inconsistencies and extend the
passthrough performance benefits to mmap-ed operations.
[1] https://lore.kernel.org/lkml/20210119110654.11817-1-wu-yan@tcl.com/
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-9-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: Ifad4698b0380f6e004c487940ac6907b9a9f2964
Signed-off-by: Alessio Balsini <balsini@google.com>
When using FUSE passthrough, read/write operations are directly
forwarded to the lower file system file through VFS, but there is no
guarantee that the process that is triggering the request has the right
permissions to access the lower file system. This would cause the
read/write access to fail.
In passthrough file systems, where the FUSE daemon is responsible for
the enforcement of the lower file system access policies, often happens
that the process dealing with the FUSE file system doesn't have access
to the lower file system.
Being the FUSE daemon in charge of implementing the FUSE file
operations, that in the case of read/write operations usually simply
results in the copy of memory buffers from/to the lower file system
respectively, these operations are executed with the FUSE daemon
privileges.
This patch adds a reference to the FUSE daemon credentials, referenced
at FUSE_DEV_IOC_PASSTHROUGH_OPEN ioctl() time so that they can be used
to temporarily raise the user credentials when accessing lower file
system files in passthrough.
The process accessing the FUSE file with passthrough enabled temporarily
receives the privileges of the FUSE daemon while performing read/write
operations. Similar behavior is implemented in overlayfs.
These privileges will be reverted as soon as the IO operation completes.
This feature does not provide any higher security privileges to those
processes accessing the FUSE file system with passthrough enabled. This
is because it is still the FUSE daemon responsible for enabling or not
the passthrough feature at file open time, and should enable the feature
only after appropriate access policy checks.
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-8-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: Idb4f03a2ce7c536691e5eaf8fadadfcf002e1677
Signed-off-by: Alessio Balsini <balsini@google.com>
Extend the passthrough feature by handling asynchronous IO both for read
and write operations.
When an AIO request is received, if the request targets a FUSE file with
the passthrough functionality enabled, a new identical AIO request is
created. The new request targets the lower file system file and gets
assigned a special FUSE passthrough AIO completion callback.
When the lower file system AIO request is completed, the FUSE
passthrough AIO completion callback is executed and propagates the
completion signal to the FUSE AIO request by triggering its completion
callback as well.
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-7-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: I47671ef36211102da6dd3ee8b2f226d1e6cd9d5c
Signed-off-by: Alessio Balsini <balsini@google.com>
All the read and write operations performed on fuse_files which have the
passthrough feature enabled are forwarded to the associated lower file
system file via VFS.
Sending the request directly to the lower file system avoids the
userspace round-trip that, because of possible context switches and
additional operations might reduce the overall performance, especially
in those cases where caching doesn't help, for example in reads at
random offsets.
Verifying if a fuse_file has a lower file system file associated with
can be done by checking the validity of its passthrough_filp pointer.
This pointer is not NULL only if passthrough has been successfully
enabled via the appropriate ioctl().
When a read/write operation is requested for a FUSE file with
passthrough enabled, a new equivalent VFS request is generated, which
instead targets the lower file system file.
The VFS layer performs additional checks that allow for safer operations
but may cause the operation to fail if the process accessing the FUSE
file system does not have access to the lower file system.
This change only implements synchronous requests in passthrough,
returning an error in the case of asynchronous operations, yet covering
the majority of the use cases.
Bug: 168023149
Link: https://lore.kernel.org/lkml/20210125153057.3623715-6-balsini@android.com/
Signed-off-by: Alessio Balsini <balsini@android.com>
Change-Id: Ifbe6a247fe7338f87d078fde923f0252eeaeb668
Signed-off-by: Alessio Balsini <balsini@google.com>