From: Heiko Schocher Date: Fri, 17 Sep 2010 11:10:36 +0000 (+0200) Subject: disk/part.c: fix relocation fixup X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=23090dacd2806b71fe536a5f618f37afb23d5407;p=project%2Fbcm63xx%2Fu-boot.git disk/part.c: fix relocation fixup Portions of this work were supported by funding from the CE Linux Forum. Signed-off-by: Heiko Schocher --- 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++; }