<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/fs/pstore/ram_core.c, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2014-12-11T21:38:31+00:00</updated>
<entry>
<title>pstore-ram: Allow optional mapping with pgprot_noncached</title>
<updated>2014-12-11T21:38:31+00:00</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2014-09-16T20:50:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=027bc8b08242c59e19356b4b2c189f2d849ab660'/>
<id>urn:sha1:027bc8b08242c59e19356b4b2c189f2d849ab660</id>
<content type='text'>
On some ARMs the memory can be mapped pgprot_noncached() and still
be working for atomic operations. As pointed out by Colin Cross
&lt;ccross@android.com&gt;, in some cases you do want to use
pgprot_noncached() if the SoC supports it to see a debug printk
just before a write hanging the system.

On ARMs, the atomic operations on strongly ordered memory are
implementation defined. So let's provide an optional kernel parameter
for configuring pgprot_noncached(), and use pgprot_writecombine() by
default.

Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Rob Herring &lt;robherring2@gmail.com&gt;
Cc: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Cc: Anton Vorontsov &lt;anton@enomsg.org&gt;
Cc: Colin Cross &lt;ccross@android.com&gt;
Cc: Olof Johansson &lt;olof@lixom.net&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: stable@vger.kernel.org
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>pstore-ram: Fix hangs by using write-combine mappings</title>
<updated>2014-12-11T21:35:49+00:00</updated>
<author>
<name>Rob Herring</name>
<email>robherring2@gmail.com</email>
</author>
<published>2014-09-12T18:32:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=7ae9cb81933515dc7db1aa3c47ef7653717e3090'/>
<id>urn:sha1:7ae9cb81933515dc7db1aa3c47ef7653717e3090</id>
<content type='text'>
Currently trying to use pstore on at least ARMs can hang as we're
mapping the peristent RAM with pgprot_noncached().

On ARMs, pgprot_noncached() will actually make the memory strongly
ordered, and as the atomic operations pstore uses are implementation
defined for strongly ordered memory, they may not work. So basically
atomic operations have undefined behavior on ARM for device or strongly
ordered memory types.

Let's fix the issue by using write-combine variants for mappings. This
corresponds to normal, non-cacheable memory on ARM. For many other
architectures, this change does not change the mapping type as by
default we have:

#define pgprot_writecombine pgprot_noncached

The reason why pgprot_noncached() was originaly used for pstore
is because Colin Cross &lt;ccross@android.com&gt; had observed lost
debug prints right before a device hanging write operation on some
systems. For the platforms supporting pgprot_noncached(), we can
add a an optional configuration option to support that. But let's
get pstore working first before adding new features.

Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Cc: Colin Cross &lt;ccross@android.com&gt;
Cc: Olof Johansson &lt;olof@lixom.net&gt;
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Rob Herring &lt;rob.herring@calxeda.com&gt;
[tony@atomide.com: updated description]
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>fs/pstore/ram_core.c: replace count*size kmalloc by kmalloc_array</title>
<updated>2014-08-08T22:57:25+00:00</updated>
<author>
<name>Fabian Frederick</name>
<email>fabf@skynet.be</email>
</author>
<published>2014-08-08T21:22:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=b8f52d89c0c6daec8a9f9e00c1c9afb680cbcf5e'/>
<id>urn:sha1:b8f52d89c0c6daec8a9f9e00c1c9afb680cbcf5e</id>
<content type='text'>
kmalloc_array manages count*sizeof overflow.

Signed-off-by: Fabian Frederick &lt;fabf@skynet.be&gt;
Cc: Anton Vorontsov &lt;anton@enomsg.org&gt;
Cc: Colin Cross &lt;ccross@android.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fs/pstore: logging clean-up</title>
<updated>2014-06-06T23:08:13+00:00</updated>
<author>
<name>Fabian Frederick</name>
<email>fabf@skynet.be</email>
</author>
<published>2014-06-06T21:37:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=ef74885353e0ee4d884604148628df3369c76719'/>
<id>urn:sha1:ef74885353e0ee4d884604148628df3369c76719</id>
<content type='text'>
- Define pr_fmt in plateform.c and ram_core.c for global prefix.

- Coalesce format fragments.

- Separate format/arguments on lines &gt; 80 characters.

Note: Some pr_foo() were initially declared without prefix and therefore
this could break existing log analyzer.

[akpm@linux-foundation.org: missed a couple of prefix removals]
Signed-off-by: Fabian Frederick &lt;fabf@skynet.be&gt;
Cc: Joe Perches &lt;joe@perches.com&gt;
Cc: Anton Vorontsov &lt;anton@enomsg.org&gt;
Cc: Colin Cross &lt;ccross@android.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pstore: Fix buffer overflow while write offset equal to buffer size</title>
<updated>2014-03-17T21:14:03+00:00</updated>
<author>
<name>Liu ShuoX</name>
<email>shuox.liu@intel.com</email>
</author>
<published>2014-03-12T13:24:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=017321cf390045dd4c4afc4a232995ea50bcf66d'/>
<id>urn:sha1:017321cf390045dd4c4afc4a232995ea50bcf66d</id>
<content type='text'>
In case new offset is equal to prz-&gt;buffer_size, it won't wrap at this
time and will return old(overflow) value next time.

Signed-off-by: Liu ShuoX &lt;shuox.liu@intel.com&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>pstore/ram: avoid atomic accesses for ioremapped regions</title>
<updated>2013-06-14T22:54:21+00:00</updated>
<author>
<name>Rob Herring</name>
<email>rob.herring@calxeda.com</email>
</author>
<published>2013-04-09T01:23:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=0405a5cec3406f19e69da07c8111a6bf1088ac29'/>
<id>urn:sha1:0405a5cec3406f19e69da07c8111a6bf1088ac29</id>
<content type='text'>
For persistent RAM outside of main memory, the memory may have limitations
on supported accesses. For internal RAM on highbank platform exclusive
accesses are not supported and will hang the system. So atomic_cmpxchg
cannot be used. This commit uses spinlock protection for buffer size and
start updates on ioremapped regions instead.

Signed-off-by: Rob Herring &lt;rob.herring@calxeda.com&gt;
Acked-by: Anton Vorontsov &lt;anton@enomsg.org&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>pstore/ram: Restore ecc information block</title>
<updated>2013-04-04T04:50:10+00:00</updated>
<author>
<name>Arve Hjønnevåg</name>
<email>arve@android.com</email>
</author>
<published>2012-12-06T05:19:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=bd08ec33b5c23833581e5a36b2a69ccae6b39a28'/>
<id>urn:sha1:bd08ec33b5c23833581e5a36b2a69ccae6b39a28</id>
<content type='text'>
This was lost when proc/last_kmsg moved to pstore/console-ramoops.

Signed-off-by: Arve Hjønnevåg &lt;arve@android.com&gt;
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Anton Vorontsov &lt;anton@enomsg.org&gt;
</content>
</entry>
<entry>
<title>pstore/ram: Allow specifying ecc parameters in platform data</title>
<updated>2013-04-04T04:50:00+00:00</updated>
<author>
<name>Arve Hjønnevåg</name>
<email>arve@android.com</email>
</author>
<published>2012-05-22T23:33:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=c31ad081e8734aab3fb45d2f32e9969994dd076e'/>
<id>urn:sha1:c31ad081e8734aab3fb45d2f32e9969994dd076e</id>
<content type='text'>
Allow specifying ecc parameters in platform data

Signed-off-by: Arve Hjønnevåg &lt;arve@android.com&gt;
[jstultz: Tweaked commit subject &amp; add commit message]
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Anton Vorontsov &lt;anton@enomsg.org&gt;
</content>
</entry>
<entry>
<title>pstore/ram: Include ecc_size when calculating ecc_block</title>
<updated>2013-04-04T04:49:28+00:00</updated>
<author>
<name>Arve Hjønnevåg</name>
<email>arve@android.com</email>
</author>
<published>2012-03-20T23:01:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=422ca8608c49d1e9bfed1c58a1ca448a8a38c0ad'/>
<id>urn:sha1:422ca8608c49d1e9bfed1c58a1ca448a8a38c0ad</id>
<content type='text'>
Wastes less memory and allows using more memory for ecc than data.

Signed-off-by: Arve Hjønnevåg &lt;arve@android.com&gt;
[jstultz: Tweaked commit subject]
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Anton Vorontsov &lt;anton@enomsg.org&gt;
</content>
</entry>
<entry>
<title>pstore: remove __dev* attributes.</title>
<updated>2013-01-03T23:57:14+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2012-12-21T23:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=f568f6ca811fe681ecfd11c4ce78b6aa488020c0'/>
<id>urn:sha1:f568f6ca811fe681ecfd11c4ce78b6aa488020c0</id>
<content type='text'>
CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit from the pstore filesystem.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton &lt;wfp5p@virginia.edu&gt;
Cc: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Cc: Colin Cross &lt;ccross@android.com&gt;
Cc: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
