Skip to content

Commit e3fda1a

Browse files
committed
Merge tag 'v6.1.154' into 6.1-main
This is the 6.1.154 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmjVBGgACgkQONu9yGCS # aT536RAAjp3veuZohjNfMeNiSpq9uXO0kJV840rbmCNE201teTkSSo1sWaoH7sgo # zs0L/rlU307fAoIuD0pxPYP3VMStycXg88jsB6tvUEmQ8nQ/NLKIZ86cj2JqUJqZ # CgTAS2wLhM7BzdatEHKUxZ3gkAChos7ydCfaKCUQ/rwGSBGuZTtKN0Mq4TJUaOEt # k0j8TRIEpKTMiizUa+6n+a+YyJ27isg2feP4dRiSslMrNRQTa5887mX9w/smlerh # /OXfInAWsEpr//nwREET+Fy6A0xdxnskXqCqoIOWc+t5xVPOofiBfMY0T5TZjv/v # KmI5RZUltcTg3gIuCegb1SiXUGoutnauZg93erABoJpzQ7DL8001vCwUT61+eiWb # /vMySAB0D2KJ4aI4sxzwYPLFres9h3DQHqkq5/8sHkQU7l2nTlyL8hKmEWn0KyyL # 8gFNjged7Wc4BMfasYuEWxoMEyg8Kx+FgmZDE+zkzFImdNvRqgtZXO5IbJxVJoGY # l8Nc+kIdpPC6rWjRK65hE5/46dJ0V/FnsrkvmzwkY/CKDZuo8PkEP1fSreTLJcSt # fejfVuzwW9IFO94HpOoA5oD4ELAMU1tMFMR1WNfQqc13LENNoeKhev+MY9vWxH4a # VNmWx2VsRVRE/E0AtacMLfKPyqReZr7AQX3vPW2VHsClObNzRsY= # =naXv # -----END PGP SIGNATURE----- # gpg: Signature made Thu Sep 25 10:59:20 2025 CEST # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents 80ede84 + 7b34dc0 commit e3fda1a

File tree

64 files changed

+440
-272
lines changed

Some content is hidden

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

64 files changed

+440
-272
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 = 153
4+
SUBLEVEL = 154
55
EXTRAVERSION =
66
NAME = Curry Ramen
77

arch/loongarch/include/asm/acenv.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@
1010
#ifndef _ASM_LOONGARCH_ACENV_H
1111
#define _ASM_LOONGARCH_ACENV_H
1212

13-
/*
14-
* This header is required by ACPI core, but we have nothing to fill in
15-
* right now. Will be updated later when needed.
16-
*/
13+
#ifdef CONFIG_ARCH_STRICT_ALIGN
14+
#define ACPI_MISALIGNMENT_NOT_SUPPORTED
15+
#endif /* CONFIG_ARCH_STRICT_ALIGN */
1716

1817
#endif /* _ASM_LOONGARCH_ACENV_H */

arch/loongarch/kernel/env.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ static int __init boardinfo_init(void)
7070
struct kobject *loongson_kobj;
7171

7272
loongson_kobj = kobject_create_and_add("loongson", firmware_kobj);
73+
if (!loongson_kobj)
74+
return -ENOMEM;
7375

7476
return sysfs_create_file(loongson_kobj, &boardinfo_attr.attr);
7577
}

arch/um/drivers/virtio_uml.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,10 +1229,12 @@ static int virtio_uml_probe(struct platform_device *pdev)
12291229
device_set_wakeup_capable(&vu_dev->vdev.dev, true);
12301230

12311231
rc = register_virtio_device(&vu_dev->vdev);
1232-
if (rc)
1232+
if (rc) {
12331233
put_device(&vu_dev->vdev.dev);
1234+
return rc;
1235+
}
12341236
vu_dev->registered = 1;
1235-
return rc;
1237+
return 0;
12361238

12371239
error_init:
12381240
os_close_file(vu_dev->sock);

arch/x86/kvm/svm/svm.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3834,8 +3834,7 @@ static inline void sync_lapic_to_cr8(struct kvm_vcpu *vcpu)
38343834
struct vcpu_svm *svm = to_svm(vcpu);
38353835
u64 cr8;
38363836

3837-
if (nested_svm_virtualize_tpr(vcpu) ||
3838-
kvm_vcpu_apicv_active(vcpu))
3837+
if (nested_svm_virtualize_tpr(vcpu))
38393838
return;
38403839

38413840
cr8 = kvm_get_cr8(vcpu);

crypto/af_alg.c

Lines changed: 44 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,12 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
859859
}
860860

861861
lock_sock(sk);
862+
if (ctx->write) {
863+
release_sock(sk);
864+
return -EBUSY;
865+
}
866+
ctx->write = true;
867+
862868
if (ctx->init && !ctx->more) {
863869
if (ctx->used) {
864870
err = -EINVAL;
@@ -908,6 +914,8 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
908914
continue;
909915
}
910916

917+
ctx->merge = 0;
918+
911919
if (!af_alg_writable(sk)) {
912920
err = af_alg_wait_for_wmem(sk, msg->msg_flags);
913921
if (err)
@@ -927,35 +935,38 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
927935
if (sgl->cur)
928936
sg_unmark_end(sg + sgl->cur - 1);
929937

930-
do {
931-
struct page *pg;
932-
unsigned int i = sgl->cur;
938+
if (1 /* TODO check MSG_SPLICE_PAGES */) {
939+
do {
940+
struct page *pg;
941+
unsigned int i = sgl->cur;
933942

934-
plen = min_t(size_t, len, PAGE_SIZE);
943+
plen = min_t(size_t, len, PAGE_SIZE);
935944

936-
pg = alloc_page(GFP_KERNEL);
937-
if (!pg) {
938-
err = -ENOMEM;
939-
goto unlock;
940-
}
945+
pg = alloc_page(GFP_KERNEL);
946+
if (!pg) {
947+
err = -ENOMEM;
948+
goto unlock;
949+
}
941950

942-
sg_assign_page(sg + i, pg);
951+
sg_assign_page(sg + i, pg);
943952

944-
err = memcpy_from_msg(page_address(sg_page(sg + i)),
945-
msg, plen);
946-
if (err) {
947-
__free_page(sg_page(sg + i));
948-
sg_assign_page(sg + i, NULL);
949-
goto unlock;
950-
}
953+
err = memcpy_from_msg(
954+
page_address(sg_page(sg + i)),
955+
msg, plen);
956+
if (err) {
957+
__free_page(sg_page(sg + i));
958+
sg_assign_page(sg + i, NULL);
959+
goto unlock;
960+
}
951961

952-
sg[i].length = plen;
953-
len -= plen;
954-
ctx->used += plen;
955-
copied += plen;
956-
size -= plen;
957-
sgl->cur++;
958-
} while (len && sgl->cur < MAX_SGL_ENTS);
962+
sg[i].length = plen;
963+
len -= plen;
964+
ctx->used += plen;
965+
copied += plen;
966+
size -= plen;
967+
sgl->cur++;
968+
} while (len && sgl->cur < MAX_SGL_ENTS);
969+
}
959970

960971
if (!size)
961972
sg_mark_end(sg + sgl->cur - 1);
@@ -969,6 +980,7 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
969980

970981
unlock:
971982
af_alg_data_wakeup(sk);
983+
ctx->write = false;
972984
release_sock(sk);
973985

974986
return copied ?: err;
@@ -988,53 +1000,17 @@ EXPORT_SYMBOL_GPL(af_alg_sendmsg);
9881000
ssize_t af_alg_sendpage(struct socket *sock, struct page *page,
9891001
int offset, size_t size, int flags)
9901002
{
991-
struct sock *sk = sock->sk;
992-
struct alg_sock *ask = alg_sk(sk);
993-
struct af_alg_ctx *ctx = ask->private;
994-
struct af_alg_tsgl *sgl;
995-
int err = -EINVAL;
1003+
struct bio_vec bvec;
1004+
struct msghdr msg = {
1005+
.msg_flags = flags | MSG_SPLICE_PAGES,
1006+
};
9961007

9971008
if (flags & MSG_SENDPAGE_NOTLAST)
998-
flags |= MSG_MORE;
999-
1000-
lock_sock(sk);
1001-
if (!ctx->more && ctx->used)
1002-
goto unlock;
1003-
1004-
if (!size)
1005-
goto done;
1006-
1007-
if (!af_alg_writable(sk)) {
1008-
err = af_alg_wait_for_wmem(sk, flags);
1009-
if (err)
1010-
goto unlock;
1011-
}
1012-
1013-
err = af_alg_alloc_tsgl(sk);
1014-
if (err)
1015-
goto unlock;
1016-
1017-
ctx->merge = 0;
1018-
sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, list);
1019-
1020-
if (sgl->cur)
1021-
sg_unmark_end(sgl->sg + sgl->cur - 1);
1022-
1023-
sg_mark_end(sgl->sg + sgl->cur);
1024-
1025-
get_page(page);
1026-
sg_set_page(sgl->sg + sgl->cur, page, size, offset);
1027-
sgl->cur++;
1028-
ctx->used += size;
1029-
1030-
done:
1031-
ctx->more = flags & MSG_MORE;
1032-
1033-
unlock:
1034-
af_alg_data_wakeup(sk);
1035-
release_sock(sk);
1009+
msg.msg_flags |= MSG_MORE;
10361010

1037-
return err ?: size;
1011+
bvec_set_page(&bvec, page, size, offset);
1012+
iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, size);
1013+
return sock_sendmsg(sock, &msg);
10381014
}
10391015
EXPORT_SYMBOL_GPL(af_alg_sendpage);
10401016

drivers/gpu/drm/bridge/analogix/anx7625.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2697,7 +2697,7 @@ static int anx7625_i2c_probe(struct i2c_client *client)
26972697
ret = devm_request_threaded_irq(dev, platform->pdata.intp_irq,
26982698
NULL, anx7625_intr_hpd_isr,
26992699
IRQF_TRIGGER_FALLING |
2700-
IRQF_ONESHOT,
2700+
IRQF_ONESHOT | IRQF_NO_AUTOEN,
27012701
"anx7625-intp", platform);
27022702
if (ret) {
27032703
DRM_DEV_ERROR(dev, "fail to request irq\n");
@@ -2767,8 +2767,10 @@ static int anx7625_i2c_probe(struct i2c_client *client)
27672767
}
27682768

27692769
/* Add work function */
2770-
if (platform->pdata.intp_irq)
2770+
if (platform->pdata.intp_irq) {
2771+
enable_irq(platform->pdata.intp_irq);
27712772
queue_work(platform->workqueue, &platform->work);
2773+
}
27722774

27732775
if (platform->pdata.audio_en)
27742776
anx7625_register_audio(dev, platform);

drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,8 +2042,10 @@ static void cdns_mhdp_atomic_enable(struct drm_bridge *bridge,
20422042
mhdp_state = to_cdns_mhdp_bridge_state(new_state);
20432043

20442044
mhdp_state->current_mode = drm_mode_duplicate(bridge->dev, mode);
2045-
if (!mhdp_state->current_mode)
2046-
return;
2045+
if (!mhdp_state->current_mode) {
2046+
ret = -EINVAL;
2047+
goto out;
2048+
}
20472049

20482050
drm_mode_set_name(mhdp_state->current_mode);
20492051

drivers/iommu/intel/iommu.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2205,6 +2205,10 @@ static void switch_to_super_page(struct dmar_domain *domain,
22052205
struct dma_pte *pte = NULL;
22062206
unsigned long i;
22072207

2208+
if (WARN_ON(!IS_ALIGNED(start_pfn, lvl_pages) ||
2209+
!IS_ALIGNED(end_pfn + 1, lvl_pages)))
2210+
return;
2211+
22082212
while (start_pfn <= end_pfn) {
22092213
if (!pte)
22102214
pte = pfn_to_dma_pte(domain, start_pfn, &level);
@@ -2272,7 +2276,8 @@ __domain_mapping(struct dmar_domain *domain, unsigned long iov_pfn,
22722276
unsigned long pages_to_remove;
22732277

22742278
pteval |= DMA_PTE_LARGE_PAGE;
2275-
pages_to_remove = min_t(unsigned long, nr_pages,
2279+
pages_to_remove = min_t(unsigned long,
2280+
round_down(nr_pages, lvl_pages),
22762281
nr_pte_to_next_page(pte) * lvl_pages);
22772282
end_pfn = iov_pfn + pages_to_remove - 1;
22782283
switch_to_super_page(domain, iov_pfn, end_pfn, largepage_lvl);

drivers/mmc/host/mvsdio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ static u32 mvsd_finish_data(struct mvsd_host *host, struct mmc_data *data,
292292
host->pio_ptr = NULL;
293293
host->pio_size = 0;
294294
} else {
295-
dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->sg_frags,
295+
dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
296296
mmc_get_dma_dir(data));
297297
}
298298

0 commit comments

Comments
 (0)