Skip to content

Commit 41ae94a

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.12.y' into rpi-6.12.y
2 parents 552c16b + f1e375d commit 41ae94a

File tree

145 files changed

+1896
-988
lines changed

Some content is hidden

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

145 files changed

+1896
-988
lines changed

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/filesystems/nfs/localio.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,19 @@ is issuing IO to the underlying local filesystem that it is sharing with
306306
the NFS server. See: fs/nfs/localio.c:nfs_local_doio() and
307307
fs/nfs/localio.c:nfs_local_commit().
308308

309+
With normal NFS that makes use of RPC to issue IO to the server, if an
310+
application uses O_DIRECT the NFS client will bypass the pagecache but
311+
the NFS server will not. Because the NFS server's use of buffered IO
312+
affords applications to be less precise with their alignment when
313+
issuing IO to the NFS client. LOCALIO can be configured to use O_DIRECT
314+
semantics by setting the 'localio_O_DIRECT_semantics' nfs module
315+
parameter to Y, e.g.:
316+
317+
echo Y > /sys/module/nfs/parameters/localio_O_DIRECT_semantics
318+
319+
Once enabled, it will cause LOCALIO to use O_DIRECT semantics (this may
320+
cause IO to fail if applications do not properly align their IO).
321+
309322
Security
310323
========
311324

Documentation/netlink/specs/mptcp_pm.yaml

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,65 +22,67 @@ definitions:
2222
doc: unused event
2323
-
2424
name: created
25-
doc:
26-
token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport
25+
doc: >-
2726
A new MPTCP connection has been created. It is the good time to
2827
allocate memory and send ADD_ADDR if needed. Depending on the
2928
traffic-patterns it can take a long time until the
3029
MPTCP_EVENT_ESTABLISHED is sent.
30+
Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
31+
dport, server-side.
3132
-
3233
name: established
33-
doc:
34-
token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport
34+
doc: >-
3535
A MPTCP connection is established (can start new subflows).
36+
Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
37+
dport, server-side.
3638
-
3739
name: closed
38-
doc:
39-
token
40+
doc: >-
4041
A MPTCP connection has stopped.
42+
Attribute: token.
4143
-
4244
name: announced
4345
value: 6
44-
doc:
45-
token, rem_id, family, daddr4 | daddr6 [, dport]
46+
doc: >-
4647
A new address has been announced by the peer.
48+
Attributes: token, rem_id, family, daddr4 | daddr6 [, dport].
4749
-
4850
name: removed
49-
doc:
50-
token, rem_id
51+
doc: >-
5152
An address has been lost by the peer.
53+
Attributes: token, rem_id.
5254
-
5355
name: sub-established
5456
value: 10
55-
doc:
56-
token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport,
57-
dport, backup, if_idx [, error]
57+
doc: >-
5858
A new subflow has been established. 'error' should not be set.
59+
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
60+
daddr6, sport, dport, backup, if-idx [, error].
5961
-
6062
name: sub-closed
61-
doc:
62-
token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport,
63-
dport, backup, if_idx [, error]
63+
doc: >-
6464
A subflow has been closed. An error (copy of sk_err) could be set if an
6565
error has been detected for this subflow.
66+
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
67+
daddr6, sport, dport, backup, if-idx [, error].
6668
-
6769
name: sub-priority
6870
value: 13
69-
doc:
70-
token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport,
71-
dport, backup, if_idx [, error]
71+
doc: >-
7272
The priority of a subflow has changed. 'error' should not be set.
73+
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
74+
daddr6, sport, dport, backup, if-idx [, error].
7375
-
7476
name: listener-created
7577
value: 15
76-
doc:
77-
family, sport, saddr4 | saddr6
78+
doc: >-
7879
A new PM listener is created.
80+
Attributes: family, sport, saddr4 | saddr6.
7981
-
8082
name: listener-closed
81-
doc:
82-
family, sport, saddr4 | saddr6
83+
doc: >-
8384
A PM listener is closed.
85+
Attributes: family, sport, saddr4 | saddr6.
8486
8587
attribute-sets:
8688
-
@@ -253,8 +255,8 @@ attribute-sets:
253255
name: timeout
254256
type: u32
255257
-
256-
name: if_idx
257-
type: u32
258+
name: if-idx
259+
type: s32
258260
-
259261
name: reset-reason
260262
type: u32

Documentation/networking/can.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ The broadcast manager sends responses to user space in the same form:
742742
struct timeval ival1, ival2; /* count and subsequent interval */
743743
canid_t can_id; /* unique can_id for task */
744744
__u32 nframes; /* number of can_frames following */
745-
struct can_frame frames[0];
745+
struct can_frame frames[];
746746
};
747747
748748
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 = 12
4-
SUBLEVEL = 47
4+
SUBLEVEL = 48
55
EXTRAVERSION =
66
NAME = Baby Opossum Posse
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
@@ -761,8 +761,6 @@ static int __hw_perf_event_init(struct perf_event *event, unsigned int type)
761761
break;
762762

763763
case PERF_TYPE_HARDWARE:
764-
if (is_sampling_event(event)) /* No sampling support */
765-
return -ENOENT;
766764
ev = attr->config;
767765
if (!attr->exclude_user && attr->exclude_kernel) {
768766
/*
@@ -860,6 +858,8 @@ static int cpumf_pmu_event_init(struct perf_event *event)
860858
unsigned int type = event->attr.type;
861859
int err = -ENOENT;
862860

861+
if (is_sampling_event(event)) /* No sampling support */
862+
return err;
863863
if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW)
864864
err = __hw_perf_event_init(event, type);
865865
else if (event->pmu->type == type)

arch/s390/kernel/perf_pai_crypto.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,10 +286,10 @@ static int paicrypt_event_init(struct perf_event *event)
286286
/* PAI crypto PMU registered as PERF_TYPE_RAW, check event type */
287287
if (a->type != PERF_TYPE_RAW && event->pmu->type != a->type)
288288
return -ENOENT;
289-
/* PAI crypto event must be in valid range */
289+
/* PAI crypto event must be in valid range, try others if not */
290290
if (a->config < PAI_CRYPTO_BASE ||
291291
a->config > PAI_CRYPTO_BASE + paicrypt_cnt)
292-
return -EINVAL;
292+
return -ENOENT;
293293
/* Allow only CRYPTO_ALL for sampling */
294294
if (a->sample_period && a->config != PAI_CRYPTO_BASE)
295295
return -EINVAL;

arch/s390/kernel/perf_pai_ext.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ static int paiext_event_valid(struct perf_event *event)
266266
event->hw.config_base = offsetof(struct paiext_cb, acc);
267267
return 0;
268268
}
269-
return -EINVAL;
269+
return -ENOENT;
270270
}
271271

272272
/* Might be called on different CPU than the one the event is intended for. */

arch/x86/kernel/cpu/topology_amd.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -174,24 +174,27 @@ static void topoext_fixup(struct topo_scan *tscan)
174174

175175
static void parse_topology_amd(struct topo_scan *tscan)
176176
{
177-
bool has_topoext = false;
178-
179177
/*
180-
* If the extended topology leaf 0x8000_001e is available
181-
* try to get SMT, CORE, TILE, and DIE shifts from extended
178+
* Try to get SMT, CORE, TILE, and DIE shifts from extended
182179
* CPUID leaf 0x8000_0026 on supported processors first. If
183180
* extended CPUID leaf 0x8000_0026 is not supported, try to
184-
* get SMT and CORE shift from leaf 0xb first, then try to
185-
* get the CORE shift from leaf 0x8000_0008.
181+
* get SMT and CORE shift from leaf 0xb. If either leaf is
182+
* available, cpu_parse_topology_ext() will return true.
186183
*/
187-
if (cpu_feature_enabled(X86_FEATURE_TOPOEXT))
188-
has_topoext = cpu_parse_topology_ext(tscan);
184+
bool has_xtopology = cpu_parse_topology_ext(tscan);
189185

190-
if (!has_topoext && !parse_8000_0008(tscan))
186+
/*
187+
* If XTOPOLOGY leaves (0x26/0xb) are not available, try to
188+
* get the CORE shift from leaf 0x8000_0008 first.
189+
*/
190+
if (!has_xtopology && !parse_8000_0008(tscan))
191191
return;
192192

193-
/* Prefer leaf 0x8000001e if available */
194-
if (parse_8000_001e(tscan, has_topoext))
193+
/*
194+
* Prefer leaf 0x8000001e if available to get the SMT shift and
195+
* the initial APIC ID if XTOPOLOGY leaves are not available.
196+
*/
197+
if (parse_8000_001e(tscan, has_xtopology))
195198
return;
196199

197200
/* Try the NODEID MSR */

0 commit comments

Comments
 (0)