All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali@linux-fr.org>
To: lm-sensors@vger.kernel.org
Subject: [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs
Date: Sun, 10 Feb 2008 18:01:15 +0000	[thread overview]
Message-ID: <20080210190115.2ebd4124@hyperion.delvare> (raw)

On Sun, 10 Feb 2008 09:10:04 -0800, Greg KH wrote:
> On Sat, Feb 09, 2008 at 11:55:43PM -0800, Yinghai Lu wrote:
> > Calling initcall 0xffffffff80c4b575: sm_adm1026_init+0x0/0xe()
> > i2c-adapter i2c-1: : Unrecognized stepping 0x45. Defaulting to ADM1026.
> > general protection fault: 0000 [1] SMP
> > CPU 0
> > Modules linked in:
> > Pid: 1, comm: swapper Not tainted 2.6.24-smp-09379-g0cf975e-dirty #34
> > RIP: 0010:[<ffffffff802d79ad>]  [<ffffffff802d79ad>] sysfs_add_file+0x16/0x81
> > RSP: 0000:ffff81040503dd50  EFLAGS: 00010286
> > RAX: 0000000000000000 RBX: fffe002e002d002c RCX: 00000000000048d9
> > RDX: 0000000000000002 RSI: fffe002e002d002c RDI: ffff810202c4fb90
> > RBP: 0000000000000000 R08: ffff810202c4fb90 R09: 0000000000000000
> > R10: 0000000000000002 R11: 0000000000000002 R12: 00000000fffffff4
> > R13: ffff810202c4fb90 R14: 000000000000000c R15: ffff810202c4fb90
> > FS:  0000000000000000(0000) GS:ffffffff80bde000(0000) knlGS:0000000000000000
> > CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> > CR2: 00007fff94de3470 CR3: 0000000000201000 CR4: 00000000000006e0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > Process swapper (pid: 1, threadinfo ffff81040503c000, task ffff810205040000)
> > Stack:  ffff810202c4fb90 0000000000000000 0000000000000000 0000000000000001
> >  ffff810202c4e000 ffffffff80b87850 0000000000000000 ffff810202c4e118
> >  ffffffff808e0cc0 ffffffff802d933c ffff81040503dd55 ffff810202c17878
> > Call Trace:
> >  [<ffffffff802d933c>] sysfs_create_group+0xa2/0x106
> >  [<ffffffff8069fbc2>] adm1026_detect+0x4b3/0x522
> >  [<ffffffff8069f70f>] adm1026_detect+0x0/0x522
> >  [<ffffffff80698bff>] i2c_probe_address+0xb9/0xfc
> >  [<ffffffff806997db>] i2c_probe+0x162/0x175
> >  [<ffffffff8069f70f>] adm1026_detect+0x0/0x522
> >  [<ffffffff8069910f>] i2c_register_driver+0x9a/0xea
> >  [<ffffffff80c276d2>] kernel_init+0x15d/0x2c9
> >  [<ffffffff8021fc68>] child_rip+0xa/0x12
> >  [<ffffffff80c27575>] kernel_init+0x0/0x2c9
> >  [<ffffffff8021fc5e>] child_rip+0x0/0x12
> > 
> > 
> > Code: c0 84 c0 74 0c 41 58 48 89 df 5b 5d e9 2a 07 00 00 5e 5b 5d c3
> > 41 55 49 89 fd 41 54 41 bc f4 ff ff ff 55 53 48 89 f3 48 83 ec 28 <8b>
> > 76 10 48 8b 3b 66 81 e6 ff 0f 66 81 ce 00 80 0f b7 f6 e8 fd
> > RIP  [<ffffffff802d79ad>] sysfs_add_file+0x16/0x81
> >  RSP <ffff81040503dd50>
> > ---[ end trace b23a825db37d3043 ]---
> 
> Perhaps the adm1026 driver is not calling sysfs_create_group properly?
> 
> Jean, any ideas?

Yeah, I am an idiot. In 5b34dbcd88251508d02e48ad9b0f9b8232a13ee0 I
introduced two new sysfs file groups but forgot to NULL-terminate them.
Sorry about that, here's the fix:

* * * * *

The missing NULL at the end of two sysfs file groups causes a kernel
crash when calling sysfs_create_group().

Signed-off-by: Jean Delvare <khali@linux-fr.org>
---
 drivers/hwmon/adm1026.c |    2 ++
 1 file changed, 2 insertions(+)

--- linux-2.6.25-rc0.orig/drivers/hwmon/adm1026.c	2008-02-10 11:21:54.000000000 +0100
+++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c	2008-02-10 18:51:00.000000000 +0100
@@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu
 	&dev_attr_temp3_crit_enable.attr,
 	&dev_attr_temp3_auto_point1_pwm.attr,
 	&dev_attr_temp3_auto_point2_pwm.attr,
+	NULL
 };
 
 static const struct attribute_group adm1026_group_temp3 = {
@@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu
 	&sensor_dev_attr_in9_max.dev_attr.attr,
 	&sensor_dev_attr_in9_min.dev_attr.attr,
 	&sensor_dev_attr_in9_alarm.dev_attr.attr,
+	NULL
 };
 
 static const struct attribute_group adm1026_group_in8_9 = {

* * * * *

Yinghai, the bug crept in because I do not have an ADM1026 chip to test
my changes. Could you please send a dump of your chip to me, so that I
can emulate it? This would avoid similar problems in the future.

First you have to find out at which address the ADM1026 chip lives. The
first line of "sensors" should tell, otherwise you can run "i2cdetect
1". The ADM1026 can live at 0x2c, 0x2d or 0x2e. Once you know the
address, run the following command to get the dump:

rmmod adm1026
i2cdump 1 0x2d b

(Replace 0x2d with the actual address.)

Thanks,
-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

         reply	other threads:[~2008-02-10 18:01 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-10  7:55 panic about sysfs with adm1026 Yinghai Lu
2008-02-10 17:10 ` [lm-sensors] " Greg KH
2008-02-10 17:10   ` Greg KH
2008-02-10 18:01   ` Jean Delvare [this message]
2008-02-10 20:31     ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Yinghai Lu
2008-02-10 20:31       ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Yinghai Lu
2008-02-11 23:39     ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Yinghai Lu
2008-02-11 23:39       ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Yinghai Lu
2008-02-12  8:27       ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Jean Delvare
2008-02-12  8:27         ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Jean Delvare
2008-02-12 15:27         ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Greg KH
2008-02-12 15:27           ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Greg KH
2008-02-12 15:37           ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Jean Delvare
2008-02-12 15:37             ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Jean Delvare
2008-02-12 16:02             ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Greg KH
2008-02-12 16:02               ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Greg KH
2008-02-12 16:13             ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs MillTek
2008-02-12 16:13               ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) MillTek
2008-02-13 13:17     ` [lm-sensors] [PATCH] hwmon: (adm1026) Properly terminate sysfs Mark M. Hoffman
2008-02-13 13:17       ` [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026) Mark M. Hoffman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080210190115.2ebd4124@hyperion.delvare \
    --to=khali@linux-fr.org \
    --cc=lm-sensors@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.