Commit Graph

42969 Commits

Author SHA1 Message Date
qctecmdr
75e9b266ee Merge "sched/walt: Honor scaling_min_freq/scaling_max_freq" 2024-03-26 06:53:56 -07:00
Ashay Jaiswal
53e81c1e70 sched: walt: always return active cpu as part of nohz timer vendor hook
There is a possibility where WALT will not find any non-idle unhalted
cpu as part on NOHZ timer target vendor hook and in that case WALT
returns first available unhalted CPU which might be an offline cpu.
Add check to always return an active cpu as timer target CPU.

Change-Id: I072909ba9316e96b61599aaf9d946c96bdf533f7
Signed-off-by: Ashay Jaiswal <quic_ashayj@quicinc.com>
2024-03-26 10:00:14 +05:30
Shivnandan Kumar
c7920924ec sched/walt: Honor scaling_min_freq/scaling_max_freq
If scaling_min_freq/scaling_max_freq changes, then there can be scenarios
where it is not honored promptly due to down_rate_delay_ns and
up_rate_delay_ns. Remove this check as scaling_cur_freq should honor
scaling_min_freq and scaling_max_freq.

Change-Id: I9dcc7cc431ab0b56872fbd6ee4b21e5dc86284fc
Signed-off-by: Shivnandan Kumar <quic_kshivnan@quicinc.com>
2024-03-23 14:36:42 +05:30
Paul Chen
4c25eb8ea5 ANDROID: EXPORT raise_softirq and update the ABI symbol list
In kernel 6.1 pending softirq won’t block turning off idle tick,
so it will take longer to be handled.
This is for power saving purposes but has extra delay then the 5.15 kernel.
From above, it needs to export raise_softirq for external module to
speed up the time sensitive event.

Bug: 324080017
Test: build pass, raise_softirq can be used
Change-Id: I675d5927d000ae5c372e6a88a1eda3101152e709
Signed-off-by: Paul Chen <chenpaul@google.com>
2024-03-13 16:18:09 +00:00
Todd Kjos
6bad1052c2 Revert "Merge tag 'android14-6.1.75_r00' into android14-6.1"
This reverts commit 1dbafe61e3.

Reason for revert: Too early. Needs to wait until 2024-03-27

Change-Id: I769b944bd089aa2278659ec87f7ba4ac4e74ee4a
Signed-off-by: Todd Kjos <tkjos@google.com>
2024-03-07 21:18:27 +00:00
Greg Kroah-Hartman
1dbafe61e3 Merge tag 'android14-6.1.75_r00' into android14-6.1
This merges up to the 6.1.75 LTS release into the android14-6.1 branch.
Included in here are the following commits:

* 6644fcfcbc ANDROID: Fix CRC error with iommu_* functions
* c84ac52917 Revert "bpf: add percpu stats for bpf_map elements insertions/deletions"
* 0125855f7e Revert "bpf: Add map and need_defer parameters to .map_fd_put_ptr()"
* 329c931b9d Revert "bpf: Defer the free of inner map when necessary"
*   c16bb76a0c Merge 6.1.75 into android14-6.1-lts
|\
| * 883d1a9562 Linux 6.1.75
| * cfa4683828 Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""
| * f854bff46a arm64: dts: armada-3720-turris-mox: set irq type for RTC
| * 17062a768c Revert "KEYS: encrypted: Add check for strsep"
| * b1cc57f976 riscv: Fix wrong usage of lm_alias() when splitting a huge linear mapping
| * 9025ee1079 block: Remove special-casing of compound pages
| * 2c46871ac4 i2c: s3c24xx: fix transferring more than one message in polling mode
| * 63892860b0 i2c: s3c24xx: fix read transfers in polling mode
| * 380540bb06 ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work
| * 8f7f03e8cd selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes
| * 13e6065fed mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
| * 31944f4264 loop: fix the the direct I/O support check when used on top of block devices
| * f2cc7d90a8 ethtool: netlink: Add missing ethnl_ops_begin/complete
| * 7809296dc1 kdb: Fix a potential buffer overflow in kdb_local()
| * 50ee63b800 ipvs: avoid stat macros calls from preemptible context
| * 4a45e7e7d2 netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description
| * b56bce52f9 netfilter: nf_tables: skip dead set elements in netlink dump
| * 9cb084df01 netfilter: nf_tables: do not allow mismatch field size and set key length
| * 7ae19ee81c netfilter: bridge: replace physindev with physinif in nf_bridge_info
| * 754ca18ed3 netfilter: propagate net to nf_bridge_get_physindev
| * 3f1f505277 netfilter: nf_queue: remove excess nf_bridge variable
| * 52d01a40b7 netfilter: nfnetlink_log: use proper helper for fetching physinif
| * dfa01315c3 netfilter: nft_limit: do not ignore unsupported flags
| * f00f11aae1 netfilter: nf_tables: reject invalid set policy
| * 2f32d518a1 mptcp: relax check on MPC passive fallback
| * 4631c2dd69 LoongArch: BPF: Prevent out-of-bounds memory access
| * ca65da8da1 net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe
| * 4108b86e32 bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
| * f1ec1b6c5c net: stmmac: ethtool: Fixed calltrace caused by unbalanced disable_irq_wake calls
| * 359fadf5f7 drm/amdkfd: fixes for HMM mem allocation
| * 81b86a10b8 drm/amdkfd: Use resource_size() helper function
| * 1c3aa875db dt-bindings: gpio: xilinx: Fix node address in gpio
| * 24e00f0fa9 net: ravb: Fix dma_addr_t truncation in error case
| * 615501d41b udp: annotate data-races around up->pending
| * 33cf52b6e5 block: ensure we hold a queue reference when using queue limits
| * fdf3df297f mptcp: refine opt_mp_capable determination
| * c0749c8770 mptcp: use OPTION_MPTCP_MPJ_SYN in subflow_check_req()
| * 51e4cb032d mptcp: use OPTION_MPTCP_MPJ_SYNACK in subflow_finish_connect()
| * 081273082d mptcp: strict validation before using mp_opt->hmac
| * 67feafe7a3 mptcp: mptcp_parse_option() fix for MPTCPOPT_MP_JOIN
| * cb183a586e net: phy: micrel: populate .soft_reset for KSZ9131
| * ecf0ebf0e6 amt: do not use overwrapped cb area
| * c96da963de net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames
| * ee1dc3bf86 net: qualcomm: rmnet: fix global oob in rmnet_policy
| * 93eb80c5c9 s390/pci: fix max size calculation in zpci_memcpy_toio()
| * cad471227a ASoC: mediatek: sof-common: Add NULL check for normal_link string
| * 69f0bebe91 PCI: mediatek-gen3: Fix translation window size calculation
| * 94667790e5 PCI: keystone: Fix race condition when initializing PHYs
| * 11923a8df8 nvmet-tcp: Fix the H2C expected PDU len calculation
| * fb711858e6 nvme: trace: avoid memcpy overflow warning
| * cac037db24 nvmet: re-fix tracing strncpy() warning
| * e92fe6f51b serial: imx: Correct clock error message in function probe()
| * 938b88a2d9 usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer
| * 9d4fa5fe2b apparmor: avoid crash when parsed profile name is empty
| * 3a46101871 cxl/region: fix x9 interleave typo
| * 16cbe4bad8 perf env: Avoid recursively taking env->bpf_progs.lock
| * 83ccd15717 nvmet-tcp: fix a crash in nvmet_req_complete()
| * 2871aa4070 nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
| * 8ed3eb92a5 vdpa: Fix an error handling path in eni_vdpa_probe()
| * b2cb99d26e spmi: mtk-pmif: Serialize PMIF status check and command submission
| * 28a45e15c8 usb: cdc-acm: return correct error code on unsupported break
| * 8fd48981a7 tty: use 'if' in send_break() instead of 'goto'
| * 50608b54ad tty: don't check for signal_pending() in send_break()
| * 6f0cd560ff tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
| * 8e426f2499 tty: change tty_write_lock()'s ndelay parameter to bool
| * ed863a4d48 perf genelf: Set ELF program header addresses properly
| * 4cb5213213 perf hisi-ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event()
| * 8f02951cee perf header: Fix one memory leakage in perf_event__fprintf_event_update()
| * eeeb3861c2 iio: adc: ad9467: fix scale setting
| * e2b405b985 iio: adc: ad9467: don't ignore error codes
| * 89398709ae iio: adc: ad9467: fix reset gpio handling
| * f33bdf21e1 selftests/sgx: Skip non X86_64 platform
| * bf92b82101 selftests/sgx: Include memory clobber for inline asm in test enclave
| * 2cfae256a1 selftests/sgx: Fix uninitialized pointer dereferences in encl_get_entry
| * eb41e7e8b4 selftests/sgx: Fix uninitialized pointer dereference in error path
| * 63ee7be01a serial: imx: fix tx statemachine deadlock
| * 3f9ec4227e software node: Let args be NULL in software_node_get_reference_args
| * 893c3ca250 acpi: property: Let args be NULL in __acpi_node_get_property_reference
| * 76be69716c base/node.c: initialize the accessor list before registering
| * d5ef7480d6 libapi: Add missing linux/types.h header to get the __u64 type on io.h
| * d74173bda2 serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
| * e6fce099c9 power: supply: bq256xx: fix some problem in bq256xx_hw_init
| * ddd3fe99b4 power: supply: cw2015: correct time_to_empty units in sysfs
| * 559e25126c MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
| * 2504864be6 MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
| * 69e9a6944d riscv: Fixed wrong register in XIP_FIXUP_FLASH_OFFSET macro
| * add57b5298 riscv: Fix set_direct_map_default_noflush() to reset _PAGE_EXEC
| * b4f4d42765 riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings
| * d2ebb8143b riscv: Fix module_alloc() that did not reset the linear mapping permissions
| * 890cfe5337 riscv: Check if the code to patch lies in the exit section
| * 9ad0ab0bbc mips: Fix incorrect max_low_pfn adjustment
| * 1961a29b89 mips: dmi: Fix early remap on MIPS32
| * e341194063 mfd: intel-lpss: Fix the fractional clock divider flags
| * 7fdc6c187e leds: aw2013: Select missing dependency REGMAP_I2C
| * 527e8c5f3d mfd: syscon: Fix null pointer dereference in of_syscon_register()
| * ac3b65cbc6 ARM: 9330/1: davinci: also select PINCTRL
| * d2ba8eea74 serial: sc16is7xx: set safe default SPI clock frequency
| * 4f61154a68 serial: sc16is7xx: add check for unsupported SPI modes during probe
| * f09b277f73 HID: wacom: Correct behavior when processing some confidence == false touches
| * 710bd46860 iio: adc: ad7091r: Pass iio_dev to event handler
| * dba788e25f KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache
| * 8a4f6a176a KVM: arm64: vgic-v4: Restore pending state on host userspace write
| * 455ebc1910 x86/kvm: Do not try to disable kvmclock if it was not enabled
| * 88f4dd8b9f PCI: mediatek: Clear interrupt status before dispatching handler
| * 0c883bc9fa PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support
| * d3c08d1015 PCI/P2PDMA: Remove reference to pci_p2pdma_map_sg()
| * 970c0899a4 cxl/port: Fix decoder initialization when nr_targets > interleave_ways
| * 23f9749108 Revert "net: rtnetlink: Enslave device before bringing it up"
| * f2ddfc7d3a wifi: mwifiex: configure BSSID consistently when starting AP
| * 54e1864b13 wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors
| * 0075a5d69d wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
| * debfa60412 wifi: mt76: fix broken precal loading from MTD for mt7915
| * 1edce43f47 iommu/dma: Trace bounce buffer usage when mapping buffers
| * cc7e8482c6 iommu/arm-smmu-qcom: Add missing GMU entry to match table
| * 516ecb2436 LoongArch: Fix and simplify fcsr initialization on execve()
| * 6cc9c0af0a bpf: Fix re-attachment branch in bpf_tracing_prog_attach
| * 96860d9ad4 Bluetooth: Fix atomicity violation in {min,max}_key_size_set
| * 7c02ca5542 rootfs: Fix support for rootfstype= when root= is given
| * f5c29a3a7e md/raid1: Use blk_opf_t for read and write operations
| * 7b85554c7c pwm: Fix out-of-bounds access in of_pwm_single_xlate()
| * 00e29df1b4 pwm: jz4740: Don't use dev_err_probe() in .request()
| * a372f1d01b netfilter: nf_tables: check if catch-all set element is active in next generation
| * c6350b5cb7 block: Fix iterating over an empty bio with bio_for_each_folio_all
| * ef31cc8779 block: add check that partition length needs to be aligned with block size
| * 0c8d252d0a drm/amd: Enable PCIe PME from D3
| * f49a30a24f scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable State
| * 546e981eea scsi: mpi3mr: Refresh sdev queue depth after controller reset
| * 3378333263 scsi: target: core: add missing file_{start,end}_write()
| * 01644b8616 scsi: ufs: core: Simplify power management during async scan
| * 81f444f228 fbdev: flush deferred IO before closing
| * ccbee2843e fbdev: flush deferred work in fb_deferred_io_fsync()
| * d6cc8dd231 io_uring/rw: ensure io->bytes_done is always initialized
| * c866866c79 ksmbd: only v2 leases handle the directory
| * 380965e48e ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
| * 6eb8015492 ksmbd: validate mech token in session setup
| * 0914dc8041 ALSA: hda/realtek: Enable headset mic on Lenovo M70 Gen5
| * 5648a0087f ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on HP ZBook
| * 3253abcd9b ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx
| * 29f6eccbcf ALSA: oxygen: Fix right channel of capture volume mixer
| * 104f95698c drm/vmwgfx: Keep a gem reference to user bos in surfaces
| * 5a4087a907 drm/vmwgfx: Fix possible invalid drm gem put calls
| * a71776bbd8 serial: omap: do not override settings for RS485 support
| * b5a2232ba8 serial: 8250_exar: Set missing rs485_supported flag
| * 36b0710502 serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock
| * d5f13c1d01 serial: core, imx: do not set RS485 enabled if it is not supported
| * dac0dd3d80 serial: 8250_bcm2835aux: Restore clock error handling
| * 15000d6f29 serial: core: make sure RS485 cannot be enabled when it is not supported
| * f790bd27a7 serial: core: fix sanitizing check for RTS settings
| * 974a0a6944 usb: mon: Fix atomicity violation in mon_bin_vma_fault
| * 206e2ddeb7 usb: typec: class: fix typec_altmode_put_partner to put plugs
| * d0320b9ac6 Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
| * 097cdc78c6 usb: cdns3: Fix uvc fail when DMA cross 4k boundery since sg enabled
| * 45c766231e usb: cdns3: fix iso transfer error when mult is not zero
| * 3f2bf7cac0 usb: cdns3: fix uvc failure work since sg support enabled
| * e894b1b038 usb: chipidea: wait controller resume finished for wakeup irq
| * 3450197e9a Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"
| * 598f9d5a3b Revert "usb: dwc3: Soft reset phy on probe for host"
| * d5c4a04205 usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
| * 789eade47f usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
| * c952654e1a tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
| * 9ccf64e763 powerpc/64s: Increase default stack size to 32KB
| * 7ac029af00 clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings
| * 6696f76c32 binder: fix race between mmput() and do_exit()
| * 437360133c xen-netback: don't produce zero-size SKB frags
| * 3ed5f55599 Input: atkbd - use ab83 as id when skipping the getid command
| * 45e565b55b mips/smp: Call rcutree_report_cpu_starting() earlier
| * 16e1d4fa13 binder: fix unused alloc->free_async_space
| * c5255d1229 binder: fix async space check for 0-sized buffers
| * 66b3578797 keys, dns: Fix size check of V1 server-list header
| * 60a9a5fca6 selftests/bpf: Add assert for user stacks in test_task_stack
| * 3590da14e1 of: unittest: Fix of_count_phandle_with_args() expected value message
| * 581ade6be5 fbdev: imxfb: fix left margin setting
| * b9d760dae5 of: Fix double free in of_parse_phandle_with_args_map
| * 676af10d0c ksmbd: validate the zero field of packet header
| * 222618b737 kselftest/alsa - mixer-test: Fix the print format specifier warning
| * b77ae4f8c1 kselftest/alsa - mixer-test: fix the number of parameters to ksft_exit_fail_msg()
| * 74416a207f drm/amd/pm/smu7: fix a memleak in smu7_hwmgr_backend_init
| * 4525525cb7 drm/amdkfd: Confirm list is non-empty before utilizing list_first_entry in kfd_topology.c
| * a9f68a23ca IB/iser: Prevent invalidating wrong MR
| * 96dc4d204a mmc: sdhci_omap: Fix TI SoC dependencies
| * 5aa65e5f20 mmc: sdhci_am654: Fix TI SoC dependencies
| * d8d8897d65 ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put()
| * cda7762bea ALSA: scarlett2: Add missing error checks to *_ctl_get()
| * be0b1be4ac ALSA: scarlett2: Allow passing any output to line_out_remap()
| * be96acd3ea ALSA: scarlett2: Add missing error check to scarlett2_usb_set_config()
| * 6232b7505c ALSA: scarlett2: Add missing error check to scarlett2_config_save()
| * 74341edb7d ASoC: rt5645: Drop double EF20 entry from dmi_platform_data[]
| * 40fe0903fa pwm: stm32: Fix enable count for clk in .probe()
| * 0d554b420c pwm: stm32: Use hweight32 in stm32_pwm_detect_channels
| * ade959ed67 pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable
| * c4b1f10f14 clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw
| * 6d98d24917 accel/habanalabs: fix information leak in sec_attest_info()
| * 7ac0adc7df drm/mediatek: dp: Add phy_mtk_dp module as pre-dependency
| * f930dbdc95 clk: si5341: fix an error code problem in si5341_output_clk_set_rate
| * 24961a5dc7 watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused
| * 6317445623 watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
| * 3bde94e858 watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO
| * 06b854238e watchdog: set cdev owner before adding
| * c249ef9d09 drivers: clk: zynqmp: update divider round rate logic
| * b61ca9c34c drivers: clk: zynqmp: calculate closest mux rate
| * 74aeef7e43 clk: qcom: videocc-sm8150: Add missing PLL config property
| * 52d741c95d clk: qcom: videocc-sm8150: Update the videocc resets
| * 52e2ebc064 dt-bindings: clock: Update the videocc resets for sm8150
| * 4f31f357e5 f2fs: fix to check return value of f2fs_recover_xattr_data
| * 2c6537c58b drm/amd/pm: fix a double-free in amdgpu_parse_extended_power_table
| * 4e26e2d485 gpu/drm/radeon: fix two memleaks in radeon_vm_init
| * 35fa2394d2 drivers/amd/pm: fix a use-after-free in kv_parse_power_table
| * f957a1be64 drm/amd/pm: fix a double-free in si_dpm_init
| * 591e77fedc drm/amdgpu/debugfs: fix error code when smc register accessors are NULL
| * 3ec6ce0651 drm/mediatek: Fix underrun in VDO1 when switches off the layer
| * 518efe60bb drm/mediatek: Return error if MDP RDMA failed to enable the clock
| * aa3e61cf89 drm/msm/dpu: Drop enable and frame_count parameters from dpu_hw_setup_misr()
| * 08d7e291af drm/msm/dpu: Set input_sel bit for INTF
| * 9570ae0e1d clk: renesas: rzg2l: Check reset monitor registers
| * 3e1dd6a1b4 clk: renesas: rzg2l-cpg: Reuse code in rzg2l_cpg_reset()
| * 2db7760422 media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe()
| * 74e3f165d3 media: dvbdev: drop refcount on error path in dvb_device_open()
| * 4d6e15a5ea f2fs: fix to update iostat correctly in f2fs_filemap_fault()
| * 8835766027 f2fs: fix to check compress file in f2fs_move_file_range()
| * 9bfd5ea715 f2fs: fix to wait on block writeback for post_read case
| * e67911d2ca drm/panel: st7701: Fix AVCL calculation
| * bb17cc851e media: rkisp1: Fix media device memory leak
| * 690b7c356f media: dt-bindings: media: rkisp1: Fix the port description for the parallel interface
| * 438193dcc2 media: imx-mipi-csis: Fix clock handling in remove()
| * df2adafa62 clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config
| * 40a156cf08 RDMA/hns: Fix memory leak in free_mr_init()
| * dada3fdb4e media: cx231xx: fix a memleak in cx231xx_init_isoc
| * b075ed8dcc drm/bridge: tc358767: Fix return value on error case
| * 9a3b226370 drm/bridge: cdns-mhdp8546: Fix use of uninitialized variable
| * 60c23f9aeb drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
| * 0f19543097 drm/radeon/dpm: fix a memleak in sumo_parse_power_table
| * c4ff554081 drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()
| * 048cbfd605 drm/panfrost: Ignore core_mask for poweroff and disable PWRTRANS irq
| * c32ee7286f ASoC: Intel: glk_rt5682_max98357a: fix board id mismatch
| * 7682ef5c14 drm/drv: propagate errors from drm_modeset_register_all()
| * 19b01c6c19 drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
| * b234ecad20 drm/msm/mdp4: flush vblank event on disable
| * 982eb772e1 ASoC: cs35l34: Fix GPIO name and drop legacy include
| * 940484c055 ASoC: cs35l33: Fix GPIO name and drop legacy include
| * 2da8e20346 drm/tidss: Fix dss reset
| * 553574c023 drm/tidss: Check for K2G in in dispc_softreset()
| * f099c742ca drm/tidss: Return error value from from softreset
| * 10a437c604 drm/tidss: Move reset to the end of dispc_init()
| * da72ff8def drm/radeon: check return value of radeon_ring_lock()
| * e6667551ed drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
| * 9ac2845a2e drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
| * f0145860c2 f2fs: fix to avoid dirent corruption
| * 4bab3ad44d drm/bridge: Fix typo in post_disable() description
| * dab1227007 media: rkvdec: Hook the (TRY_)DECODER_CMD stateless ioctls
| * 563f34c24c media: verisilicon: Hook the (TRY_)DECODER_CMD stateless ioctls
| * 32b4b2dde3 media: mtk-jpeg: Remove cancel worker in mtk_jpeg_remove to avoid the crash of multi-core JPEG devices
| * f211621deb media: mtk-jpegdec: export jpeg decoder functions
| * 30773ea47d media: pvrusb2: fix use after free on context disconnection
| * 4019c80968 drm/tilcdc: Fix irq free on unload
| * 81f1bd8596 drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
| * 37b400c803 drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer
| * dbea48e916 drm/panel-elida-kd35t133: hold panel in reset for unprepare
| * 019bba28d1 RDMA/hns: Fix inappropriate err code for unsupported operations
| * a867b891f9 RDMA/usnic: Silence uninitialized symbol smatch warnings
| * d260b65b2b drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off()
| * 8578a795ba Revert "drm/omapdrm: Annotate dma-fence critical section in commit path"
| * 3e6bf96561 Revert "drm/tidss: Annotate dma-fence critical section in commit path"
| * 544d223d71 ARM: davinci: always select CONFIG_CPU_ARM926T
| * 62a1fedeb1 ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
| * 1b481cb536 mlxbf_gige: Enable the GigE port in mlxbf_gige_open
| * 7ad5e7a35c mlxbf_gige: Fix intermittent no ip issue
| * 0b5b831122 net/sched: act_ct: fix skb leak and crash on ooo frags
| * b91d31de9a sctp: fix busy polling
| * 9233a88f4b sctp: support MSG_ERRQUEUE flag in recvmsg()
| * 3c0bd2b066 bpf: sockmap, fix proto update hook to avoid dup calls
| * 6e9429f9c6 null_blk: don't cap max_hw_sectors to BLK_DEF_MAX_SECTORS
| * a623d31805 block: make BLK_DEF_MAX_SECTORS unsigned
| * 33f93ce22e Bluetooth: btmtkuart: fix recv_buf() return value
| * 81f3b6ea31 Bluetooth: Fix bogus check for re-auth no supported with non-ssp
| * 55c88a7efb netfilter: nf_tables: mark newset as dead on transaction abort
| * 68aebba59e wifi: iwlwifi: mvm: send TX path flush in rfkill
| * 6cc82456e3 wifi: iwlwifi: mvm: set siso/mimo chains to 1 in FW SMPS request
| * 8915946cde wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
| * 62badccc7c wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
| * a277e8e9fe wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
| * b716c8483c wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
| * d938e470b2 wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
| * 35fb6b7574 wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
| * 937f65a125 wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
| * dd9e3d9513 wifi: rtlwifi: add calculate_bit_shift()
| * ce9b43e58c arm64: dts: qcom: ipq6018: Fix up indentation
| * 20fb17328b arm64: dts: qcom: ipq6018: Pad addresses to 8 hex digits
| * ba71baee6e arm64: dts: qcom: ipq6018: Use lowercase hex
| * cb65c2caa1 arm64: dts: qcom: ipq6018: improve pcie phy pcs reg table
| * 45d8d80cda arm64: dts: qcom: ipq6018: fix clock rates for GCC_USB0_MOCK_UTMI_CLK
| * ab23e4ef89 arm64: dts: qcom: sc7280: Mark SDHCI hosts as cache-coherent
| * e765363ecf block: add check of 'minors' and 'first_minor' in device_add_disk()
| * a4529948df arm64: dts: qcom: sm8150-hdk: fix SS USB regulators
| * bf5e9d28a8 soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration
| * aaf0fc13be dma-mapping: clear dev->dma_mem to NULL after freeing it
| * 542da27eac virtio/vsock: fix logic which reduces credit update messages
| * f69365e3a7 ipmr: support IP_PKTINFO on cache report IGMP msg
| * 0c867561ce selftests/net: fix grep checking for fib_nexthop_multiprefix
| * c458be3909 ARM: dts: stm32: don't mix SCMI and non-SCMI board compatibles
| * fdbe94c524 scsi: hisi_sas: Correct the number of global debugfs registers
| * 6491d9ea93 scsi: hisi_sas: Rollback some operations if FLR failed
| * 3d5a4fa56d scsi: hisi_sas: Replace with standard error code return value
| * 35657d1ba8 arm64: dts: imx8mm: Reduce GPU to nominal speed
| * a4210a686a arm64: dts: renesas: white-hawk-cpu: Fix missing serial console pin control
| * 9f5b79cf12 block: Set memalloc_noio to false on device_add_disk() error path
| * 4196b45370 selftests/bpf: Relax time_tai test for equal timestamps in tai_forward
| * 0c9318d49e wifi: mt76: mt7921: fix country count limitation for CLC
| * fe002eeda4 arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes
| * 9c91f58498 dt-bindings: media: mediatek: mdp3: correct RDMA and WROT node with generic names
| * ba5e58dacf arm64: dts: hisilicon: hikey970-pmic: fix regulator cells properties
| * b1d4d54d32 bpf: Fix verification of indirect var-off stack access
| * 4054b2b1e6 wifi: mt76: mt7921s: fix workqueue problem causes STA association fail
| * 4486b2e5db arm64: dts: qcom: sc7280: fix usb_2 wakeup interrupt types
| * 361b4175dd arm64: dts: qcom: sc7280: Mark Adreno SMMU as DMA coherent
| * a16a476b5c arm64: dts: qcom: sc7280: Fix up GPU SIDs
| * 9e1dafa5c3 arm64: dts: qcom: sm8350: Fix DMA0 address
| * 1623432c6a arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
| * 773c09af31 arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
| * 9435bbc8d9 scsi: fnic: Return error if vmalloc() failed
| * fc3e3c50a0 bpf: fix check for attempt to corrupt spilled pointer
| * 50e9fbddcb selftests/net: specify the interface when do arping
| * 62fca83303 bpf: Defer the free of inner map when necessary
| * e05b322c82 bpf: Add map and need_defer parameters to .map_fd_put_ptr()
| * a6fb03a9c9 bpf: add percpu stats for bpf_map elements insertions/deletions
| * 1010882619 rcu-tasks: Provide rcu_trace_implies_rcu_gp()
| * db44bac18a arm64: dts: qcom: sm6350: Make watchdog bark interrupt edge triggered
| * 8e335e7759 arm64: dts: qcom: sc8280xp: Make watchdog bark interrupt edge triggered
| * 66cdbc4e80 arm64: dts: qcom: sm8250: Make watchdog bark interrupt edge triggered
| * 385f30d448 arm64: dts: qcom: sm8150: Make watchdog bark interrupt edge triggered
| * 5e8267cbc0 arm64: dts: qcom: sdm845: Make watchdog bark interrupt edge triggered
| * bc9a45a06a arm64: dts: qcom: sc7280: Make watchdog bark interrupt edge triggered
| * 30d0c5fe2c arm64: dts: qcom: sc7280: Mark some nodes as 'reserved'
| * 0200f1b6ba arm64: dts: qcom: sc7180: Make watchdog bark interrupt edge triggered
| * 22529f0ac2 ARM: dts: qcom: sdx65: correct SPMI node name
| * be1f34b93f bpf: enforce precision of R0 on callback return
| * f9f2d957a8 md: synchronize flush io with array reconfiguration
| * b21a16909b selftests/bpf: Fix erroneous bitmask operation
| * ff9935181e arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
| * e9e59f3ee5 arm64: dts: ti: k3-am62a-main: Fix GPIO pin count in DT nodes
| * 436785a207 wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
| * 6824ed5d5a firmware: meson_sm: populate platform devices from sm device tree data
| * 00ac00ce8d firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
| * ac7c503bd5 net/ncsi: Fix netlink major/minor version numbers
| * 12db013dc9 ARM: dts: qcom: apq8064: correct XOADC register address
| * 638f381ab2 wifi: libertas: stop selecting wext
| * 7dd918d877 wifi: ath11k: Defer on rproc_get failure
| * 799a914e48 bpf: Add crosstask check to __bpf_get_stack
| * 1959a560ac bpf, lpm: Fix check prefixlen before walking trie
| * cd1896b922 wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
| * fdd9364163 wifi: plfxlc: check for allocation failure in plfxlc_usb_wreq_async()
| * a058f0c432 pNFS: Fix the pnfs block driver's calculation of layoutget size
| * b10370b1ea SUNRPC: fix _xprt_switch_find_current_entry logic
| * 19f28fa8be NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
| * 83f2d54ca3 blocklayoutdriver: Fix reference leak of pnfs_device_node
| * 23ba22557a csky: fix arch_jump_label_transform_static override
| * 4df0c942d0 crypto: scomp - fix req->dst buffer overflow
| * 490adf8be7 crypto: sahara - do not resize req->src when doing hash operations
| * eae15c43be crypto: sahara - fix processing hash requests with req->nbytes < sg->length
| * 6fc9576795 crypto: sahara - improve error handling in sahara_sha_process()
| * 5834cafc1d crypto: sahara - fix wait_for_completion_timeout() error handling
| * 8b355e0478 crypto: sahara - fix ahash reqsize
| * a75ba66b69 crypto: sahara - handle zero-length aes requests
| * 0545801b30 crypto: sahara - avoid skcipher fallback code duplication
| * 635308e604 crypto: virtio - Wait for tasklet to complete on device remove
| * d69d7804cf gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
| * caae86077d fs: indicate request originates from old mount API
| * 9c285df949 erofs: fix memory leak on short-lived bounced pages
| * 48dcfc42ce pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
| * d7e4268a51 crypto: hisilicon/zip - save capability registers in probe process
| * a384d7dc4e crypto: hisilicon/sec2 - save capability registers in probe process
| * fc6b944de1 crypto: hisilicon/hpre - save capability registers in probe process
| * 4705731fc5 crypto: hisilicon/qm - add a function to set qm algs
| * 11d7a33905 crypto: hisilicon/zip - add zip comp high perf mode configuration
| * 6412f039ac crypto: hisilicon/qm - save capability registers in qm init process
| * d1f82d7210 crypto: sahara - fix error handling in sahara_hw_descriptor_create()
| * 435303ad8a crypto: sahara - fix processing requests with cryptlen < sg->length
| * e7e8fbfe6d crypto: sahara - fix ahash selftest failure
| * 1f91280362 crypto: sahara - fix cbc selftest failure
| * eecf2e1e0c crypto: sahara - remove FLAGS_NEW_KEY logic
| * 4c0ac81a17 crypto: safexcel - Add error handling for dma_map_sg() calls
| * d5d4dfc73b crypto: af_alg - Disallow multiple in-flight AIO requests
| * f3a11fdd02 crypto: ccp - fix memleak in ccp_init_dm_workarea
| * baa79033e1 crypto: sa2ul - Return crypto_aead_setkey to transfer the error
| * ae4747dab2 crypto: virtio - Handle dataq logic with tasklet
| * e973b045c1 selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
| * 5389407bba mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
| * 030a1147ed kunit: debugfs: Fix unchecked dereference in debugfs_print_results()
| * b841208b7e ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error
| * b412c486a3 ACPI: LPSS: Fix the fractional clock divider flags
| * 5980041cba spi: sh-msiof: Enforce fixed DTDL for R-Car H3
| * ea6b597fca efivarfs: Free s_fs_info on unmount
| * d4a9aa7db5 efivarfs: force RO when remounting if SetVariable is not supported
| * 321b3a5592 calipso: fix memory leak in netlbl_calipso_add_pass()
| * 71f47a52ba cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
| * 04fc66dd2b cpufreq: Use of_property_present() for testing DT property presence
| * 79de65ac39 of: Add of_property_present() helper
| * 426710a2bc platform/x86/intel/vsec: Fix xa_alloc memory leak
| * 0ff5cd92bb platform/x86/intel/vsec: Use mutex for ida_alloc() and ida_free()
| * 1fa4a1e125 platform/x86/intel/vsec: Support private data
| * 3c48b2a7ce platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux()
| * c25f1555e0 KEYS: encrypted: Add check for strsep
| * 72222dfd76 ACPI: LPIT: Avoid u32 multiplication overflow
| * 2124c5bc22 ACPI: video: check for error while searching for backlight device parent
| * 08f7142e22 mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response
| * a35ab02c85 spi: spi-zynqmp-gqspi: fix driver kconfig dependencies
| * a2da3f9b1a powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
| * f152a6bfd1 powerpc/powernv: Add a null pointer check in opal_powercap_init()
| * 9a523e1da6 powerpc/powernv: Add a null pointer check in opal_event_init()
| * ed8d023cfa powerpc/powernv: Add a null pointer check to scom_debug_init_one()
| * 327d4f2d66 selftests/powerpc: Fix error handling in FPU/VMX preemption tests
| * 026fd977dc powerpc/pseries/memhp: Fix access beyond end of drmem array
| * 63df75d383 powerpc/44x: select I2C for CURRITUCK
| * 2fc51c4b7d powerpc: add crtsavres.o to always-y instead of extra-y
| * 16b88e68b8 powerpc: remove checks for binutils older than 2.25
| * 9dbac9fdae EDAC/thunderx: Fix possible out-of-bounds string access
| * c9275305d6 x86/mce/inject: Clear test status value
| * 0be645792c x86/lib: Fix overflow when counting digits
* | 6e04c1ccf7 Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
* | c0f972f028 UPSTREAM: drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
* | 8fe0623347 UPSTREAM: drm/msm/dsi: Enable runtime PM
* | c3a1a1e97e Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
* | 48159eff53 Merge 6.1.74 into android14-6.1-lts
|\|
| * 8fd7f44624 Linux 6.1.74
| * a31690d3dd scripts/decode_stacktrace.sh: optionally use LLVM utilities
| * 5e67191818 coresight: etm4x: Fix width of CCITMIN field
| * d08e756e25 PCI: Add ACS quirk for more Zhaoxin Root Ports
| * 41e3e3d813 leds: ledtrig-tty: Free allocated ttyname buffer on deactivate
| * 419602d08b parport: parport_serial: Add Brainboxes device IDs and geometry
| * 3936b54a8d parport: parport_serial: Add Brainboxes BAR details
| * 17a8519cb3 uio: Fix use-after-free in uio_open
| * 08af2ceb83 binder: fix comment on binder_alloc_new_buf() return value
| * 35a3e8ceaf binder: fix trivial typo of binder_free_buf_locked()
| * 9fa04c93f2 binder: fix use-after-free in shinker's callback
| * ee14fd2c8b binder: use EPOLLERR from eventpoll.h
| * bed0acf330 Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
| * e377a3346f ksmbd: free ppace array on error in parse_dacl
| * 09d84f37f8 ksmbd: don't allow O_TRUNC open on read-only share
| * c24fc060ab bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
| * 0d242f739c btf, scripts: Exclude Rust CUs with pahole
| * b976593219 ASoC: SOF: Intel: hda-codec: Delay the codec device registration
| * dcf95b26be ACPI: resource: Add another DMI match for the TongFang GMxXGxx
| * 5816a82caf ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP Envy X360 13-ay0xxx
| * 9d588f3b6f drm/crtc: fix uninitialized variable use
| * 809ebacd22 ARM: sun9i: smp: fix return code check of of_property_match_string
| * 0ce688d88a net: qrtr: ns: Return 0 if server port is not present
| * 1e1b2f34e9 virtio_blk: fix snprintf truncation compiler warning
| * 9efdc0081c ida: Fix crash in ida_free when the bitmap is empty
| * 24f3fec911 pinctrl: cy8c95x0: Fix get_pincfg
| * a54e7741cc pinctrl: cy8c95x0: Fix typo
| * 75e94701c0 drm/amd/display: get dprefclk ss info from integration info table
| * 426ab60bd2 i2c: rk3x: fix potential spinlock recursion on poll
| * 5411e32927 smb: client: fix potential OOB in smb2_dump_detail()
| * da7ba20a71 HID: nintendo: Prevent divide-by-zero on code
| * 87e2739656 dm audit: fix Kconfig so DM_AUDIT depends on BLK_DEV_DM
| * d0085e100f ALSA: hda/realtek: Add quirks for ASUS Zenbook 2022 Models
| * 2b055dc11e ASoC: Intel: bytcr_rt5640: Add new swapped-speakers quirk
| * 8840d3491a ASoC: Intel: bytcr_rt5640: Add quirk for the Medion Lifetab S10346
| * a63ab09a07 platform/x86: thinkpad_acpi: fix for incorrect fan reporting on some ThinkPad systems
| * 44521a5dc4 HID: nintendo: fix initializer element is not constant error
| * 3910d7a441 kselftest: alsa: fixed a print formatting warning
| * 2a36b4e5e6 Input: xpad - add Razer Wolverine V2 support
| * 31fbbc809c wifi: iwlwifi: pcie: avoid a NULL pointer dereference
| * 05d268e2e4 ARC: fix spare error
| * 372a93921e s390/scm: fix virtual vs physical address confusion
| * 626b0c0ab3 Input: i8042 - add nomux quirk for Acer P459-G2-M
| * 30fe4c4135 Input: atkbd - skip ATKBD_CMD_GETID in translated mode
| * b6ef44cb6a reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning
| * c5d9fd8c5a Input: psmouse - enable Synaptics InterTouch for ThinkPad L14 G1
| * b0407f68d9 ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
| * 07787918c6 tracing: Fix uaf issue when open the hist or hist_debug file
| * 851865caac MIPS: dts: loongson: drop incorrect dwmac fallback compatible
| * 708579592c stmmac: dwmac-loongson: drop useless check for compatible fallback
| * e75c3db904 tracing: Add size check when printing trace_marker output
| * 7d885c1717 tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
| * 3ac74ed58f jbd2: fix soft lockup in journal_finish_inode_data_buffers()
| * bb0e510b74 platform/x86: intel-vbtn: Fix missing tablet-mode-switch events
| * f379394a78 neighbour: Don't let neigh_forced_gc() disable preemption for long
| * 9b5044e17e drm/crtc: Fix uninit-value bug in drm_mode_setcrtc
| * 28c9fced8d jbd2: increase the journal IO's priority
| * 6b15330693 jbd2: correct the printing of write_flags in jbd2_write_superblock()
| * c84f9a5ecb clk: rockchip: rk3128: Fix HCLK_OTG gate register
| * 3fe5fbc3a5 clk: rockchip: rk3568: Add PLL rate for 292.5MHz
| * c3597996a3 LoongArch: Preserve syscall nr across execve()
| * c73cc2310a hwmon: (corsair-psu) Fix probe when built-in
| * 53442204b1 drm/exynos: fix a wrong error checking
| * 1502a9a595 drm/exynos: fix a potential error pointer dereference
| * 92decec3ca drm/amdgpu: Add NULL checks for function pointers
| * 5337fb3eba arm64: dts: rockchip: Fix PCI node addresses on rk3399-gru
| * ce97686124 nvme: prevent potential spectre v1 gadget
| * df2bd52354 nvme: introduce helper function to get ctrl state
| * a50562146d ASoC: ops: add correct range check for limiting volume
| * 01a7727ab7 ASoC: da7219: Support low DC impedance headset
| * a7d15ac085 net/tg3: fix race condition in tg3_reset_task()
| * c342afc146 ASoC: hdac_hda: Conditionally register dais for HDMI and Analog
| * 0f37e198c3 ASoC: amd: yc: Add DMI entry to support System76 Pangolin 13
| * 2fff601a1d nouveau/tu102: flush all pdbs on vmm flush
| * 94d2a9da31 ASoC: Intel: skl_hda_dsp_generic: Drop HDMI routes when HDMI is not available
| * 1613195bf3 ASoC: rt5650: add mutex to avoid the jack detection failure
| * b45e21b529 ASoC: cs43130: Fix incorrect frame delay configuration
| * 0c7833f758 ASoC: cs43130: Fix the position of const qualifier
| * b0c9af3d31 ASoC: Intel: Skylake: mem leak in skl register function
| * 7c09cf8095 ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
| * 522f69ba6b ASoC: Intel: Skylake: Fix mem leak in few functions
| * 9f1429c5aa arm64: dts: rockchip: fix rk356x pcie msg interrupt name
| * 3996699d1f ASoC: wm8974: Correct boost mixer inputs
| * 63360763bf hwtracing: hisi_ptt: Don't try to attach a task
| * 2e3fc2a45a hwtracing: hisi_ptt: Handle the interrupt in hardirq context
| * 319c5186d6 nvme-core: check for too small lba shift
| * f84b0c6445 blk-mq: don't count completed flush data request as inflight in case of quiesce
| * 366d2101fc smb: client, common: fix fortify warnings
| * 53a37135f7 drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer
| * d551c77727 drm/amd/display: update dcn315 lpddr pstate latency
| * 3c781fbb4f nvme-core: fix a memory leak in nvme_ns_info_from_identify()
| * a37096b079 ALSA: hda: intel-nhlt: Ignore vbps when looking for DMIC 32 bps format
| * 08f6de7b3f debugfs: fix automount d_fsdata usage
| * d1d138c043 wifi: mac80211: handle 320 MHz in ieee80211_ht_cap_ie_to_sta_ht_cap
| * 0c880e1e38 wifi: avoid offset calculation on NULL pointer
| * dd9465b108 wifi: cfg80211: lock wiphy mutex for rfkill poll
| * 91edb0cd1b mptcp: fix uninit-value in mptcp_incoming_options
| * 9038962130 ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro
| * 9436ae696a pinctrl: lochnagar: Don't build on MIPS
| * 5de9e9dd18 f2fs: explicitly null-terminate the xattr list
* | 8284d64954 Revert "ipv6: remove max_size check inline with ipv4"
* |   9b95c4490c Merge "Merge 6.1.73 into android14-6.1-lts" into android14-6.1-lts
|\ \
| * | a856aee341 Merge 6.1.73 into android14-6.1-lts
| |\|
| | * fec3b1451d Linux 6.1.73
| | * f9ee31dc7f cifs: fix flushing folio regression for 6.1 backport
| | * 0f22c8a6ef ipv6: remove max_size check inline with ipv4
| | * b2c545c398 Revert "nfsd: separate nfsd_last_thread() from nfsd_put()"
| | * db5f2f4db8 Revert "nfsd: call nfsd_last_thread() before final nfsd_put()"
* | | 1eda34ffd5 ANDROID: db845c: Enable device tree overlay support
|/ /
* | 732ef8a408 Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
* | 7aa979acec Revert "splice, net: Add a splice_eof op to file-ops and socket-ops"
* | a272a3f824 Revert "ipv4, ipv6: Use splice_eof() to flush"
* | f901cbd38f Revert "udp: introduce udp->udp_flags"
* | cef6c6be87 Revert "udp: move udp->no_check6_tx to udp->udp_flags"
* | 8806a26646 Revert "udp: move udp->no_check6_rx to udp->udp_flags"
* | 7b70acfd8e Revert "udp: move udp->gro_enabled to udp->udp_flags"
* | 583a8f8204 Revert "udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags"
* | cdf5cfe6d1 Revert "udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO"
* | f9f95b82b2 Revert "udp: annotate data-races around udp->encap_type"
* | acd1add3c8 Revert "bpf, sockmap: af_unix stream sockets need to hold ref for pair sock"
* | 190985b1db Revert "bpf: decouple prune and jump points"
* | eba57b3513 Revert "bpf: remove unnecessary prune and jump points"
* | 9212bbf98b Revert "bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()"
* | 797e6a76ea Revert "bpf: clean up visit_insn()'s instruction processing"
* | c7b298c1b5 Revert "bpf: Support new 32bit offset jmp instruction"
* | 1699079678 Revert "bpf: handle ldimm64 properly in check_cfg()"
* | 63ca0ed629 Revert "bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4"
* | e1b12db2de Merge 6.1.72 into android14-6.1-lts
|\|
| * 7c58bfa711 Linux 6.1.72
| * 2dbe25ae06 Revert "interconnect: qcom: sm8250: Enable sync_state"
| * f73a374c19 smb3: Replace smb2pdu 1-element arrays with flex-arrays
| * ec162546a7 media: qcom: camss: Comment CSID dt_id field
| * a5c3f2b4ce bpf: syzkaller found null ptr deref in unix_bpf proto add
| * 15db682980 bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4
| * 7cbdf36eab net/sched: act_ct: Always fill offloading tuple iifidx
| * 2be4e8ac2d net/sched: act_ct: additional checks for outdated flows
| * 87318b7e37 f2fs: compress: fix to assign compress_level for lz4 correctly
| * 397f719037 genirq/affinity: Only build SMP-only helper functions on SMP kernels
| * 28c9222e29 mmc: sdhci-sprd: Fix eMMC init failure after hw reset
| * 2813a434d4 mmc: core: Cancel delayed work before releasing host
| * 575e127041 mmc: rpmb: fixes pause retune on all RPMB partitions.
| * 9c5efaa09b mmc: meson-mx-sdhc: Fix initialization frozen issue
| * 48e1d426f4 drm/amd/display: add nv12 bounding box
| * 11c3510d1d drm/amdgpu: skip gpu_info fw loading on navi12
| * dafdeb7b91 mm: fix unmap_mapping_range high bits shift bug
| * 08038069c2 i2c: core: Fix atomic xfer check for non-preempt config
| * 53b42cb33f x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect
| * d1db1ef5e6 firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
| * 09a44d994b ring-buffer: Fix 32-bit rb_time_read() race with rb_time_cmpxchg()
| * 820a7802f2 btrfs: mark the len field in struct btrfs_ordered_sum as unsigned
| * ab220f4f5c btrfs: fix qgroup_free_reserved_data int overflow
| * 0f74dde5be octeontx2-af: Support variable number of lmacs
| * 7d3912613d octeontx2-af: Fix pause frame configuration
| * a29b15cc68 net/sched: act_ct: Take per-cb reference to tcf_ct_flow_table
| * 2bb4ecb334 netfilter: flowtable: GC pushes back packets to classic path
| * df01de08b4 net/sched: act_ct: Fix promotion of offloaded unreplied tuple
| * 87466a3745 net/sched: act_ct: offload UDP NEW connections
| * 8b160f2fba netfilter: flowtable: cache info of last offload
| * c29a7656f8 netfilter: flowtable: allow unidirectional rules
| * e681f711e9 net: sched: call tcf_ct_params_free to free params in tcf_ct_init
| * d49bf9c1ce mm/memory_hotplug: fix error handling in add_memory_resource()
| * 4666f003af mm/memory_hotplug: add missing mem_hotplug_lock
| * a576780a2a lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly
| * f33b27f5c3 genirq/affinity: Move group_cpus_evenly() into lib/
| * 617ba3735d genirq/affinity: Rename irq_build_affinity_masks as group_cpus_evenly
| * aeeb4e4e49 genirq/affinity: Don't pass irq_affinity_desc array to irq_build_affinity_masks
| * 9e84d7bb15 genirq/affinity: Pass affinity managed mask array to irq_build_affinity_masks
| * a1dcd17947 genirq/affinity: Remove the 'firstvec' parameter from irq_build_affinity_masks
| * f4fe76467e ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7
| * aee609302d firmware: arm_scmi: Fix frequency truncation by promoting multiplier type
| * 90d1f74c3c bpf, sockmap: af_unix stream sockets need to hold ref for pair sock
| * 5ff1682fec ethtool: don't propagate EOPNOTSUPP from dumps
| * e570b15087 dpaa2-eth: recycle the RX buffer only after all processing done
| * 5b8938fc7d net: dpaa2-eth: rearrange variable in dpaa2_eth_get_ethtool_stats
| * e88275ce7e smb: client: fix missing mode bits for SMB symlinks
| * bf223fd4d9 block: update the stable_writes flag in bdev_add
| * a8e4300ae5 filemap: add a per-mapping stable writes flag
| * d0eafc7631 mm, netfs, fscache: stop read optimisation when folio removed from pagecache
| * bceff380f3 mm: merge folio_has_private()/filemap_release_folio() call pairs
| * 8b6b3ecf0c memory-failure: convert truncate_error_page() to use folio
| * a6f440f3b9 khugepage: replace try_to_release_page() with filemap_release_folio()
| * 4c78612e5f ext4: convert move_extent_per_page() to use folios
| * b92a8f591c media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3
| * 710f70555d media: camss: sm8250: Virtual channels for CSID
| * c96a4f9360 selftests: mptcp: set FAILING_LINKS in run_tests
| * 4b85e920af selftests: mptcp: fix fastclose with csum failure
| * 336d1ee07e f2fs: set the default compress_level on ioctl
| * 1ff3f5ef28 f2fs: assign default compression level
| * 55d3f41e55 f2fs: convert to use bitmap API
| * 84a8d913fb f2fs: clean up i_compress_flag and i_compress_level usage
| * 2c14f49916 s390/cpumf: support user space events for counting
| * a1a1e5ce88 s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc()
| * 31051f722d net/mlx5: Increase size of irq name buffer
| * b5c8e0ff76 blk-mq: make sure active queue usage is held for bio_integrity_prep()
| * 803fb6109f bpf: fix precision backtracking instruction iteration
| * b08acd5c46 bpf: handle ldimm64 properly in check_cfg()
| * 2c795ce090 bpf: Support new 32bit offset jmp instruction
| * b1c780ed3c bpf: clean up visit_insn()'s instruction processing
| * 97bb6dab01 bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()
| * 8266c47d04 bpf: remove unnecessary prune and jump points
| * 743f3548d3 bpf: decouple prune and jump points
| * eb4f2e1788 fbdev: imsttfb: fix double free in probe()
| * f2a79f3651 fbdev: imsttfb: Release framebuffer and dealloc cmap on error path
| * 51a1b94302 arm64: dts: qcom: sdm845: Fix PSCI power domain names
| * 5db8b93cbe arm64: dts: qcom: sdm845: align RPMh regulator nodes with bindings
| * 343bb27e31 wifi: iwlwifi: yoyo: swap cdb and jacket bits values
| * 158b71f3a9 udp: annotate data-races around udp->encap_type
| * 8d929b6c11 udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO
| * b680a907d1 udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags
| * 753886c0b9 udp: move udp->gro_enabled to udp->udp_flags
| * a01cff15cc udp: move udp->no_check6_rx to udp->udp_flags
| * 50e41aa9ea udp: move udp->no_check6_tx to udp->udp_flags
| * e2a4392b61 udp: introduce udp->udp_flags
| * 2489502fb1 ipv4, ipv6: Use splice_eof() to flush
| * 4713b7c756 splice, net: Add a splice_eof op to file-ops and socket-ops
| * ac8c69e448 udp: Convert udp_sendpage() to use MSG_SPLICE_PAGES
| * 6bcc79a4e7 net: Declare MSG_SPLICE_PAGES internal sendmsg() flag
| * 89b51e70e5 bpf, x86: save/restore regs with BPF_DW size
| * 4ee461c5dc bpf, x86: Simplify the parsing logic of structure parameters
| * 605c8d8f99 bpf, x64: Fix tailcall infinite loop
| * 5573fdbc34 srcu: Fix callbacks acceleration mishandling
| * abc3e3fb71 cpu/SMT: Make SMT control more robust against enumeration failures
| * 482fa21635 cpu/SMT: Create topology_smt_thread_allowed()
| * a364c18553 selftests: secretmem: floor the memory size to the multiple of page_size
| * c38c5cfd3e net: Implement missing SO_TIMESTAMPING_NEW cmsg support
| * 14937f47a4 bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters()
| * 55fbcd83aa net: ravb: Wait for operating mode to be applied
| * 8a09b0f01c asix: Add check for usbnet_get_endpoints
| * db9c4a1f37 octeontx2-af: Re-enable MAC TX in otx2_stop processing
| * b67e7d78e4 octeontx2-af: Always configure NIX TX link credits based on max frame size
| * 84c3833a93 net/smc: fix invalid link access in dumping SMC-R connections
| * 0af75845ff net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
| * 9b05042922 igc: Fix hicredit calculation
| * 7663226274 i40e: Restore VF MSI-X state during PCI reset
| * 5735f529e3 ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
| * 8719838c12 ASoC: meson: g12a-toacodec: Fix event generation
| * 5de3c8496e ASoC: meson: g12a-tohdmitx: Validate written enum values
| * 95b4d4093a ASoC: meson: g12a-toacodec: Validate written enum values
| * 2f3b6e8600 i40e: fix use-after-free in i40e_aqc_add_filters()
| * 72fa661778 net: Save and restore msg_namelen in sock_sendmsg
| * 81f8a995eb netfilter: nft_immediate: drop chain reference counter on error
| * bb1bf97fa1 net: bcmgenet: Fix FCS generation for fragmented skbuffs
| * e75715e1c2 sfc: fix a double-free bug in efx_probe_filters
| * 725d44e49f ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init
| * 85f6fae44b selftests: bonding: do not set port down when adding to bond
| * 3edd66bd4e net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)
| * ac5fde92b5 net: annotate data-races around sk->sk_bind_phc
| * c48fcb4f49 net: annotate data-races around sk->sk_tsflags
| * 5d586f7ca0 net-timestamp: extend SOF_TIMESTAMPING_OPT_ID to HW timestamps
| * b2130366a9 can: raw: add support for SO_MARK
| * 633a49e34b r8169: Fix PCI error on system resume
| * 565460e180 net: sched: em_text: fix possible memory leak in em_text_destroy()
| * ac5cbe931c mlxbf_gige: fix receive packet race condition
| * 6d7f454927 ASoC: mediatek: mt8186: fix AUD_PAD_TOP register and offset
| * 811604fb02 ASoC: fsl_rpmsg: Fix error handler with pm_runtime_enable
| * c3a37dc156 igc: Check VLAN EtherType mask
| * 6edff0b838 igc: Check VLAN TCI mask
| * d27b98f4ae igc: Report VLAN EtherType matching back to user
| * e76d1913f6 i40e: Fix filter input checks to prevent config with invalid values
| * 188c9970d0 ice: Shut down VSI with "link-down-on-close" enabled
| * 83b80170b7 ice: Fix link_down_on_close message
| * f3f6a23e05 drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern
| * 6cf7235bc1 octeontx2-af: Fix marking couple of structure as __packed
| * a4b0a9b80a nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local
| * 282e3fb612 netfilter: nf_tables: set transport offset from mac header for netdev/egress
| * 9487cc4c90 netfilter: use skb_ip_totlen and iph_totlen
| * 5f523f1beb drm/bridge: ti-sn65dsi86: Never store more than msg->size bytes in AUX xfer
| * 3da4868907 wifi: iwlwifi: pcie: don't synchronize IRQs from IRQ
| * 493d556278 KVM: x86/pmu: fix masking logic for MSR_CORE_PERF_GLOBAL_CTRL
| * 3152a7d361 cifs: do not depend on release_iface for maintaining iface_list
| * 5982a625fc cifs: cifs_chan_is_iface_active should be called with chan_lock held
| * 4afcb82518 drm/mgag200: Fix gamma lut not initialized for G200ER, G200EV, G200SE
| * b9c370b61d Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"
| * af9a530765 mptcp: prevent tcp diag from closing listener subflows
| * 105063f7f4 ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6
| * 0fa3cf2d15 ALSA: hda/realtek: fix mute/micmute LEDs for a HP ZBook
| * beda900d3a ALSA: hda/realtek: enable SND_PCI_QUIRK for hp pavilion 14-ec1xxx series
| * 9539e3b56e block: Don't invalidate pagecache for invalid falloc modes
| * 079eefaecf keys, dns: Fix missing size check of V1 server-list header
* | efec95a6ee Revert "device property: Allow const parameter to dev_fwnode()"
* | 8eac30b25e Merge 6.1.71 into android14-6.1-lts
|\|
| * 38fb82ecd1 Linux 6.1.71
| * 74c4c7d57c Revert "platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe"
| * 7709b16bdb tracing/kprobes: Fix symbol counting logic by looking at modules as well
| * 9dd295341d kallsyms: Make module_kallsyms_on_each_symbol generally available
| * 29cb165771 device property: Allow const parameter to dev_fwnode()
| * e7b0437217 spi: Constify spi parameters of chip select APIs
| * f9a01938e0 NFSD: fix possible oops when nfsd/pool_stats is closed.
| * 899ac41804 ring-buffer: Fix slowpath of interrupted event
| * 0105571f80 netfilter: nf_tables: skip set commit for deleted/destroyed sets
| * 4768430d5a ring-buffer: Remove useless update to write_stamp in rb_try_to_discard()
| * f33c4e4cab tracing: Fix blocked reader of snapshot buffer
| * 09640899e6 ring-buffer: Fix wake ups when buffer_percent is set to 100
| * 4ee9d9291b mm/memory-failure: check the mapcount of the precise page
| * fb21c9780a mm/memory-failure: cast index to loff_t before shifting it
| * be72d197b2 mm: migrate high-order folios in swap cache correctly
| * a8df791470 mm/filemap: avoid buffered read/write race to read inconsistent data
| * b954b92ef0 platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe
| * 7a3bbbadac ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16()
| * b9c5f0fd5c block: renumber QUEUE_FLAG_HW_WC
| * e21b5fc5b8 spi: atmel: Fix clock issue when using devices with different polarities
| * 025cf65f68 spi: Add APIs in spi core to set/get spi->chip_select and spi->cs_gpiod
| * 64a4eb2982 spi: Reintroduce spi_set_cs_timing()
| * 95e21657ff linux/export: Ensure natural alignment of kcrctab array
| * bb4f791cb2 nfsd: call nfsd_last_thread() before final nfsd_put()
| * 03d68ffc48 nfsd: separate nfsd_last_thread() from nfsd_put()
| * 481561a431 iio: imu: adis16475: add spi_device_id table
| * 027eaeaf32 spi: Introduce spi_get_device_match_data() helper
| * 457a219c84 usb: fotg210-hcd: delete an incorrect bounds test
| * 119127273b ARM: dts: Fix occasional boot hang for am3 usb
| * 98235bc13a ksmbd: fix wrong allocation size update in smb2_open()
| * 04b8e04f8f ksmbd: avoid duplicate opinfo_put() call on error of smb21_lease_break_ack()
| * 34f7d5b5c9 ksmbd: lazy v2 lease break on smb2_write()
| * 500c7a5e9a ksmbd: send v2 lease break notification for directory
| * 1993959460 ksmbd: downgrade RWH lease caching state to RH for directory
| * 2fcb46df34 ksmbd: set v2 lease capability
| * 3eddc811a7 ksmbd: set epoch in create context v2 lease
| * 52a32eafd0 ksmbd: don't update ->op_state as OPLOCK_STATE_NONE on error
| * 0bc46c2370 ksmbd: move setting SMB2_FLAGS_ASYNC_COMMAND and AsyncId
| * d9aa5c1908 ksmbd: release interim response after sending status pending response
| * 013bf453af ksmbd: move oplock handling after unlock parent dir
| * 20dd92c237 ksmbd: separately allocate ci per dentry
| * d5651972e5 ksmbd: fix possible deadlock in smb2_open
| * aabc944ebf ksmbd: prevent memory leak on error return
| * b4a269bb89 ksmbd: fix kernel-doc comment of ksmbd_vfs_kern_path_locked()
| * 699ad8d03c ksmbd: no need to wait for binded connection termination at logoff
| * 3cf4455081 ksmbd: add support for surrogate pair conversion
| * d26e024a5e ksmbd: fix missing RDMA-capable flag for IPoIB device in ksmbd_rdma_capable_netdev()
| * 5113f72225 ksmbd: fix recursive locking in vfs helpers
| * 42e56982be ksmbd: fix kernel-doc comment of ksmbd_vfs_setxattr()
| * 533e6dc446 ksmbd: reorganize ksmbd_iov_pin_rsp()
| * 1d95c5a541 ksmbd: Remove unused field in ksmbd_user struct
| * 5929e98f3b ksmbd: fix potential double free on smb2_read_pipe() error path
| * a7aae713ea ksmbd: fix Null pointer dereferences in ksmbd_update_fstate()
| * 943cebf9ea ksmbd: fix wrong error response status by using set_smb2_rsp_status()
| * 7b58ee8d0b ksmbd: fix race condition between tree conn lookup and disconnect
| * 0090f0bfc2 ksmbd: fix race condition from parallel smb2 lock requests
| * 6584ca894f ksmbd: fix race condition from parallel smb2 logoff requests
| * b3a843caed ksmbd: fix race condition with fp
| * 7345f5dbf6 ksmbd: check iov vector index in ksmbd_conn_write()
| * 8beae8a0a0 ksmbd: return invalid parameter error response if smb2 request is invalid
| * e523a26c05 ksmbd: fix passing freed memory 'aux_payload_buf'
| * b4b3fd1a95 ksmbd: remove unneeded mark_inode_dirty in set_info_sec()
| * 1ee419e08f ksmbd: remove experimental warning
| * 83b01f7330 ksmbd: add missing calling smb2_set_err_rsp() on error
| * 422c0cd016 ksmbd: Fix one kernel-doc comment
| * c20105a897 ksmbd: fix `force create mode' and `force directory mode'
| * f8cf1ebb7d ksmbd: fix wrong interim response on compound
| * 9f297df20d ksmbd: add support for read compound
| * 673e60c691 ksmbd: switch to use kmemdup_nul() helper
| * 0a9b91f45e ksmbd: check if a mount point is crossed during path lookup
| * d782f42eed ksmbd: Fix unsigned expression compared with zero
| * 48cc493840 ksmbd: Replace one-element array with flexible-array member
| * 63fbfd212c ksmbd: Use struct_size() helper in ksmbd_negotiate_smb_dialect()
| * e7ab53bd81 ksmbd: Replace the ternary conditional operator with min()
| * 143da652ce ksmbd: use kvzalloc instead of kvmalloc
| * de43cdaa88 ksmbd: Change the return value of ksmbd_vfs_query_maximal_access to void
| * deb79f20be ksmbd: return a literal instead of 'err' in ksmbd_vfs_kern_path_locked()
| * fe7977b872 ksmbd: use kzalloc() instead of __GFP_ZERO
| * 294a275f37 ksmbd: remove unused ksmbd_tree_conn_share function
| * b069977b2b ksmbd: add mnt_want_write to ksmbd vfs functions
| * 13a5045011 ksmbd: fix posix_acls and acls dereferencing possible ERR_PTR()
| * 1524884c3e ksmbd: call putname after using the last component
| * 30a1344198 ksmbd: fix uninitialized pointer read in smb2_create_link()
| * 6d4e21e369 ksmbd: fix uninitialized pointer read in ksmbd_vfs_rename()
| * 6927ffe747 ksmbd: fix racy issue from using ->d_parent and ->d_name
| * 6e99fbb429 fs: introduce lock_rename_child() helper
| * 965eb86507 ksmbd: remove unused compression negotiate ctx packing
| * 49d9f6ad1e ksmbd: avoid duplicate negotiate ctx offset increments
| * 2182d96ec0 ksmbd: set NegotiateContextCount once instead of every inc
| * 8d271ef5e5 ksmbd: delete asynchronous work from list
| * 4ef3fd2f85 ksmbd: remove unused is_char_allowed function
| * 226aaaa593 ksmbd: Fix parameter name and comment mismatch
| * e8c49f9364 ksmbd: Fix spelling mistake "excceed" -> "exceeded"
| * ada8bcc48a ksmbd: update Kconfig to note Kerberos support and fix indentation
| * 5c0306b0ab ksmbd: Remove duplicated codes
| * b6502c34cf ksmbd: fix typo, syncronous->synchronous
| * 052b41ef2a ksmbd: Implements sess->rpc_handle_list as xarray
| * 264547e13f ksmbd: Convert to use sysfs_emit()/sysfs_emit_at() APIs
| * 87ffbb9e24 ksmbd: Fix resource leak in smb2_lock()
| * d847b75883 ksmbd: use F_SETLK when unlocking a file
| * 343d667dee ksmbd: set SMB2_SESSION_FLAG_ENCRYPT_DATA when enforcing data encryption for this share
| * ab69d3e8f7 ksmbd: replace one-element arrays with flexible-array members
* | 1e63881f5c Merge 6.1.70 into android14-6.1-lts
|\|
| * a507f147e6 Linux 6.1.70
| * a413b88cdb loop: deprecate autoloading callback loop_probe()
| * 75c27bdb21 wifi: nl80211: fix deadlock in nl80211_set_cqm_rssi (6.6.x)
| * 15577a98ef wifi: cfg80211: fix CQM for non-range use
| * 706448f716 fuse: share lookup state between submount and its parent
| * ec7b81b0ab mm/damon/core: make damon_start() waits until kdamond_fn() starts
| * 41f4ff9fe2 x86/alternatives: Sync core before enabling interrupts
| * 425379154b KVM: arm64: vgic: Force vcpu vgic teardown on vcpu destroy
| * 5dfacfd0fc KVM: arm64: vgic: Add a non-locking primitive for kvm_vgic_vcpu_destroy()
| * 3a0fd93cd9 KVM: arm64: vgic: Simplify kvm_vgic_destroy()
| * 3339028dd0 thunderbolt: Fix memory leak in margining_port_remove()
| * 69b6596c6e lib/vsprintf: Fix %pfwf when current node refcount == 0
| * 2dd6f22860 gpio: dwapb: mask/unmask IRQ when disable/enale it
| * ab1c3f91d1 bus: ti-sysc: Flush posted write only after srst_udelay
| * cd9f9ef59d pinctrl: starfive: jh7100: ignore disabled device tree nodes
| * 7f7efa30fa dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
| * 33b976a0f2 tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
| * d2b549d310 scsi: core: Always send batch on reset or error handling command
| * 72e472a91c Revert "scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity"
| * 4258274bac selftests: mptcp: join: fix subflow_send_ack lookup
| * a8555c86f5 ublk: move ublk_cancel_dev() out of ub->mutex
| * 1c250f2c5f ubifs: fix possible dereference after free
| * 3c42cc437d btrfs: zoned: no longer count fresh BG region as zone unusable
| * b09a676176 Revert "drm/amd/display: Do not set DRR on pipe commit"
| * 93da3d8af9 dm thin metadata: Fix ABBA deadlock by resetting dm_bufio_client
| * e9779fac68 loop: do not enforce max_loop hard limit by (new) default
| * 600043e185 RISC-V: Fix do_notify_resume / do_work_pending prototype
| * 764c6790dd 9p: prevent read overrun in protocol dump tracepoint
| * 7d09c84df5 drm/i915: Reject async flips with bigjoiner
| * c60e10d154 smb: client: fix OOB in smbCalcSize()
| * bef4315f19 smb: client: fix OOB in SMB2_query_info_init()
| * 71fe685b6a smb: client: fix potential OOB in cifs_dump_detail()
| * 277832a306 smb: client: fix OOB in cifsd when receiving compounded resps
| * 3f6da21047 dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp
| * 1092525155 net: ks8851: Fix TX stall caused by TX buffer overrun
| * e9df9f0891 net: rfkill: gpio: set GPIO direction
| * 805611157d net: 9p: avoid freeing uninit memory in p9pdu_vreadf
| * 4c775b4cd8 Input: soc_button_array - add mapping for airplane mode button
| * 5df2b49e7e net: usb: ax88179_178a: avoid failed operations when device is disconnected
| * 0f7bffd40a Bluetooth: Add more enc key size check
| * 39347d6450 Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE
| * e14a7ebafe Bluetooth: L2CAP: Send reject on command corrupted request
| * 37f71e2c9f Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg
| * 470896ecbc Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
| * d36d945f94 ALSA: hda/realtek: Add quirk for ASUS ROG GV302XA
| * 9599a5e34c USB: serial: option: add Quectel RM500Q R13 firmware support
| * a91fb450df USB: serial: option: add Foxconn T99W265 with new baseline
| * 73b6b6ab03 USB: serial: option: add Quectel EG912Y module support
| * 9b968a7086 USB: serial: ftdi_sio: update Actisense PIDs constant names
| * db57ef0dd4 wifi: cfg80211: fix certs build to not depend on file order
| * ec350809cd wifi: cfg80211: Add my certificate
| * 228d9960ae usb-storage: Add quirk for incorrect WP on Kingston DT Ultimate 3.0 G3
| * 82f913724b ALSA: usb-audio: Increase delay in MOTU M quirk
| * 01bc94b581 iio: triggered-buffer: prevent possible freeing of wrong buffer
| * c508a99fbc iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()
| * 1b670b0eee iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
| * 1fe4c93fc7 scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
| * 66ccf5f743 Input: ipaq-micro-keys - add error handling for devm_kmemdup
| * 3637f6bdfe interconnect: qcom: sm8250: Enable sync_state
| * 90aa62722d iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
| * 50d60bfc96 interconnect: Treat xlate() returning NULL node as an error
| * 900c1b3c62 drm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original
| * de4349bdf9 drm/i915/mtl: Add MTL for remapping CCS FBs
| * 52c1a67dd3 drm/i915/dpt: Only do the POT stride remap when using DPT
| * 7afe810945 drm/i915: Fix intel_atomic_setup_scalers() plane_state handling
| * b097184f80 drm/i915: Relocate intel_atomic_setup_scalers()
| * 99767368b7 drm/i915/mtl: limit second scaler vertical scaling in ver >= 14
| * 387e807759 nvme-pci: fix sleeping function called from interrupt context
| * b506833ee8 gpiolib: cdev: add gpio_device locking wrapper around gpio_ioctl()
| * 6eb51df9e7 pinctrl: at91-pio4: use dedicated lock class for IRQ
| * 903bb0c7b8 x86/xen: add CPU dependencies for 32-bit build
| * 2550d96aa2 i2c: aspeed: Handle the coalesced stop conditions with the start conditions.
| * 5c11f63799 ASoC: fsl_sai: Fix channel swap issue on i.MX8MP
| * 264d8c9b7f ASoC: hdmi-codec: fix missing report for jack initial status
| * 9b4c95a63e afs: Fix use-after-free due to get/remove race in volume tree
| * 17605162e2 afs: Fix overwriting of result of DNS query
| * 791d5409cd keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
| * 3e617c7e39 net: check dev->gso_max_size in gso_features_check()
| * 087b96adc6 afs: Fix dynamic root lookup DNS check
| * 9c6ea7abe3 afs: Fix the dynamic root's d_delete to always delete unused dentries
| * a70c2dd741 net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
| * ea03196ebc net: mana: select PAGE_POOL
| * a1986c429c Bluetooth: hci_event: shut up a false-positive warning
| * fc64715105 Bluetooth: Fix deadlock in vhci_send_frame
| * 3e0d158579 net/rose: fix races in rose_kill_by_device()
| * 51e28c37d9 ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
| * 6707baabe4 net: sched: ife: fix potential use-after-free
| * 31edab1222 net: Return error from sk_stream_wait_connect() if sk_wait_event() fails
| * 9d00421e14 octeontx2-pf: Fix graceful exit during PFC configuration failure
| * b0cee29402 net: mscc: ocelot: fix eMAC TX RMON stats for bucket 256-511 and above
| * 72b8de75b3 net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors
| * 18b4a5e0c3 net/mlx5e: Correct snprintf truncation handling for fw_version buffer
| * 94c8485b44 net/mlx5: Fix fw tracer first block check
| * 1750f55d85 net/mlx5e: fix a potential double-free in fs_udp_create_groups
| * 01877daaef net/mlx5e: Fix a race in command alloc flow
| * f3739647a7 net/mlx5: Re-organize mlx5_cmd struct
| * 148ec770c6 net/mlx5: Prevent high-rate FW commands from populating all slots
| * bd6e091629 net/mlx5: Introduce and use opcode getter in command interface
| * 0f5de95fa2 net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()
| * 31037cfcef Revert "net/mlx5e: fix double free of encap_header"
| * 8a84413505 Revert "net/mlx5e: fix double free of encap_header in update funcs"
| * 2f635af7d6 wifi: mac80211: mesh_plink: fix matches_local logic
| * 7a07af00aa wifi: mac80211: mesh: check element parsing succeeded
| * 40ba7f9ab8 wifi: mac80211: check if the existing link config remains unchanged
| * e90da1c7c6 wifi: iwlwifi: pcie: add another missing bh-disable for rxq->lock
| * 912652366f s390/vx: fix save/restore of fpu kernel context
| * 0a6e700c3d reset: Fix crash when freeing non-existent optional resets
| * 930a61fd79 ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
| * 228a00a77d ARM: dts: dra7: Fix DRA7 L3 NoC node register size
| * 913463f8e6 drm/amd/display: fix hw rotated modes when PSR-SU is enabled
| * a4f48f77bb HID: i2c-hid: Add IDEA5002 to i2c_hid_acpi_blacklist[]
| * 413bef367b HID: i2c-hid: acpi: Unify ACPI ID tables format
| * 57a6b0a464 bpf: Fix prog_array_map_poke_run map poke update
| * 4768f82272 kasan: disable kasan_non_canonical_hook() for HW tags
* | 0b58f24c02 Reapply "kasan: print the original fault addr when access invalid shadow"
* | 1ac76d45aa ANDROID: GKI: fix crc issue in include/net/addrconf.h
* | 9b8f2430b3 Revert "cred: switch to using atomic_long_t"
* | d3d46ac25c Merge 6.1.69 into android14-6.1-lts
|\|
| * 4aa6747d93 Linux 6.1.69
| * 325556d46b r8152: fix the autosuspend doesn't work
| * 4c2ad8e39c r8152: remove rtl_vendor_mode function
| * 1d82735f4b r8152: avoid to change cfg for all devices
| * 9b3d3a7f3c net: tls, update curr on splice as well
| * 869aee35cf ring-buffer: Have rb_time_cmpxchg() set the msb counter too
| * c425a772fc ring-buffer: Do not try to put back write_stamp
| * b15cf14869 ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs
| * edbc03d671 ring-buffer: Fix writing to the buffer with max_data_size
| * 6d98d594a5 ring-buffer: Have saved event hold the entire event
| * 7888b607a9 ring-buffer: Do not update before stamp when switching sub-buffers
| * 7043c4610c tracing: Update snapshot buffer on resize if it is allocated
| * 31785cf817 ring-buffer: Fix memory leak of free page
| * 8c3b77ad4e smb: client: fix OOB in smb2_query_reparse_point()
| * d8541c50c6 smb: client: fix NULL deref in asn1_ber_decoder()
| * 9f528a8e68 smb: client: fix OOB in receive_encrypted_standard()
| * 7b0faa541f drm/i915: Fix remapped stride with CCS on ADL+
| * 2090771791 drm/amd/display: Disable PSR-SU on Parade 0803 TCON again
| * a9e2de1943 drm/amdgpu: fix tear down order in amdgpu_vm_pt_free
| * 730b3322b8 btrfs: don't clear qgroup reserved bit in release_folio
| * 9b670e1b64 btrfs: free qgroup reserve when ORDERED_IOERR is set
| * da9b7c651c mm/shmem: fix race in shmem_undo_range w/THP
| * 8ec07b0620 mm/mglru: fix underprotected page cache
| * 40f3ad769e dmaengine: stm32-dma: avoid bitfield overflow assertion
| * 78b2ba39be drm/amdgpu/sdma5.2: add begin/end_use ring callbacks
| * 6a1472d9be team: Fix use-after-free when an option instance allocation fails
| * b01af92818 arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
| * 0b071a3266 ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS
| * f2955dd3e9 soundwire: stream: fix NULL pointer dereference for multi_link
| * 56f762659a btrfs: do not allow non subvolume root targets for snapshot
| * 557f7ad064 perf: Fix perf_event_validate_size() lockdep splat
| * a684235d30 HID: hid-asus: add const to read-only outgoing usb buffer
| * 2b9e16bc1c arm64: add dependency between vmlinuz.efi and Image
| * 6cb0c71c6e net: usb: qmi_wwan: claim interface 4 for ZTE MF290
| * f7ce765744 asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation
| * fba6e958ca HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad
| * 8f0c858585 HID: hid-asus: reset the backlight brightness level on resume
| * de78e4bdcb nbd: pass nbd_sock to nbd_read_reply() instead of index
| * d482bb5663 HID: add ALWAYS_POLL quirk for Apple kb
| * 541b183be9 HID: glorious: fix Glorious Model I HID report
| * 42b4ab97be platform/x86: intel_telemetry: Fix kernel doc descriptions
| * 355170a7ec LoongArch: Implement constant timer shutdown interface
| * adb6a90754 LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi
| * 943cde1f3d selftests/bpf: fix bpf_loop_bench for new callback verification scheme
| * 1b40f23e70 nvme: catch errors from nvme_configure_metadata()
| * 6cb3741c45 nvme-auth: set explanation code for failure2 msgs
| * 83bb13bf6c nbd: fold nbd config initialization into nbd_alloc_config()
| * 02a4b14d17 bcache: avoid NULL checking to c->root in run_cache_set()
| * 3d3f72efc7 bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc()
| * bc17ec4215 bcache: remove redundant assignment to variable cur_idx
| * be0e2a28e0 bcache: avoid oversize memory allocation by small stripe_size
| * 94070fd668 blk-cgroup: bypass blkcg_deactivate_policy after destroying
| * e52d0eb48e blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!"
| * 5fb6772cb5 stmmac: dwmac-loongson: Add architecture dependency
| * 82c386d736 usb: aqc111: check packet for fixup for true limit
| * d6c02295c8 x86/hyperv: Fix the detection of E820_TYPE_PRAM in a Gen2 VM
| * ae818b2a2e drm/mediatek: Add spinlock for setting vblank event in atomic_begin
| * 73c240e1ec ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
| * 0c196180b5 PCI: loongson: Limit MRRS to 256
| * 56d1891594 Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
| * 1ec80b9d43 ALSA: hda/realtek: Apply mute LED quirk for HP15-db
| * eeeb91216a ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants
| * 82413e9e42 ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
| * 0dc6a06c48 fuse: dax: set fc->dax to NULL in fuse_dax_conn_free()
| * 36e2497ac7 cred: switch to using atomic_long_t
| * a51f71cd4f net: atlantic: fix double free in ring reinit logic
| * 1646b2929d appletalk: Fix Use-After-Free in atalk_ioctl
| * d835299dde net: stmmac: Handle disabled MDIO busses from devicetree
| * 9aac81639e dpaa2-switch: do not ask for MDB, VLAN and FDB replay
| * a81c7069af dpaa2-switch: fix size of the dma_unmap
| * 9a23be1e58 vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
| * 2027dd67c3 sign-file: Fix incorrect return values check
| * 918991db7d stmmac: dwmac-loongson: Make sure MDIO is initialized before use
| * 63387fe87f net: ena: Fix XDP redirection error
| * 2664b56420 net: ena: Fix xdp drops handling due to multibuf packets
| * e312eed27a net: ena: Destroy correct number of xdp queues upon failure
| * 55a43bae08 net: Remove acked SYN flag from packet in the transmit queue correctly
| * 9bb392ee53 qed: Fix a potential use-after-free in qed_cxt_tables_alloc
| * 112792ad36 iavf: Handle ntuple on/off based on new state machines for flow director
| * 11c314a5a4 iavf: Introduce new state machines for flow director
| * 01540ee236 net/rose: Fix Use-After-Free in rose_ioctl
| * 2de2a6cbe1 atm: Fix Use-After-Free in do_vcc_ioctl
| * 3a76dcab2e octeontx2-af: Update RSS algorithm index
| * d0f0786f8c octeontx2-pf: Fix promisc mcam entry action
| * 34b630626a octeontx2-af: fix a use-after-free in rvu_nix_register_reporters
| * e4ce3dc7a0 net: fec: correct queue selection
| * a00dbc6dec net: vlan: introduce skb_vlan_eth_hdr()
| * 7cfbb8bea3 atm: solos-pci: Fix potential deadlock on &tx_queue_lock
| * 35c63d366f atm: solos-pci: Fix potential deadlock on &cli_queue_lock
| * 525904a157 bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic
| * ac61251741 bnxt_en: Fix wrong return value check in bnxt_close_nic()
| * 8217f9362c bnxt_en: Save ring error counters across reset
| * 53cacb8cdc bnxt_en: Clear resource reservation during resume
| * ab410db6e9 qca_spi: Fix reset behavior
| * 7e177e5a40 qca_debug: Fix ethtool -G iface tx behavior
| * 2127142c17 qca_debug: Prevent crash on TX ring changes
| * 0da41ddfb2 net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX
| * 514232495a net/mlx5e: Fix possible deadlock on mlx5e_tx_timeout_work
| * 1e8396aab2 HID: lenovo: Restrict detection of patched firmware only to USB cptkbd
| * e0cda159c8 afs: Fix refcount underflow from error handling race
| * a7e6477cc3 ksmbd: fix memory leak in smb2_lock()
| * 8925ab33b3 ext4: fix warning in ext4_dio_write_end_io()
| * 1c077acf24 powerpc/ftrace: Fix stack teardown in ftrace_no_trace
| * 34ae53cccf r8152: add vendor/device ID pair for ASUS USB-C2500
| * cac1218b32 r8152: add vendor/device ID pair for D-Link DUB-E250
| * 893597cbab r8152: add USB device driver for config selection
| * b80d0c6e5b perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table
* bb47960a9d Merge branch 'android14-6.1' into branch 'android14-6.1-lts'

Change-Id: I73d22764ee8804a28bb2fdcbeba633da3e0daaf3
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-03-07 09:28:03 +00:00
keystone-kernel-automerger
ff72f16710 Merge android14-6.1-2024-02_r2 into HEAD
* commit '1cc49f330de14314ffa4d5e313c12500f80ba08a':
  BACKPORT: gso: fix dodgy bit handling for GSO_UDP_L4
  ANDROID: ABI: Update oplus symbol list
  ANDROID: vendor_hooks: Add hook for trace_android_vh_copy_process

Change-Id: I6c1657c96e4b71bece909fca3abbb1e9116b479d
Signed-off-by: keystone-kernel-automerger <keystone-kernel-automerger@google.com>
2024-03-07 08:04:19 +00:00
chenweitao
239dbc2518 ANDROID: vendor_hooks: Add hook for trace_android_vh_copy_process
Add hook for trace_android_vh_copy_process, which gives the vendor a chance to monitor the total thread count of the system and the thread count under a particular process

Bug: 325765508
Bug: 327977501
Change-Id: Ibeb8aa571d44997ac10623321cd00d1686bde033
Signed-off-by: chenweitao <chenweitao@oppo.com>
2024-03-04 11:44:55 +08:00
Dongyun Liu
35bb2c8c5f ANDROID: Add vendor_hooks to workaround CONFIG_TASK_DELAY_ACCT
CONFIG_TASK_DELAY_ACCT cannot be enabled since `struct task_struct`
is KMI frozen. Instead, use vendor hooks to allow delay accounting
to be implemented in a vendor module.

Bug: 327566572
Bug: 310129610
Bug: 314931189

Change-Id: If814d7834889fe162aba3dd97e935289127ca3ae
Signed-off-by: Dongyun Liu <dongyun.liu@transsion.com>
(cherry picked from commit bb57557246d39dba8a66df7f43983fe1ec71bff6)
(cherry picked from commit 896cff873452d9a3853c489bb2a173a1e290ca95)
2024-02-29 21:10:10 +00:00
Sai Harshini Nimmala
77277e4ba4 ANDROID: sched/cpuset: Add vendor hook to change tasks affinity
Vendors might want to change tasks affinity settings when they are
moving from one cpuset into the other. Add vendor hook to give control
to vendor to implement what they need.

This reverts commit a42f6e7d0aa0("Revert "ANDROID: sched/cpuset: Add
vendor hook to change tasks affinity"") to effectively bring back the
original change.

Bug: 323765868
Change-Id: I47c1ee0dabda491732932c653bd80e95ee550791
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
2024-02-28 18:04:33 +00:00
chenweitao
763647877c ANDROID: vendor_hooks: Add hook for trace_android_vh_copy_process
Add hook for trace_android_vh_copy_process, which gives the vendor a chance to monitor the total thread count of the system and the thread count under a particular process

Bug: 325765508
Change-Id: Ibeb8aa571d44997ac10623321cd00d1686bde033
Signed-off-by: chenweitao <chenweitao@oppo.com>
2024-02-28 11:27:13 +00:00
Ashay Jaiswal
1a01e574a1 sched: walt: fix accounting for throttled deadline task
Task demand update to cumulative runnable average(CRA) is skipped
for throttled deadline tasks, this will result unbalanced accounting
when contribution of such task gets deducted from CRA as part of
dequeue (i.e As their real demand is not updated to CRA under
throttled condition, but as part of dequeue their real demand gets
removed from CRA, thus resulting in unbalanced accounting).

Fix this, by skipping accounting of task demand to CRA only if task
is not in runqueue(as demand for such task gets accounted as part of
enqueue/dequeue).

Change-Id: I1f7df97eee6c9bb9aaf7250e88a812efa921839b
Signed-off-by: Ashay Jaiswal <quic_ashayj@quicinc.com>
2024-02-27 12:04:37 +05:30
Greg Kroah-Hartman
0125855f7e Revert "bpf: Add map and need_defer parameters to .map_fd_put_ptr()"
This reverts commit e05b322c82 which is
commit 20c20bd11a0702ce4dc9300c3da58acf551d9725 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I7c833819474d28953527a2d06d9d17746c98dfb5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-02-19 20:16:58 +00:00
Greg Kroah-Hartman
329c931b9d Revert "bpf: Defer the free of inner map when necessary"
This reverts commit 62fca83303 which is
commit 876673364161da50eed6b472d746ef88242b2368 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I11fc14db5e679ca1c8ff97dcd96cb2a8fd35122a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-02-19 20:16:58 +00:00
Greg Kroah-Hartman
c16bb76a0c This is the 6.1.75 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWy7o0ACgkQONu9yGCS
 aT76JA/9Gh3VNSLG35LaLyq3xGd827N6DPsMzeFHi+MGSyPVg0auE77QkHD/gZl9
 KynmBmz2+9DSoFxymWAS9oEPM8d/vw87AMuSTTct3GKkjEeUcj9lbeOEzgZydXX8
 cJSXvcCeKE3FESU/YbQKxo0N+r7tUDmnCR0edss5/FpYni3jPdg7jdESzGhiCHXj
 r5rjrTE6h7Z/d+2kaKqlheL4o4OkV0YwnFnU2gC3MOOvLmgvXdOVQQsyaZ+WgSAN
 0JS0Q6Xk1xyYWx8iFaLGWIs1pUsQPKxIiRG3N/1KmXITopf2Pu68Yy7ST+YryDkO
 nLcNrr3gsQxrM6MYnEhLzlxs3H1KuAVxJ4Y/dNqJnDxn0OJjcY3repwempz5Sxtk
 0OLDOsCICAiMHeF8rYIGhm09WdowLz0EH+sqadIGqWKzW/BcXqD+r9mpF1lwk1ZL
 FJLgLmtOaG4amI46lEUHQ6ujN7Oad3gLYzudq2zKLeqonSIjm1TuDoMRvHWFsspO
 5i9I0x7Vlo3PqCl7kkKVL9PvVHx6BXJGFShABJqa9ao/oHxkOWuIt26pxUoLUN3P
 7Wa5WnfdlDd9nR3VGHcVe2ncuRmEfuriYpXvItJ7/KJKyIPkGoPehAh+vbZMoEy0
 DwhtD9PPsTlnUufbcZdHavYA1E4y/uXDMOIGB+ERpsTdXh9DwEo=
 =2XHn
 -----END PGP SIGNATURE-----

Merge 6.1.75 into android14-6.1-lts

Changes in 6.1.75
	x86/lib: Fix overflow when counting digits
	x86/mce/inject: Clear test status value
	EDAC/thunderx: Fix possible out-of-bounds string access
	powerpc: remove checks for binutils older than 2.25
	powerpc: add crtsavres.o to always-y instead of extra-y
	powerpc/44x: select I2C for CURRITUCK
	powerpc/pseries/memhp: Fix access beyond end of drmem array
	selftests/powerpc: Fix error handling in FPU/VMX preemption tests
	powerpc/powernv: Add a null pointer check to scom_debug_init_one()
	powerpc/powernv: Add a null pointer check in opal_event_init()
	powerpc/powernv: Add a null pointer check in opal_powercap_init()
	powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
	spi: spi-zynqmp-gqspi: fix driver kconfig dependencies
	mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response
	ACPI: video: check for error while searching for backlight device parent
	ACPI: LPIT: Avoid u32 multiplication overflow
	KEYS: encrypted: Add check for strsep
	platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux()
	platform/x86/intel/vsec: Support private data
	platform/x86/intel/vsec: Use mutex for ida_alloc() and ida_free()
	platform/x86/intel/vsec: Fix xa_alloc memory leak
	of: Add of_property_present() helper
	cpufreq: Use of_property_present() for testing DT property presence
	cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
	calipso: fix memory leak in netlbl_calipso_add_pass()
	efivarfs: force RO when remounting if SetVariable is not supported
	efivarfs: Free s_fs_info on unmount
	spi: sh-msiof: Enforce fixed DTDL for R-Car H3
	ACPI: LPSS: Fix the fractional clock divider flags
	ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error
	kunit: debugfs: Fix unchecked dereference in debugfs_print_results()
	mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
	selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
	crypto: virtio - Handle dataq logic with tasklet
	crypto: sa2ul - Return crypto_aead_setkey to transfer the error
	crypto: ccp - fix memleak in ccp_init_dm_workarea
	crypto: af_alg - Disallow multiple in-flight AIO requests
	crypto: safexcel - Add error handling for dma_map_sg() calls
	crypto: sahara - remove FLAGS_NEW_KEY logic
	crypto: sahara - fix cbc selftest failure
	crypto: sahara - fix ahash selftest failure
	crypto: sahara - fix processing requests with cryptlen < sg->length
	crypto: sahara - fix error handling in sahara_hw_descriptor_create()
	crypto: hisilicon/qm - save capability registers in qm init process
	crypto: hisilicon/zip - add zip comp high perf mode configuration
	crypto: hisilicon/qm - add a function to set qm algs
	crypto: hisilicon/hpre - save capability registers in probe process
	crypto: hisilicon/sec2 - save capability registers in probe process
	crypto: hisilicon/zip - save capability registers in probe process
	pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
	erofs: fix memory leak on short-lived bounced pages
	fs: indicate request originates from old mount API
	gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
	crypto: virtio - Wait for tasklet to complete on device remove
	crypto: sahara - avoid skcipher fallback code duplication
	crypto: sahara - handle zero-length aes requests
	crypto: sahara - fix ahash reqsize
	crypto: sahara - fix wait_for_completion_timeout() error handling
	crypto: sahara - improve error handling in sahara_sha_process()
	crypto: sahara - fix processing hash requests with req->nbytes < sg->length
	crypto: sahara - do not resize req->src when doing hash operations
	crypto: scomp - fix req->dst buffer overflow
	csky: fix arch_jump_label_transform_static override
	blocklayoutdriver: Fix reference leak of pnfs_device_node
	NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
	SUNRPC: fix _xprt_switch_find_current_entry logic
	pNFS: Fix the pnfs block driver's calculation of layoutget size
	wifi: plfxlc: check for allocation failure in plfxlc_usb_wreq_async()
	wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
	bpf, lpm: Fix check prefixlen before walking trie
	bpf: Add crosstask check to __bpf_get_stack
	wifi: ath11k: Defer on rproc_get failure
	wifi: libertas: stop selecting wext
	ARM: dts: qcom: apq8064: correct XOADC register address
	net/ncsi: Fix netlink major/minor version numbers
	firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
	firmware: meson_sm: populate platform devices from sm device tree data
	wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
	arm64: dts: ti: k3-am62a-main: Fix GPIO pin count in DT nodes
	arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
	selftests/bpf: Fix erroneous bitmask operation
	md: synchronize flush io with array reconfiguration
	bpf: enforce precision of R0 on callback return
	ARM: dts: qcom: sdx65: correct SPMI node name
	arm64: dts: qcom: sc7180: Make watchdog bark interrupt edge triggered
	arm64: dts: qcom: sc7280: Mark some nodes as 'reserved'
	arm64: dts: qcom: sc7280: Make watchdog bark interrupt edge triggered
	arm64: dts: qcom: sdm845: Make watchdog bark interrupt edge triggered
	arm64: dts: qcom: sm8150: Make watchdog bark interrupt edge triggered
	arm64: dts: qcom: sm8250: Make watchdog bark interrupt edge triggered
	arm64: dts: qcom: sc8280xp: Make watchdog bark interrupt edge triggered
	arm64: dts: qcom: sm6350: Make watchdog bark interrupt edge triggered
	rcu-tasks: Provide rcu_trace_implies_rcu_gp()
	bpf: add percpu stats for bpf_map elements insertions/deletions
	bpf: Add map and need_defer parameters to .map_fd_put_ptr()
	bpf: Defer the free of inner map when necessary
	selftests/net: specify the interface when do arping
	bpf: fix check for attempt to corrupt spilled pointer
	scsi: fnic: Return error if vmalloc() failed
	arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
	arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
	arm64: dts: qcom: sm8350: Fix DMA0 address
	arm64: dts: qcom: sc7280: Fix up GPU SIDs
	arm64: dts: qcom: sc7280: Mark Adreno SMMU as DMA coherent
	arm64: dts: qcom: sc7280: fix usb_2 wakeup interrupt types
	wifi: mt76: mt7921s: fix workqueue problem causes STA association fail
	bpf: Fix verification of indirect var-off stack access
	arm64: dts: hisilicon: hikey970-pmic: fix regulator cells properties
	dt-bindings: media: mediatek: mdp3: correct RDMA and WROT node with generic names
	arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes
	wifi: mt76: mt7921: fix country count limitation for CLC
	selftests/bpf: Relax time_tai test for equal timestamps in tai_forward
	block: Set memalloc_noio to false on device_add_disk() error path
	arm64: dts: renesas: white-hawk-cpu: Fix missing serial console pin control
	arm64: dts: imx8mm: Reduce GPU to nominal speed
	scsi: hisi_sas: Replace with standard error code return value
	scsi: hisi_sas: Rollback some operations if FLR failed
	scsi: hisi_sas: Correct the number of global debugfs registers
	ARM: dts: stm32: don't mix SCMI and non-SCMI board compatibles
	selftests/net: fix grep checking for fib_nexthop_multiprefix
	ipmr: support IP_PKTINFO on cache report IGMP msg
	virtio/vsock: fix logic which reduces credit update messages
	dma-mapping: clear dev->dma_mem to NULL after freeing it
	soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration
	arm64: dts: qcom: sm8150-hdk: fix SS USB regulators
	block: add check of 'minors' and 'first_minor' in device_add_disk()
	arm64: dts: qcom: sc7280: Mark SDHCI hosts as cache-coherent
	arm64: dts: qcom: ipq6018: fix clock rates for GCC_USB0_MOCK_UTMI_CLK
	arm64: dts: qcom: ipq6018: improve pcie phy pcs reg table
	arm64: dts: qcom: ipq6018: Use lowercase hex
	arm64: dts: qcom: ipq6018: Pad addresses to 8 hex digits
	arm64: dts: qcom: ipq6018: Fix up indentation
	wifi: rtlwifi: add calculate_bit_shift()
	wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
	wifi: iwlwifi: mvm: set siso/mimo chains to 1 in FW SMPS request
	wifi: iwlwifi: mvm: send TX path flush in rfkill
	netfilter: nf_tables: mark newset as dead on transaction abort
	Bluetooth: Fix bogus check for re-auth no supported with non-ssp
	Bluetooth: btmtkuart: fix recv_buf() return value
	block: make BLK_DEF_MAX_SECTORS unsigned
	null_blk: don't cap max_hw_sectors to BLK_DEF_MAX_SECTORS
	bpf: sockmap, fix proto update hook to avoid dup calls
	sctp: support MSG_ERRQUEUE flag in recvmsg()
	sctp: fix busy polling
	net/sched: act_ct: fix skb leak and crash on ooo frags
	mlxbf_gige: Fix intermittent no ip issue
	mlxbf_gige: Enable the GigE port in mlxbf_gige_open
	ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
	ARM: davinci: always select CONFIG_CPU_ARM926T
	Revert "drm/tidss: Annotate dma-fence critical section in commit path"
	Revert "drm/omapdrm: Annotate dma-fence critical section in commit path"
	drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off()
	RDMA/usnic: Silence uninitialized symbol smatch warnings
	RDMA/hns: Fix inappropriate err code for unsupported operations
	drm/panel-elida-kd35t133: hold panel in reset for unprepare
	drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer
	drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
	drm/tilcdc: Fix irq free on unload
	media: pvrusb2: fix use after free on context disconnection
	media: mtk-jpegdec: export jpeg decoder functions
	media: mtk-jpeg: Remove cancel worker in mtk_jpeg_remove to avoid the crash of multi-core JPEG devices
	media: verisilicon: Hook the (TRY_)DECODER_CMD stateless ioctls
	media: rkvdec: Hook the (TRY_)DECODER_CMD stateless ioctls
	drm/bridge: Fix typo in post_disable() description
	f2fs: fix to avoid dirent corruption
	drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
	drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
	drm/radeon: check return value of radeon_ring_lock()
	drm/tidss: Move reset to the end of dispc_init()
	drm/tidss: Return error value from from softreset
	drm/tidss: Check for K2G in in dispc_softreset()
	drm/tidss: Fix dss reset
	ASoC: cs35l33: Fix GPIO name and drop legacy include
	ASoC: cs35l34: Fix GPIO name and drop legacy include
	drm/msm/mdp4: flush vblank event on disable
	drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
	drm/drv: propagate errors from drm_modeset_register_all()
	ASoC: Intel: glk_rt5682_max98357a: fix board id mismatch
	drm/panfrost: Ignore core_mask for poweroff and disable PWRTRANS irq
	drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()
	drm/radeon/dpm: fix a memleak in sumo_parse_power_table
	drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
	drm/bridge: cdns-mhdp8546: Fix use of uninitialized variable
	drm/bridge: tc358767: Fix return value on error case
	media: cx231xx: fix a memleak in cx231xx_init_isoc
	RDMA/hns: Fix memory leak in free_mr_init()
	clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config
	media: imx-mipi-csis: Fix clock handling in remove()
	media: dt-bindings: media: rkisp1: Fix the port description for the parallel interface
	media: rkisp1: Fix media device memory leak
	drm/panel: st7701: Fix AVCL calculation
	f2fs: fix to wait on block writeback for post_read case
	f2fs: fix to check compress file in f2fs_move_file_range()
	f2fs: fix to update iostat correctly in f2fs_filemap_fault()
	media: dvbdev: drop refcount on error path in dvb_device_open()
	media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe()
	clk: renesas: rzg2l-cpg: Reuse code in rzg2l_cpg_reset()
	clk: renesas: rzg2l: Check reset monitor registers
	drm/msm/dpu: Set input_sel bit for INTF
	drm/msm/dpu: Drop enable and frame_count parameters from dpu_hw_setup_misr()
	drm/mediatek: Return error if MDP RDMA failed to enable the clock
	drm/mediatek: Fix underrun in VDO1 when switches off the layer
	drm/amdgpu/debugfs: fix error code when smc register accessors are NULL
	drm/amd/pm: fix a double-free in si_dpm_init
	drivers/amd/pm: fix a use-after-free in kv_parse_power_table
	gpu/drm/radeon: fix two memleaks in radeon_vm_init
	drm/amd/pm: fix a double-free in amdgpu_parse_extended_power_table
	f2fs: fix to check return value of f2fs_recover_xattr_data
	dt-bindings: clock: Update the videocc resets for sm8150
	clk: qcom: videocc-sm8150: Update the videocc resets
	clk: qcom: videocc-sm8150: Add missing PLL config property
	drivers: clk: zynqmp: calculate closest mux rate
	drivers: clk: zynqmp: update divider round rate logic
	watchdog: set cdev owner before adding
	watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO
	watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
	watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused
	clk: si5341: fix an error code problem in si5341_output_clk_set_rate
	drm/mediatek: dp: Add phy_mtk_dp module as pre-dependency
	accel/habanalabs: fix information leak in sec_attest_info()
	clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw
	pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable
	pwm: stm32: Use hweight32 in stm32_pwm_detect_channels
	pwm: stm32: Fix enable count for clk in .probe()
	ASoC: rt5645: Drop double EF20 entry from dmi_platform_data[]
	ALSA: scarlett2: Add missing error check to scarlett2_config_save()
	ALSA: scarlett2: Add missing error check to scarlett2_usb_set_config()
	ALSA: scarlett2: Allow passing any output to line_out_remap()
	ALSA: scarlett2: Add missing error checks to *_ctl_get()
	ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put()
	mmc: sdhci_am654: Fix TI SoC dependencies
	mmc: sdhci_omap: Fix TI SoC dependencies
	IB/iser: Prevent invalidating wrong MR
	drm/amdkfd: Confirm list is non-empty before utilizing list_first_entry in kfd_topology.c
	drm/amd/pm/smu7: fix a memleak in smu7_hwmgr_backend_init
	kselftest/alsa - mixer-test: fix the number of parameters to ksft_exit_fail_msg()
	kselftest/alsa - mixer-test: Fix the print format specifier warning
	ksmbd: validate the zero field of packet header
	of: Fix double free in of_parse_phandle_with_args_map
	fbdev: imxfb: fix left margin setting
	of: unittest: Fix of_count_phandle_with_args() expected value message
	selftests/bpf: Add assert for user stacks in test_task_stack
	keys, dns: Fix size check of V1 server-list header
	binder: fix async space check for 0-sized buffers
	binder: fix unused alloc->free_async_space
	mips/smp: Call rcutree_report_cpu_starting() earlier
	Input: atkbd - use ab83 as id when skipping the getid command
	xen-netback: don't produce zero-size SKB frags
	binder: fix race between mmput() and do_exit()
	clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings
	powerpc/64s: Increase default stack size to 32KB
	tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
	usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
	usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
	Revert "usb: dwc3: Soft reset phy on probe for host"
	Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"
	usb: chipidea: wait controller resume finished for wakeup irq
	usb: cdns3: fix uvc failure work since sg support enabled
	usb: cdns3: fix iso transfer error when mult is not zero
	usb: cdns3: Fix uvc fail when DMA cross 4k boundery since sg enabled
	Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
	usb: typec: class: fix typec_altmode_put_partner to put plugs
	usb: mon: Fix atomicity violation in mon_bin_vma_fault
	serial: core: fix sanitizing check for RTS settings
	serial: core: make sure RS485 cannot be enabled when it is not supported
	serial: 8250_bcm2835aux: Restore clock error handling
	serial: core, imx: do not set RS485 enabled if it is not supported
	serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock
	serial: 8250_exar: Set missing rs485_supported flag
	serial: omap: do not override settings for RS485 support
	drm/vmwgfx: Fix possible invalid drm gem put calls
	drm/vmwgfx: Keep a gem reference to user bos in surfaces
	ALSA: oxygen: Fix right channel of capture volume mixer
	ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx
	ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on HP ZBook
	ALSA: hda/realtek: Enable headset mic on Lenovo M70 Gen5
	ksmbd: validate mech token in session setup
	ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
	ksmbd: only v2 leases handle the directory
	io_uring/rw: ensure io->bytes_done is always initialized
	fbdev: flush deferred work in fb_deferred_io_fsync()
	fbdev: flush deferred IO before closing
	scsi: ufs: core: Simplify power management during async scan
	scsi: target: core: add missing file_{start,end}_write()
	scsi: mpi3mr: Refresh sdev queue depth after controller reset
	scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable State
	drm/amd: Enable PCIe PME from D3
	block: add check that partition length needs to be aligned with block size
	block: Fix iterating over an empty bio with bio_for_each_folio_all
	netfilter: nf_tables: check if catch-all set element is active in next generation
	pwm: jz4740: Don't use dev_err_probe() in .request()
	pwm: Fix out-of-bounds access in of_pwm_single_xlate()
	md/raid1: Use blk_opf_t for read and write operations
	rootfs: Fix support for rootfstype= when root= is given
	Bluetooth: Fix atomicity violation in {min,max}_key_size_set
	bpf: Fix re-attachment branch in bpf_tracing_prog_attach
	LoongArch: Fix and simplify fcsr initialization on execve()
	iommu/arm-smmu-qcom: Add missing GMU entry to match table
	iommu/dma: Trace bounce buffer usage when mapping buffers
	wifi: mt76: fix broken precal loading from MTD for mt7915
	wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
	wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors
	wifi: mwifiex: configure BSSID consistently when starting AP
	Revert "net: rtnetlink: Enslave device before bringing it up"
	cxl/port: Fix decoder initialization when nr_targets > interleave_ways
	PCI/P2PDMA: Remove reference to pci_p2pdma_map_sg()
	PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support
	PCI: mediatek: Clear interrupt status before dispatching handler
	x86/kvm: Do not try to disable kvmclock if it was not enabled
	KVM: arm64: vgic-v4: Restore pending state on host userspace write
	KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache
	iio: adc: ad7091r: Pass iio_dev to event handler
	HID: wacom: Correct behavior when processing some confidence == false touches
	serial: sc16is7xx: add check for unsupported SPI modes during probe
	serial: sc16is7xx: set safe default SPI clock frequency
	ARM: 9330/1: davinci: also select PINCTRL
	mfd: syscon: Fix null pointer dereference in of_syscon_register()
	leds: aw2013: Select missing dependency REGMAP_I2C
	mfd: intel-lpss: Fix the fractional clock divider flags
	mips: dmi: Fix early remap on MIPS32
	mips: Fix incorrect max_low_pfn adjustment
	riscv: Check if the code to patch lies in the exit section
	riscv: Fix module_alloc() that did not reset the linear mapping permissions
	riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings
	riscv: Fix set_direct_map_default_noflush() to reset _PAGE_EXEC
	riscv: Fixed wrong register in XIP_FIXUP_FLASH_OFFSET macro
	MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
	MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
	power: supply: cw2015: correct time_to_empty units in sysfs
	power: supply: bq256xx: fix some problem in bq256xx_hw_init
	serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
	libapi: Add missing linux/types.h header to get the __u64 type on io.h
	base/node.c: initialize the accessor list before registering
	acpi: property: Let args be NULL in __acpi_node_get_property_reference
	software node: Let args be NULL in software_node_get_reference_args
	serial: imx: fix tx statemachine deadlock
	selftests/sgx: Fix uninitialized pointer dereference in error path
	selftests/sgx: Fix uninitialized pointer dereferences in encl_get_entry
	selftests/sgx: Include memory clobber for inline asm in test enclave
	selftests/sgx: Skip non X86_64 platform
	iio: adc: ad9467: fix reset gpio handling
	iio: adc: ad9467: don't ignore error codes
	iio: adc: ad9467: fix scale setting
	perf header: Fix one memory leakage in perf_event__fprintf_event_update()
	perf hisi-ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event()
	perf genelf: Set ELF program header addresses properly
	tty: change tty_write_lock()'s ndelay parameter to bool
	tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
	tty: don't check for signal_pending() in send_break()
	tty: use 'if' in send_break() instead of 'goto'
	usb: cdc-acm: return correct error code on unsupported break
	spmi: mtk-pmif: Serialize PMIF status check and command submission
	vdpa: Fix an error handling path in eni_vdpa_probe()
	nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
	nvmet-tcp: fix a crash in nvmet_req_complete()
	perf env: Avoid recursively taking env->bpf_progs.lock
	cxl/region: fix x9 interleave typo
	apparmor: avoid crash when parsed profile name is empty
	usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer
	serial: imx: Correct clock error message in function probe()
	nvmet: re-fix tracing strncpy() warning
	nvme: trace: avoid memcpy overflow warning
	nvmet-tcp: Fix the H2C expected PDU len calculation
	PCI: keystone: Fix race condition when initializing PHYs
	PCI: mediatek-gen3: Fix translation window size calculation
	ASoC: mediatek: sof-common: Add NULL check for normal_link string
	s390/pci: fix max size calculation in zpci_memcpy_toio()
	net: qualcomm: rmnet: fix global oob in rmnet_policy
	net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames
	amt: do not use overwrapped cb area
	net: phy: micrel: populate .soft_reset for KSZ9131
	mptcp: mptcp_parse_option() fix for MPTCPOPT_MP_JOIN
	mptcp: strict validation before using mp_opt->hmac
	mptcp: use OPTION_MPTCP_MPJ_SYNACK in subflow_finish_connect()
	mptcp: use OPTION_MPTCP_MPJ_SYN in subflow_check_req()
	mptcp: refine opt_mp_capable determination
	block: ensure we hold a queue reference when using queue limits
	udp: annotate data-races around up->pending
	net: ravb: Fix dma_addr_t truncation in error case
	dt-bindings: gpio: xilinx: Fix node address in gpio
	drm/amdkfd: Use resource_size() helper function
	drm/amdkfd: fixes for HMM mem allocation
	net: stmmac: ethtool: Fixed calltrace caused by unbalanced disable_irq_wake calls
	bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
	net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe
	LoongArch: BPF: Prevent out-of-bounds memory access
	mptcp: relax check on MPC passive fallback
	netfilter: nf_tables: reject invalid set policy
	netfilter: nft_limit: do not ignore unsupported flags
	netfilter: nfnetlink_log: use proper helper for fetching physinif
	netfilter: nf_queue: remove excess nf_bridge variable
	netfilter: propagate net to nf_bridge_get_physindev
	netfilter: bridge: replace physindev with physinif in nf_bridge_info
	netfilter: nf_tables: do not allow mismatch field size and set key length
	netfilter: nf_tables: skip dead set elements in netlink dump
	netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description
	ipvs: avoid stat macros calls from preemptible context
	kdb: Fix a potential buffer overflow in kdb_local()
	ethtool: netlink: Add missing ethnl_ops_begin/complete
	loop: fix the the direct I/O support check when used on top of block devices
	mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
	selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes
	ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work
	i2c: s3c24xx: fix read transfers in polling mode
	i2c: s3c24xx: fix transferring more than one message in polling mode
	block: Remove special-casing of compound pages
	riscv: Fix wrong usage of lm_alias() when splitting a huge linear mapping
	Revert "KEYS: encrypted: Add check for strsep"
	arm64: dts: armada-3720-turris-mox: set irq type for RTC
	Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""
	Linux 6.1.75

Change-Id: I60398ecc9a2e50206fd9d25c0d6c9ad6e1ca71a0
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-02-19 20:16:38 +00:00
Greg Kroah-Hartman
6e04c1ccf7 Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
We need the updates in the normal branch due to the symbol changes
happening.  This consists of the following changes:

* 92432f07d6 ANDROID: GKI: Update the ABI symbol list
* b86713e341 UPSTREAM: virtio: Add support for no-reset virtio PCI PM
* 7dc3b2e49e UPSTREAM: netfilter: nf_tables: check if catch-all set element is active in next generation
* 8d4d76a2bd UPSTREAM: net: tls, update curr on splice as well
* 9e2b775333 ANDROID: Update the ABI symbol list
* 5a1f8b6b46 ANDROID: Add pci_read_config_word to virtual device symbol list
* e356cae969 ANDROID: Export kthread_set_per_cpu
* 81c922621d ANDROID: GKI: fix ABI breakage in struct ipv6_devconf
* 20131b787f Reapply "net: release reference to inet6_dev pointer"
* c2c0273029 Reapply "net: change accept_ra_min_rtr_lft to affect all RA lifetimes"
* a8053aadca Reapply "net: add sysctl accept_ra_min_rtr_lft"
* fc6c1b3acb ANDROID: GKI: explicit include of stringify.h
* 8481b97df5 BACKPORT: erofs: fix infinite loop due to a race of filling compressed_bvecs
* 886c9d1fc2 ANDROID: arm64: virt: Invalidate tlb once the balloon before reporting/inflating
* 4aedc102c3 ANDROID: arm64: virt: Make the page_relinquish call generic
* d3f73f0452 UPSTREAM: drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
* df2fe1add7 UPSTREAM: drm/msm/dsi: Enable runtime PM
* 6053d8ffd4 UPSTREAM: arm64: scs: Disable LTO for SCS patching code
* 696293ef72 ANDROID: GKI: Update symbol list for mtk
* 6338e41509 BACKPORT: f2fs: Restrict max filesize for 16K f2fs
* 8c8bcbdf0b BACKPORT: f2fs: Support Block Size == Page Size
* eb20497d6d ANDROID: abi_gki_aarch64_qcom: Update symbol list
* 1e6c1ca9a2 UPSTREAM: usb: typec: tcpm: fix the PD disabled case
* ba97ad7b91 UPSTREAM: netfilter: nf_tables: reject QUEUE/DROP verdict parameters
* 76f0396b57 ANDROID: ABI: Update oplus symbol list
* 016b640235 ANDROID: fuse: Fix the issue of fuse_dentry_canonical_path
* 5eb1cbb384 ANDROID: Update the ABI symbol list
* b53c3cb351 ANDROID: Export cpufreq_driver_test_flags()
* 9b476ebe99 ANDROID: Build null_blk and scsi_debug as kernel modules
* 01472f3af1 ANDROID: GKI: Update the pixel symbol list
* fbcd29ac45 ANDROID: usb: dwc3: export tracepoint for dwc3 read/write
* 0123832f68 ANDROID: scsi: ufs: add vendor hook to override key reprogramming
* 7ce117301e ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space_locked
* 7b6a6228df ANDROID: Update the ABI symbol list
* db94de2a17 ANDROID: Update the ABI representation
* e08371bcf5 UPSTREAM: usb: typec: tcpm: Support multiple capabilities
* 4025820c61 UPSTREAM: usb: typec: tcpm: Parse Accessory Mode information

Change-Id: Ibe422d476544081f14095e025b2a77ab70c577df
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-02-19 15:50:00 +00:00
Omkar Sai Sandeep Katadi
3e624d46b3 Merge remote-tracking branch into HEAD
* keystone/mirror-android14-6.1-2024-02: (1774 commits)
  UPSTREAM: virtio: Add support for no-reset virtio PCI PM
  UPSTREAM: netfilter: nf_tables: check if catch-all set element is active in next generation
  UPSTREAM: net: tls, update curr on splice as well
  ANDROID: Update the ABI symbol list
  ANDROID: Add pci_read_config_word to virtual device symbol list
  ANDROID: Export kthread_set_per_cpu
  ANDROID: GKI: fix ABI breakage in struct ipv6_devconf
  Reapply "net: release reference to inet6_dev pointer"
  Reapply "net: change accept_ra_min_rtr_lft to affect all RA lifetimes"
  Reapply "net: add sysctl accept_ra_min_rtr_lft"
  ANDROID: GKI: explicit include of stringify.h
  BACKPORT: erofs: fix infinite loop due to a race of filling compressed_bvecs
  ANDROID: arm64: virt: Invalidate tlb once the balloon before reporting/inflating
  ANDROID: arm64: virt: Make the page_relinquish call generic
  UPSTREAM: drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
  UPSTREAM: drm/msm/dsi: Enable runtime PM
  UPSTREAM: arm64: scs: Disable LTO for SCS patching code
  ANDROID: GKI: Update symbol list for mtk
  BACKPORT: f2fs: Restrict max filesize for 16K f2fs
  BACKPORT: f2fs: Support Block Size == Page Size
  ...

Change-Id: I451d22a014789c83a9762b254500a14f74157023
2024-02-16 21:58:18 +00:00
Jiri Wiesner
499e6e9f07 clocksource: Skip watchdog check for large watchdog intervals
commit 644649553508b9bacf0fc7a5bdc4f9e0165576a5 upstream.

There have been reports of the watchdog marking clocksources unstable on
machines with 8 NUMA nodes:

  clocksource: timekeeping watchdog on CPU373:
  Marking clocksource 'tsc' as unstable because the skew is too large:
  clocksource:   'hpet' wd_nsec: 14523447520
  clocksource:   'tsc'  cs_nsec: 14524115132

The measured clocksource skew - the absolute difference between cs_nsec
and wd_nsec - was 668 microseconds:

  cs_nsec - wd_nsec = 14524115132 - 14523447520 = 667612

The kernel used 200 microseconds for the uncertainty_margin of both the
clocksource and watchdog, resulting in a threshold of 400 microseconds (the
md variable). Both the cs_nsec and the wd_nsec value indicate that the
readout interval was circa 14.5 seconds.  The observed behaviour is that
watchdog checks failed for large readout intervals on 8 NUMA node
machines. This indicates that the size of the skew was directly proportinal
to the length of the readout interval on those machines. The measured
clocksource skew, 668 microseconds, was evaluated against a threshold (the
md variable) that is suited for readout intervals of roughly
WATCHDOG_INTERVAL, i.e. HZ >> 1, which is 0.5 second.

The intention of 2e27e793e2 ("clocksource: Reduce clocksource-skew
threshold") was to tighten the threshold for evaluating skew and set the
lower bound for the uncertainty_margin of clocksources to twice
WATCHDOG_MAX_SKEW. Later in c37e85c135ce ("clocksource: Loosen clocksource
watchdog constraints"), the WATCHDOG_MAX_SKEW constant was increased to
125 microseconds to fit the limit of NTP, which is able to use a
clocksource that suffers from up to 500 microseconds of skew per second.
Both the TSC and the HPET use default uncertainty_margin. When the
readout interval gets stretched the default uncertainty_margin is no
longer a suitable lower bound for evaluating skew - it imposes a limit
that is far stricter than the skew with which NTP can deal.

The root causes of the skew being directly proportinal to the length of
the readout interval are:

  * the inaccuracy of the shift/mult pairs of clocksources and the watchdog
  * the conversion to nanoseconds is imprecise for large readout intervals

Prevent this by skipping the current watchdog check if the readout
interval exceeds 2 * WATCHDOG_INTERVAL. Considering the maximum readout
interval of 2 * WATCHDOG_INTERVAL, the current default uncertainty margin
(of the TSC and HPET) corresponds to a limit on clocksource skew of 250
ppm (microseconds of skew per second).  To keep the limit imposed by NTP
(500 microseconds of skew per second) for all possible readout intervals,
the margins would have to be scaled so that the threshold value is
proportional to the length of the actual readout interval.

As for why the readout interval may get stretched: Since the watchdog is
executed in softirq context the expiration of the watchdog timer can get
severely delayed on account of a ksoftirqd thread not getting to run in a
timely manner. Surely, a system with such belated softirq execution is not
working well and the scheduling issue should be looked into but the
clocksource watchdog should be able to deal with it accordingly.

Fixes: 2e27e793e2 ("clocksource: Reduce clocksource-skew threshold")
Suggested-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Jiri Wiesner <jwiesner@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Feng Tang <feng.tang@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240122172350.GA740@incl
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-16 19:06:31 +01:00
Frederic Weisbecker
a94d303bea hrtimer: Report offline hrtimer enqueue
commit dad6a09f3148257ac1773cd90934d721d68ab595 upstream.

The hrtimers migration on CPU-down hotplug process has been moved
earlier, before the CPU actually goes to die. This leaves a small window
of opportunity to queue an hrtimer in a blind spot, leaving it ignored.

For example a practical case has been reported with RCU waking up a
SCHED_FIFO task right before the CPUHP_AP_IDLE_DEAD stage, queuing that
way a sched/rt timer to the local offline CPU.

Make sure such situations never go unnoticed and warn when that happens.

Fixes: 5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
Reported-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240129235646.3171983-4-boqun.feng@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-16 19:06:30 +01:00
Arve Hjønnevåg
e356cae969 ANDROID: Export kthread_set_per_cpu
kthread_create_on_cpu no longer marks the created thread as a per cpu
thread, so the affinity might get lost on suspend or other hotplug
events.

Export kthread_set_per_cpu so a module that needs a kthread to stay on a
specific cpu can accomplish that.

Bug: 274202992
Change-Id: Iaafc12f93f341f9e0586cb051b7f1c941f140866
Signed-off-by: Arve Hjønnevåg <arve@android.com>
(cherry picked from commit 4fdc7e4658212c096bd19fe7196296955942f7e5)
2024-02-13 18:56:33 +00:00
Ashay Jaiswal
073ad6710f sched: walt: fix SMART_FMAX threshold based capping logic
One of the condition to remove/apply SMART_FMAX frequency capping
is based on utilization of the CPU, if CPU is busy beyond 90% at the
capped frequency then frequency capping is removed and re-applied
whenever CPU utilization falls below 90%(after hysteresis of 1 sec).

Current logic checks CPU busy time based on the current frequency
and this results in a cycle of capping and uncapping.
For Example:
If the capping frequency is 2.8GHz and cluster's max frequency is
3.1GHz, once capping is applied CPU busy time is compared with
util@2.8GHz, while once capping is removed CPU busy time is compared
with util@3.1GHz, thus if system's requirement is 2.75GHz then there
will be a continuous cycle of capping and uncapping.

Fix this by always comparing CPU busy time against the capping frequency.

While at it, remove "update_smart_fmax_capacity" function as it is
no longer used.

Change-Id: Iefaff1037339477396bd238a01c273af4c7706e6
Signed-off-by: Ashay Jaiswal <quic_ashayj@quicinc.com>
2024-02-10 16:08:31 +05:30
Ashay Jaiswal
5e6f53ef97 sched: walt: fix smart fmax capping evaluation
Once load condition for fmax uncapping is satisfied, smart fmax
applies a hysteresis before re-applying the fmax cap after system
load goes down (i.e. system load should continuously remain below
the load threshold for hysteresis time).
Current hysteresis evaluation applies fmax capping before elapse of
hysteresis time, update the logic to honor capping hysteresis.

Change-Id: I34e18eb10f33f2d99a3dd5d9255011058f273ad8
Signed-off-by: Ashay Jaiswal <quic_ashayj@quicinc.com>
2024-02-08 10:54:39 +05:30
Peter Zijlstra
071d98d5ee perf: Fix the nr_addr_filters fix
[ Upstream commit 388a1fb7da6aaa1970c7e2a7d7fcd983a87a8484 ]

Thomas reported that commit 652ffc2104ec ("perf/core: Fix narrow
startup race when creating the perf nr_addr_filters sysfs file") made
the entire attribute group vanish, instead of only the nr_addr_filters
attribute.

Additionally a stray return.

Insufficient coffee was involved with both writing and merging the
patch.

Fixes: 652ffc2104ec ("perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file")
Reported-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Link: https://lkml.kernel.org/r/20231122100756.GP8262@noisy.programming.kicks-ass.net
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-05 20:13:00 +00:00
Hou Tao
5a44a664ab bpf: Set uattr->batch.count as zero before batched update or deletion
[ Upstream commit 06e5c999f10269a532304e89a6adb2fbfeb0593c ]

generic_map_{delete,update}_batch() doesn't set uattr->batch.count as
zero before it tries to allocate memory for key. If the memory
allocation fails, the value of uattr->batch.count will be incorrect.

Fix it by setting uattr->batch.count as zero beore batched update or
deletion.

Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20231208102355.2628918-6-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-05 20:12:51 +00:00
Hou Tao
d6d6fe4bb1 bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers
[ Upstream commit 169410eba271afc9f0fb476d996795aa26770c6d ]

These three bpf_map_{lookup,update,delete}_elem() helpers are also
available for sleepable bpf program, so add the corresponding lock
assertion for sleepable bpf program, otherwise the following warning
will be reported when a sleepable bpf program manipulates bpf map under
interpreter mode (aka bpf_jit_enable=0):

  WARNING: CPU: 3 PID: 4985 at kernel/bpf/helpers.c:40 ......
  CPU: 3 PID: 4985 Comm: test_progs Not tainted 6.6.0+ #2
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) ......
  RIP: 0010:bpf_map_lookup_elem+0x54/0x60
  ......
  Call Trace:
   <TASK>
   ? __warn+0xa5/0x240
   ? bpf_map_lookup_elem+0x54/0x60
   ? report_bug+0x1ba/0x1f0
   ? handle_bug+0x40/0x80
   ? exc_invalid_op+0x18/0x50
   ? asm_exc_invalid_op+0x1b/0x20
   ? __pfx_bpf_map_lookup_elem+0x10/0x10
   ? rcu_lockdep_current_cpu_online+0x65/0xb0
   ? rcu_is_watching+0x23/0x50
   ? bpf_map_lookup_elem+0x54/0x60
   ? __pfx_bpf_map_lookup_elem+0x10/0x10
   ___bpf_prog_run+0x513/0x3b70
   __bpf_prog_run32+0x9d/0xd0
   ? __bpf_prog_enter_sleepable_recur+0xad/0x120
   ? __bpf_prog_enter_sleepable_recur+0x3e/0x120
   bpf_trampoline_6442580665+0x4d/0x1000
   __x64_sys_getpgid+0x5/0x30
   ? do_syscall_64+0x36/0xb0
   entry_SYSCALL_64_after_hwframe+0x6e/0x76
   </TASK>

Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20231204140425.1480317-2-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-05 20:12:51 +00:00
Chris Riches
4d4e06eaa2 audit: Send netlink ACK before setting connection in auditd_set
[ Upstream commit 022732e3d846e197539712e51ecada90ded0572a ]

When auditd_set sets the auditd_conn pointer, audit messages can
immediately be put on the socket by other kernel threads. If the backlog
is large or the rate is high, this can immediately fill the socket
buffer. If the audit daemon requested an ACK for this operation, a full
socket buffer causes the ACK to get dropped, also setting ENOBUFS on the
socket.

To avoid this race and ensure ACKs get through, fast-track the ACK in
this specific case to ensure it is sent before auditd_conn is set.

Signed-off-by: Chris Riches <chris.riches@nutanix.com>
[PM: fix some tab vs space damage]
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-05 20:12:47 +00:00
Greg KH
74ec093dba perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
[ Upstream commit 652ffc2104ec1f69dd4a46313888c33527145ccf ]

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/2023061204-decal-flyable-6090@gregkh
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-05 20:12:47 +00:00
Greg Kroah-Hartman
c3a1a1e97e Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
Backmerge the latest android14-6.1 changes into the lts branch to keep
up to date.  Contains the following commits:

* 3578913b2e UPSTREAM: net/rose: Fix Use-After-Free in rose_ioctl
* 8fbed1ea00 UPSTREAM: ida: Fix crash in ida_free when the bitmap is empty
* 6ce5bb744e ANDROID: GKI: Update symbol list for mtk
* 7cbad58851 Reapply "perf: Disallow mis-matched inherited group reads"
* 067a03c44e ANDROID: GKI: Add Pasa symbol list
* b6be1a36f7 FROMGIT: mm: memcg: don't periodically flush stats when memcg is disabled
* d0e2d333f9 ANDROID: Update the ABI symbol list
* 10558542a1 ANDROID: sched: export update_misfit_status symbol
* a0b3b39898 ANDROID: GKI: Add ASR KMI symbol list
* 599710db0f FROMGIT: usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend
* 9265fa90c1 FROMLIST: usb: core: Prevent null pointer dereference in update_port_device_state
* 2730733d54 ANDROID: gki_defconfig: Enable CONFIG_NVME_MULTIPATH
* 4f668f5682 BACKPORT: irqchip/gic-v3: Work around affinity issues on ASR8601
* 473a871315 BACKPORT: irqchip/gic-v3: Improve affinity helper
* 6c32acf537 UPSTREAM: sched/fair: Limit sched slice duration
* 7088d250bf ANDROID: Update the ABI symbol list
* c249740414 ANDROID: idle_inject: Export function symbols
* 990d341477 ANDROID: Update the ABI symbol list
* be92a6a1b4 ANDROID: GKI: Remove CONFIG_MEDIA_CEC_RC
* fa9ac43f16 BACKPORT: usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present
*   f27fc6ba23 Merge "Merge tag 'android14-6.1.68_r00' into branch 'android14-6.1'" into android14-6.1
|\
| * 0177cfb2a2 Merge tag 'android14-6.1.68_r00' into branch 'android14-6.1'
* c96cea1a3c ANDROID: Update the ABI symbol list
* c2fbc12180 ANDROID: uid_sys_stats: Drop CONFIG_UID_SYS_STATS_DEBUG logic
* 90bd30bdef ANDROID: Update the ABI symbol list
* 3280560843 ANDROID: Update the ABI symbol list
* 427210e440 UPSTREAM: usb: gadget: uvc: Remove nested locking
* 9267e267be ANDROID: uid_sys_stats: Fully initialize uid_entry_tmp value
* 2d3f0c9d41 ANDROID: Roll back some code to fix system_server registers psi trigger failed.
* bd77c97c76 UPSTREAM: usb: gadget: uvc: Fix use are free during STREAMOFF
* 21c71a7d0e ANDROID: GKI: Add symbol list for Nothing
* aba5a3fe09 ANDROID: Enable CONFIG_LAZY_RCU in x86 gki_defconfig
* 204160394a ANDROID: fuse-bpf: Fix the issue of abnormal lseek system calls
* 947708f1ff ANDROID: ABI: Update symbol list for imx
* 7eedea7abf BACKPORT: PM: sleep: Fix possible deadlocks in core system-wide PM code
* e1a20dd9ff UPSTREAM: async: Introduce async_schedule_dev_nocall()
* e4b0e14f83 UPSTREAM: async: Split async_schedule_node_domain()
* 6b4c816d17 FROMGIT: BACKPORT: mm: update mark_victim tracepoints fields
* d97ea65296 ANDROID: Enable CONFIG_LAZY_RCU in arm64 gki_defconfig
* 90d68cedd1 FROMLIST: rcu: Provide a boot time parameter to control lazy RCU
* a079cc5876 ANDROID: rcu: Add a minimum time for marking boot as completed
* ffe09c06a8 UPSTREAM: rcu: Disable laziness if lazy-tracking says so
* d07488d26e UPSTREAM: rcu: Track laziness during boot and suspend
* 4316bd568b UPSTREAM: net: Use call_rcu_hurry() for dst_release()
* b9427245f0 UPSTREAM: workqueue: Make queue_rcu_work() use call_rcu_hurry()
* 72fdf7f606 UPSTREAM: percpu-refcount: Use call_rcu_hurry() for atomic switch
* ced65a053b UPSTREAM: io_uring: use call_rcu_hurry if signaling an eventfd
* 84c8157d06 UPSTREAM: rcu: Update synchronize_rcu_mult() comment for call_rcu_hurry()
* 3751416eeb UPSTREAM: scsi/scsi_error: Use call_rcu_hurry() instead of call_rcu()
* 52193e9489 UPSTREAM: rcu/rcutorture: Use call_rcu_hurry() where needed
* 83f8ba569f UPSTREAM: rcu/rcuscale: Use call_rcu_hurry() for async reader test
* 9b625f4978 UPSTREAM: rcu/sync: Use call_rcu_hurry() instead of call_rcu
* c570c8fea3 BACKPORT: rcu: Shrinker for lazy rcu
* 4957579439 UPSTREAM: rcu: Refactor code a bit in rcu_nocb_do_flush_bypass()
* 66a832fe38 UPSTREAM: rcu: Make call_rcu() lazy to save power
* 4fb09fb4f7 UPSTREAM: rcu: Fix missing nocb gp wake on rcu_barrier()
* 64c59ad2c3 UPSTREAM: rcu: Fix late wakeup when flush of bypass cblist happens
* 0799ace265 ANDROID: Update the ABI symbol list
* 65db2f8ed3 ANDROID: GKI: add GKI symbol list for Exynosauto SoC
* cfe8cce4e8 UPSTREAM: coresight: tmc: Don't enable TMC when it's not ready.
* 899194d7e9 UPSTREAM: netfilter: nf_tables: bail out on mismatching dynset and set expressions
* e6712ed4f0 ANDROID: ABI: Update oplus symbol list
* 24bb8fc82e ANDROID: vendor_hooks: add hooks in driver/android/binder.c
* 55930b39ca ANDROID: GKI: Update honda symbol list for xt_LOG
* 3160b69e20 ANDROID: GKI: Update honda symbol list for ebt filter
* 4dc7f98815 ANDROID: GKI: Update honda symbol list for ebtables
* 39a0823340 ANDROID: GKI: Update honda symbol list for net scheduler
* dd0098bdb4 ANDROID: GKI: Update honda symbol list for led-trigger
* 66a20ed4b8 ANDROID: GKI: Add initial symbol list for honda
* 28dbe4d613 ANDROID: GKI: add symbols to ABI
* 97100e867e FROMGIT: usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
* 36248a15a7 FROMGIT: usb: dwc3: set pm runtime active before resume common

Change-Id: I8d9586a94c3182cd365d1e3b651a7552c7c9949b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-02-01 16:48:05 +00:00
Tim Chen
cf0b4ba4b0 tick/sched: Preserve number of idle sleeps across CPU hotplug events
commit 9a574ea9069be30b835a3da772c039993c43369b upstream.

Commit 71fee48f ("tick-sched: Fix idle and iowait sleeptime accounting vs
CPU hotplug") preserved total idle sleep time and iowait sleeptime across
CPU hotplug events.

Similar reasoning applies to the number of idle calls and idle sleeps to
get the proper average of sleep time per idle invocation.

Preserve those fields too.

Fixes: 71fee48f ("tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug")
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240122233534.3094238-1-tim.c.chen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:17:12 -08:00
Frederic Weisbecker
c817f5c016 rcu: Defer RCU kthreads wakeup when CPU is dying
[ Upstream commit e787644caf7628ad3269c1fbd321c3255cf51710 ]

When the CPU goes idle for the last time during the CPU down hotplug
process, RCU reports a final quiescent state for the current CPU. If
this quiescent state propagates up to the top, some tasks may then be
woken up to complete the grace period: the main grace period kthread
and/or the expedited main workqueue (or kworker).

If those kthreads have a SCHED_FIFO policy, the wake up can indirectly
arm the RT bandwith timer to the local offline CPU. Since this happens
after hrtimers have been migrated at CPUHP_AP_HRTIMERS_DYING stage, the
timer gets ignored. Therefore if the RCU kthreads are waiting for RT
bandwidth to be available, they may never be actually scheduled.

This triggers TREE03 rcutorture hangs:

	 rcu: INFO: rcu_preempt self-detected stall on CPU
	 rcu:     4-...!: (1 GPs behind) idle=9874/1/0x4000000000000000 softirq=0/0 fqs=20 rcuc=21071 jiffies(starved)
	 rcu:     (t=21035 jiffies g=938281 q=40787 ncpus=6)
	 rcu: rcu_preempt kthread starved for 20964 jiffies! g938281 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=0
	 rcu:     Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
	 rcu: RCU grace-period kthread stack dump:
	 task:rcu_preempt     state:R  running task     stack:14896 pid:14    tgid:14    ppid:2      flags:0x00004000
	 Call Trace:
	  <TASK>
	  __schedule+0x2eb/0xa80
	  schedule+0x1f/0x90
	  schedule_timeout+0x163/0x270
	  ? __pfx_process_timeout+0x10/0x10
	  rcu_gp_fqs_loop+0x37c/0x5b0
	  ? __pfx_rcu_gp_kthread+0x10/0x10
	  rcu_gp_kthread+0x17c/0x200
	  kthread+0xde/0x110
	  ? __pfx_kthread+0x10/0x10
	  ret_from_fork+0x2b/0x40
	  ? __pfx_kthread+0x10/0x10
	  ret_from_fork_asm+0x1b/0x30
	  </TASK>

The situation can't be solved with just unpinning the timer. The hrtimer
infrastructure and the nohz heuristics involved in finding the best
remote target for an unpinned timer would then also need to handle
enqueues from an offline CPU in the most horrendous way.

So fix this on the RCU side instead and defer the wake up to an online
CPU if it's too late for the local one.

Reported-by: Paul E. McKenney <paulmck@kernel.org>
Fixes: 5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Neeraj Upadhyay (AMD) <neeraj.iitr10@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-31 16:17:05 -08:00
Petr Pavlu
f4f7e696db tracing: Ensure visibility when inserting an element into tracing_map
[ Upstream commit 2b44760609e9eaafc9d234a6883d042fc21132a7 ]

Running the following two commands in parallel on a multi-processor
AArch64 machine can sporadically produce an unexpected warning about
duplicate histogram entries:

 $ while true; do
     echo hist:key=id.syscall:val=hitcount > \
       /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger
     cat /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/hist
     sleep 0.001
   done
 $ stress-ng --sysbadaddr $(nproc)

The warning looks as follows:

[ 2911.172474] ------------[ cut here ]------------
[ 2911.173111] Duplicates detected: 1
[ 2911.173574] WARNING: CPU: 2 PID: 12247 at kernel/trace/tracing_map.c:983 tracing_map_sort_entries+0x3e0/0x408
[ 2911.174702] Modules linked in: iscsi_ibft(E) iscsi_boot_sysfs(E) rfkill(E) af_packet(E) nls_iso8859_1(E) nls_cp437(E) vfat(E) fat(E) ena(E) tiny_power_button(E) qemu_fw_cfg(E) button(E) fuse(E) efi_pstore(E) ip_tables(E) x_tables(E) xfs(E) libcrc32c(E) aes_ce_blk(E) aes_ce_cipher(E) crct10dif_ce(E) polyval_ce(E) polyval_generic(E) ghash_ce(E) gf128mul(E) sm4_ce_gcm(E) sm4_ce_ccm(E) sm4_ce(E) sm4_ce_cipher(E) sm4(E) sm3_ce(E) sm3(E) sha3_ce(E) sha512_ce(E) sha512_arm64(E) sha2_ce(E) sha256_arm64(E) nvme(E) sha1_ce(E) nvme_core(E) nvme_auth(E) t10_pi(E) sg(E) scsi_mod(E) scsi_common(E) efivarfs(E)
[ 2911.174738] Unloaded tainted modules: cppc_cpufreq(E):1
[ 2911.180985] CPU: 2 PID: 12247 Comm: cat Kdump: loaded Tainted: G            E      6.7.0-default #2 1b58bbb22c97e4399dc09f92d309344f69c44a01
[ 2911.182398] Hardware name: Amazon EC2 c7g.8xlarge/, BIOS 1.0 11/1/2018
[ 2911.183208] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[ 2911.184038] pc : tracing_map_sort_entries+0x3e0/0x408
[ 2911.184667] lr : tracing_map_sort_entries+0x3e0/0x408
[ 2911.185310] sp : ffff8000a1513900
[ 2911.185750] x29: ffff8000a1513900 x28: ffff0003f272fe80 x27: 0000000000000001
[ 2911.186600] x26: ffff0003f272fe80 x25: 0000000000000030 x24: 0000000000000008
[ 2911.187458] x23: ffff0003c5788000 x22: ffff0003c16710c8 x21: ffff80008017f180
[ 2911.188310] x20: ffff80008017f000 x19: ffff80008017f180 x18: ffffffffffffffff
[ 2911.189160] x17: 0000000000000000 x16: 0000000000000000 x15: ffff8000a15134b8
[ 2911.190015] x14: 0000000000000000 x13: 205d373432323154 x12: 5b5d313131333731
[ 2911.190844] x11: 00000000fffeffff x10: 00000000fffeffff x9 : ffffd1b78274a13c
[ 2911.191716] x8 : 000000000017ffe8 x7 : c0000000fffeffff x6 : 000000000057ffa8
[ 2911.192554] x5 : ffff0012f6c24ec0 x4 : 0000000000000000 x3 : ffff2e5b72b5d000
[ 2911.193404] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0003ff254480
[ 2911.194259] Call trace:
[ 2911.194626]  tracing_map_sort_entries+0x3e0/0x408
[ 2911.195220]  hist_show+0x124/0x800
[ 2911.195692]  seq_read_iter+0x1d4/0x4e8
[ 2911.196193]  seq_read+0xe8/0x138
[ 2911.196638]  vfs_read+0xc8/0x300
[ 2911.197078]  ksys_read+0x70/0x108
[ 2911.197534]  __arm64_sys_read+0x24/0x38
[ 2911.198046]  invoke_syscall+0x78/0x108
[ 2911.198553]  el0_svc_common.constprop.0+0xd0/0xf8
[ 2911.199157]  do_el0_svc+0x28/0x40
[ 2911.199613]  el0_svc+0x40/0x178
[ 2911.200048]  el0t_64_sync_handler+0x13c/0x158
[ 2911.200621]  el0t_64_sync+0x1a8/0x1b0
[ 2911.201115] ---[ end trace 0000000000000000 ]---

The problem appears to be caused by CPU reordering of writes issued from
__tracing_map_insert().

The check for the presence of an element with a given key in this
function is:

 val = READ_ONCE(entry->val);
 if (val && keys_match(key, val->key, map->key_size)) ...

The write of a new entry is:

 elt = get_free_elt(map);
 memcpy(elt->key, key, map->key_size);
 entry->val = elt;

The "memcpy(elt->key, key, map->key_size);" and "entry->val = elt;"
stores may become visible in the reversed order on another CPU. This
second CPU might then incorrectly determine that a new key doesn't match
an already present val->key and subsequently insert a new element,
resulting in a duplicate.

Fix the problem by adding a write barrier between
"memcpy(elt->key, key, map->key_size);" and "entry->val = elt;", and for
good measure, also use WRITE_ONCE(entry->val, elt) for publishing the
element. The sequence pairs with the mentioned "READ_ONCE(entry->val);"
and the "val->key" check which has an address dependency.

The barrier is placed on a path executed when adding an element for
a new key. Subsequent updates targeting the same key remain unaffected.

From the user's perspective, the issue was introduced by commit
c193707dde ("tracing: Remove code which merges duplicates"), which
followed commit cbf4100efb ("tracing: Add support to detect and avoid
duplicates"). The previous code operated differently; it inherently
expected potential races which result in duplicates but merged them
later when they occurred.

Link: https://lore.kernel.org/linux-trace-kernel/20240122150928.27725-1-petr.pavlu@suse.com

Fixes: c193707dde ("tracing: Remove code which merges duplicates")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-31 16:17:04 -08:00
Rafael J. Wysocki
fcf8e37152 async: Introduce async_schedule_dev_nocall()
commit 7d4b5d7a37bdd63a5a3371b988744b060d5bb86f upstream.

In preparation for subsequent changes, introduce a specialized variant
of async_schedule_dev() that will not invoke the argument function
synchronously when it cannot be scheduled for asynchronous execution.

The new function, async_schedule_dev_nocall(), will be used for fixing
possible deadlocks in the system-wide power management core code.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> for the series.
Tested-by: Youngmin Nam <youngmin.nam@samsung.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:17:00 -08:00
Rafael J. Wysocki
6e8aab4de7 async: Split async_schedule_node_domain()
commit 6aa09a5bccd8e224d917afdb4c278fc66aacde4d upstream.

In preparation for subsequent changes, split async_schedule_node_domain()
in two pieces so as to allow the bottom part of it to be called from a
somewhat different code path.

No functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Tested-by: Youngmin Nam <youngmin.nam@samsung.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:16:59 -08:00
Hongchen Zhang
3a081586c7 PM: hibernate: Enforce ordering during image compression/decompression
commit 71cd7e80cfde548959952eac7063aeaea1f2e1c6 upstream.

An S4 (suspend to disk) test on the LoongArch 3A6000 platform sometimes
fails with the following error messaged in the dmesg log:

	Invalid LZO compressed length

That happens because when compressing/decompressing the image, the
synchronization between the control thread and the compress/decompress/crc
thread is based on a relaxed ordering interface, which is unreliable, and the
following situation may occur:

CPU 0					CPU 1
save_image_lzo				lzo_compress_threadfn
					  atomic_set(&d->stop, 1);
  atomic_read(&data[thr].stop)
  data[thr].cmp = data[thr].cmp_len;
	  				  WRITE data[thr].cmp_len

Then CPU0 gets a stale cmp_len and writes it to disk. During resume from S4,
wrong cmp_len is loaded.

To maintain data consistency between the two threads, use the acquire/release
variants of atomic set and read operations.

Fixes: 081a9d043c ("PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image")
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Hongchen Zhang <zhanghongchen@loongson.cn>
Co-developed-by: Weihao Li <liweihao@loongson.cn>
Signed-off-by: Weihao Li <liweihao@loongson.cn>
[ rjw: Subject rewrite and changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:16:58 -08:00
Greg Kroah-Hartman
7cbad58851 Reapply "perf: Disallow mis-matched inherited group reads"
This reverts commit 63eafbb6b3.

Keeps the ABI stable by taking advantage of a hole in the structure!

Bug: 307236803
Change-Id: Ic5f7ebeb3a9b13afdb3bfff7e54c4a93b863dab6
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-31 13:16:05 +00:00
Greg Kroah-Hartman
48159eff53 This is the 6.1.74 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWrpWwACgkQONu9yGCS
 aT4NCxAAy3cItCclN2JVrdjKW8htc81fhEhUdB1oDwz8+U9SJJ0E7psR0H8p8KTM
 2OTT9pVhfaZ2Usjml/PVjzBxR26o4jsUV3Ls/GMbrGnUBwPXFUXI4WAFhPKOvc4W
 IKffdO9SVFMQVygsCR02mld/BJiRp6Yak+p9z0Kmre74G+Wv7uq+yeYkqxJdIRZo
 owg6UwItEQ+gxhK+eRw0Cdp4pXr7NARY8l4POWuFxMylKwLPACdr/MxFsmG5a3u7
 Gzw+Gygmm9OZoX5R/qtgY2WodAO2WsAwiEKPfY1nNqQ/8lcGpmb6LqXwfY2ea4Mn
 UMGonnxYcN8Xca4Eq2OTsAfe9E7NmdvRbLrhVM0RNepVZWaiaGJO7BXKiyVV1OY0
 T5JJjZZexAuAJ183Vj8FYzp0V6FJn2f/U1rVaLwO4Fk4kBN5qaXWgaB3UP0BBlhM
 nI1yjPY0Ti0j9OcZpCxKGzwLIyNX9njbIINCt2rdkAw25aJyjuzG+h76IMyz1q5+
 cDf3Oet+FTkDr8W8FuH7AKMgRKhuXHm49xWnKHy4+PCA5zBnidNT8+ipaDgeCSS7
 2kMM+F1LSb031Oys0V7Xqf1diWvdhpAhmaTYSpzF1QNIbPv4dsQOgeuRP1rqZcMc
 RsqxNNkbqVIsuu9PE2x5pWQyqzeF6mDx+yJA/fSWm6N8akPEEpc=
 =AE28
 -----END PGP SIGNATURE-----

Merge 6.1.74 into android14-6.1-lts

Changes in 6.1.74
	f2fs: explicitly null-terminate the xattr list
	pinctrl: lochnagar: Don't build on MIPS
	ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro
	mptcp: fix uninit-value in mptcp_incoming_options
	wifi: cfg80211: lock wiphy mutex for rfkill poll
	wifi: avoid offset calculation on NULL pointer
	wifi: mac80211: handle 320 MHz in ieee80211_ht_cap_ie_to_sta_ht_cap
	debugfs: fix automount d_fsdata usage
	ALSA: hda: intel-nhlt: Ignore vbps when looking for DMIC 32 bps format
	nvme-core: fix a memory leak in nvme_ns_info_from_identify()
	drm/amd/display: update dcn315 lpddr pstate latency
	drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer
	smb: client, common: fix fortify warnings
	blk-mq: don't count completed flush data request as inflight in case of quiesce
	nvme-core: check for too small lba shift
	hwtracing: hisi_ptt: Handle the interrupt in hardirq context
	hwtracing: hisi_ptt: Don't try to attach a task
	ASoC: wm8974: Correct boost mixer inputs
	arm64: dts: rockchip: fix rk356x pcie msg interrupt name
	ASoC: Intel: Skylake: Fix mem leak in few functions
	ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
	ASoC: Intel: Skylake: mem leak in skl register function
	ASoC: cs43130: Fix the position of const qualifier
	ASoC: cs43130: Fix incorrect frame delay configuration
	ASoC: rt5650: add mutex to avoid the jack detection failure
	ASoC: Intel: skl_hda_dsp_generic: Drop HDMI routes when HDMI is not available
	nouveau/tu102: flush all pdbs on vmm flush
	ASoC: amd: yc: Add DMI entry to support System76 Pangolin 13
	ASoC: hdac_hda: Conditionally register dais for HDMI and Analog
	net/tg3: fix race condition in tg3_reset_task()
	ASoC: da7219: Support low DC impedance headset
	ASoC: ops: add correct range check for limiting volume
	nvme: introduce helper function to get ctrl state
	nvme: prevent potential spectre v1 gadget
	arm64: dts: rockchip: Fix PCI node addresses on rk3399-gru
	drm/amdgpu: Add NULL checks for function pointers
	drm/exynos: fix a potential error pointer dereference
	drm/exynos: fix a wrong error checking
	hwmon: (corsair-psu) Fix probe when built-in
	LoongArch: Preserve syscall nr across execve()
	clk: rockchip: rk3568: Add PLL rate for 292.5MHz
	clk: rockchip: rk3128: Fix HCLK_OTG gate register
	jbd2: correct the printing of write_flags in jbd2_write_superblock()
	jbd2: increase the journal IO's priority
	drm/crtc: Fix uninit-value bug in drm_mode_setcrtc
	neighbour: Don't let neigh_forced_gc() disable preemption for long
	platform/x86: intel-vbtn: Fix missing tablet-mode-switch events
	jbd2: fix soft lockup in journal_finish_inode_data_buffers()
	tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
	tracing: Add size check when printing trace_marker output
	stmmac: dwmac-loongson: drop useless check for compatible fallback
	MIPS: dts: loongson: drop incorrect dwmac fallback compatible
	tracing: Fix uaf issue when open the hist or hist_debug file
	ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
	Input: psmouse - enable Synaptics InterTouch for ThinkPad L14 G1
	reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning
	Input: atkbd - skip ATKBD_CMD_GETID in translated mode
	Input: i8042 - add nomux quirk for Acer P459-G2-M
	s390/scm: fix virtual vs physical address confusion
	ARC: fix spare error
	wifi: iwlwifi: pcie: avoid a NULL pointer dereference
	Input: xpad - add Razer Wolverine V2 support
	kselftest: alsa: fixed a print formatting warning
	HID: nintendo: fix initializer element is not constant error
	platform/x86: thinkpad_acpi: fix for incorrect fan reporting on some ThinkPad systems
	ASoC: Intel: bytcr_rt5640: Add quirk for the Medion Lifetab S10346
	ASoC: Intel: bytcr_rt5640: Add new swapped-speakers quirk
	ALSA: hda/realtek: Add quirks for ASUS Zenbook 2022 Models
	dm audit: fix Kconfig so DM_AUDIT depends on BLK_DEV_DM
	HID: nintendo: Prevent divide-by-zero on code
	smb: client: fix potential OOB in smb2_dump_detail()
	i2c: rk3x: fix potential spinlock recursion on poll
	drm/amd/display: get dprefclk ss info from integration info table
	pinctrl: cy8c95x0: Fix typo
	pinctrl: cy8c95x0: Fix get_pincfg
	ida: Fix crash in ida_free when the bitmap is empty
	virtio_blk: fix snprintf truncation compiler warning
	net: qrtr: ns: Return 0 if server port is not present
	ARM: sun9i: smp: fix return code check of of_property_match_string
	drm/crtc: fix uninitialized variable use
	ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP Envy X360 13-ay0xxx
	ACPI: resource: Add another DMI match for the TongFang GMxXGxx
	ASoC: SOF: Intel: hda-codec: Delay the codec device registration
	btf, scripts: Exclude Rust CUs with pahole
	bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
	ksmbd: don't allow O_TRUNC open on read-only share
	ksmbd: free ppace array on error in parse_dacl
	Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
	binder: use EPOLLERR from eventpoll.h
	binder: fix use-after-free in shinker's callback
	binder: fix trivial typo of binder_free_buf_locked()
	binder: fix comment on binder_alloc_new_buf() return value
	uio: Fix use-after-free in uio_open
	parport: parport_serial: Add Brainboxes BAR details
	parport: parport_serial: Add Brainboxes device IDs and geometry
	leds: ledtrig-tty: Free allocated ttyname buffer on deactivate
	PCI: Add ACS quirk for more Zhaoxin Root Ports
	coresight: etm4x: Fix width of CCITMIN field
	scripts/decode_stacktrace.sh: optionally use LLVM utilities
	Linux 6.1.74

Change-Id: Icd69871d2272d5c26e253cfe54d2a8b637e616b5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-31 01:16:30 +00:00
Omkar Sai Sandeep Katadi
a7a9bfdae3 Merge remote-tracking branch into HEAD
* keystone/mirror-android14-6.1-2024-01: (139 commits)
  ANDROID: Update the pixel symbol list
  BACKPORT: UPSTREAM: phy: qcom-qmp: Introduce Kconfig symbols for discrete drivers
  ANDROID: GKI: add symbols of vendor hooks to ABI for swapping in ahead
  ANDROID: GKI: add vendor hooks for swapping in ahead
  ANDROID: add 16k targets for Microdroid kernel
  FROMGIT: BACKPORT: mm/cma: fix placement of trace_cma_alloc_start/finish
  FROMGIT: wifi: nl80211: Extend del pmksa support for SAE and OWE security
  ANDROID: Update the ABI symbol list
  ANDROID: mm: export dump_tasks symbol.
  FROMLIST: scsi: ufs: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
  FROMLIST: scsi: ufs: Simplify power management during async scan
  ANDROID: gki_defconfig: Set CONFIG_IDLE_INJECT and CONFIG_CPU_IDLE_THERMAL into y
  ANDROID: KMI workaround for CONFIG_NETFILTER_FAMILY_BRIDGE
  ANDROID: dma-buf: don't re-purpose kobject as work_struct
  BACKPORT: FROMLIST: dma-buf: Move sysfs work out of DMA-BUF export path
  UPSTREAM: netfilter: nf_tables: skip set commit for deleted/destroyed sets
  ANDROID: KVM: arm64: Avoid BUG-ing from the host abort path
  ANDROID: Update the ABI symbol list
  UPSTREAM: ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
  UPSTREAM: nvmet-tcp: Fix a possible UAF in queue intialization setup
  ...

Change-Id: I98b5a6f1ce746fb3fca8a1ff49d84914dd98e25a
Signed-off-by: Omkar Sai Sandeep Katadi <okatadi@google.com>
2024-01-30 19:48:42 +00:00
Chungkai Mei
10558542a1 ANDROID: sched: export update_misfit_status symbol
Current scheduler cannot update misfit status immediately when we set uclamp min for some latency-sensitive tasks, it may cause some latency for these tasks so we may need to update misfit status in vendor kernel.

Bug: 318526590
Change-Id: I0f03d2e52588822d1a9ef9a5f24944dff4f4e4a0
Signed-off-by: Chungkai Mei <chungkai@google.com>
2024-01-30 18:46:55 +00:00
Christophe JAILLET
7809296dc1 kdb: Fix a potential buffer overflow in kdb_local()
[ Upstream commit 4f41d30cd6dc865c3cbc1a852372321eba6d4e4c ]

When appending "[defcmd]" to 'kdb_prompt_str', the size of the string
already in the buffer should be taken into account.

An option could be to switch from strncat() to strlcat() which does the
correct test to avoid such an overflow.

However, this actually looks as dead code, because 'defcmd_in_progress'
can't be true here.
See a more detailed explanation at [1].

[1]: https://lore.kernel.org/all/CAD=FV=WSh7wKN7Yp-3wWiDgX4E3isQ8uh0LCzTmd1v9Cg9j+nQ@mail.gmail.com/

Fixes: 5d5314d679 ("kdb: core for kgdb back end (1 of 2)")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:51 -08:00
Hao Sun
4108b86e32 bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
[ Upstream commit 22c7fa171a02d310e3a3f6ed46a698ca8a0060ed ]

For PTR_TO_FLOW_KEYS, check_flow_keys_access() only uses fixed off
for validation. However, variable offset ptr alu is not prohibited
for this ptr kind. So the variable offset is not checked.

The following prog is accepted:

  func#0 @0
  0: R1=ctx() R10=fp0
  0: (bf) r6 = r1                       ; R1=ctx() R6_w=ctx()
  1: (79) r7 = *(u64 *)(r6 +144)        ; R6_w=ctx() R7_w=flow_keys()
  2: (b7) r8 = 1024                     ; R8_w=1024
  3: (37) r8 /= 1                       ; R8_w=scalar()
  4: (57) r8 &= 1024                    ; R8_w=scalar(smin=smin32=0,
  smax=umax=smax32=umax32=1024,var_off=(0x0; 0x400))
  5: (0f) r7 += r8
  mark_precise: frame0: last_idx 5 first_idx 0 subseq_idx -1
  mark_precise: frame0: regs=r8 stack= before 4: (57) r8 &= 1024
  mark_precise: frame0: regs=r8 stack= before 3: (37) r8 /= 1
  mark_precise: frame0: regs=r8 stack= before 2: (b7) r8 = 1024
  6: R7_w=flow_keys(smin=smin32=0,smax=umax=smax32=umax32=1024,var_off
  =(0x0; 0x400)) R8_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=1024,
  var_off=(0x0; 0x400))
  6: (79) r0 = *(u64 *)(r7 +0)          ; R0_w=scalar()
  7: (95) exit

This prog loads flow_keys to r7, and adds the variable offset r8
to r7, and finally causes out-of-bounds access:

  BUG: unable to handle page fault for address: ffffc90014c80038
  [...]
  Call Trace:
   <TASK>
   bpf_dispatcher_nop_func include/linux/bpf.h:1231 [inline]
   __bpf_prog_run include/linux/filter.h:651 [inline]
   bpf_prog_run include/linux/filter.h:658 [inline]
   bpf_prog_run_pin_on_cpu include/linux/filter.h:675 [inline]
   bpf_flow_dissect+0x15f/0x350 net/core/flow_dissector.c:991
   bpf_prog_test_run_flow_dissector+0x39d/0x620 net/bpf/test_run.c:1359
   bpf_prog_test_run kernel/bpf/syscall.c:4107 [inline]
   __sys_bpf+0xf8f/0x4560 kernel/bpf/syscall.c:5475
   __do_sys_bpf kernel/bpf/syscall.c:5561 [inline]
   __se_sys_bpf kernel/bpf/syscall.c:5559 [inline]
   __x64_sys_bpf+0x73/0xb0 kernel/bpf/syscall.c:5559
   do_syscall_x64 arch/x86/entry/common.c:52 [inline]
   do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:83
   entry_SYSCALL_64_after_hwframe+0x63/0x6b

Fix this by rejecting ptr alu with variable offset on flow_keys.
Applying the patch rejects the program with "R7 pointer arithmetic
on flow_keys prohibited".

Fixes: d58e468b11 ("flow_dissector: implements flow dissector BPF hook")
Signed-off-by: Hao Sun <sunhao.th@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/bpf/20240115082028.9992-1-sunhao.th@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:50 -08:00
Jiri Olsa
6cc9c0af0a bpf: Fix re-attachment branch in bpf_tracing_prog_attach
commit 715d82ba636cb3629a6e18a33bb9dbe53f9936ee upstream.

The following case can cause a crash due to missing attach_btf:

1) load rawtp program
2) load fentry program with rawtp as target_fd
3) create tracing link for fentry program with target_fd = 0
4) repeat 3

In the end we have:

- prog->aux->dst_trampoline == NULL
- tgt_prog == NULL (because we did not provide target_fd to link_create)
- prog->aux->attach_btf == NULL (the program was loaded with attach_prog_fd=X)
- the program was loaded for tgt_prog but we have no way to find out which one

    BUG: kernel NULL pointer dereference, address: 0000000000000058
    Call Trace:
     <TASK>
     ? __die+0x20/0x70
     ? page_fault_oops+0x15b/0x430
     ? fixup_exception+0x22/0x330
     ? exc_page_fault+0x6f/0x170
     ? asm_exc_page_fault+0x22/0x30
     ? bpf_tracing_prog_attach+0x279/0x560
     ? btf_obj_id+0x5/0x10
     bpf_tracing_prog_attach+0x439/0x560
     __sys_bpf+0x1cf4/0x2de0
     __x64_sys_bpf+0x1c/0x30
     do_syscall_64+0x41/0xf0
     entry_SYSCALL_64_after_hwframe+0x6e/0x76

Return -EINVAL in this situation.

Fixes: f3a9507554 ("bpf: Allow trampoline re-attach for tracing and lsm programs")
Cc: stable@vger.kernel.org
Signed-off-by: Jiri Olsa <olsajiri@gmail.com>
Acked-by: Jiri Olsa <olsajiri@gmail.com>
Acked-by: Song Liu <song@kernel.org>
Signed-off-by: Dmitrii Dolgov <9erthalion6@gmail.com>
Link: https://lore.kernel.org/r/20240103190559.14750-4-9erthalion6@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-25 15:27:43 -08:00
Heiko Carstens
c952654e1a tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
commit 71fee48fb772ac4f6cfa63dbebc5629de8b4cc09 upstream.

When offlining and onlining CPUs the overall reported idle and iowait
times as reported by /proc/stat jump backward and forward:

cpu  132 0 176 225249 47 6 6 21 0 0
cpu0 80 0 115 112575 33 3 4 18 0 0
cpu1 52 0 60 112673 13 3 1 2 0 0

cpu  133 0 177 226681 47 6 6 21 0 0
cpu0 80 0 116 113387 33 3 4 18 0 0

cpu  133 0 178 114431 33 6 6 21 0 0 <---- jump backward
cpu0 80 0 116 114247 33 3 4 18 0 0
cpu1 52 0 61 183 0 3 1 2 0 0        <---- idle + iowait start with 0

cpu  133 0 178 228956 47 6 6 21 0 0 <---- jump forward
cpu0 81 0 117 114929 33 3 4 18 0 0

Reason for this is that get_idle_time() in fs/proc/stat.c has different
sources for both values depending on if a CPU is online or offline:

- if a CPU is online the values may be taken from its per cpu
  tick_cpu_sched structure

- if a CPU is offline the values are taken from its per cpu cpustat
  structure

The problem is that the per cpu tick_cpu_sched structure is set to zero on
CPU offline. See tick_cancel_sched_timer() in kernel/time/tick-sched.c.

Therefore when a CPU is brought offline and online afterwards both its idle
and iowait sleeptime will be zero, causing a jump backward in total system
idle and iowait sleeptime. In a similar way if a CPU is then brought
offline again the total idle and iowait sleeptimes will jump forward.

It looks like this behavior was introduced with commit 4b0c0f294f
("tick: Cleanup NOHZ per cpu data on cpu down").

This was only noticed now on s390, since we switched to generic idle time
reporting with commit be76ea614460 ("s390/idle: remove arch_cpu_idle_time()
and corresponding code").

Fix this by preserving the values of idle_sleeptime and iowait_sleeptime
members of the per-cpu tick_sched structure on CPU hotplug.

Fixes: 4b0c0f294f ("tick: Cleanup NOHZ per cpu data on cpu down")
Reported-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20240115163555.1004144-1-hca@linux.ibm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-25 15:27:39 -08:00
Joakim Zhang
aaf0fc13be dma-mapping: clear dev->dma_mem to NULL after freeing it
[ Upstream commit b07bc2347672cc8c7293c64499f1488278c5ca3d ]

Reproduced with below sequence:
dma_declare_coherent_memory()->dma_release_coherent_memory()
->dma_declare_coherent_memory()->"return -EBUSY" error

It will return -EBUSY from the dma_assign_coherent_memory()
in dma_declare_coherent_memory(), the reason is that dev->dma_mem
pointer has not been set to NULL after it's freed.

Fixes: cf65a0f6f6 ("dma-mapping: move all DMA mapping code to kernel/dma")
Signed-off-by: Joakim Zhang <joakim.zhang@cixtech.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:28 -08:00
Andrei Matei
b1d4d54d32 bpf: Fix verification of indirect var-off stack access
[ Upstream commit a833a17aeac73b33f79433d7cee68d5cafd71e4f ]

This patch fixes a bug around the verification of possibly-zero-sized
stack accesses. When the access was done through a var-offset stack
pointer, check_stack_access_within_bounds was incorrectly computing the
maximum-offset of a zero-sized read to be the same as the register's min
offset. Instead, we have to take in account the register's maximum
possible value. The patch also simplifies how the max offset is checked;
the check is now simpler than for min offset.

The bug was allowing accesses to erroneously pass the
check_stack_access_within_bounds() checks, only to later crash in
check_stack_range_initialized() when all the possibly-affected stack
slots are iterated (this time with a correct max offset).
check_stack_range_initialized() is relying on
check_stack_access_within_bounds() for its accesses to the
stack-tracking vector to be within bounds; in the case of zero-sized
accesses, we were essentially only verifying that the lowest possible
slot was within bounds. We would crash when the max-offset of the stack
pointer was >= 0 (which shouldn't pass verification, and hopefully is
not something anyone's code attempts to do in practice).

Thanks Hao for reporting!

Fixes: 01f810ace9 ("bpf: Allow variable-offset stack access")
Reported-by: Hao Sun <sunhao.th@gmail.com>
Signed-off-by: Andrei Matei <andreimatei1@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231207041150.229139-2-andreimatei1@gmail.com

Closes: https://lore.kernel.org/bpf/CACkBjsZGEUaRCHsmaX=h-efVogsRfK1FPxmkgb0Os_frnHiNdw@mail.gmail.com/
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:27 -08:00
Andrii Nakryiko
fc3e3c50a0 bpf: fix check for attempt to corrupt spilled pointer
[ Upstream commit ab125ed3ec1c10ccc36bc98c7a4256ad114a3dae ]

When register is spilled onto a stack as a 1/2/4-byte register, we set
slot_type[BPF_REG_SIZE - 1] (plus potentially few more below it,
depending on actual spill size). So to check if some stack slot has
spilled register we need to consult slot_type[7], not slot_type[0].

To avoid the need to remember and double-check this in the future, just
use is_spilled_reg() helper.

Fixes: 27113c59b6 ("bpf: Check the other end of slot_type for STACK_SPILL")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231205184248.1502704-4-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:26 -08:00
Hou Tao
62fca83303 bpf: Defer the free of inner map when necessary
[ Upstream commit 876673364161da50eed6b472d746ef88242b2368 ]

When updating or deleting an inner map in map array or map htab, the map
may still be accessed by non-sleepable program or sleepable program.
However bpf_map_fd_put_ptr() decreases the ref-counter of the inner map
directly through bpf_map_put(), if the ref-counter is the last one
(which is true for most cases), the inner map will be freed by
ops->map_free() in a kworker. But for now, most .map_free() callbacks
don't use synchronize_rcu() or its variants to wait for the elapse of a
RCU grace period, so after the invocation of ops->map_free completes,
the bpf program which is accessing the inner map may incur
use-after-free problem.

Fix the free of inner map by invoking bpf_map_free_deferred() after both
one RCU grace period and one tasks trace RCU grace period if the inner
map has been removed from the outer map before. The deferment is
accomplished by using call_rcu() or call_rcu_tasks_trace() when
releasing the last ref-counter of bpf map. The newly-added rcu_head
field in bpf_map shares the same storage space with work field to
reduce the size of bpf_map.

Fixes: bba1dc0b55 ("bpf: Remove redundant synchronize_rcu.")
Fixes: 638e4b825d ("bpf: Allows per-cpu maps and map-in-map in sleepable programs")
Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20231204140425.1480317-5-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:26 -08:00
Hou Tao
e05b322c82 bpf: Add map and need_defer parameters to .map_fd_put_ptr()
[ Upstream commit 20c20bd11a0702ce4dc9300c3da58acf551d9725 ]

map is the pointer of outer map, and need_defer needs some explanation.
need_defer tells the implementation to defer the reference release of
the passed element and ensure that the element is still alive before
the bpf program, which may manipulate it, exits.

The following three cases will invoke map_fd_put_ptr() and different
need_defer values will be passed to these callers:

1) release the reference of the old element in the map during map update
   or map deletion. The release must be deferred, otherwise the bpf
   program may incur use-after-free problem, so need_defer needs to be
   true.
2) release the reference of the to-be-added element in the error path of
   map update. The to-be-added element is not visible to any bpf
   program, so it is OK to pass false for need_defer parameter.
3) release the references of all elements in the map during map release.
   Any bpf program which has access to the map must have been exited and
   released, so need_defer=false will be OK.

These two parameters will be used by the following patches to fix the
potential use-after-free problem for map-in-map.

Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20231204140425.1480317-3-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Stable-dep-of: 876673364161 ("bpf: Defer the free of inner map when necessary")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:26 -08:00
Paul E. McKenney
1010882619 rcu-tasks: Provide rcu_trace_implies_rcu_gp()
[ Upstream commit e6c86c513f440bec5f1046539c7e3c6c653842da ]

As an accident of implementation, an RCU Tasks Trace grace period also
acts as an RCU grace period.  However, this could change at any time.
This commit therefore creates an rcu_trace_implies_rcu_gp() that currently
returns true to codify this accident.  Code relying on this accident
must call this function to verify that this accident is still happening.

Reported-by: Hou Tao <houtao@huaweicloud.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Martin KaFai Lau <martin.lau@linux.dev>
Link: https://lore.kernel.org/r/20221014113946.965131-2-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Stable-dep-of: 876673364161 ("bpf: Defer the free of inner map when necessary")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:26 -08:00
Andrii Nakryiko
be1f34b93f bpf: enforce precision of R0 on callback return
[ Upstream commit 0acd03a5bd188b0c501d285d938439618bd855c4 ]

Given verifier checks actual value, r0 has to be precise, so we need to
propagate precision properly. r0 also has to be marked as read,
otherwise subsequent state comparisons will ignore such register as
unimportant and precision won't really help here.

Fixes: 69c087ba62 ("bpf: Add bpf_for_each_map_elem() helper")
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231202175705.885270-4-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:25 -08:00
Jordan Rome
799a914e48 bpf: Add crosstask check to __bpf_get_stack
[ Upstream commit b8e3a87a627b575896e448021e5c2f8a3bc19931 ]

Currently get_perf_callchain only supports user stack walking for
the current task. Passing the correct *crosstask* param will return
0 frames if the task passed to __bpf_get_stack isn't the current
one instead of a single incorrect frame/address. This change
passes the correct *crosstask* param but also does a preemptive
check in __bpf_get_stack if the task is current and returns
-EOPNOTSUPP if it is not.

This issue was found using bpf_get_task_stack inside a BPF
iterator ("iter/task"), which iterates over all tasks.
bpf_get_task_stack works fine for fetching kernel stacks
but because get_perf_callchain relies on the caller to know
if the requested *task* is the current one (via *crosstask*)
it was failing in a confusing way.

It might be possible to get user stacks for all tasks utilizing
something like access_process_vm but that requires the bpf
program calling bpf_get_task_stack to be sleepable and would
therefore be a breaking change.

Fixes: fa28dcb82a ("bpf: Introduce helper bpf_get_task_stack()")
Signed-off-by: Jordan Rome <jordalgo@meta.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231108112334.3433136-1-jordalgo@meta.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:24 -08:00
Florian Lehner
1959a560ac bpf, lpm: Fix check prefixlen before walking trie
[ Upstream commit 9b75dbeb36fcd9fc7ed51d370310d0518a387769 ]

When looking up an element in LPM trie, the condition 'matchlen ==
trie->max_prefixlen' will never return true, if key->prefixlen is larger
than trie->max_prefixlen. Consequently all elements in the LPM trie will
be visited and no element is returned in the end.

To resolve this, check key->prefixlen first before walking the LPM trie.

Fixes: b95a5c4db0 ("bpf: add a longest prefix match trie map implementation")
Signed-off-by: Florian Lehner <dev@der-flo.net>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231105085801.3742-1-dev@der-flo.net
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:24 -08:00
Vincent Guittot
6c32acf537 UPSTREAM: sched/fair: Limit sched slice duration
In presence of a lot of small weight tasks like sched_idle tasks, normal
or high weight tasks can see their ideal runtime (sched_slice) to increase
to hundreds ms whereas it normally stays below sysctl_sched_latency.

2 normal tasks running on a CPU will have a max sched_slice of 12ms
(half of the sched_period). This means that they will make progress
every sysctl_sched_latency period.

If we now add 1000 idle tasks on the CPU, the sched_period becomes
3006 ms and the ideal runtime of the normal tasks becomes 609 ms.
It will even become 1500ms if the idle tasks belongs to an idle cgroup.
This means that the scheduler will look for picking another waiting task
after 609ms running time (1500ms respectively). The idle tasks change
significantly the way the 2 normal tasks interleave their running time
slot whereas they should have a small impact.

Such long sched_slice can delay significantly the release of resources
as the tasks can wait hundreds of ms before the next running slot just
because of idle tasks queued on the rq.

Cap the ideal_runtime to sysctl_sched_latency to make sure that tasks will
regularly make progress and will not be significantly impacted by
idle/background tasks queued on the rq.

Bug: 315185352
Bug: 269111781
Change-Id: I27f956ee275d17ef708d8d27dc082c66ed5a5275
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Link: https://lore.kernel.org/r/20230113133613.257342-1-vincent.guittot@linaro.org
(cherry picked from commit 79ba1e607d68178db7d3fe4f6a4aa38f06805e7b)
Signed-off-by: Qais Yousef <qyousef@google.com>
(cherry picked from commit e32aeb03b9c6b1b625ff0248b6d5670aa74e783b)
Signed-off-by: Qais Yousef <qyousef@google.com>
2024-01-25 21:17:02 +00:00
Todd Kjos
f27fc6ba23 Merge "Merge tag 'android14-6.1.68_r00' into branch 'android14-6.1'" into android14-6.1 2024-01-24 17:34:59 +00:00
Hailong.Liu
2d3f0c9d41 ANDROID: Roll back some code to fix system_server registers psi trigger failed.
the commit 2c1e89916b
revert part of
https://android-review.googlesource.com/c/kernel/common/+/2199758
causing system_server registers psi trigger failed due to lack of
CAP_SYS_RESOURCE capability.

Bug: 243781242
Bug: 244148051
Signed-off-by: Hailong.Liu <liuhailong@oppo.com>
Change-Id: Ie22ea6f7a7dc848fa8307e6f4e8223779367df31
2024-01-22 23:38:15 +00:00
Steven Rostedt (Google)
b0407f68d9 ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
[ Upstream commit 712292308af2265cd9b126aedfa987f10f452a33 ]

As the ring buffer recording requires cmpxchg() to work, if the
architecture does not support cmpxchg in NMI, then do not do any recording
within an NMI.

Link: https://lore.kernel.org/linux-trace-kernel/20231213175403.6fc18540@gandalf.local.home

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-20 11:50:07 +01:00
Zheng Yejian
07787918c6 tracing: Fix uaf issue when open the hist or hist_debug file
[ Upstream commit 1cc111b9cddc71ce161cd388f11f0e9048edffdb ]

KASAN report following issue. The root cause is when opening 'hist'
file of an instance and accessing 'trace_event_file' in hist_show(),
but 'trace_event_file' has been freed due to the instance being removed.
'hist_debug' file has the same problem. To fix it, call
tracing_{open,release}_file_tr() in file_operations callback to have
the ref count and avoid 'trace_event_file' being freed.

  BUG: KASAN: slab-use-after-free in hist_show+0x11e0/0x1278
  Read of size 8 at addr ffff242541e336b8 by task head/190

  CPU: 4 PID: 190 Comm: head Not tainted 6.7.0-rc5-g26aff849438c #133
  Hardware name: linux,dummy-virt (DT)
  Call trace:
   dump_backtrace+0x98/0xf8
   show_stack+0x1c/0x30
   dump_stack_lvl+0x44/0x58
   print_report+0xf0/0x5a0
   kasan_report+0x80/0xc0
   __asan_report_load8_noabort+0x1c/0x28
   hist_show+0x11e0/0x1278
   seq_read_iter+0x344/0xd78
   seq_read+0x128/0x1c0
   vfs_read+0x198/0x6c8
   ksys_read+0xf4/0x1e0
   __arm64_sys_read+0x70/0xa8
   invoke_syscall+0x70/0x260
   el0_svc_common.constprop.0+0xb0/0x280
   do_el0_svc+0x44/0x60
   el0_svc+0x34/0x68
   el0t_64_sync_handler+0xb8/0xc0
   el0t_64_sync+0x168/0x170

  Allocated by task 188:
   kasan_save_stack+0x28/0x50
   kasan_set_track+0x28/0x38
   kasan_save_alloc_info+0x20/0x30
   __kasan_slab_alloc+0x6c/0x80
   kmem_cache_alloc+0x15c/0x4a8
   trace_create_new_event+0x84/0x348
   __trace_add_new_event+0x18/0x88
   event_trace_add_tracer+0xc4/0x1a0
   trace_array_create_dir+0x6c/0x100
   trace_array_create+0x2e8/0x568
   instance_mkdir+0x48/0x80
   tracefs_syscall_mkdir+0x90/0xe8
   vfs_mkdir+0x3c4/0x610
   do_mkdirat+0x144/0x200
   __arm64_sys_mkdirat+0x8c/0xc0
   invoke_syscall+0x70/0x260
   el0_svc_common.constprop.0+0xb0/0x280
   do_el0_svc+0x44/0x60
   el0_svc+0x34/0x68
   el0t_64_sync_handler+0xb8/0xc0
   el0t_64_sync+0x168/0x170

  Freed by task 191:
   kasan_save_stack+0x28/0x50
   kasan_set_track+0x28/0x38
   kasan_save_free_info+0x34/0x58
   __kasan_slab_free+0xe4/0x158
   kmem_cache_free+0x19c/0x508
   event_file_put+0xa0/0x120
   remove_event_file_dir+0x180/0x320
   event_trace_del_tracer+0xb0/0x180
   __remove_instance+0x224/0x508
   instance_rmdir+0x44/0x78
   tracefs_syscall_rmdir+0xbc/0x140
   vfs_rmdir+0x1cc/0x4c8
   do_rmdir+0x220/0x2b8
   __arm64_sys_unlinkat+0xc0/0x100
   invoke_syscall+0x70/0x260
   el0_svc_common.constprop.0+0xb0/0x280
   do_el0_svc+0x44/0x60
   el0_svc+0x34/0x68
   el0t_64_sync_handler+0xb8/0xc0
   el0t_64_sync+0x168/0x170

Link: https://lore.kernel.org/linux-trace-kernel/20231214012153.676155-1-zhengyejian1@huawei.com

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Zheng Yejian <zhengyejian1@huawei.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-20 11:50:07 +01:00
Steven Rostedt (Google)
e75c3db904 tracing: Add size check when printing trace_marker output
[ Upstream commit 60be76eeabb3d83858cc6577fc65c7d0f36ffd42 ]

If for some reason the trace_marker write does not have a nul byte for the
string, it will overflow the print:

  trace_seq_printf(s, ": %s", field->buf);

The field->buf could be missing the nul byte. To prevent overflow, add the
max size that the buf can be by using the event size and the field
location.

  int max = iter->ent_size - offsetof(struct print_entry, buf);

  trace_seq_printf(s, ": %*.s", max, field->buf);

Link: https://lore.kernel.org/linux-trace-kernel/20231212084444.4619b8ce@gandalf.local.home

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-20 11:50:07 +01:00
Steven Rostedt (Google)
7d885c1717 tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
[ Upstream commit b55b0a0d7c4aa2dac3579aa7e6802d1f57445096 ]

If a large event was added to the ring buffer that is larger than what the
trace_seq can handle, it just drops the output:

 ~# cat /sys/kernel/tracing/trace
 # tracer: nop
 #
 # entries-in-buffer/entries-written: 2/2   #P:8
 #
 #                                _-----=> irqs-off/BH-disabled
 #                               / _----=> need-resched
 #                              | / _---=> hardirq/softirq
 #                              || / _--=> preempt-depth
 #                              ||| / _-=> migrate-disable
 #                              |||| /     delay
 #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
 #              | |         |   |||||     |         |
            <...>-859     [001] .....   141.118951: tracing_mark_write           <...>-859     [001] .....   141.148201: tracing_mark_write: 78901234

Instead, catch this case and add some context:

 ~# cat /sys/kernel/tracing/trace
 # tracer: nop
 #
 # entries-in-buffer/entries-written: 2/2   #P:8
 #
 #                                _-----=> irqs-off/BH-disabled
 #                               / _----=> need-resched
 #                              | / _---=> hardirq/softirq
 #                              || / _--=> preempt-depth
 #                              ||| / _-=> migrate-disable
 #                              |||| /     delay
 #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
 #              | |         |   |||||     |         |
            <...>-852     [001] .....   121.550551: tracing_mark_write[LINE TOO BIG]
            <...>-852     [001] .....   121.550581: tracing_mark_write: 78901234

This now emulates the same output as trace_pipe.

Link: https://lore.kernel.org/linux-trace-kernel/20231209171058.78c1a026@gandalf.local.home

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-20 11:50:07 +01:00
Rafael J. Wysocki
e1a20dd9ff UPSTREAM: async: Introduce async_schedule_dev_nocall()
In preparation for subsequent changes, introduce a specialized variant
of async_schedule_dev() that will not invoke the argument function
synchronously when it cannot be scheduled for asynchronous execution.

The new function, async_schedule_dev_nocall(), will be used for fixing
possible deadlocks in the system-wide power management core code.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> for the series.
Tested-by: Youngmin Nam <youngmin.nam@samsung.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Bug: 319759660
Change-Id: I497f1a9655d80c2d9710c3c814f6a99a31bcf019
(cherry picked from commit 7d4b5d7a37bdd63a5a3371b988744b060d5bb86f)
Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
2024-01-19 09:02:31 +00:00
Rafael J. Wysocki
e4b0e14f83 UPSTREAM: async: Split async_schedule_node_domain()
In preparation for subsequent changes, split async_schedule_node_domain()
in two pieces so as to allow the bottom part of it to be called from a
somewhat different code path.

No functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Tested-by: Youngmin Nam <youngmin.nam@samsung.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Bug: 319759660
Change-Id: I6405b388d9a0286208b48f7a321b0042d85abb4b
(cherry picked from commit 6aa09a5bccd8e224d917afdb4c278fc66aacde4d)
Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
2024-01-19 09:02:31 +00:00
Qais Yousef
90d68cedd1 FROMLIST: rcu: Provide a boot time parameter to control lazy RCU
To allow more flexible arrangements while still provide a single kernel
for distros, provide a boot time parameter to enable/disable lazy RCU.

Specify:

	rcutree.enable_rcu_lazy=[y|1|n|0]

Which also requires

	rcu_nocbs=all

at boot time to enable/disable lazy RCU.

To disable it by default at build time when CONFIG_RCU_LAZY=y, the new
CONFIG_RCU_LAZY_DEFAULT_OFF can be used.

Bug: 258241771
Signed-off-by: Qais Yousef (Google) <qyousef@layalina.io>
Tested-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Link: https://lore.kernel.org/lkml/20231203011252.233748-1-qyousef@layalina.io/
[Fix trivial conflicts rejecting newer code that doesn't exist on 6.1]
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: Ib5585ae717a2ba7749f2802101b785c4e5de8a90
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
a079cc5876 ANDROID: rcu: Add a minimum time for marking boot as completed
On many systems, a great deal of boot (in userspace) happens after the
kernel thinks the boot has completed. It is difficult to determine if
the system has really booted from the kernel side. Some features like
lazy-RCU can risk slowing down boot time if, say, a callback has been
added that the boot synchronously depends on. Further expedited callbacks
can get unexpedited way earlier than it should be, thus slowing down
boot (as shown in the data below).

For these reasons, this commit adds a config option
'CONFIG_RCU_BOOT_END_DELAY' and a boot parameter rcupdate.boot_end_delay.
Userspace can also make RCU's view of the system as booted, by writing the
time in milliseconds to: /sys/module/rcupdate/parameters/rcu_boot_end_delay
Or even just writing a value of 0 to this sysfs node.
However, under no circumstance will the boot be allowed to end earlier
than just before init is launched.

The default value of CONFIG_RCU_BOOT_END_DELAY is chosen as 15s. This
suites ChromeOS and also a PREEMPT_RT system below very well, which need
no config or parameter changes, and just a simple application of this patch. A
system designer can also choose a specific value here to keep RCU from marking
boot completion.  As noted earlier, RCU's perspective of the system as booted
will not be marker until at least rcu_boot_end_delay milliseconds have passed
or an update is made via writing a small value (or 0) in milliseconds to:
/sys/module/rcupdate/parameters/rcu_boot_end_delay.

One side-effect of this patch is, there is a risk that a real-time workload
launched just after the kernel boots will suffer interruptions due to expedited
RCU, which previous ended just before init was launched. However, to mitigate
such an issue (however unlikely), the user should either tune
CONFIG_RCU_BOOT_END_DELAY to a smaller value than 15 seconds or write a value
of 0 to /sys/module/rcupdate/parameters/rcu_boot_end_delay, once userspace
boots, and before launching the real-time workload.

Qiuxu also noted impressive boot-time improvements with earlier version
of patch. An excerpt from the data he shared:

1) Testing environment:
    OS            : CentOS Stream 8 (non-RT OS)
    Kernel     : v6.2
    Machine : Intel Cascade Lake server (2 sockets, each with 44 logical threads)
    Qemu  args  : -cpu host -enable-kvm, -smp 88,threads=2,sockets=2, …

2) OS boot time definition:
    The time from the start of the kernel boot to the shell command line
    prompt is shown from the console. [ Different people may have
    different OS boot time definitions. ]

3) Measurement method (very rough method):
    A timer in the kernel periodically prints the boot time every 100ms.
    As soon as the shell command line prompt is shown from the console,
    we record the boot time printed by the timer, then the printed boot
    time is the OS boot time.

4) Measured OS boot time (in seconds)
   a) Measured 10 times w/o this patch:
        8.7s, 8.4s, 8.6s, 8.2s, 9.0s, 8.7s, 8.8s, 9.3s, 8.8s, 8.3s
        The average OS boot time was: ~8.7s

   b) Measure 10 times w/ this patch:
        8.5s, 8.2s, 7.6s, 8.2s, 8.7s, 8.2s, 7.8s, 8.2s, 9.3s, 8.4s
        The average OS boot time was: ~8.3s.

(CHROMIUM tag rationale: Submitted upstream but got lots of pushback as
it may harm a PREEMPT_RT system -- the concern is VERY theoretical and
this improves things for ChromeOS. Plus we are not a PREEMPT_RT system.
So I am strongly suggesting this mostly simple change for ChromeOS.)

Bug: 258241771
Tested-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4350228
Commit-Queue: Joel Fernandes <joelaf@google.com>
Commit-Queue: Vineeth Pillai <vineethrp@google.com>
Tested-by: Vineeth Pillai <vineethrp@google.com>
Tested-by: Joel Fernandes <joelaf@google.com>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909180
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: Ibd262189d7f92dbcc57f1508efe90fcfba95a6cc
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
ffe09c06a8 UPSTREAM: rcu: Disable laziness if lazy-tracking says so
During suspend, we see failures to suspend 1 in 300-500 suspends.
Looking closer, it appears that asynchronous RCU callbacks are being
queued as lazy even though synchronous callbacks are expedited. These
delays appear to not be very welcome by the suspend/resume code as
evidenced by these occasional suspend failures.

This commit modifies call_rcu() to check if rcu_async_should_hurry(),
which will return true if we are in suspend or in-kernel boot.

[ paulmck: Alphabetize local variables. ]

Ignoring the lazy hint makes the 3000 suspend/resume cycles pass
reliably on a 12th gen 12-core Intel CPU, and there is some evidence
that it also slightly speeds up boot performance.

Fixes: 3cb278e73be5 ("rcu: Make call_rcu() lazy to save power")
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit cf7066b97e27b2319af1ae2ef6889c4a1704312d)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909179
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Reviewed-by: Ross Zwisler <zwisler@google.com>
Reviewed-by: Sean Paul <sean@poorly.run>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I4cfe6f43de8bae9a6c034831c79d9773199d6d29
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
d07488d26e UPSTREAM: rcu: Track laziness during boot and suspend
Boot and suspend/resume should not be slowed down in kernels built with
CONFIG_RCU_LAZY=y.  In particular, suspend can sometimes fail in such
kernels.

This commit therefore adds rcu_async_hurry(), rcu_async_relax(), and
rcu_async_should_hurry() functions that track whether or not either
a boot or a suspend/resume operation is in progress.  This will
enable a later commit to refrain from laziness during those times.

Export rcu_async_should_hurry(), rcu_async_hurry(), and rcu_async_relax()
for later use by rcutorture.

[ paulmck: Apply feedback from Steve Rostedt. ]

Fixes: 3cb278e73be5 ("rcu: Make call_rcu() lazy to save power")
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit 6efdda8bec2900ce5166ee4ff4b1844b47b529cd)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909178
Reviewed-by: Ross Zwisler <zwisler@google.com>
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: Ieb2f2d484a33cfbd71f71c8e3dbcfc05cd7efe8c
2024-01-19 00:10:44 +00:00
Uladzislau Rezki
b9427245f0 UPSTREAM: workqueue: Make queue_rcu_work() use call_rcu_hurry()
Earlier commits in this series allow battery-powered systems to build
their kernels with the default-disabled CONFIG_RCU_LAZY=y Kconfig option.
This Kconfig option causes call_rcu() to delay its callbacks in order
to batch them.  This means that a given RCU grace period covers more
callbacks, thus reducing the number of grace periods, in turn reducing
the amount of energy consumed, which increases battery lifetime which
can be a very good thing.  This is not a subtle effect: In some important
use cases, the battery lifetime is increased by more than 10%.

This CONFIG_RCU_LAZY=y option is available only for CPUs that offload
callbacks, for example, CPUs mentioned in the rcu_nocbs kernel boot
parameter passed to kernels built with CONFIG_RCU_NOCB_CPU=y.

Delaying callbacks is normally not a problem because most callbacks do
nothing but free memory.  If the system is short on memory, a shrinker
will kick all currently queued lazy callbacks out of their laziness,
thus freeing their memory in short order.  Similarly, the rcu_barrier()
function, which blocks until all currently queued callbacks are invoked,
will also kick lazy callbacks, thus enabling rcu_barrier() to complete
in a timely manner.

However, there are some cases where laziness is not a good option.
For example, synchronize_rcu() invokes call_rcu(), and blocks until
the newly queued callback is invoked.  It would not be a good for
synchronize_rcu() to block for ten seconds, even on an idle system.
Therefore, synchronize_rcu() invokes call_rcu_hurry() instead of
call_rcu().  The arrival of a non-lazy call_rcu_hurry() callback on a
given CPU kicks any lazy callbacks that might be already queued on that
CPU.  After all, if there is going to be a grace period, all callbacks
might as well get full benefit from it.

Yes, this could be done the other way around by creating a
call_rcu_lazy(), but earlier experience with this approach and
feedback at the 2022 Linux Plumbers Conference shifted the approach
to call_rcu() being lazy with call_rcu_hurry() for the few places
where laziness is inappropriate.

And another call_rcu() instance that cannot be lazy is the one
in queue_rcu_work(), given that callers to queue_rcu_work() are
not necessarily OK with long delays.

Therefore, make queue_rcu_work() use call_rcu_hurry() in order to revert
to the old behavior.

[ paulmck: Apply s/call_rcu_flush/call_rcu_hurry/ feedback from Tejun Heo. ]

Signed-off-by: Uladzislau Rezki <urezki@gmail.com>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Acked-by: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit a7e30c0e9a5f95b7f74e6272d9c75fd65c897721)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909040
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Ross Zwisler <zwisler@google.com>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I1dd4cedd1fb02626fa47f88a7fbaa7cacfa95d11
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
52193e9489 UPSTREAM: rcu/rcutorture: Use call_rcu_hurry() where needed
call_rcu() changes to save power will change the behavior of rcutorture
tests. Use the call_rcu_hurry() API instead which reverts to the old
behavior.

[ paulmck: Apply s/call_rcu_flush/call_rcu_hurry/ feedback from Tejun Heo. ]

Reported-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit 405d8e91f0a99777d61f6b0ddc3484d8ea7ca393)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909035
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I8008990dfe7e64f511aada006e736b15cdd0d61e
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
83f8ba569f UPSTREAM: rcu/rcuscale: Use call_rcu_hurry() for async reader test
rcuscale uses call_rcu() to queue async readers. With recent changes to
save power, the test will have fewer async readers in flight. Use the
call_rcu_hurry() API instead to revert to the old behavior.

[ paulmck: Apply s/call_rcu_flush/call_rcu_hurry/ feedback from Tejun Heo. ]

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit 723df859d8bba948ff2eb08eba32ab433acf7c9c)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909034
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I680dacb44e81e210e2e4455f28e50b9b516222a8
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
9b625f4978 UPSTREAM: rcu/sync: Use call_rcu_hurry() instead of call_rcu
call_rcu() changes to save power will slow down rcu sync. Use the
call_rcu_hurry() API instead which reverts to the old behavior.

[ paulmck: Apply s/call_rcu_flush/call_rcu_hurry/ feedback from Tejun Heo. ]

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit 7651d6b25086656eacfdd8356bfe3a21c0c2d79d)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909033
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Reviewed-by: Sean Paul <sean@poorly.run>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I5123ba52f47676305dbcfa1233bf3b41f140766c
2024-01-19 00:10:44 +00:00
Vineeth Pillai
c570c8fea3 BACKPORT: rcu: Shrinker for lazy rcu
The shrinker is used to speed up the free'ing of memory potentially held
by RCU lazy callbacks. RCU kernel module test cases show this to be
effective. Test is introduced in a later patch.

Signed-off-by: Vineeth Pillai <vineeth@bitbyteword.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit c945b4da7a448a9a56becc5a8745d942b2b83d3c)

Conflicts:
   kernel/rcu/tree_nocb.h

Trivial conflict due to: "rcu/nocb: Add an option to offload all CPUs on boot"

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909032
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I6a73a9dae79ff35feca37abe2663e55a0f46dda8
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
4957579439 UPSTREAM: rcu: Refactor code a bit in rcu_nocb_do_flush_bypass()
This consolidates the code a bit and makes it cleaner. Functionally it
is the same.

Reported-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit 3d222a0c0cfef85bad2c9cff5d541836cb81cfbd)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909031
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I8422c7138edd6a476fc46374beefdf46dd76b8b0
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
66a832fe38 UPSTREAM: rcu: Make call_rcu() lazy to save power
Implement timer-based RCU callback batching (also known as lazy
callbacks). With this we save about 5-10% of power consumed due
to RCU requests that happen when system is lightly loaded or idle.

By default, all async callbacks (queued via call_rcu) are marked
lazy. An alternate API call_rcu_hurry() is provided for the few users,
for example synchronize_rcu(), that need the old behavior.

The batch is flushed whenever a certain amount of time has passed, or
the batch on a particular CPU grows too big. Also memory pressure will
flush it in a future patch.

To handle several corner cases automagically (such as rcu_barrier() and
hotplug), we re-use bypass lists which were originally introduced to
address lock contention, to handle lazy CBs as well. The bypass list
length has the lazy CB length included in it. A separate lazy CB length
counter is also introduced to keep track of the number of lazy CBs.

[ paulmck: Fix formatting of inline call_rcu_lazy() definition. ]
[ paulmck: Apply Zqiang feedback. ]
[ paulmck: Apply s/call_rcu_flush/call_rcu_hurry/ feedback from Tejun Heo. ]

Suggested-by: Paul McKenney <paulmck@kernel.org>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit 3cb278e73be58bfb780ecd55129296d2f74c1fb7)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909030
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I557d5af2a5d317bd66e9ec55ed40822bb5c54390
2024-01-19 00:10:44 +00:00
Frederic Weisbecker
4fb09fb4f7 UPSTREAM: rcu: Fix missing nocb gp wake on rcu_barrier()
In preparation for RCU lazy changes, wake up the RCU nocb gp thread if
needed after an entrain.  This change prevents the RCU barrier callback
from waiting in the queue for several seconds before the lazy callbacks
in front of it are serviced.

Reported-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit b8f7aca3f0e0e6223094ba2662bac90353674b04)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909029
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: Ib55c5886764b74df22531eca35f076ef7acc08dd
2024-01-19 00:10:44 +00:00
Joel Fernandes (Google)
64c59ad2c3 UPSTREAM: rcu: Fix late wakeup when flush of bypass cblist happens
When the bypass cblist gets too big or its timeout has occurred, it is
flushed into the main cblist. However, the bypass timer is still running
and the behavior is that it would eventually expire and wake the GP
thread.

Since we are going to use the bypass cblist for lazy CBs, do the wakeup
soon as the flush for "too big or too long" bypass list happens.
Otherwise, long delays can happen for callbacks which get promoted from
lazy to non-lazy.

This is a good thing to do anyway (regardless of future lazy patches),
since it makes the behavior consistent with behavior of other code paths
where flushing into the ->cblist makes the GP kthread into a
non-sleeping state quickly.

[ Frederic Weisbecker: Changes to avoid unnecessary GP-thread wakeups plus
		    comment changes. ]

Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
(cherry picked from commit b50606f35f4b73c8e4c6b9c64fe7ba72ea919134)

Bug: 258241771
Signed-off-by: Joel Fernandes <joelaf@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4909028
Reviewed-by: Vineeth Pillai <vineethrp@google.com>
Reviewed-by: Sean Paul <sean@poorly.run>
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: If8da96d7ba6ed90a2a70f7d56f7bb03af44fd649
2024-01-19 00:10:44 +00:00
Greg Kroah-Hartman
190985b1db Revert "bpf: decouple prune and jump points"
This reverts commit 743f3548d3 which is
commit bffdeaa8a5af7200b0e74c9d5a41167f86626a36 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: If00d7f3353d6d173c93006a76d575194c7e4f517
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:31:27 +00:00
Greg Kroah-Hartman
eba57b3513 Revert "bpf: remove unnecessary prune and jump points"
This reverts commit 8266c47d04 which is
commit 618945fbed501b6e5865042068a51edfb2dda948 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Id463c785d61b9588f95ba45a11333c0900fe225a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:31:11 +00:00
Greg Kroah-Hartman
9212bbf98b Revert "bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()"
This reverts commit 97bb6dab01 which is
commit dcb2288b1fd9a8cdf2f3b8c0c7b3763346ef515f upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I54a313a185430628b10240a94a96de8353040111
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:30:53 +00:00
Greg Kroah-Hartman
797e6a76ea Revert "bpf: clean up visit_insn()'s instruction processing"
This reverts commit b1c780ed3c which is
commit 653ae3a874aca6764a4c1f5a8bf1b072ade0d6f4 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I083d407a06bd85594d74aa486969115a74675e1f
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:30:40 +00:00
Greg Kroah-Hartman
c7b298c1b5 Revert "bpf: Support new 32bit offset jmp instruction"
This reverts commit 2c795ce090 which is
commit 4cd58e9af8b9d9fff6b7145e742abbfcda0af4af upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Iac907693874b0a3ac47992214c19c41905562e86
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:30:21 +00:00
Greg Kroah-Hartman
1699079678 Revert "bpf: handle ldimm64 properly in check_cfg()"
This reverts commit b08acd5c46 which is
commit 3feb263bb516ee7e1da0acd22b15afbb9a7daa19 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Ic364d3f09e551f26324d7519bd97f08c9ce30542
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:30:03 +00:00
Greg Kroah-Hartman
63ca0ed629 Revert "bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4"
This reverts commit 15db682980 which is
commit dfce9cb3140592b886838e06f3e0c25fea2a9cae upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I5666ddce48ae86770aec837534e3fbd5ce196785
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-15 11:29:41 +00:00
Greg Kroah-Hartman
e1b12db2de Merge 6.1.72 into android14-6.1-lts
Changes in 6.1.72
	keys, dns: Fix missing size check of V1 server-list header
	block: Don't invalidate pagecache for invalid falloc modes
	ALSA: hda/realtek: enable SND_PCI_QUIRK for hp pavilion 14-ec1xxx series
	ALSA: hda/realtek: fix mute/micmute LEDs for a HP ZBook
	ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6
	mptcp: prevent tcp diag from closing listener subflows
	Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"
	drm/mgag200: Fix gamma lut not initialized for G200ER, G200EV, G200SE
	cifs: cifs_chan_is_iface_active should be called with chan_lock held
	cifs: do not depend on release_iface for maintaining iface_list
	KVM: x86/pmu: fix masking logic for MSR_CORE_PERF_GLOBAL_CTRL
	wifi: iwlwifi: pcie: don't synchronize IRQs from IRQ
	drm/bridge: ti-sn65dsi86: Never store more than msg->size bytes in AUX xfer
	netfilter: use skb_ip_totlen and iph_totlen
	netfilter: nf_tables: set transport offset from mac header for netdev/egress
	nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local
	octeontx2-af: Fix marking couple of structure as __packed
	drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern
	ice: Fix link_down_on_close message
	ice: Shut down VSI with "link-down-on-close" enabled
	i40e: Fix filter input checks to prevent config with invalid values
	igc: Report VLAN EtherType matching back to user
	igc: Check VLAN TCI mask
	igc: Check VLAN EtherType mask
	ASoC: fsl_rpmsg: Fix error handler with pm_runtime_enable
	ASoC: mediatek: mt8186: fix AUD_PAD_TOP register and offset
	mlxbf_gige: fix receive packet race condition
	net: sched: em_text: fix possible memory leak in em_text_destroy()
	r8169: Fix PCI error on system resume
	can: raw: add support for SO_MARK
	net-timestamp: extend SOF_TIMESTAMPING_OPT_ID to HW timestamps
	net: annotate data-races around sk->sk_tsflags
	net: annotate data-races around sk->sk_bind_phc
	net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)
	selftests: bonding: do not set port down when adding to bond
	ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init
	sfc: fix a double-free bug in efx_probe_filters
	net: bcmgenet: Fix FCS generation for fragmented skbuffs
	netfilter: nft_immediate: drop chain reference counter on error
	net: Save and restore msg_namelen in sock_sendmsg
	i40e: fix use-after-free in i40e_aqc_add_filters()
	ASoC: meson: g12a-toacodec: Validate written enum values
	ASoC: meson: g12a-tohdmitx: Validate written enum values
	ASoC: meson: g12a-toacodec: Fix event generation
	ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
	i40e: Restore VF MSI-X state during PCI reset
	igc: Fix hicredit calculation
	net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
	net/smc: fix invalid link access in dumping SMC-R connections
	octeontx2-af: Always configure NIX TX link credits based on max frame size
	octeontx2-af: Re-enable MAC TX in otx2_stop processing
	asix: Add check for usbnet_get_endpoints
	net: ravb: Wait for operating mode to be applied
	bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters()
	net: Implement missing SO_TIMESTAMPING_NEW cmsg support
	selftests: secretmem: floor the memory size to the multiple of page_size
	cpu/SMT: Create topology_smt_thread_allowed()
	cpu/SMT: Make SMT control more robust against enumeration failures
	srcu: Fix callbacks acceleration mishandling
	bpf, x64: Fix tailcall infinite loop
	bpf, x86: Simplify the parsing logic of structure parameters
	bpf, x86: save/restore regs with BPF_DW size
	net: Declare MSG_SPLICE_PAGES internal sendmsg() flag
	udp: Convert udp_sendpage() to use MSG_SPLICE_PAGES
	splice, net: Add a splice_eof op to file-ops and socket-ops
	ipv4, ipv6: Use splice_eof() to flush
	udp: introduce udp->udp_flags
	udp: move udp->no_check6_tx to udp->udp_flags
	udp: move udp->no_check6_rx to udp->udp_flags
	udp: move udp->gro_enabled to udp->udp_flags
	udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags
	udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO
	udp: annotate data-races around udp->encap_type
	wifi: iwlwifi: yoyo: swap cdb and jacket bits values
	arm64: dts: qcom: sdm845: align RPMh regulator nodes with bindings
	arm64: dts: qcom: sdm845: Fix PSCI power domain names
	fbdev: imsttfb: Release framebuffer and dealloc cmap on error path
	fbdev: imsttfb: fix double free in probe()
	bpf: decouple prune and jump points
	bpf: remove unnecessary prune and jump points
	bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()
	bpf: clean up visit_insn()'s instruction processing
	bpf: Support new 32bit offset jmp instruction
	bpf: handle ldimm64 properly in check_cfg()
	bpf: fix precision backtracking instruction iteration
	blk-mq: make sure active queue usage is held for bio_integrity_prep()
	net/mlx5: Increase size of irq name buffer
	s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc()
	s390/cpumf: support user space events for counting
	f2fs: clean up i_compress_flag and i_compress_level usage
	f2fs: convert to use bitmap API
	f2fs: assign default compression level
	f2fs: set the default compress_level on ioctl
	selftests: mptcp: fix fastclose with csum failure
	selftests: mptcp: set FAILING_LINKS in run_tests
	media: camss: sm8250: Virtual channels for CSID
	media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3
	ext4: convert move_extent_per_page() to use folios
	khugepage: replace try_to_release_page() with filemap_release_folio()
	memory-failure: convert truncate_error_page() to use folio
	mm: merge folio_has_private()/filemap_release_folio() call pairs
	mm, netfs, fscache: stop read optimisation when folio removed from pagecache
	filemap: add a per-mapping stable writes flag
	block: update the stable_writes flag in bdev_add
	smb: client: fix missing mode bits for SMB symlinks
	net: dpaa2-eth: rearrange variable in dpaa2_eth_get_ethtool_stats
	dpaa2-eth: recycle the RX buffer only after all processing done
	ethtool: don't propagate EOPNOTSUPP from dumps
	bpf, sockmap: af_unix stream sockets need to hold ref for pair sock
	firmware: arm_scmi: Fix frequency truncation by promoting multiplier type
	ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7
	genirq/affinity: Remove the 'firstvec' parameter from irq_build_affinity_masks
	genirq/affinity: Pass affinity managed mask array to irq_build_affinity_masks
	genirq/affinity: Don't pass irq_affinity_desc array to irq_build_affinity_masks
	genirq/affinity: Rename irq_build_affinity_masks as group_cpus_evenly
	genirq/affinity: Move group_cpus_evenly() into lib/
	lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly
	mm/memory_hotplug: add missing mem_hotplug_lock
	mm/memory_hotplug: fix error handling in add_memory_resource()
	net: sched: call tcf_ct_params_free to free params in tcf_ct_init
	netfilter: flowtable: allow unidirectional rules
	netfilter: flowtable: cache info of last offload
	net/sched: act_ct: offload UDP NEW connections
	net/sched: act_ct: Fix promotion of offloaded unreplied tuple
	netfilter: flowtable: GC pushes back packets to classic path
	net/sched: act_ct: Take per-cb reference to tcf_ct_flow_table
	octeontx2-af: Fix pause frame configuration
	octeontx2-af: Support variable number of lmacs
	btrfs: fix qgroup_free_reserved_data int overflow
	btrfs: mark the len field in struct btrfs_ordered_sum as unsigned
	ring-buffer: Fix 32-bit rb_time_read() race with rb_time_cmpxchg()
	firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
	x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect
	i2c: core: Fix atomic xfer check for non-preempt config
	mm: fix unmap_mapping_range high bits shift bug
	drm/amdgpu: skip gpu_info fw loading on navi12
	drm/amd/display: add nv12 bounding box
	mmc: meson-mx-sdhc: Fix initialization frozen issue
	mmc: rpmb: fixes pause retune on all RPMB partitions.
	mmc: core: Cancel delayed work before releasing host
	mmc: sdhci-sprd: Fix eMMC init failure after hw reset
	genirq/affinity: Only build SMP-only helper functions on SMP kernels
	f2fs: compress: fix to assign compress_level for lz4 correctly
	net/sched: act_ct: additional checks for outdated flows
	net/sched: act_ct: Always fill offloading tuple iifidx
	bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4
	bpf: syzkaller found null ptr deref in unix_bpf proto add
	media: qcom: camss: Comment CSID dt_id field
	smb3: Replace smb2pdu 1-element arrays with flex-arrays
	Revert "interconnect: qcom: sm8250: Enable sync_state"
	Linux 6.1.72

Change-Id: Id00eb2ae1159d4d5fa0ef914e672c5669cbf5b0a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-14 13:26:13 +00:00
Greg Kroah-Hartman
8eac30b25e This is the 6.1.71 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWYD8QACgkQONu9yGCS
 aT5cEA//UKwVnselP3QHU6yEm2j8Vuq5IOEIqIeYTDTyS7TGP83SsyM4n2KRlTwC
 /vaY3HWNsZHLqsNICPOPSdQn9STa7MYTnf/ackBbPglDnDz/A6mSB3zkXtCKFm6+
 UBmk6Y8pZwpdvk3aa6Z62Kr5bGGHdzvXdiJitERLlD2PFUOZT9/IHSncGnts3TQv
 PjFXy1KVIGsThKbtjtYPpa100RAti5HeLv/NbsaVbuKYMME/QCFmqyNRAp9k2iHx
 3nkze70aoREShEDjaLkcsirzwRKJu7qqNriYLt+wd7HmcD328R2UlTR8L3ZM0xOq
 qxBHnzbFtQyGR7NAudi2pStqwctPhFP6vRz1aJvt+w9tmbeKAWQWMd2pNvG8GhJm
 nxYFGyPLzTgPifK5SELCNIW4WXf8rnrRNgZ+Ph/JIGuhp+603//ATHRlVEwHcnl+
 M0GRbL06nWFVvfdKCYuu0autb9sW5T/vq02cbE5vRVVaziazry8S8EmxYQyOg9X/
 CBAd1XTybVZki9VkIP5zbdvWJL3LhFfsabBFy7TPZor/YCJQDvxzw1iwtY/BPVDT
 MryHjrYwH/n5RvibANRcTbCamMQY4IrJ4X3afJGgh7BK5N5C5ug4HYJ7oG5QB++x
 xC4A5x3L6D9SE/St8hFWghjYcd6lFcjlz1wJ5MyLImwYqfr8DnY=
 =Vt0s
 -----END PGP SIGNATURE-----

Merge 6.1.71 into android14-6.1-lts

Changes in 6.1.71
	ksmbd: replace one-element arrays with flexible-array members
	ksmbd: set SMB2_SESSION_FLAG_ENCRYPT_DATA when enforcing data encryption for this share
	ksmbd: use F_SETLK when unlocking a file
	ksmbd: Fix resource leak in smb2_lock()
	ksmbd: Convert to use sysfs_emit()/sysfs_emit_at() APIs
	ksmbd: Implements sess->rpc_handle_list as xarray
	ksmbd: fix typo, syncronous->synchronous
	ksmbd: Remove duplicated codes
	ksmbd: update Kconfig to note Kerberos support and fix indentation
	ksmbd: Fix spelling mistake "excceed" -> "exceeded"
	ksmbd: Fix parameter name and comment mismatch
	ksmbd: remove unused is_char_allowed function
	ksmbd: delete asynchronous work from list
	ksmbd: set NegotiateContextCount once instead of every inc
	ksmbd: avoid duplicate negotiate ctx offset increments
	ksmbd: remove unused compression negotiate ctx packing
	fs: introduce lock_rename_child() helper
	ksmbd: fix racy issue from using ->d_parent and ->d_name
	ksmbd: fix uninitialized pointer read in ksmbd_vfs_rename()
	ksmbd: fix uninitialized pointer read in smb2_create_link()
	ksmbd: call putname after using the last component
	ksmbd: fix posix_acls and acls dereferencing possible ERR_PTR()
	ksmbd: add mnt_want_write to ksmbd vfs functions
	ksmbd: remove unused ksmbd_tree_conn_share function
	ksmbd: use kzalloc() instead of __GFP_ZERO
	ksmbd: return a literal instead of 'err' in ksmbd_vfs_kern_path_locked()
	ksmbd: Change the return value of ksmbd_vfs_query_maximal_access to void
	ksmbd: use kvzalloc instead of kvmalloc
	ksmbd: Replace the ternary conditional operator with min()
	ksmbd: Use struct_size() helper in ksmbd_negotiate_smb_dialect()
	ksmbd: Replace one-element array with flexible-array member
	ksmbd: Fix unsigned expression compared with zero
	ksmbd: check if a mount point is crossed during path lookup
	ksmbd: switch to use kmemdup_nul() helper
	ksmbd: add support for read compound
	ksmbd: fix wrong interim response on compound
	ksmbd: fix `force create mode' and `force directory mode'
	ksmbd: Fix one kernel-doc comment
	ksmbd: add missing calling smb2_set_err_rsp() on error
	ksmbd: remove experimental warning
	ksmbd: remove unneeded mark_inode_dirty in set_info_sec()
	ksmbd: fix passing freed memory 'aux_payload_buf'
	ksmbd: return invalid parameter error response if smb2 request is invalid
	ksmbd: check iov vector index in ksmbd_conn_write()
	ksmbd: fix race condition with fp
	ksmbd: fix race condition from parallel smb2 logoff requests
	ksmbd: fix race condition from parallel smb2 lock requests
	ksmbd: fix race condition between tree conn lookup and disconnect
	ksmbd: fix wrong error response status by using set_smb2_rsp_status()
	ksmbd: fix Null pointer dereferences in ksmbd_update_fstate()
	ksmbd: fix potential double free on smb2_read_pipe() error path
	ksmbd: Remove unused field in ksmbd_user struct
	ksmbd: reorganize ksmbd_iov_pin_rsp()
	ksmbd: fix kernel-doc comment of ksmbd_vfs_setxattr()
	ksmbd: fix recursive locking in vfs helpers
	ksmbd: fix missing RDMA-capable flag for IPoIB device in ksmbd_rdma_capable_netdev()
	ksmbd: add support for surrogate pair conversion
	ksmbd: no need to wait for binded connection termination at logoff
	ksmbd: fix kernel-doc comment of ksmbd_vfs_kern_path_locked()
	ksmbd: prevent memory leak on error return
	ksmbd: fix possible deadlock in smb2_open
	ksmbd: separately allocate ci per dentry
	ksmbd: move oplock handling after unlock parent dir
	ksmbd: release interim response after sending status pending response
	ksmbd: move setting SMB2_FLAGS_ASYNC_COMMAND and AsyncId
	ksmbd: don't update ->op_state as OPLOCK_STATE_NONE on error
	ksmbd: set epoch in create context v2 lease
	ksmbd: set v2 lease capability
	ksmbd: downgrade RWH lease caching state to RH for directory
	ksmbd: send v2 lease break notification for directory
	ksmbd: lazy v2 lease break on smb2_write()
	ksmbd: avoid duplicate opinfo_put() call on error of smb21_lease_break_ack()
	ksmbd: fix wrong allocation size update in smb2_open()
	ARM: dts: Fix occasional boot hang for am3 usb
	usb: fotg210-hcd: delete an incorrect bounds test
	spi: Introduce spi_get_device_match_data() helper
	iio: imu: adis16475: add spi_device_id table
	nfsd: separate nfsd_last_thread() from nfsd_put()
	nfsd: call nfsd_last_thread() before final nfsd_put()
	linux/export: Ensure natural alignment of kcrctab array
	spi: Reintroduce spi_set_cs_timing()
	spi: Add APIs in spi core to set/get spi->chip_select and spi->cs_gpiod
	spi: atmel: Fix clock issue when using devices with different polarities
	block: renumber QUEUE_FLAG_HW_WC
	ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16()
	platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe
	mm/filemap: avoid buffered read/write race to read inconsistent data
	mm: migrate high-order folios in swap cache correctly
	mm/memory-failure: cast index to loff_t before shifting it
	mm/memory-failure: check the mapcount of the precise page
	ring-buffer: Fix wake ups when buffer_percent is set to 100
	tracing: Fix blocked reader of snapshot buffer
	ring-buffer: Remove useless update to write_stamp in rb_try_to_discard()
	netfilter: nf_tables: skip set commit for deleted/destroyed sets
	ring-buffer: Fix slowpath of interrupted event
	NFSD: fix possible oops when nfsd/pool_stats is closed.
	spi: Constify spi parameters of chip select APIs
	device property: Allow const parameter to dev_fwnode()
	kallsyms: Make module_kallsyms_on_each_symbol generally available
	tracing/kprobes: Fix symbol counting logic by looking at modules as well
	Revert "platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe"
	Linux 6.1.71

Change-Id: I7bc16d981b90e8e0b633628438f79fce898ad15a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-14 11:21:18 +00:00
Greg Kroah-Hartman
1e63881f5c This is the 6.1.70 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWSsnYACgkQONu9yGCS
 aT7ZRw//bmrTWoNbFf/qdM11oPF9EHus9FUgSlP5yvNaa6jcPfwGx71NPXUkz+wU
 xKobh1VwK7TJxq4JHFQeMmupW/8++NeWNygwtYsllwnsMGzHL+mz2Txysrr/mhMx
 WUs6UVYXRxnuQJJDSqtTvMoyllpAJ1QQxJNuhKKOI1i+0DIu9YjQklD/4eW3cebv
 8B9f3CeOyP/oL5Z0MqFTP8OnWx6X3jTbO4caor+qsyR+frgpXgBppTF76RHcd8lX
 MLVlx7aqr4wcml/uUMsolw8Zjbb719mX+KW3LHltl8wHftZeinYUsu1afnlb5dG1
 rAaVgut0PmjTAQ/KwIp54CGO2MADwApMCUXIm0yyKSpNfw+HKR10bpz64HOFp9KQ
 368YpjDJ3onkQdrLjV57w37YBRLyWxipeBya2+S4rdyPSfuvPkPCRNVkEDnHVAnH
 jxEhuoMZ2f/CIA8BT32y4DYDvEaIdfp7jVvEDFREDyIVXRMBhIneMhhyjU+Oe7Rw
 1q/sfEJejXFa5VvC+Jl+K5LouP59M5MTq3RkCoYxZKz+bdfpOLEJ6AZJoZHcS02J
 QlM/pL213nC1ye3tuWFu3tNPzPS/G6LNQfGgSsBUzRn9IX2osn/epNFnCHBIFqlK
 apjrXObrmqKE6jNvy6ktHUDpnEXPZFpvirSXRN2Lk9SYh76bFP0=
 =d63o
 -----END PGP SIGNATURE-----

Merge 6.1.70 into android14-6.1-lts

Changes in 6.1.70
	kasan: disable kasan_non_canonical_hook() for HW tags
	bpf: Fix prog_array_map_poke_run map poke update
	HID: i2c-hid: acpi: Unify ACPI ID tables format
	HID: i2c-hid: Add IDEA5002 to i2c_hid_acpi_blacklist[]
	drm/amd/display: fix hw rotated modes when PSR-SU is enabled
	ARM: dts: dra7: Fix DRA7 L3 NoC node register size
	ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
	reset: Fix crash when freeing non-existent optional resets
	s390/vx: fix save/restore of fpu kernel context
	wifi: iwlwifi: pcie: add another missing bh-disable for rxq->lock
	wifi: mac80211: check if the existing link config remains unchanged
	wifi: mac80211: mesh: check element parsing succeeded
	wifi: mac80211: mesh_plink: fix matches_local logic
	Revert "net/mlx5e: fix double free of encap_header in update funcs"
	Revert "net/mlx5e: fix double free of encap_header"
	net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()
	net/mlx5: Introduce and use opcode getter in command interface
	net/mlx5: Prevent high-rate FW commands from populating all slots
	net/mlx5: Re-organize mlx5_cmd struct
	net/mlx5e: Fix a race in command alloc flow
	net/mlx5e: fix a potential double-free in fs_udp_create_groups
	net/mlx5: Fix fw tracer first block check
	net/mlx5e: Correct snprintf truncation handling for fw_version buffer
	net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors
	net: mscc: ocelot: fix eMAC TX RMON stats for bucket 256-511 and above
	octeontx2-pf: Fix graceful exit during PFC configuration failure
	net: Return error from sk_stream_wait_connect() if sk_wait_event() fails
	net: sched: ife: fix potential use-after-free
	ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
	net/rose: fix races in rose_kill_by_device()
	Bluetooth: Fix deadlock in vhci_send_frame
	Bluetooth: hci_event: shut up a false-positive warning
	net: mana: select PAGE_POOL
	net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
	afs: Fix the dynamic root's d_delete to always delete unused dentries
	afs: Fix dynamic root lookup DNS check
	net: check dev->gso_max_size in gso_features_check()
	keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
	afs: Fix overwriting of result of DNS query
	afs: Fix use-after-free due to get/remove race in volume tree
	ASoC: hdmi-codec: fix missing report for jack initial status
	ASoC: fsl_sai: Fix channel swap issue on i.MX8MP
	i2c: aspeed: Handle the coalesced stop conditions with the start conditions.
	x86/xen: add CPU dependencies for 32-bit build
	pinctrl: at91-pio4: use dedicated lock class for IRQ
	gpiolib: cdev: add gpio_device locking wrapper around gpio_ioctl()
	nvme-pci: fix sleeping function called from interrupt context
	drm/i915/mtl: limit second scaler vertical scaling in ver >= 14
	drm/i915: Relocate intel_atomic_setup_scalers()
	drm/i915: Fix intel_atomic_setup_scalers() plane_state handling
	drm/i915/dpt: Only do the POT stride remap when using DPT
	drm/i915/mtl: Add MTL for remapping CCS FBs
	drm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original
	interconnect: Treat xlate() returning NULL node as an error
	iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
	interconnect: qcom: sm8250: Enable sync_state
	Input: ipaq-micro-keys - add error handling for devm_kmemdup
	scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
	iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
	iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()
	iio: triggered-buffer: prevent possible freeing of wrong buffer
	ALSA: usb-audio: Increase delay in MOTU M quirk
	usb-storage: Add quirk for incorrect WP on Kingston DT Ultimate 3.0 G3
	wifi: cfg80211: Add my certificate
	wifi: cfg80211: fix certs build to not depend on file order
	USB: serial: ftdi_sio: update Actisense PIDs constant names
	USB: serial: option: add Quectel EG912Y module support
	USB: serial: option: add Foxconn T99W265 with new baseline
	USB: serial: option: add Quectel RM500Q R13 firmware support
	ALSA: hda/realtek: Add quirk for ASUS ROG GV302XA
	Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
	Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg
	Bluetooth: L2CAP: Send reject on command corrupted request
	Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE
	Bluetooth: Add more enc key size check
	net: usb: ax88179_178a: avoid failed operations when device is disconnected
	Input: soc_button_array - add mapping for airplane mode button
	net: 9p: avoid freeing uninit memory in p9pdu_vreadf
	net: rfkill: gpio: set GPIO direction
	net: ks8851: Fix TX stall caused by TX buffer overrun
	dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp
	smb: client: fix OOB in cifsd when receiving compounded resps
	smb: client: fix potential OOB in cifs_dump_detail()
	smb: client: fix OOB in SMB2_query_info_init()
	smb: client: fix OOB in smbCalcSize()
	drm/i915: Reject async flips with bigjoiner
	9p: prevent read overrun in protocol dump tracepoint
	RISC-V: Fix do_notify_resume / do_work_pending prototype
	loop: do not enforce max_loop hard limit by (new) default
	dm thin metadata: Fix ABBA deadlock by resetting dm_bufio_client
	Revert "drm/amd/display: Do not set DRR on pipe commit"
	btrfs: zoned: no longer count fresh BG region as zone unusable
	ubifs: fix possible dereference after free
	ublk: move ublk_cancel_dev() out of ub->mutex
	selftests: mptcp: join: fix subflow_send_ack lookup
	Revert "scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity"
	scsi: core: Always send batch on reset or error handling command
	tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
	dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
	pinctrl: starfive: jh7100: ignore disabled device tree nodes
	bus: ti-sysc: Flush posted write only after srst_udelay
	gpio: dwapb: mask/unmask IRQ when disable/enale it
	lib/vsprintf: Fix %pfwf when current node refcount == 0
	thunderbolt: Fix memory leak in margining_port_remove()
	KVM: arm64: vgic: Simplify kvm_vgic_destroy()
	KVM: arm64: vgic: Add a non-locking primitive for kvm_vgic_vcpu_destroy()
	KVM: arm64: vgic: Force vcpu vgic teardown on vcpu destroy
	x86/alternatives: Sync core before enabling interrupts
	mm/damon/core: make damon_start() waits until kdamond_fn() starts
	fuse: share lookup state between submount and its parent
	wifi: cfg80211: fix CQM for non-range use
	wifi: nl80211: fix deadlock in nl80211_set_cqm_rssi (6.6.x)
	loop: deprecate autoloading callback loop_probe()
	Linux 6.1.70

Change-Id: I72bfbd39ae932d290b13d6fdde8e6684a84ec9e1
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-12 18:48:13 +00:00
Greg Kroah-Hartman
9b8f2430b3 Revert "cred: switch to using atomic_long_t"
This reverts commit 36e2497ac7 which is
commit f8fa5d76925991976b3e7076f9d1052515ec1fca upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way.

Bug: 161946584
Bug: 317347552
Change-Id: I9eb52866bc3b2a9f02e3f7fbee0bacbcc06b0849
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-11 22:38:43 +00:00
Greg Kroah-Hartman
d3d46ac25c Merge 6.1.69 into android14-6.1-lts
Changes in 6.1.69
	perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table
	r8152: add USB device driver for config selection
	r8152: add vendor/device ID pair for D-Link DUB-E250
	r8152: add vendor/device ID pair for ASUS USB-C2500
	powerpc/ftrace: Fix stack teardown in ftrace_no_trace
	ext4: fix warning in ext4_dio_write_end_io()
	ksmbd: fix memory leak in smb2_lock()
	afs: Fix refcount underflow from error handling race
	HID: lenovo: Restrict detection of patched firmware only to USB cptkbd
	net/mlx5e: Fix possible deadlock on mlx5e_tx_timeout_work
	net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX
	qca_debug: Prevent crash on TX ring changes
	qca_debug: Fix ethtool -G iface tx behavior
	qca_spi: Fix reset behavior
	bnxt_en: Clear resource reservation during resume
	bnxt_en: Save ring error counters across reset
	bnxt_en: Fix wrong return value check in bnxt_close_nic()
	bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic
	atm: solos-pci: Fix potential deadlock on &cli_queue_lock
	atm: solos-pci: Fix potential deadlock on &tx_queue_lock
	net: vlan: introduce skb_vlan_eth_hdr()
	net: fec: correct queue selection
	octeontx2-af: fix a use-after-free in rvu_nix_register_reporters
	octeontx2-pf: Fix promisc mcam entry action
	octeontx2-af: Update RSS algorithm index
	atm: Fix Use-After-Free in do_vcc_ioctl
	net/rose: Fix Use-After-Free in rose_ioctl
	iavf: Introduce new state machines for flow director
	iavf: Handle ntuple on/off based on new state machines for flow director
	qed: Fix a potential use-after-free in qed_cxt_tables_alloc
	net: Remove acked SYN flag from packet in the transmit queue correctly
	net: ena: Destroy correct number of xdp queues upon failure
	net: ena: Fix xdp drops handling due to multibuf packets
	net: ena: Fix XDP redirection error
	stmmac: dwmac-loongson: Make sure MDIO is initialized before use
	sign-file: Fix incorrect return values check
	vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
	dpaa2-switch: fix size of the dma_unmap
	dpaa2-switch: do not ask for MDB, VLAN and FDB replay
	net: stmmac: Handle disabled MDIO busses from devicetree
	appletalk: Fix Use-After-Free in atalk_ioctl
	net: atlantic: fix double free in ring reinit logic
	cred: switch to using atomic_long_t
	fuse: dax: set fc->dax to NULL in fuse_dax_conn_free()
	ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
	ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants
	ALSA: hda/realtek: Apply mute LED quirk for HP15-db
	Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
	PCI: loongson: Limit MRRS to 256
	ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
	drm/mediatek: Add spinlock for setting vblank event in atomic_begin
	x86/hyperv: Fix the detection of E820_TYPE_PRAM in a Gen2 VM
	usb: aqc111: check packet for fixup for true limit
	stmmac: dwmac-loongson: Add architecture dependency
	blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!"
	blk-cgroup: bypass blkcg_deactivate_policy after destroying
	bcache: avoid oversize memory allocation by small stripe_size
	bcache: remove redundant assignment to variable cur_idx
	bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc()
	bcache: avoid NULL checking to c->root in run_cache_set()
	nbd: fold nbd config initialization into nbd_alloc_config()
	nvme-auth: set explanation code for failure2 msgs
	nvme: catch errors from nvme_configure_metadata()
	selftests/bpf: fix bpf_loop_bench for new callback verification scheme
	LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi
	LoongArch: Implement constant timer shutdown interface
	platform/x86: intel_telemetry: Fix kernel doc descriptions
	HID: glorious: fix Glorious Model I HID report
	HID: add ALWAYS_POLL quirk for Apple kb
	nbd: pass nbd_sock to nbd_read_reply() instead of index
	HID: hid-asus: reset the backlight brightness level on resume
	HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad
	asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation
	net: usb: qmi_wwan: claim interface 4 for ZTE MF290
	arm64: add dependency between vmlinuz.efi and Image
	HID: hid-asus: add const to read-only outgoing usb buffer
	perf: Fix perf_event_validate_size() lockdep splat
	btrfs: do not allow non subvolume root targets for snapshot
	soundwire: stream: fix NULL pointer dereference for multi_link
	ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS
	arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
	team: Fix use-after-free when an option instance allocation fails
	drm/amdgpu/sdma5.2: add begin/end_use ring callbacks
	dmaengine: stm32-dma: avoid bitfield overflow assertion
	mm/mglru: fix underprotected page cache
	mm/shmem: fix race in shmem_undo_range w/THP
	btrfs: free qgroup reserve when ORDERED_IOERR is set
	btrfs: don't clear qgroup reserved bit in release_folio
	drm/amdgpu: fix tear down order in amdgpu_vm_pt_free
	drm/amd/display: Disable PSR-SU on Parade 0803 TCON again
	drm/i915: Fix remapped stride with CCS on ADL+
	smb: client: fix OOB in receive_encrypted_standard()
	smb: client: fix NULL deref in asn1_ber_decoder()
	smb: client: fix OOB in smb2_query_reparse_point()
	ring-buffer: Fix memory leak of free page
	tracing: Update snapshot buffer on resize if it is allocated
	ring-buffer: Do not update before stamp when switching sub-buffers
	ring-buffer: Have saved event hold the entire event
	ring-buffer: Fix writing to the buffer with max_data_size
	ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs
	ring-buffer: Do not try to put back write_stamp
	ring-buffer: Have rb_time_cmpxchg() set the msb counter too
	net: tls, update curr on splice as well
	r8152: avoid to change cfg for all devices
	r8152: remove rtl_vendor_mode function
	r8152: fix the autosuspend doesn't work
	Linux 6.1.69

Change-Id: I695d1d50ca8c00ff505505918bdc59ce9d29d479
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-11 22:37:52 +00:00
Greg Kroah-Hartman
bb47960a9d Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
This merges all of the latest changes in 'android14-6.1' into
'android14-6.1-lts' to get it to pass TH again due to new symbols being
added.  Included in here are the following commits:

* a41a4ee370 ANDROID: Update the ABI symbol list
* 0801d8a89d ANDROID: mm: export dump_tasks symbol.
* 7c91752f5d FROMLIST: scsi: ufs: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
* 28154afe74 FROMLIST: scsi: ufs: Simplify power management during async scan
* febcf1429f ANDROID: gki_defconfig: Set CONFIG_IDLE_INJECT and CONFIG_CPU_IDLE_THERMAL into y
* bc4d82ee40 ANDROID: KMI workaround for CONFIG_NETFILTER_FAMILY_BRIDGE
* 227b55a7a3 ANDROID: dma-buf: don't re-purpose kobject as work_struct
* c1b1201d39 BACKPORT: FROMLIST: dma-buf: Move sysfs work out of DMA-BUF export path
* 928b3b5dde UPSTREAM: netfilter: nf_tables: skip set commit for deleted/destroyed sets
* 031f804149 ANDROID: KVM: arm64: Avoid BUG-ing from the host abort path
* c5dc4b4b3d ANDROID: Update the ABI symbol list
* 5070b3b594 UPSTREAM: ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
* 02aa72665c UPSTREAM: nvmet-tcp: Fix a possible UAF in queue intialization setup
* d6554d1262 FROMGIT: usb: dwc3: gadget: Handle EP0 request dequeuing properly
* 29544d4157 ANDROID: ABI: Update symbol list for imx
* 02f444ba07 UPSTREAM: io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid
* ec46fe0ac7 UPSTREAM: bpf: Fix prog_array_map_poke_run map poke update
* 98b0e4cf09 BACKPORT: xhci: track port suspend state correctly in unsuccessful resume cases
* ac90f08292 ANDROID: Update the ABI symbol list
* ef67750d99 ANDROID: sched: Export symbols for vendor modules
* 934a40576e UPSTREAM: usb: dwc3: core: add support for disabling High-speed park mode
* 8a597e7a2d ANDROID: KVM: arm64: Don't prepopulate MMIO regions for host stage-2
* ed9b660cd1 BACKPORT: FROMGIT fork: use __mt_dup() to duplicate maple tree in dup_mmap()
* 3743b40f65 FROMGIT: maple_tree: preserve the tree attributes when destroying maple tree
* 1bec2dd52e FROMGIT: maple_tree: update check_forking() and bench_forking()
* e57d333531 FROMGIT: maple_tree: skip other tests when BENCH is enabled
* c79ca61edc FROMGIT: maple_tree: update the documentation of maple tree
* 7befa7bbc9 FROMGIT: maple_tree: add test for mtree_dup()
* f73f881af4 FROMGIT: radix tree test suite: align kmem_cache_alloc_bulk() with kernel behavior.
* eb5048ea90 FROMGIT: maple_tree: introduce interfaces __mt_dup() and mtree_dup()
* dc9323545b FROMGIT: maple_tree: introduce {mtree,mas}_lock_nested()
* 4ddcdc519b FROMGIT: maple_tree: add mt_free_one() and mt_attr() helpers
* c52d48818b UPSTREAM: maple_tree: introduce __mas_set_range()
* 066d57de87 ANDROID: GKI: Enable symbols for v4l2 in async and fwnode
* e74417834e ANDROID: Update the ABI symbol list
* 15a93de464 ANDROID: KVM: arm64: Fix hyp event alignment
* 717d1f8f91 ANDROID: KVM: arm64: Fix host_smc print typo
* 8fc25d7862 FROMGIT: f2fs: do not return EFSCORRUPTED, but try to run online repair
* 99288e911a ANDROID: KVM: arm64: Document module_change_host_prot_range
* 4d99e41ce1 FROMGIT: PM / devfreq: Synchronize devfreq_monitor_[start/stop]
* 6c8f710857 FROMGIT: arch/mm/fault: fix major fault accounting when retrying under per-VMA lock
* 4a518d8633 UPSTREAM: mm: handle write faults to RO pages under the VMA lock
* c1da94fa44 UPSTREAM: mm: handle read faults under the VMA lock
* 6541fffd92 UPSTREAM: mm: handle COW faults under the VMA lock
* c7fa581a79 UPSTREAM: mm: handle shared faults under the VMA lock
* 95af8a80bb BACKPORT: mm: call wp_page_copy() under the VMA lock
* b43b26b4cd UPSTREAM: mm: make lock_folio_maybe_drop_mmap() VMA lock aware
* 9c4bc457ab UPSTREAM: mm/memory.c: fix mismerge
* 7d50253c27 ANDROID: Export functions to be used with dma_map_ops in modules
* 37e0a5b868 BACKPORT: FROMGIT: erofs: enable sub-page compressed block support
* f466d52164 FROMGIT: erofs: refine z_erofs_transform_plain() for sub-page block support
* a18efa4e4a FROMGIT: erofs: fix ztailpacking for subpage compressed blocks
* 0c6a18c75b BACKPORT: FROMGIT: erofs: fix up compacted indexes for block size < 4096
* d7bb85f1cb FROMGIT: erofs: record `pclustersize` in bytes instead of pages
* 9d259220ac FROMGIT: erofs: support I/O submission for sub-page compressed blocks
* 8a49ea9441 FROMGIT: erofs: fix lz4 inplace decompression
* bdc5d268ba FROMGIT: erofs: fix memory leak on short-lived bounced pages
* 0d329bbe5c BACKPORT: erofs: tidy up z_erofs_do_read_page()
* dc94c3cc6b UPSTREAM: erofs: move preparation logic into z_erofs_pcluster_begin()
* 7751567a71 BACKPORT: erofs: avoid obsolete {collector,collection} terms
* d0dbf74792 BACKPORT: erofs: simplify z_erofs_read_fragment()
* 4067dd9969 UPSTREAM: erofs: get rid of the remaining kmap_atomic()
* 365ca16da2 UPSTREAM: erofs: simplify z_erofs_transform_plain()
* 187d034575 BACKPORT: erofs: adapt managed inode operations into folios
* 3d93182661 UPSTREAM: erofs: avoid on-stack pagepool directly passed by arguments
* 5c1827383a UPSTREAM: erofs: allocate extra bvec pages directly instead of retrying
* bed20ed1d3 UPSTREAM: erofs: clean up z_erofs_pcluster_readmore()
* 5e861fa97e UPSTREAM: erofs: remove the member readahead from struct z_erofs_decompress_frontend
* 66595bb17c UPSTREAM: erofs: fold in z_erofs_decompress()
* 88a1939504 UPSTREAM: erofs: enable large folios for iomap mode
* 2c085909e7 ANDROID: Update the ABI symbol list
* d16a15fde5 UPSTREAM: USB: gadget: core: adjust uevent timing on gadget unbind
* d3006fb944 ANDROID: ABI: Update oplus symbol list
* bc97d5019a ANDROID: vendor_hooks: Add hooks for rt_mutex steal
* 401a2769d9 UPSTREAM: dm verity: don't perform FEC for failed readahead IO
* 30bca9e278 UPSTREAM: netfilter: nft_set_pipapo: skip inactive elements during set walk
* 44702d8fa1 FROMLIST: mm: migrate high-order folios in swap cache correctly
* 613d8368e3 ANDROID: fuse-bpf: Follow mounts in lookups

Change-Id: I49d28ad030d7840490441ce6a7936b5e1047913e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-11 08:06:52 +00:00
qctecmdr
ed08e4bfb3 Merge "Merge keystone/android14-6.1-keystone-qcom-release.6.1.57 (97abf17) into qcom-6.1" 2024-01-10 09:45:17 -08:00
Yonghong Song
15db682980 bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4
commit dfce9cb3140592b886838e06f3e0c25fea2a9cae upstream.

Bpf cpu=v4 support is introduced in [1] and Commit 4cd58e9af8b9
("bpf: Support new 32bit offset jmp instruction") added support for new
32bit offset jmp instruction. Unfortunately, in function
bpf_adj_delta_to_off(), for new branch insn with 32bit offset, the offset
(plus/minor a small delta) compares to 16-bit offset bound
[S16_MIN, S16_MAX], which caused the following verification failure:
  $ ./test_progs-cpuv4 -t verif_scale_pyperf180
  ...
  insn 10 cannot be patched due to 16-bit range
  ...
  libbpf: failed to load object 'pyperf180.bpf.o'
  scale_test:FAIL:expect_success unexpected error: -12 (errno 12)
  #405     verif_scale_pyperf180:FAIL

Note that due to recent llvm18 development, the patch [2] (already applied
in bpf-next) needs to be applied to bpf tree for testing purpose.

The fix is rather simple. For 32bit offset branch insn, the adjusted
offset compares to [S32_MIN, S32_MAX] and then verification succeeded.

  [1] https://lore.kernel.org/all/20230728011143.3710005-1-yonghong.song@linux.dev
  [2] https://lore.kernel.org/bpf/20231110193644.3130906-1-yonghong.song@linux.dev

Fixes: 4cd58e9af8b9 ("bpf: Support new 32bit offset jmp instruction")
Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231201024640.3417057-1-yonghong.song@linux.dev
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-10 17:10:36 +01:00
Mathieu Desnoyers
09a44d994b ring-buffer: Fix 32-bit rb_time_read() race with rb_time_cmpxchg()
[ Upstream commit dec890089bf79a4954b61482715ee2d084364856 ]

The following race can cause rb_time_read() to observe a corrupted time
stamp:

rb_time_cmpxchg()
[...]
        if (!rb_time_read_cmpxchg(&t->msb, msb, msb2))
                return false;
        if (!rb_time_read_cmpxchg(&t->top, top, top2))
                return false;
<interrupted before updating bottom>
__rb_time_read()
[...]
        do {
                c = local_read(&t->cnt);
                top = local_read(&t->top);
                bottom = local_read(&t->bottom);
                msb = local_read(&t->msb);
        } while (c != local_read(&t->cnt));

        *cnt = rb_time_cnt(top);

        /* If top and msb counts don't match, this interrupted a write */
        if (*cnt != rb_time_cnt(msb))
                return false;
          ^ this check fails to catch that "bottom" is still not updated.

So the old "bottom" value is returned, which is wrong.

Fix this by checking that all three of msb, top, and bottom 2-bit cnt
values match.

The reason to favor checking all three fields over requiring a specific
update order for both rb_time_set() and rb_time_cmpxchg() is because
checking all three fields is more robust to handle partial failures of
rb_time_cmpxchg() when interrupted by nested rb_time_set().

Link: https://lore.kernel.org/lkml/20231211201324.652870-1-mathieu.desnoyers@efficios.com/
Link: https://lore.kernel.org/linux-trace-kernel/20231212193049.680122-1-mathieu.desnoyers@efficios.com

Fixes: f458a1453424e ("ring-buffer: Test last update in 32bit version of __rb_time_read()")
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:35 +01:00
Ming Lei
f33b27f5c3 genirq/affinity: Move group_cpus_evenly() into lib/
[ Upstream commit f7b3ea8cf72f3d6060fe08e461805181e7450a13 ]

group_cpus_evenly() has become a generic function which can be used for
other subsystems than the interrupt subsystem, so move it into lib/.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20221227022905.352674-6-ming.lei@redhat.com
Stable-dep-of: 0263f92fadbb ("lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:33 +01:00
Ming Lei
617ba3735d genirq/affinity: Rename irq_build_affinity_masks as group_cpus_evenly
[ Upstream commit 523f1ea76aad9025f9bd5258d77f4406fa9dbe5d ]

Map irq vector into group, which allows to abstract the algorithm for
a generic use case outside of the interrupt core.

Rename irq_build_affinity_masks as group_cpus_evenly, so the API can be
reused for blk-mq to make default queue mapping even though irq vectors
aren't involved.

No functional change, just rename vector as group.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20221227022905.352674-5-ming.lei@redhat.com
Stable-dep-of: 0263f92fadbb ("lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:33 +01:00
Ming Lei
aeeb4e4e49 genirq/affinity: Don't pass irq_affinity_desc array to irq_build_affinity_masks
[ Upstream commit e7bdd7f0cbd1c001bb9b4d3313edc5ee094bc3f8 ]

Prepare for abstracting irq_build_affinity_masks() into a public function
for assigning all CPUs evenly into several groups.

Don't pass irq_affinity_desc array to irq_build_affinity_masks, instead
return a cpumask array by storing each assigned group into one element of
the array.

This allows to provide a generic interface for grouping all CPUs evenly
from a NUMA and CPU locality viewpoint, and the cost is one extra allocation
in irq_build_affinity_masks(), which should be fine since it is done via
GFP_KERNEL and irq_build_affinity_masks() is a slow path anyway.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20221227022905.352674-4-ming.lei@redhat.com
Stable-dep-of: 0263f92fadbb ("lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:33 +01:00
Ming Lei
9e84d7bb15 genirq/affinity: Pass affinity managed mask array to irq_build_affinity_masks
[ Upstream commit 1f962d91a15af54301c63febb8ac2ba07aa3654f ]

Pass affinity managed mask array to irq_build_affinity_masks() so that the
index of the first affinity managed vector is always zero.

This allows to simplify the implementation a bit.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20221227022905.352674-3-ming.lei@redhat.com
Stable-dep-of: 0263f92fadbb ("lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:33 +01:00
Ming Lei
a1dcd17947 genirq/affinity: Remove the 'firstvec' parameter from irq_build_affinity_masks
[ Upstream commit cdf07f0ea48a3b52f924714d477366ac510ee870 ]

The 'firstvec' parameter is always same with the parameter of
'startvec', so use 'startvec' directly inside irq_build_affinity_masks().

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20221227022905.352674-2-ming.lei@redhat.com
Stable-dep-of: 0263f92fadbb ("lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:33 +01:00
Andrii Nakryiko
803fb6109f bpf: fix precision backtracking instruction iteration
[ Upstream commit 4bb7ea946a370707315ab774432963ce47291946 ]

Fix an edge case in __mark_chain_precision() which prematurely stops
backtracking instructions in a state if it happens that state's first
and last instruction indexes are the same. This situations doesn't
necessarily mean that there were no instructions simulated in a state,
but rather that we starting from the instruction, jumped around a bit,
and then ended up at the same instruction before checkpointing or
marking precision.

To distinguish between these two possible situations, we need to consult
jump history. If it's empty or contain a single record "bridging" parent
state and first instruction of processed state, then we indeed
backtracked all instructions in this state. But if history is not empty,
we are definitely not done yet.

Move this logic inside get_prev_insn_idx() to contain it more nicely.
Use -ENOENT return code to denote "we are out of instructions"
situation.

This bug was exposed by verifier_loop1.c's bounded_recursion subtest, once
the next fix in this patch set is applied.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Fixes: b5dc0163d8 ("bpf: precise scalar_value tracking")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231110002638.4168352-3-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:29 +01:00
Andrii Nakryiko
b08acd5c46 bpf: handle ldimm64 properly in check_cfg()
[ Upstream commit 3feb263bb516ee7e1da0acd22b15afbb9a7daa19 ]

ldimm64 instructions are 16-byte long, and so have to be handled
appropriately in check_cfg(), just like the rest of BPF verifier does.

This has implications in three places:
  - when determining next instruction for non-jump instructions;
  - when determining next instruction for callback address ldimm64
    instructions (in visit_func_call_insn());
  - when checking for unreachable instructions, where second half of
    ldimm64 is expected to be unreachable;

We take this also as an opportunity to report jump into the middle of
ldimm64. And adjust few test_verifier tests accordingly.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Reported-by: Hao Sun <sunhao.th@gmail.com>
Fixes: 475fb78fbf ("bpf: verifier (add branch/goto checks)")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231110002638.4168352-2-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:29 +01:00
Yonghong Song
2c795ce090 bpf: Support new 32bit offset jmp instruction
[ Upstream commit 4cd58e9af8b9d9fff6b7145e742abbfcda0af4af ]

Add interpreter/jit/verifier support for 32bit offset jmp instruction.
If a conditional jmp instruction needs more than 16bit offset,
it can be simulated with a conditional jmp + a 32bit jmp insn.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20230728011231.3716103-1-yonghong.song@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Stable-dep-of: 3feb263bb516 ("bpf: handle ldimm64 properly in check_cfg()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:29 +01:00
Andrii Nakryiko
b1c780ed3c bpf: clean up visit_insn()'s instruction processing
[ Upstream commit 653ae3a874aca6764a4c1f5a8bf1b072ade0d6f4 ]

Instead of referencing processed instruction repeatedly as insns[t]
throughout entire visit_insn() function, take a local insn pointer and
work with it in a cleaner way.

It makes enhancing this function further a bit easier as well.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20230302235015.2044271-7-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Stable-dep-of: 3feb263bb516 ("bpf: handle ldimm64 properly in check_cfg()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:29 +01:00
Andrii Nakryiko
97bb6dab01 bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()
[ Upstream commit dcb2288b1fd9a8cdf2f3b8c0c7b3763346ef515f ]

Number of total instructions in BPF program (including subprogs) can and
is accessed from env->prog->len. visit_func_call_insn() doesn't do any
checks against insn_cnt anymore, relying on push_insn() to do this check
internally. So remove unnecessary insn_cnt input argument from
visit_func_call_insn() and visit_insn() functions.

Suggested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20221207195534.2866030-1-andrii@kernel.org
Stable-dep-of: 3feb263bb516 ("bpf: handle ldimm64 properly in check_cfg()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:29 +01:00
Andrii Nakryiko
8266c47d04 bpf: remove unnecessary prune and jump points
[ Upstream commit 618945fbed501b6e5865042068a51edfb2dda948 ]

Don't mark some instructions as jump points when there are actually no
jumps and instructions are just processed sequentially. Such case is
handled naturally by precision backtracking logic without the need to
update jump history. See get_prev_insn_idx(). It goes back linearly by
one instruction, unless current top of jmp_history is pointing to
current instruction. In such case we use `st->jmp_history[cnt - 1].prev_idx`
to find instruction from which we jumped to the current instruction
non-linearly.

Also remove both jump and prune point marking for instruction right
after unconditional jumps, as program flow can get to the instruction
right after unconditional jump instruction only if there is a jump to
that instruction from somewhere else in the program. In such case we'll
mark such instruction as prune/jump point because it's a destination of
a jump.

This change has no changes in terms of number of instructions or states
processes across Cilium and selftests programs.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/r/20221206233345.438540-4-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Stable-dep-of: 3feb263bb516 ("bpf: handle ldimm64 properly in check_cfg()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:10:29 +01:00