[ Friday, March 3, 2000 ] James Manning wrote:
> I tried stripping out all other block devices not needed for booting
> and built-in nbd instead of a module, and still got a very similar
> oops (same place, same process, etc). raw and ksymoops out attached.
The oops is being caused by the following check in nbd_clear_que:
if (lo != &nbd_dev[MINOR(req->rq_dev)]) {
Adding a printk to print out various pointer values right before the
change for things involved (all with %p)
printk(KERN_ALERT "NBD: pointers "
"lo/&queue_head/(&queue_head)->next/req/nbd_dev"
" = %p/%p/%p/%p/%p\n",
lo,&lo->queue_head,(&lo->queue_head)->next,req,nbd_dev);
and then I got the following:
NBD: pointers lo/&queue_head/(&queue_head)->next/req/nbd_dev =
c02edb00/c02edb18/00000000/00000000/c02edb00
since ->next is null and &queue_head isn't (queue_head looks totally
zeroed, actually, which explains ->prev == req also being NULL),
list_empty returns false...
is this a list_empty() bug, then? or could the above pointers actually
be part of a non-empty list? should list_empty be checking head->prev
vs. head->next?
James
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Tue Mar 07 2000 - 21:00:15 EST