Yeah, we can use snprintf ;)

Signed-off-by: Álvaro Fernández Rojas <[email protected]>

Index: target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch
===================================================================
--- target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch (revisión: 0)
+++ target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch (revisión: 0)
@@ -0,0 +1,26 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -2882,6 +2882,8 @@ void __init board_prom_init(void)
+       if (!memcmp(cfe, "cfe-v", 5))
+               snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
+                        cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
++      else if (!memcmp(cfe, "cfe-", 4))
++              snprintf(cfe_version, 16, "%s", (char *) &cfe[4]);
+       else
+               strcpy(cfe_version, "unknown");
+       printk(KERN_INFO PFX "CFE version: %s\n", cfe_version);
+--- a/drivers/mtd/bcm63xxpart.c
++++ b/drivers/mtd/bcm63xxpart.c
+@@ -55,10 +55,10 @@ static int bcm63xx_detect_cfe(struct mtd
+       if (ret)
+               return ret;
+ 
+-      if (strncmp("cfe-v", buf, 5) == 0)
++      if (strncmp("cfe-", buf, 4) == 0)
+               return 0;
+ 
+-      /* very old CFE's do not have the cfe-v string, so check for magic */
++      /* very old CFE's do not have the cfe- string, so check for magic */
+       ret = mtd_read(master, BCM63XX_CFE_MAGIC_OFFSET, 8, &retlen,
+                      (void *)buf);
+       buf[retlen] = 0;

El 29/06/2012 14:59, Florian Fainelli escribió:
> Hello,
> 
> On Wednesday 27 June 2012 10:54:46 Álvaro Fernández Rojas wrote:
>> Correctly detect CFE bootloaders starting with "cfe-" instead of "cfe-v".
>>
>> Signed-off-by: Álvaro Fernández Rojas <[email protected]>
>>
>> Index: target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch
>> ===================================================================
>> --- target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch      
>> (revisión: 0)
>> +++ target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch      
>> (revisión: 
> 0)
>> @@ -0,0 +1,30 @@
>> +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
>> ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
>> +@@ -2882,6 +2882,12 @@ void __init board_prom_init(void)
>> +    if (!memcmp(cfe, "cfe-v", 5))
>> +            snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
>> +                     cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
>> ++   else if (!memcmp(cfe, "cfe-", 4)) {
>> ++           for(i = 0; i < 0x10; i++) {
>> ++                   cfe_version[i] = cfe[4 + i];
>> ++           }
>> ++           cfe_version[i] = 0;
>> ++   }
> 
> Cannot we use the following:
> 
> snprintf(cfe_version, 16), "%s", (char *)&cfe[4]);
> 
> or maybe there was a reason for this loop? Btw, I'd prefer using 16 instead 
> of 
> 0x10 ;)
> 
>> +    else
>> +            strcpy(cfe_version, "unknown");
>> +    printk(KERN_INFO PFX "CFE version: %s\n", cfe_version);
>> +--- a/drivers/mtd/bcm63xxpart.c
>> ++++ b/drivers/mtd/bcm63xxpart.c
>> +@@ -55,10 +55,10 @@ static int bcm63xx_detect_cfe(struct mtd
>> +    if (ret)
>> +            return ret;
>> + 
>> +-   if (strncmp("cfe-v", buf, 5) == 0)
>> ++   if (strncmp("cfe-", buf, 4) == 0)
>> +            return 0;
>> + 
>> +-   /* very old CFE's do not have the cfe-v string, so check for magic */
>> ++   /* very old CFE's do not have the cfe- string, so check for magic */
>> +    ret = mtd_read(master, BCM63XX_CFE_MAGIC_OFFSET, 8, &retlen,
>> +                   (void *)buf);
>> +    buf[retlen] = 0;
>> _______________________________________________
>> openwrt-devel mailing list
>> [email protected]
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to