Revert "generic, x86: fix __per_cpu_load relocation"
This reverts commit 5a611268b6.
It is causing occasional boot crashes, caused by certain
linker versions (GNU ld version 2.18.50.0.6-2 20080403) messing up:
 82dcc000 D __per_cpu_load
 c16e6000 A __per_cpu_load_abs
The __per_cpu_load value is out of whack. Hpa noticed the following
detail:
  * (gdb) p/x -(0xc16e6000-0x82dcc000)
  * $2 = 0xc16e6000
  * I.e. one is the other << 1
The two symbols should be equal.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
	
	
This commit is contained in:
		
					parent
					
						
							
								4369f1fb7c
							
						
					
				
			
			
				commit
				
					
						dba3d36b2f
					
				
			
		
					 1 changed files with 3 additions and 4 deletions
				
			
		| 
						 | 
					@ -451,18 +451,17 @@
 | 
				
			||||||
 * end offset.
 | 
					 * end offset.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#define PERCPU_VADDR(vaddr, phdr)					\
 | 
					#define PERCPU_VADDR(vaddr, phdr)					\
 | 
				
			||||||
	VMLINUX_SYMBOL(__per_cpu_load_abs) = .;				\
 | 
						VMLINUX_SYMBOL(__per_cpu_load) = .;				\
 | 
				
			||||||
	.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load_abs)	\
 | 
						.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load)		\
 | 
				
			||||||
				- LOAD_OFFSET) {			\
 | 
									- LOAD_OFFSET) {			\
 | 
				
			||||||
		VMLINUX_SYMBOL(__per_cpu_start) = .;			\
 | 
							VMLINUX_SYMBOL(__per_cpu_start) = .;			\
 | 
				
			||||||
		VMLINUX_SYMBOL(__per_cpu_load) = LOADADDR(.data.percpu) + LOAD_OFFSET;\
 | 
					 | 
				
			||||||
		*(.data.percpu.first)					\
 | 
							*(.data.percpu.first)					\
 | 
				
			||||||
		*(.data.percpu.page_aligned)				\
 | 
							*(.data.percpu.page_aligned)				\
 | 
				
			||||||
		*(.data.percpu)						\
 | 
							*(.data.percpu)						\
 | 
				
			||||||
		*(.data.percpu.shared_aligned)				\
 | 
							*(.data.percpu.shared_aligned)				\
 | 
				
			||||||
		VMLINUX_SYMBOL(__per_cpu_end) = .;			\
 | 
							VMLINUX_SYMBOL(__per_cpu_end) = .;			\
 | 
				
			||||||
	} phdr								\
 | 
						} phdr								\
 | 
				
			||||||
	. = VMLINUX_SYMBOL(__per_cpu_load_abs) + SIZEOF(.data.percpu);
 | 
						. = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * PERCPU - define output section for percpu area, simple version
 | 
					 * PERCPU - define output section for percpu area, simple version
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue