From 59c42576325848e5bcbbb4d4366e9228ec400bfb Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Wed, 17 Oct 2012 12:25:44 +0100 Subject: [PATCH] --- yaml --- r: 334436 b: refs/heads/master c: 3c5994c83895c89d344f24a86276f00d308e142b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/sysrq.txt | 1 - trunk/MAINTAINERS | 14 -- trunk/Makefile | 4 +- trunk/arch/sparc/include/asm/ptrace.h | 13 +- trunk/arch/sparc/include/asm/smp_64.h | 2 - trunk/arch/sparc/kernel/perf_event.c | 15 +-- trunk/arch/sparc/kernel/process_64.c | 120 +++--------------- trunk/arch/sparc/kernel/smp_64.c | 11 -- trunk/arch/sparc/mm/ultra.S | 64 +--------- trunk/drivers/net/bonding/bond_main.c | 2 +- .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 10 +- .../net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 2 +- trunk/drivers/s390/net/qeth_l2_main.c | 11 +- trunk/drivers/s390/net/qeth_l3_main.c | 11 +- trunk/drivers/s390/net/smsgiucv.c | 2 +- trunk/drivers/tty/sysrq.c | 1 - trunk/net/8021q/vlan_core.c | 9 +- trunk/net/ipv6/addrconf.c | 15 +-- trunk/net/sctp/sm_sideeffect.c | 3 +- trunk/scripts/Makefile.asm-generic | 2 +- 21 files changed, 58 insertions(+), 256 deletions(-) diff --git a/[refs] b/[refs] index d26ee3afd077..33f7760ceb05 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 18673533256a2953ccefded52df2679de8640685 +refs/heads/master: 3c5994c83895c89d344f24a86276f00d308e142b diff --git a/trunk/Documentation/sysrq.txt b/trunk/Documentation/sysrq.txt index 2a4cdda4828e..642f84495b29 100644 --- a/trunk/Documentation/sysrq.txt +++ b/trunk/Documentation/sysrq.txt @@ -116,7 +116,6 @@ On all - write a character to /proc/sysrq-trigger. e.g.: 'w' - Dumps tasks that are in uninterruptable (blocked) state. 'x' - Used by xmon interface on ppc/powerpc platforms. - Show global PMU Registers on sparc64. 'y' - Show global CPU Registers [SPARC-64 specific] diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 41c53491db60..e39e9da359a0 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -5019,20 +5019,6 @@ F: net/ipv6/ F: include/net/ip* F: arch/x86/net/* -NETWORKING [IPSEC] -M: Steffen Klassert -M: Herbert Xu -M: "David S. Miller" -L: netdev@vger.kernel.org -T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git -S: Maintained -F: net/xfrm/ -F: net/key/ -F: net/ipv4/xfrm* -F: net/ipv6/xfrm* -F: include/uapi/linux/xfrm.h -F: include/net/xfrm.h - NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK) M: Paul Moore L: netdev@vger.kernel.org diff --git a/trunk/Makefile b/trunk/Makefile index 5be2ee8c90e4..366d0ab0c5fe 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -437,7 +437,9 @@ endif PHONY += asm-generic asm-generic: $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \ - obj=arch/$(SRCARCH)/include/generated/asm + src=asm obj=arch/$(SRCARCH)/include/generated/asm + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \ + src=uapi/asm obj=arch/$(SRCARCH)/include/generated/uapi/asm # To make sure we do not include .config for any of the *config targets # catch them early, and hand them over to scripts/kconfig/Makefile diff --git a/trunk/arch/sparc/include/asm/ptrace.h b/trunk/arch/sparc/include/asm/ptrace.h index da43bdc62294..0c6f6b068289 100644 --- a/trunk/arch/sparc/include/asm/ptrace.h +++ b/trunk/arch/sparc/include/asm/ptrace.h @@ -42,18 +42,7 @@ struct global_reg_snapshot { struct thread_info *thread; unsigned long pad1; }; - -struct global_pmu_snapshot { - unsigned long pcr[4]; - unsigned long pic[4]; -}; - -union global_cpu_snapshot { - struct global_reg_snapshot reg; - struct global_pmu_snapshot pmu; -}; - -extern union global_cpu_snapshot global_cpu_snapshot[NR_CPUS]; +extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; #define force_successful_syscall_return() \ do { current_thread_info()->syscall_noerror = 1; \ diff --git a/trunk/arch/sparc/include/asm/smp_64.h b/trunk/arch/sparc/include/asm/smp_64.h index dd3bef4b9896..29862a9e9065 100644 --- a/trunk/arch/sparc/include/asm/smp_64.h +++ b/trunk/arch/sparc/include/asm/smp_64.h @@ -48,7 +48,6 @@ extern void smp_fill_in_sib_core_maps(void); extern void cpu_play_dead(void); extern void smp_fetch_global_regs(void); -extern void smp_fetch_global_pmu(void); struct seq_file; void smp_bogo(struct seq_file *); @@ -66,7 +65,6 @@ extern void __cpu_die(unsigned int cpu); #define hard_smp_processor_id() 0 #define smp_fill_in_sib_core_maps() do { } while (0) #define smp_fetch_global_regs() do { } while (0) -#define smp_fetch_global_pmu() do { } while (0) #endif /* !(CONFIG_SMP) */ diff --git a/trunk/arch/sparc/kernel/perf_event.c b/trunk/arch/sparc/kernel/perf_event.c index 885a8af74064..e48651dace1b 100644 --- a/trunk/arch/sparc/kernel/perf_event.c +++ b/trunk/arch/sparc/kernel/perf_event.c @@ -817,17 +817,15 @@ static u64 nop_for_index(int idx) static inline void sparc_pmu_enable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, int idx) { - u64 enc, val, mask = mask_for_index(idx); + u64 val, mask = mask_for_index(idx); int pcr_index = 0; if (sparc_pmu->num_pcrs > 1) pcr_index = idx; - enc = perf_event_get_enc(cpuc->events[idx]); - val = cpuc->pcr[pcr_index]; val &= ~mask; - val |= event_encoding(enc, idx); + val |= hwc->config; cpuc->pcr[pcr_index] = val; pcr_ops->write_pcr(pcr_index, cpuc->pcr[pcr_index]); @@ -1740,6 +1738,8 @@ static void perf_callchain_user_64(struct perf_callchain_entry *entry, { unsigned long ufp; + perf_callchain_store(entry, regs->tpc); + ufp = regs->u_regs[UREG_I6] + STACK_BIAS; do { struct sparc_stackf *usf, sf; @@ -1760,6 +1760,8 @@ static void perf_callchain_user_32(struct perf_callchain_entry *entry, { unsigned long ufp; + perf_callchain_store(entry, regs->tpc); + ufp = regs->u_regs[UREG_I6] & 0xffffffffUL; do { struct sparc_stackf32 *usf, sf; @@ -1778,11 +1780,6 @@ static void perf_callchain_user_32(struct perf_callchain_entry *entry, void perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs) { - perf_callchain_store(entry, regs->tpc); - - if (!current->mm) - return; - flushw_user(); if (test_thread_flag(TIF_32BIT)) perf_callchain_user_32(entry, regs); diff --git a/trunk/arch/sparc/kernel/process_64.c b/trunk/arch/sparc/kernel/process_64.c index d778248ef3f8..fcaa59421126 100644 --- a/trunk/arch/sparc/kernel/process_64.c +++ b/trunk/arch/sparc/kernel/process_64.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -48,7 +47,6 @@ #include #include #include -#include #include "kstack.h" @@ -206,22 +204,18 @@ void show_regs(struct pt_regs *regs) show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]); } -union global_cpu_snapshot global_cpu_snapshot[NR_CPUS]; -static DEFINE_SPINLOCK(global_cpu_snapshot_lock); +struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; +static DEFINE_SPINLOCK(global_reg_snapshot_lock); static void __global_reg_self(struct thread_info *tp, struct pt_regs *regs, int this_cpu) { - struct global_reg_snapshot *rp; - flushw_all(); - rp = &global_cpu_snapshot[this_cpu].reg; - - rp->tstate = regs->tstate; - rp->tpc = regs->tpc; - rp->tnpc = regs->tnpc; - rp->o7 = regs->u_regs[UREG_I7]; + global_reg_snapshot[this_cpu].tstate = regs->tstate; + global_reg_snapshot[this_cpu].tpc = regs->tpc; + global_reg_snapshot[this_cpu].tnpc = regs->tnpc; + global_reg_snapshot[this_cpu].o7 = regs->u_regs[UREG_I7]; if (regs->tstate & TSTATE_PRIV) { struct reg_window *rw; @@ -229,17 +223,17 @@ static void __global_reg_self(struct thread_info *tp, struct pt_regs *regs, rw = (struct reg_window *) (regs->u_regs[UREG_FP] + STACK_BIAS); if (kstack_valid(tp, (unsigned long) rw)) { - rp->i7 = rw->ins[7]; + global_reg_snapshot[this_cpu].i7 = rw->ins[7]; rw = (struct reg_window *) (rw->ins[6] + STACK_BIAS); if (kstack_valid(tp, (unsigned long) rw)) - rp->rpc = rw->ins[7]; + global_reg_snapshot[this_cpu].rpc = rw->ins[7]; } } else { - rp->i7 = 0; - rp->rpc = 0; + global_reg_snapshot[this_cpu].i7 = 0; + global_reg_snapshot[this_cpu].rpc = 0; } - rp->thread = tp; + global_reg_snapshot[this_cpu].thread = tp; } /* In order to avoid hangs we do not try to synchronize with the @@ -267,9 +261,9 @@ void arch_trigger_all_cpu_backtrace(void) if (!regs) regs = tp->kregs; - spin_lock_irqsave(&global_cpu_snapshot_lock, flags); + spin_lock_irqsave(&global_reg_snapshot_lock, flags); - memset(global_cpu_snapshot, 0, sizeof(global_cpu_snapshot)); + memset(global_reg_snapshot, 0, sizeof(global_reg_snapshot)); this_cpu = raw_smp_processor_id(); @@ -278,7 +272,7 @@ void arch_trigger_all_cpu_backtrace(void) smp_fetch_global_regs(); for_each_online_cpu(cpu) { - struct global_reg_snapshot *gp = &global_cpu_snapshot[cpu].reg; + struct global_reg_snapshot *gp = &global_reg_snapshot[cpu]; __global_reg_poll(gp); @@ -301,9 +295,9 @@ void arch_trigger_all_cpu_backtrace(void) } } - memset(global_cpu_snapshot, 0, sizeof(global_cpu_snapshot)); + memset(global_reg_snapshot, 0, sizeof(global_reg_snapshot)); - spin_unlock_irqrestore(&global_cpu_snapshot_lock, flags); + spin_unlock_irqrestore(&global_reg_snapshot_lock, flags); } #ifdef CONFIG_MAGIC_SYSRQ @@ -315,90 +309,16 @@ static void sysrq_handle_globreg(int key) static struct sysrq_key_op sparc_globalreg_op = { .handler = sysrq_handle_globreg, - .help_msg = "global-regs(Y)", + .help_msg = "Globalregs", .action_msg = "Show Global CPU Regs", }; -static void __global_pmu_self(int this_cpu) -{ - struct global_pmu_snapshot *pp; - int i, num; - - pp = &global_cpu_snapshot[this_cpu].pmu; - - num = 1; - if (tlb_type == hypervisor && - sun4v_chip_type >= SUN4V_CHIP_NIAGARA4) - num = 4; - - for (i = 0; i < num; i++) { - pp->pcr[i] = pcr_ops->read_pcr(i); - pp->pic[i] = pcr_ops->read_pic(i); - } -} - -static void __global_pmu_poll(struct global_pmu_snapshot *pp) -{ - int limit = 0; - - while (!pp->pcr[0] && ++limit < 100) { - barrier(); - udelay(1); - } -} - -static void pmu_snapshot_all_cpus(void) +static int __init sparc_globreg_init(void) { - unsigned long flags; - int this_cpu, cpu; - - spin_lock_irqsave(&global_cpu_snapshot_lock, flags); - - memset(global_cpu_snapshot, 0, sizeof(global_cpu_snapshot)); - - this_cpu = raw_smp_processor_id(); - - __global_pmu_self(this_cpu); - - smp_fetch_global_pmu(); - - for_each_online_cpu(cpu) { - struct global_pmu_snapshot *pp = &global_cpu_snapshot[cpu].pmu; - - __global_pmu_poll(pp); - - printk("%c CPU[%3d]: PCR[%08lx:%08lx:%08lx:%08lx] PIC[%08lx:%08lx:%08lx:%08lx]\n", - (cpu == this_cpu ? '*' : ' '), cpu, - pp->pcr[0], pp->pcr[1], pp->pcr[2], pp->pcr[3], - pp->pic[0], pp->pic[1], pp->pic[2], pp->pic[3]); - } - - memset(global_cpu_snapshot, 0, sizeof(global_cpu_snapshot)); - - spin_unlock_irqrestore(&global_cpu_snapshot_lock, flags); -} - -static void sysrq_handle_globpmu(int key) -{ - pmu_snapshot_all_cpus(); -} - -static struct sysrq_key_op sparc_globalpmu_op = { - .handler = sysrq_handle_globpmu, - .help_msg = "global-pmu(X)", - .action_msg = "Show Global PMU Regs", -}; - -static int __init sparc_sysrq_init(void) -{ - int ret = register_sysrq_key('y', &sparc_globalreg_op); - - if (!ret) - ret = register_sysrq_key('x', &sparc_globalpmu_op); - return ret; + return register_sysrq_key('y', &sparc_globalreg_op); } -core_initcall(sparc_sysrq_init); +core_initcall(sparc_globreg_init); #endif diff --git a/trunk/arch/sparc/kernel/smp_64.c b/trunk/arch/sparc/kernel/smp_64.c index d94b878577b7..781bcb10b8bd 100644 --- a/trunk/arch/sparc/kernel/smp_64.c +++ b/trunk/arch/sparc/kernel/smp_64.c @@ -852,8 +852,6 @@ extern unsigned long xcall_flush_tlb_mm; extern unsigned long xcall_flush_tlb_pending; extern unsigned long xcall_flush_tlb_kernel_range; extern unsigned long xcall_fetch_glob_regs; -extern unsigned long xcall_fetch_glob_pmu; -extern unsigned long xcall_fetch_glob_pmu_n4; extern unsigned long xcall_receive_signal; extern unsigned long xcall_new_mmu_context_version; #ifdef CONFIG_KGDB @@ -1002,15 +1000,6 @@ void smp_fetch_global_regs(void) smp_cross_call(&xcall_fetch_glob_regs, 0, 0, 0); } -void smp_fetch_global_pmu(void) -{ - if (tlb_type == hypervisor && - sun4v_chip_type >= SUN4V_CHIP_NIAGARA4) - smp_cross_call(&xcall_fetch_glob_pmu_n4, 0, 0, 0); - else - smp_cross_call(&xcall_fetch_glob_pmu, 0, 0, 0); -} - /* We know that the window frames of the user have been flushed * to the stack before we get here because all callers of us * are flush_tlb_*() routines, and these run after flush_cache_*() diff --git a/trunk/arch/sparc/mm/ultra.S b/trunk/arch/sparc/mm/ultra.S index f8e13d421fcb..874162a11ceb 100644 --- a/trunk/arch/sparc/mm/ultra.S +++ b/trunk/arch/sparc/mm/ultra.S @@ -481,8 +481,8 @@ xcall_sync_tick: .globl xcall_fetch_glob_regs xcall_fetch_glob_regs: - sethi %hi(global_cpu_snapshot), %g1 - or %g1, %lo(global_cpu_snapshot), %g1 + sethi %hi(global_reg_snapshot), %g1 + or %g1, %lo(global_reg_snapshot), %g1 __GET_CPUID(%g2) sllx %g2, 6, %g3 add %g1, %g3, %g1 @@ -509,66 +509,6 @@ xcall_fetch_glob_regs: stx %g3, [%g1 + GR_SNAP_THREAD] retry - .globl xcall_fetch_glob_pmu -xcall_fetch_glob_pmu: - sethi %hi(global_cpu_snapshot), %g1 - or %g1, %lo(global_cpu_snapshot), %g1 - __GET_CPUID(%g2) - sllx %g2, 6, %g3 - add %g1, %g3, %g1 - rd %pic, %g7 - stx %g7, [%g1 + (4 * 8)] - rd %pcr, %g7 - stx %g7, [%g1 + (0 * 8)] - retry - - .globl xcall_fetch_glob_pmu_n4 -xcall_fetch_glob_pmu_n4: - sethi %hi(global_cpu_snapshot), %g1 - or %g1, %lo(global_cpu_snapshot), %g1 - __GET_CPUID(%g2) - sllx %g2, 6, %g3 - add %g1, %g3, %g1 - - ldxa [%g0] ASI_PIC, %g7 - stx %g7, [%g1 + (4 * 8)] - mov 0x08, %g3 - ldxa [%g3] ASI_PIC, %g7 - stx %g7, [%g1 + (5 * 8)] - mov 0x10, %g3 - ldxa [%g3] ASI_PIC, %g7 - stx %g7, [%g1 + (6 * 8)] - mov 0x18, %g3 - ldxa [%g3] ASI_PIC, %g7 - stx %g7, [%g1 + (7 * 8)] - - mov %o0, %g2 - mov %o1, %g3 - mov %o5, %g7 - - mov HV_FAST_VT_GET_PERFREG, %o5 - mov 3, %o0 - ta HV_FAST_TRAP - stx %o1, [%g1 + (3 * 8)] - mov HV_FAST_VT_GET_PERFREG, %o5 - mov 2, %o0 - ta HV_FAST_TRAP - stx %o1, [%g1 + (2 * 8)] - mov HV_FAST_VT_GET_PERFREG, %o5 - mov 1, %o0 - ta HV_FAST_TRAP - stx %o1, [%g1 + (1 * 8)] - mov HV_FAST_VT_GET_PERFREG, %o5 - mov 0, %o0 - ta HV_FAST_TRAP - stx %o1, [%g1 + (0 * 8)] - - mov %g2, %o0 - mov %g3, %o1 - mov %g7, %o5 - - retry - #ifdef DCACHE_ALIASING_POSSIBLE .align 32 .globl xcall_flush_dcache_page_cheetah diff --git a/trunk/drivers/net/bonding/bond_main.c b/trunk/drivers/net/bonding/bond_main.c index b2530b002125..b721902bb6b4 100644 --- a/trunk/drivers/net/bonding/bond_main.c +++ b/trunk/drivers/net/bonding/bond_main.c @@ -1519,7 +1519,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) /* no need to lock since we're protected by rtnl_lock */ if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) { pr_debug("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name); - if (vlan_uses_dev(bond_dev)) { + if (bond_vlan_used(bond)) { pr_err("%s: Error: cannot enslave VLAN challenged slave %s on VLAN enabled bond %s\n", bond_dev->name, slave_dev->name, bond_dev->name); return -EPERM; diff --git a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 4833b6a9031c..24220992413f 100644 --- a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -2957,13 +2957,9 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) skb_shinfo(skb)->nr_frags + BDS_PER_TX_PKT + NEXT_CNT_PER_TX_PKT(MAX_BDS_PER_TX_PKT))) { - /* Handle special storage cases separately */ - if (txdata->tx_ring_size != 0) { - BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); - bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; - netif_tx_stop_queue(txq); - } - + bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; + netif_tx_stop_queue(txq); + BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); return NETDEV_TX_BUSY; } diff --git a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c index 614981c02264..71971a161bd1 100644 --- a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +++ b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c @@ -126,7 +126,7 @@ static inline int bnx2x_exe_queue_add(struct bnx2x *bp, /* Check if this request is ok */ rc = o->validate(bp, o->owner, elem); if (rc) { - DP(BNX2X_MSG_SP, "Preamble failed: %d\n", rc); + BNX2X_ERR("Preamble failed: %d\n", rc); goto free_and_exit; } } diff --git a/trunk/drivers/s390/net/qeth_l2_main.c b/trunk/drivers/s390/net/qeth_l2_main.c index e67e0258aec5..2db409330c21 100644 --- a/trunk/drivers/s390/net/qeth_l2_main.c +++ b/trunk/drivers/s390/net/qeth_l2_main.c @@ -1141,12 +1141,11 @@ static int qeth_l2_recover(void *ptr) dev_info(&card->gdev->dev, "Device successfully recovered!\n"); else { - if (rtnl_trylock()) { - dev_close(card->dev); - rtnl_unlock(); - dev_warn(&card->gdev->dev, "The qeth device driver " - "failed to recover an error on the device\n"); - } + rtnl_lock(); + dev_close(card->dev); + rtnl_unlock(); + dev_warn(&card->gdev->dev, "The qeth device driver " + "failed to recover an error on the device\n"); } qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD); qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD); diff --git a/trunk/drivers/s390/net/qeth_l3_main.c b/trunk/drivers/s390/net/qeth_l3_main.c index 5ba390658498..4cd310cb5bdf 100644 --- a/trunk/drivers/s390/net/qeth_l3_main.c +++ b/trunk/drivers/s390/net/qeth_l3_main.c @@ -3510,12 +3510,11 @@ static int qeth_l3_recover(void *ptr) dev_info(&card->gdev->dev, "Device successfully recovered!\n"); else { - if (rtnl_trylock()) { - dev_close(card->dev); - rtnl_unlock(); - dev_warn(&card->gdev->dev, "The qeth device driver " - "failed to recover an error on the device\n"); - } + rtnl_lock(); + dev_close(card->dev); + rtnl_unlock(); + dev_warn(&card->gdev->dev, "The qeth device driver " + "failed to recover an error on the device\n"); } qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD); qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD); diff --git a/trunk/drivers/s390/net/smsgiucv.c b/trunk/drivers/s390/net/smsgiucv.c index d8f990b6b332..207b7d742443 100644 --- a/trunk/drivers/s390/net/smsgiucv.c +++ b/trunk/drivers/s390/net/smsgiucv.c @@ -157,7 +157,7 @@ static int smsg_pm_restore_thaw(struct device *dev) #ifdef CONFIG_PM_DEBUG printk(KERN_WARNING "smsg_pm_restore_thaw\n"); #endif - if (smsg_path && !iucv_path_connected) { + if (smsg_path && iucv_path_connected) { memset(smsg_path, 0, sizeof(*smsg_path)); smsg_path->msglim = 255; smsg_path->flags = 0; diff --git a/trunk/drivers/tty/sysrq.c b/trunk/drivers/tty/sysrq.c index 16ee6cee07da..05728894a88c 100644 --- a/trunk/drivers/tty/sysrq.c +++ b/trunk/drivers/tty/sysrq.c @@ -452,7 +452,6 @@ static struct sysrq_key_op *sysrq_key_table[36] = { NULL, /* v */ &sysrq_showstate_blocked_op, /* w */ /* x: May be registered on ppc/powerpc for xmon */ - /* x: May be registered on sparc64 for global PMU dump */ NULL, /* x */ /* y: May be registered on sparc64 for global register dump */ NULL, /* y */ diff --git a/trunk/net/8021q/vlan_core.c b/trunk/net/8021q/vlan_core.c index 65e06abe023f..fbbf1fa00940 100644 --- a/trunk/net/8021q/vlan_core.c +++ b/trunk/net/8021q/vlan_core.c @@ -366,13 +366,6 @@ EXPORT_SYMBOL(vlan_vids_del_by_dev); bool vlan_uses_dev(const struct net_device *dev) { - struct vlan_info *vlan_info; - - ASSERT_RTNL(); - - vlan_info = rtnl_dereference(dev->vlan_info); - if (!vlan_info) - return false; - return vlan_info->grp.nr_vlan_devs ? true : false; + return rtnl_dereference(dev->vlan_info) ? true : false; } EXPORT_SYMBOL(vlan_uses_dev); diff --git a/trunk/net/ipv6/addrconf.c b/trunk/net/ipv6/addrconf.c index 0424e4e27414..d7c56f8a5b4e 100644 --- a/trunk/net/ipv6/addrconf.c +++ b/trunk/net/ipv6/addrconf.c @@ -3064,15 +3064,14 @@ static struct inet6_ifaddr *if6_get_first(struct seq_file *seq, loff_t pos) struct hlist_node *n; hlist_for_each_entry_rcu_bh(ifa, n, &inet6_addr_lst[state->bucket], addr_lst) { - if (!net_eq(dev_net(ifa->idev->dev), net)) - continue; /* sync with offset */ if (p < state->offset) { p++; continue; } state->offset++; - return ifa; + if (net_eq(dev_net(ifa->idev->dev), net)) + return ifa; } /* prepare for next bucket */ @@ -3090,20 +3089,18 @@ static struct inet6_ifaddr *if6_get_next(struct seq_file *seq, struct hlist_node *n = &ifa->addr_lst; hlist_for_each_entry_continue_rcu_bh(ifa, n, addr_lst) { - if (!net_eq(dev_net(ifa->idev->dev), net)) - continue; state->offset++; - return ifa; + if (net_eq(dev_net(ifa->idev->dev), net)) + return ifa; } while (++state->bucket < IN6_ADDR_HSIZE) { state->offset = 0; hlist_for_each_entry_rcu_bh(ifa, n, &inet6_addr_lst[state->bucket], addr_lst) { - if (!net_eq(dev_net(ifa->idev->dev), net)) - continue; state->offset++; - return ifa; + if (net_eq(dev_net(ifa->idev->dev), net)) + return ifa; } } diff --git a/trunk/net/sctp/sm_sideeffect.c b/trunk/net/sctp/sm_sideeffect.c index 6773d7803627..57f7de839b03 100644 --- a/trunk/net/sctp/sm_sideeffect.c +++ b/trunk/net/sctp/sm_sideeffect.c @@ -1642,9 +1642,8 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, asoc->outqueue.outstanding_bytes; sackh.num_gap_ack_blocks = 0; sackh.num_dup_tsns = 0; - chunk->subh.sack_hdr = &sackh; sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, - SCTP_CHUNK(chunk)); + SCTP_SACKH(&sackh)); break; case SCTP_CMD_DISCARD_PACKET: diff --git a/trunk/scripts/Makefile.asm-generic b/trunk/scripts/Makefile.asm-generic index 40caf3c26cd5..d17e0ea911ed 100644 --- a/trunk/scripts/Makefile.asm-generic +++ b/trunk/scripts/Makefile.asm-generic @@ -5,7 +5,7 @@ # and for each file listed in this file with generic-y creates # a small wrapper file in $(obj) (arch/$(SRCARCH)/include/generated/asm) -kbuild-file := $(srctree)/arch/$(SRCARCH)/include/asm/Kbuild +kbuild-file := $(srctree)/arch/$(SRCARCH)/include/$(src)/Kbuild -include $(kbuild-file) include scripts/Kbuild.include