Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2438585imj; Mon, 18 Feb 2019 06:05:57 -0800 (PST) X-Google-Smtp-Source: AHgI3IaI5D0Yy0yofeRUDtxRzcV+jTGLD9v1Bo3vT0NUWLEac45CzD1qJoaMB3g8N4TayCBd4kJo X-Received: by 2002:a62:2008:: with SMTP id g8mr24029784pfg.121.1550498756969; Mon, 18 Feb 2019 06:05:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550498756; cv=none; d=google.com; s=arc-20160816; b=vD9PgmEwb/X7wnNVOmEuJtzvOD6o1C9IemuDoY3EQ/mPQ9yDQgLHjqF4ld8D7Xy2UV FKlthb/3bNv6BYYyH5x1s/pu3Hl/6KTbpqBpyWeIZdkqEuJ1mxdrnf3MwE8U0mj1pYP9 G4U9oGimzD1E4OEHJZbos4bDKfbrGhcU7OBwuaQuwoo6i2sQatja9hL+8Ch62IJv9TVE Evpriq6qzhBc3kLFMFU5LdeSZbFrObne713axOPpNsvg9DzQIab93b8sQ9HqqdGkZCSY u8urYNS6GUOzdaEnWHhrn1E2W1Kf14XjTFJhEMoQS7smQYQFosXGI0hkcxN5uWXKevNn 4/dg== 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=5UY2Ml6wAABRa0bBAuK4YlXtYcPvc0NglDHK9ugPqdA=; b=L0Mt+nGOhST684f9pm582Ej928k7nfIH/LVaO+up069wJD01ITzcjfa79kClxftq3u vOarichRe1xumXHCqxP6UwXgVKi6xNiv/KKoEMMlzI7Ykh7X/wbkhgvgxAzDM6aTpAbk vKTZqyiBK2fWc/WbVUxvdFujOQUTZrqR1GTvpdbBiifWT8jlPRYmwcL5HkV60nXoenBA ZSQcBvVDA4+t2ZO1fiWi7CEi1NXUEIcnMaiJ4b0Pz2PBprXUefAAXjwlYmzFQt72KSPZ 52liwFVBd8vuMULY3widv+mA1K21kgRPXRuMo7Cd6IkQvsYXdzCIT0RtcZKO4Qj0sqIb 7Dlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=iyTZeeKR; 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 r17si12260420pgv.329.2019.02.18.06.05.41; Mon, 18 Feb 2019 06:05:56 -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=iyTZeeKR; 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 S2389887AbfBROEJ (ORCPT + 99 others); Mon, 18 Feb 2019 09:04:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:46382 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389838AbfBROEB (ORCPT ); Mon, 18 Feb 2019 09:04:01 -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 77117204FD; Mon, 18 Feb 2019 14:04:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1550498641; bh=MsTRgiEDzcy8gxQwryWdHSq9Ae6IV94+SXV728KUSCA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iyTZeeKRGHQyvMZ0+8V5FzY9HPsqwOIbbfoaKT0JQ9KCbTQBmMFlk1DeGvftFwoxN /Qo5XPE0IdX5i7fYvAZmsCHynP3FQfeW5Ncv8yTkTMYM54dRRfgKLKrZrXwSSWHuoQ a5vPJy0BohhH6WtttGPrY0QHRohEzqRI3PXmYflo= 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.4 051/143] fbdev: fbmem: behave better with small rotated displays and many CPUs Date: Mon, 18 Feb 2019 14:42:59 +0100 Message-Id: <20190218133530.991215258@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190218133529.099444112@linuxfoundation.org> References: <20190218133529.099444112@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.4-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 8a29ec5992fd..ea2bd6208a2f 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -433,7 +433,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; } @@ -445,7 +447,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