diff options
author | Prarit Bhargava <prarit@redhat.com> | 2012-10-16 09:02:27 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-11-28 03:56:00 -0500 |
commit | 42709efb3a47524c6252e1bdc85e205f7bc356fb (patch) | |
tree | 8cecdce5b9cd54ea7cd41fd5f52f867b3ddb1c32 | |
parent | 7e06b7a3333f5c7a0cec12aff20d39c5c87c0795 (diff) |
i7core_edac: fix panic when accessing sysfs files
The i7core_edac addrmatch_dev and chancounts_dev have sysfs files
associated with them. The sysfs files, however, are coded so that the
parent device is is the mci device. This is incorrect and the mci struct
should be obtained through the addrmatch_dev and chancounts_dev device's
private data field which is populated in i7core_create_sysfs_devices().
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/edac/i7core_edac.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c index 3672101023bd..10c8c00d6469 100644 --- a/drivers/edac/i7core_edac.c +++ b/drivers/edac/i7core_edac.c | |||
@@ -816,7 +816,7 @@ static ssize_t i7core_inject_store_##param( \ | |||
816 | struct device_attribute *mattr, \ | 816 | struct device_attribute *mattr, \ |
817 | const char *data, size_t count) \ | 817 | const char *data, size_t count) \ |
818 | { \ | 818 | { \ |
819 | struct mem_ctl_info *mci = to_mci(dev); \ | 819 | struct mem_ctl_info *mci = dev_get_drvdata(dev); \ |
820 | struct i7core_pvt *pvt; \ | 820 | struct i7core_pvt *pvt; \ |
821 | long value; \ | 821 | long value; \ |
822 | int rc; \ | 822 | int rc; \ |
@@ -845,7 +845,7 @@ static ssize_t i7core_inject_show_##param( \ | |||
845 | struct device_attribute *mattr, \ | 845 | struct device_attribute *mattr, \ |
846 | char *data) \ | 846 | char *data) \ |
847 | { \ | 847 | { \ |
848 | struct mem_ctl_info *mci = to_mci(dev); \ | 848 | struct mem_ctl_info *mci = dev_get_drvdata(dev); \ |
849 | struct i7core_pvt *pvt; \ | 849 | struct i7core_pvt *pvt; \ |
850 | \ | 850 | \ |
851 | pvt = mci->pvt_info; \ | 851 | pvt = mci->pvt_info; \ |
@@ -1052,7 +1052,7 @@ static ssize_t i7core_show_counter_##param( \ | |||
1052 | struct device_attribute *mattr, \ | 1052 | struct device_attribute *mattr, \ |
1053 | char *data) \ | 1053 | char *data) \ |
1054 | { \ | 1054 | { \ |
1055 | struct mem_ctl_info *mci = to_mci(dev); \ | 1055 | struct mem_ctl_info *mci = dev_get_drvdata(dev); \ |
1056 | struct i7core_pvt *pvt = mci->pvt_info; \ | 1056 | struct i7core_pvt *pvt = mci->pvt_info; \ |
1057 | \ | 1057 | \ |
1058 | edac_dbg(1, "\n"); \ | 1058 | edac_dbg(1, "\n"); \ |