[PATCH] coretemp: Initialize sysfs attrs

From: Sergey Senozhatsky
Date: Tue May 24 2011 - 07:28:34 EST


Initialize sysfs attrs before device_create_file() call to suppress lockdep_init_map()
warning:

[ 3.653628] WARNING: at kernel/lockdep.c:2885 lockdep_init_map+0xea/0x43c()
[ 3.653698] Modules linked in:
[ 3.654835] Pid: 1, comm: swapper Not tainted 2.6.39-dbg-git8-05624-g46187f8 #576
[ 3.656014] Call Trace:
[ 3.657139] [<ffffffff8103e4b4>] warn_slowpath_common+0x7e/0x96
[ 3.658298] [<ffffffff8103e4e1>] warn_slowpath_null+0x15/0x17
[ 3.659460] [<ffffffff8106d7b9>] lockdep_init_map+0xea/0x43c
[ 3.660616] [<ffffffff81163c1a>] sysfs_add_file_mode+0x5d/0xa8
[ 3.661785] [<ffffffff81163c71>] sysfs_add_file+0xc/0xe
[ 3.662929] [<ffffffff81163d26>] sysfs_create_file+0x23/0x25
[ 3.664045] [<ffffffff813724d1>] device_create_file+0x14/0x16
[ 3.665172] [<ffffffff81460ed4>] coretemp_probe+0xf9/0x185
[ 3.666306] [<ffffffff8137638e>] platform_drv_probe+0x12/0x14
[ 3.667420] [<ffffffff81375321>] driver_probe_device+0xb0/0x14b
[ 3.668542] [<ffffffff8137546d>] __device_attach+0x35/0x3a
[ 3.669710] [<ffffffff81375438>] ? __driver_attach+0x7c/0x7c
[ 3.670816] [<ffffffff8137426b>] bus_for_each_drv+0x54/0x88
[ 3.671921] [<ffffffff81375231>] device_attach+0x77/0x9b
[ 3.673027] [<ffffffff81374aef>] bus_probe_device+0x22/0x39
[ 3.674137] [<ffffffff81373235>] device_add+0x3c1/0x550
[ 3.675249] [<ffffffff81371ed9>] ? dev_set_name+0x3c/0x3e
[ 3.676371] [<ffffffff813769f3>] platform_device_add+0x10c/0x156
[ 3.677491] [<ffffffff8146af9c>] get_core_online+0xab/0x16e
[ 3.678608] [<ffffffff81ad8070>] coretemp_init+0x4b/0x80
[ 3.679724] [<ffffffff81ad8025>] ? hwmon_init+0xee/0xee
[ 3.680853] [<ffffffff8100020a>] do_one_initcall+0x7a/0x13c
[ 3.681975] [<ffffffff81aaac74>] kernel_init+0xe1/0x15b
[ 3.683081] [<ffffffff8147e4e4>] kernel_thread_helper+0x4/0x10
[ 3.684174] [<ffffffff8102d48c>] ? finish_task_switch+0x76/0xf0
[ 3.685266] [<ffffffff81477918>] ? retint_restore_args+0x13/0x13
[ 3.686356] [<ffffffff81aaab93>] ? start_kernel+0x3ee/0x3ee
[ 3.687425] [<ffffffff8147e4e0>] ? gs_change+0x13/0x13
[ 3.688489] ---[ end trace 7392ad3e6a92ae39 ]---

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>

---

drivers/hwmon/coretemp.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index 9577c43..d9e70ac 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -350,6 +350,7 @@ static int get_pkg_tjmax(unsigned int cpu, struct device *dev)

static int create_name_attr(struct platform_data *pdata, struct device *dev)
{
+ sysfs_attr_init(&pdata->name_attr.attr);
pdata->name_attr.attr.name = "name";
pdata->name_attr.attr.mode = S_IRUGO;
pdata->name_attr.show = show_name;
@@ -372,6 +373,7 @@ static int create_core_attrs(struct temp_data *tdata, struct device *dev,
for (i = 0; i < MAX_ATTRS; i++) {
snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH, names[i],
attr_no);
+ sysfs_attr_init(&tdata->sd_attrs[i].dev_attr.attr);
tdata->sd_attrs[i].dev_attr.attr.name = tdata->attr_name[i];
tdata->sd_attrs[i].dev_attr.attr.mode = S_IRUGO;
tdata->sd_attrs[i].dev_attr.show = rd_ptr[i];

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/