Skip to content

Commit cfd697b

Browse files
committed
Merge tag 'v6.6.107' into 6.6-main
This is the 6.6.107 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmjNaWwACgkQONu9yGCS # aT4x3Q/+JPPCXqMuCv31EGuGn6rlZjv8fPwJg9myorTUqxj9O+YSWdsu2tUIHAvF # DDeTvj1lUICkLU23iQUNp7NabX+WEGY+E5wspv7iZfPDjkfx54e046HBOkMrF661 # CeZOf60aOADGwX7P/hRPXZBTI0JTIgpFgLKjU8h2N73ZsTQCMqv4PTAl2d078Fbc # bFwbHnaqxHLWuJdLLeFrnsin93U8zRphPK9MXcrkGiLpH4vICLIZDS7acb+N6In/ # eZdMKUmJhHgKvKLLxhg29vb7QOMoKBqzV4oxW20QXTfGAjmnlTXyBQgPzpZ/aV/G # /k3HEsHAO94f9FtcTnQ0SZfvdQxBfEwBQZasOxX30SpvpNSaJ17iawjppcahgbzc # EmgGBxDX4GfDdgcpigvH316q1O2ELTEZEOQ1NQ98KrUeIbKWtNlalNAAkppRrYQm # bAV+cAWikugHRL/Gh76FeyXcaD1UjcnLING7NIL71OAwEfkZAnItH8ji5tnL8pLL # U5XmXzDlNq+6DHthPJgodpV6P5uhj0d0P7mz5cGvqnDG59toGOHRop0QD0L57q3I # Y23S2dh2L6n8dIn6sI0YrZJ6ludZZ+gKiOZXc39Kr7IWTsYV+l2Fn5nQ0cXc+C/B # ZhI3d18gy1unQQRZDnuYXFIgLL14KxzNFYJbakw7t7r0wxMnVoU= # =1cbN # -----END PGP SIGNATURE----- # gpg: Signature made Fri Sep 19 16:32:12 2025 CEST # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents ffbdbf3 + af1544b commit cfd697b

94 files changed

Lines changed: 985 additions & 404 deletions

File tree

Some content is hidden

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

Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ properties:
4141
- const: dma_intr2
4242

4343
clocks:
44-
minItems: 1
44+
maxItems: 1
4545

4646
clock-names:
4747
const: sw_baud

Documentation/networking/can.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ The broadcast manager sends responses to user space in the same form:
740740
struct timeval ival1, ival2; /* count and subsequent interval */
741741
canid_t can_id; /* unique can_id for task */
742742
__u32 nframes; /* number of can_frames following */
743-
struct can_frame frames[0];
743+
struct can_frame frames[];
744744
};
745745
746746
The aligned payload 'frames' uses the same basic CAN frame structure defined

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 = 6
4-
SUBLEVEL = 106
4+
SUBLEVEL = 107
55
EXTRAVERSION =
66
NAME = Pinguïn Aangedreven
77

arch/riscv/include/asm/compat.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
*/
1010
#include <linux/types.h>
1111
#include <linux/sched.h>
12-
#include <linux/sched/task_stack.h>
1312
#include <asm-generic/compat.h>
1413

1514
static inline int is_compat_task(void)

arch/s390/kernel/perf_cpum_cf.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -757,8 +757,6 @@ static int __hw_perf_event_init(struct perf_event *event, unsigned int type)
757757
break;
758758

759759
case PERF_TYPE_HARDWARE:
760-
if (is_sampling_event(event)) /* No sampling support */
761-
return -ENOENT;
762760
ev = attr->config;
763761
if (!attr->exclude_user && attr->exclude_kernel) {
764762
/*
@@ -856,6 +854,8 @@ static int cpumf_pmu_event_init(struct perf_event *event)
856854
unsigned int type = event->attr.type;
857855
int err;
858856

857+
if (is_sampling_event(event)) /* No sampling support */
858+
return err;
859859
if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW)
860860
err = __hw_perf_event_init(event, type);
861861
else if (event->pmu->type == type)

arch/x86/kernel/vmlinux.lds.S

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,10 +500,18 @@ SECTIONS
500500
PROVIDE(__ref_stack_chk_guard = __stack_chk_guard);
501501

502502
/*
503-
* The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
503+
* COMPILE_TEST kernels can be large - CONFIG_KASAN, for example, can cause
504+
* this. Let's assume that nobody will be running a COMPILE_TEST kernel and
505+
* let's assert that fuller build coverage is more valuable than being able to
506+
* run a COMPILE_TEST kernel.
507+
*/
508+
#ifndef CONFIG_COMPILE_TEST
509+
/*
510+
* The ASSERT() sync to . is intentional, for binutils 2.14 compatibility:
504511
*/
505512
. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE),
506513
"kernel image bigger than KERNEL_IMAGE_SIZE");
514+
#endif
507515

508516
#ifdef CONFIG_X86_64
509517
/*

arch/x86/kvm/cpuid.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -791,10 +791,15 @@ void kvm_set_cpu_caps(void)
791791
F(PERFMON_V2)
792792
);
793793

794+
kvm_cpu_cap_check_and_set(X86_FEATURE_VERW_CLEAR);
795+
794796
kvm_cpu_cap_init_kvm_defined(CPUID_8000_0021_ECX,
795797
F(TSA_SQ_NO) | F(TSA_L1_NO)
796798
);
797799

800+
kvm_cpu_cap_check_and_set(X86_FEATURE_TSA_SQ_NO);
801+
kvm_cpu_cap_check_and_set(X86_FEATURE_TSA_L1_NO);
802+
798803
/*
799804
* Synthesize "LFENCE is serializing" into the AMD-defined entry in
800805
* KVM's supported CPUID if the feature is reported as supported by the

drivers/dma/dw/rzn1-dmamux.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,16 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
4848
u32 mask;
4949
int ret;
5050

51-
if (dma_spec->args_count != RNZ1_DMAMUX_NCELLS)
52-
return ERR_PTR(-EINVAL);
51+
if (dma_spec->args_count != RNZ1_DMAMUX_NCELLS) {
52+
ret = -EINVAL;
53+
goto put_device;
54+
}
5355

5456
map = kzalloc(sizeof(*map), GFP_KERNEL);
55-
if (!map)
56-
return ERR_PTR(-ENOMEM);
57+
if (!map) {
58+
ret = -ENOMEM;
59+
goto put_device;
60+
}
5761

5862
chan = dma_spec->args[0];
5963
map->req_idx = dma_spec->args[4];
@@ -94,12 +98,15 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
9498
if (ret)
9599
goto clear_bitmap;
96100

101+
put_device(&pdev->dev);
97102
return map;
98103

99104
clear_bitmap:
100105
clear_bit(map->req_idx, dmamux->used_chans);
101106
free_map:
102107
kfree(map);
108+
put_device:
109+
put_device(&pdev->dev);
103110

104111
return ERR_PTR(ret);
105112
}

drivers/dma/idxd/init.c

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -179,27 +179,30 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
179179
idxd->wq_enable_map = bitmap_zalloc_node(idxd->max_wqs, GFP_KERNEL, dev_to_node(dev));
180180
if (!idxd->wq_enable_map) {
181181
rc = -ENOMEM;
182-
goto err_bitmap;
182+
goto err_free_wqs;
183183
}
184184

185185
for (i = 0; i < idxd->max_wqs; i++) {
186186
wq = kzalloc_node(sizeof(*wq), GFP_KERNEL, dev_to_node(dev));
187187
if (!wq) {
188188
rc = -ENOMEM;
189-
goto err;
189+
goto err_unwind;
190190
}
191191

192192
idxd_dev_set_type(&wq->idxd_dev, IDXD_DEV_WQ);
193193
conf_dev = wq_confdev(wq);
194194
wq->id = i;
195195
wq->idxd = idxd;
196-
device_initialize(wq_confdev(wq));
196+
device_initialize(conf_dev);
197197
conf_dev->parent = idxd_confdev(idxd);
198198
conf_dev->bus = &dsa_bus_type;
199199
conf_dev->type = &idxd_wq_device_type;
200200
rc = dev_set_name(conf_dev, "wq%d.%d", idxd->id, wq->id);
201-
if (rc < 0)
202-
goto err;
201+
if (rc < 0) {
202+
put_device(conf_dev);
203+
kfree(wq);
204+
goto err_unwind;
205+
}
203206

204207
mutex_init(&wq->wq_lock);
205208
init_waitqueue_head(&wq->err_queue);
@@ -210,15 +213,20 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
210213
wq->enqcmds_retries = IDXD_ENQCMDS_RETRIES;
211214
wq->wqcfg = kzalloc_node(idxd->wqcfg_size, GFP_KERNEL, dev_to_node(dev));
212215
if (!wq->wqcfg) {
216+
put_device(conf_dev);
217+
kfree(wq);
213218
rc = -ENOMEM;
214-
goto err;
219+
goto err_unwind;
215220
}
216221

217222
if (idxd->hw.wq_cap.op_config) {
218223
wq->opcap_bmap = bitmap_zalloc(IDXD_MAX_OPCAP_BITS, GFP_KERNEL);
219224
if (!wq->opcap_bmap) {
225+
kfree(wq->wqcfg);
226+
put_device(conf_dev);
227+
kfree(wq);
220228
rc = -ENOMEM;
221-
goto err_opcap_bmap;
229+
goto err_unwind;
222230
}
223231
bitmap_copy(wq->opcap_bmap, idxd->opcap_bmap, IDXD_MAX_OPCAP_BITS);
224232
}
@@ -229,13 +237,7 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
229237

230238
return 0;
231239

232-
err_opcap_bmap:
233-
kfree(wq->wqcfg);
234-
235-
err:
236-
put_device(conf_dev);
237-
kfree(wq);
238-
240+
err_unwind:
239241
while (--i >= 0) {
240242
wq = idxd->wqs[i];
241243
if (idxd->hw.wq_cap.op_config)
@@ -244,11 +246,10 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
244246
conf_dev = wq_confdev(wq);
245247
put_device(conf_dev);
246248
kfree(wq);
247-
248249
}
249250
bitmap_free(idxd->wq_enable_map);
250251

251-
err_bitmap:
252+
err_free_wqs:
252253
kfree(idxd->wqs);
253254

254255
return rc;
@@ -904,10 +905,12 @@ static void idxd_remove(struct pci_dev *pdev)
904905
device_unregister(idxd_confdev(idxd));
905906
idxd_shutdown(pdev);
906907
idxd_device_remove_debugfs(idxd);
907-
idxd_cleanup(idxd);
908+
perfmon_pmu_remove(idxd);
909+
idxd_cleanup_interrupts(idxd);
910+
if (device_pasid_enabled(idxd))
911+
idxd_disable_system_pasid(idxd);
908912
pci_iounmap(pdev, idxd->reg_base);
909913
put_device(idxd_confdev(idxd));
910-
idxd_free(idxd);
911914
pci_disable_device(pdev);
912915
}
913916

drivers/dma/qcom/bam_dma.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,13 +1283,17 @@ static int bam_dma_probe(struct platform_device *pdev)
12831283
if (!bdev->bamclk) {
12841284
ret = of_property_read_u32(pdev->dev.of_node, "num-channels",
12851285
&bdev->num_channels);
1286-
if (ret)
1286+
if (ret) {
12871287
dev_err(bdev->dev, "num-channels unspecified in dt\n");
1288+
return ret;
1289+
}
12881290

12891291
ret = of_property_read_u32(pdev->dev.of_node, "qcom,num-ees",
12901292
&bdev->num_ees);
1291-
if (ret)
1293+
if (ret) {
12921294
dev_err(bdev->dev, "num-ees unspecified in dt\n");
1295+
return ret;
1296+
}
12931297
}
12941298

12951299
ret = clk_prepare_enable(bdev->bamclk);

0 commit comments

Comments
 (0)