#486 closed defect (fixed)
i8042 crashes for unknown reason
Reported by: | Jiří Zárevúcky | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 0.6.0 |
Component: | helenos/unspecified | Version: | mainline |
Keywords: | Cc: | ||
Blocker for: | Depends on: | ||
See also: |
Description
I've stumbled upon this when trying to figure out why the GUI freezes for me, though I have no idea if it's related or what caused it. Screenshot attached.
Attachments (2)
Change History (10)
by , 12 years ago
Attachment: | i8042_crash.png added |
---|
comment:2 by , 12 years ago
Ideally build with line debugging information and include the disassembly.
comment:3 by , 12 years ago
Yes, of course. By the way, why is there no email when an attachment is added?
comment:4 by , 12 years ago
Applying the disassembly to the stacktrace printed at i8042 crash, the driver crashed here:
tls_alloc_variant_2()+0x15: tcb->self = tcb; f0a3: 89 00 mov %eax,(%eax)
while it was doing:
tls_alloc_variant_2()+0x15 __make_tls()+0x1a fibril_setup()+0x5 process_notification()+0x43 fibril_main()+0x19
comment:5 by , 12 years ago
Can it be that memalign() simply fails to allocate TLS data for the notification fibril?
size = ALIGN_UP(size, &_tls_alignment); *data = memalign((uintptr_t) &_tls_alignment, sizeof(tcb_t) + size); tcb = (tcb_t *) (*data + size); tcb->self = tcb;
The only problem is that the reported fault address (76) does not really tie in into this scenario by 12 bytes if the aligned size is 64 and memalign() did return NULL.
comment:8 by , 12 years ago
Milestone: | → 0.5.1 |
---|
screenshot of the crash info in kconsole