bcm53xx: support NVRAM prefixes with extra / in devpath
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44755
This commit is contained in:
parent
ea5c986aa6
commit
0a9b7ea932
|
@ -646,23 +646,27 @@ static struct platform_device *sprom_pdev = NULL;
|
|||
|
||||
static char prefix[20];
|
||||
|
||||
static void bcm47xx_sprom_apply_prefix_alias(char *prefix, size_t prefix_len)
|
||||
static void bcm47xx_sprom_apply_prefix_alias(char *prefix, size_t prefix_size)
|
||||
{
|
||||
size_t needle_len = strlen(prefix) - 1;
|
||||
size_t prefix_len = strlen(prefix);
|
||||
size_t short_len = prefix_len - 1;
|
||||
char nvram_var[10];
|
||||
char buf[20];
|
||||
int i;
|
||||
|
||||
if (needle_len <= 0 || prefix[needle_len] != '/')
|
||||
if (prefix_len <= 0 || prefix[prefix_len - 1] != '/') {
|
||||
pr_warn("Invalid prefix: \"%s\"\n", prefix);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
if (snprintf(nvram_var, sizeof(nvram_var), "devpath%d", i) <= 0)
|
||||
continue;
|
||||
if (bcm47xx_nvram_getenv(nvram_var, buf, sizeof(buf)) < 0)
|
||||
continue;
|
||||
if (strlen(buf) == needle_len && !strncmp(buf, prefix, needle_len)) {
|
||||
snprintf(prefix, prefix_len, "%d:", i);
|
||||
if (!strcmp(buf, prefix) ||
|
||||
(short_len && strlen(buf) == short_len && !strncmp(buf, prefix, short_len))) {
|
||||
snprintf(prefix, prefix_size, "%d:", i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue