Received: by 10.192.165.148 with SMTP id m20csp3882490imm; Mon, 30 Apr 2018 08:00:14 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqf8D0iQhL1sUz61okQtaIvWPCd7vt0HjstXA/Fwb55JnFFYkN5jkPfcBIJUsWRSgkA5A/p X-Received: by 2002:a65:5c88:: with SMTP id a8-v6mr10089652pgt.373.1525100414817; Mon, 30 Apr 2018 08:00:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525100414; cv=none; d=google.com; s=arc-20160816; b=BtB7/UmvrKljiGlUz+f7WNDLL5WHguDjOHq3Vg7yRhMe0u9Ork/SGE21JksOcDNXa8 vwR2FaEVgF9tXw/x4ZfhDHogOgiHIFKjC660hZFInKW4+xGwFMNzOdIYYQH04eZDkHAR EolCPM8JKCGFH6YcsG5CMi805sDSDATYr0ZoAdbuk2pyrGXIPTVvL4eMvbWHGoEJ8Asn 0VSLxJ9xedKomrCTileHEWOIjFAsi4d5AdwfwfyakaW84JuPh66BAVDWZcWfIXaIFZat yG3eSOAru1YqjPs0RdbVTWdkoySfNG7ShlA6RaOlTUausZbYvhOfjmI0lg54HVeEY552 wXDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=gKi6xnv7EUWhskjW3Xqh2A/mZDswLun3Bgs43yLefco=; b=FODu0rEPhWHRLgAzpsDjwt4Ph9Bff7Q+i+xOMgkGC65BRgIS8w+OA7CTC9MtnBorKw 82zXR3cRtce8vkuRrLf/SHjk8/HtxpyybcfPunMPUCIGf3cMYnmSdYHmMrCyI57lVlzo zdM9A6d0ZqRQHCHo8G7lestRgAt0YfLPSNlkca1O7/+GrEmAYiDMKbBnp+OC3XdztoO6 W22Sf3ThKGPJ7toTujdqjA4WZvnCW0PiRiqesJCVIkgWQJ6aYd3zuwEhlzZs6lWf7VrL pzRnM4Mf4GPgz0KuIgj+HDt00IayIbkeUy9+q9rcwChrKQkD/c/bqzzjT8hqEHPQWVMi s+CA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jLI4pqdL; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d6si7688295pfk.166.2018.04.30.08.00.00; Mon, 30 Apr 2018 08:00:14 -0700 (PDT) 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=@gmail.com header.s=20161025 header.b=jLI4pqdL; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754602AbeD3O41 (ORCPT + 99 others); Mon, 30 Apr 2018 10:56:27 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:33138 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754500AbeD3O4Y (ORCPT ); Mon, 30 Apr 2018 10:56:24 -0400 Received: by mail-pf0-f195.google.com with SMTP id f15so6937445pfn.0 for ; Mon, 30 Apr 2018 07:56:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gKi6xnv7EUWhskjW3Xqh2A/mZDswLun3Bgs43yLefco=; b=jLI4pqdLOwzyCWS5bd1+xDi2xhHQZxMb/fWJXCkvtzMeiV3BvSdjWgdjVocdz5Bt+E tje+ftxqkpxguP3ydDm8pCJn+XDZ+fUR2eLBIDRDV7ujWi40nZHV9JPsv3aUj+6SaB8A zNv83gd9/Svbw9TcYAT0v1AZfW6r0JgoPbA/3y8KdOUKiyPA8W214/qW8Gpz6J4mugqB BbMMUl5WScB5F3Weq8aDHs2rnMYiFRDcgtMim95ER+r/Z/Tp3b6IP3TtRCg9lwZYruBm SuiyTGsVIcBzgctFo3rgGFoZeBJ27zfuwxAb+iaofy705afR6tcyXgv/Vc//7xOxaxke Km7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gKi6xnv7EUWhskjW3Xqh2A/mZDswLun3Bgs43yLefco=; b=dA8VOcH5HHion/xx9Rlw4aH9b/R7B38lG3mNc/FtB4dgMVXyD0m1nmgmRERa8YJTah acHsJM7zK1LeVXjYA3PYfPp/ZTZ4ze0ijCIWJ02O+ITe97v7LDBlNjLvqYeSheQNLA8d ZBG1HwcsQzTAxJeA2rVXkjQFZYb4t4gGjgqhPj90HwFsIuacCEJA8q582wtusV7ubtcA ytIeu78ZyRTiPrRIaVE15eTdgRtYtpZbwxSKsetlT1aWVzO0Zc0z+srJeUXU50JYXEh+ Et2H0QBF0HMGZYMaL24WJ7YEZaN1tWKkZoVeCWYX28r5u4tlrt0O1c0RkWyS7OzL00rF yttA== X-Gm-Message-State: ALQs6tDe1fRJGUnFo+UAqota+0ZWHTYXTk8+d1Zo6hxSN/H5CAm7mET7 VLujqZZI8YM3ed56vKRp2DBGiw== X-Received: by 2002:a17:902:64d0:: with SMTP id y16-v6mr12526172pli.349.1525100184075; Mon, 30 Apr 2018 07:56:24 -0700 (PDT) Received: from roar.au.ibm.com (59-102-70-78.tpgi.com.au. [59.102.70.78]) by smtp.gmail.com with ESMTPSA id a12sm19132534pfe.78.2018.04.30.07.56.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Apr 2018 07:56:23 -0700 (PDT) From: Nicholas Piggin To: linuxppc-dev@lists.ozlabs.org Cc: Nicholas Piggin , Benjamin Herrenschmidt , Greg Kroah-Hartman , Jiri Slaby , linux-kernel@vger.kernel.org Subject: [PATCH 04/15] powerpc/powernv: opal-kmsg use flush fallback from console code Date: Tue, 1 May 2018 00:55:47 +1000 Message-Id: <20180430145558.4308-5-npiggin@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180430145558.4308-1-npiggin@gmail.com> References: <20180430145558.4308-1-npiggin@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use the more refined and tested event polling loop from opal_put_chars as the fallback console flush in the opal-kmsg path. This loop is used by the console driver today, whereas the opal-kmsg fallback is not likely to have been used for years. Use WARN_ONCE rather than a printk when the fallback is invoked to prepare for moving the console flush into a common function. Reviewed-by: Russell Currey Signed-off-by: Nicholas Piggin --- arch/powerpc/platforms/powernv/opal-kmsg.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/arch/powerpc/platforms/powernv/opal-kmsg.c b/arch/powerpc/platforms/powernv/opal-kmsg.c index f8f41ccce75f..fd2bbf4fd6dc 100644 --- a/arch/powerpc/platforms/powernv/opal-kmsg.c +++ b/arch/powerpc/platforms/powernv/opal-kmsg.c @@ -51,20 +51,17 @@ static void force_opal_console_flush(struct kmsg_dumper *dumper, } while (rc == OPAL_PARTIAL); /* More to flush */ } else { - int i; + __be64 evt; + WARN_ONCE(1, "opal: OPAL_CONSOLE_FLUSH missing.\n"); /* * If OPAL_CONSOLE_FLUSH is not implemented in the firmware, * the console can still be flushed by calling the polling - * function enough times to flush the buffer. We don't know - * how much output still needs to be flushed, but we can be - * generous since the kernel is in panic and doesn't need - * to do much else. + * function while it has OPAL_EVENT_CONSOLE_OUTPUT events. */ - printk(KERN_NOTICE "opal: OPAL_CONSOLE_FLUSH missing.\n"); - for (i = 0; i < 1024; i++) { - opal_poll_events(NULL); - } + do { + opal_poll_events(&evt); + } while (be64_to_cpu(evt) & OPAL_EVENT_CONSOLE_OUTPUT); } } -- 2.17.0