1. 23 Apr, 2010 3 commits
  2. 22 Apr, 2010 28 commits
  3. 21 Apr, 2010 9 commits
    • Richard Röjfors's avatar
      ks8842: Add platform data for setting mac address · a1aa8822
      Richard Röjfors authored
      This patch adds platform data to the ks8842 driver.
      
      Via the platform data a MAC address, to be used by the controller,
      can be passed.
      
      To ensure this MAC address is used, the MAC address is written
      after each hardware reset.
      Signed-off-by: default avatarRichard Röjfors <richard.rojfors@pelagicore.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a1aa8822
    • Nikanth Karthikesan's avatar
      net: small cleanup of lib8390 · 6846ad28
      Nikanth Karthikesan authored
      Remove the always true #if 1. Also the unecessary re-test of ei_local->irqlock
      and the unreachable printk format string.
      Signed-off-by: default avatarNikanth Karthikesan <knikanth@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6846ad28
    • Eric Dumazet's avatar
      fasync: RCU and fine grained locking · 989a2979
      Eric Dumazet authored
      kill_fasync() uses a central rwlock, candidate for RCU conversion, to
      avoid cache line ping pongs on SMP.
      
      fasync_remove_entry() and fasync_add_entry() can disable IRQS on a short
      section instead during whole list scan.
      
      Use a spinlock per fasync_struct to synchronize kill_fasync_rcu() and
      fasync_{remove|add}_entry(). This spinlock is IRQ safe, so sock_fasync()
      doesnt need its own implementation and can use fasync_helper(), to
      reduce code size and complexity.
      
      We can remove __kill_fasync() direct use in net/socket.c, and rename it
      to kill_fasync_rcu().
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      989a2979
    • David S. Miller's avatar
      tcp: Mark v6 response packets as CHECKSUM_PARTIAL · e5700aff
      David S. Miller authored
      Otherwise we only get the checksum right for data-less TCP responses.
      
      Noticed by Herbert Xu.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e5700aff
    • David S. Miller's avatar
      tcp: Fix ipv6 checksumming on response packets for real. · f71b70e1
      David S. Miller authored
      Commit 6651ffc8
      ("ipv6: Fix tcp_v6_send_response transport header setting.")
      fixed one half of why ipv6 tcp response checksums were
      invalid, but it's not the whole story.
      
      If we're going to use CHECKSUM_PARTIAL for these things (which we are
      since commit 2e8e18ef "tcp: Set
      CHECKSUM_UNNECESSARY in tcp_init_nondata_skb"), we can't be setting
      buff->csum as we always have been here in tcp_v6_send_response.  We
      need to leave it at zero.
      
      Kill that line and checksums are good again.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f71b70e1
    • David S. Miller's avatar
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 87eb3670
      David S. Miller authored
      Conflicts:
      	drivers/net/wireless/iwlwifi/iwl-6000.c
      	net/core/dev.c
      87eb3670
    • David Howells's avatar
      net: Fix an RCU warning in dev_pick_tx() · 05d17608
      David Howells authored
      Fix the following RCU warning in dev_pick_tx():
      
      ===================================================
      [ INFO: suspicious rcu_dereference_check() usage. ]
      ---------------------------------------------------
      net/core/dev.c:1993 invoked rcu_dereference_check() without protection!
      
      other info that might help us debug this:
      
      rcu_scheduler_active = 1, debug_locks = 0
      2 locks held by swapper/0:
       #0:  (&idev->mc_ifc_timer){+.-...}, at: [<ffffffff81039e65>] run_timer_softirq+0x17b/0x278
       #1:  (rcu_read_lock_bh){.+....}, at: [<ffffffff812ea3eb>] dev_queue_xmit+0x14e/0x4dc
      
      stack backtrace:
      Pid: 0, comm: swapper Not tainted 2.6.34-rc5-cachefs #4
      Call Trace:
       <IRQ>  [<ffffffff810516c4>] lockdep_rcu_dereference+0xaa/0xb2
       [<ffffffff812ea4f6>] dev_queue_xmit+0x259/0x4dc
       [<ffffffff812ea3eb>] ? dev_queue_xmit+0x14e/0x4dc
       [<ffffffff81052324>] ? trace_hardirqs_on+0xd/0xf
       [<ffffffff81035362>] ? local_bh_enable_ip+0xbc/0xc1
       [<ffffffff812f0954>] neigh_resolve_output+0x24b/0x27c
       [<ffffffff8134f673>] ip6_output_finish+0x7c/0xb4
       [<ffffffff81350c34>] ip6_output2+0x256/0x261
       [<ffffffff81052324>] ? trace_hardirqs_on+0xd/0xf
       [<ffffffff813517fb>] ip6_output+0xbbc/0xbcb
       [<ffffffff8135bc5d>] ? fib6_force_start_gc+0x2b/0x2d
       [<ffffffff81368acb>] mld_sendpack+0x273/0x39d
       [<ffffffff81368858>] ? mld_sendpack+0x0/0x39d
       [<ffffffff81052099>] ? mark_held_locks+0x52/0x70
       [<ffffffff813692fc>] mld_ifc_timer_expire+0x24f/0x288
       [<ffffffff81039ed6>] run_timer_softirq+0x1ec/0x278
       [<ffffffff81039e65>] ? run_timer_softirq+0x17b/0x278
       [<ffffffff813690ad>] ? mld_ifc_timer_expire+0x0/0x288
       [<ffffffff81035531>] ? __do_softirq+0x69/0x140
       [<ffffffff8103556a>] __do_softirq+0xa2/0x140
       [<ffffffff81002e0c>] call_softirq+0x1c/0x28
       [<ffffffff81004b54>] do_softirq+0x38/0x80
       [<ffffffff81034f06>] irq_exit+0x45/0x47
       [<ffffffff810177c3>] smp_apic_timer_interrupt+0x88/0x96
       [<ffffffff810028d3>] apic_timer_interrupt+0x13/0x20
       <EOI>  [<ffffffff810488dd>] ? __atomic_notifier_call_chain+0x0/0x86
       [<ffffffff810096bf>] ? mwait_idle+0x6e/0x78
       [<ffffffff810096b6>] ? mwait_idle+0x65/0x78
       [<ffffffff810011cb>] cpu_idle+0x4d/0x83
       [<ffffffff81380b05>] rest_init+0xb9/0xc0
       [<ffffffff81380a4c>] ? rest_init+0x0/0xc0
       [<ffffffff8168dcf0>] start_kernel+0x392/0x39d
       [<ffffffff8168d2a3>] x86_64_start_reservations+0xb3/0xb7
       [<ffffffff8168d38b>] x86_64_start_kernel+0xe4/0xeb
      
      An rcu_dereference() should be an rcu_dereference_bh().
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      05d17608
    • David S. Miller's avatar
    • Herbert Xu's avatar
      ipv6: Fix tcp_v6_send_response transport header setting. · 6651ffc8
      Herbert Xu authored
      My recent patch to remove the open-coded checksum sequence in
      tcp_v6_send_response broke it as we did not set the transport
      header pointer on the new packet.
      
      Actually, there is code there trying to set the transport
      header properly, but it sets it for the wrong skb ('skb'
      instead of 'buff').
      
      This bug was introduced by commit
      a8fdf2b3 ("ipv6: Fix
      tcp_v6_send_response(): it didn't set skb transport header")
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6651ffc8