1. 07 Oct, 2012 24 commits
    • Eric Dumazet's avatar
      net: gro: fix a potential crash in skb_gro_reset_offset · ca07e43e
      Eric Dumazet authored
      Before accessing skb first fragment, better make sure there
      is one.
      
      This is probably not needed for old kernels, since an ethernet frame
      cannot contain only an ethernet header, but the recent GRO addition
      to tunnels makes this patch needed.
      
      Also skb_gro_reset_offset() can be static, it actually allows
      compiler to inline it.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca07e43e
    • Eric Dumazet's avatar
      ipv6: GRO should be ECN friendly · 51ec0403
      Eric Dumazet authored
      IPv4 side of the problem was addressed in commit a9e050f4
      (net: tcp: GRO should be ECN friendly)
      
      This patch does the same, but for IPv6 : A Traffic Class mismatch
      doesnt mean flows are different, but instead should force a flush
      of previous packets.
      
      This patch removes artificial packet reordering problem.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      51ec0403
    • ramesh.nagappa@gmail.com's avatar
      net: Fix skb_under_panic oops in neigh_resolve_output · e1f16503
      ramesh.nagappa@gmail.com authored
      The retry loop in neigh_resolve_output() and neigh_connected_output()
      call dev_hard_header() with out reseting the skb to network_header.
      This causes the retry to fail with skb_under_panic. The fix is to
      reset the network_header within the retry loop.
      Signed-off-by: default avatarRamesh Nagappa <ramesh.nagappa@ericsson.com>
      Reviewed-by: default avatarShawn Lu <shawn.lu@ericsson.com>
      Reviewed-by: default avatarRobert Coulson <robert.coulson@ericsson.com>
      Reviewed-by: default avatarBillie Alsup <billie.alsup@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e1f16503
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/marvell/sky2.c: fix error return code · 0bd8ba18
      Peter Senna Tschudin authored
      The function sky2_probe() return 0 for success and negative value
      for most of its internal tests failures. There are two exceptions
      that are error cases going to err_out*:. For this two cases, the
      function abort its success execution path, but returns non negative
      value, making it dificult for a caller function to notice the error.
      
      This patch fixes the error cases that do not return negative values.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0bd8ba18
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/marvell/skge.c: fix error return code · bbcf61fb
      Peter Senna Tschudin authored
      The function skge_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_out_led_off:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbcf61fb
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/sun/sungem.c: fix error return code · 4df12834
      Peter Senna Tschudin authored
      The function gem_init_one() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_out_free_consistent:. For this error
      case, the function abort its success execution path, but returns non
      negative value, making it difficult for a caller function to notice
      the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4df12834
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/sun/niu.c: fix error return code · 8c65ef4b
      Peter Senna Tschudin authored
      The function niu_pci_init_one() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_out_free_res:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8c65ef4b
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/renesas/sh_eth.c: fix error return code · 043c4789
      Peter Senna Tschudin authored
      The function sh_eth_drv_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to out_release:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      043c4789
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/natsemi/xtsonic.c: fix error return code · 97db4b9d
      Peter Senna Tschudin authored
      The function sonic_probe1() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to out:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      97db4b9d
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/amd/au1000_eth.c: fix error return code · 69129920
      Peter Senna Tschudin authored
      The function au1000_probe() return 0 for success and negative value
      for most of its internal tests failures. There are exceptions
      that are error cases going to err_out:. For this cases, the
      function abort its success execution path, but returns non negative
      value, making it dificult for a caller function to notice the error.
      
      This patch fixes the error cases that do not return negative values.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      69129920
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/amd/amd8111e.c: fix error return code · 86e506e3
      Peter Senna Tschudin authored
      The function amd8111e_probe_one() return 0 for success and negative
      value for most of its internal tests failures. There are two exceptions
      that are error cases going to err_free_reg:. For this two cases, the
      function abort its success execution path, but returns non negative
      value, making it dificult for a caller function to notice the error.
      
      This patch fixes the error cases that do not return negative values.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86e506e3
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c: fix error return code · 2dfc9671
      Peter Senna Tschudin authored
      The function qlcnic_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_out_free_netdev:. For this error case,
      the function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2dfc9671
    • Peter Senna Tschudin's avatar
      drivers/net/irda/sh_sir.c: fix error return code · 14834540
      Peter Senna Tschudin authored
      The function sh_sir_probe() return 0 for success and negative value
      for most of its internal tests failures. There are two exceptions
      that are error cases going to err_mem_*:. For this two cases, the
      function abort its success execution path, but returns non negative
      value, making it dificult for a caller function to notice the error.
      
      This patch fixes the error cases that do not return negative values.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      14834540
    • Peter Senna Tschudin's avatar
      drivers/net/irda/sh_irda.c: fix error return code · 812b074b
      Peter Senna Tschudin authored
      The function sh_irda_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_mem_4:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      812b074b
    • Peter Senna Tschudin's avatar
      drivers/net/irda/sa1100_ir.c: fix error return code · cd9d1160
      Peter Senna Tschudin authored
      The function sa1100_irda_probe() return 0 for success and negative
      value for most of its internal tests failures. There is one exception
      that is error case going to err_mem_4:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd9d1160
    • Peter Senna Tschudin's avatar
      drivers/net/irda/pxaficp_ir.c: fix error return code · cbd841ca
      Peter Senna Tschudin authored
      The function pxa_irda_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_mem_3:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cbd841ca
    • Peter Senna Tschudin's avatar
      drivers/net/irda/mcs7780.c: fix error return code · 6734011f
      Peter Senna Tschudin authored
      The function mcs_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to error2:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6734011f
    • Peter Senna Tschudin's avatar
      drivers/net/irda/irtty-sir.c: fix error return code · 87286477
      Peter Senna Tschudin authored
      The function irtty_open() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to out_put:. For this error case, the
      function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      87286477
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/sis/sis900.c: fix error return code · 0968a9d1
      Peter Senna Tschudin authored
      The function sis900_probe() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_out_cleardev:. Fore this error case,
      the function abort its success execution path, but returns non negative
      value, making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0968a9d1
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/natsemi/natsemi.c: fix error return code · 52428d91
      Peter Senna Tschudin authored
      The function natsemi_probe1() return 0 for success and negative value
      for most of its internal tests failures. There is one exception
      that is error case going to err_create_file:. Fore this error case the
      function abort its success execution path, but returns non negative value,
      making it difficult for a caller function to notice the error.
      
      This patch fixes the error case that do not return negative value.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Acked-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52428d91
    • Peter Senna Tschudin's avatar
      drivers/net/ethernet/dec/tulip/dmfe.c: fix error return code · 5b896029
      Peter Senna Tschudin authored
      The function dmfe_init_one() return 0 for success and negative value
      for most of its internal tests failures. There are three exceptions
      that are error cases going to err_out_*:. Fore this three cases the
      function abort its success execution path, but returns non negative
      value, making it dificult for a caller function to notice the error.
      
      This patch fixes the error cases that do not return negative values.
      
      This was found by Coccinelle, but the code change was made by hand.
      This patch is not robot generated.
      
      A simplified version of the semantic match that finds this problem is
      as follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      (
      if@p1 (\(ret < 0\|ret != 0\))
       { ... return ret; }
      |
      ret@p1 = 0
      )
      ... when != ret = e1
          when != &ret
      *if(...)
      {
        ... when != ret = e2
            when forall
       return ret;
      }
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b896029
    • Eric Dumazet's avatar
      net: remove skb recycling · acb600de
      Eric Dumazet authored
      Over time, skb recycling infrastructure got litle interest and
      many bugs. Generic rx path skb allocation is now using page
      fragments for efficient GRO / TCP coalescing, and recyling
      a tx skb for rx path is not worth the pain.
      
      Last identified bug is that fat skbs can be recycled
      and it can endup using high order pages after few iterations.
      
      With help from Maxime Bizon, who pointed out that commit
      87151b86 (net: allow pskb_expand_head() to get maximum tailroom)
      introduced this regression for recycled skbs.
      
      Instead of fixing this bug, lets remove skb recycling.
      
      Drivers wanting really hot skbs should use build_skb() anyway,
      to allocate/populate sk_buff right before netif_receive_skb()
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Maxime Bizon <mbizon@freebox.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      acb600de
    • Gao feng's avatar
      infiniband: pass rdma_cm module to netlink_dump_start · 809d5fc9
      Gao feng authored
      set netlink_dump_control.module to avoid panic.
      Signed-off-by: default avatarGao feng <gaofeng@cn.fujitsu.com>
      Cc: Roland Dreier <roland@kernel.org>
      Cc: Sean Hefty <sean.hefty@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      809d5fc9
    • Gao feng's avatar
      netlink: add reference of module in netlink_dump_start · 6dc878a8
      Gao feng authored
      I get a panic when I use ss -a and rmmod inet_diag at the
      same time.
      
      It's because netlink_dump uses inet_diag_dump which belongs to module
      inet_diag.
      
      I search the codes and find many modules have the same problem.  We
      need to add a reference to the module which the cb->dump belongs to.
      
      Thanks for all help from Stephen,Jan,Eric,Steffen and Pablo.
      
      Change From v3:
      change netlink_dump_start to inline,suggestion from Pablo and
      Eric.
      
      Change From v2:
      delete netlink_dump_done,and call module_put in netlink_dump
      and netlink_sock_destruct.
      Signed-off-by: default avatarGao feng <gaofeng@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6dc878a8
  2. 06 Oct, 2012 3 commits
    • Linus Torvalds's avatar
      Merge branch 'uapi-prep' of git://git.infradead.org/users/dhowells/linux-headers · ed5062dd
      Linus Torvalds authored
      Pull UAPI disintegration fixes from David Howells:
       "There are three main parts:
      
       (1) I found I needed some more fixups in the wake of testing Arm64
           (some asm/unistd.h files had weird guards that caused problems -
           mostly in arches for which I don't have a compiler) and some
           __KERNEL__ splitting needed to take place in Arm64.
      
       (2) I found that c6x was missing some __KERNEL__ guards in its
           asm/signal.h.  Mark Salter pointed me at a tree with a patch to
           remove that file entirely and use the asm-generic variant instead.
      
       (3) Lastly, m68k turned out to have a header installation problem due
           to it lacking a kvm_para.h file.
      
           The conditional installation bits for linux/kvm_para.h, linux/kvm.h
           and linux/a.out.h weren't very well specified - and didn't work if
           an arch didn't have the asm/ version of that file, but there *was*
           an asm-generic/ version.
      
           It seems the "ifneq $((wildcard ...),)" for each of those three
           headers in include/kernel/Kbuild is invoked twice during header
           installation, and the second time it matches on the just installed
           asm-generic/kvm_para.h file and thus incorrectly installs
           linux/kvm_para.h as well.
      
           Most arches actually have an asm/kvm_para.h, so this wasn't
           detectable in those."
      
      * 'uapi-prep' of git://git.infradead.org/users/dhowells/linux-headers:
        UAPI: Fix conditional header installation handling (notably kvm_para.h on m68k)
        c6x: remove c6x signal.h
        UAPI: Split compound conditionals containing __KERNEL__ in Arm64
        UAPI: Fix the guards on various asm/unistd.h files
        c6x: make dsk6455 the default config
      ed5062dd
    • Linus Torvalds's avatar
      Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux · 125b79d7
      Linus Torvalds authored
      Pull SLAB changes from Pekka Enberg:
       "New and noteworthy:
      
        * More SLAB allocator unification patches from Christoph Lameter and
          others.  This paves the way for slab memcg patches that hopefully
          will land in v3.8.
      
        * SLAB tracing improvements from Ezequiel Garcia.
      
        * Kernel tainting upon SLAB corruption from Dave Jones.
      
        * Miscellanous SLAB allocator bug fixes and improvements from various
          people."
      
      * 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux: (43 commits)
        slab: Fix build failure in __kmem_cache_create()
        slub: init_kmem_cache_cpus() and put_cpu_partial() can be static
        mm/slab: Fix kmem_cache_alloc_node_trace() declaration
        Revert "mm/slab: Fix kmem_cache_alloc_node_trace() declaration"
        mm, slob: fix build breakage in __kmalloc_node_track_caller
        mm/slab: Fix kmem_cache_alloc_node_trace() declaration
        mm/slab: Fix typo _RET_IP -> _RET_IP_
        mm, slub: Rename slab_alloc() -> slab_alloc_node() to match SLAB
        mm, slab: Rename __cache_alloc() -> slab_alloc()
        mm, slab: Match SLAB and SLUB kmem_cache_alloc_xxx_trace() prototype
        mm, slab: Replace 'caller' type, void* -> unsigned long
        mm, slob: Add support for kmalloc_track_caller()
        mm, slab: Remove silly function slab_buffer_size()
        mm, slob: Use NUMA_NO_NODE instead of -1
        mm, sl[au]b: Taint kernel when we detect a corrupted slab
        slab: Only define slab_error for DEBUG
        slab: fix the DEADLOCK issue on l3 alien lock
        slub: Zero initial memory segment for kmem_cache and kmem_cache_node
        Revert "mm/sl[aou]b: Move sysfs_slab_add to common"
        mm/sl[aou]b: Move kmem_cache refcounting to common code
        ...
      125b79d7
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.7-arm-tag' of... · f1c6872e
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.7-arm-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull ADM Xen support from Konrad Rzeszutek Wilk:
      
        Features:
         * Allow a Linux guest to boot as initial domain and as normal guests
           on Xen on ARM (specifically ARMv7 with virtualized extensions).  PV
           console, block and network frontend/backends are working.
        Bug-fixes:
         * Fix compile linux-next fallout.
         * Fix PVHVM bootup crashing.
      
        The Xen-unstable hypervisor (so will be 4.3 in a ~6 months), supports
        ARMv7 platforms.
      
        The goal in implementing this architecture is to exploit the hardware
        as much as possible.  That means use as little as possible of PV
        operations (so no PV MMU) - and use existing PV drivers for I/Os
        (network, block, console, etc).  This is similar to how PVHVM guests
        operate in X86 platform nowadays - except that on ARM there is no need
        for QEMU.  The end result is that we share a lot of the generic Xen
        drivers and infrastructure.
      
        Details on how to compile/boot/etc are available at this Wiki:
      
          http://wiki.xen.org/wiki/Xen_ARMv7_with_Virtualization_Extensions
      
        and this blog has links to a technical discussion/presentations on the
        overall architecture:
      
          http://blog.xen.org/index.php/2012/09/21/xensummit-sessions-new-pvh-virtualisation-mode-for-arm-cortex-a15arm-servers-and-x86/
      
      * tag 'stable/for-linus-3.7-arm-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (21 commits)
        xen/xen_initial_domain: check that xen_start_info is initialized
        xen: mark xen_init_IRQ __init
        xen/Makefile: fix dom-y build
        arm: introduce a DTS for Xen unprivileged virtual machines
        MAINTAINERS: add myself as Xen ARM maintainer
        xen/arm: compile netback
        xen/arm: compile blkfront and blkback
        xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree
        xen/arm: receive Xen events on ARM
        xen/arm: initialize grant_table on ARM
        xen/arm: get privilege status
        xen/arm: introduce CONFIG_XEN on ARM
        xen: do not compile manage, balloon, pci, acpi, pcpu and cpu_hotplug on ARM
        xen/arm: Introduce xen_ulong_t for unsigned long
        xen/arm: Xen detection and shared_info page mapping
        docs: Xen ARM DT bindings
        xen/arm: empty implementation of grant_table arch specific functions
        xen/arm: sync_bitops
        xen/arm: page.h definitions
        xen/arm: hypercalls
        ...
      f1c6872e
  3. 05 Oct, 2012 13 commits
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 5f3d2f2e
      Linus Torvalds authored
      Pull powerpc updates from Benjamin Herrenschmidt:
       "Some highlights in addition to the usual batch of fixes:
      
         - 64TB address space support for 64-bit processes by Aneesh Kumar
      
         - Gavin Shan did a major cleanup & re-organization of our EEH support
           code (IBM fancy PCI error handling & recovery infrastructure) which
           paves the way for supporting different platform backends, along
           with some rework of the PCIe code for the PowerNV platform in order
           to remove home made resource allocations and instead use the
           generic code (which is possible after some small improvements to it
           done by Gavin).
      
         - Uprobes support by Ananth N Mavinakayanahalli
      
         - A pile of embedded updates from Freescale folks, including new SoC
           and board supports, more KVM stuff including preparing for 64-bit
           BookE KVM support, ePAPR 1.1 updates, etc..."
      
      Fixup trivial conflicts in drivers/scsi/ipr.c
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (146 commits)
        powerpc/iommu: Fix multiple issues with IOMMU pools code
        powerpc: Fix VMX fix for memcpy case
        driver/mtd:IFC NAND:Initialise internal SRAM before any write
        powerpc/fsl-pci: use 'Header Type' to identify PCIE mode
        powerpc/eeh: Don't release eeh_mutex in eeh_phb_pe_get
        powerpc: Remove tlb batching hack for nighthawk
        powerpc: Set paca->data_offset = 0 for boot cpu
        powerpc/perf: Sample only if SIAR-Valid bit is set in P7+
        powerpc/fsl-pci: fix warning when CONFIG_SWIOTLB is disabled
        powerpc/mpc85xx: Update interrupt handling for IFC controller
        powerpc/85xx: Enable USB support in p1023rds_defconfig
        powerpc/smp: Do not disable IPI interrupts during suspend
        powerpc/eeh: Fix crash on converting OF node to edev
        powerpc/eeh: Lock module while handling EEH event
        powerpc/kprobe: Don't emulate store when kprobe stwu r1
        powerpc/kprobe: Complete kprobe and migrate exception frame
        powerpc/kprobe: Introduce a new thread flag
        powerpc: Remove unused __get_user64() and __put_user64()
        powerpc/eeh: Global mutex to protect PE tree
        powerpc/eeh: Remove EEH PE for normal PCI hotplug
        ...
      5f3d2f2e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 283dbd82
      Linus Torvalds authored
      Pull networking changes from David Miller:
       "The most important bit in here is the fix for input route caching from
        Eric Dumazet, it's a shame we couldn't fully analyze this in time for
        3.6 as it's a 3.6 regression introduced by the routing cache removal.
      
        Anyways, will send quickly to -stable after you pull this in.
      
        Other changes of note:
      
         1) Fix lockdep splats in team and bonding, from Eric Dumazet.
      
         2) IPV6 adds link local route even when there is no link local
            address, from Nicolas Dichtel.
      
         3) Fix ixgbe PTP implementation, from Jacob Keller.
      
         4) Fix excessive stack usage in cxgb4 driver, from Vipul Pandya.
      
         5) MAC length computed improperly in VLAN demux, from Antonio
            Quartulli."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
        ipv6: release reference of ip6_null_entry's dst entry in __ip6_del_rt
        Remove noisy printks from llcp_sock_connect
        tipc: prevent dropped connections due to rcvbuf overflow
        silence some noisy printks in irda
        team: set qdisc_tx_busylock to avoid LOCKDEP splat
        bonding: set qdisc_tx_busylock to avoid LOCKDEP splat
        sctp: check src addr when processing SACK to update transport state
        sctp: fix a typo in prototype of __sctp_rcv_lookup()
        ipv4: add a fib_type to fib_info
        can: mpc5xxx_can: fix section type conflict
        can: peak_pcmcia: fix error return code
        can: peak_pci: fix error return code
        cxgb4: Fix build error due to missing linux/vmalloc.h include.
        bnx2x: fix ring size for 10G functions
        cxgb4: Dynamically allocate memory in t4_memory_rw() and get_vpd_params()
        ixgbe: add support for X540-AT1
        ixgbe: fix poll loop for FDIRCTRL.INIT_DONE bit
        ixgbe: fix PTP ethtool timestamping function
        ixgbe: (PTP) Fix PPS interrupt code
        ixgbe: Fix PTP X540 SDP alignment code for PPS signal
        ...
      283dbd82
    • Linus Torvalds's avatar
      Merge branch 'akpm' (Andrew's patch-bomb) · 11126c61
      Linus Torvalds authored
      Merge misc patches from Andrew Morton:
       "The MM tree is rather stuck while I wait to find out what the heck is
        happening with sched/numa.  Probably I'll need to route around all the
        code which was added to -next, sigh.
      
        So this is "everything else", or at least most of it - other small
        bits are still awaiting resolutions of various kinds."
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (180 commits)
        lib/decompress.c add __init to decompress_method and data
        kernel/resource.c: fix stack overflow in __reserve_region_with_split()
        omfs: convert to use beXX_add_cpu()
        taskstats: cgroupstats_user_cmd() may leak on error
        aoe: update aoe-internal version number to 50
        aoe: update documentation to better reflect aoe-plus-udev usage
        aoe: remove unused code
        aoe: make dynamic block minor numbers the default
        aoe: update and specify AoE address guards and error messages
        aoe: retain static block device numbers for backwards compatibility
        aoe: support more AoE addresses with dynamic block device minor numbers
        aoe: update documentation with new URL and VM settings reference
        aoe: update copyright year in touched files
        aoe: update internal version number to 49
        aoe: remove unused code and add cosmetic improvements
        aoe: increase net_device reference count while using it
        aoe: associate frames with the AoE storage target
        aoe: disallow unsupported AoE minor addresses
        aoe: do revalidation steps in order
        aoe: failover remote interface based on aoe_deadsecs parameter
        ...
      11126c61
    • Hein Tibosch's avatar
      lib/decompress.c add __init to decompress_method and data · 33e2a422
      Hein Tibosch authored
      Fix the warning:
      
        WARNING: vmlinux.o(.text+0x14cfd8): Section mismatch in reference from the variable compressed_formats to the function .init.text:gunzip()
        The function compressed_formats() references
        the function __init gunzip().
        etc..
      
      Within decompress.c, compressed_formats[] needs 'a __initdata annotation',
      because some of it's data members refer to functions which will be
      unloaded after init.
      
      Consequently, its user decompress_method() will get the __init prefix.
      Signed-off-by: default avatarHein Tibosch <hein_tibosch@yahoo.es>
      Cc: Albin Tonnerre <albin.tonnerre@free-electrons.com>
      Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      33e2a422
    • T Makphaibulchoke's avatar
      kernel/resource.c: fix stack overflow in __reserve_region_with_split() · 4965f566
      T Makphaibulchoke authored
      Using a recursive call add a non-conflicting region in
      __reserve_region_with_split() could result in a stack overflow in the case
      that the recursive calls are too deep.  Convert the recursive calls to an
      iterative loop to avoid the problem.
      
      Tested on a machine containing 135 regions.  The kernel no longer panicked
      with stack overflow.
      
      Also tested with code arbitrarily adding regions with no conflict,
      embedding two consecutive conflicts and embedding two non-consecutive
      conflicts.
      Signed-off-by: default avatarT Makphaibulchoke <tmac@hp.com>
      Reviewed-by: default avatarRam Pai <linuxram@us.ibm.com>
      Cc: Paul Gortmaker <paul.gortmaker@gmail.com>
      Cc: Wei Yang <weiyang@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4965f566
    • Wei Yongjun's avatar
      omfs: convert to use beXX_add_cpu() · c99b6841
      Wei Yongjun authored
      Convert cpu_to_beXX(beXX_to_cpu(E1) + E2) to use beXX_add_cpu().
      
      dpatch engine is used to auto generate this patch.
      (https://github.com/weiyj/dpatch)
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Acked-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c99b6841
    • Jesper Juhl's avatar
      taskstats: cgroupstats_user_cmd() may leak on error · 0324b5a4
      Jesper Juhl authored
      If prepare_reply() succeeds we have allocated memory for 'rep_skb'.  If
      nla_reserve() then subsequently fails and returns NULL we fail to release
      the memory we allocated, thus causing a leak.
      Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0324b5a4
    • Ed Cashin's avatar
    • Ed Cashin's avatar
    • Ed Cashin's avatar
      aoe: remove unused code · 1ac9e602
      Ed Cashin authored
      Signed-off-by: default avatarEd Cashin <ecashin@coraid.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1ac9e602
    • Ed Cashin's avatar
      aoe: make dynamic block minor numbers the default · 08b60623
      Ed Cashin authored
      Because udev use is so widespread, making the old static mapping the
      default is too conservative, given the severe limitations it places on
      usable AoE addresses.  Storage virtualization and larger shelves have made
      the old limitations too confining.
      
      These changes make the dynamic block device minor numbers the default,
      removing the limitations on usable AoE addresses.
      
      The static arrangement is still available with aoe_dyndevs=0, and the
      aoe-stat tool from the userland aoetools package, the user space
      counterpart to the aoe driver, recognizes the case where there is a
      mismatch between the minor number in sysfs and the minor number in a
      special device file.
      Signed-off-by: default avatarEd Cashin <ecashin@coraid.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      08b60623
    • Ed Cashin's avatar
      aoe: update and specify AoE address guards and error messages · 7159e969
      Ed Cashin authored
      In general, specific is better when it comes to messages about AoE usage
      problems.  Also, explicit checks for the AoE broadcast addresses are
      added.
      Signed-off-by: default avatarEd Cashin <ecashin@coraid.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7159e969
    • Ed Cashin's avatar
      aoe: retain static block device numbers for backwards compatibility · 4bcce1a3
      Ed Cashin authored
      The old mapping between AoE target shelf and slot addresses and the block
      device minor number is retained as a backwards-compatible feature, with a
      new "aoe_dyndevs" module parameter available for enabling dynamic block
      device minor numbers.
      Signed-off-by: default avatarEd Cashin <ecashin@coraid.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4bcce1a3