disk/part.c: fix relocation fixup
Portions of this work were supported by funding from the CE Linux Forum. Signed-off-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
4444b221f2
commit
23090dacd2
11
disk/part.c
11
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++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user