linux-mips
[Top] [All Lists]

Re: [PATCH] MIPS: KDUMP: Fix to access non-sectioned memory

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH] MIPS: KDUMP: Fix to access non-sectioned memory
From: David Daney <ddaney.cavm@gmail.com>
Date: Thu, 03 Oct 2013 11:48:34 -0700
Cc: Prem Mallappa <prem.mallappa@gmail.com>, linux-mips <linux-mips@linux-mips.org>, Prem Mallappa <pmallappa@caviumnetworks.com>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=cHjUjD9RudDM8EGd/ZeOTzHa7TYG6q2sivQxO/oWQeg=; b=rRD4zbYZrPvRRsXcGVpsEcSWdJPlnUuWBdDFhJQKrtnMLwTrt9U4m8i6OnaN7vPN4v MVv0c7JekqBI1IWzig9CLwHkS1fkLbK6XGYUDW24/L04oJ/hiW5CVzCPFLIiPasNFWRT A4VBmHuBvhYWZGi51xjxRl7VPsV0o7JWcgE3jOh6rp+Y6Yf945KcZ232GyjuDn+V8wCQ Ljiqv81o57IMqbOV3VXlz4lDbS1Nt6f+GFGtbIp6oeCi0gOs3rGDqMal1ypcwEdHb25s YPiwlnEMrstVbCJd49kpDisIfsjhhF8u8TbKkwQZCBi3ee0Nv6vOUXkaauK+IA6lEoLK ul0g==
In-reply-to: <20131003182915.GA15556@linux-mips.org>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1380786415-24956-1-git-send-email-pmallappa@caviumnetworks.com> <1380786415-24956-2-git-send-email-pmallappa@caviumnetworks.com> <20131003182915.GA15556@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7
On 10/03/2013 11:29 AM, Ralf Baechle wrote:
On Thu, Oct 03, 2013 at 01:16:55PM +0530, Prem Mallappa wrote:

@@ -41,19 +42,20 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
        if (!csize)
                return 0;

-       vaddr = kmap_atomic_pfn(pfn);
+       vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE);

This is not portable, I'm afraid.

It raised a red flag for me too.

I wonder, how does /dev/mem handle it? We should probably do what the mem driver does for this.

David Daney



Ioremap on MIPS is creating uncached mappings - on most systems, that is.
However there is no guarantee that the data accessed through this mapping
does not reside in a cache on another CPU or another virtual address
which would make the operation undefined.

On SGI IP27 and IP35 ioremap is not even able to create RAM mappings at
all.  If you're lucky this would result in a bus error; if you're unlucky
it'll make the SCSI controller scribble the answer to the universe, life
and everything on the disk drive only to corrupt it again before you have
a chance to read it ;-)

I think this is bulletproof on Octeon so until there's a better patch you
may want to keep this around for the SDK.

I wonder, does commit 5395d97b675986e7e8f3140f9e0819d20b1d22cd
in upstream-sfr.git fix your issue?

Cheers,

   Ralf





<Prev in Thread] Current Thread [Next in Thread>