diff --git a/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c b/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c index eabb47e029..d979365d66 100644 --- a/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c +++ b/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c @@ -22,6 +22,7 @@ */ #include +#include #include #include @@ -91,11 +92,15 @@ static int wrt160nl_parse_partitions(struct mtd_info *master, struct uimage_header *uheader; size_t retlen; unsigned int kernel_len; - unsigned int uboot_len = max(master->erasesize, WRT160NL_UBOOT_LEN); - unsigned int nvram_len = max(master->erasesize, WRT160NL_NVRAM_LEN); - unsigned int art_len = max(master->erasesize, WRT160NL_ART_LEN); + unsigned int uboot_len; + unsigned int nvram_len; + unsigned int art_len; int ret; + uboot_len = max_t(unsigned int, master->erasesize, WRT160NL_UBOOT_LEN); + nvram_len = max_t(unsigned int, master->erasesize, WRT160NL_NVRAM_LEN); + art_len = max_t(unsigned int, master->erasesize, WRT160NL_ART_LEN); + header = vmalloc(sizeof(*header)); if (!header) { return -ENOMEM;