Battery-related regression between 2.6.17-git3 and 2.6.17-git6
Kay Sievers
kay.sievers at vrfy.org
Tue Jul 4 15:14:22 PDT 2006
On Tue, 2006-07-04 at 14:48 -0700, Greg KH wrote:
> On Tue, Jul 04, 2006 at 01:55:43PM +0200, Rafael J. Wysocki wrote:
> > On Monday 03 July 2006 22:45, Greg KH wrote:
> > > On Mon, Jul 03, 2006 at 10:26:03PM +0200, Rafael J. Wysocki wrote:
> > > > On Monday 03 July 2006 21:44, Greg KH wrote:
> > > > > On Mon, Jul 03, 2006 at 09:39:22PM +0200, Rafael J. Wysocki wrote:
> > > > > > On Monday 03 July 2006 20:00, Greg KH wrote:
> > > > > > > On Mon, Jul 03, 2006 at 01:16:45PM +0200, Rafael J. Wysocki wrote:
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > On Sunday 02 July 2006 11:15, Rafael J. Wysocki wrote:
> > > > > > > > > On Sunday 02 July 2006 00:21, Rafael J. Wysocki wrote:
> > > > > > > > > > With the recent -git on my box (Asus L5D, x86_64 SUSE 10) the powersave
> > > > > > > > > > demon is apparently unable to get the battery status, although the data in
> > > > > > > > > > /proc/acpi/battery/BAT0 seem to be correct. As a result, battery status
> > > > > > > > > > notification via kpowersave doesn't work and it's hard to notice when the
> > > > > > > > > > battery is low/critical.
> > > > > > > > > >
> > > > > > > > > > So far I have verified that this feature works fine with 2.6.17-git3 and
> > > > > > > > > > doesn't work with 2.6.17-git6 (-git5 doesn't compile here).
> > > > > > > > > >
> > > > > > > > > > I'll try to get more information tomorrow (unless someone in the know has
> > > > > > > > > > an idea of what's up ;-) ).
> > > > > > > > >
> > > > > > > > > I've verified that the problem first appeared in 2.6.17-git4.
> > > > > > > >
> > > > > > > > Apparently this happens because powersaved takes the battery status
> > > > > > > > information from hald and the following kernel changes make hald crash on
> > > > > > > > my system:
> > > > > > > >
> > > > > > > > http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=43104f1da88f5335e9a45695df92a735ad550dda
> > > > > > > > http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd00949647ddcea47ce4ea8bb2cfcfc98ebf9f2a
> > > > > > > > http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c182274ffe1277f4e7c564719a696a37cacf74ea
> > > > > > > > http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9bde7497e0b54178c317fac47a18be7f948dd471
> > > > > > > > http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36679ea59846d8f34a48f71ca1a37671ca0ad3c5
> > > > > > > >
> > > > > > > > (ie. after reverting them hald works again).
> > > > > > >
> > > > > > > Ick, that should not cause any problems, as sysfs should look identical
> > > > > > > to how it was before those patches. Except that the /sys/class/usb/
> > > > > > > stuff is now symlinks instead of real directories, but HAL has had to
> > > > > > > handle that for a long time now (and it's even documented in
> > > > > > > Documentation/ABI/testing/sysfs-class)
> > > > > >
> > > > > > Well, apparently one of them happens to trigger a buffer overflow in "my"
> > > > > > version of hal. ;-)
> > > > > >
> > > > > > > Can you tell me exactly which of the above patches breaks HAL?
> > > > > >
> > > > > > That would be quite a bit of testing and now I'm sure it's a hal issue.
> > > > >
> > > > > git bisect would help out a lot. Or just ask the HAL developers, they
> > > > > might know.
> > > >
> > > > Anyway I'd have to compile and test at least a couple of kernels.
> > > > [For the record: I'm quite sure that 36679ea59846d8f34a48f71ca1a37671ca0ad3c5
> > > > and 9bde7497e0b54178c317fac47a18be7f948dd471 together break hal on
> > > > my system; this seems to be related to endpoints' paths in sysfs.]
> > >
> > > I don't understand why that would break HAL, we are just adding new
> > > devices to the sysfs device tree, which the kernel is free to do at any
> > > time. HAL should not care about that.
> > >
> > > Oh, and 36679ea59846d8f34a48f71ca1a37671ca0ad3c5 is just an internal api
> > > change, it does not affect userspace in any way. So I don't see how
> > > that would have anything to do with HAL at all.
> >
> > Could you please have a look at the end of the attached output of
> > 'strace -f /usr/sbin/hald --daemon=yes --retain-privileges --verbose=yes'
> > (produced on vanilla 2.6.17-git4)?
> >
> > I'm not sure what exactly happens there, but I think hal crashes due to
> > a buffer overflow.
>
> Yes, that looks like what is happening. Perhaps one of the HAL
> developers can point you at a patch that you can apply to your version
> of HAL to get it working.
>
> Either way, this is not a kernel bug, as it could have happened with any
> very long depth device tree, you were just lucky it didn't happen
> sooner.
Hmm,
./hald/util.h:#define HAL_PATH_MAX 256
looks suspicious. :)
Kay
More information about the hal
mailing list