1. 20 12月, 2012 11 次提交
  2. 19 12月, 2012 3 次提交
  3. 18 12月, 2012 9 次提交
  4. 17 12月, 2012 1 次提交
    • S
      ipv6: Fix Makefile offload objects · df484191
      Simon Arlott 提交于
      The following commit breaks IPv6 TCP transmission for me:
      	Commit 75fe83c3
      	Author: Vlad Yasevich <vyasevic@redhat.com>
      	Date:   Fri Nov 16 09:41:21 2012 +0000
      	ipv6: Preserve ipv6 functionality needed by NET
      
      This patch fixes the typo "ipv6_offload" which should be
      "ipv6-offload".
      
      I don't know why not including the offload modules should
      break TCP. Disabling all offload options on the NIC didn't
      help. Outgoing pulseaudio traffic kept stalling.
      Signed-off-by: NSimon Arlott <simon@fire.lp0.eu>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      df484191
  5. 16 12月, 2012 6 次提交
  6. 15 12月, 2012 9 次提交
    • T
      cpts: Fix build error caused by include of plat/clock.h · e133b539
      Tony Lindgren 提交于
      Commit 87c0e764 (cpts: introduce time stamping code and a PTP hardware clock)
      mistakenly included plat/clock.h that should not be included by drivers
      even if it exists.
      
      Otherwise we get the following error with at least omap2plus_defconfig:
      
      drivers/net/ethernet/ti/cpts.c:30:24: error: plat/clock.h: No such file or directory
      
      Signed-off-by: Tony Lindgren <tony@atomide.com
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e133b539
    • C
      inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and dccp_v4/6_request_recv_sock · e337e24d
      Christoph Paasch 提交于
      If in either of the above functions inet_csk_route_child_sock() or
      __inet_inherit_port() fails, the newsk will not be freed:
      
      unreferenced object 0xffff88022e8a92c0 (size 1592):
        comm "softirq", pid 0, jiffies 4294946244 (age 726.160s)
        hex dump (first 32 bytes):
          0a 01 01 01 0a 01 01 02 00 00 00 00 a7 cc 16 00  ................
          02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
          [<ffffffff8153d190>] kmemleak_alloc+0x21/0x3e
          [<ffffffff810ab3e7>] kmem_cache_alloc+0xb5/0xc5
          [<ffffffff8149b65b>] sk_prot_alloc.isra.53+0x2b/0xcd
          [<ffffffff8149b784>] sk_clone_lock+0x16/0x21e
          [<ffffffff814d711a>] inet_csk_clone_lock+0x10/0x7b
          [<ffffffff814ebbc3>] tcp_create_openreq_child+0x21/0x481
          [<ffffffff814e8fa5>] tcp_v4_syn_recv_sock+0x3a/0x23b
          [<ffffffff814ec5ba>] tcp_check_req+0x29f/0x416
          [<ffffffff814e8e10>] tcp_v4_do_rcv+0x161/0x2bc
          [<ffffffff814eb917>] tcp_v4_rcv+0x6c9/0x701
          [<ffffffff814cea9f>] ip_local_deliver_finish+0x70/0xc4
          [<ffffffff814cec20>] ip_local_deliver+0x4e/0x7f
          [<ffffffff814ce9f8>] ip_rcv_finish+0x1fc/0x233
          [<ffffffff814cee68>] ip_rcv+0x217/0x267
          [<ffffffff814a7bbe>] __netif_receive_skb+0x49e/0x553
          [<ffffffff814a7cc3>] netif_receive_skb+0x50/0x82
      
      This happens, because sk_clone_lock initializes sk_refcnt to 2, and thus
      a single sock_put() is not enough to free the memory. Additionally, things
      like xfrm, memcg, cookie_values,... may have been initialized.
      We have to free them properly.
      
      This is fixed by forcing a call to tcp_done(), ending up in
      inet_csk_destroy_sock, doing the final sock_put(). tcp_done() is necessary,
      because it ends up doing all the cleanup on xfrm, memcg, cookie_values,
      xfrm,...
      
      Before calling tcp_done, we have to set the socket to SOCK_DEAD, to
      force it entering inet_csk_destroy_sock. To avoid the warning in
      inet_csk_destroy_sock, inet_num has to be set to 0.
      As inet_csk_destroy_sock does a dec on orphan_count, we first have to
      increase it.
      
      Calling tcp_done() allows us to remove the calls to
      tcp_clear_xmit_timer() and tcp_cleanup_congestion_control().
      
      A similar approach is taken for dccp by calling dccp_done().
      
      This is in the kernel since 093d2823 (tproxy: fix hash locking issue
      when using port redirection in __inet_inherit_port()), thus since
      version >= 2.6.37.
      Signed-off-by: NChristoph Paasch <christoph.paasch@uclouvain.be>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e337e24d
    • D
      ipv6: Change skb->data before using icmpv6_notify() to propagate redirect · 093d04d4
      Duan Jiong 提交于
      In function ndisc_redirect_rcv(), the skb->data points to the transport
      header, but function icmpv6_notify() need the skb->data points to the
      inner IP packet. So before using icmpv6_notify() to propagate redirect,
      change skb->data to point the inner IP packet that triggered the sending
      of the Redirect, and introduce struct rd_msg to make it easy.
      Signed-off-by: NDuan Jiong <djduanjiong@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      093d04d4
    • K
      mac802154: fix destructon ordering for ieee802154 devices · 1e9f9545
      Konstantin Khlebnikov 提交于
      mutex_destroy() must be called before wpan_phy_free(), because it puts the last
      reference and frees memory. Catched as overwritten poison in kmalloc-2048.
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
      Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: linux-zigbee-devel@lists.sourceforge.net
      Cc: netdev@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1e9f9545
    • K
      bonding: do not cancel works in bond_uninit() · cfb6f99d
      Konstantin Khlebnikov 提交于
      Bonding initializes these works in bond_open() and cancels in bond_close(),
      thus in bond_uninit() they are already canceled but may be unitialized yet.
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Nikolay Aleksandrov <nikolay@redhat.com>
      Cc: Jay Vosburgh <fubar@us.ibm.com>
      Cc: Andy Gospodarek <andy@greyhouse.net>
      Cc: netdev@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cfb6f99d
    • K
      stmmac: fix platform driver unregistering · 493682b8
      Konstantin Khlebnikov 提交于
      This patch fixes platform device drivers unregistering and adds proper error
      handing on module loading.
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: netdev@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      493682b8
    • K
      mISDN: fix race in timer canceling on module unloading · 4a0ae7b0
      Konstantin Khlebnikov 提交于
      Using timer_pending() without additional syncronization is racy,
      del_timer_sync() must be used here for waiting in-flight handler.
      Bug caught with help from "debug-objects" during random insmod/rmmod.
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev <netdev@vger.kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4a0ae7b0
    • J
      tuntap: fix ambigious multiqueue API · 4008e97f
      Jason Wang 提交于
      The current multiqueue API is ambigious which may confuse both user and LSM to
      do things correctly:
      
      - Both TUNSETIFF and TUNSETQUEUE could be used to create the queues of a tuntap
        device.
      - TUNSETQUEUE were used to disable and enable a specific queue of the
        device. But since the state of tuntap were completely removed from the queue,
        it could be used to attach to another device (there's no such kind of
        requirement currently, and it needs new kind of LSM policy.
      - TUNSETQUEUE could be used to attach to a persistent device without any
        queues. This kind of attching bypass the necessary checking during TUNSETIFF
        and may lead unexpected result.
      
      So this patch tries to make a cleaner and simpler API by:
      
      - Only allow TUNSETIFF to create queues.
      - TUNSETQUEUE could be only used to disable and enabled the queues of a device,
        and the state of the tuntap device were not detachd from the queues when it
        was disabled, so TUNSETQUEUE could be only used after TUNSETIFF and with the
         same device.
      
      This is done by introducing a list which keeps track of all queues which were
      disabled. The queue would be moved between this list and tfiles[] array when it
      was enabled/disabled. A pointer of the tun_struct were also introdued to track
      the device it belongs to when it was disabled.
      
      After the change, the isolation between management and application could be done
      through: TUNSETIFF were only called by management software and TUNSETQUEUE were
      only called by application.For LSM/SELinux, the things left is to do proper
      check during tun_set_queue() if needed.
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4008e97f
    • A
      bridge: remove temporary variable for MLDv2 maximum response code computation · 8fa45a70
      Ang Way Chuang 提交于
      As suggested by Stephen Hemminger, this remove the temporary variable
      introduced in commit eca2a43b
      ("bridge: fix icmpv6 endian bug and other sparse warnings")
      Signed-off-by: NAng Way Chuang <wcang@sfc.wide.ad.jp>
      Acked-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8fa45a70
  7. 14 12月, 2012 1 次提交