Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2734496imj; Mon, 11 Feb 2019 07:42:19 -0800 (PST) X-Google-Smtp-Source: AHgI3IaYPtCqTApZnB0VsNhkDgYfbf/2q8KUVzhtAppV1c/DkBenccphcHuWMVH5RP8f6rRyc7xc X-Received: by 2002:a63:2ccb:: with SMTP id s194mr33844119pgs.214.1549899739854; Mon, 11 Feb 2019 07:42:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549899739; cv=none; d=google.com; s=arc-20160816; b=Ypi6DPDFJREirM13G5bbT1cXNLWI4McHyC0E6Ga7wZFpLr6rts8HkctYcMTGq8JL8C E9D0ZVA9Iihfwhs2LgUUbBAEUB6zvUO/NGW0oVGbYRWyC6Fb1xivfmNOvNdJzxosdUZH Ek6Z0igaI+d2LGpIhuBlbuOp+VPxOx1fdvlrdNYZtbx0Umi8D24MYiSHtk2230C29H7U oCNUoi4BPLIkX+k+NS2N3zBR8t2x3gYlT7NesCUqLXcrAVOyGHx3NS9/en+xVp8BE1v/ mkHuhZc2/EQw2y32vMa1qxi0kTp4MwCwgY8B52/nJ2CWlbIjT0zydZsd+RNhB04/fEPm Aj4g== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Vaxg5p3qlun+4MoemdwLPx6VGqxoyVBEMuxY3wWe6N0=; b=f2IEI749HXhrcNM8mYxgYwIBIy2bfPEq/HmdTDpdP6Bj+YECP5Rr3dl7VY92UBtRik ffH7GPMR1NOjZjRBMI6apOIpMGFE1YCQomBESgE6H4oWL5uhZZpI/SFtepQrsgWekPKL 7zNZB0/nMa+FQlJSistdCWlcSOhEM21UXcHrGB8mH4UjLEKJaOyg8glzrBacz01ymTzJ 22yg9KigYcLlNU3ccUZYffIQ4BHBTVVKUwLqVMNRSWvB4dt/kH5kqYpuMlZNr25fsn0A hdgqUYGThq4a4idEvywwtPq4MeIA0PB0deP6b5S8bLZfgcGOe9lPxg42OTqgvow0a7IF r/qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="x/DqgstY"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p1si10807251pld.353.2019.02.11.07.42.02; Mon, 11 Feb 2019 07:42:19 -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=@kernel.org header.s=default header.b="x/DqgstY"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387913AbfBKPlU (ORCPT + 99 others); Mon, 11 Feb 2019 10:41:20 -0500 Received: from mail.kernel.org ([198.145.29.99]:33104 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387599AbfBKOr4 (ORCPT ); Mon, 11 Feb 2019 09:47:56 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.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 0FA1C20700; Mon, 11 Feb 2019 14:47:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1549896475; bh=vw0ZQh+JiywZJ/En+mGCliwSfDgNxziM9MS6qsW8rWo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=x/DqgstYV7KRb3ZBaFYnJm9ecd9uAQHy7I/oSpZoNGpo8TBwYm/IYUgisDnzFs8+a YnU9grzSREuMIXuNfflF6nnRtW1FzS/+ZIwcw0cNowHExSLlMstoqu3mJcaHq3/Wa9 gtvOVtOUyYRQzWmi+LVoJf8QZjjHCIoCFAu4p1/E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Rosin , Tomi Valkeinen , Fabian Frederick , Geert Uytterhoeven , Geoff Levand , James Simmons , Bartlomiej Zolnierkiewicz , Sasha Levin Subject: [PATCH 4.19 197/313] fbdev: fbmem: behave better with small rotated displays and many CPUs Date: Mon, 11 Feb 2019 15:17:57 +0100 Message-Id: <20190211141906.380388388@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190211141852.749630980@linuxfoundation.org> References: <20190211141852.749630980@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit f75df8d4b4fabfad7e3cba2debfad12741c6fde7 ] Blitting an image with "negative" offsets is not working since there is no clipping. It hopefully just crashes. For the bootup logo, there is protection so that blitting does not happen as the image is drawn further and further to the right (ROTATE_UR) or further and further down (ROTATE_CW). There is however no protection when drawing in the opposite directions (ROTATE_UD and ROTATE_CCW). Add back this protection. The regression is 20-odd years old but the mindless warning-killing mentality displayed in commit 34bdb666f4b2 ("fbdev: fbmem: remove positive test on unsigned values") is also to blame, methinks. Fixes: 448d479747b8 ("fbdev: fb_do_show_logo() updates") Signed-off-by: Peter Rosin Cc: Tomi Valkeinen Cc: Fabian Frederick Cc: Geert Uytterhoeven cc: Geoff Levand Cc: James Simmons Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Sasha Levin --- drivers/video/fbdev/core/fbmem.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 20405421a5ed..77cee99fc36c 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -435,7 +435,9 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image, image->dx += image->width + 8; } } else if (rotate == FB_ROTATE_UD) { - for (x = 0; x < num; x++) { + u32 dx = image->dx; + + for (x = 0; x < num && image->dx <= dx; x++) { info->fbops->fb_imageblit(info, image); image->dx -= image->width + 8; } @@ -447,7 +449,9 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image, image->dy += image->height + 8; } } else if (rotate == FB_ROTATE_CCW) { - for (x = 0; x < num; x++) { + u32 dy = image->dy; + + for (x = 0; x < num && image->dy <= dy; x++) { info->fbops->fb_imageblit(info, image); image->dy -= image->height + 8; } -- 2.19.1