linux/drivers/edac
Borislav Petkov 5e8e19bf6c EDAC: Correct scrub rate API
The original scrub rate API definition states that if scrub rate
accessors are not implemented, a negative value (-1) should be written
to the sysfs file (/sys/devices/system/edac/mc/mc<N>/sdram_scrub_rate,
where N is the memory controller number on the system). This is
counter-intuitive and awkward at the very least because, when setting
the scrub rate, userspace has to write to sysfs and then read it back to
check error status of the operation.

As Tony notes, best it would be to not have the sdram_scrub_rate in
sysfs if scrub rate support is not implemented. It is too late about
that and a bunch of drivers on a bunch of arches would need to be
changed and tested which is not a trivial task ATM.

Instead, settle for the next best thing of returning -ENODEV when
implementation is missing and -EINVAL when there was an error
encountered while setting the scrub rate.

Reported-by: Han Pingtian <phan@redhat.com>
Cc: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/20110916105856.GA13253@hpt.nay.redhat.com
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
2012-03-19 12:03:58 +01:00
..
Kconfig edac: Only build sb_edac on 64-bit 2011-11-03 11:22:44 -07:00
Makefile edac: sb_edac: Add it to the building system 2011-11-01 10:01:54 -02:00
amd64_edac.c amd64_edac: Fix K8 revD and later chip select sizes 2012-03-19 12:02:46 +01:00
amd64_edac.h amd64_edac: Erratum #637 workaround 2011-04-26 16:18:56 +02:00
amd64_edac_dbg.c EDAC, MCE: Rework MCE injection 2010-10-21 14:47:59 +02:00
amd64_edac_inj.c amd64_edac: Add support for F15h DCT PCI config accesses 2011-03-17 14:46:11 +01:00
amd76x_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.h edac: AMD8111 driver header file 2009-04-02 19:05:03 -07:00
amd8131_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8131_edac.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
cell_edac.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
cpc925_edac.c cpc925_edac: Support single-processor configurations 2011-09-01 16:00:18 +10:00
e7xxx_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
e752x_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
edac_core.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_mc.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_mc_sysfs.c EDAC: Correct scrub rate API 2012-03-19 12:03:58 +01:00
edac_module.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
edac_module.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_stub.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
i7core_edac.c x86, mce: Add wrappers for registering on the decode chain 2011-12-14 12:50:12 +01:00
i3000_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i3200_edac.c asm-generic: architecture independent readq/writeq for 32bit environment 2012-02-21 16:47:28 -08:00
i5000_edac.c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-05-26 13:19:00 -07:00
i5100_edac.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i5400_edac.c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-05-26 13:19:00 -07:00
i7300_edac.c i7300_edac: Fix error cleanup logic 2011-11-01 10:01:53 -02:00
i82443bxgx_edac.c Fix common misspellings 2011-03-31 11:26:23 -03:00
i82860_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
i82875p_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
i82975x_edac.c edac:i82975x fix 32bit compile and cleanup 2011-10-29 21:29:42 +02:00
mce_amd.c x86, mce: Add wrappers for registering on the decode chain 2011-12-14 12:50:12 +01:00
mce_amd.h EDAC, MCE, AMD: Simplify NB MCE decoder interface 2011-10-06 12:34:04 +02:00
mce_amd_inj.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
mpc85xx_edac.c drivers/edac/mpc85xx_edac.c: fix memory controller compatible for edac 2011-11-24 01:59:38 -06:00
mpc85xx_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
mv64x60_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mv64x60_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
pasemi_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ppc4xx_edac.c treewide: Fix typos in various parts of the kernel, and fix some comments. 2011-12-02 14:57:31 +01:00
ppc4xx_edac.h edac: new ppc4xx driver module 2009-04-02 19:05:03 -07:00
r82600_edac.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sb_edac.c Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 15:02:37 -08:00
tile_edac.c drivers/edac: provide support for tile architecture 2011-03-10 13:30:14 -05:00
x38_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00