linux-user: fix multi-threaded /proc/self/maps
When reading our faked /proc/self/maps from a secondary thread, we get an invalid stack entry. This is because ts->stack_base is not initialized in non-primary threads. However, ts->info is, and the stack layout information we're looking for is there too. So let's use that one instead! Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
		
							parent
							
								
									229d3376a3
								
							
						
					
					
						commit
						1bdd7c7ea8
					
				| 
						 | 
				
			
			@ -4962,8 +4962,8 @@ static int open_self_maps(void *cpu_env, int fd)
 | 
			
		|||
#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
 | 
			
		||||
    dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0          [stack]\n",
 | 
			
		||||
                (unsigned long long)ts->info->stack_limit,
 | 
			
		||||
                (unsigned long long)(ts->stack_base + (TARGET_PAGE_SIZE - 1))
 | 
			
		||||
                                     & TARGET_PAGE_MASK,
 | 
			
		||||
                (unsigned long long)(ts->info->start_stack +
 | 
			
		||||
                                     (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
 | 
			
		||||
                (unsigned long long)0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue