1. 23 1月, 2009 6 次提交
  2. 22 1月, 2009 17 次提交
  3. 21 1月, 2009 5 次提交
  4. 20 1月, 2009 3 次提交
  5. 17 1月, 2009 4 次提交
  6. 16 1月, 2009 1 次提交
  7. 15 1月, 2009 4 次提交
    • O
      can: fix slowpath issue in hrtimer callback function · c53a6ee8
      Oliver Hartkopp 提交于
      Due to the loopback functionality in can_send() we can not invoke it
      from hardirq context which was done inside the
      bcm_tx_timeout_handler() hrtimer callback:
      
      [  700.361154]  [<c012228c>] warn_slowpath+0x80/0xb6
      [  700.361163]  [<c013d559>] valid_state+0x125/0x136
      [  700.361171]  [<c013d858>] mark_lock+0x18e/0x332
      [  700.361180]  [<c013e300>] __lock_acquire+0x12e/0xb1e
      [  700.361189]  [<f8ab5915>] bcm_tx_timeout_handler+0x0/0xbc [can_bcm]
      [  700.361198]  [<c031e20a>] dev_queue_xmit+0x191/0x479
      [  700.361206]  [<c01262a7>] __local_bh_disable+0x2b/0x64
      [  700.361213]  [<c031e20a>] dev_queue_xmit+0x191/0x479
      [  700.361225]  [<f8aa69a1>] can_send+0xd7/0x11a [can]
      [  700.361235]  [<f8ab522b>] bcm_can_tx+0x9d/0xd9 [can_bcm]
      [  700.361245]  [<f8ab597f>] bcm_tx_timeout_handler+0x6a/0xbc [can_bcm]
      [  700.361255]  [<f8ab5915>] bcm_tx_timeout_handler+0x0/0xbc [can_bcm]
      [  700.361263]  [<c0134143>] __run_hrtimer+0x5a/0x86
      [  700.361273]  [<f8ab5915>] bcm_tx_timeout_handler+0x0/0xbc [can_bcm]
      [  700.361282]  [<c0134a50>] hrtimer_interrupt+0xb9/0x110
      
      This patch moves the rest of the functionality from the hrtimer
      callback to the already existing tasklet to fix this slowpath problem.
      Signed-off-by: NOliver Hartkopp <oliver@hartkopp.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c53a6ee8
    • B
      net: Add init_dummy_netdev() and fix EMAC driver using it · 937f1ba5
      Benjamin Herrenschmidt 提交于
      This adds an init_dummy_netdev() function that gets a network device
      structure (allocation and lifetime entirely under caller's control) and
      initialize the minimum amount of fields so it can be used to schedule
      NAPI polls without registering a full blown interface. This is to be
      used by drivers that need to tie several hardware interfaces to a single
      NAPI poll scheduler due to HW limitations.
      
      It also updates the ibm_newemac driver to use that, this fixing the
      oops on 2.6.29 due to passing NULL as "dev" to netif_napi_add()
      
      Symbol is exported GPL only a I don't think we want binary drivers doing
      that sort of acrobatics (if we want them at all).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Tested-by: NGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      937f1ba5
    • H
      gso: Ensure that the packet is long enough · 4e704ee3
      Herbert Xu 提交于
      When we get a GSO packet from an untrusted source, we need to
      ensure that it is sufficiently long so that we don't end up
      crashing.
      
      Based on discovery and patch by Ian Campbell.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Tested-by: NIan Campbell <ian.campbell@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4e704ee3
    • H
      gro: Fix page ref count for skbs freed normally · f5572068
      Herbert Xu 提交于
      When an skb with page frags is merged into an existing one, we
      cannibalise its reference count.  This is OK when the skb is
      reused because we set nr_frags to zero in that case.  However,
      for the case where the skb is freed through kfree_skb, we didn't
      clear nr_frags which causes the page to be freed prematurely.
      
      This is fixed by moving the skb resetting into skb_gro_receive.
      Reported-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f5572068