Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2322574imu; Thu, 17 Jan 2019 12:07:52 -0800 (PST) X-Google-Smtp-Source: ALg8bN6qh1KC9GkhyVGr4N4095CAyhz+HTJMXlusidbxww3nJuHKsv7JfKi86OhAl5qKIQBF5YD6 X-Received: by 2002:a65:6684:: with SMTP id b4mr14778813pgw.55.1547755672875; Thu, 17 Jan 2019 12:07:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547755672; cv=none; d=google.com; s=arc-20160816; b=a8nn0GTLZC8U/m3CGyWV1HlCq/ogF6hGeNlfa/cf6rEX7dx+6Y3KuJhB61Mz/jQQ2S 8Z+KocAWlWQeMGY340/n9QsRf54x6ZyDoQlpdoVcaPbsERZbvIxR13MigJxx7N9kp2YS aegjrFwSnUalAxXe+zPMzlKPXgvklv1iGIGfbOwJHAryr1GtZyk1nA5XygViHjbx+YBG 3jCZ0geEyieXejN9g5yuBU1E6I98BtzLUiHyUPeR5cbLk5IxkLtkV1yXr9GZiY3uh/Qe BpODbKDVBGGejnqt67m50U+oNepg2cFUREw3xERynV8zZ6vU4wYXN+oS0Bp6L3aY3KEQ N9hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:references:message-id:date :thread-index:thread-topic:subject:to:from:dkim-signature; bh=z5UHfqjlYMuHAfZj9vBh3kktJbllCGP/fQHQ89nZo3g=; b=rJqvU6vqW/CP/X4RHR8ezZSnT8wjSWJ+b6X4Oqx1gVLTfNP8WKIKzFJh5MiX2hCP+I RcyCZwJPawPnd1n+Gqdcj71YwWo1d+v/XvVcp1SX0jL16GGgYUYg++ql40vrSu139hwQ OciU2rsQ4tJhQ1/zDggYrb2cPolsNLWFPfvWoarYwPwV3inKi+4/GLgh7gEjslZyxeyx qNFegjoohjNE07bHBFTBXW7aTsnEIfTQkAjMmK7VPWGR/MN0ep32lof0Hj8kArHL946K 4qr/rTbuhLbZpYGzhhIiJmuuUAa010TnkX2bDMWM+uAp9Xl9VFGwi88/62ahTPDF4CpE RddA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@alliedtelesis.co.nz header.s=mail181024 header.b="1WJs/Azf"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=alliedtelesis.co.nz Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w5si2461462pfl.279.2019.01.17.12.07.37; Thu, 17 Jan 2019 12:07:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@alliedtelesis.co.nz header.s=mail181024 header.b="1WJs/Azf"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=alliedtelesis.co.nz Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729218AbfAQUGZ (ORCPT + 99 others); Thu, 17 Jan 2019 15:06:25 -0500 Received: from gate2.alliedtelesis.co.nz ([202.36.163.20]:59232 "EHLO gate2.alliedtelesis.co.nz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728797AbfAQUGY (ORCPT ); Thu, 17 Jan 2019 15:06:24 -0500 Received: from mmarshal3.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 5C1748365A; Fri, 18 Jan 2019 09:06:21 +1300 (NZDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail181024; t=1547755581; bh=z5UHfqjlYMuHAfZj9vBh3kktJbllCGP/fQHQ89nZo3g=; h=From:To:Subject:Date:References; b=1WJs/Azfjaw0t8ZghUSlFMSr1PzGMitrZLiCwxAAompG8RAPjNd/+SGRxdlh7I4vD nqLU8TPwmUr/2a4GakQI11J8uqtYw4/RR9IbD2vIpBNNzn7abg7IihI02DBESZ6sZb rVjq/mR2gNZbgfIaKUJCx/wv5oETcqB7/w6+lGBZfEPMSZDq6ckBUT7Nx63Qk1vK8b E1+6roDAtPfSuGxRQCWUEmnnS/jCGPOUgQV0eaj39/KeSEfqbP1FbbN5FTeujGF4qD wXawTBi+ybl1+cDqJSmP1THRVcJtHvo4aFdb0XkBGyo9ougOau8FT1pRG8c7AhGrMi JqUFJRKOiPVYw== Received: from svr-chch-ex1.atlnz.lc (Not Verified[10.32.16.77]) by mmarshal3.atlnz.lc with Trustwave SEG (v7,5,8,10121) id ; Fri, 18 Jan 2019 09:06:19 +1300 Received: from svr-chch-ex1.atlnz.lc (2001:df5:b000:bc8::77) by svr-chch-ex1.atlnz.lc (2001:df5:b000:bc8::77) with Microsoft SMTP Server (TLS) id 15.0.1156.6; Fri, 18 Jan 2019 09:06:16 +1300 Received: from svr-chch-ex1.atlnz.lc ([fe80::409d:36f5:8899:92e8]) by svr-chch-ex1.atlnz.lc ([fe80::409d:36f5:8899:92e8%12]) with mapi id 15.00.1156.000; Fri, 18 Jan 2019 09:06:16 +1300 From: Darwin Dingel To: "zhe.he@windriver.com" , "gregkh@linuxfoundation.org" , "jslaby@suse.com" , "andriy.shevchenko@linux.intel.com" , "bigeasy@linutronix.de" , "Jisheng.Zhang@synaptics.com" , "linux-serial@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "colin.king@canonical.com" , "dan.carpenter@oracle.com" Subject: Re: [PATCH] serial: 8250: Fix serial8250 initialization crash Thread-Topic: [PATCH] serial: 8250: Fix serial8250 initialization crash Thread-Index: AQHUrkMcXKnwLVY2dEaW/IjGFnxJ8w== Date: Thu, 17 Jan 2019 20:06:15 +0000 Message-ID: <1fcc3761e9f34254a25602002f65773a@svr-chch-ex1.atlnz.lc> References: <1547715619-181299-1-git-send-email-zhe.he@windriver.com> <41c574bfdce7490597079dae8f328661@svr-chch-ex1.atlnz.lc> Accept-Language: en-NZ, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [2001:df5:b000:23:c9cc:a3c:eb68:bca4] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 18/01/19 8:49 AM, Darwin Dingel wrote:=0A= > On 17/01/19 10:00 PM, zhe.he@windriver.com wrote:=0A= >> From: He Zhe =0A= >>=0A= >> The initialization code of interrupt backoff work might reference NULL= =0A= >> pointer and cause the following crash, if no port was found.=0A= >>=0A= >> [ 10.017727] CPU 0 Unable to handle kernel paging request at virtual a= ddress 000001b0, epc =3D=3D 807088e0, ra =3D=3D 8070863c=0A= >> ---- snip ----=0A= >> [ 11.704470] [<807088e0>] serial8250_register_8250_port+0x318/0x4ac=0A= >> [ 11.747251] [<80708d74>] serial8250_probe+0x148/0x1c0=0A= >> [ 11.789301] [<80728450>] platform_drv_probe+0x40/0x94=0A= >> [ 11.830515] [<807264f8>] really_probe+0xf8/0x318=0A= >> [ 11.870876] [<80726b7c>] __driver_attach+0x110/0x12c=0A= >> [ 11.910960] [<80724374>] bus_for_each_dev+0x78/0xcc=0A= >> [ 11.951134] [<80725958>] bus_add_driver+0x200/0x234=0A= >> [ 11.989756] [<807273d8>] driver_register+0x84/0x148=0A= >> [ 12.029832] [<80d72f84>] serial8250_init+0x138/0x198=0A= >> [ 12.070447] [<80100e6c>] do_one_initcall+0x5c/0x2a0=0A= >> [ 12.110104] [<80d3a208>] kernel_init_freeable+0x370/0x484=0A= >> [ 12.150722] [<80a49420>] kernel_init+0x10/0xf8=0A= >> [ 12.191517] [<8010756c>] ret_from_kernel_thread+0x14/0x1c=0A= >>=0A= >> This patch makes sure the initialization code can be reached only if a p= ort=0A= >> is found.=0A= >>=0A= >> Fixes: commit 6d7f677a2afa ("serial: 8250: Rate limit serial port rx int= errupts during input overruns")=0A= >> Signed-off-by: He Zhe =0A= >> ---=0A= >> drivers/tty/serial/8250/8250_core.c | 17 +++++++++--------=0A= >> 1 file changed, 9 insertions(+), 8 deletions(-)=0A= >>=0A= >> diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/82= 50/8250_core.c=0A= >> index 189ab12..e441221 100644=0A= >> --- a/drivers/tty/serial/8250/8250_core.c=0A= >> +++ b/drivers/tty/serial/8250/8250_core.c=0A= >> @@ -1070,15 +1070,16 @@ int serial8250_register_8250_port(struct uart_82= 50_port *up)=0A= >> =0A= >> ret =3D 0;=0A= >> }=0A= >> - }=0A= >> =0A= >> - /* Initialise interrupt backoff work if required */=0A= >> - if (up->overrun_backoff_time_ms > 0) {=0A= >> - uart->overrun_backoff_time_ms =3D up->overrun_backoff_time_ms;=0A= >> - INIT_DELAYED_WORK(&uart->overrun_backoff,=0A= >> - serial_8250_overrun_backoff_work);=0A= >> - } else {=0A= >> - uart->overrun_backoff_time_ms =3D 0;=0A= >> + /* Initialise interrupt backoff work if required */=0A= >> + if (up->overrun_backoff_time_ms > 0) {=0A= >> + uart->overrun_backoff_time_ms =3D=0A= >> + up->overrun_backoff_time_ms;=0A= >> + INIT_DELAYED_WORK(&uart->overrun_backoff,=0A= >> + serial_8250_overrun_backoff_work);=0A= >> + } else {=0A= >> + uart->overrun_backoff_time_ms =3D 0;=0A= >> + }=0A= >> }=0A= >> =0A= >> mutex_unlock(&serial_mutex);=0A= >>=0A= > =0A= > Reviewed-by: Darwin Dingel =0A= > =0A= > I presume this is the same issue reported here:=0A= > =0A= > https://www.spinics.net/lists/linux-serial/msg33114.html=0A= > https://lkml.org/lkml/2018/12/22/171=0A= > =0A= > =0A= > =0A= > Thanks!=0A= > Regards,=0A= > =0A= > Darwin=0A= > =0A= =0A= Adding Colin and Dan.=0A= =0A= Regards,=0A= Darwin=0A=