From 23090dacd2806b71fe536a5f618f37afb23d5407 Mon Sep 17 00:00:00 2001 From: Heiko Schocher Date: Fri, 17 Sep 2010 13:10:36 +0200 Subject: disk/part.c: fix relocation fixup Portions of this work were supported by funding from the CE Linux Forum. Signed-off-by: Heiko Schocher --- disk/part.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'disk') diff --git a/disk/part.c b/disk/part.c index 1806fe6e18..2b63db6c75 100644 --- a/disk/part.c +++ b/disk/part.c @@ -78,13 +78,20 @@ block_dev_desc_t *get_dev(char* ifname, int dev) { const struct block_drvr *drvr = block_drvr; block_dev_desc_t* (*reloc_get_dev)(int dev); + char *name; - while (drvr->name) { + name = drvr->name; +#ifndef CONFIG_RELOC_FIXUP_WORKS + name += gd->reloc_off; +#endif + while (name) { + name = drvr->name; reloc_get_dev = drvr->get_dev; #ifndef CONFIG_RELOC_FIXUP_WORKS + name += gd->reloc_off; reloc_get_dev += gd->reloc_off; #endif - if (strncmp(ifname, drvr->name, strlen(drvr->name)) == 0) + if (strncmp(ifname, name, strlen(name)) == 0) return reloc_get_dev(dev); drvr++; } -- cgit v1.2.3