[U-Boot] [PATCH 09/26] disk/part.c: fix relocation fixup

Heiko Schocher
2010-08-11T18:15:58Z

Signed-off-by: Heiko Schocher <hs@denx.de>
---
- changes since v1:
- changed commit message

disk/part.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/disk/part.c b/disk/part.c
index b6bae17..7d2da05 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++;
}
--
1.6.2.5

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany