Skip to content

Commit b0a8bf4

Browse files
committed
Merge tag 'v6.1.123' into orange-pi-6.1-rk35xx
This is the 6.1.123 stable release * tag 'v6.1.123' of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux: Linux 6.1.123 ALSA: hda/realtek: Fix spelling mistake "Firelfy" -> "Firefly" Revert "rcu-tasks: Fix access non-existent percpu rtpcp variable in rcu_tasks_need_gpcb()" nfsd: cancel nfsd_shrinker_work using sync mode in nfs4_state_shutdown_net btrfs: sysfs: fix direct super block member reads btrfs: avoid monopolizing a core when activating a swap file power: supply: gpio-charger: Fix set charge current limits i2c: microchip-core: fix "ghost" detections i2c: imx: add imx7d compatible string for applying erratum ERR007805 i2c: microchip-core: actually use repeated sends io_uring/sqpoll: fix sqpoll error handling races tracing: Prevent bad count for tracing_cpumask_write tracing: Constify string literal data member in struct trace_event_call freezer, sched: Report frozen tasks as 'D' instead of 'R' sched/core: Report correct state for TASK_IDLE | TASK_FREEZABLE pmdomain: core: Add missing put_device() ALSA: hda/realtek: fix micmute LEDs don't work on HP Laptops ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook X G1i bpf: Check validity of link->type in bpf_link_show_fdinfo() net/mlx5e: Don't call cleanup on profile rollback failure MIPS: mipsregs: Set proper ISA level for virt extensions MIPS: Probe toolchain support of -msym32 vmalloc: fix accounting with i915 blk-mq: register cpuhp callback after hctx is added to xarray table virtio-blk: don't keep queue frozen during system suspend drm/dp_mst: Ensure mst_primary pointer is valid in drm_dp_mst_handle_up_req() scsi: storvsc: Do not flag MAINTENANCE_IN return of SRB_STATUS_DATA_OVERRUN as an error scsi: mpt3sas: Diag-Reset when Doorbell-In-Use bit is set during driver load time platform/x86: asus-nb-wmi: Ignore unknown event 0xCF regmap: Use correct format specifier for logging range errors smb: server: Fix building with GCC 15 ALSA: hda/conexant: fix Z60MR100 startup pop issue scsi: megaraid_sas: Fix for a potential deadlock scsi: qla1280: Fix hw revision numbering for ISP1020/1040 watchdog: it87_wdt: add PWRGD enable quirk for Qotom QCML04 tracing/kprobe: Make trace_kprobe's module callback called after jump_label update stddef: make __struct_group() UAPI C++-friendly powerpc/pseries/vas: Add close() callback in vas_vm_ops struct mtd: rawnand: fix double free in atmel_pmecc_create_user() dmaengine: at_xdmac: avoid null_prt_deref in at_xdmac_prep_dma_memset dmaengine: apple-admac: Avoid accessing registers in probe dmaengine: tegra: Return correct DMA status when paused dmaengine: dw: Select only supported masters for ACPI devices dmaengine: mv_xor: fix child node refcount handling in early exit phy: rockchip: naneng-combphy: fix phy reset phy: usb: Toggle the PHY power during init phy: core: Fix that API devm_phy_destroy() fails to destroy the phy phy: core: Fix that API devm_of_phy_provider_unregister() fails to unregister the phy provider phy: core: Fix that API devm_phy_put() fails to release the phy phy: core: Fix an OF node refcount leakage in of_phy_provider_lookup() phy: core: Fix an OF node refcount leakage in _of_phy_get() phy: qcom-qmp: Fix register name in RX Lane config of SC8280XP mtd: rawnand: arasan: Fix missing de-registration of NAND mtd: rawnand: arasan: Fix double assertion of chip-select mtd: diskonchip: Cast an operand to prevent potential overflow nfsd: restore callback functionality for NFSv4.0 bpf: Check negative offsets in __bpf_skb_min_len() tcp_bpf: Add sk_rmem_alloc related logic for tcp_bpf ingress redirection tcp_bpf: Charge receive socket buffer in bpf_tcp_ingress() mm/vmstat: fix a W=1 clang compiler warning media: dvb-frontends: dib3000mb: fix uninit-value in dib3000_write_reg Signed-off-by: Khusika Dhamar Gusti <[email protected]> Conflicts: drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
2 parents 7b528bc + 7dc732d commit b0a8bf4

File tree

56 files changed

+470
-183
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+470
-183
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 1
4-
SUBLEVEL = 122
4+
SUBLEVEL = 123
55
EXTRAVERSION =
66
NAME = Curry Ramen
77

arch/mips/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ drivers-$(CONFIG_PCI) += arch/mips/pci/
304304
ifdef CONFIG_64BIT
305305
ifndef KBUILD_SYM32
306306
ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0)
307-
KBUILD_SYM32 = y
307+
KBUILD_SYM32 = $(call cc-option-yn, -msym32)
308308
endif
309309
endif
310310

arch/mips/include/asm/mipsregs.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2078,7 +2078,14 @@ do { \
20782078
_ASM_INSN_IF_MIPS(0x4200000c) \
20792079
_ASM_INSN32_IF_MM(0x0000517c)
20802080
#else /* !TOOLCHAIN_SUPPORTS_VIRT */
2081-
#define _ASM_SET_VIRT ".set\tvirt\n\t"
2081+
#if MIPS_ISA_REV >= 5
2082+
#define _ASM_SET_VIRT_ISA
2083+
#elif defined(CONFIG_64BIT)
2084+
#define _ASM_SET_VIRT_ISA ".set\tmips64r5\n\t"
2085+
#else
2086+
#define _ASM_SET_VIRT_ISA ".set\tmips32r5\n\t"
2087+
#endif
2088+
#define _ASM_SET_VIRT _ASM_SET_VIRT_ISA ".set\tvirt\n\t"
20822089
#define _ASM_SET_MFGC0 _ASM_SET_VIRT
20832090
#define _ASM_SET_DMFGC0 _ASM_SET_VIRT
20842091
#define _ASM_SET_MTGC0 _ASM_SET_VIRT
@@ -2099,7 +2106,6 @@ do { \
20992106
({ int __res; \
21002107
__asm__ __volatile__( \
21012108
".set\tpush\n\t" \
2102-
".set\tmips32r5\n\t" \
21032109
_ASM_SET_MFGC0 \
21042110
"mfgc0\t%0, " #source ", %1\n\t" \
21052111
_ASM_UNSET_MFGC0 \
@@ -2113,7 +2119,6 @@ do { \
21132119
({ unsigned long long __res; \
21142120
__asm__ __volatile__( \
21152121
".set\tpush\n\t" \
2116-
".set\tmips64r5\n\t" \
21172122
_ASM_SET_DMFGC0 \
21182123
"dmfgc0\t%0, " #source ", %1\n\t" \
21192124
_ASM_UNSET_DMFGC0 \
@@ -2127,7 +2132,6 @@ do { \
21272132
do { \
21282133
__asm__ __volatile__( \
21292134
".set\tpush\n\t" \
2130-
".set\tmips32r5\n\t" \
21312135
_ASM_SET_MTGC0 \
21322136
"mtgc0\t%z0, " #register ", %1\n\t" \
21332137
_ASM_UNSET_MTGC0 \
@@ -2140,7 +2144,6 @@ do { \
21402144
do { \
21412145
__asm__ __volatile__( \
21422146
".set\tpush\n\t" \
2143-
".set\tmips64r5\n\t" \
21442147
_ASM_SET_DMTGC0 \
21452148
"dmtgc0\t%z0, " #register ", %1\n\t" \
21462149
_ASM_UNSET_DMTGC0 \

arch/powerpc/platforms/book3s/vas-api.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,43 @@ static vm_fault_t vas_mmap_fault(struct vm_fault *vmf)
464464
return VM_FAULT_SIGBUS;
465465
}
466466

467+
/*
468+
* During mmap() paste address, mapping VMA is saved in VAS window
469+
* struct which is used to unmap during migration if the window is
470+
* still open. But the user space can remove this mapping with
471+
* munmap() before closing the window and the VMA address will
472+
* be invalid. Set VAS window VMA to NULL in this function which
473+
* is called before VMA free.
474+
*/
475+
static void vas_mmap_close(struct vm_area_struct *vma)
476+
{
477+
struct file *fp = vma->vm_file;
478+
struct coproc_instance *cp_inst = fp->private_data;
479+
struct vas_window *txwin;
480+
481+
/* Should not happen */
482+
if (!cp_inst || !cp_inst->txwin) {
483+
pr_err("No attached VAS window for the paste address mmap\n");
484+
return;
485+
}
486+
487+
txwin = cp_inst->txwin;
488+
/*
489+
* task_ref.vma is set in coproc_mmap() during mmap paste
490+
* address. So it has to be the same VMA that is getting freed.
491+
*/
492+
if (WARN_ON(txwin->task_ref.vma != vma)) {
493+
pr_err("Invalid paste address mmaping\n");
494+
return;
495+
}
496+
497+
mutex_lock(&txwin->task_ref.mmap_mutex);
498+
txwin->task_ref.vma = NULL;
499+
mutex_unlock(&txwin->task_ref.mmap_mutex);
500+
}
501+
467502
static const struct vm_operations_struct vas_vm_ops = {
503+
.close = vas_mmap_close,
468504
.fault = vas_mmap_fault,
469505
};
470506

block/blk-mq.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3671,16 +3671,11 @@ static int blk_mq_init_hctx(struct request_queue *q,
36713671
{
36723672
hctx->queue_num = hctx_idx;
36733673

3674-
if (!(hctx->flags & BLK_MQ_F_STACKING))
3675-
cpuhp_state_add_instance_nocalls(CPUHP_AP_BLK_MQ_ONLINE,
3676-
&hctx->cpuhp_online);
3677-
cpuhp_state_add_instance_nocalls(CPUHP_BLK_MQ_DEAD, &hctx->cpuhp_dead);
3678-
36793674
hctx->tags = set->tags[hctx_idx];
36803675

36813676
if (set->ops->init_hctx &&
36823677
set->ops->init_hctx(hctx, set->driver_data, hctx_idx))
3683-
goto unregister_cpu_notifier;
3678+
goto fail;
36843679

36853680
if (blk_mq_init_request(set, hctx->fq->flush_rq, hctx_idx,
36863681
hctx->numa_node))
@@ -3689,6 +3684,11 @@ static int blk_mq_init_hctx(struct request_queue *q,
36893684
if (xa_insert(&q->hctx_table, hctx_idx, hctx, GFP_KERNEL))
36903685
goto exit_flush_rq;
36913686

3687+
if (!(hctx->flags & BLK_MQ_F_STACKING))
3688+
cpuhp_state_add_instance_nocalls(CPUHP_AP_BLK_MQ_ONLINE,
3689+
&hctx->cpuhp_online);
3690+
cpuhp_state_add_instance_nocalls(CPUHP_BLK_MQ_DEAD, &hctx->cpuhp_dead);
3691+
36923692
return 0;
36933693

36943694
exit_flush_rq:
@@ -3697,8 +3697,7 @@ static int blk_mq_init_hctx(struct request_queue *q,
36973697
exit_hctx:
36983698
if (set->ops->exit_hctx)
36993699
set->ops->exit_hctx(hctx, hctx_idx);
3700-
unregister_cpu_notifier:
3701-
blk_mq_remove_cpuhp(hctx);
3700+
fail:
37023701
return -1;
37033702
}
37043703

drivers/base/power/domain.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2012,6 +2012,7 @@ static int genpd_alloc_data(struct generic_pm_domain *genpd)
20122012

20132013
static void genpd_free_data(struct generic_pm_domain *genpd)
20142014
{
2015+
put_device(&genpd->dev);
20152016
if (genpd_is_cpu_domain(genpd))
20162017
free_cpumask_var(genpd->cpus);
20172018
if (genpd->free_states)

drivers/base/regmap/regmap.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,13 +1155,13 @@ struct regmap *__regmap_init(struct device *dev,
11551155

11561156
/* Sanity check */
11571157
if (range_cfg->range_max < range_cfg->range_min) {
1158-
dev_err(map->dev, "Invalid range %d: %d < %d\n", i,
1158+
dev_err(map->dev, "Invalid range %d: %u < %u\n", i,
11591159
range_cfg->range_max, range_cfg->range_min);
11601160
goto err_range;
11611161
}
11621162

11631163
if (range_cfg->range_max > map->max_register) {
1164-
dev_err(map->dev, "Invalid range %d: %d > %d\n", i,
1164+
dev_err(map->dev, "Invalid range %d: %u > %u\n", i,
11651165
range_cfg->range_max, map->max_register);
11661166
goto err_range;
11671167
}

drivers/block/virtio_blk.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,9 +1201,12 @@ static void virtblk_remove(struct virtio_device *vdev)
12011201
static int virtblk_freeze(struct virtio_device *vdev)
12021202
{
12031203
struct virtio_blk *vblk = vdev->priv;
1204+
struct request_queue *q = vblk->disk->queue;
12041205

12051206
/* Ensure no requests in virtqueues before deleting vqs. */
1206-
blk_mq_freeze_queue(vblk->disk->queue);
1207+
blk_mq_freeze_queue(q);
1208+
blk_mq_quiesce_queue_nowait(q);
1209+
blk_mq_unfreeze_queue(q);
12071210

12081211
/* Ensure we don't receive any more interrupts */
12091212
virtio_reset_device(vdev);
@@ -1227,8 +1230,8 @@ static int virtblk_restore(struct virtio_device *vdev)
12271230
return ret;
12281231

12291232
virtio_device_ready(vdev);
1233+
blk_mq_unquiesce_queue(vblk->disk->queue);
12301234

1231-
blk_mq_unfreeze_queue(vblk->disk->queue);
12321235
return 0;
12331236
}
12341237
#endif

drivers/dma/apple-admac.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ static int admac_alloc_sram_carveout(struct admac_data *ad,
152152
{
153153
struct admac_sram *sram;
154154
int i, ret = 0, nblocks;
155+
ad->txcache.size = readl_relaxed(ad->base + REG_TX_SRAM_SIZE);
156+
ad->rxcache.size = readl_relaxed(ad->base + REG_RX_SRAM_SIZE);
155157

156158
if (dir == DMA_MEM_TO_DEV)
157159
sram = &ad->txcache;
@@ -911,12 +913,7 @@ static int admac_probe(struct platform_device *pdev)
911913
goto free_irq;
912914
}
913915

914-
ad->txcache.size = readl_relaxed(ad->base + REG_TX_SRAM_SIZE);
915-
ad->rxcache.size = readl_relaxed(ad->base + REG_RX_SRAM_SIZE);
916-
917916
dev_info(&pdev->dev, "Audio DMA Controller\n");
918-
dev_info(&pdev->dev, "imprint %x TX cache %u RX cache %u\n",
919-
readl_relaxed(ad->base + REG_IMPRINT), ad->txcache.size, ad->rxcache.size);
920917

921918
return 0;
922919

drivers/dma/at_xdmac.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,6 +1287,8 @@ at_xdmac_prep_dma_memset(struct dma_chan *chan, dma_addr_t dest, int value,
12871287
return NULL;
12881288

12891289
desc = at_xdmac_memset_create_desc(chan, atchan, dest, len, value);
1290+
if (!desc)
1291+
return NULL;
12901292
list_add_tail(&desc->desc_node, &desc->descs_list);
12911293

12921294
desc->tx_dma_desc.cookie = -EBUSY;

0 commit comments

Comments
 (0)