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-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
"Half of the fixes are for various build time warnings triggered by
randconfig builds. Most (but not all...) were harmless.

There's also:

- ACPI boundary condition fixes

- UV platform fixes

- defconfig updates

- an AMD K6 CPU init fix

- a %pOF printk format related preparatory change

- .. and a warning fix related to the tlb/PCID changes"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/devicetree: Convert to using %pOF instead of ->full_name
x86/platform/uv/BAU: Disable BAU on single hub configurations
x86/platform/intel-mid: Fix a format string overflow warning
x86/platform: Add PCI dependency for PUNIT_ATOM_DEBUG
x86/build: Silence the build with "make -s"
x86/io: Add "memory" clobber to insb/insw/insl/outsb/outsw/outsl
x86/fpu/math-emu: Avoid bogus -Wint-in-bool-context warning
x86/fpu/math-emu: Fix possible uninitialized variable use
perf/x86: Shut up false-positive -Wmaybe-uninitialized warning
x86/defconfig: Remove stale, old Kconfig options
x86/ioapic: Pass the correct data to unmask_ioapic_irq()
x86/acpi: Prevent out of bound access caused by broken ACPI tables
x86/mm, KVM: Fix warning when !CONFIG_PREEMPT_COUNT
x86/platform/uv/BAU: Fix congested_response_us not taking effect
x86/cpu: Use indirect call to measure performance in init_amd_k6()

+55 -38
+1
arch/x86/Kconfig.debug
··· 348 348 349 349 config PUNIT_ATOM_DEBUG 350 350 tristate "ATOM Punit debug driver" 351 + depends on PCI 351 352 select DEBUG_FS 352 353 select IOSF_MBI 353 354 ---help---
+3 -2
arch/x86/boot/Makefile
··· 73 73 $(obj)/bzImage: asflags-y := $(SVGA_MODE) 74 74 75 75 quiet_cmd_image = BUILD $@ 76 + silent_redirect_image = >/dev/null 76 77 cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin \ 77 - $(obj)/zoffset.h $@ 78 + $(obj)/zoffset.h $@ $($(quiet)redirect_image) 78 79 79 80 $(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE 80 81 $(call if_changed,image) 81 - @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' 82 + @$(kecho) 'Kernel: $@ is ready' ' (#'`cat .version`')' 82 83 83 84 OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note -R .comment -S 84 85 $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE
-3
arch/x86/configs/i386_defconfig
··· 1 1 # CONFIG_64BIT is not set 2 - CONFIG_EXPERIMENTAL=y 3 2 # CONFIG_LOCALVERSION_AUTO is not set 4 3 CONFIG_SYSVIPC=y 5 4 CONFIG_POSIX_MQUEUE=y ··· 124 125 CONFIG_IP_NF_IPTABLES=y 125 126 CONFIG_IP_NF_FILTER=y 126 127 CONFIG_IP_NF_TARGET_REJECT=y 127 - CONFIG_IP_NF_TARGET_ULOG=y 128 128 CONFIG_NF_NAT=y 129 129 CONFIG_IP_NF_TARGET_MASQUERADE=y 130 130 CONFIG_IP_NF_MANGLE=y ··· 253 255 CONFIG_USB_UHCI_HCD=y 254 256 CONFIG_USB_PRINTER=y 255 257 CONFIG_USB_STORAGE=y 256 - CONFIG_USB_LIBUSUAL=y 257 258 CONFIG_EDAC=y 258 259 CONFIG_RTC_CLASS=y 259 260 # CONFIG_RTC_HCTOSYS is not set
-3
arch/x86/configs/x86_64_defconfig
··· 1 - CONFIG_EXPERIMENTAL=y 2 1 # CONFIG_LOCALVERSION_AUTO is not set 3 2 CONFIG_SYSVIPC=y 4 3 CONFIG_POSIX_MQUEUE=y ··· 123 124 CONFIG_IP_NF_IPTABLES=y 124 125 CONFIG_IP_NF_FILTER=y 125 126 CONFIG_IP_NF_TARGET_REJECT=y 126 - CONFIG_IP_NF_TARGET_ULOG=y 127 127 CONFIG_NF_NAT=y 128 128 CONFIG_IP_NF_TARGET_MASQUERADE=y 129 129 CONFIG_IP_NF_MANGLE=y ··· 249 251 CONFIG_USB_UHCI_HCD=y 250 252 CONFIG_USB_PRINTER=y 251 253 CONFIG_USB_STORAGE=y 252 - CONFIG_USB_LIBUSUAL=y 253 254 CONFIG_EDAC=y 254 255 CONFIG_RTC_CLASS=y 255 256 # CONFIG_RTC_HCTOSYS is not set
+2 -2
arch/x86/events/core.c
··· 191 191 192 192 static bool check_hw_exists(void) 193 193 { 194 - u64 val, val_fail, val_new= ~0; 195 - int i, reg, reg_fail, ret = 0; 194 + u64 val, val_fail = -1, val_new= ~0; 195 + int i, reg, reg_fail = -1, ret = 0; 196 196 int bios_fail = 0; 197 197 int reg_safe = -1; 198 198
+2 -2
arch/x86/include/asm/io.h
··· 328 328 static inline void outs##bwl(int port, const void *addr, unsigned long count) \ 329 329 { \ 330 330 asm volatile("rep; outs" #bwl \ 331 - : "+S"(addr), "+c"(count) : "d"(port)); \ 331 + : "+S"(addr), "+c"(count) : "d"(port) : "memory"); \ 332 332 } \ 333 333 \ 334 334 static inline void ins##bwl(int port, void *addr, unsigned long count) \ 335 335 { \ 336 336 asm volatile("rep; ins" #bwl \ 337 - : "+D"(addr), "+c"(count) : "d"(port)); \ 337 + : "+D"(addr), "+c"(count) : "d"(port) : "memory"); \ 338 338 } 339 339 340 340 BUILDIO(b, b, char)
+1 -1
arch/x86/include/asm/mmu_context.h
··· 293 293 unsigned long cr3 = __pa(this_cpu_read(cpu_tlbstate.loaded_mm)->pgd); 294 294 295 295 /* For now, be very restrictive about when this can be called. */ 296 - VM_WARN_ON(in_nmi() || !in_atomic()); 296 + VM_WARN_ON(in_nmi() || preemptible()); 297 297 298 298 VM_BUG_ON(cr3 != __read_cr3()); 299 299 return cr3;
+8
arch/x86/kernel/acpi/boot.c
··· 347 347 struct mpc_intsrc mp_irq; 348 348 349 349 /* 350 + * Check bus_irq boundary. 351 + */ 352 + if (bus_irq >= NR_IRQS_LEGACY) { 353 + pr_warn("Invalid bus_irq %u for legacy override\n", bus_irq); 354 + return; 355 + } 356 + 357 + /* 350 358 * Convert 'gsi' to 'ioapic.pin'. 351 359 */ 352 360 ioapic = mp_find_ioapic(gsi);
+1 -1
arch/x86/kernel/apic/io_apic.c
··· 2093 2093 int idx; 2094 2094 idx = find_irq_entry(apic1, pin1, mp_INT); 2095 2095 if (idx != -1 && irq_trigger(idx)) 2096 - unmask_ioapic_irq(irq_get_chip_data(0)); 2096 + unmask_ioapic_irq(irq_get_irq_data(0)); 2097 2097 } 2098 2098 irq_domain_deactivate_irq(irq_data); 2099 2099 irq_domain_activate_irq(irq_data);
+1
arch/x86/kernel/cpu/amd.c
··· 134 134 135 135 n = K6_BUG_LOOP; 136 136 f_vide = vide; 137 + OPTIMIZER_HIDE_VAR(f_vide); 137 138 d = rdtsc(); 138 139 while (n--) 139 140 f_vide();
+1 -2
arch/x86/kernel/devicetree.c
··· 235 235 236 236 ret = of_address_to_resource(dn, 0, &r); 237 237 if (ret) { 238 - printk(KERN_ERR "Can't obtain address from node %s.\n", 239 - dn->full_name); 238 + printk(KERN_ERR "Can't obtain address from device node %pOF.\n", dn); 240 239 return; 241 240 } 242 241 mp_register_ioapic(++ioapic_id, r.start, gsi_top, &cfg);
+2 -2
arch/x86/math-emu/Makefile
··· 5 5 #DEBUG = -DDEBUGGING 6 6 DEBUG = 7 7 PARANOID = -DPARANOID 8 - EXTRA_CFLAGS := $(PARANOID) $(DEBUG) -fno-builtin $(MATH_EMULATION) 9 - EXTRA_AFLAGS := $(PARANOID) 8 + ccflags-y += $(PARANOID) $(DEBUG) -fno-builtin $(MATH_EMULATION) 9 + asflags-y += $(PARANOID) 10 10 11 11 # From 'C' language sources: 12 12 C_OBJS =fpu_entry.o errors.o \
+1 -1
arch/x86/math-emu/fpu_emu.h
··· 157 157 158 158 #define signbyte(a) (((u_char *)(a))[9]) 159 159 #define getsign(a) (signbyte(a) & 0x80) 160 - #define setsign(a,b) { if (b) signbyte(a) |= 0x80; else signbyte(a) &= 0x7f; } 160 + #define setsign(a,b) { if ((b) != 0) signbyte(a) |= 0x80; else signbyte(a) &= 0x7f; } 161 161 #define copysign(a,b) { if (getsign(a)) signbyte(b) |= 0x80; \ 162 162 else signbyte(b) &= 0x7f; } 163 163 #define changesign(a) { signbyte(a) ^= 0x80; }
+8 -8
arch/x86/math-emu/reg_compare.c
··· 168 168 /* This function requires that st(0) is not empty */ 169 169 int FPU_compare_st_data(FPU_REG const *loaded_data, u_char loaded_tag) 170 170 { 171 - int f = 0, c; 171 + int f, c; 172 172 173 173 c = compare(loaded_data, loaded_tag); 174 174 ··· 189 189 case COMP_No_Comp: 190 190 f = SW_C3 | SW_C2 | SW_C0; 191 191 break; 192 - #ifdef PARANOID 193 192 default: 193 + #ifdef PARANOID 194 194 EXCEPTION(EX_INTERNAL | 0x121); 195 + #endif /* PARANOID */ 195 196 f = SW_C3 | SW_C2 | SW_C0; 196 197 break; 197 - #endif /* PARANOID */ 198 198 } 199 199 setcc(f); 200 200 if (c & COMP_Denormal) { ··· 205 205 206 206 static int compare_st_st(int nr) 207 207 { 208 - int f = 0, c; 208 + int f, c; 209 209 FPU_REG *st_ptr; 210 210 211 211 if (!NOT_EMPTY(0) || !NOT_EMPTY(nr)) { ··· 235 235 case COMP_No_Comp: 236 236 f = SW_C3 | SW_C2 | SW_C0; 237 237 break; 238 - #ifdef PARANOID 239 238 default: 239 + #ifdef PARANOID 240 240 EXCEPTION(EX_INTERNAL | 0x122); 241 + #endif /* PARANOID */ 241 242 f = SW_C3 | SW_C2 | SW_C0; 242 243 break; 243 - #endif /* PARANOID */ 244 244 } 245 245 setcc(f); 246 246 if (c & COMP_Denormal) { ··· 283 283 case COMP_No_Comp: 284 284 f = X86_EFLAGS_ZF | X86_EFLAGS_PF | X86_EFLAGS_CF; 285 285 break; 286 - #ifdef PARANOID 287 286 default: 287 + #ifdef PARANOID 288 288 EXCEPTION(EX_INTERNAL | 0x122); 289 + #endif /* PARANOID */ 289 290 f = 0; 290 291 break; 291 - #endif /* PARANOID */ 292 292 } 293 293 FPU_EFLAGS = (FPU_EFLAGS & ~(X86_EFLAGS_ZF | X86_EFLAGS_PF | X86_EFLAGS_CF)) | f; 294 294 if (c & COMP_Denormal) {
+4 -2
arch/x86/platform/intel-mid/device_libs/platform_max7315.c
··· 38 38 */ 39 39 strcpy(i2c_info->type, "max7315"); 40 40 if (nr++) { 41 - sprintf(base_pin_name, "max7315_%d_base", nr); 42 - sprintf(intr_pin_name, "max7315_%d_int", nr); 41 + snprintf(base_pin_name, sizeof(base_pin_name), 42 + "max7315_%d_base", nr); 43 + snprintf(intr_pin_name, sizeof(intr_pin_name), 44 + "max7315_%d_int", nr); 43 45 } else { 44 46 strcpy(base_pin_name, "max7315_base"); 45 47 strcpy(intr_pin_name, "max7315_int");
+20 -9
arch/x86/platform/uv/tlb_uv.c
··· 40 40 static int timeout_us; 41 41 static bool nobau = true; 42 42 static int nobau_perm; 43 - static cycles_t congested_cycles; 44 43 45 44 /* tunables: */ 46 45 static int max_concurr = MAX_BAU_CONCURRENT; ··· 828 829 if ((completion_status == FLUSH_COMPLETE) && (try == 1)) { 829 830 bcp->period_requests++; 830 831 bcp->period_time += elapsed; 831 - if ((elapsed > congested_cycles) && 832 + if ((elapsed > usec_2_cycles(bcp->cong_response_us)) && 832 833 (bcp->period_requests > bcp->cong_reps) && 833 834 ((bcp->period_time / bcp->period_requests) > 834 - congested_cycles)) { 835 + usec_2_cycles(bcp->cong_response_us))) { 835 836 stat->s_congested++; 836 837 disable_for_period(bcp, stat); 837 838 } ··· 2221 2222 else if (is_uv1_hub()) 2222 2223 ops = uv1_bau_ops; 2223 2224 2225 + nuvhubs = uv_num_possible_blades(); 2226 + if (nuvhubs < 2) { 2227 + pr_crit("UV: BAU disabled - insufficient hub count\n"); 2228 + goto err_bau_disable; 2229 + } 2230 + 2224 2231 for_each_possible_cpu(cur_cpu) { 2225 2232 mask = &per_cpu(uv_flush_tlb_mask, cur_cpu); 2226 2233 zalloc_cpumask_var_node(mask, GFP_KERNEL, cpu_to_node(cur_cpu)); 2227 2234 } 2228 - 2229 - nuvhubs = uv_num_possible_blades(); 2230 - congested_cycles = usec_2_cycles(congested_respns_us); 2231 2235 2232 2236 uv_base_pnode = 0x7fffffff; 2233 2237 for (uvhub = 0; uvhub < nuvhubs; uvhub++) { ··· 2244 2242 enable_timeouts(); 2245 2243 2246 2244 if (init_per_cpu(nuvhubs, uv_base_pnode)) { 2247 - set_bau_off(); 2248 - nobau_perm = 1; 2249 - return 0; 2245 + pr_crit("UV: BAU disabled - per CPU init failed\n"); 2246 + goto err_bau_disable; 2250 2247 } 2251 2248 2252 2249 vector = UV_BAU_MESSAGE; ··· 2271 2270 } 2272 2271 2273 2272 return 0; 2273 + 2274 + err_bau_disable: 2275 + 2276 + for_each_possible_cpu(cur_cpu) 2277 + free_cpumask_var(per_cpu(uv_flush_tlb_mask, cur_cpu)); 2278 + 2279 + set_bau_off(); 2280 + nobau_perm = 1; 2281 + 2282 + return -EINVAL; 2274 2283 } 2275 2284 core_initcall(uv_bau_init); 2276 2285 fs_initcall(uv_ptc_init);