On 02/09/14 19:48, Alexander Nasonov wrote:
Hi,
I was running current amd64 (last updated few weeks ago) when I got
a random crash shortly after switching to X mode. If my analysis is
correct, it crashed in usb_allocmem_flags inside this loop:
LIST_FOREACH(f, &usb_frag_freelist, next) {
KDASSERTMSG(usb_valid_block_p(f->block, &usb_blk_fraglist),
"%s: usb frag %p: unknown block pointer %p",
__func__, f, f->block);
if (f->block->tag == tag)
break;
}
It couldn't access f->block->tag. I wasn't actively using any of
the usb devices at that time. I wonder if it's a known problem or
should I file a PR? Details of the analysis is below.
Please fill a PR so it doesn't get forgotten about.
At first glance it doesn't look like that usb_frag_freelist isn't
protected correctly. I looks more like random corruption. What was the
value of %edx?
Thanks,
Nick