1. 24 1月, 2014 5 次提交
    • G
      net/cxgb4: Avoid disabling PCI device for towice · 144be3d9
      Gavin Shan 提交于
      If we have EEH error happens to the adapter and we have to remove
      it from the system for some reasons (e.g. more than 5 EEH errors
      detected from the device in last hour), the adapter will be disabled
      for towice separately by eeh_err_detected() and remove_one(), which
      will incur following unexpected backtrace. The patch tries to avoid
      it.
      
      WARNING: at drivers/pci/pci.c:1431
      CPU: 12 PID: 121 Comm: eehd Not tainted 3.13.0-rc7+ #1
      task: c0000001823a3780 ti: c00000018240c000 task.ti: c00000018240c000
      NIP: c0000000003c1e40 LR: c0000000003c1e3c CTR: 0000000001764c5c
      REGS: c00000018240f470 TRAP: 0700   Not tainted  (3.13.0-rc7+)
      MSR: 8000000000029032 <SF,EE,ME,IR,DR,RI>  CR: 28000024  XER: 00000004
      CFAR: c000000000706528 SOFTE: 1
      GPR00: c0000000003c1e3c c00000018240f6f0 c0000000010fe1f8 0000000000000035
      GPR04: 0000000000000000 0000000000000000 00000000003ae509 0000000000000000
      GPR08: 000000000000346f 0000000000000000 0000000000000000 0000000000003fef
      GPR12: 0000000028000022 c00000000ec93000 c0000000000c11b0 c000000184ac3e40
      GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      GPR24: 0000000000000000 c0000000009398d8 c00000000101f9c0 c0000001860ae000
      GPR28: c000000182ba0000 00000000000001f0 c0000001860ae6f8 c0000001860ae000
      NIP [c0000000003c1e40] .pci_disable_device+0xd0/0xf0
      LR [c0000000003c1e3c] .pci_disable_device+0xcc/0xf0
      Call Trace:
      [c0000000003c1e3c] .pci_disable_device+0xcc/0xf0 (unreliable)
      [d0000000073881c4] .remove_one+0x174/0x320 [cxgb4]
      [c0000000003c57e0] .pci_device_remove+0x60/0x100
      [c00000000046396c] .__device_release_driver+0x9c/0x120
      [c000000000463a20] .device_release_driver+0x30/0x60
      [c0000000003bcdb4] .pci_stop_bus_device+0x94/0xd0
      [c0000000003bcf48] .pci_stop_and_remove_bus_device+0x18/0x30
      [c00000000003f548] .pcibios_remove_pci_devices+0xa8/0x140
      [c000000000035c00] .eeh_handle_normal_event+0xa0/0x3c0
      [c000000000035f50] .eeh_handle_event+0x30/0x2b0
      [c0000000000362c4] .eeh_event_handler+0xf4/0x1b0
      [c0000000000c12b8] .kthread+0x108/0x130
      [c00000000000a168] .ret_from_kernel_thread+0x5c/0x74
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      144be3d9
    • M
      drivers: net: cpsw: enable promiscuous mode support · 0cd8f9cc
      Mugunthan V N 提交于
      Enable promiscuous mode support for CPSW.
      Signed-off-by: NMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0cd8f9cc
    • V
      net: Correctly sync addresses from multiple sources to single device · 6ef7b8a2
      Vlad Yasevich 提交于
      When we have multiple devices attempting to sync the same address
      to a single destination, each device should be permitted to sync
      it once.  To accomplish this, pass the 'sync_cnt' of the source
      address when adding the addresss to the lower device.  'sync_cnt'
      tracks how many time a given address has been succefully synced.
      This way, we know that if the 'sync_cnt' passed in is 0, we should
      sync this address.
      
      Also, turn 'synced' member back into the counter as was originally
      done in
         commit 4543fbef.
         net: count hw_addr syncs so that unsync works properly.
      It tracks how many time a given address has been added via a
      'sync' operation.  For every successfull 'sync' the counter is
      incremented, and for ever 'unsync', the counter is decremented.
      This makes sure that the address will be properly removed from
      the the lower device when all the upper devices have removed it.
      Reported-by: NAndrey Dmitrov <andrey.dmitrov@oktetlabs.ru>
      CC: Andrey Dmitrov <andrey.dmitrov@oktetlabs.ru>
      CC: Alexandra N. Kossovsky <Alexandra.Kossovsky@oktetlabs.ru>
      CC: Konstantin Ushakov <Konstantin.Ushakov@oktetlabs.ru>
      Signed-off-by: NVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6ef7b8a2
    • S
      net/udp_offload: Handle static checker complaints · a1d0cd8e
      Shlomo Pongratz 提交于
      Fixed few issues around using __rcu prefix and rcu_assign_pointer, also
      fixed a warning print to use ntohs(port) and not htons(port).
      
      net/ipv4/udp_offload.c:112:9: error: incompatible types in comparison expression (different address spaces)
      net/ipv4/udp_offload.c:113:9: error: incompatible types in comparison expression (different address spaces)
      net/ipv4/udp_offload.c:176:19: error: incompatible types in comparison expression (different address spaces)
      Signed-off-by: NShlomo Pongratz <shlomop@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a1d0cd8e
    • C
      tcp: metrics: Handle v6/v4-mapped sockets in tcp-metrics · 3ad88cf7
      Christoph Paasch 提交于
      A socket may be v6/v4-mapped. In that case sk->sk_family is AF_INET6,
      but the IP being used is actually an IPv4-address.
      Current's tcp-metrics will thus represent it as an IPv6-address:
      
      root@server:~# ip tcp_metrics
      ::ffff:10.1.1.2 age 22.920sec rtt 18750us rttvar 15000us cwnd 10
      10.1.1.2 age 47.970sec rtt 16250us rttvar 10000us cwnd 10
      
      This patch modifies the tcp-metrics so that they are able to handle the
      v6/v4-mapped sockets correctly.
      Signed-off-by: NChristoph Paasch <christoph.paasch@uclouvain.be>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ad88cf7
  2. 23 1月, 2014 35 次提交