Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3772042pxv; Mon, 19 Jul 2021 08:23:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyVugYJx/5GNsc0cnh2IdNRfS4JEtiILlbQETr2PQNlgFoRPl8gpzudBulKpkiRN3zcXMER X-Received: by 2002:a5e:8816:: with SMTP id l22mr14178093ioj.100.1626708210777; Mon, 19 Jul 2021 08:23:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626708210; cv=none; d=google.com; s=arc-20160816; b=EtfNuY1cMY8TebOFPhwm6fpIOxtFf2w4g+nA9O9y3NVxogZNw4PjP/saGYGbF1oyQx 35yfxO6Aw44zvK6bipWnRc7LriMEmq/hLefrNLl2qnYR6m7n6bmKXl7rO3umImCEbawk 47o4z6Tg3zCHzRJeuSocc1fr05Xo9S893NlcC0qDTtet8Fi8CLTUUdBKijl17fnIyL28 /gYwImmmO1JpT5Wf7YakUzzdSXOixQxezhmjdnIrOwH65R+hbu+lzYA/QK+EcWlKnhE8 SfIwQUyWQFcLFlwGTSzfJxUXFA8hklDLrcldRYqTNsXBk9XlPai7YenxqU0UdRioHWM7 ZHIA== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Q6HC6NNn8T0gkzVpZvkhbnnONUB+7oj6KmNFp2KVe10=; b=CSGGbu9vSyo4J/JNQFQHNN2KzIdr6SnsYEAYfnkyBiX1M5aRNp/zZIGwE2Otj5zv5A 0f4O+HfdB5kgUAOexGTFRdIVyOHMst88uQjtJH/LG+s1nSdFWIN9jg/zFDgPpwUXZe6T jVPoMkl3yn8RycJJjwDBjcozLAFU0yrTP8vfuwGBuA1I8hkFslNF1QhVQAneKO4//XJM bZ9lTnV914h19LGGTZ83rt+EBuP8BjrdTzWba8YGp4OZI74stsmycovd/elGR2RpSI8+ ZLxbbAHTMEGXdzm2ZGogwuyx5HNjevUCx75RO8eGZx8zrsfiHIiY9GLMwkM0ETrXsWqL WdMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Aue9L1NY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o18si23271845jah.71.2021.07.19.08.23.17; Mon, 19 Jul 2021 08:23:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Aue9L1NY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245049AbhGSOll (ORCPT + 99 others); Mon, 19 Jul 2021 10:41:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:46606 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244976AbhGSOas (ORCPT ); Mon, 19 Jul 2021 10:30:48 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4C74E6113A; Mon, 19 Jul 2021 15:11:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626707487; bh=6IIqv45VZhMDWIeJ4VV/kuRvyK4QUeRR9GmrKQlpsBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Aue9L1NYh/8JSsgrSZ4UCS/ciVPNw0Km04zuu5Nq2lsllNEW5kL1CnWKMCy/cfz3b wONK/Ne4vkwePVkApOj4/W6+N8Q1Id9M1uARZcZoZ1d0HUfLPeQueiPhRTq9tmirTS 3KdqqietWMnJamxA9i3Mj2ImHVIqxQB0jAoB+atw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sherry Sun , Sasha Levin Subject: [PATCH 4.9 185/245] tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero Date: Mon, 19 Jul 2021 16:52:07 +0200 Message-Id: <20210719144946.382645003@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144940.288257948@linuxfoundation.org> References: <20210719144940.288257948@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sherry Sun [ Upstream commit fcb10ee27fb91b25b68d7745db9817ecea9f1038 ] We should be very careful about the register values that will be used for division or modulo operations, althrough the possibility that the UARTBAUD register value is zero is very low, but we had better to deal with the "bad data" of hardware in advance to avoid division or modulo by zero leading to undefined kernel behavior. Signed-off-by: Sherry Sun Link: https://lore.kernel.org/r/20210427021226.27468-1-sherry.sun@nxp.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/tty/serial/fsl_lpuart.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 5b6093dc3ff2..a4c1797e30d7 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -1766,6 +1766,9 @@ lpuart32_console_get_options(struct lpuart_port *sport, int *baud, bd = lpuart32_read(sport->port.membase + UARTBAUD); bd &= UARTBAUD_SBR_MASK; + if (!bd) + return; + sbr = bd; uartclk = clk_get_rate(sport->clk); /* -- 2.30.2