diff options
author | Doug Thompson <dougthompson@xmission.com> | 2007-07-19 12:50:33 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 21:04:57 +0400 |
commit | b2a4ac0c2860b27670bce99e8c9c281bf431c272 (patch) | |
tree | 33a779777dda27f7660fc67db8444ad51aae8155 /drivers/edac/edac_core.h | |
parent | ba9a5918c86762fa7fae353c635bb6ed5221dfb8 (diff) | |
download | linux-b2a4ac0c2860b27670bce99e8c9c281bf431c272.tar.xz |
drivers/edac: fix edac_device sysfs corner case bug
Some simple fixes to properly reference counter values from the block
attribute level of edac_device objects. Properly sequencing the array pointer
was added, resulting in correct identification of block level attributes from
their base class functions.
Added more verbose debug statement for event tracking.
Also during some corner testing, found a bug in the store/show sequence
of operations for the block attribute/controls management.
An old intermediate structure for 'blocks' was still in the processing
pipeline. This patch removes that old structure and correctly utilizes the
new struct edac_dev_sysfs_block_attribute for passing control from the sysfs
to the low level store/show function of the edac driver.
Now the proper kobj pointer to passed downward to the store/show
functions.
Signed-off-by: Doug Thompson <dougthompson@xmission.com>
Cc: Greg KH <greg@kroah.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/edac/edac_core.h')
-rw-r--r-- | drivers/edac/edac_core.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h index 4e31ac438760..4e6bad15c4ba 100644 --- a/drivers/edac/edac_core.h +++ b/drivers/edac/edac_core.h @@ -485,7 +485,16 @@ struct edac_dev_sysfs_attribute { }; /* edac_dev_sysfs_block_attribute structure + * * used in leaf 'block' nodes for adding controls/attributes + * + * each block in each instance of the containing control structure + * can have an array of the following. The show and store functions + * will be filled in with the show/store function in the + * low level driver. + * + * The 'value' field will be the actual value field used for + * counting */ struct edac_dev_sysfs_block_attribute { struct attribute attr; @@ -494,8 +503,6 @@ struct edac_dev_sysfs_block_attribute { const char *, size_t); struct edac_device_block *block; - /* low driver use */ - void *arg; unsigned int value; }; |