mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	IB/hfi1: Handle missing magic values in config file
Driver does not check whether proper configuration file exist in EPROM, and treats empty partition as possible valid configuration, preventing fallback to default firmware. Change EPROM read function to treat missing magic number as read error. Reviewed-by: Jakub Byczkowski <jakub.byczkowski@intel.com> Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
		
							parent
							
								
									f683c80ca6
								
							
						
					
					
						commit
						bc5214ee29
					
				
					 1 changed files with 5 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -250,7 +250,6 @@ static int read_partition_platform_config(struct hfi1_devdata *dd, void **data,
 | 
			
		|||
{
 | 
			
		||||
	void *buffer;
 | 
			
		||||
	void *p;
 | 
			
		||||
	u32 length;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
	buffer = kmalloc(P1_SIZE, GFP_KERNEL);
 | 
			
		||||
| 
						 | 
				
			
			@ -265,13 +264,13 @@ static int read_partition_platform_config(struct hfi1_devdata *dd, void **data,
 | 
			
		|||
 | 
			
		||||
	/* scan for image magic that may trail the actual data */
 | 
			
		||||
	p = strnstr(buffer, IMAGE_TRAIL_MAGIC, P1_SIZE);
 | 
			
		||||
	if (p)
 | 
			
		||||
		length = p - buffer;
 | 
			
		||||
	else
 | 
			
		||||
		length = P1_SIZE;
 | 
			
		||||
	if (!p) {
 | 
			
		||||
		kfree(buffer);
 | 
			
		||||
		return -ENOENT;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	*data = buffer;
 | 
			
		||||
	*size = length;
 | 
			
		||||
	*size = p - buffer;
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue