X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=disk%2Fpart.c;h=8ca5d4bdfc7a7203dede5d7b6bc6f8a226ca0b5a;hb=c9b2feafaaf0a7998347589f9a29f7169873af6e;hp=1806fe6e18f0a1a91d837e4c8d16bdbb6ce1355b;hpb=0cc89de8ef60214083739904b011f6c255922723;p=u-boot diff --git a/disk/part.c b/disk/part.c index 1806fe6e18..8ca5d4bdfc 100644 --- a/disk/part.c +++ b/disk/part.c @@ -78,13 +78,23 @@ 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; + + if (!ifname) + return NULL; + name = drvr->name; +#ifdef CONFIG_NEEDS_MANUAL_RELOC + name += gd->reloc_off; +#endif while (drvr->name) { + name = drvr->name; reloc_get_dev = drvr->get_dev; -#ifndef CONFIG_RELOC_FIXUP_WORKS +#ifdef CONFIG_NEEDS_MANUAL_RELOC + 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++; }