Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp431541imu; Wed, 12 Dec 2018 20:43:23 -0800 (PST) X-Google-Smtp-Source: AFSGD/V2IdTOWNPmG+Zv/vW7zNbaHzSrU2RQ7MHSUq0/pZXrvB/2WUSR+qpavpKCYOQPvjC5QeA/ X-Received: by 2002:a62:4714:: with SMTP id u20mr22450486pfa.144.1544676203226; Wed, 12 Dec 2018 20:43:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544676203; cv=none; d=google.com; s=arc-20160816; b=xxBexMghQp/0HtPIwe48bKB5Dz1TmrQd3iJ3F1kLxUwms0TAXg6wi2PTNHD5aNHpEd I5TuNLu+Y8YULMrqFwWMQEJ5WX7ezFIWd/wUYYAZTGf63FQ1SWrBlQ71zC7pRsHYXltE QYuODnOGmboix/Y/84a6nxC8IziWcAwZP1CwKPuE0YTLli0XgZKvjsrtp/81Ixs7FgkB SemPHCE3BDn4MYhIZDmvHeuFvqC1gqOfZKgltMDNzUJ9F3c0ndUmailFK9JL/cQIVJPN 2VoRCVzw2/co7CAl4Nn44rrSM/T61Sdt6mVdd+QupKM0ToWCdFuO9YGSqvAO3WWjq8uM QT/g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=oAO3zVfZ8fGSxUHAf7nQRTIr0t+bGaNabwn3lb/BLN4=; b=jB/sfF/JbG5XwiXhySfkK9bRhKyuQz7NsEHHlDRCoWMOf8uqXn/c9ICcfMSy4ScqH8 eC7k+8DxkeBx3usgoO/qAtXGkYrgJrS3U83EDiFjrKk75n3vBLJ3w6OiwIuK9IVO2EyJ YcbzhLl0iACB8iYZ6jn0KlE3pAxEgvr6yXOw1GUSYGERzgC/158FSqQ9rou/wuKxBp5m bWEgv2L6fwUa6yCQIZCwUHxNeKIt0LBtr35p8cSG6eVM8sLFaXPXdOdGSjaK1bLiidO/ j/7B/2szQke7AgjK8Fe4d7/zLWW26NYe0ilRu3SgegjzbgJlxFT6mAAK7gigSxb0dR6z ttQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=klPzG+mU; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l8si603190pgm.250.2018.12.12.20.43.08; Wed, 12 Dec 2018 20:43:23 -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=klPzG+mU; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728834AbeLMElP (ORCPT + 99 others); Wed, 12 Dec 2018 23:41:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:45030 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728983AbeLMEcI (ORCPT ); Wed, 12 Dec 2018 23:32:08 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C2FD720882; Thu, 13 Dec 2018 04:32:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544675527; bh=zkAUfal45l9g3LqBJLr0ZfwiMqnzAmugf+weQIly7OE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=klPzG+mUHpwSkmHjf5Ampgv2McdJAEYRAeC4hjNq3oL/ek6SqgDWiNyhXQjnVHYG3 Ws1726x1pMhnc4mPNYkfnuyZNHMx4OuWNJKBksUGwBzbuKdE2P4i0Ewy9A/IRtmQ+U TkHPXHSG3cenn8WM5gRpdrBietS4X0CurG/urUc0= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: YiFei Zhu , Ard Biesheuvel , Andy Lutomirski , Arend van Spriel , Bhupesh Sharma , Borislav Petkov , Dave Hansen , Eric Snowberg , Hans de Goede , Joe Perches , Jon Hunter , Julien Thierry , Linus Torvalds , Marc Zyngier , Matt Fleming , Nathan Chancellor , Peter Zijlstra , Sai Praneeth Prakhya , Sedat Dilek , Thomas Gleixner , linux-efi@vger.kernel.org, Ingo Molnar , Sasha Levin Subject: [PATCH AUTOSEL 4.9 04/34] x86/earlyprintk/efi: Fix infinite loop on some screen widths Date: Wed, 12 Dec 2018 23:31:30 -0500 Message-Id: <20181213043200.76295-4-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181213043200.76295-1-sashal@kernel.org> References: <20181213043200.76295-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: YiFei Zhu [ Upstream commit 79c2206d369b87b19ac29cb47601059b6bf5c291 ] An affected screen resolution is 1366 x 768, which width is not divisible by 8, the default font width. On such screens, when longer lines are earlyprintk'ed, overflow-to-next-line can never trigger, due to the left-most x-coordinate of the next character always less than the screen width. Earlyprintk will infinite loop in trying to print the rest of the string but unable to, due to the line being full. This patch makes the trigger consider the right-most x-coordinate, instead of left-most, as the value to compare against the screen width threshold. Signed-off-by: YiFei Zhu Signed-off-by: Ard Biesheuvel Cc: Andy Lutomirski Cc: Arend van Spriel Cc: Bhupesh Sharma Cc: Borislav Petkov Cc: Dave Hansen Cc: Eric Snowberg Cc: Hans de Goede Cc: Joe Perches Cc: Jon Hunter Cc: Julien Thierry Cc: Linus Torvalds Cc: Marc Zyngier Cc: Matt Fleming Cc: Nathan Chancellor Cc: Peter Zijlstra Cc: Sai Praneeth Prakhya Cc: Sedat Dilek Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20181129171230.18699-12-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Sasha Levin --- arch/x86/platform/efi/early_printk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/platform/efi/early_printk.c b/arch/x86/platform/efi/early_printk.c index 5fdacb322ceb..c3e6be110b7d 100644 --- a/arch/x86/platform/efi/early_printk.c +++ b/arch/x86/platform/efi/early_printk.c @@ -179,7 +179,7 @@ early_efi_write(struct console *con, const char *str, unsigned int num) num--; } - if (efi_x >= si->lfb_width) { + if (efi_x + font->width > si->lfb_width) { efi_x = 0; efi_y += font->height; } -- 2.19.1