Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1743996ybl; Sat, 11 Jan 2020 01:56:51 -0800 (PST) X-Google-Smtp-Source: APXvYqxsfsAfACGinNUIFB0kwAI2HouGG8vry7G7QPsVl5O34DvuYRT2Pkj9HqV5tu6NWJmOJT+8 X-Received: by 2002:a05:6830:1141:: with SMTP id x1mr6434654otq.120.1578736611214; Sat, 11 Jan 2020 01:56:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578736611; cv=none; d=google.com; s=arc-20160816; b=SDevHfiRM4BFUd3izJtRJ4Ox+/Q1JW2KnhX1ytUaZyiUqQivMW3bROVjjhyG+Bi5U/ VVS682iLIsHBWO7C7Y4iYMY5ClpzHhb8biRjrKlRNekTR/HoSRMVsf4SumZL9+UhEhpg nM3PepuET3qGgzi1j7wqrDyvRUDdxx1NmO82nO/eAnNsWUXlqqZdJzpR4bjEU8/ueoPB JJ6xY2vYsP6Od1YpNcpGcYG0BqvAGVt6TsjGHIWCsKGzYveuX20nvf7wiP8BucgbRCiX S6aZK1OnPGvO7Jn1D0z78zYirijtRTK60wwpFYfxXkWisN0H44QXdLo8uLBxo6dpu7VZ 4F+w== 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=bsYcwhsxKVhspr3feOvcZd8Qj/z3X+WDqYhajJFg7A0=; b=vjvnAO7Kb4/fy0+VN/SEmL7s/MLZ8NXWXgB62p0PJmF8QCiZ8lLXiNpBNcCSQ367XZ K3v6zrcy3q9+8D95QqP8ov6zUZl4ISRebSq309xpNMSootWH1a+m7Xtj3yw9zXWr69fT z8cMT2dmXBqqLVPNJFVBxR8o7LD6DtrSlyLhOvp3LfXR5TaFxSdzUgm6Jqe5RDLjkrub 0apto7K4bBAxW3ibT0S1WF4WazxwEhDlKNNvaqCZ1KQdYK0W15v+TMMboBNpfHBx5uXD KaM5hOLg8Yo2yu48aWQCf3l63gEareHwFh7B7i+lxj1zPy6+2fYgTZwbdqz7hzfHFrI9 ncEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=kzuJsB4O; 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 g138si3084880oib.190.2020.01.11.01.56.40; Sat, 11 Jan 2020 01:56:51 -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=kzuJsB4O; 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 S1729107AbgAKJym (ORCPT + 99 others); Sat, 11 Jan 2020 04:54:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:43532 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728807AbgAKJyk (ORCPT ); Sat, 11 Jan 2020 04:54:40 -0500 Received: from localhost (unknown [62.119.166.9]) (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 4FAFE2072E; Sat, 11 Jan 2020 09:54:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578736480; bh=YifGFmuHCJnKvVu31HrpEi2c+jHaN5s8ZBCC9Uc/+yo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kzuJsB4O6EPK2WKrpBC8eGoU8LyyVrg0V1n5zH6FYeKjtXJ7H359rd8k8Dj7S5+VC o7anAf8kCJPlc6qrmDx/rMhaAOeMu34USZBlwlWo/FcBXkkQ/KcDzEoGjjWbTOWxj6 En1staket0mxcviv2GdRg55SliqvAUJ4CY0J1B1s= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Aleksandr Yashkin , Nikolay Merinov , Ariel Gilman , Kees Cook , Sasha Levin Subject: [PATCH 4.4 33/59] pstore/ram: Write new dumps to start of recycled zones Date: Sat, 11 Jan 2020 10:49:42 +0100 Message-Id: <20200111094844.943026669@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200111094835.417654274@linuxfoundation.org> References: <20200111094835.417654274@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Aleksandr Yashkin [ Upstream commit 9e5f1c19800b808a37fb9815a26d382132c26c3d ] The ram_core.c routines treat przs as circular buffers. When writing a new crash dump, the old buffer needs to be cleared so that the new dump doesn't end up in the wrong place (i.e. at the end). The solution to this problem is to reset the circular buffer state before writing a new Oops dump. Signed-off-by: Aleksandr Yashkin Signed-off-by: Nikolay Merinov Signed-off-by: Ariel Gilman Link: https://lore.kernel.org/r/20191223133816.28155-1-n.merinov@inango-systems.com Fixes: 896fc1f0c4c6 ("pstore/ram: Switch to persistent_ram routines") [kees: backport to v4.9] Signed-off-by: Kees Cook Signed-off-by: Sasha Levin --- fs/pstore/ram.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index 59d93acc29c7..fa0e89edb62d 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -319,6 +319,17 @@ static int notrace ramoops_pstore_write_buf(enum pstore_type_id type, prz = cxt->przs[cxt->dump_write_cnt]; + /* + * Since this is a new crash dump, we need to reset the buffer in + * case it still has an old dump present. Without this, the new dump + * will get appended, which would seriously confuse anything trying + * to check dump file contents. Specifically, ramoops_read_kmsg_hdr() + * expects to find a dump header in the beginning of buffer data, so + * we must to reset the buffer values, in order to ensure that the + * header will be written to the beginning of the buffer. + */ + persistent_ram_zap(prz); + hlen = ramoops_write_kmsg_hdr(prz, compressed); if (size + hlen > prz->buffer_size) size = prz->buffer_size - hlen; -- 2.20.1