Re: nbd problems under 2.3.48

From: James Manning (jmm@computer.org)
Date: Fri Mar 03 2000 - 16:56:45 EST


[ 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