Skip to content

Commit e9cbc89

Browse files
author
Paolo Abeni
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR. No conflicts. Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2 parents f30e532 + 27bbf45 commit e9cbc89

396 files changed

Lines changed: 3555 additions & 2020 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/networking/ax25.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ AX.25
77
To use the amateur radio protocols within Linux you will need to get a
88
suitable copy of the AX.25 Utilities. More detailed information about
99
AX.25, NET/ROM and ROSE, associated programs and utilities can be
10-
found on http://www.linux-ax25.org.
10+
found on https://linux-ax25.in-berlin.de.
1111

12-
There is an active mailing list for discussing Linux amateur radio matters
12+
There is a mailing list for discussing Linux amateur radio matters
1313
called linux-hams@vger.kernel.org. To subscribe to it, send a message to
1414
majordomo@vger.kernel.org with the words "subscribe linux-hams" in the body
1515
of the message, the subject field is ignored. You don't need to be

Documentation/process/embargoed-hardware-issues.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ an involved disclosed party. The current ambassadors list:
251251
IBM Z Christian Borntraeger <borntraeger@de.ibm.com>
252252
Intel Tony Luck <tony.luck@intel.com>
253253
Qualcomm Trilok Soni <tsoni@codeaurora.org>
254+
RISC-V Palmer Dabbelt <palmer@dabbelt.com>
254255
Samsung Javier González <javier.gonz@samsung.com>
255256

256257
Microsoft James Morris <jamorris@linux.microsoft.com>

Documentation/sound/designs/midi-2.0.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ topology based on those information. When the device is older and
7474
doesn't respond to the new UMP inquiries, the driver falls back and
7575
builds the topology based on Group Terminal Block (GTB) information
7676
from the USB descriptor. Some device might be screwed up by the
77-
unexpected UMP command; in such a case, pass `midi2_probe=0` option to
78-
snd-usb-audio driver for skipping the UMP v1.1 inquiries.
77+
unexpected UMP command; in such a case, pass `midi2_ump_probe=0`
78+
option to snd-usb-audio driver for skipping the UMP v1.1 inquiries.
7979

8080
When the MIDI 2.0 device is probed, the kernel creates a rawmidi
8181
device for each UMP Endpoint of the device. Its device name is

MAINTAINERS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3344,7 +3344,7 @@ AX.25 NETWORK LAYER
33443344
M: Ralf Baechle <ralf@linux-mips.org>
33453345
L: linux-hams@vger.kernel.org
33463346
S: Maintained
3347-
W: http://www.linux-ax25.org/
3347+
W: https://linux-ax25.in-berlin.de
33483348
F: include/net/ax25.h
33493349
F: include/uapi/linux/ax25.h
33503350
F: net/ax25/
@@ -14769,7 +14769,7 @@ NETROM NETWORK LAYER
1476914769
M: Ralf Baechle <ralf@linux-mips.org>
1477014770
L: linux-hams@vger.kernel.org
1477114771
S: Maintained
14772-
W: http://www.linux-ax25.org/
14772+
W: https://linux-ax25.in-berlin.de
1477314773
F: include/net/netrom.h
1477414774
F: include/uapi/linux/netrom.h
1477514775
F: net/netrom/
@@ -18620,7 +18620,7 @@ ROSE NETWORK LAYER
1862018620
M: Ralf Baechle <ralf@linux-mips.org>
1862118621
L: linux-hams@vger.kernel.org
1862218622
S: Maintained
18623-
W: http://www.linux-ax25.org/
18623+
W: https://linux-ax25.in-berlin.de
1862418624
F: include/net/rose.h
1862518625
F: include/uapi/linux/rose.h
1862618626
F: net/rose/

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 6
33
PATCHLEVEL = 6
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc1
5+
EXTRAVERSION = -rc2
66
NAME = Hurr durr I'ma ninja sloth
77

88
# *DOCUMENTATION*

arch/arm/xen/enlighten.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ static void xen_power_off(void)
207207

208208
static irqreturn_t xen_arm_callback(int irq, void *arg)
209209
{
210-
xen_hvm_evtchn_do_upcall();
210+
xen_evtchn_do_upcall();
211211
return IRQ_HANDLED;
212212
}
213213

arch/powerpc/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ config PPC
255255
select HAVE_KPROBES
256256
select HAVE_KPROBES_ON_FTRACE
257257
select HAVE_KRETPROBES
258-
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if HAVE_OBJTOOL_MCOUNT
258+
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if HAVE_OBJTOOL_MCOUNT && (!ARCH_USING_PATCHABLE_FUNCTION_ENTRY || (!CC_IS_GCC || GCC_VERSION >= 110100))
259259
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
260260
select HAVE_MOD_ARCH_SPECIFIC
261261
select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S)

arch/powerpc/kernel/hw_breakpoint.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,15 @@ void thread_change_pc(struct task_struct *tsk, struct pt_regs *regs)
230230
struct arch_hw_breakpoint *info;
231231
int i;
232232

233+
preempt_disable();
234+
233235
for (i = 0; i < nr_wp_slots(); i++) {
234236
struct perf_event *bp = __this_cpu_read(bp_per_reg[i]);
235237

236238
if (unlikely(bp && counter_arch_bp(bp)->perf_single_step))
237239
goto reset;
238240
}
239-
return;
241+
goto out;
240242

241243
reset:
242244
regs_set_return_msr(regs, regs->msr & ~MSR_SE);
@@ -245,6 +247,9 @@ void thread_change_pc(struct task_struct *tsk, struct pt_regs *regs)
245247
__set_breakpoint(i, info);
246248
info->perf_single_step = false;
247249
}
250+
251+
out:
252+
preempt_enable();
248253
}
249254

250255
static bool is_larx_stcx_instr(int type)
@@ -363,6 +368,11 @@ static void handle_p10dd1_spurious_exception(struct perf_event **bp,
363368
}
364369
}
365370

371+
/*
372+
* Handle a DABR or DAWR exception.
373+
*
374+
* Called in atomic context.
375+
*/
366376
int hw_breakpoint_handler(struct die_args *args)
367377
{
368378
bool err = false;
@@ -490,6 +500,8 @@ NOKPROBE_SYMBOL(hw_breakpoint_handler);
490500

491501
/*
492502
* Handle single-step exceptions following a DABR hit.
503+
*
504+
* Called in atomic context.
493505
*/
494506
static int single_step_dabr_instruction(struct die_args *args)
495507
{
@@ -541,6 +553,8 @@ NOKPROBE_SYMBOL(single_step_dabr_instruction);
541553

542554
/*
543555
* Handle debug exception notifications.
556+
*
557+
* Called in atomic context.
544558
*/
545559
int hw_breakpoint_exceptions_notify(
546560
struct notifier_block *unused, unsigned long val, void *data)

arch/powerpc/kernel/hw_breakpoint_constraints.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,13 @@ void wp_get_instr_detail(struct pt_regs *regs, ppc_inst_t *instr,
131131
int *type, int *size, unsigned long *ea)
132132
{
133133
struct instruction_op op;
134+
int err;
134135

135-
if (__get_user_instr(*instr, (void __user *)regs->nip))
136+
pagefault_disable();
137+
err = __get_user_instr(*instr, (void __user *)regs->nip);
138+
pagefault_enable();
139+
140+
if (err)
136141
return;
137142

138143
analyse_instr(&op, regs, *instr);

arch/powerpc/kernel/traps.c

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,23 +1512,11 @@ static void do_program_check(struct pt_regs *regs)
15121512
return;
15131513
}
15141514

1515-
if (cpu_has_feature(CPU_FTR_DEXCR_NPHIE) && user_mode(regs)) {
1516-
ppc_inst_t insn;
1517-
1518-
if (get_user_instr(insn, (void __user *)regs->nip)) {
1519-
_exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
1520-
return;
1521-
}
1522-
1523-
if (ppc_inst_primary_opcode(insn) == 31 &&
1524-
get_xop(ppc_inst_val(insn)) == OP_31_XOP_HASHCHK) {
1525-
_exception(SIGILL, regs, ILL_ILLOPN, regs->nip);
1526-
return;
1527-
}
1515+
/* User mode considers other cases after enabling IRQs */
1516+
if (!user_mode(regs)) {
1517+
_exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip);
1518+
return;
15281519
}
1529-
1530-
_exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip);
1531-
return;
15321520
}
15331521
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
15341522
if (reason & REASON_TM) {
@@ -1561,16 +1549,44 @@ static void do_program_check(struct pt_regs *regs)
15611549

15621550
/*
15631551
* If we took the program check in the kernel skip down to sending a
1564-
* SIGILL. The subsequent cases all relate to emulating instructions
1565-
* which we should only do for userspace. We also do not want to enable
1566-
* interrupts for kernel faults because that might lead to further
1567-
* faults, and loose the context of the original exception.
1552+
* SIGILL. The subsequent cases all relate to user space, such as
1553+
* emulating instructions which we should only do for user space. We
1554+
* also do not want to enable interrupts for kernel faults because that
1555+
* might lead to further faults, and loose the context of the original
1556+
* exception.
15681557
*/
15691558
if (!user_mode(regs))
15701559
goto sigill;
15711560

15721561
interrupt_cond_local_irq_enable(regs);
15731562

1563+
/*
1564+
* (reason & REASON_TRAP) is mostly handled before enabling IRQs,
1565+
* except get_user_instr() can sleep so we cannot reliably inspect the
1566+
* current instruction in that context. Now that we know we are
1567+
* handling a user space trap and can sleep, we can check if the trap
1568+
* was a hashchk failure.
1569+
*/
1570+
if (reason & REASON_TRAP) {
1571+
if (cpu_has_feature(CPU_FTR_DEXCR_NPHIE)) {
1572+
ppc_inst_t insn;
1573+
1574+
if (get_user_instr(insn, (void __user *)regs->nip)) {
1575+
_exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
1576+
return;
1577+
}
1578+
1579+
if (ppc_inst_primary_opcode(insn) == 31 &&
1580+
get_xop(ppc_inst_val(insn)) == OP_31_XOP_HASHCHK) {
1581+
_exception(SIGILL, regs, ILL_ILLOPN, regs->nip);
1582+
return;
1583+
}
1584+
}
1585+
1586+
_exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip);
1587+
return;
1588+
}
1589+
15741590
/* (reason & REASON_ILLEGAL) would be the obvious thing here,
15751591
* but there seems to be a hardware bug on the 405GP (RevD)
15761592
* that means ESR is sometimes set incorrectly - either to

0 commit comments

Comments
 (0)