1. 08 6月, 2011 2 次提交
  2. 07 6月, 2011 8 次提交
    • H
      net: cpu offline cause napi stall · 264524d5
      Heiko Carstens 提交于
      Frank Blaschka reported :
      <quote>
        During heavy network load we turn off/on cpus.
        Sometimes this causes a stall on the network device.
        Digging into the dump I found out following:
      
        napi is scheduled but does not run. From the I/O buffers
        and the napi state I see napi/rx_softirq processing has stopped
        because the budget was reached. napi stays in the
        softnet_data poll_list and the rx_softirq was raised again.
      
        I assume at this time the cpu offline comes in,
        the rx softirq is raised/moved to another cpu but napi stays in the
        poll_list of the softnet_data of the now offline cpu.
      
        Reviewing dev_cpu_callback (net/core/dev.c) I did not find the
        poll_list is transfered to the new cpu.
      </quote>
      
      This patch is a straightforward implementation of Frank suggestion :
      
      Transfert poll_list and trigger NET_RX_SOFTIRQ on new cpu.
      Reported-by: NFrank Blaschka <blaschka@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Tested-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      264524d5
    • A
      bridge: provide a cow_metrics method for fake_ops · 6407d74c
      Alexander Holler 提交于
      Like in commit 0972ddb2 (provide cow_metrics() methods to blackhole
      dst_ops), we must provide a cow_metrics for bridges fake_dst_ops as
      well.
      
      This fixes a regression coming from commits 62fa8a84 (net: Implement
      read-only protection and COW'ing of metrics.) and 33eb9873 (bridge:
      initialize fake_rtable metrics)
      
      ip link set mybridge mtu 1234
      -->
      [  136.546243] Pid: 8415, comm: ip Tainted: P 
      2.6.39.1-00006-g40545b7 #103 ASUSTeK Computer Inc.         V1Sn 
              /V1Sn
      [  136.546256] EIP: 0060:[<00000000>] EFLAGS: 00010202 CPU: 0
      [  136.546268] EIP is at 0x0
      [  136.546273] EAX: f14a389c EBX: 000005d4 ECX: f80d32c0 EDX: f80d1da1
      [  136.546279] ESI: f14a3000 EDI: f255bf10 EBP: f15c3b54 ESP: f15c3b48
      [  136.546285]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      [  136.546293] Process ip (pid: 8415, ti=f15c2000 task=f4741f80 
      task.ti=f15c2000)
      [  136.546297] Stack:
      [  136.546301]  f80c658f f14a3000 ffffffed f15c3b64 c12cb9c8 f80d1b80 
      ffffffa1 f15c3bbc
      [  136.546315]  c12da347 c12d9c7d 00000000 f7670b00 00000000 f80d1b80 
      ffffffa6 f15c3be4
      [  136.546329]  00000004 f14a3000 f255bf20 00000008 f15c3bbc c11d6cae 
      00000000 00000000
      [  136.546343] Call Trace:
      [  136.546359]  [<f80c658f>] ? br_change_mtu+0x5f/0x80 [bridge]
      [  136.546372]  [<c12cb9c8>] dev_set_mtu+0x38/0x80
      [  136.546381]  [<c12da347>] do_setlink+0x1a7/0x860
      [  136.546390]  [<c12d9c7d>] ? rtnl_fill_ifinfo+0x9bd/0xc70
      [  136.546400]  [<c11d6cae>] ? nla_parse+0x6e/0xb0
      [  136.546409]  [<c12db931>] rtnl_newlink+0x361/0x510
      [  136.546420]  [<c1023240>] ? vmalloc_sync_all+0x100/0x100
      [  136.546429]  [<c1362762>] ? error_code+0x5a/0x60
      [  136.546438]  [<c12db5d0>] ? rtnl_configure_link+0x80/0x80
      [  136.546446]  [<c12db27a>] rtnetlink_rcv_msg+0xfa/0x210
      [  136.546454]  [<c12db180>] ? __rtnl_unlock+0x20/0x20
      [  136.546463]  [<c12ee0fe>] netlink_rcv_skb+0x8e/0xb0
      [  136.546471]  [<c12daf1c>] rtnetlink_rcv+0x1c/0x30
      [  136.546479]  [<c12edafa>] netlink_unicast+0x23a/0x280
      [  136.546487]  [<c12ede6b>] netlink_sendmsg+0x26b/0x2f0
      [  136.546497]  [<c12bb828>] sock_sendmsg+0xc8/0x100
      [  136.546508]  [<c10adf61>] ? __alloc_pages_nodemask+0xe1/0x750
      [  136.546517]  [<c11d0602>] ? _copy_from_user+0x42/0x60
      [  136.546525]  [<c12c5e4c>] ? verify_iovec+0x4c/0xc0
      [  136.546534]  [<c12bd805>] sys_sendmsg+0x1c5/0x200
      [  136.546542]  [<c10c2150>] ? __do_fault+0x310/0x410
      [  136.546549]  [<c10c2c46>] ? do_wp_page+0x1d6/0x6b0
      [  136.546557]  [<c10c47d1>] ? handle_pte_fault+0xe1/0x720
      [  136.546565]  [<c12bd1af>] ? sys_getsockname+0x7f/0x90
      [  136.546574]  [<c10c4ec1>] ? handle_mm_fault+0xb1/0x180
      [  136.546582]  [<c1023240>] ? vmalloc_sync_all+0x100/0x100
      [  136.546589]  [<c10233b3>] ? do_page_fault+0x173/0x3d0
      [  136.546596]  [<c12bd87b>] ? sys_recvmsg+0x3b/0x60
      [  136.546605]  [<c12bdd83>] sys_socketcall+0x293/0x2d0
      [  136.546614]  [<c13629d0>] sysenter_do_call+0x12/0x26
      [  136.546619] Code:  Bad EIP value.
      [  136.546627] EIP: [<00000000>] 0x0 SS:ESP 0068:f15c3b48
      [  136.546645] CR2: 0000000000000000
      [  136.546652] ---[ end trace 6909b560e78934fa ]---
      Signed-off-by: NAlexander Holler <holler@ahsoftware.de>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6407d74c
    • E
      af_packet: prevent information leak · 13fcb7bd
      Eric Dumazet 提交于
      In 2.6.27, commit 393e52e3 (packet: deliver VLAN TCI to userspace)
      added a small information leak.
      
      Add padding field and make sure its zeroed before copy to user.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Patrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      13fcb7bd
    • D
      irda: iriap: Use seperate lockdep class for irias_objects->hb_spinlock · 79b38915
      David S. Miller 提交于
      The SEQ output functions grab the obj->attrib->hb_spinlock lock of
      sub-objects found in the hash traversal.  These locks are in a different
      realm than the one used for the irias_objects hash table itself.
      
      So put the latter into it's own lockdep class.
      Reported-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      79b38915
    • D
      net: Rework netdev_drivername() to avoid warning. · 3019de12
      David S. Miller 提交于
      This interface uses a temporary buffer, but for no real reason.
      And now can generate warnings like:
      
      net/sched/sch_generic.c: In function dev_watchdog
      net/sched/sch_generic.c:254:10: warning: unused variable drivername
      
      Just return driver->name directly or "".
      Reported-by: NConnor Hansen <cmdkhh@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3019de12
    • M
      net/ipv6: check for mistakenly passed in non-AF_INET6 sockaddrs · 5a079c30
      Marcus Meissner 提交于
      Same check as for IPv4, also do for IPv6.
      
      (If you passed in a IPv4 sockaddr_in here, the sizeof check
       in the line before would have triggered already though.)
      Signed-off-by: NMarcus Meissner <meissner@suse.de>
      Cc: Reinhard Max <max@suse.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5a079c30
    • D
    • J
      Merge branch 'master' of... · c1111471
      John W. Linville 提交于
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into for-davem
      c1111471
  3. 06 6月, 2011 14 次提交
  4. 04 6月, 2011 16 次提交