Changeset 44755


Ignore:
Timestamp:
2015-03-14T17:35:56+01:00 (3 years ago)
Author:
rmilecki
Message:

bcm53xx: support NVRAM prefixes with extra / in devpath

Signed-off-by: Rafał Miłecki <zajec5@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/bcm53xx/files/drivers/misc/bcm47xx-sprom.c

    r44679 r44755  
    647647static char prefix[20]; 
    648648 
    649 static void bcm47xx_sprom_apply_prefix_alias(char *prefix, size_t prefix_len) 
    650 { 
    651         size_t needle_len = strlen(prefix) - 1; 
     649static void bcm47xx_sprom_apply_prefix_alias(char *prefix, size_t prefix_size) 
     650{ 
     651        size_t prefix_len = strlen(prefix); 
     652        size_t short_len = prefix_len - 1; 
    652653        char nvram_var[10]; 
    653654        char buf[20]; 
    654655        int i; 
    655656 
    656         if (needle_len <= 0 || prefix[needle_len] != '/') 
    657                 return; 
     657        if (prefix_len <= 0 || prefix[prefix_len - 1] != '/') { 
     658                pr_warn("Invalid prefix: \"%s\"\n", prefix); 
     659                return; 
     660        } 
    658661 
    659662        for (i = 0; i < 3; i++) { 
     
    662665                if (bcm47xx_nvram_getenv(nvram_var, buf, sizeof(buf)) < 0) 
    663666                        continue; 
    664                 if (strlen(buf) == needle_len && !strncmp(buf, prefix, needle_len)) { 
    665                         snprintf(prefix, prefix_len, "%d:", i); 
     667                if (!strcmp(buf, prefix) || 
     668                    (short_len && strlen(buf) == short_len && !strncmp(buf, prefix, short_len))) { 
     669                        snprintf(prefix, prefix_size, "%d:", i); 
    666670                        return; 
    667671                } 
Note: See TracChangeset for help on using the changeset viewer.