Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86: Clear irqstack thread_info
x86: Make relocatable kernel work with new binutils

+11 -7
+2 -5
arch/x86/kernel/irq_32.c
··· 129 129 irqctx = page_address(alloc_pages_node(cpu_to_node(cpu), 130 130 THREAD_FLAGS, 131 131 THREAD_ORDER)); 132 - irqctx->tinfo.task = NULL; 133 - irqctx->tinfo.exec_domain = NULL; 132 + memset(&irqctx->tinfo, 0, sizeof(struct thread_info)); 134 133 irqctx->tinfo.cpu = cpu; 135 134 irqctx->tinfo.preempt_count = HARDIRQ_OFFSET; 136 135 irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); ··· 139 140 irqctx = page_address(alloc_pages_node(cpu_to_node(cpu), 140 141 THREAD_FLAGS, 141 142 THREAD_ORDER)); 142 - irqctx->tinfo.task = NULL; 143 - irqctx->tinfo.exec_domain = NULL; 143 + memset(&irqctx->tinfo, 0, sizeof(struct thread_info)); 144 144 irqctx->tinfo.cpu = cpu; 145 - irqctx->tinfo.preempt_count = 0; 146 145 irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); 147 146 148 147 per_cpu(softirq_ctx, cpu) = irqctx;
+9 -2
arch/x86/kernel/vmlinux.lds.S
··· 34 34 #ifdef CONFIG_X86_32 35 35 OUTPUT_ARCH(i386) 36 36 ENTRY(phys_startup_32) 37 - jiffies = jiffies_64; 38 37 #else 39 38 OUTPUT_ARCH(i386:x86-64) 40 39 ENTRY(phys_startup_64) 41 - jiffies_64 = jiffies; 42 40 #endif 43 41 44 42 #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) ··· 140 142 CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) 141 143 142 144 DATA_DATA 145 + /* 146 + * Workaround a binutils (2.20.51.0.12 to 2.21.51.0.3) bug. 147 + * This makes jiffies relocatable in such binutils 148 + */ 149 + #ifdef CONFIG_X86_32 150 + jiffies = jiffies_64; 151 + #else 152 + jiffies_64 = jiffies; 153 + #endif 143 154 CONSTRUCTORS 144 155 145 156 /* rarely changed data like cpu maps */