From patchwork Mon Aug 17 15:16:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 266258 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA613C433DF for ; Mon, 17 Aug 2020 18:08:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C63842072E for ; Mon, 17 Aug 2020 18:08:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597687738; bh=GYuEc5nUTq1NnDTC+cv0iKK4P6RjPZ4kA3sf1BsJr/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=UgGzkXS/SQ+LdFMMcU1vrfkp77J5A5XM9WMoXxtfktz5MZgN7Fctm+L3uBNFNp7J9 pGjaetc0jRIGEbse+Ms9WaQ5oI8FESw0CpzL4yCcBFsVPugkHpaPz9aGTiya0zxk4j rfMb5e7Z9SomKkt4VwW1jH8AjGtlfnyJB4ml4SWE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388357AbgHQSI4 (ORCPT ); Mon, 17 Aug 2020 14:08:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:53300 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388432AbgHQQIJ (ORCPT ); Mon, 17 Aug 2020 12:08:09 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CF7D520882; Mon, 17 Aug 2020 16:07:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597680480; bh=GYuEc5nUTq1NnDTC+cv0iKK4P6RjPZ4kA3sf1BsJr/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lTWuCV8gJzo9eqXi5vbefgxQ02h9VHyvig9dJMoRaNILSXn/9ou1wjz3dw8yMXeSY +wB4mzHMETwJXStXwNznx5cWD6QkrR7/iY+ElFNhXezPgXX4oc5+c7eAmDrX0dwMe1 Jr9XbUYxMCnbWoCZvMYd+RqA6gzqzoLQAtW2/VSA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Florinel Iordache , "David S. Miller" , Sasha Levin Subject: [PATCH 5.4 204/270] fsl/fman: use 32-bit unsigned integer Date: Mon, 17 Aug 2020 17:16:45 +0200 Message-Id: <20200817143805.950673420@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200817143755.807583758@linuxfoundation.org> References: <20200817143755.807583758@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Florinel Iordache [ Upstream commit 99f47abd9f7bf6e365820d355dc98f6955a562df ] Potentially overflowing expression (ts_freq << 16 and intgr << 16) declared as type u32 (32-bit unsigned) is evaluated using 32-bit arithmetic and then used in a context that expects an expression of type u64 (64-bit unsigned) which ultimately is used as 16-bit unsigned by typecasting to u16. Fixed by using an unsigned 32-bit integer since the value is truncated anyway in the end. Fixes: 414fd46e7762 ("fsl/fman: Add FMan support") Signed-off-by: Florinel Iordache Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/freescale/fman/fman.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c index 4c2fa13a7dd7b..c8e434c8ab983 100644 --- a/drivers/net/ethernet/freescale/fman/fman.c +++ b/drivers/net/ethernet/freescale/fman/fman.c @@ -1396,8 +1396,7 @@ static void enable_time_stamp(struct fman *fman) { struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs; u16 fm_clk_freq = fman->state->fm_clk_freq; - u32 tmp, intgr, ts_freq; - u64 frac; + u32 tmp, intgr, ts_freq, frac; ts_freq = (u32)(1 << fman->state->count1_micro_bit); /* configure timestamp so that bit 8 will count 1 microsecond