After the commit 63edbaa48a57 ("x86/cpu/topology: Add support for the
AMD 0x80000026 leaf"), the topolgy_logical_die_id() function returns
the logical Core Chiplet Die (CCD) ID instead of the logical socket
ID.
Since this is currently used to set MSR_AMD_CPPC_ENABLE, which needs
to be set on any one of the threads of the socket, it is prudent to
use topology_logical_package_id() in place of
topology_logical_die_id().
Fixes: 63edbaa48a57 ("x86/cpu/topology: Add support for the AMD 0x80000026 leaf")
cc: stable(a)vger.kernel.org # 6.10
Signed-off-by: Gautham R. Shenoy <gautham.shenoy(a)amd.com>
Tested-by: Dhananjay Ugwekar <Dhananjay.Ugwekar(a)amd.com>
Link: https://lore.kernel.org/lkml/20240801124509.3650-1-Dhananjay.Ugwekar@amd.co…
Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar(a)amd.com>
---
drivers/cpufreq/amd-pstate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 358bd88cd0c5..89bda7a2bb8d 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -321,7 +321,7 @@ static inline int pstate_enable(bool enable)
return 0;
for_each_present_cpu(cpu) {
- unsigned long logical_id = topology_logical_die_id(cpu);
+ unsigned long logical_id = topology_logical_package_id(cpu);
if (test_bit(logical_id, &logical_proc_id_mask))
continue;
--
2.34.1
Commit 8c61291fd850 ("mm: fix incorrect vbq reference in
purge_fragmented_block") extended the 'vmap_block' structure to contain
a 'cpu' field which is set at allocation time to the id of the
initialising CPU.
When a new 'vmap_block' is being instantiated by new_vmap_block(), the
partially initialised structure is added to the local 'vmap_block_queue'
xarray before the 'cpu' field has been initialised. If another CPU is
concurrently walking the xarray (e.g. via vm_unmap_aliases()), then it
may perform an out-of-bounds access to the remote queue thanks to an
uninitialised index.
This has been observed as UBSAN errors in Android:
| Internal error: UBSAN: array index out of bounds: 00000000f2005512 [#1] PREEMPT SMP
|
| Call trace:
| purge_fragmented_block+0x204/0x21c
| _vm_unmap_aliases+0x170/0x378
| vm_unmap_aliases+0x1c/0x28
| change_memory_common+0x1dc/0x26c
| set_memory_ro+0x18/0x24
| module_enable_ro+0x98/0x238
| do_init_module+0x1b0/0x310
Move the initialisation of 'vb->cpu' in new_vmap_block() ahead of the
addition to the xarray.
Cc: Zhaoyang Huang <zhaoyang.huang(a)unisoc.com>
Cc: Hailong.Liu <hailong.liu(a)oppo.com>
Cc: Uladzislau Rezki (Sony) <urezki(a)gmail.com>
Cc: Baoquan He <bhe(a)redhat.com>
Cc: Christoph Hellwig <hch(a)infradead.org>
Cc: Lorenzo Stoakes <lstoakes(a)gmail.com>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Andrew Morton <akpm(a)linux-foundation.org>
Cc: <stable(a)vger.kernel.org>
Fixes: 8c61291fd850 ("mm: fix incorrect vbq reference in purge_fragmented_block")
Signed-off-by: Will Deacon <will(a)kernel.org>
---
I _think_ the insertion into the free list is ok, as the vb shouldn't be
considered for purging if it's clean. It would be great if somebody more
familiar with this code could confirm either way, however.
mm/vmalloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 6b783baf12a1..64c0a2c8a73c 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2626,6 +2626,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask)
vb->dirty_max = 0;
bitmap_set(vb->used_map, 0, (1UL << order));
INIT_LIST_HEAD(&vb->free_list);
+ vb->cpu = raw_smp_processor_id();
xa = addr_to_vb_xa(va->va_start);
vb_idx = addr_to_vb_idx(va->va_start);
@@ -2642,7 +2643,6 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask)
* integrity together with list_for_each_rcu from read
* side.
*/
- vb->cpu = raw_smp_processor_id();
vbq = per_cpu_ptr(&vmap_block_queue, vb->cpu);
spin_lock(&vbq->lock);
list_add_tail_rcu(&vb->free_list, &vbq->free);
--
2.46.0.76.ge559c4bf1a-goog
This is the start of the stable review cycle for the 6.1.104 release.
There are 86 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Fri, 09 Aug 2024 15:00:24 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.104-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 6.1.104-rc1
Liu Jing <liujing(a)cmss.chinamobile.com>
selftests: mptcp: always close input's FD if opened
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix duplicate data handling
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
mptcp: pm: only set request_bkup flag when sending MP_PRIO
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix bad RCVPRUNED mib accounting
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix NL PM announced address accounting
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
mptcp: distinguish rcv vs sent backup flag in requests
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix user-space PM announced address accounting
Heiner Kallweit <hkallweit1(a)gmail.com>
r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY
Ma Ke <make24(a)iscas.ac.cn>
net: usb: sr9700: fix uninitialized variable use in sr_mdio_read
Nikita Zhandarovich <n.zhandarovich(a)fintech.ru>
drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
Zack Rusin <zack.rusin(a)broadcom.com>
drm/vmwgfx: Fix a deadlock in dma buf fence polling
Edmund Raile <edmund.raile(a)protonmail.com>
Revert "ALSA: firewire-lib: operate for period elapse event in process context"
Edmund Raile <edmund.raile(a)protonmail.com>
Revert "ALSA: firewire-lib: obsolete workqueue for period update"
Mavroudis Chatzilazaridis <mavchatz(a)protonmail.com>
ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G
Takashi Iwai <tiwai(a)suse.de>
ALSA: usb-audio: Correct surround channels in UAC1 channel map
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
mptcp: sched: check both directions for backup
Al Viro <viro(a)zeniv.linux.org.uk>
protect the fetch of ->fd[fd] in do_dup2() from mispredictions
Naohiro Aota <naohiro.aota(a)wdc.com>
btrfs: zoned: fix zone_unusable accounting on making block group read-write again
Tatsunosuke Tobita <tatsunosuke.tobita(a)wacom.com>
HID: wacom: Modify pen IDs
Patryk Duda <patrykd(a)google.com>
platform/chrome: cros_ec_proto: Lock device when updating MKBP version
Alice Ryhl <aliceryhl(a)google.com>
rust: SHADOW_CALL_STACK is incompatible with Rust
Will Deacon <will(a)kernel.org>
arm64: jump_label: Ensure patched jump_labels are visible to all CPUs
Zhe Qiao <qiaozhe(a)iscas.ac.cn>
riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error()
Maciej Żenczykowski <maze(a)google.com>
ipv6: fix ndisc_is_useropt() handling for PIO
Shahar Shitrit <shshitrit(a)nvidia.com>
net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys
Moshe Shemesh <moshe(a)nvidia.com>
net/mlx5: Fix missing lock on sync reset reload
Mark Bloch <mbloch(a)nvidia.com>
net/mlx5: Lag, don't use the hardcoded value of the first port
Kuniyuki Iwashima <kuniyu(a)amazon.com>
netfilter: iptables: Fix potential null-ptr-deref in ip6table_nat_table_init().
Kuniyuki Iwashima <kuniyu(a)amazon.com>
netfilter: iptables: Fix null-ptr-deref in iptable_nat_table_init().
Takashi Iwai <tiwai(a)suse.de>
ALSA: hda: Conditionally use snooping for AMD HDMI
Dan Carpenter <dan.carpenter(a)linaro.org>
net: mvpp2: Don't re-use loop iterator
Suraj Kandpal <suraj.kandpal(a)intel.com>
drm/i915/hdcp: Fix HDCP2_STREAM_STATUS macro
Alexandra Winter <wintera(a)linux.ibm.com>
net/iucv: fix use after free in iucv_sock_close()
Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog
Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
ice: replace synchronize_rcu with synchronize_net
Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
ice: don't busy wait for Rx queue disable in ice_qp_dis()
Michal Kubiak <michal.kubiak(a)intel.com>
ice: respect netif readiness in AF_XDP ZC related ndo's
Kuniyuki Iwashima <kuniyu(a)amazon.com>
rtnetlink: Don't ignore IFLA_TARGET_NETNSID when ifname is specified in rtnl_dellink().
Andy Chiu <andy.chiu(a)sifive.com>
net: axienet: start napi before enabling Rx/Tx
Luiz Augusto von Dentz <luiz.von.dentz(a)intel.com>
Bluetooth: hci_sync: Fix suspending with wrong filter policy
songxiebing <songxiebing(a)kylinos.cn>
ALSA: hda: conexant: Fix headset auto detect fail in the polling mode
Takashi Iwai <tiwai(a)suse.de>
ALSA: hda: conexant: Reduce CONFIG_PM dependencies
Eric Dumazet <edumazet(a)google.com>
sched: act_ct: take care of padding in struct zones_ht_key
Ian Forbes <ian.forbes(a)broadcom.com>
drm/vmwgfx: Trigger a modeset when the screen moves
Ian Forbes <ian.forbes(a)broadcom.com>
drm/vmwgfx: Fix overlay when using Screen Targets
Danilo Krummrich <dakr(a)kernel.org>
drm/nouveau: prime: fix refcount underflow
Basavaraj Natikar <Basavaraj.Natikar(a)amd.com>
HID: amd_sfh: Move sensor discovery before HID device initialization
Basavaraj Natikar <Basavaraj.Natikar(a)amd.com>
HID: amd_sfh: Split sensor and HID initialization
Basavaraj Natikar <Basavaraj.Natikar(a)amd.com>
HID: amd_sfh: Remove duplicate cleanup
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: dts: loongson: Fix ls2k1000-rtc interrupt
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: dts: loongson: Fix liointc IRQ polarity
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a
Binbin Zhou <zhoubinbin(a)loongson.cn>
MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000
Imre Deak <imre.deak(a)intel.com>
drm/i915/dp: Don't switch the LTTPR mode on an active link
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Remove DRM_CONNECTOR_POLL_HPD
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Move connector to modesetting code
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Various improvements to the connector
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Use USB timeout constant when reading EDID
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Test pixel limit in mode-config's mode-valid function
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Rename struct udl_drm_connector to struct udl_connector
Herve Codina <herve.codina(a)bootlin.com>
irqdomain: Fixed unbalanced fwnode get and put
Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
irqdomain: Use return value of strreplace()
Jaegeuk Kim <jaegeuk(a)kernel.org>
f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid
Zhiguo Niu <zhiguo.niu(a)unisoc.com>
f2fs: fix to avoid use SSR allocate when do defragment
Li Zhijian <lizhijian(a)fujitsu.com>
mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist()
Lucas Stach <l.stach(a)pengutronix.de>
mm: page_alloc: control latency caused by zone PCP draining
Huang Ying <ying.huang(a)intel.com>
mm: restrict the pcp batch scale factor to avoid too long latency
Thomas Weißschuh <linux(a)weissschuh.net>
leds: triggers: Flush pending brightness before activating trigger
Hans de Goede <hdegoede(a)redhat.com>
leds: trigger: Call synchronize_rcu() before calling trig->activate()
Heiner Kallweit <hkallweit1(a)gmail.com>
leds: trigger: Store brightness set by led_trigger_event()
Heiner Kallweit <hkallweit1(a)gmail.com>
leds: trigger: Remove unused function led_trigger_rename_static()
Javier Carrasco <javier.carrasco.cruz(a)gmail.com>
cpufreq: qcom-nvmem: fix memory leaks in probe error paths
Stephan Gerhold <stephan.gerhold(a)kernkonzept.com>
cpufreq: qcom-nvmem: Simplify driver data allocation
Yangtao Li <frank.li(a)vivo.com>
cpufreq: qcom-nvmem: Convert to platform remove callback returning void
Zhang Yi <yi.zhang(a)huawei.com>
ext4: check the extent status again before inserting delalloc block
Zhang Yi <yi.zhang(a)huawei.com>
ext4: factor out a common helper to query extent map
Zhang Yi <yi.zhang(a)huawei.com>
ext4: convert to exclusive lock while inserting delalloc extents
Zhang Yi <yi.zhang(a)huawei.com>
ext4: refactor ext4_da_map_blocks()
Baokun Li <libaokun1(a)huawei.com>
ext4: make ext4_es_insert_extent() return void
Thomas Weißschuh <linux(a)weissschuh.net>
sysctl: always initialize i_uid/i_gid
Thomas Weißschuh <linux(a)weissschuh.net>
sysctl: treewide: drop unused argument ctl_table_root::set_ownership(table)
Alexey Gladkov <legion(a)kernel.org>
sysctl: allow to change limits for posix messages queues
Alexey Gladkov <legion(a)kernel.org>
sysctl: allow change system v ipc sysctls inside ipc namespace
Krishna Kurapati <quic_kriskura(a)quicinc.com>
arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB
Krishna Kurapati <quic_kriskura(a)quicinc.com>
arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB
Dmitry Baryshkov <dmitry.baryshkov(a)linaro.org>
arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings
-------------
Diffstat:
Makefile | 4 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 36 +++---
arch/arm64/include/asm/jump_label.h | 1 +
arch/arm64/kernel/jump_label.c | 11 +-
arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi | 84 +++++++++----
arch/riscv/mm/fault.c | 17 +--
drivers/cpufreq/qcom-cpufreq-nvmem.c | 56 ++++-----
.../gpu/drm/i915/display/intel_dp_link_training.c | 54 +++++++-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6 +-
drivers/gpu/drm/i915/display/intel_hdcp_regs.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_prime.c | 3 +-
drivers/gpu/drm/udl/Makefile | 2 +-
drivers/gpu/drm/udl/udl_connector.c | 139 ---------------------
drivers/gpu/drm/udl/udl_connector.h | 15 ---
drivers/gpu/drm/udl/udl_drv.h | 11 ++
drivers/gpu/drm/udl/udl_modeset.c | 135 ++++++++++++++++++++
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 17 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 29 ++++-
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 55 ++++----
drivers/hid/wacom_wac.c | 3 +-
drivers/leds/led-triggers.c | 32 ++---
drivers/leds/trigger/ledtrig-timer.c | 5 -
drivers/net/ethernet/intel/ice/ice_txrx.c | 2 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 19 +--
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 2 +-
drivers/net/ethernet/realtek/r8169_main.c | 8 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
drivers/net/usb/sr9700.c | 11 +-
drivers/platform/chrome/cros_ec_proto.c | 2 +
fs/btrfs/block-group.c | 13 +-
fs/btrfs/extent-tree.c | 3 +-
fs/btrfs/free-space-cache.c | 4 +-
fs/btrfs/space-info.c | 2 +-
fs/btrfs/space-info.h | 1 +
fs/ext4/extents.c | 5 +-
fs/ext4/extents_status.c | 14 +--
fs/ext4/extents_status.h | 6 +-
fs/ext4/inode.c | 115 +++++++++--------
fs/f2fs/segment.c | 4 +-
fs/file.c | 1 +
fs/proc/proc_sysctl.c | 8 +-
include/linux/leds.h | 30 +++--
include/linux/sysctl.h | 1 -
include/trace/events/btrfs.h | 8 ++
include/trace/events/mptcp.h | 2 +-
init/Kconfig | 1 +
ipc/ipc_sysctl.c | 36 +++++-
ipc/mq_sysctl.c | 35 ++++++
kernel/irq/irqdomain.c | 11 +-
mm/Kconfig | 11 ++
mm/page_alloc.c | 19 ++-
net/bluetooth/hci_sync.c | 21 ++++
net/core/rtnetlink.c | 2 +-
net/ipv4/netfilter/iptable_nat.c | 18 +--
net/ipv6/ndisc.c | 34 ++---
net/ipv6/netfilter/ip6table_nat.c | 14 ++-
net/iucv/af_iucv.c | 4 +-
net/mptcp/options.c | 2 +-
net/mptcp/pm_netlink.c | 28 +++--
net/mptcp/protocol.c | 18 +--
net/mptcp/protocol.h | 1 +
net/mptcp/subflow.c | 17 ++-
net/sched/act_ct.c | 4 +-
net/sysctl_net.c | 1 -
sound/firewire/amdtp-stream.c | 38 +++---
sound/firewire/amdtp-stream.h | 1 +
sound/pci/hda/hda_controller.h | 2 +-
sound/pci/hda/hda_intel.c | 10 +-
sound/pci/hda/patch_conexant.c | 58 ++-------
sound/pci/hda/patch_realtek.c | 1 +
sound/usb/stream.c | 4 +-
tools/testing/selftests/net/mptcp/mptcp_connect.c | 8 +-
77 files changed, 811 insertions(+), 590 deletions(-)
This is the start of the stable review cycle for the 6.1.104 release.
There are 86 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sat, 10 Aug 2024 09:11:02 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.104-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 6.1.104-rc2
Alexander Maltsev <keltar.gw(a)gmail.com>
netfilter: ipset: Add list flush to cancel_gc
Liu Jing <liujing(a)cmss.chinamobile.com>
selftests: mptcp: always close input's FD if opened
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix duplicate data handling
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
mptcp: pm: only set request_bkup flag when sending MP_PRIO
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix bad RCVPRUNED mib accounting
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix NL PM announced address accounting
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
mptcp: distinguish rcv vs sent backup flag in requests
Paolo Abeni <pabeni(a)redhat.com>
mptcp: fix user-space PM announced address accounting
Heiner Kallweit <hkallweit1(a)gmail.com>
r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY
Ma Ke <make24(a)iscas.ac.cn>
net: usb: sr9700: fix uninitialized variable use in sr_mdio_read
Nikita Zhandarovich <n.zhandarovich(a)fintech.ru>
drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
Zack Rusin <zack.rusin(a)broadcom.com>
drm/vmwgfx: Fix a deadlock in dma buf fence polling
Edmund Raile <edmund.raile(a)protonmail.com>
Revert "ALSA: firewire-lib: operate for period elapse event in process context"
Edmund Raile <edmund.raile(a)protonmail.com>
Revert "ALSA: firewire-lib: obsolete workqueue for period update"
Mavroudis Chatzilazaridis <mavchatz(a)protonmail.com>
ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G
Takashi Iwai <tiwai(a)suse.de>
ALSA: usb-audio: Correct surround channels in UAC1 channel map
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
mptcp: sched: check both directions for backup
Al Viro <viro(a)zeniv.linux.org.uk>
protect the fetch of ->fd[fd] in do_dup2() from mispredictions
Naohiro Aota <naohiro.aota(a)wdc.com>
btrfs: zoned: fix zone_unusable accounting on making block group read-write again
Tatsunosuke Tobita <tatsunosuke.tobita(a)wacom.com>
HID: wacom: Modify pen IDs
Patryk Duda <patrykd(a)google.com>
platform/chrome: cros_ec_proto: Lock device when updating MKBP version
Alice Ryhl <aliceryhl(a)google.com>
rust: SHADOW_CALL_STACK is incompatible with Rust
Will Deacon <will(a)kernel.org>
arm64: jump_label: Ensure patched jump_labels are visible to all CPUs
Zhe Qiao <qiaozhe(a)iscas.ac.cn>
riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error()
Maciej Żenczykowski <maze(a)google.com>
ipv6: fix ndisc_is_useropt() handling for PIO
Shahar Shitrit <shshitrit(a)nvidia.com>
net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys
Moshe Shemesh <moshe(a)nvidia.com>
net/mlx5: Fix missing lock on sync reset reload
Mark Bloch <mbloch(a)nvidia.com>
net/mlx5: Lag, don't use the hardcoded value of the first port
Kuniyuki Iwashima <kuniyu(a)amazon.com>
netfilter: iptables: Fix potential null-ptr-deref in ip6table_nat_table_init().
Kuniyuki Iwashima <kuniyu(a)amazon.com>
netfilter: iptables: Fix null-ptr-deref in iptable_nat_table_init().
Takashi Iwai <tiwai(a)suse.de>
ALSA: hda: Conditionally use snooping for AMD HDMI
Dan Carpenter <dan.carpenter(a)linaro.org>
net: mvpp2: Don't re-use loop iterator
Suraj Kandpal <suraj.kandpal(a)intel.com>
drm/i915/hdcp: Fix HDCP2_STREAM_STATUS macro
Alexandra Winter <wintera(a)linux.ibm.com>
net/iucv: fix use after free in iucv_sock_close()
Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog
Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
ice: replace synchronize_rcu with synchronize_net
Maciej Fijalkowski <maciej.fijalkowski(a)intel.com>
ice: don't busy wait for Rx queue disable in ice_qp_dis()
Michal Kubiak <michal.kubiak(a)intel.com>
ice: respect netif readiness in AF_XDP ZC related ndo's
Kuniyuki Iwashima <kuniyu(a)amazon.com>
rtnetlink: Don't ignore IFLA_TARGET_NETNSID when ifname is specified in rtnl_dellink().
Andy Chiu <andy.chiu(a)sifive.com>
net: axienet: start napi before enabling Rx/Tx
Luiz Augusto von Dentz <luiz.von.dentz(a)intel.com>
Bluetooth: hci_sync: Fix suspending with wrong filter policy
songxiebing <songxiebing(a)kylinos.cn>
ALSA: hda: conexant: Fix headset auto detect fail in the polling mode
Takashi Iwai <tiwai(a)suse.de>
ALSA: hda: conexant: Reduce CONFIG_PM dependencies
Eric Dumazet <edumazet(a)google.com>
sched: act_ct: take care of padding in struct zones_ht_key
Ian Forbes <ian.forbes(a)broadcom.com>
drm/vmwgfx: Trigger a modeset when the screen moves
Ian Forbes <ian.forbes(a)broadcom.com>
drm/vmwgfx: Fix overlay when using Screen Targets
Danilo Krummrich <dakr(a)kernel.org>
drm/nouveau: prime: fix refcount underflow
Basavaraj Natikar <Basavaraj.Natikar(a)amd.com>
HID: amd_sfh: Move sensor discovery before HID device initialization
Basavaraj Natikar <Basavaraj.Natikar(a)amd.com>
HID: amd_sfh: Split sensor and HID initialization
Basavaraj Natikar <Basavaraj.Natikar(a)amd.com>
HID: amd_sfh: Remove duplicate cleanup
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: dts: loongson: Fix ls2k1000-rtc interrupt
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: dts: loongson: Fix liointc IRQ polarity
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a
Binbin Zhou <zhoubinbin(a)loongson.cn>
MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000
Imre Deak <imre.deak(a)intel.com>
drm/i915/dp: Don't switch the LTTPR mode on an active link
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Remove DRM_CONNECTOR_POLL_HPD
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Move connector to modesetting code
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Various improvements to the connector
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Use USB timeout constant when reading EDID
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Test pixel limit in mode-config's mode-valid function
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/udl: Rename struct udl_drm_connector to struct udl_connector
Herve Codina <herve.codina(a)bootlin.com>
irqdomain: Fixed unbalanced fwnode get and put
Jaegeuk Kim <jaegeuk(a)kernel.org>
f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid
Zhiguo Niu <zhiguo.niu(a)unisoc.com>
f2fs: fix to avoid use SSR allocate when do defragment
Li Zhijian <lizhijian(a)fujitsu.com>
mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist()
Lucas Stach <l.stach(a)pengutronix.de>
mm: page_alloc: control latency caused by zone PCP draining
Huang Ying <ying.huang(a)intel.com>
mm: restrict the pcp batch scale factor to avoid too long latency
Thomas Weißschuh <linux(a)weissschuh.net>
leds: triggers: Flush pending brightness before activating trigger
Hans de Goede <hdegoede(a)redhat.com>
leds: trigger: Call synchronize_rcu() before calling trig->activate()
Heiner Kallweit <hkallweit1(a)gmail.com>
leds: trigger: Store brightness set by led_trigger_event()
Heiner Kallweit <hkallweit1(a)gmail.com>
leds: trigger: Remove unused function led_trigger_rename_static()
Javier Carrasco <javier.carrasco.cruz(a)gmail.com>
cpufreq: qcom-nvmem: fix memory leaks in probe error paths
Stephan Gerhold <stephan.gerhold(a)kernkonzept.com>
cpufreq: qcom-nvmem: Simplify driver data allocation
Yangtao Li <frank.li(a)vivo.com>
cpufreq: qcom-nvmem: Convert to platform remove callback returning void
Zhang Yi <yi.zhang(a)huawei.com>
ext4: check the extent status again before inserting delalloc block
Zhang Yi <yi.zhang(a)huawei.com>
ext4: factor out a common helper to query extent map
Zhang Yi <yi.zhang(a)huawei.com>
ext4: convert to exclusive lock while inserting delalloc extents
Zhang Yi <yi.zhang(a)huawei.com>
ext4: refactor ext4_da_map_blocks()
Baokun Li <libaokun1(a)huawei.com>
ext4: make ext4_es_insert_extent() return void
Thomas Weißschuh <linux(a)weissschuh.net>
sysctl: always initialize i_uid/i_gid
Thomas Weißschuh <linux(a)weissschuh.net>
sysctl: treewide: drop unused argument ctl_table_root::set_ownership(table)
Alexey Gladkov <legion(a)kernel.org>
sysctl: allow to change limits for posix messages queues
Alexey Gladkov <legion(a)kernel.org>
sysctl: allow change system v ipc sysctls inside ipc namespace
Krishna Kurapati <quic_kriskura(a)quicinc.com>
arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB
Krishna Kurapati <quic_kriskura(a)quicinc.com>
arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB
Dmitry Baryshkov <dmitry.baryshkov(a)linaro.org>
arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings
-------------
Diffstat:
Makefile | 4 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 36 +++---
arch/arm64/include/asm/jump_label.h | 1 +
arch/arm64/kernel/jump_label.c | 11 +-
arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi | 84 +++++++++----
arch/riscv/mm/fault.c | 17 +--
drivers/cpufreq/qcom-cpufreq-nvmem.c | 56 ++++-----
.../gpu/drm/i915/display/intel_dp_link_training.c | 54 +++++++-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6 +-
drivers/gpu/drm/i915/display/intel_hdcp_regs.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_prime.c | 3 +-
drivers/gpu/drm/udl/Makefile | 2 +-
drivers/gpu/drm/udl/udl_connector.c | 139 ---------------------
drivers/gpu/drm/udl/udl_connector.h | 15 ---
drivers/gpu/drm/udl/udl_drv.h | 11 ++
drivers/gpu/drm/udl/udl_modeset.c | 135 ++++++++++++++++++++
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 17 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 29 ++++-
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 55 ++++----
drivers/hid/wacom_wac.c | 3 +-
drivers/leds/led-triggers.c | 32 ++---
drivers/leds/trigger/ledtrig-timer.c | 5 -
drivers/net/ethernet/intel/ice/ice_txrx.c | 2 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 19 +--
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 2 +-
drivers/net/ethernet/realtek/r8169_main.c | 8 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
drivers/net/usb/sr9700.c | 11 +-
drivers/platform/chrome/cros_ec_proto.c | 2 +
fs/btrfs/block-group.c | 13 +-
fs/btrfs/extent-tree.c | 3 +-
fs/btrfs/free-space-cache.c | 4 +-
fs/btrfs/space-info.c | 2 +-
fs/btrfs/space-info.h | 1 +
fs/ext4/extents.c | 5 +-
fs/ext4/extents_status.c | 14 +--
fs/ext4/extents_status.h | 6 +-
fs/ext4/inode.c | 115 +++++++++--------
fs/f2fs/segment.c | 4 +-
fs/file.c | 1 +
fs/proc/proc_sysctl.c | 8 +-
include/linux/leds.h | 30 +++--
include/linux/sysctl.h | 1 -
include/trace/events/btrfs.h | 8 ++
include/trace/events/mptcp.h | 2 +-
init/Kconfig | 1 +
ipc/ipc_sysctl.c | 36 +++++-
ipc/mq_sysctl.c | 35 ++++++
kernel/irq/irqdomain.c | 7 +-
mm/Kconfig | 11 ++
mm/page_alloc.c | 19 ++-
net/bluetooth/hci_sync.c | 21 ++++
net/core/rtnetlink.c | 2 +-
net/ipv4/netfilter/iptable_nat.c | 18 +--
net/ipv6/ndisc.c | 34 ++---
net/ipv6/netfilter/ip6table_nat.c | 14 ++-
net/iucv/af_iucv.c | 4 +-
net/mptcp/options.c | 2 +-
net/mptcp/pm_netlink.c | 28 +++--
net/mptcp/protocol.c | 18 +--
net/mptcp/protocol.h | 1 +
net/mptcp/subflow.c | 17 ++-
net/netfilter/ipset/ip_set_list_set.c | 3 +
net/sched/act_ct.c | 4 +-
net/sysctl_net.c | 1 -
sound/firewire/amdtp-stream.c | 38 +++---
sound/firewire/amdtp-stream.h | 1 +
sound/pci/hda/hda_controller.h | 2 +-
sound/pci/hda/hda_intel.c | 10 +-
sound/pci/hda/patch_conexant.c | 58 ++-------
sound/pci/hda/patch_realtek.c | 1 +
sound/usb/stream.c | 4 +-
tools/testing/selftests/net/mptcp/mptcp_connect.c | 8 +-
78 files changed, 813 insertions(+), 587 deletions(-)
Unaccepted memory is considered unusable free memory, which is not
counted as free on the zone watermark check. This causes
get_page_from_freelist() to accept more memory to hit the high
watermark, but it creates problems in the reclaim path.
The reclaim path encounters a failed zone watermark check and attempts
to reclaim memory. This is usually successful, but if there is little or
no reclaimable memory, it can result in endless reclaim with little to
no progress. This can occur early in the boot process, just after start
of the init process when the only reclaimable memory is the page cache
of the init executable and its libraries.
Make unaccepted memory free from watermark check point of view. This way
unaccepted memory will never be the trigger of memory reclaim.
Accept more memory in the get_page_from_freelist() if needed.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Reported-by: Jianxiong Gao <jxgao(a)google.com>
Acked-by: David Hildenbrand <david(a)redhat.com>
Fixes: dcdfdd40fa82 ("mm: Add support for unaccepted memory")
Cc: stable(a)vger.kernel.org # v6.5+
---
mm/page_alloc.c | 42 ++++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 5b5f99f4b20a..a9a89980f3f2 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -287,7 +287,7 @@ EXPORT_SYMBOL(nr_online_nodes);
static bool page_contains_unaccepted(struct page *page, unsigned int order);
static void accept_page(struct page *page, unsigned int order);
-static bool try_to_accept_memory(struct zone *zone, unsigned int order);
+static bool cond_accept_memory(struct zone *zone, unsigned int order);
static inline bool has_unaccepted_memory(void);
static bool __free_unaccepted(struct page *page);
@@ -3108,9 +3108,6 @@ static inline long __zone_watermark_unusable_free(struct zone *z,
if (!(alloc_flags & ALLOC_CMA))
unusable_free += zone_page_state(z, NR_FREE_CMA_PAGES);
#endif
-#ifdef CONFIG_UNACCEPTED_MEMORY
- unusable_free += zone_page_state(z, NR_UNACCEPTED);
-#endif
return unusable_free;
}
@@ -3404,6 +3401,8 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags,
}
}
+ cond_accept_memory(zone, order);
+
/*
* Detect whether the number of free pages is below high
* watermark. If so, we will decrease pcp->high and free
@@ -3429,10 +3428,8 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags,
gfp_mask)) {
int ret;
- if (has_unaccepted_memory()) {
- if (try_to_accept_memory(zone, order))
- goto try_this_zone;
- }
+ if (cond_accept_memory(zone, order))
+ goto try_this_zone;
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
/*
@@ -3486,10 +3483,8 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags,
return page;
} else {
- if (has_unaccepted_memory()) {
- if (try_to_accept_memory(zone, order))
- goto try_this_zone;
- }
+ if (cond_accept_memory(zone, order))
+ goto try_this_zone;
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
/* Try again if zone has deferred pages */
@@ -6988,9 +6983,6 @@ static bool try_to_accept_memory_one(struct zone *zone)
struct page *page;
bool last;
- if (list_empty(&zone->unaccepted_pages))
- return false;
-
spin_lock_irqsave(&zone->lock, flags);
page = list_first_entry_or_null(&zone->unaccepted_pages,
struct page, lru);
@@ -7016,23 +7008,29 @@ static bool try_to_accept_memory_one(struct zone *zone)
return true;
}
-static bool try_to_accept_memory(struct zone *zone, unsigned int order)
+static bool cond_accept_memory(struct zone *zone, unsigned int order)
{
long to_accept;
- int ret = false;
+ bool ret = false;
+
+ if (!has_unaccepted_memory())
+ return false;
+
+ if (list_empty(&zone->unaccepted_pages))
+ return false;
/* How much to accept to get to high watermark? */
to_accept = high_wmark_pages(zone) -
(zone_page_state(zone, NR_FREE_PAGES) -
- __zone_watermark_unusable_free(zone, order, 0));
+ __zone_watermark_unusable_free(zone, order, 0) -
+ zone_page_state(zone, NR_UNACCEPTED));
- /* Accept at least one page */
- do {
+ while (to_accept > 0) {
if (!try_to_accept_memory_one(zone))
break;
ret = true;
to_accept -= MAX_ORDER_NR_PAGES;
- } while (to_accept > 0);
+ }
return ret;
}
@@ -7075,7 +7073,7 @@ static void accept_page(struct page *page, unsigned int order)
{
}
-static bool try_to_accept_memory(struct zone *zone, unsigned int order)
+static bool cond_accept_memory(struct zone *zone, unsigned int order)
{
return false;
}
--
2.43.0
The patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 1ac5167b3a90c9820daa64cc65e319b2d958d686
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2024081209-faculty-overplant-91c9@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
1ac5167b3a90 ("drm/i915/gem: Adjust vma offset for framebuffer mmap offset")
274d4b96b12f ("drm/i915: Fix a NULL vs IS_ERR() bug")
eaee1c085863 ("drm/i915: Add a function to mmap framebuffer obj")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1ac5167b3a90c9820daa64cc65e319b2d958d686 Mon Sep 17 00:00:00 2001
From: Andi Shyti <andi.shyti(a)linux.intel.com>
Date: Fri, 2 Aug 2024 10:38:49 +0200
Subject: [PATCH] drm/i915/gem: Adjust vma offset for framebuffer mmap offset
When mapping a framebuffer object, the virtual memory area (VMA)
offset ('vm_pgoff') should be adjusted by the start of the
'vma_node' associated with the object. This ensures that the VMA
offset is correctly aligned with the corresponding offset within
the GGTT aperture.
Increment vm_pgoff by the start of the vma_node with the offset=
provided by the user.
Suggested-by: Chris Wilson <chris.p.wilson(a)linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti(a)linux.intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt(a)intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi(a)intel.com>
Cc: <stable(a)vger.kernel.org> # v4.9+
[Joonas: Add Cc: stable]
Signed-off-by: Joonas Lahtinen <joonas.lahtinen(a)linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240802083850.103694-2-andi.…
(cherry picked from commit 60a2066c50058086510c91f404eb582029650970)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen(a)linux.intel.com>
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index a2195e28b625..ce10dd259812 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -1084,6 +1084,8 @@ int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct vm_area_struct *vma
mmo = mmap_offset_attach(obj, mmap_type, NULL);
if (IS_ERR(mmo))
return PTR_ERR(mmo);
+
+ vma->vm_pgoff += drm_vma_node_start(&mmo->vma_node);
}
/*