ioport: remove LITTLE_ENDIAN mark for portio
Setting it to LE forces a byte swap when host != guest endian but this makes no sense at all. Herve made the suggestion upon observing that word writes/reads were broken into byte writes/reads in such a way as to assume devices are interpret registers as LE. However, even if this were a problem, marking the region as LE is not useful because what's essentially happening here is that LE is open coded. So by marking it LE in MemoryRegionOps, we're doing a superflous swap. Now, the portio code is suspicious to begin with. The dispatch layer really has no purpose in splitting I/O requests in the first place... Cc: Hervé Poussineau <hpoussin@reactos.org> Cc: Alex Graf <agraf@suse.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									25ca6a1f5a
								
							
						
					
					
						commit
						c3cb8e7780
					
				
							
								
								
									
										1
									
								
								ioport.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								ioport.c
									
									
									
									
									
								
							@ -183,7 +183,6 @@ static void portio_write(void *opaque, hwaddr addr, uint64_t data,
 | 
				
			|||||||
static const MemoryRegionOps portio_ops = {
 | 
					static const MemoryRegionOps portio_ops = {
 | 
				
			||||||
    .read = portio_read,
 | 
					    .read = portio_read,
 | 
				
			||||||
    .write = portio_write,
 | 
					    .write = portio_write,
 | 
				
			||||||
    .endianness = DEVICE_LITTLE_ENDIAN,
 | 
					 | 
				
			||||||
    .valid.unaligned = true,
 | 
					    .valid.unaligned = true,
 | 
				
			||||||
    .impl.unaligned = true,
 | 
					    .impl.unaligned = true,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user