#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)
Changed 11 years ago by
Attachment: | i8042_crash.png added |
---|
comment:1 Changed 11 years ago by
Hi, could you also load the compressed i8042 binary which crashed?
comment:2 Changed 11 years ago by
Ideally build with line debugging information and include the disassembly.
comment:3 Changed 11 years ago by
Yes, of course. By the way, why is there no email when an attachment is added?
comment:4 Changed 11 years ago by
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 Changed 11 years ago by
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 Changed 11 years ago by
Milestone: | → 0.5.1 |
---|
screenshot of the crash info in kconsole