mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			744 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			744 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/drivers/mtd/mtdpart.c
 | |
| +++ b/drivers/mtd/mtdpart.c
 | |
| @@ -796,8 +796,11 @@ static void split_uimage(struct mtd_info
 | |
|  {
 | |
|  	struct {
 | |
|  		__be32 magic;
 | |
| -		__be32 pad[2];
 | |
| +		__be32 pad0[2];
 | |
|  		__be32 size;
 | |
| +		__be32 pad1[4];
 | |
| +		__be32 name[7];
 | |
| +		__be32 kern_size;
 | |
|  	} hdr;
 | |
|  	size_t len;
 | |
|  
 | |
| @@ -807,7 +810,10 @@ static void split_uimage(struct mtd_info
 | |
|  	if (len != sizeof(hdr) || hdr.magic != cpu_to_be32(UBOOT_MAGIC))
 | |
|  		return;
 | |
|  
 | |
| -	len = be32_to_cpu(hdr.size) + 0x40;
 | |
| +	if (hdr.kern_size != 0 && hdr.name[0] == 0)
 | |
| +		len = be32_to_cpu(hdr.kern_size);
 | |
| +	else
 | |
| +		len = be32_to_cpu(hdr.size) + 0x40;
 | |
|  
 | |
|  	if (config_enabled(CONFIG_MTD_SPLIT_UIMAGE_FW))
 | |
|  		pr_err("Dedicated partitioner didn't split firmware partition, please fill a bug report!\n");
 |