From: Linus Torvalds Date: Mon, 3 Dec 2012 19:16:37 +0000 (-0800) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac X-Git-Tag: v3.7-rc8~1 X-Git-Url: https://repo.jachan.dev/linux.git/commitdiff_plain/b52c6402b5b42620571c36c74a12dcb45ec1e0d6?hp=-c Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac Pull EDAC fixes from Mauro Carvalho Chehab: "One EDAC core fix, and a few driver fixes (i7300, i9275x, i7core)." * git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: i7core_edac: fix panic when accessing sysfs files i7300_edac: Fix error flag testing edac: Fix the dimm filling for csrows-based layouts i82975x_edac: Fix dimm label initialization --- b52c6402b5b42620571c36c74a12dcb45ec1e0d6 diff --combined drivers/edac/edac_mc.c index 90f0b730e9bb,81eb9fd3f717..75c0a1a85fc3 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c @@@ -416,10 -416,18 +416,18 @@@ struct mem_ctl_info *edac_mc_alloc(unsi dimm->cschannel = chn; /* Increment csrow location */ - row++; - if (row == tot_csrows) { - row = 0; + if (layers[0].is_virt_csrow) { chn++; + if (chn == tot_channels) { + chn = 0; + row++; + } + } else { + row++; + if (row == tot_csrows) { + row = 0; + chn++; + } } /* Increment dimm location */ @@@ -559,7 -567,7 +567,7 @@@ static void edac_mc_workq_setup(struct return; INIT_DELAYED_WORK(&mci->work, edac_mc_workq_function); - queue_delayed_work(edac_workqueue, &mci->work, msecs_to_jiffies(msec)); + mod_delayed_work(edac_workqueue, &mci->work, msecs_to_jiffies(msec)); } /* @@@ -599,6 -607,21 +607,6 @@@ void edac_mc_reset_delay_period(int val mutex_lock(&mem_ctls_mutex); - /* scan the list and turn off all workq timers, doing so under lock - */ - list_for_each(item, &mc_devices) { - mci = list_entry(item, struct mem_ctl_info, link); - - if (mci->op_state == OP_RUNNING_POLL) - cancel_delayed_work(&mci->work); - } - - mutex_unlock(&mem_ctls_mutex); - - - /* re-walk the list, and reset the poll delay */ - mutex_lock(&mem_ctls_mutex); - list_for_each(item, &mc_devices) { mci = list_entry(item, struct mem_ctl_info, link);