--- linux-2.6.0-orig/drivers/block/ll_rw_blk.c 2003-12-28 23:09:16.000000000 -0800 +++ linux-2.6.0/drivers/block/ll_rw_blk.c 2003-12-30 16:11:00.690504036 -0800 @@ -2902,7 +2902,7 @@ int blk_register_queue(struct gendisk *d request_queue_t *q = disk->queue; - if (!q) + if (!q || !q->request_fn) return -ENXIO; q->kobj.parent = kobject_get(&disk->kobj); @@ -2929,7 +2929,7 @@ void blk_unregister_queue(struct gendisk { request_queue_t *q = disk->queue; - if (q) { + if (q && q->request_fn) { elv_unregister_queue(q); kobject_unregister(&q->kobj);