Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
Hi Jean et. al.: * Jean Delvare <[EMAIL PROTECTED]> [2008-02-10 19:01:15 +0100]: > 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 <[EMAIL PROTECTED]> > --- > 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.0 +0100 > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c 2008-02-10 18:51:00.0 > +0100 > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > _attr_temp3_crit_enable.attr, > _attr_temp3_auto_point1_pwm.attr, > _attr_temp3_auto_point2_pwm.attr, > + NULL > }; > > static const struct attribute_group adm1026_group_temp3 = { > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > _dev_attr_in9_max.dev_attr.attr, > _dev_attr_in9_min.dev_attr.attr, > _dev_attr_in9_alarm.dev_attr.attr, > + NULL > }; > > static const struct attribute_group adm1026_group_in8_9 = { Applied to hwmon-2.6.git/testing, thanks. -- Mark M. Hoffman [EMAIL PROTECTED] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
Hi Jean et. al.: * Jean Delvare [EMAIL PROTECTED] [2008-02-10 19:01:15 +0100]: 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c 2008-02-10 18:51:00.0 +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 = { Applied to hwmon-2.6.git/testing, thanks. -- Mark M. Hoffman [EMAIL PROTECTED] -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Tue, Feb 12, 2008 at 04:37:33PM +0100, Jean Delvare wrote: > On Tue, 12 Feb 2008 07:27:15 -0800, Greg KH wrote: > > On Tue, Feb 12, 2008 at 09:27:22AM +0100, Jean Delvare wrote: > > > Hi Yinghai, > > > > > > On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: > > > > On Feb 10, 2008 10:01 AM, Jean Delvare <[EMAIL PROTECTED]> wrote: > > > > > 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 <[EMAIL PROTECTED]> > > > > > --- > > > > > 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.0 +0100 > > > > > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 > > > > > 18:51:00.0 +0100 > > > > > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > > > > > _attr_temp3_crit_enable.attr, > > > > > _attr_temp3_auto_point1_pwm.attr, > > > > > _attr_temp3_auto_point2_pwm.attr, > > > > > + NULL > > > > > }; > > > > > > > > > > static const struct attribute_group adm1026_group_temp3 = { > > > > > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > > > > > _dev_attr_in9_max.dev_attr.attr, > > > > > _dev_attr_in9_min.dev_attr.attr, > > > > > _dev_attr_in9_alarm.dev_attr.attr, > > > > > + NULL > > > > > }; > > > > > > > > > > static const struct attribute_group adm1026_group_in8_9 = { > > > > > > > > > > * * * * * > > > > > > > > it works. Thanks > > > > > > Great, thanks. Mark, please include this patch in your next patch to > > > Linus for 2.6.25. > > > > Can someone send it to [EMAIL PROTECTED] also when it goes into Linus's > > tree, as it looks like a pretty bad thing :) > > I certainly could, but then you would laugh at me because 2.6.24 isn't > affected by the bug. Heh, my fault, for some reason I thought this was a 2.6.24 bug, sorry :) greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Tue, 12 Feb 2008 07:27:15 -0800, Greg KH wrote: > On Tue, Feb 12, 2008 at 09:27:22AM +0100, Jean Delvare wrote: > > Hi Yinghai, > > > > On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: > > > On Feb 10, 2008 10:01 AM, Jean Delvare <[EMAIL PROTECTED]> wrote: > > > > 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 <[EMAIL PROTECTED]> > > > > --- > > > > 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.0 +0100 > > > > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 > > > > 18:51:00.0 +0100 > > > > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > > > > _attr_temp3_crit_enable.attr, > > > > _attr_temp3_auto_point1_pwm.attr, > > > > _attr_temp3_auto_point2_pwm.attr, > > > > + NULL > > > > }; > > > > > > > > static const struct attribute_group adm1026_group_temp3 = { > > > > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > > > > _dev_attr_in9_max.dev_attr.attr, > > > > _dev_attr_in9_min.dev_attr.attr, > > > > _dev_attr_in9_alarm.dev_attr.attr, > > > > + NULL > > > > }; > > > > > > > > static const struct attribute_group adm1026_group_in8_9 = { > > > > > > > > * * * * * > > > > > > it works. Thanks > > > > Great, thanks. Mark, please include this patch in your next patch to > > Linus for 2.6.25. > > Can someone send it to [EMAIL PROTECTED] also when it goes into Linus's > tree, as it looks like a pretty bad thing :) I certainly could, but then you would laugh at me because 2.6.24 isn't affected by the bug. -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Tue, Feb 12, 2008 at 09:27:22AM +0100, Jean Delvare wrote: > Hi Yinghai, > > On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: > > On Feb 10, 2008 10:01 AM, Jean Delvare <[EMAIL PROTECTED]> wrote: > > > 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 <[EMAIL PROTECTED]> > > > --- > > > 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.0 +0100 > > > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 > > > 18:51:00.0 +0100 > > > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > > > _attr_temp3_crit_enable.attr, > > > _attr_temp3_auto_point1_pwm.attr, > > > _attr_temp3_auto_point2_pwm.attr, > > > + NULL > > > }; > > > > > > static const struct attribute_group adm1026_group_temp3 = { > > > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > > > _dev_attr_in9_max.dev_attr.attr, > > > _dev_attr_in9_min.dev_attr.attr, > > > _dev_attr_in9_alarm.dev_attr.attr, > > > + NULL > > > }; > > > > > > static const struct attribute_group adm1026_group_in8_9 = { > > > > > > * * * * * > > > > it works. Thanks > > Great, thanks. Mark, please include this patch in your next patch to > Linus for 2.6.25. Can someone send it to [EMAIL PROTECTED] also when it goes into Linus's tree, as it looks like a pretty bad thing :) thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
Hi Yinghai, On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: > On Feb 10, 2008 10:01 AM, Jean Delvare <[EMAIL PROTECTED]> wrote: > > 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 <[EMAIL PROTECTED]> > > --- > > 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.0 +0100 > > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 > > 18:51:00.0 +0100 > > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > > _attr_temp3_crit_enable.attr, > > _attr_temp3_auto_point1_pwm.attr, > > _attr_temp3_auto_point2_pwm.attr, > > + NULL > > }; > > > > static const struct attribute_group adm1026_group_temp3 = { > > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > > _dev_attr_in9_max.dev_attr.attr, > > _dev_attr_in9_min.dev_attr.attr, > > _dev_attr_in9_alarm.dev_attr.attr, > > + NULL > > }; > > > > static const struct attribute_group adm1026_group_in8_9 = { > > > > * * * * * > > it works. Thanks Great, thanks. Mark, please include this patch in your next patch to Linus for 2.6.25. > > 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 > > LBSuse:/x/kernel.org # ./i2cdetect 1 > WARNING! This program can confuse your I2C bus, cause data loss and worse! > I will probe file /dev/i2c-1. > I will probe address range 0x03-0x77. > Continue? [Y/n] y > 0 1 2 3 4 5 6 7 8 9 a b c d e f > 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- > 10: -- -- -- -- -- -- -- -- 18 19 -- -- 1c 1d -- -- > 20: -- -- -- -- -- -- -- -- -- -- -- -- UU UU -- -- > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 40: 40 41 -- -- -- -- -- -- 48 49 4a -- -- -- -- -- > 50: UU UU UU UU UU UU -- -- -- -- -- -- -- -- -- -- > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 70: -- -- -- -- -- -- -- -- > LBSuse:/x/kernel.org # ./i2cdump 1 0x2c b > Error: Could not set address to 0x2c: Device or resource busy > LBSuse:/x/kernel.org # ./i2cdump 1 0x2d b > Error: Could not set address to 0x2d: Device or resource busy You must unload the adm1026 driver before dumping (see the "rmmod adm1026" above in my example.) Thanks, -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
Hi Yinghai, On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: On Feb 10, 2008 10:01 AM, Jean Delvare [EMAIL PROTECTED] wrote: 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 +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 = { * * * * * it works. Thanks Great, thanks. Mark, please include this patch in your next patch to Linus for 2.6.25. 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 LBSuse:/x/kernel.org # ./i2cdetect 1 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 19 -- -- 1c 1d -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- UU UU -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 41 -- -- -- -- -- -- 48 49 4a -- -- -- -- -- 50: UU UU UU UU UU UU -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- LBSuse:/x/kernel.org # ./i2cdump 1 0x2c b Error: Could not set address to 0x2c: Device or resource busy LBSuse:/x/kernel.org # ./i2cdump 1 0x2d b Error: Could not set address to 0x2d: Device or resource busy You must unload the adm1026 driver before dumping (see the rmmod adm1026 above in my example.) Thanks, -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Tue, Feb 12, 2008 at 04:37:33PM +0100, Jean Delvare wrote: On Tue, 12 Feb 2008 07:27:15 -0800, Greg KH wrote: On Tue, Feb 12, 2008 at 09:27:22AM +0100, Jean Delvare wrote: Hi Yinghai, On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: On Feb 10, 2008 10:01 AM, Jean Delvare [EMAIL PROTECTED] wrote: 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 +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 = { * * * * * it works. Thanks Great, thanks. Mark, please include this patch in your next patch to Linus for 2.6.25. Can someone send it to [EMAIL PROTECTED] also when it goes into Linus's tree, as it looks like a pretty bad thing :) I certainly could, but then you would laugh at me because 2.6.24 isn't affected by the bug. Heh, my fault, for some reason I thought this was a 2.6.24 bug, sorry :) greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Tue, 12 Feb 2008 07:27:15 -0800, Greg KH wrote: On Tue, Feb 12, 2008 at 09:27:22AM +0100, Jean Delvare wrote: Hi Yinghai, On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: On Feb 10, 2008 10:01 AM, Jean Delvare [EMAIL PROTECTED] wrote: 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 +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 = { * * * * * it works. Thanks Great, thanks. Mark, please include this patch in your next patch to Linus for 2.6.25. Can someone send it to [EMAIL PROTECTED] also when it goes into Linus's tree, as it looks like a pretty bad thing :) I certainly could, but then you would laugh at me because 2.6.24 isn't affected by the bug. -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Tue, Feb 12, 2008 at 09:27:22AM +0100, Jean Delvare wrote: Hi Yinghai, On Mon, 11 Feb 2008 15:39:39 -0800, Yinghai Lu wrote: On Feb 10, 2008 10:01 AM, Jean Delvare [EMAIL PROTECTED] wrote: 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 +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 = { * * * * * it works. Thanks Great, thanks. Mark, please include this patch in your next patch to Linus for 2.6.25. Can someone send it to [EMAIL PROTECTED] also when it goes into Linus's tree, as it looks like a pretty bad thing :) thanks, greg k-h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Feb 10, 2008 10:01 AM, Jean Delvare <[EMAIL PROTECTED]> wrote: > 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 0x80c4b575: sm_adm1026_init+0x0/0xe() > > > i2c-adapter i2c-1: : Unrecognized stepping 0x45. Defaulting to ADM1026. > > > general protection fault: [1] SMP > > > CPU 0 > > > Modules linked in: > > > Pid: 1, comm: swapper Not tainted 2.6.24-smp-09379-g0cf975e-dirty #34 > > > RIP: 0010:[] [] > > > sysfs_add_file+0x16/0x81 > > > RSP: :81040503dd50 EFLAGS: 00010286 > > > RAX: RBX: fffe002e002d002c RCX: 48d9 > > > RDX: 0002 RSI: fffe002e002d002c RDI: 810202c4fb90 > > > RBP: R08: 810202c4fb90 R09: > > > R10: 0002 R11: 0002 R12: fff4 > > > R13: 810202c4fb90 R14: 000c R15: 810202c4fb90 > > > FS: () GS:80bde000() > > > knlGS: > > > CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b > > > CR2: 7fff94de3470 CR3: 00201000 CR4: 06e0 > > > DR0: DR1: DR2: > > > DR3: DR6: 0ff0 DR7: 0400 > > > Process swapper (pid: 1, threadinfo 81040503c000, task > > > 81020504) > > > Stack: 810202c4fb90 > > > 0001 > > > 810202c4e000 80b87850 810202c4e118 > > > 808e0cc0 802d933c 81040503dd55 810202c17878 > > > Call Trace: > > > [] sysfs_create_group+0xa2/0x106 > > > [] adm1026_detect+0x4b3/0x522 > > > [] adm1026_detect+0x0/0x522 > > > [] i2c_probe_address+0xb9/0xfc > > > [] i2c_probe+0x162/0x175 > > > [] adm1026_detect+0x0/0x522 > > > [] i2c_register_driver+0x9a/0xea > > > [] kernel_init+0x15d/0x2c9 > > > [] child_rip+0xa/0x12 > > > [] kernel_init+0x0/0x2c9 > > > [] 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 [] sysfs_add_file+0x16/0x81 > > > RSP > > > ---[ 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 <[EMAIL PROTECTED]> > --- > 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.0 +0100 > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 > +0100 > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > _attr_temp3_crit_enable.attr, > _attr_temp3_auto_point1_pwm.attr, > _attr_temp3_auto_point2_pwm.attr, > + NULL > }; > > static const struct attribute_group adm1026_group_temp3 = { > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > _dev_attr_in9_max.dev_attr.attr, > _dev_attr_in9_min.dev_attr.attr, > _dev_attr_in9_alarm.dev_attr.attr, > + NULL > }; > > static const struct attribute_group adm1026_group_in8_9 = { > > * * * * * it works. Thanks > > 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 LBSuse:/x/kernel.org # ./i2cdetect 1 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 19 -- -- 1c 1d -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- UU UU -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 41 -- -- -- -- -- -- 48 49 4a -- -- -- -- -- 50: UU UU UU UU UU UU -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- LBSuse:/x/kernel.org # ./i2cdump 1 0x2c b Error: Could not set address to 0x2c: Device or resource busy LBSuse:/x/kernel.org # ./i2cdump
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Feb 10, 2008 10:01 AM, Jean Delvare [EMAIL PROTECTED] wrote: 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 0x80c4b575: sm_adm1026_init+0x0/0xe() i2c-adapter i2c-1: : Unrecognized stepping 0x45. Defaulting to ADM1026. general protection fault: [1] SMP CPU 0 Modules linked in: Pid: 1, comm: swapper Not tainted 2.6.24-smp-09379-g0cf975e-dirty #34 RIP: 0010:[802d79ad] [802d79ad] sysfs_add_file+0x16/0x81 RSP: :81040503dd50 EFLAGS: 00010286 RAX: RBX: fffe002e002d002c RCX: 48d9 RDX: 0002 RSI: fffe002e002d002c RDI: 810202c4fb90 RBP: R08: 810202c4fb90 R09: R10: 0002 R11: 0002 R12: fff4 R13: 810202c4fb90 R14: 000c R15: 810202c4fb90 FS: () GS:80bde000() knlGS: CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 7fff94de3470 CR3: 00201000 CR4: 06e0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process swapper (pid: 1, threadinfo 81040503c000, task 81020504) Stack: 810202c4fb90 0001 810202c4e000 80b87850 810202c4e118 808e0cc0 802d933c 81040503dd55 810202c17878 Call Trace: [802d933c] sysfs_create_group+0xa2/0x106 [8069fbc2] adm1026_detect+0x4b3/0x522 [8069f70f] adm1026_detect+0x0/0x522 [80698bff] i2c_probe_address+0xb9/0xfc [806997db] i2c_probe+0x162/0x175 [8069f70f] adm1026_detect+0x0/0x522 [8069910f] i2c_register_driver+0x9a/0xea [80c276d2] kernel_init+0x15d/0x2c9 [8021fc68] child_rip+0xa/0x12 [80c27575] kernel_init+0x0/0x2c9 [8021fc5e] 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 [802d79ad] sysfs_add_file+0x16/0x81 RSP 81040503dd50 ---[ 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 +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 = { * * * * * it works. Thanks 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 LBSuse:/x/kernel.org # ./i2cdetect 1 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 19 -- -- 1c 1d -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- UU UU -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 41 -- -- -- -- -- -- 48 49 4a -- -- -- -- -- 50: UU UU UU UU UU UU -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- LBSuse:/x/kernel.org # ./i2cdump 1 0x2c b Error: Could not set address to
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Feb 10, 2008 10:01 AM, Jean Delvare <[EMAIL PROTECTED]> wrote: > 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 0x80c4b575: sm_adm1026_init+0x0/0xe() > > > i2c-adapter i2c-1: : Unrecognized stepping 0x45. Defaulting to ADM1026. > > > general protection fault: [1] SMP > > > CPU 0 > > > Modules linked in: > > > Pid: 1, comm: swapper Not tainted 2.6.24-smp-09379-g0cf975e-dirty #34 > > > RIP: 0010:[] [] > > > sysfs_add_file+0x16/0x81 > > > RSP: :81040503dd50 EFLAGS: 00010286 > > > RAX: RBX: fffe002e002d002c RCX: 48d9 > > > RDX: 0002 RSI: fffe002e002d002c RDI: 810202c4fb90 > > > RBP: R08: 810202c4fb90 R09: > > > R10: 0002 R11: 0002 R12: fff4 > > > R13: 810202c4fb90 R14: 000c R15: 810202c4fb90 > > > FS: () GS:80bde000() > > > knlGS: > > > CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b > > > CR2: 7fff94de3470 CR3: 00201000 CR4: 06e0 > > > DR0: DR1: DR2: > > > DR3: DR6: 0ff0 DR7: 0400 > > > Process swapper (pid: 1, threadinfo 81040503c000, task > > > 81020504) > > > Stack: 810202c4fb90 > > > 0001 > > > 810202c4e000 80b87850 810202c4e118 > > > 808e0cc0 802d933c 81040503dd55 810202c17878 > > > Call Trace: > > > [] sysfs_create_group+0xa2/0x106 > > > [] adm1026_detect+0x4b3/0x522 > > > [] adm1026_detect+0x0/0x522 > > > [] i2c_probe_address+0xb9/0xfc > > > [] i2c_probe+0x162/0x175 > > > [] adm1026_detect+0x0/0x522 > > > [] i2c_register_driver+0x9a/0xea > > > [] kernel_init+0x15d/0x2c9 > > > [] child_rip+0xa/0x12 > > > [] kernel_init+0x0/0x2c9 > > > [] 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 [] sysfs_add_file+0x16/0x81 > > > RSP > > > ---[ 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 <[EMAIL PROTECTED]> > --- > 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.0 +0100 > +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 > +0100 > @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu > _attr_temp3_crit_enable.attr, > _attr_temp3_auto_point1_pwm.attr, > _attr_temp3_auto_point2_pwm.attr, > + NULL > }; > > static const struct attribute_group adm1026_group_temp3 = { > @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu > _dev_attr_in9_max.dev_attr.attr, > _dev_attr_in9_min.dev_attr.attr, > _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.) good, I will try it Monday. YH -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)
On Feb 10, 2008 10:01 AM, Jean Delvare [EMAIL PROTECTED] wrote: 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 0x80c4b575: sm_adm1026_init+0x0/0xe() i2c-adapter i2c-1: : Unrecognized stepping 0x45. Defaulting to ADM1026. general protection fault: [1] SMP CPU 0 Modules linked in: Pid: 1, comm: swapper Not tainted 2.6.24-smp-09379-g0cf975e-dirty #34 RIP: 0010:[802d79ad] [802d79ad] sysfs_add_file+0x16/0x81 RSP: :81040503dd50 EFLAGS: 00010286 RAX: RBX: fffe002e002d002c RCX: 48d9 RDX: 0002 RSI: fffe002e002d002c RDI: 810202c4fb90 RBP: R08: 810202c4fb90 R09: R10: 0002 R11: 0002 R12: fff4 R13: 810202c4fb90 R14: 000c R15: 810202c4fb90 FS: () GS:80bde000() knlGS: CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 7fff94de3470 CR3: 00201000 CR4: 06e0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process swapper (pid: 1, threadinfo 81040503c000, task 81020504) Stack: 810202c4fb90 0001 810202c4e000 80b87850 810202c4e118 808e0cc0 802d933c 81040503dd55 810202c17878 Call Trace: [802d933c] sysfs_create_group+0xa2/0x106 [8069fbc2] adm1026_detect+0x4b3/0x522 [8069f70f] adm1026_detect+0x0/0x522 [80698bff] i2c_probe_address+0xb9/0xfc [806997db] i2c_probe+0x162/0x175 [8069f70f] adm1026_detect+0x0/0x522 [8069910f] i2c_register_driver+0x9a/0xea [80c276d2] kernel_init+0x15d/0x2c9 [8021fc68] child_rip+0xa/0x12 [80c27575] kernel_init+0x0/0x2c9 [8021fc5e] 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 [802d79ad] sysfs_add_file+0x16/0x81 RSP 81040503dd50 ---[ 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 [EMAIL PROTECTED] --- 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.0 +0100 +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c2008-02-10 18:51:00.0 +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.) good, I will try it Monday. YH -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/