1. 07 3月, 2013 1 次提交
  2. 26 2月, 2013 14 次提交
    • B
      sfc: Detach net device when stopping queues for reconfiguration · 29c69a48
      Ben Hutchings 提交于
      We must only ever stop TX queues when they are full or the net device
      is not 'ready' so far as the net core, and specifically the watchdog,
      is concerned.  Otherwise, the watchdog may fire *immediately* if no
      packets have been added to the queue in the last 5 seconds.
      
      The device is ready if all the following are true:
      
      (a) It has a qdisc
      (b) It is marked present
      (c) It is running
      (d) The link is reported up
      
      (a) and (c) are normally true, and must not be changed by a driver.
      (d) is under our control, but fake link changes may disturb userland.
      This leaves (b).  We already mark the device absent during reset
      and self-test, but we need to do the same during MTU changes and ring
      reallocation.  We don't need to do this when the device is brought
      down because then (c) is already false.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      29c69a48
    • B
      sfc: Fix efx_rx_buf_offset() in the presence of swiotlb · b590ace0
      Ben Hutchings 提交于
      We assume that the mapping between DMA and virtual addresses is done
      on whole pages, so we can find the page offset of an RX buffer using
      the lower bits of the DMA address.  However, swiotlb maps in units of
      2K, breaking this assumption.
      
      Add an explicit page_offset field to struct efx_rx_buffer.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      b590ace0
    • B
      sfc: Properly sync RX DMA buffer when it is not the last in the page · 3a68f19d
      Ben Hutchings 提交于
      We may currently allocate two RX DMA buffers to a page, and only unmap
      the page when the second is completed.  We do not sync the first RX
      buffer to be completed; this can result in packet loss or corruption
      if the last RX buffer completed in a NAPI poll is the first in a page
      and is not DMA-coherent.  (In the middle of a NAPI poll, we will
      handle the following RX completion and unmap the page *before* looking
      at the content of the first buffer.)
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      3a68f19d
    • M
      usbnet: smsc95xx: rename FEATURE_AUTOSUSPEND · eb970ff0
      Ming Lei 提交于
      The name of FEATURE_AUTOSUSPEND is very misleading and the actual
      meaning is remote wakeup, but a device incapable of remote wakeup
      still can support USB autosuspend under some situations, so rename
      it to avoid misunderstanding.
      
      Cc: Steve Glendinning <steve.glendinning@shawell.net>
      Signed-off-by: NMing Lei <ming.lei@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb970ff0
    • M
      usbnet: smsc95xx: fix broken runtime suspend · 42e21c01
      Ming Lei 提交于
      Commit b2d4b150(smsc95xx: enable dynamic autosuspend) implements
      autosuspend, but breaks current runtime suspend, such as:
      when the interface becomes down, the usb device can't be put into
      runtime suspend any more.
      
      This patch fixes the broken runtime suspend.
      
      Cc: Steve Glendinning <steve.glendinning@shawell.net>
      Signed-off-by: NMing Lei <ming.lei@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      42e21c01
    • M
      usbnet: smsc95xx: fix suspend failure · 76437214
      Ming Lei 提交于
      The three below functions:
      
      	smsc95xx_enter_suspend0()
      	smsc95xx_enter_suspend1()
      	smsc95xx_enter_suspend2()
      
      return > 0 in case of success, so they will cause smsc95xx_suspend()
      to return > 0 and cause suspend failure.
      
      The bug is introduced in commit 3b9f7d(smsc95xx: fix error handling
      in suspend failure case).
      
      Cc: <stable@vger.kernel.org>		[3.8]
      Cc: Steve Glendinning <steve.glendinning@shawell.net>
      Signed-off-by: NMing Lei <ming.lei@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      76437214
    • R
      bgmac: fix indexing of 2nd level loops · 70a737b7
      Rafał Miłecki 提交于
      We were using the same variable for iterating two nested loops.
      Reported-by: NTijs Van Buggenhout <tvb@able.be>
      Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      70a737b7
    • L
      b43: Fix lockdep splat on module unload · 63a02ce1
      Larry Finger 提交于
      On unload, b43 produces a lockdep warning that can be summarized in the
      following way:
      
       ======================================================
       [ INFO: possible circular locking dependency detected ]
       3.8.0-wl+ #117 Not tainted
       -------------------------------------------------------
       modprobe/5557 is trying to acquire lock:
        ((&wl->firmware_load)){+.+.+.}, at: [<ffffffff81062160>] flush_work+0x0/0x2a0
      
       but task is already holding lock:
        (rtnl_mutex){+.+.+.}, at: [<ffffffff813bd7d2>] rtnl_lock+0x12/0x20
      
       which lock already depends on the new lock.
       [ INFO: possible circular locking dependency detected ]
       ======================================================
      
      The full output is available at http://lkml.indiana.edu/hypermail/linux/kernel/1302.3/00060.html.
      To summarize, commit 6b6fa586 added a 'cancel_work_sync(&wl->firmware_load)'
      call in the wrong place.
      
      The fix is to move the cancel_work_sync() call to b43_bcma_remove() and
      b43_ssb_remove(). Thanks to Johannes Berg and Michael Buesch for help in
      diagnosing the log output.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org> [V3.5+]
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      63a02ce1
    • P
      Revert "ip_gre: propogate target device GSO capability to the tunnel device" · 7992ae6d
      Pravin B Shelar 提交于
      This reverts commit eb6b9a8c.
      
      Above commit limits GSO capability of gre device to just TSO, but
      software GRE-GSO is capable of handling all GSO capabilities.
      
      This patch also fixes following panic which reverted commit introduced:-
      
      BUG: unable to handle kernel NULL pointer dereference at 00000000000000a2
      IP: [<ffffffffa0680fd1>] ipgre_tunnel_bind_dev+0x161/0x1f0 [ip_gre]
      PGD 42bc19067 PUD 42bca9067 PMD 0
      Oops: 0000 [#1] SMP
      Pid: 2636, comm: ip Tainted: GF            3.8.0+ #83 Dell Inc. PowerEdge R620/0KCKR5
      RIP: 0010:[<ffffffffa0680fd1>]  [<ffffffffa0680fd1>] ipgre_tunnel_bind_dev+0x161/0x1f0 [ip_gre]
      RSP: 0018:ffff88042bfcb708  EFLAGS: 00010246
      RAX: 00000000000005b6 RBX: ffff88042d2fa000 RCX: 0000000000000044
      RDX: 0000000000000018 RSI: 0000000000000078 RDI: 0000000000000060
      RBP: ffff88042bfcb748 R08: 0000000000000018 R09: 000000000000000c
      R10: 0000000000000020 R11: 000000000101010a R12: ffff88042d2fa800
      R13: 0000000000000000 R14: ffff88042d2fa800 R15: ffff88042cd7f650
      FS:  00007fa784f55700(0000) GS:ffff88043fd20000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00000000000000a2 CR3: 000000042d8b9000 CR4: 00000000000407e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process ip (pid: 2636, threadinfo ffff88042bfca000, task ffff88042d142a80)
      Stack:
       0000000100000000 002f000000000000 0a01010100000000 000000000b010101
       ffff88042d2fa800 ffff88042d2fa000 ffff88042bfcb858 ffff88042f418c00
       ffff88042bfcb798 ffffffffa068199a ffff88042bfcb798 ffff88042d2fa830
      Call Trace:
       [<ffffffffa068199a>] ipgre_newlink+0xca/0x160 [ip_gre]
       [<ffffffff8143b692>] rtnl_newlink+0x532/0x5f0
       [<ffffffff8143b2fc>] ? rtnl_newlink+0x19c/0x5f0
       [<ffffffff81438978>] rtnetlink_rcv_msg+0x2c8/0x340
       [<ffffffff814386b0>] ? rtnetlink_rcv+0x40/0x40
       [<ffffffff814560f9>] netlink_rcv_skb+0xa9/0xd0
       [<ffffffff81438695>] rtnetlink_rcv+0x25/0x40
       [<ffffffff81455ddc>] netlink_unicast+0x1ac/0x230
       [<ffffffff81456a45>] netlink_sendmsg+0x265/0x380
       [<ffffffff814138c0>] sock_sendmsg+0xb0/0xe0
       [<ffffffff8141141e>] ? move_addr_to_kernel+0x4e/0x90
       [<ffffffff81420445>] ? verify_iovec+0x85/0xf0
       [<ffffffff81414ffd>] __sys_sendmsg+0x3fd/0x420
       [<ffffffff8114b701>] ? handle_mm_fault+0x251/0x3b0
       [<ffffffff8114f39f>] ? vma_link+0xcf/0xe0
       [<ffffffff81415239>] sys_sendmsg+0x49/0x90
       [<ffffffff814ffd19>] system_call_fastpath+0x16/0x1b
      
      CC: Dmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NPravin B Shelar <pshelar@nicira.com>
      Acked-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7992ae6d
    • P
      IP_GRE: Fix GRE_CSUM case. · 8f10098f
      Pravin B Shelar 提交于
      commit "ip_gre: allow CSUM capable devices to handle packets"
      aa0e51cd, broke GRE_CSUM case.
      GRE_CSUM needs checksum computed for inner packet. Therefore
      csum-calculation can not be offloaded if tunnel device requires
      GRE_CSUM.  Following patch fixes it by computing inner packet checksum
      for GRE_CSUM type, for all other type of GRE devices csum is offloaded.
      
      CC: Dmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NPravin B Shelar <pshelar@nicira.com>
      Acked-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8f10098f
    • P
      VXLAN: Use tunnel_ip_select_ident() for tunnel IP-Identification. · 8dc98eb2
      Pravin B Shelar 提交于
      tunnel_ip_select_ident() is more efficient when generating ip-header
      id given inner packet is of ipv4 type.
      Signed-off-by: NPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8dc98eb2
    • P
      IP_GRE: Fix IP-Identification. · 490ab081
      Pravin B Shelar 提交于
      GRE-GSO generates ip fragments with id 0,2,3,4... for every
      GSO packet, which is not correct. Following patch fixes it
      by setting ip-header id unique id of fragments are allowed.
      As Eric Dumazet suggested it is optimized by using inner ip-header
      whenever inner packet is ipv4.
      Signed-off-by: NPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      490ab081
    • D
      Merge branch 'wireless' · 2bedc2e6
      David S. Miller 提交于
      John W. Linville says:
      
      ====================
      This is a batch of fixes intended for the 3.9 stream...
      
      Avinash Patil gives us a mwifiex fix to prevent a system freeze when
      that driver is unloaded.
      
      Daniel Drake brings a patch to avoid dropping the carrier flag across a
      suspend.  This prevents improper packet drops.
      
      Wei Yongjun delivers a brcmfmac for a lock leak on an error path.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2bedc2e6
    • J
      Merge branch 'master' of... · 6d6436fb
      John W. Linville 提交于
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
      6d6436fb
  3. 25 2月, 2013 5 次提交
  4. 24 2月, 2013 6 次提交
  5. 23 2月, 2013 9 次提交
  6. 22 2月, 2013 5 次提交