Loading Documentation/feature-removal-schedule.txt +16 −0 Original line number Diff line number Diff line Loading @@ -258,3 +258,19 @@ Why: These drivers never compiled since they were added to the kernel Who: Jean Delvare <khali@linux-fr.org> --------------------------- What: Bridge netfilter deferred IPv4/IPv6 output hook calling When: January 2007 Why: The deferred output hooks are a layering violation causing unusual and broken behaviour on bridge devices. Examples of things they break include QoS classifation using the MARK or CLASSIFY targets, the IPsec policy match and connection tracking with VLANs on a bridge. Their only use is to enable bridge output port filtering within iptables with the physdev match, which can also be done by combining iptables and ebtables using netfilter marks. Until it will get removed the hook deferral is disabled by default and is only enabled when needed. Who: Patrick McHardy <kaber@trash.net> --------------------------- Documentation/x86_64/boot-options.txt +7 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,13 @@ Debugging pagefaulttrace Dump all page faults. Only useful for extreme debugging and will create a lot of output. call_trace=[old|both|newfallback|new] old: use old inexact backtracer new: use new exact dwarf2 unwinder both: print entries from both newfallback: use new unwinder but fall back to old if it gets stuck (default) Misc noreplacement Don't replace instructions with more appropriate ones Loading arch/i386/kernel/process.c +2 −2 Original line number Diff line number Diff line Loading @@ -690,8 +690,8 @@ struct task_struct fastcall * __switch_to(struct task_struct *prev_p, struct tas /* * Now maybe handle debug registers and/or IO bitmaps */ if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)) || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)) if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW) || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP))) __switch_to_xtra(next_p, tss); disable_tsc(prev_p, next_p); Loading arch/i386/kernel/time.c +1 −1 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ unsigned long profile_pc(struct pt_regs *regs) { unsigned long pc = instruction_pointer(regs); if (in_lock_functions(pc)) if (!user_mode_vm(regs) && in_lock_functions(pc)) return *(unsigned long *)(regs->ebp + 4); return pc; Loading arch/i386/kernel/traps.c +14 −3 Original line number Diff line number Diff line Loading @@ -187,10 +187,21 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, if (unwind_init_blocked(&info, task) == 0) unw_ret = show_trace_unwind(&info, log_lvl); } if (unw_ret > 0) { if (call_trace > 0) if (unw_ret > 0 && !arch_unw_user_mode(&info)) { #ifdef CONFIG_STACK_UNWIND print_symbol("DWARF2 unwinder stuck at %s\n", UNW_PC(info.regs)); if (call_trace == 1) { printk("Leftover inexact backtrace:\n"); if (UNW_SP(info.regs)) stack = (void *)UNW_SP(info.regs); } else if (call_trace > 1) return; printk("%sLegacy call trace:\n", log_lvl); else printk("Full inexact backtrace again:\n"); #else printk("Inexact backtrace:\n"); #endif } } Loading Loading
Documentation/feature-removal-schedule.txt +16 −0 Original line number Diff line number Diff line Loading @@ -258,3 +258,19 @@ Why: These drivers never compiled since they were added to the kernel Who: Jean Delvare <khali@linux-fr.org> --------------------------- What: Bridge netfilter deferred IPv4/IPv6 output hook calling When: January 2007 Why: The deferred output hooks are a layering violation causing unusual and broken behaviour on bridge devices. Examples of things they break include QoS classifation using the MARK or CLASSIFY targets, the IPsec policy match and connection tracking with VLANs on a bridge. Their only use is to enable bridge output port filtering within iptables with the physdev match, which can also be done by combining iptables and ebtables using netfilter marks. Until it will get removed the hook deferral is disabled by default and is only enabled when needed. Who: Patrick McHardy <kaber@trash.net> ---------------------------
Documentation/x86_64/boot-options.txt +7 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,13 @@ Debugging pagefaulttrace Dump all page faults. Only useful for extreme debugging and will create a lot of output. call_trace=[old|both|newfallback|new] old: use old inexact backtracer new: use new exact dwarf2 unwinder both: print entries from both newfallback: use new unwinder but fall back to old if it gets stuck (default) Misc noreplacement Don't replace instructions with more appropriate ones Loading
arch/i386/kernel/process.c +2 −2 Original line number Diff line number Diff line Loading @@ -690,8 +690,8 @@ struct task_struct fastcall * __switch_to(struct task_struct *prev_p, struct tas /* * Now maybe handle debug registers and/or IO bitmaps */ if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)) || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)) if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW) || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP))) __switch_to_xtra(next_p, tss); disable_tsc(prev_p, next_p); Loading
arch/i386/kernel/time.c +1 −1 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ unsigned long profile_pc(struct pt_regs *regs) { unsigned long pc = instruction_pointer(regs); if (in_lock_functions(pc)) if (!user_mode_vm(regs) && in_lock_functions(pc)) return *(unsigned long *)(regs->ebp + 4); return pc; Loading
arch/i386/kernel/traps.c +14 −3 Original line number Diff line number Diff line Loading @@ -187,10 +187,21 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, if (unwind_init_blocked(&info, task) == 0) unw_ret = show_trace_unwind(&info, log_lvl); } if (unw_ret > 0) { if (call_trace > 0) if (unw_ret > 0 && !arch_unw_user_mode(&info)) { #ifdef CONFIG_STACK_UNWIND print_symbol("DWARF2 unwinder stuck at %s\n", UNW_PC(info.regs)); if (call_trace == 1) { printk("Leftover inexact backtrace:\n"); if (UNW_SP(info.regs)) stack = (void *)UNW_SP(info.regs); } else if (call_trace > 1) return; printk("%sLegacy call trace:\n", log_lvl); else printk("Full inexact backtrace again:\n"); #else printk("Inexact backtrace:\n"); #endif } } Loading