Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1486911ybh; Thu, 23 Jul 2020 10:03:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwJrSOwMzjfi0AYZJ7kQ9PV2K3dA1c7nmNYoFSb/VoGWaVKHJjXq/3FrOVOzOx8tvUtVk1Z X-Received: by 2002:a50:f08c:: with SMTP id v12mr4954068edl.119.1595523786121; Thu, 23 Jul 2020 10:03:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595523786; cv=none; d=google.com; s=arc-20160816; b=ADwCtmcGXLE0wCFbJ7WAnvmRGDa1L9mnbmEinWHCmyODWEU/RLlLzhCGh9aahRKAzn kteBEKi7nSycvOMV9S5oNNkkN3r8TPsXD2PRRgye+81at+dis0resipsQnzTMsF8qAMY G4qul3tEX1b93sVWzJXGZvIn2xY/7tsdByZ09BSE9UB7tg3pAQ7j2YOfnoRnbjorBkCj rLi1/t0VyIUXY644T+yQ8GPGiiBgcrthuZVlO8KvmC3dfd9vpl2HXSNiwEtYWoGLsWKp RK+j7AYu31CAjAPWAp7zMe8ppFdoeWpIhgVclwm3k+G65sY7VWf9wcYDfYsnuBK9KvpZ XGNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=/1vyHwZBcDYQ4BrB3s5/7DgvBVYcHY4oq9r8hUuizP8=; b=uhl6lEj5xUphSNmXKWUXzh9ClTgyyJuGSC4dN57UGCnIX1mCgGCCl5MMsmVsoHviW2 CwJj4x0vxUfoS0x2E8j2b2hiAbiu85/R9J41ue8y3l35HgW/3rDjVqhof9P6Jrlry0bj b1/QArxMAmJ6pkQs6VYG1nb83hHioUhNbU9AdvJXgVMG2q+ol/DxgimF+1gjUe7Z6LtF u0GsYb9pBoMhs9xagSLqpXQKlryIyh3V8XS7Ocaqzdpauk70gdtBzEFA/HFECrLq6WoQ IhvRiKIuRIEVwgSEeCuHiyUpZ92I5xVpz5JPIsRkmGMVj8ys8hxmLj5apl3eYUIxFSit 70/w== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b22si2211951edx.593.2020.07.23.10.02.42; Thu, 23 Jul 2020 10:03:06 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726784AbgGWRCf (ORCPT + 99 others); Thu, 23 Jul 2020 13:02:35 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:55378 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726254AbgGWRCf (ORCPT ); Thu, 23 Jul 2020 13:02:35 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jyebz-0007Ya-Q9; Thu, 23 Jul 2020 17:02:27 +0000 From: Colin King To: Bartlomiej Zolnierkiewicz , Daniel Vetter , Jani Nikula , dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] video: fbdev: fix setting of pixclock because a pass-by-value error Date: Thu, 23 Jul 2020 18:02:27 +0100 Message-Id: <20200723170227.996229-1-colin.king@canonical.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King The pixclock is being set locally because it is being passed as a pass-by-value argument rather than pass-by-reference, so the computed pixclock is never being set in var->pixclock. Fix this by passing by reference. [This dates back to 2002, I found the offending commit from the git history git://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git ] Addresses-Coverity: ("Unused value") Fixes: 115f4504a64a ("Removed currcon and other console related code. Very little is now left.") Signed-off-by: Colin Ian King --- drivers/video/fbdev/vga16fb.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c index a20eeb8308ff..52f273af6cae 100644 --- a/drivers/video/fbdev/vga16fb.c +++ b/drivers/video/fbdev/vga16fb.c @@ -243,7 +243,7 @@ static void vga16fb_update_fix(struct fb_info *info) } static void vga16fb_clock_chip(struct vga16fb_par *par, - unsigned int pixclock, + unsigned int *pixclock, const struct fb_info *info, int mul, int div) { @@ -259,14 +259,14 @@ static void vga16fb_clock_chip(struct vga16fb_par *par, { 0 /* bad */, 0x00, 0x00}}; int err; - pixclock = (pixclock * mul) / div; + *pixclock = (*pixclock * mul) / div; best = vgaclocks; - err = pixclock - best->pixclock; + err = *pixclock - best->pixclock; if (err < 0) err = -err; for (ptr = vgaclocks + 1; ptr->pixclock; ptr++) { int tmp; - tmp = pixclock - ptr->pixclock; + tmp = *pixclock - ptr->pixclock; if (tmp < 0) tmp = -tmp; if (tmp < err) { err = tmp; @@ -275,7 +275,7 @@ static void vga16fb_clock_chip(struct vga16fb_par *par, } par->misc |= best->misc; par->clkdiv = best->seq_clock_mode; - pixclock = (best->pixclock * div) / mul; + *pixclock = (best->pixclock * div) / mul; } #define FAIL(X) return -EINVAL @@ -497,10 +497,10 @@ static int vga16fb_check_var(struct fb_var_screeninfo *var, if (mode & MODE_8BPP) /* pixel clock == vga clock / 2 */ - vga16fb_clock_chip(par, var->pixclock, info, 1, 2); + vga16fb_clock_chip(par, &var->pixclock, info, 1, 2); else /* pixel clock == vga clock */ - vga16fb_clock_chip(par, var->pixclock, info, 1, 1); + vga16fb_clock_chip(par, &var->pixclock, info, 1, 1); var->red.offset = var->green.offset = var->blue.offset = var->transp.offset = 0; -- 2.27.0