1. 23 Apr, 2010 4 commits
  2. 22 Apr, 2010 28 commits
  3. 21 Apr, 2010 8 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