megasas: fix megasas_get_sata_addr
There are two bugs here. First, the 16-bit id loses the high 8 bits when shifted left by 24. Second, the address must be combined with an "or" or we just get zero. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									633dccb458
								
							
						
					
					
						commit
						8ef2eb8d2c
					
				| 
						 | 
				
			
			@ -431,7 +431,7 @@ static uint64_t megasas_fw_time(void)
 | 
			
		|||
static uint64_t megasas_get_sata_addr(uint16_t id)
 | 
			
		||||
{
 | 
			
		||||
    uint64_t addr = (0x1221ULL << 48);
 | 
			
		||||
    return addr & (id << 24);
 | 
			
		||||
    return addr | ((uint64_t)id << 24);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue