Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3803388pxv; Mon, 19 Jul 2021 09:06:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxWuNbqL2OG/aISSc/A0uN7LzoJYOOH9+H79GPjsLBpJOtMsmGJIjddZelagYblb2glXJwx X-Received: by 2002:a05:6e02:1947:: with SMTP id x7mr17956906ilu.85.1626710782997; Mon, 19 Jul 2021 09:06:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626710782; cv=none; d=google.com; s=arc-20160816; b=URyoGJBED60E5jww3xgqxOpAWqS2C9RmsXI97Vaz7MIX61fDaWEGNnlJLt9WCqPRw2 zH7E/By2nDBBXrEReZ5SWMcr3jbwRhqG6OW324hnH8vxS78gO43bDtIdErd+Rhk5gzdc QxnYtpyG4hBIgnNeEm/9ZWUvlESaVzABL9ZWACGXVTd2l6RF75gatxAEHK9GUcY50kvU AGR1H/0K/BXybDi0A9CwawBPOOmNK6SxWLb4n/xfjmHRlo/Dcqo11tLEUiVe2ZPdl//3 PxDOTfs4WiEa3GaHjG0PW3k3hgfSut3Fz5suauxpy9mAj92rZclIjJOvMeefMstr86r8 kklA== 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=RQM8o1DPevF1ajP2TzgzYkC7GEo6plE53P+DFDzHp6w=; b=fjYWi1vAixMt/KxbUyP/8GQq/6OoJ82sn0Xz5ns9cpE6QVEJctWD+gnBMw98ofQbVf wEhvf/f9x6KAU6jNjuqvdv5tkmLHBWFLRv2S8GZy1G6Fgs6d5oUI3CBAtGc8elOs5Qxn SBEHPMaTP6+fbWdyDQG1b6l7rMaHzWtbITc6I3r4Hcp1+7M1pby6fGhnKcdC1lLb8+/O Ya9s0ZseKVxZKtsEHmnqGrL9byP6bGeyLfG77Vs64CXkk+LfagB8ixmWkU0RoBseLqDi drb66vx0g1Pf2oX/8FmNNEDn+EfTDJ9QfKxxJf5UcXWYSIuIorABy/p8MjwznYiA3JXf VSbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=XTohieLb; 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 k14si20018338ion.22.2021.07.19.09.06.07; Mon, 19 Jul 2021 09:06:22 -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=XTohieLb; 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 S1345709AbhGSPQs (ORCPT + 99 others); Mon, 19 Jul 2021 11:16:48 -0400 Received: from mail.kernel.org ([198.145.29.99]:40962 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245519AbhGSOrj (ORCPT ); Mon, 19 Jul 2021 10:47:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D8AC5613B7; Mon, 19 Jul 2021 15:24:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626708243; bh=RziDAp4BQsITzVInvhjMeZNe1otkpJ26f5BdXuv1mXc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XTohieLbjTQrmB5Jz7i7zuS7YK4JCZMiywG7LKK0coXyznt89lHQpPxOvY06OhfyQ f4ljvvWkt3U6UG1pU/oo+gQ0GvKAHdRlwF1ySuUNFa9pfSFv04vqCIoC4ZBVAw10db c7KPnJy1jPbiR0xgLMBnVDgLr9kLENkcGax/rOd0= 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.14 236/315] tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero Date: Mon, 19 Jul 2021 16:52:05 +0200 Message-Id: <20210719144951.183528031@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.861561397@linuxfoundation.org> References: <20210719144942.861561397@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 cebebdcd091c..3d5fe53988e5 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -1998,6 +1998,9 @@ lpuart32_console_get_options(struct lpuart_port *sport, int *baud, bd = lpuart32_read(&sport->port, UARTBAUD); bd &= UARTBAUD_SBR_MASK; + if (!bd) + return; + sbr = bd; uartclk = clk_get_rate(sport->clk); /* -- 2.30.2