Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp2613617rdb; Fri, 8 Dec 2023 13:28:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IESPwlr1ekvFlSr1vaAbk0BKkvJ4Q9iTprcA/ruAFm0LCU7jM1JRQbpZv/i1q5Wfe5Hd0E4 X-Received: by 2002:a05:6a20:5656:b0:18f:97c:4f6c with SMTP id is22-20020a056a20565600b0018f097c4f6cmr612018pzc.120.1702070937585; Fri, 08 Dec 2023 13:28:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702070937; cv=none; d=google.com; s=arc-20160816; b=dhPzoEdE5LXNU1WDrZc+Dm5JwGma0HD8gljLowcw2V2YcyOWbZxVl9Ac5hLMIHqX4m O8CKGI+sz1o1J1N9hPVgagYH5bqhXuSqpHKP1pMn23t9hwzU2c3V2cgKsRVA+QvrMN5q 5yZaI6MAr6SjiXMW+z6SRvq5Lvhcag84DGrsedFWCyHo3dg91wvuSejYNZQloIVqyJhg FALbbTluq0VU8LqhsqwRHru5OuBpAvqSAGCbCEtpnxesfBhFjRQ66HcqRR9jWVPQRQVh 84nvivMBARhT8p/+GZxvnkdtJkqYfReC6I8wrhwhgY7CuLzDcEcvwP8njblQViQ+jmIa 90+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=6V8Ylaoxxzu+9oG2y6Rx/LCYzw5rlCqx8iBGwVLGR7U=; fh=fC9Wmt5VH56W+rpfyLKUZpLcycuhQNVS+WBi6tyudOk=; b=dgBdgK1+wm8Kj/0PaF7S8gJIJ6RZk+LiRYFJ9kOntnKtEmvm3H94GXZ+EzEJeuuAqs wTQURXXJ5ceUZt+cx6RDmZmwWcHCT2HH2C5s/09POtx07c2bQEntzTuf4MoHNkKsfBln HvxwpWTCpLavERtLSh3X+B6baC/rmBk31F/OJGEF3JDUonyePUlQnqYrhLdDkz8H5V+r 0ISiJWRQc83gLgpcQWIMCmah4lNudW1xznKpDcFdWwgX5r3DvLPC2e6U50c2UwrxVtvg U/Iz7Vo/h9bShgY4HaZlumCgEYU9xjL4tz4nrXg4diSdM4TQMMsMbZcKbTPLKOPJKFw2 GjFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=SEty3CBv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id jj22-20020a170903049600b001d060d48fa7si2087002plb.399.2023.12.08.13.28.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 13:28:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=SEty3CBv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 8888F80A7E60; Fri, 8 Dec 2023 13:28:56 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229913AbjLHV2r (ORCPT + 99 others); Fri, 8 Dec 2023 16:28:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229572AbjLHV2q (ORCPT ); Fri, 8 Dec 2023 16:28:46 -0500 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20FCCA9 for ; Fri, 8 Dec 2023 13:28:52 -0800 (PST) Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-40c39ef63d9so2291615e9.3 for ; Fri, 08 Dec 2023 13:28:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1702070930; x=1702675730; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=6V8Ylaoxxzu+9oG2y6Rx/LCYzw5rlCqx8iBGwVLGR7U=; b=SEty3CBv4lvgIpWhuST53oxBoq48PZMSSkZwh23EJhUhJ+ToCJ+g0ryBqQjDMapgen nD81rmSv50JurBH5f0zs9QNE415Hf6Tm01mynXTZ04GhanXqJkZaA89DhSFLwwrlsGCp lB9cN+E3TScwGMoeAmKLiPAvri0W8M+JlYs/0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702070930; x=1702675730; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6V8Ylaoxxzu+9oG2y6Rx/LCYzw5rlCqx8iBGwVLGR7U=; b=Y/LRfKdad/raN4Q/zwNX2NcJ79Is68MxqeymSZkLUilTyhpvqsEOX4ie/eiWrtwVP9 tMsAVmSrdK0l2Hy2YvUI+ew4EAs6U6Tj9ZCWA8paxEq1l+FKdFLM/8xeUGf/xZH9aosH XmvB1tOLr0xdwmnDtwy0Q5pDABal/WdCPFrb7+McEdWvfcWcAjGvUQRNPEsEcSTUfb1M ZOwKqyXqsjQjIo3hD/lktRXTTn/SrKX7l1e5ZyCjkyZWzRRTQsuvQEeFBunkM8AfaqQg pQUe2x7wZ3/hxLVGzg2nxz9X2kOBJrln01U4NAprQtxDY3GCyCZBGwAGZs10eiXiHZKv bA5A== X-Gm-Message-State: AOJu0YxSxks8zhcf5i1L2hmiFQpc/ZPlcx3MR1vBmWVJCrIDvxBHdbFu PhmweSFG87nnOwWzPiAn7bL9vw== X-Received: by 2002:a7b:c4cb:0:b0:40b:5e21:cc28 with SMTP id g11-20020a7bc4cb000000b0040b5e21cc28mr296135wmk.83.1702070930308; Fri, 08 Dec 2023 13:28:50 -0800 (PST) Received: from panicking.amarulasolutions.com ([2.198.79.154]) by smtp.gmail.com with ESMTPSA id e12-20020a05600c4e4c00b0040b398f0585sm4081068wmq.9.2023.12.08.13.28.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 13:28:49 -0800 (PST) From: Michael Trimarchi To: Jason Wessel , Daniel Thompson Cc: Douglas Anderson , Greg Kroah-Hartman , Jiri Slaby , kgdb-bugreport@lists.sourceforge.net, linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, Michael Trimarchi Subject: [RFC PATCH] tty: serial: kgdboc: Fix 8250_* kgd over serial Date: Fri, 8 Dec 2023 22:28:45 +0100 Message-Id: <20231208212845.1679621-1-michael@amarulasolutions.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 08 Dec 2023 13:28:56 -0800 (PST) Use late_initcall_sync insted of module init to be sure that serial driver is really probed and get take handover from early driver. The 8250 register the platform driver after the 8250 core is initialized. As shown by kdbg Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1] _outb (addr=, value=) at ./include/asm-generic/io.h:584 584 __raw_writeb(value, PCI_IOBASE + addr); (gdb) bt This section of the code is too early because in this case the omap serial is not probed Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1] _outb (addr=, value=) at ./include/asm-generic/io.h:584 584 __raw_writeb(value, PCI_IOBASE + addr); (gdb) bt Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1] _outb (addr=, value=) at ./include/asm-generic/io.h:584 584 __raw_writeb(value, PCI_IOBASE + addr); (gdb) bt 0 _outb (addr=, value=) at ./include/asm-generic/io.h:584 1 logic_outb (value=0 '\000', addr=18446739675637874689) at lib/logic_pio.c:299 2 0xffff80008082dfcc in io_serial_out (p=0x0, offset=16760830, value=0) at drivers/tty/serial/8250/8250_port.c:416 3 0xffff80008082fe34 in serial_port_out (value=, offset=, up=) at ./include/linux/serial_core.h:677 4 serial8250_do_set_termios (port=0xffff8000828ee940 , termios=0xffff80008292b93c, old=0x0) at drivers/tty/serial/8250/8250_port.c:2860 5 0xffff800080830064 in serial8250_set_termios (port=0xfffffbfffe800000, termios=0xffbffe, old=0x0) at drivers/tty/serial/8250/8250_port.c:2912 6 0xffff80008082571c in uart_set_options (port=0xffff8000828ee940 , co=0x0, baud=115200, parity=110, bits=8, flow=110) at drivers/tty/serial/serial_core.c:2285 7 0xffff800080828434 in uart_poll_init (driver=0xfffffbfffe800000, line=16760830, options=0xffff8000828f7506 "115200n8") at drivers/tty/serial/serial_core.c:2656 8 0xffff800080801690 in tty_find_polling_driver (name=0xffff8000828f7500 "ttyS2,115200n8", line=0xffff80008292ba90) at drivers/tty/tty_io.c:410 9 0xffff80008086c0b0 in configure_kgdboc () at drivers/tty/serial/kgdboc.c:194 10 0xffff80008086c1ec in kgdboc_probe (pdev=0xfffffbfffe800000) at drivers/tty/serial/kgdboc.c:249 11 0xffff8000808b399c in platform_probe (_dev=0xffff000000ebb810) at drivers/base/platform.c:1404 12 0xffff8000808b0b44 in call_driver_probe (drv=, dev=) at drivers/base/dd.c:579 13 really_probe (dev=0xffff000000ebb810, drv=0xffff80008277f138 ) at drivers/base/dd.c:658 14 0xffff8000808b0d2c in __driver_probe_device (drv=0xffff80008277f138 , dev=0xffff000000ebb810) at drivers/base/dd.c:800 15 0xffff8000808b0eb8 in driver_probe_device (drv=0xfffffbfffe800000, dev=0xffff000000ebb810) at drivers/base/dd.c:830 16 0xffff8000808b0ff4 in __device_attach_driver (drv=0xffff80008277f138 , _data=0xffff80008292bc48) at drivers/base/dd.c:958 17 0xffff8000808ae970 in bus_for_each_drv (bus=0xfffffbfffe800000, start=0x0, data=0xffff80008292bc48, fn=0xffff8000808b0f3c <__device_attach_driver>) at drivers/base/bus.c:457 18 0xffff8000808b1408 in __device_attach (dev=0xffff000000ebb810, allow_async=true) at drivers/base/dd.c:1030 19 0xffff8000808b16d8 in device_initial_probe (dev=0xfffffbfffe800000) at drivers/base/dd.c:1079 20 0xffff8000808af9f4 in bus_probe_device (dev=0xffff000000ebb810) at drivers/base/bus.c:532 21 0xffff8000808ac77c in device_add (dev=0xfffffbfffe800000) at drivers/base/core.c:3625 22 0xffff8000808b3428 in platform_device_add (pdev=0xffff000000ebb800) at drivers/base/platform.c:716 23 0xffff800081b5dc0c in init_kgdboc () at drivers/tty/serial/kgdboc.c:292 24 0xffff800080014db0 in do_one_initcall (fn=0xffff800081b5dba4 ) at init/main.c:1236 25 0xffff800081b0114c in do_initcall_level (command_line=, level=) at init/main.c:1298 26 do_initcalls () at init/main.c:1314 27 do_basic_setup () at init/main.c:1333 28 kernel_init_freeable () at init/main.c:1551 29 0xffff8000810271ec in kernel_init (unused=0xfffffbfffe800000) at init/main.c:1441 30 0xffff800080015e80 in ret_from_fork () at arch/arm64/kernel/entry.S:857 Signed-off-by: Michael Trimarchi --- drivers/tty/serial/kgdboc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c index 7ce7bb164005..7f8364507f55 100644 --- a/drivers/tty/serial/kgdboc.c +++ b/drivers/tty/serial/kgdboc.c @@ -622,7 +622,7 @@ console_initcall(kgdboc_earlycon_late_init); #endif /* IS_BUILTIN(CONFIG_KGDB_SERIAL_CONSOLE) */ -module_init(init_kgdboc); +late_initcall_sync(init_kgdboc); module_exit(exit_kgdboc); module_param_call(kgdboc, param_set_kgdboc_var, param_get_string, &kps, 0644); MODULE_PARM_DESC(kgdboc, "[,baud]"); -- 2.40.1