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