diff options
Diffstat (limited to 'disk/part.c')
| -rw-r--r-- | disk/part.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/disk/part.c b/disk/part.c index 1806fe6e1..2b63db6c7 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++;  	} |