<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/edac, branch v4.5</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=v4.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-03-07T18:07:40Z</updated>
<entry>
<title>EDAC, sb_edac: Fix logic when computing DIMM sizes on Xeon Phi</title>
<updated>2016-03-07T18:07:40Z</updated>
<author>
<name>Hubert Chrzaniuk</name>
<email>hubert.chrzaniuk@intel.com</email>
</author>
<published>2016-03-07T14:30:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=83bdaad4d919722744ef1b726a9913ec36c6a430'/>
<id>urn:sha1:83bdaad4d919722744ef1b726a9913ec36c6a430</id>
<content type='text'>
Correct a typo introduced by

  d0cdf9003140 ("EDAC, sb_edac: Add Knights Landing (Xeon Phi gen 2) support")

As a result under some configurations DIMMs were not correctly
recognized. Problem affects only Xeon Phi architecture.

Signed-off-by: Hubert Chrzaniuk &lt;hubert.chrzaniuk@intel.com&gt;
Acked-by: Aristeu Rozanski &lt;aris@redhat.com&gt;
Cc: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
Cc: lukasz.anaczkowski@intel.com
Link: http://lkml.kernel.org/r/1457361045-26221-1-git-send-email-hubert.chrzaniuk@intel.com
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC, i5100: Use to_delayed_work()</title>
<updated>2016-01-01T17:31:34Z</updated>
<author>
<name>Geliang Tang</name>
<email>geliangtang@163.com</email>
</author>
<published>2016-01-01T14:59:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1cac5503fbf751f121d0c9f96e69d1fdd3eb1471'/>
<id>urn:sha1:1cac5503fbf751f121d0c9f96e69d1fdd3eb1471</id>
<content type='text'>
Use to_delayed_work() instead of open-coding it.

Signed-off-by: Geliang Tang &lt;geliangtang@163.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
Link: http://lkml.kernel.org/r/58c0e319c7263a10b692100c657c06c42814aecf.1451659910.git.geliangtang@163.com
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC, sb_edac: Set fixed DIMM width on Xeon Knights Landing</title>
<updated>2015-12-11T15:58:32Z</updated>
<author>
<name>Hubert Chrzaniuk</name>
<email>hubert.chrzaniuk@intel.com</email>
</author>
<published>2015-12-11T13:21:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=45f4d3ab3ee8d12471e47057ea4d0d86167b25a0'/>
<id>urn:sha1:45f4d3ab3ee8d12471e47057ea4d0d86167b25a0</id>
<content type='text'>
Knights Landing does not come with register that could be used to fetch
DIMM width. However the value is fixed for this architecture so it can
be hardcoded.

Signed-off-by: Hubert Chrzaniuk &lt;hubert.chrzaniuk@intel.com&gt;
Cc: Doug Thompson &lt;dougthompson@xmission.com&gt;
Cc: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
Cc: lukasz.anaczkowski@intel.com
Link: http://lkml.kernel.org/r/1449840082-18673-1-git-send-email-hubert.chrzaniuk@intel.com
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC: Rework workqueue handling</title>
<updated>2015-12-11T15:56:43Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-11-30T18:02:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c4cf3b454ecaa222aad9017932bd3b9c9325d931'/>
<id>urn:sha1:c4cf3b454ecaa222aad9017932bd3b9c9325d931</id>
<content type='text'>
Hide the EDAC workqueue pointer in a separate compilation unit and add
accessors for the workqueue manipulations needed.

Remove edac_pci_reset_delay_period() which wasn't used by anything. It
seems it got added without a user with

  91b99041c1d5 ("drivers/edac: updated PCI monitoring")

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC: Make edac_device workqueue setup/teardown functions static</title>
<updated>2015-12-11T15:56:42Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-11-30T14:07:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e136fa016f2f06ca6e00d4f99894b4424f3f2a5c'/>
<id>urn:sha1:e136fa016f2f06ca6e00d4f99894b4424f3f2a5c</id>
<content type='text'>
They're not used anywhere else.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC: Remove edac_get_sysfs_subsys() error handling</title>
<updated>2015-12-11T15:56:41Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-11-30T13:20:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d4538000ca4354a2c07cdd31ce994af7d23e24d6'/>
<id>urn:sha1:d4538000ca4354a2c07cdd31ce994af7d23e24d6</id>
<content type='text'>
It cannot fail now. We either load EDAC core after having successfully
initialized edac_subsys or we don't.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC: Unexport and make edac_subsys static</title>
<updated>2015-12-11T15:56:40Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-11-30T13:15:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a97d26270169dc30ef28f0860097b7dc793206be'/>
<id>urn:sha1:a97d26270169dc30ef28f0860097b7dc793206be</id>
<content type='text'>
... and use the accessor instead.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC: Rip out the edac_subsys reference counting</title>
<updated>2015-12-11T15:56:39Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-11-27T10:40:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=733476cf207faf574b132523ff2aee78b488ed6b'/>
<id>urn:sha1:733476cf207faf574b132523ff2aee78b488ed6b</id>
<content type='text'>
This was really dumb - reference counting for the main EDAC sysfs
object. While we could've simply registered it as the first thing in the
module init path and then hand it around to what needs it.

Do that and rip out all the code around it, thus simplifying the whole
handling significantly.

Move the edac_subsys node back to edac_module.c.

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
</content>
</entry>
<entry>
<title>EDAC: Robustify workqueues destruction</title>
<updated>2015-12-11T15:56:39Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-11-27T09:38:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fcd5c4dd8201595d4c598c9cca5e54760277d687'/>
<id>urn:sha1:fcd5c4dd8201595d4c598c9cca5e54760277d687</id>
<content type='text'>
EDAC workqueue destruction is really fragile. We cancel delayed work
but if it is still running and requeues itself, we still go ahead and
destroy the workqueue and the queued work explodes when workqueue core
attempts to run it.

Make the destruction more robust by switching op_state to offline so
that requeuing stops. Cancel any pending work *synchronously* too.

  EDAC i7core: Driver loaded.
  general protection fault: 0000 [#1] SMP
  CPU 12
  Modules linked in:
  Supported: Yes
  Pid: 0, comm: kworker/0:1 Tainted: G          IE   3.0.101-0-default #1 HP ProLiant DL380 G7
  RIP: 0010:[&lt;ffffffff8107dcd7&gt;]  [&lt;ffffffff8107dcd7&gt;] __queue_work+0x17/0x3f0
  &lt; ... regs ...&gt;
  Process kworker/0:1 (pid: 0, threadinfo ffff88019def6000, task ffff88019def4600)
  Stack:
   ...
  Call Trace:
   call_timer_fn
   run_timer_softirq
   __do_softirq
   call_softirq
   do_softirq
   irq_exit
   smp_apic_timer_interrupt
   apic_timer_interrupt
   intel_idle
   cpuidle_idle_call
   cpu_idle
  Code: ...
  RIP  __queue_work
   RSP &lt;...&gt;

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: &lt;stable@vger.kernel.org&gt;
</content>
</entry>
<entry>
<title>EDAC, mc_sysfs: Fix freeing bus' name</title>
<updated>2015-12-11T15:56:38Z</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@suse.de</email>
</author>
<published>2015-12-01T14:52:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=12e26969b32c79018165d52caff3762135614aa1'/>
<id>urn:sha1:12e26969b32c79018165d52caff3762135614aa1</id>
<content type='text'>
I get the splat below when modprobing/rmmoding EDAC drivers. It happens
because bus-&gt;name is invalid after bus_unregister() has run. The Code: section
below corresponds to:

  .loc 1 1108 0
  movq    672(%rbx), %rax # mci_1(D)-&gt;bus, mci_1(D)-&gt;bus
  .loc 1 1109 0
  popq    %rbx    #

  .loc 1 1108 0
  movq    (%rax), %rdi    # _7-&gt;name,
  jmp     kfree   #

and %rax has some funky stuff 2030203020312030 which looks a lot like
something walked over it.

Fix that by saving the name ptr before doing stuff to string it points to.

  general protection fault: 0000 [#1] SMP
  Modules linked in: ...
  CPU: 4 PID: 10318 Comm: modprobe Tainted: G          I EN  3.12.51-11-default+ #48
  Hardware name: HP ProLiant DL380 G7, BIOS P67 05/05/2011
  task: ffff880311320280 ti: ffff88030da3e000 task.ti: ffff88030da3e000
  RIP: 0010:[&lt;ffffffffa019da92&gt;]  [&lt;ffffffffa019da92&gt;] edac_unregister_sysfs+0x22/0x30 [edac_core]
  RSP: 0018:ffff88030da3fe28  EFLAGS: 00010292
  RAX: 2030203020312030 RBX: ffff880311b4e000 RCX: 000000000000095c
  RDX: 0000000000000001 RSI: ffff880327bb9600 RDI: 0000000000000286
  RBP: ffff880311b4e750 R08: 0000000000000000 R09: ffffffff81296110
  R10: 0000000000000400 R11: 0000000000000000 R12: ffff88030ba1ac68
  R13: 0000000000000001 R14: 00000000011b02f0 R15: 0000000000000000
  FS:  00007fc9bf8f5700(0000) GS:ffff8801a7c40000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
  CR2: 0000000000403c90 CR3: 000000019ebdf000 CR4: 00000000000007e0
  Stack:
  Call Trace:
    i7core_unregister_mci.isra.9
    i7core_remove
    pci_device_remove
    __device_release_driver
    driver_detach
    bus_remove_driver
    pci_unregister_driver
    i7core_exit
    SyS_delete_module
    system_call_fastpath
    0x7fc9bf426536
  Code: 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 53 48 89 fb e8 52 2a 1f e1 48 8b bb a0 02 00 00 e8 46 59 1f e1 48 8b 83 a0 02 00 00 5b &lt;48&gt; 8b 38 e9 26 9a fe e0 66 0f 1f 44 00 00 66 66 66 66 90 48 8b
  RIP  [&lt;ffffffffa019da92&gt;] edac_unregister_sysfs+0x22/0x30 [edac_core]
   RSP &lt;ffff88030da3fe28&gt;

Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v3.6..
Fixes: 7a623c039075 ("edac: rewrite the sysfs code to use struct device")
</content>
</entry>
</feed>
