|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] pv_ops dom0 x86_32 PAE kernel buildlog of missingsymbols
>>> Ian Campbell <Ian.Campbell@xxxxxxxxxx> 11.12.08 13:00 >>>
>ERROR: "alloc_empty_pages_and_pagevec" [drivers/xen/blkback/blkbk.ko]
>undefined!
>ERROR: "blk_put_queue" [drivers/xen/blkback/blkbk.ko] undefined!
>ERROR: "free_empty_pages_and_pagevec" [drivers/xen/blkback/blkbk.ko] undefined!
>ERROR: "blk_get_queue" [drivers/xen/blkback/blkbk.ko] undefined!
>ERROR: "set_phys_to_machine" [drivers/xen/blkback/blkbk.ko] undefined!
>
>The *_empty_pages_and_pagevec and set_phys_to_machine are probably fair
>game for an EXPORT_SYMBOL_GPL. The two blk subsystem ones are
>suspicious, the fact that they aren't already exported suggests there is
>another API we should be using.
I'd be curious if you can find one - in our 2.6.25 merge patch the only way
to address this was to open-code what they do in blkback (short of re-adding
the exports):
--- head-2008-12-08.orig/drivers/xen/blkback/blkback.c 2008-12-08
13:24:54.000000000 +0100
+++ head-2008-12-08/drivers/xen/blkback/blkback.c 2008-12-08
13:24:57.000000000 +0100
@@ -148,7 +148,7 @@ static void unplug_queue(blkif_t *blkif)
return;
if (blkif->plug->unplug_fn)
blkif->plug->unplug_fn(blkif->plug);
- blk_put_queue(blkif->plug);
+ kobject_put(&blkif->plug->kobj);
blkif->plug = NULL;
}
@@ -159,7 +159,8 @@ static void plug_queue(blkif_t *blkif, s
if (q == blkif->plug)
return;
unplug_queue(blkif);
- blk_get_queue(q);
+ WARN_ON(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags));
+ kobject_get(&q->kobj);
blkif->plug = q;
}
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|