<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/ras, branch v5.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v5.3</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v5.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2019-06-08T15:40:28Z</updated>
<entry>
<title>RAS/CEC: Add copyright</title>
<updated>2019-06-08T15:40:28Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T20:06:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=09afc797f3629f722df6a90ca6eb944013133c7a'/>
<id>urn:sha1:09afc797f3629f722df6a90ca6eb944013133c7a</id>
<content type='text'>
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Add CONFIG_RAS_CEC_DEBUG and move CEC debug features there</title>
<updated>2019-06-08T15:39:24Z</updated>
<author>
<name>Tony Luck</name>
<email>tony.luck@intel.com</email>
</author>
<published>2019-05-06T11:13:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=60fd42d26cc7ec8847598da50ebf27e3c9647d7b'/>
<id>urn:sha1:60fd42d26cc7ec8847598da50ebf27e3c9647d7b</id>
<content type='text'>
The pfn and array files in (debugfs)/ras/cec are intended for debugging
the CEC code itself. They are not needed on production systems, so the
default setting for this CONFIG option is "n".

 [ bp: Have it with less ifdeffery by using IS_ENABLED(). ]

Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Dump the different array element sections</title>
<updated>2019-06-08T15:39:11Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T21:01:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f57518cd56e2919afbcef3839122a75e291c7f85'/>
<id>urn:sha1:f57518cd56e2919afbcef3839122a75e291c7f85</id>
<content type='text'>
When dumping the array elements, print them in the following format:

  [ PFN | generation in binary | count ]

to be perfectly clear what all those sections are.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Rename count_threshold to action_threshold</title>
<updated>2019-06-08T15:38:17Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T19:30:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b8b5ca6600dec2a4f1e50ca9d3cf9e1d032870cd'/>
<id>urn:sha1:b8b5ca6600dec2a4f1e50ca9d3cf9e1d032870cd</id>
<content type='text'>
... which is the better, more-fitting name anyway.

Tony:
 - make action_threshold u64 due to debugfs accessors expecting u64.
 - rename the remaining: s/count_threshold/action_threshold/g

Co-developed-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Sanity-check array on every insertion</title>
<updated>2019-06-08T15:35:34Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-21T19:41:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9632a3299bb1897f01c6a485ff035b20e61d7ae1'/>
<id>urn:sha1:9632a3299bb1897f01c6a485ff035b20e61d7ae1</id>
<content type='text'>
Check the elements order in the array after every insertion.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Fix potential memory leak</title>
<updated>2019-06-08T15:35:04Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T19:39:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d0e375e8f26edd2e577e3afa9d952f91037cbd87'/>
<id>urn:sha1:d0e375e8f26edd2e577e3afa9d952f91037cbd87</id>
<content type='text'>
Free the array page if a failure is encountered while creating the
debugfs nodes.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Do not set decay value on error</title>
<updated>2019-06-08T15:34:36Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T19:33:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5cc6b16ea1313d05956b55e83a1f753c604282a8'/>
<id>urn:sha1:5cc6b16ea1313d05956b55e83a1f753c604282a8</id>
<content type='text'>
When the value requested doesn't match the allowed (min,max) range,
the @data buffer should not be modified with the invalid value because
reading "decay_interval" shows it otherwise as if the previous write
succeeded.

Move the data write after the check.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Check count_threshold unconditionally</title>
<updated>2019-06-08T15:33:10Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T12:06:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=de0e0624d86ff9fc512dedb297f8978698abf21a'/>
<id>urn:sha1:de0e0624d86ff9fc512dedb297f8978698abf21a</id>
<content type='text'>
The count_threshold should be checked unconditionally, after insertion
too, so that a count_threshold value of 1 can cause an immediate
offlining. I.e., offline the page on the *first* error encountered.

Add comments to make it clear what cec_add_elem() does, while at it.

Reported-by: WANG Chao &lt;chao.wang@ucloud.cn&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac@vger.kernel.org
Link: https://lkml.kernel.org/r/20190418034115.75954-3-chao.wang@ucloud.cn
</content>
</entry>
<entry>
<title>RAS/CEC: Fix pfn insertion</title>
<updated>2019-06-08T15:32:00Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2019-04-20T10:53:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6d8e294bf5f0e85c34e8b14b064e2965f53f38b0'/>
<id>urn:sha1:6d8e294bf5f0e85c34e8b14b064e2965f53f38b0</id>
<content type='text'>
When inserting random PFNs for debugging the CEC through
(debugfs)/ras/cec/pfn, depending on the return value of pfn_set(),
multiple values get inserted per a single write.

That is because simple_attr_write() interprets a retval of 0 as
success and claims the whole input. However, pfn_set() returns the
cec_add_elem() value, which, if &gt; 0 and smaller than the whole input
length, makes glibc continue issuing the write syscall until there's
input left:

  pfn_set
  simple_attr_write
  debugfs_attr_write
  full_proxy_write
  vfs_write
  ksys_write
  do_syscall_64
  entry_SYSCALL_64_after_hwframe

leading to those repeated calls.

Return 0 to fix that.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>RAS/CEC: Convert the timer callback to a workqueue</title>
<updated>2019-06-07T21:21:39Z</updated>
<author>
<name>Cong Wang</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2019-04-16T21:33:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0ade0b6240c4853cf9725924c46c10f4251639d7'/>
<id>urn:sha1:0ade0b6240c4853cf9725924c46c10f4251639d7</id>
<content type='text'>
cec_timer_fn() is a timer callback which reads ce_arr.array[] and
updates its decay values. However, it runs in interrupt context and the
mutex protection the CEC uses for that array, is inadequate. Convert the
used timer to a workqueue to keep the tasks the CEC performs preemptible
and thus low-prio.

 [ bp: Rewrite commit message.
   s/timer/decay/gi to make it agnostic as to what facility is used. ]

Fixes: 011d82611172 ("RAS: Add a Corrected Errors Collector")
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Link: https://lkml.kernel.org/r/20190416213351.28999-2-xiyou.wangcong@gmail.com
</content>
</entry>
</feed>
