From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,T_DKIMWL_WL_HIGH,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3BCDC28EBD for ; Sun, 9 Jun 2019 17:20:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B8575206BB for ; Sun, 9 Jun 2019 17:20:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560100802; bh=IbT8X3DgZm5nk+OV3IJ5ml/dTNHDkUuw6SOafKmU2Gc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=1iryo9gdCzQRn8D7Oqv6SKIZR1cB3GFLUX01qRuKDw3254qHzUeaqp+k4GjaAiUGa 3/WMMhmWfZXAZEdParLiq/g2a4+SXXdmYr4BwrFiTV4h9FJJaD0U95iS2mAMeI0o7H 4cT9HCVygK+I1iF67sAvwYP8DkPHzNpBEPc/YOKA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729777AbfFIRT5 (ORCPT ); Sun, 9 Jun 2019 13:19:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:46978 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731071AbfFIQsD (ORCPT ); Sun, 9 Jun 2019 12:48:03 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 B79FA206C3; Sun, 9 Jun 2019 16:48:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560098883; bh=IbT8X3DgZm5nk+OV3IJ5ml/dTNHDkUuw6SOafKmU2Gc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GPeHn/dl919QWKg/4JDXQJRVsg5Ab/+X0Y//JY2Len1Yj3ntHdd3Tm0CFhdUoqlfg 73vFut+Kcn2xYTXEHTtlpBfwTptknLSGhIo67NM2E0OZeCDu3gDtIZxVhhS0/jR01b R2bgLGaDAXdCv5q2zwZLqgrmk44KB8ki+aMpFBrU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kees Cook , "Joel Fernandes (Google)" Subject: [PATCH 4.19 23/51] pstore: Remove needless lock during console writes Date: Sun, 9 Jun 2019 18:42:04 +0200 Message-Id: <20190609164128.456426716@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190609164127.123076536@linuxfoundation.org> References: <20190609164127.123076536@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Kees Cook commit b77fa617a2ff4d6beccad3d3d4b3a1f2d10368aa upstream. Since the console writer does not use the preallocated crash dump buffer any more, there is no reason to perform locking around it. Fixes: 70ad35db3321 ("pstore: Convert console write to use ->write_buf") Signed-off-by: Kees Cook Reviewed-by: Joel Fernandes (Google) Signed-off-by: Greg Kroah-Hartman --- fs/pstore/platform.c | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -476,31 +476,14 @@ static void pstore_unregister_kmsg(void) #ifdef CONFIG_PSTORE_CONSOLE static void pstore_console_write(struct console *con, const char *s, unsigned c) { - const char *e = s + c; + struct pstore_record record; - while (s < e) { - struct pstore_record record; - unsigned long flags; + pstore_record_init(&record, psinfo); + record.type = PSTORE_TYPE_CONSOLE; - pstore_record_init(&record, psinfo); - record.type = PSTORE_TYPE_CONSOLE; - - if (c > psinfo->bufsize) - c = psinfo->bufsize; - - if (oops_in_progress) { - if (!spin_trylock_irqsave(&psinfo->buf_lock, flags)) - break; - } else { - spin_lock_irqsave(&psinfo->buf_lock, flags); - } - record.buf = (char *)s; - record.size = c; - psinfo->write(&record); - spin_unlock_irqrestore(&psinfo->buf_lock, flags); - s += c; - c = e - s; - } + record.buf = (char *)s; + record.size = c; + psinfo->write(&record); } static struct console pstore_console = {