mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
Merge tag 'tty-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver updates from Greg KH:
"Here is the big set of serial and tty driver updates for 6.15-rc1.
Include in here are the following:
- more great tty layer cleanups from Jiri. Someday this will be done,
but that's not going to be any year soon...
- kdb debug driver reverts to fix a reported issue
- lots of .dts binding updates for different devices with serial
devices
- lots of tiny updates and tweaks and a few bugfixes for different
serial drivers.
All of these have been in linux-next for a while with no reported
issues"
* tag 'tty-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (79 commits)
tty: serial: fsl_lpuart: Fix unused variable 'sport' build warning
serial: stm32: do not deassert RS485 RTS GPIO prematurely
serial: 8250: add driver for NI UARTs
dt-bindings: serial: snps-dw-apb-uart: document RZ/N1 binding without DMA
serial: icom: fix code format problems
serial: sh-sci: Save and restore more registers
tty: serial: pl011: remove incorrect of_match_ptr annotation
dt-bindings: serial: snps-dw-apb-uart: Add support for rk3562
tty: serial: lpuart: only disable CTS instead of overwriting the whole UARTMODIR register
tty: caif: removed unused function debugfs_tx()
serial: 8250_dma: terminate correct DMA in tx_dma_flush()
tty: serial: fsl_lpuart: rename register variables more specifically
tty: serial: fsl_lpuart: use port struct directly to simply code
tty: serial: fsl_lpuart: Use u32 and u8 for register variables
tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers
tty: serial: 8250: Add Brainboxes XC devices
dt-bindings: serial: fsl-lpuart: support i.MX94
tty: serial: 8250: Add some more device IDs
dt-bindings: serial: samsung: add exynos7870-uart compatible
serial: 8250_dw: Comment possible corner cases in serial_out() implementation
...
This commit is contained in:
@@ -837,10 +837,6 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs)
|
||||
{
|
||||
struct kgdb_state kgdb_var;
|
||||
struct kgdb_state *ks = &kgdb_var;
|
||||
int ret = 0;
|
||||
|
||||
if (arch_kgdb_ops.enable_nmi)
|
||||
arch_kgdb_ops.enable_nmi(0);
|
||||
/*
|
||||
* Avoid entering the debugger if we were triggered due to an oops
|
||||
* but panic_timeout indicates the system should automatically
|
||||
@@ -858,15 +854,11 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs)
|
||||
ks->linux_regs = regs;
|
||||
|
||||
if (kgdb_reenter_check(ks))
|
||||
goto out; /* Ouch, double exception ! */
|
||||
return 0; /* Ouch, double exception ! */
|
||||
if (kgdb_info[ks->cpu].enter_kgdb != 0)
|
||||
goto out;
|
||||
return 0;
|
||||
|
||||
ret = kgdb_cpu_enter(ks, regs, DCPU_WANT_MASTER);
|
||||
out:
|
||||
if (arch_kgdb_ops.enable_nmi)
|
||||
arch_kgdb_ops.enable_nmi(1);
|
||||
return ret;
|
||||
return kgdb_cpu_enter(ks, regs, DCPU_WANT_MASTER);
|
||||
}
|
||||
NOKPROBE_SYMBOL(kgdb_handle_exception);
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#include <linux/smp.h>
|
||||
#include <linux/utsname.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/init.h>
|
||||
@@ -2087,32 +2086,6 @@ static int kdb_dmesg(int argc, const char **argv)
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PRINTK */
|
||||
|
||||
/* Make sure we balance enable/disable calls, must disable first. */
|
||||
static atomic_t kdb_nmi_disabled;
|
||||
|
||||
static int kdb_disable_nmi(int argc, const char *argv[])
|
||||
{
|
||||
if (atomic_read(&kdb_nmi_disabled))
|
||||
return 0;
|
||||
atomic_set(&kdb_nmi_disabled, 1);
|
||||
arch_kgdb_ops.enable_nmi(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int kdb_param_enable_nmi(const char *val, const struct kernel_param *kp)
|
||||
{
|
||||
if (!atomic_add_unless(&kdb_nmi_disabled, -1, 0))
|
||||
return -EINVAL;
|
||||
arch_kgdb_ops.enable_nmi(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct kernel_param_ops kdb_param_ops_enable_nmi = {
|
||||
.set = kdb_param_enable_nmi,
|
||||
};
|
||||
module_param_cb(enable_nmi, &kdb_param_ops_enable_nmi, NULL, 0600);
|
||||
|
||||
/*
|
||||
* kdb_cpu - This function implements the 'cpu' command.
|
||||
* cpu [<cpunum>]
|
||||
@@ -2804,20 +2777,10 @@ static kdbtab_t maintab[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static kdbtab_t nmicmd = {
|
||||
.name = "disable_nmi",
|
||||
.func = kdb_disable_nmi,
|
||||
.usage = "",
|
||||
.help = "Disable NMI entry to KDB",
|
||||
.flags = KDB_ENABLE_ALWAYS_SAFE,
|
||||
};
|
||||
|
||||
/* Initialize the kdb command table. */
|
||||
static void __init kdb_inittab(void)
|
||||
{
|
||||
kdb_register_table(maintab, ARRAY_SIZE(maintab));
|
||||
if (arch_kgdb_ops.enable_nmi)
|
||||
kdb_register_table(&nmicmd, 1);
|
||||
}
|
||||
|
||||
/* Execute any commands defined in kdb_cmds. */
|
||||
|
||||
Reference in New Issue
Block a user