Opened 12 years ago

Closed 6 years ago

Last modified 5 years ago

#8878 closed bug (invalid)

KDL on newer Apple trackpad/internal keyboard

Reported by: DHowett Owned by: nobody
Priority: normal Milestone:
Component: System/Kernel Version: R1/Development
Keywords: boot-failure Cc:
Blocked By: Blocking:
Platform: x86

Description

I'm pretty sure that something about the USB devices in newer apple laptops causes the kernel to explode.

Touch the trackpad/internal keyboard just outside the bootloader and it panics normally, it panics so hard that it won't even display the backtrace. I managed to get one though.

Attachments (2)

Photo Aug 12, 2 39 05 PM.jpg (4.0 MB ) - added by jscipione 12 years ago.
KDL of crash
0001-Check-if-name-is-NULL-before-calling-strcmp.patch (1.4 KB ) - added by jscipione 12 years ago.
Check if name is NULL before calling strcmp() on it. This should prevent the KDL here by returning a NULL command instead

Change History (12)

by jscipione, 12 years ago

KDL of crash

comment:1 by jscipione, 12 years ago

This is coming from IRC, I am not the bug reporter so I don't have all the details.

by jscipione, 12 years ago

Check if name is NULL before calling strcmp() on it. This should prevent the KDL here by returning a NULL command instead

comment:2 by jscipione, 12 years ago

patch: 01

comment:3 by luroh, 12 years ago

Blocking: 7665 added

comment:4 by pulkomandy, 8 years ago

This patch doesn't look right, for several reasons.

1) There is no reason for this command to be called with a NULL string. If it happens, it's better to crash so the actual bug can be fixed, instead of hiding the issue. 2) In the attached KDL, nothing points at the passed string being NULL. Parameters are passed on the stack, so you couldn't see them in that picture. But, if the problem was dereferencing a NULL pointer, the message would say "unhandled page fault at 0", and it says some other address. I think you saw the 0 in EAX, but that is probably the index into the strings used by strcmp. 3) If we check the code in the HID keyboard driver (src/add-ons/kernel/drivers/input/usb_hid/KeyboardProtocolHandler.cpp), we can see that the string passed is a constant, and cannot be NULL. But this also means, it cannot be the cause of the page fault if everything is going ok.

So, this issue points at some memory corruption iside the kernel. Maybe the string was overwritten with something, or maybe the list of KDL commands is corrupt.

Is the problem still valid? Can anyone reproduce it in recent versions of Haiku?

comment:5 by pulkomandy, 8 years ago

patch: 10

comment:6 by axeld, 8 years ago

Owner: changed from axeld to nobody
Status: newassigned

comment:7 by waddlesplash, 6 years ago

Keywords: boot-failure added

comment:8 by waddlesplash, 6 years ago

Blocking: 7665 removed

comment:9 by waddlesplash, 6 years ago

Resolution: invalid
Status: assignedclosed

No reply in 2 years.

comment:10 by nielx, 5 years ago

Milestone: R1

Remove milestone for tickets with status = closed and resolution != fixed

Note: See TracTickets for help on using tickets.