From patchwork Wed Jan 29 16:25:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 860971 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B4B21DF255 for ; Wed, 29 Jan 2025 16:27:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738168054; cv=none; b=aP1us4lzy575VGNqD0a+I4QGt7dLrFkba9w5SGDvkb5dD2JjZl3zrjGCgQAYM5KXEXKjwg7TVu230GlaHuNSr2lwmkbrmgA8KueJUR1W9ndv2om833dMEH0LfPqL9m3atjE1ZUecvZPZlOeiIWkHve2N617e+TpTSvbjCtBHxqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738168054; c=relaxed/simple; bh=eCIe90KSZZjMhV6TiRvo2SpTu80tDOCPWm0m8q0S1wU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BnC8DW7jA1arHdblp94xkb4ieK04DLOtaDTPrE+NdZPJ93dPbirYEjBA5Kfflee1STvRr/4dC1gqm+jM90S+uo4ZzdfmWQ1NeFAcFQtjjMMQWxY9XYA5SWANQRhfYhxvESkTrigVWpTB/DIZgxFzkibAKRppLqklcB59p7kJa18= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=FUkKoV6H; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="FUkKoV6H" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2166651f752so13656095ad.3 for ; Wed, 29 Jan 2025 08:27:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738168052; x=1738772852; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LaOowRFYa0+jqNGGGruKV2+3LEXvyHbn984ywn70T5s=; b=FUkKoV6HOJDVlesUMJZ3ZMvtEtAYChGD+Ciduf8BREHknAtsbIHS/+FIMUxNy0P2xx TyJn+TruKL4JxTAc/Ef7GeZ5eKjvrONPts7lxeLQjuCvg7f/+J+DPyohoLzGkVOCbsbl HmVMoxUa/uGE+n1+m1BLSSz3asISJHgLxHBdA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738168052; x=1738772852; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LaOowRFYa0+jqNGGGruKV2+3LEXvyHbn984ywn70T5s=; b=l40mjCbVj8UEPiBb4sdwbvocw38EWNB3ewLFmyArB7SgC3PKvcK4bbXdeBPVx7hh8Q M8Kb6g/IWG/07s9hqt3ZLcy2Rj0RRL7q2XwMxA9AZKPp5UShtn96kVtiQ6GLNziRc2hd lSDL5npPWyJIyachsmV32VVVDbhO67phEpkysRG6hZmuKMQoaMo8fYV/us5dJrd+P+KW LEw1kHTZONJ5yGKDZmcch4EN2N0LMt0yLjbSp1MBb/8KdYxt/qJfXAISzKAVt47QcwAX fcNTpVobAd/7QPILUyhgRNT6c3dF4Br6bqFUgiDQdK1eKt84uDJX0Cv60SShW8Mxao4H CVfw== X-Forwarded-Encrypted: i=1; AJvYcCUH/5IhhcKPAEBbldj4QcYZXMRUn4PeccK/iEbfC2R7ZYrOAZcP5efg21sAhSkzjOFZ6gymu5hWShIu+q8=@vger.kernel.org X-Gm-Message-State: AOJu0YzT0Dgbtuv07MQsAqzPc44PBQSJh8OwGDXBMDOB/SLeoAIO92cd wgw2TZ1x6+lDayPzoAH6eJLU4pyhu3h9+vYo6/EFKM3gi2SUOesemEVQ0v4yDA== X-Gm-Gg: ASbGncuzW4uMkVuwi56AReyJ7Tm6/PI33Hs8GYRAM9Gg8af1yZyPuykm2n1ssMSiOQg Lq/G043fICzSYlnFWjxfT2tQaV3/l9LCMSj67ddOkNcp+TOvBQRT47V5fIxgVxX2UcbINKB6Cxj YyrL7W1F28pZA2O8knfadIniMBnJub+sfatj7YB/wNx4Aq30DGxxRNLVtV2G8VDWETug7LjjRus C+c0NeUBPho3jbykzEujP0Ctenlx4ft1yQHxF8nSBRW+o3oXOg19dECjZqFFQtmJWA0Imjj1HdD wsi4t2gUvwTj2BqsGfFnwTCgX+vpf+MjSjI= X-Google-Smtp-Source: AGHT+IEep8oa1oyp67kZc81SS3mOu+E4wpbyZri1DcdrjkAF5D1o6gTTmENkyrk+Z2nkxLrI6opl3g== X-Received: by 2002:a05:6a20:9e46:b0:1db:eff0:6ae7 with SMTP id adf61e73a8af0-1ed7a5d5366mr5884564637.33.1738168052269; Wed, 29 Jan 2025 08:27:32 -0800 (PST) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:fa8a:f68a:6cb9:40b2]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ac496cb4810sm10577009a12.66.2025.01.29.08.27.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 08:27:31 -0800 (PST) From: Douglas Anderson To: Greg Kroah-Hartman , Jiri Slaby , Daniel Thompson Cc: "Dr . David Alan Gilbert" , kgdb-bugreport@lists.sourceforge.net, Anton Vorontsov , Sumit Garg , linux-serial@vger.kernel.org, Douglas Anderson , Andy Shevchenko , Arnd Bergmann , Geert Uytterhoeven , Hugo Villeneuve , Jason Wessel , Nicolas Ferre , Niklas Schnelle , Robert Marko , linux-kernel@vger.kernel.org Subject: [PATCH 1/3] Revert "tty/serial: Add kgdb_nmi driver" Date: Wed, 29 Jan 2025 08:25:50 -0800 Message-ID: <20250129082535.1.Ia095eac1ae357f87d23e7af2206741f5d40788f1@changeid> X-Mailer: git-send-email 2.48.1.262.g85cc9f2d1e-goog In-Reply-To: <20250129162700.848018-1-dianders@chromium.org> References: <20250129162700.848018-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit 0c57dfcc6c1d037243c2f8fbf62eab3633326ec0. The functionality was supoosed to be used by a later patch in the series that never landed [1]. Drop it. NOTE: part of functionality was already reverted by commit 39d0be87438a ("serial: kgdb_nmi: Remove unused knock code"). Also note that this revert is not a clean revert given code changes that have happened in the meantime. It's obvious that nobody is using this code since the two exposed functions (kgdb_register_nmi_console() and kgdb_unregister_nmi_console()) are both no-ops if "arch_kgdb_ops.enable_nmi" is not defined. No architectures define it. [1] https://lore.kernel.org/lkml/1348522080-32629-9-git-send-email-anton.vorontsov@linaro.org/ Signed-off-by: Douglas Anderson --- drivers/tty/serial/Kconfig | 19 --- drivers/tty/serial/Makefile | 1 - drivers/tty/serial/kgdb_nmi.c | 280 ---------------------------------- drivers/tty/serial/kgdboc.c | 8 - include/linux/kgdb.h | 8 - 5 files changed, 316 deletions(-) delete mode 100644 drivers/tty/serial/kgdb_nmi.c diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 976dae3bb1bb..f21cad6aaa47 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -179,25 +179,6 @@ config SERIAL_ATMEL_TTYAT Say Y if you have an external 8250/16C550 UART. If unsure, say N. -config SERIAL_KGDB_NMI - bool "Serial console over KGDB NMI debugger port" - depends on KGDB_SERIAL_CONSOLE - help - This special driver allows you to temporary use NMI debugger port - as a normal console (assuming that the port is attached to KGDB). - - Unlike KDB's disable_nmi command, with this driver you are always - able to go back to the debugger using KGDB escape sequence ($3#33). - This is because this console driver processes the input in NMI - context, and thus is able to intercept the magic sequence. - - Note that since the console interprets input and uses polling - communication methods, for things like PPP you still must fully - detach debugger port from the KGDB NMI (i.e. disable_nmi), and - use raw console. - - If unsure, say N. - config SERIAL_MESON tristate "Meson serial port support" depends on ARCH_MESON || COMPILE_TEST diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile index 6ff74f0a9530..3019260d9120 100644 --- a/drivers/tty/serial/Makefile +++ b/drivers/tty/serial/Makefile @@ -96,6 +96,5 @@ obj-$(CONFIG_SERIAL_ZS) += zs.o # GPIOLIB helpers for modem control lines obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o -obj-$(CONFIG_SERIAL_KGDB_NMI) += kgdb_nmi.o obj-$(CONFIG_KGDB_SERIAL_CONSOLE) += kgdboc.o obj-$(CONFIG_SERIAL_NUVOTON_MA35D1) += ma35d1_serial.o diff --git a/drivers/tty/serial/kgdb_nmi.c b/drivers/tty/serial/kgdb_nmi.c deleted file mode 100644 index 2833708e369f..000000000000 --- a/drivers/tty/serial/kgdb_nmi.c +++ /dev/null @@ -1,280 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * KGDB NMI serial console - * - * Copyright 2010 Google, Inc. - * Arve Hjønnevåg - * Colin Cross - * Copyright 2012 Linaro Ltd. - * Anton Vorontsov - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static atomic_t kgdb_nmi_num_readers = ATOMIC_INIT(0); - -static int kgdb_nmi_console_setup(struct console *co, char *options) -{ - arch_kgdb_ops.enable_nmi(1); - - /* The NMI console uses the dbg_io_ops to issue console messages. To - * avoid duplicate messages during kdb sessions we must inform kdb's - * I/O utilities that messages sent to the console will automatically - * be displayed on the dbg_io. - */ - dbg_io_ops->cons = co; - - return 0; -} - -static void kgdb_nmi_console_write(struct console *co, const char *s, uint c) -{ - int i; - - for (i = 0; i < c; i++) - dbg_io_ops->write_char(s[i]); -} - -static struct tty_driver *kgdb_nmi_tty_driver; - -static struct tty_driver *kgdb_nmi_console_device(struct console *co, int *idx) -{ - *idx = co->index; - return kgdb_nmi_tty_driver; -} - -static struct console kgdb_nmi_console = { - .name = "ttyNMI", - .setup = kgdb_nmi_console_setup, - .write = kgdb_nmi_console_write, - .device = kgdb_nmi_console_device, - .flags = CON_PRINTBUFFER | CON_ANYTIME, - .index = -1, -}; - -/* - * This is usually the maximum rate on debug ports. We make fifo large enough - * to make copy-pasting to the terminal usable. - */ -#define KGDB_NMI_BAUD 115200 -#define KGDB_NMI_FIFO_SIZE roundup_pow_of_two(KGDB_NMI_BAUD / 8 / HZ) - -struct kgdb_nmi_tty_priv { - struct tty_port port; - struct timer_list timer; - STRUCT_KFIFO(char, KGDB_NMI_FIFO_SIZE) fifo; -}; - -static struct tty_port *kgdb_nmi_port; - -/* - * The tasklet is cheap, it does not cause wakeups when reschedules itself, - * instead it waits for the next tick. - */ -static void kgdb_nmi_tty_receiver(struct timer_list *t) -{ - struct kgdb_nmi_tty_priv *priv = from_timer(priv, t, timer); - char ch; - - priv->timer.expires = jiffies + (HZ/100); - add_timer(&priv->timer); - - if (likely(!atomic_read(&kgdb_nmi_num_readers) || - !kfifo_len(&priv->fifo))) - return; - - while (kfifo_out(&priv->fifo, &ch, 1)) - tty_insert_flip_char(&priv->port, ch, TTY_NORMAL); - tty_flip_buffer_push(&priv->port); -} - -static int kgdb_nmi_tty_activate(struct tty_port *port, struct tty_struct *tty) -{ - struct kgdb_nmi_tty_priv *priv = - container_of(port, struct kgdb_nmi_tty_priv, port); - - kgdb_nmi_port = port; - priv->timer.expires = jiffies + (HZ/100); - add_timer(&priv->timer); - - return 0; -} - -static void kgdb_nmi_tty_shutdown(struct tty_port *port) -{ - struct kgdb_nmi_tty_priv *priv = - container_of(port, struct kgdb_nmi_tty_priv, port); - - del_timer(&priv->timer); - kgdb_nmi_port = NULL; -} - -static const struct tty_port_operations kgdb_nmi_tty_port_ops = { - .activate = kgdb_nmi_tty_activate, - .shutdown = kgdb_nmi_tty_shutdown, -}; - -static int kgdb_nmi_tty_install(struct tty_driver *drv, struct tty_struct *tty) -{ - struct kgdb_nmi_tty_priv *priv; - int ret; - - priv = kzalloc(sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; - - INIT_KFIFO(priv->fifo); - timer_setup(&priv->timer, kgdb_nmi_tty_receiver, 0); - tty_port_init(&priv->port); - priv->port.ops = &kgdb_nmi_tty_port_ops; - tty->driver_data = priv; - - ret = tty_port_install(&priv->port, drv, tty); - if (ret) { - pr_err("%s: can't install tty port: %d\n", __func__, ret); - goto err; - } - return 0; -err: - tty_port_destroy(&priv->port); - kfree(priv); - return ret; -} - -static void kgdb_nmi_tty_cleanup(struct tty_struct *tty) -{ - struct kgdb_nmi_tty_priv *priv = tty->driver_data; - - tty->driver_data = NULL; - tty_port_destroy(&priv->port); - kfree(priv); -} - -static int kgdb_nmi_tty_open(struct tty_struct *tty, struct file *file) -{ - struct kgdb_nmi_tty_priv *priv = tty->driver_data; - unsigned int mode = file->f_flags & O_ACCMODE; - int ret; - - ret = tty_port_open(&priv->port, tty, file); - if (!ret && (mode == O_RDONLY || mode == O_RDWR)) - atomic_inc(&kgdb_nmi_num_readers); - - return ret; -} - -static void kgdb_nmi_tty_close(struct tty_struct *tty, struct file *file) -{ - struct kgdb_nmi_tty_priv *priv = tty->driver_data; - unsigned int mode = file->f_flags & O_ACCMODE; - - if (mode == O_RDONLY || mode == O_RDWR) - atomic_dec(&kgdb_nmi_num_readers); - - tty_port_close(&priv->port, tty, file); -} - -static void kgdb_nmi_tty_hangup(struct tty_struct *tty) -{ - struct kgdb_nmi_tty_priv *priv = tty->driver_data; - - tty_port_hangup(&priv->port); -} - -static unsigned int kgdb_nmi_tty_write_room(struct tty_struct *tty) -{ - /* Actually, we can handle any amount as we use polled writes. */ - return 2048; -} - -static ssize_t kgdb_nmi_tty_write(struct tty_struct *tty, const u8 *buf, - size_t c) -{ - int i; - - for (i = 0; i < c; i++) - dbg_io_ops->write_char(buf[i]); - return c; -} - -static const struct tty_operations kgdb_nmi_tty_ops = { - .open = kgdb_nmi_tty_open, - .close = kgdb_nmi_tty_close, - .install = kgdb_nmi_tty_install, - .cleanup = kgdb_nmi_tty_cleanup, - .hangup = kgdb_nmi_tty_hangup, - .write_room = kgdb_nmi_tty_write_room, - .write = kgdb_nmi_tty_write, -}; - -int kgdb_register_nmi_console(void) -{ - int ret; - - if (!arch_kgdb_ops.enable_nmi) - return 0; - - kgdb_nmi_tty_driver = tty_alloc_driver(1, TTY_DRIVER_REAL_RAW); - if (IS_ERR(kgdb_nmi_tty_driver)) { - pr_err("%s: cannot allocate tty\n", __func__); - return PTR_ERR(kgdb_nmi_tty_driver); - } - kgdb_nmi_tty_driver->driver_name = "ttyNMI"; - kgdb_nmi_tty_driver->name = "ttyNMI"; - kgdb_nmi_tty_driver->num = 1; - kgdb_nmi_tty_driver->type = TTY_DRIVER_TYPE_SERIAL; - kgdb_nmi_tty_driver->subtype = SERIAL_TYPE_NORMAL; - kgdb_nmi_tty_driver->init_termios = tty_std_termios; - tty_termios_encode_baud_rate(&kgdb_nmi_tty_driver->init_termios, - KGDB_NMI_BAUD, KGDB_NMI_BAUD); - tty_set_operations(kgdb_nmi_tty_driver, &kgdb_nmi_tty_ops); - - ret = tty_register_driver(kgdb_nmi_tty_driver); - if (ret) { - pr_err("%s: can't register tty driver: %d\n", __func__, ret); - goto err_drv_reg; - } - - register_console(&kgdb_nmi_console); - - return 0; -err_drv_reg: - tty_driver_kref_put(kgdb_nmi_tty_driver); - return ret; -} -EXPORT_SYMBOL_GPL(kgdb_register_nmi_console); - -int kgdb_unregister_nmi_console(void) -{ - int ret; - - if (!arch_kgdb_ops.enable_nmi) - return 0; - arch_kgdb_ops.enable_nmi(0); - - ret = unregister_console(&kgdb_nmi_console); - if (ret) - return ret; - - tty_unregister_driver(kgdb_nmi_tty_driver); - tty_driver_kref_put(kgdb_nmi_tty_driver); - - return 0; -} -EXPORT_SYMBOL_GPL(kgdb_unregister_nmi_console); diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c index 58ea1e1391ce..85f6c5a76e0f 100644 --- a/drivers/tty/serial/kgdboc.c +++ b/drivers/tty/serial/kgdboc.c @@ -186,8 +186,6 @@ static void cleanup_kgdboc(void) if (configured != 1) return; - if (kgdb_unregister_nmi_console()) - return; kgdboc_unregister_kbd(); kgdb_unregister_io_module(&kgdboc_io_ops); } @@ -250,16 +248,10 @@ static int configure_kgdboc(void) if (err) goto noconfig; - err = kgdb_register_nmi_console(); - if (err) - goto nmi_con_failed; - configured = 1; return 0; -nmi_con_failed: - kgdb_unregister_io_module(&kgdboc_io_ops); noconfig: kgdboc_unregister_kbd(); configured = 0; diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 51ef131e66b7..14739952698b 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h @@ -306,14 +306,6 @@ extern const struct kgdb_arch arch_kgdb_ops; extern unsigned long kgdb_arch_pc(int exception, struct pt_regs *regs); -#ifdef CONFIG_SERIAL_KGDB_NMI -extern int kgdb_register_nmi_console(void); -extern int kgdb_unregister_nmi_console(void); -#else -static inline int kgdb_register_nmi_console(void) { return 0; } -static inline int kgdb_unregister_nmi_console(void) { return 0; } -#endif - extern int kgdb_register_io_module(struct kgdb_io *local_kgdb_io_ops); extern void kgdb_unregister_io_module(struct kgdb_io *local_kgdb_io_ops); extern struct kgdb_io *dbg_io_ops; From patchwork Wed Jan 29 16:25:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 860806 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E0921DF96B for ; Wed, 29 Jan 2025 16:27:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738168058; cv=none; b=mcn2UgtV/NTri6Wod24Lh2VolQ44M9F7X5V9PA5YbKrsq0AtH/Z1Bkkp8Wadckvp0VYSuDBagP3k/Uv0WVCZoqG2D2j9FVWplGMChS1hqvxljS6kBgsnHvvb8lQATIqLakQVmXty26aa9Q0rf/v2nKjlXzUo191QQtGwlO/0TkA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738168058; c=relaxed/simple; bh=xC0xL3xkUrJX5BUOGfgoFPaOTr3+cZj7iUN6rx1TtGs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C4LeAA090wpZIr8ueiv5wLm0ashcyAfW9L4VECuVrFHYsfQvItUR1awhjMb3BKsRZqJ1ffXNaHwL+VOORaicCBOVpgifyoOFnh71vp0gqma+EOPvDaRmpmIbKrsHUBCC695zKcpWDHz8wJ63teW63jveTQ/AcLXRgLf0C48mOuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=dsMSUfXJ; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="dsMSUfXJ" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2166f1e589cso10455075ad.3 for ; Wed, 29 Jan 2025 08:27:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738168055; x=1738772855; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SlqbrB8qvt9xCnWbF/o5yExRVumEzsDKl37nom5IOEo=; b=dsMSUfXJNi8LYLrdK12UKImSskE5VUlStvYcvDuBEmGM5MvFGMeNoKni7tLBBM/6IT voZX0Q5YcBojiYLHcM08qJJ6tMrHXmI8b7eGVENzLWV/yFWNtQec0sWNq7iNQ/YhseiG SbMhUAp+v8d61BaEkC2nWE6o2b3g7F+crW5Bs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738168055; x=1738772855; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SlqbrB8qvt9xCnWbF/o5yExRVumEzsDKl37nom5IOEo=; b=XKj4ql5vlOAiNY/B/ZUaKoRam+EPA2OxhiNdaHTnFUIVlH3Aoy+Ed1DM54TLQHrrCE WOJ0zUZ9OFbRJxCrBFTdxjboS22SvsPA0TIE1v+9WVCx+kaXg9/lDln2BeSDRj10jfaa o5ydxHz2WQp0RKl4P/Vas21nfqbP6Jj7Ng8PbWR9vqvYwlzp1TlQQpXb+hvMHygxRYba vJSrrBTpqh9qOh3Ul8UsF7seKlwqGqIc2qhdIMCtEvt4FAwfi56SWcsZxQ0qS3ESiOC7 P0X4oUURY4WBnpGh5oEgrYWKBos27G4jy/MjsUSUXt8AJHRAtxzwjyvrZFXQ4/S1IEGV /6eQ== X-Forwarded-Encrypted: i=1; AJvYcCWy7bCgj1AP781p0FltnzQ56vL3hzk+/ZgAUeUMcdZWFnoU2Wj+JBOnu/Dxwm2lZsF4ojj08BkZuAu+OKk=@vger.kernel.org X-Gm-Message-State: AOJu0Yww7iRcvmR8j6GRlMTO2MBqywtJe8ozGR/EaMmJFW/smBlH6az9 53ms1oVPGDGxnzsRNGyoyOD29xw/5Z80Qb5IHkiQ7I9nYe5+fTJPLhkmU5ogiw== X-Gm-Gg: ASbGncvZUoL4HVgA6ESX9ew7/DRP+6GIRRWrNqa1dHOKd4uRxSx4px8/VIER6fVFgas OdKhH8PN+DC53wPjj/kTkTFsdxl/QgFZeN8p2WRALQZNpzHL8DtGOKF7X/3VdBnnkooy3mqSX2F fYLX8a5i1yxjoND/4b8xyMMtHwmGJr3QNGFD0HS8MAxuUdh5bWYQBgILpIxlTWza+P8hU5E8ANb 6U8AtIR0vB/jTCspc6YiIe0i+M2cUZ6EJ2DQce1oXo2Uj2cU65wVwKfXcsbeIYip5hg6TMcL4r9 P3s5lVYQMd7ORy4pXYztx0i3g+GJq8iEgf9UhNbwEPVY+Q== X-Google-Smtp-Source: AGHT+IGwHJzqht4xgAE8aAHlAbgCQ+Cy1fdEcP9Joan7vjqiFIKdYsXcIDYJ2XLcGb2ysyVeLoX41A== X-Received: by 2002:a05:6a20:12c1:b0:1db:e0d7:675c with SMTP id adf61e73a8af0-1ed7a4c9922mr7132442637.13.1738168054926; Wed, 29 Jan 2025 08:27:34 -0800 (PST) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:fa8a:f68a:6cb9:40b2]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ac496cb4810sm10577009a12.66.2025.01.29.08.27.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 08:27:33 -0800 (PST) From: Douglas Anderson To: Greg Kroah-Hartman , Jiri Slaby , Daniel Thompson Cc: "Dr . David Alan Gilbert" , kgdb-bugreport@lists.sourceforge.net, Anton Vorontsov , Sumit Garg , linux-serial@vger.kernel.org, Douglas Anderson , Jason Wessel , Nir Lichtman , Thorsten Blum , Yuran Pereira , Zheng Zengkai , linux-kernel@vger.kernel.org Subject: [PATCH 2/3] Revert "kdb: Implement disable_nmi command" Date: Wed, 29 Jan 2025 08:25:51 -0800 Message-ID: <20250129082535.2.Ib91bfb95bdcf77591257a84063fdeb5b4dce65b1@changeid> X-Mailer: git-send-email 2.48.1.262.g85cc9f2d1e-goog In-Reply-To: <20250129162700.848018-1-dianders@chromium.org> References: <20250129162700.848018-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit ad394f66fa57ae66014cb74f337e2820bac4c417. No architectures ever implemented `enable_nmi` since the later patches in the series adding it never landed. It's been a long time. Drop it. NOTE: this is not a clean revert due to changes in the file in the meantime. Signed-off-by: Douglas Anderson --- kernel/debug/kdb/kdb_main.c | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 5f4be507d79f..3a5408b54570 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -2119,32 +2118,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 [] @@ -2836,20 +2809,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. */ From patchwork Wed Jan 29 16:25:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 860970 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A37181DF992 for ; Wed, 29 Jan 2025 16:27:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738168059; cv=none; b=hpCRzoLK6WchwjWDjNUqsPHPgSuQ2phUaU1tJWg5XNKOplOta28FaTYG0kf4aBA1rG3YQXAFQp/nUBqTwHnDrsNaKANgxRKNHfRQ3AWkRaAerbEwK3IdFiUZcAOG8zz+S82jIB5vRPJnUWipzSPwB84EMKrnDp9Oo8onSBx7FCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738168059; c=relaxed/simple; bh=95ti/EtNpoooFEon5wbA1jBQ2db4r1XuLvR1Tv/exrQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RGD4LBiR2w9IIrGv2jxH/tCj8rcLPQaLOXEL9XqzA90Sco3xkgrEvSTETzgMb8AF6mPfnff48R+75LjJy1jhDndPei8r3gYeckHePrYQ+TK/uyL3g6AFUFlfYwRRJunm9LTK5VkIoJjbtf/AlFfuQQ2abT/qxUrPGet21aXisI8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=nHznBXQK; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="nHznBXQK" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-21628b3fe7dso128291685ad.3 for ; Wed, 29 Jan 2025 08:27:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738168057; x=1738772857; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GHZ2KPsF4COFgm+b5LCKQGhzh/Bu/7L9BM3q7wjetag=; b=nHznBXQKy71iPu3Z+/xGr7pw/XOVnc9TC0065py3OcxI/B9AwAVYkSYzKCFm8w1vzV bDiLVZ7kkBP+Qj8bZ+1HY/x9vHE59RFGpqR7urnZqn6kgL0lqfD9gWsIeIpvWjEbj48H IFbxCqKnJSgYxLSbBT+hurugvvyDOgd4p97SI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738168057; x=1738772857; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GHZ2KPsF4COFgm+b5LCKQGhzh/Bu/7L9BM3q7wjetag=; b=PlwT4HHqGhwo0hxUsU+CRJsa05XlC95ID/0XW8Uj41WLHpbRWwyiPhB33k/X228YM+ pJsp0BQI8r8nmwoxS56nSJxG27+e2lRFCPa52rWoetVfvw+7pRyt+CZFMpysTanA3ts7 gLI3+M8JP69erhtfd62+ZR+/wV6BQ0hNy9+bZqR5ibA5bSeFlMlN5Gt/jzouOxy+0nsQ mCfVN2hcnUE9MVVl2cKyFiCEVIkEe6wH3SUpG44p1yVJAoJzZxLJQbaoEqipZHC2ZQWv wL5wi4mjVPa25Rg4VnGTMDV/uji4o6aOS9mB8hvv9HcUba69mEj//Ev7pCGQR/sJMgxK hEyw== X-Forwarded-Encrypted: i=1; AJvYcCWd8uWFU5SUZEKMLXSTQ4ONK/xPG8t4gCWnV4TNWWZHExztdwMmQVm0DB8Lj9pj5QwcuPetrJ8kvK/F1uE=@vger.kernel.org X-Gm-Message-State: AOJu0Yzmw7q1+XxHfFOpPx0IAfzUbZIRqkrZ2YtYNCxRf+WTMC8FtfFl tc0tz3lqgJoZPID+NKnvG13R9zObxRvhdSaX4XfWNI7gtMHCTwZ2709JctKu6w== X-Gm-Gg: ASbGncuvdwRp8BRTq/ejiE3Gv4k4cRLbpLMTAsKxUXEZns3eho+fmfxGjWOsqfVwuWn OhSkkuPaoApmQBwq2d7eRpFOftxNGw0/gNx8ZTYWi7cPfaqBoYaisnL4jv+QFJvwqtMFwUHzj9h hjFhSKyNDcCcZgUOAYyEAoSO7icmKYhjWH6HdcVrWlwZ/pgj2nEy9t2iSzs9y9AGxsUow1YslRd Hj9uVBjlNr/egM6YQK99pRumYLq11KDbDU7B1i4WkoQ4eudpUJd1iI4zgdXQCNKeHlBtZ+i6qB2 xhU8/Tdvyc4C/FCRT56bIZJIZ0TacVNSHXQ= X-Google-Smtp-Source: AGHT+IEk/aQhe7EQCRd7H4ZWjZQuegTa1eAwg8ILNMsYIINEo4OJU9VMXs6WW1rI8GzMVr3E6kOBgg== X-Received: by 2002:a05:6a21:b8a:b0:1ea:e7be:ff27 with SMTP id adf61e73a8af0-1ed7a5b6781mr6359250637.7.1738168056947; Wed, 29 Jan 2025 08:27:36 -0800 (PST) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:fa8a:f68a:6cb9:40b2]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ac496cb4810sm10577009a12.66.2025.01.29.08.27.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 08:27:36 -0800 (PST) From: Douglas Anderson To: Greg Kroah-Hartman , Jiri Slaby , Daniel Thompson Cc: "Dr . David Alan Gilbert" , kgdb-bugreport@lists.sourceforge.net, Anton Vorontsov , Sumit Garg , linux-serial@vger.kernel.org, Douglas Anderson , Jason Wessel , linux-kernel@vger.kernel.org Subject: [PATCH 3/3] Revert "kernel/debug: Mask KGDB NMI upon entry" Date: Wed, 29 Jan 2025 08:25:52 -0800 Message-ID: <20250129082535.3.I2254953cd852f31f354456689d68b2d910de3fbe@changeid> X-Mailer: git-send-email 2.48.1.262.g85cc9f2d1e-goog In-Reply-To: <20250129162700.848018-1-dianders@chromium.org> References: <20250129162700.848018-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit 5a14fead07bcf4e0acc877a8d9e1d1f40a441153. No architectures ever implemented `enable_nmi` since the later patches in the series adding it never landed. It's been a long time. Drop it. NOTE: this is not a clean revert due to changes in the file in the meantime. Signed-off-by: Douglas Anderson --- include/linux/kgdb.h | 3 --- kernel/debug/debug_core.c | 14 +++----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 14739952698b..5eebbe7a3545 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h @@ -257,7 +257,6 @@ extern void kgdb_arch_late(void); * hardware breakpoints. * @correct_hw_break: Allow an architecture to specify how to correct the * hardware debug registers. - * @enable_nmi: Manage NMI-triggered entry to KGDB */ struct kgdb_arch { unsigned char gdb_bpt_instr[BREAK_INSTR_SIZE]; @@ -270,8 +269,6 @@ struct kgdb_arch { void (*disable_hw_break)(struct pt_regs *regs); void (*remove_all_hw_break)(void); void (*correct_hw_break)(void); - - void (*enable_nmi)(bool on); }; /** diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index ce1bb2301c06..0b9495187fba 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c @@ -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);