1. 02 6月, 2009 1 次提交
    • N
      e1000: add missing length check to e1000 receive routine · ea30e119
      Neil Horman 提交于
      	Patch to fix bad length checking in e1000.  E1000 by default does two
      things:
      
      1) Spans rx descriptors for packets that don't fit into 1 skb on recieve
      2) Strips the crc from a frame by subtracting 4 bytes from the length prior to
      doing an skb_put
      
      Since the e1000 driver isn't written to support receiving packets that span
      multiple rx buffers, it checks the End of Packet bit of every frame, and
      discards it if its not set.  This places us in a situation where, if we have a
      spanning packet, the first part is discarded, but the second part is not (since
      it is the end of packet, and it passes the EOP bit test).  If the second part of
      the frame is small (4 bytes or less), we subtract 4 from it to remove its crc,
      underflow the length, and wind up in skb_over_panic, when we try to skb_put a
      huge number of bytes into the skb.  This amounts to a remote DOS attack through
      careful selection of frame size in relation to interface MTU.  The fix for this
      is already in the e1000e driver, as well as the e1000 sourceforge driver, but no
      one ever pushed it to e1000.  This is lifted straight from e1000e, and prevents
      small frames from causing the underflow described above
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      Tested-by: NAndy Gospodarek <andy@greyhouse.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ea30e119
  2. 05 5月, 2009 1 次提交
    • J
      e1000: fix virtualization bug · e151a60a
      Jesse Brandeburg 提交于
      a recent fix to e1000 (commit 15b2bee2) caused KVM/QEMU/VMware based
      virtualized e1000 interfaces to begin failing when resetting.
      
      This is because the driver in a virtual environment doesn't
      get to run instructions *AT ALL* when an interrupt is asserted.
      The interrupt code runs immediately and this recent bug fix
      allows an interrupt to be possible when the interrupt handler
      will reject it (due to the new code), when being called from
      any path in the driver that holds the E1000_RESETTING flag.
      
      the driver should use the __E1000_DOWN flag instead of the
      __E1000_RESETTING flag to prevent interrupt execution
      while reconfiguring the hardware.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e151a60a
  3. 17 4月, 2009 1 次提交
  4. 16 4月, 2009 1 次提交
  5. 15 4月, 2009 1 次提交
  6. 07 4月, 2009 2 次提交
  7. 05 4月, 2009 1 次提交
  8. 26 3月, 2009 3 次提交
  9. 03 3月, 2009 1 次提交
  10. 20 2月, 2009 1 次提交
  11. 04 2月, 2009 1 次提交
  12. 01 2月, 2009 1 次提交
  13. 28 1月, 2009 1 次提交
  14. 22 1月, 2009 2 次提交
  15. 23 12月, 2008 1 次提交
  16. 04 12月, 2008 1 次提交
  17. 27 11月, 2008 1 次提交
  18. 21 11月, 2008 1 次提交
  19. 20 11月, 2008 1 次提交
  20. 16 11月, 2008 1 次提交
  21. 13 11月, 2008 1 次提交
    • W
      netdevice: safe convert to netdev_priv() #part-2 · 4cf1653a
      Wang Chen 提交于
      We have some reasons to kill netdev->priv:
      1. netdev->priv is equal to netdev_priv().
      2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously
         netdev_priv() is more flexible than netdev->priv.
      But we cann't kill netdev->priv, because so many drivers reference to it
      directly.
      
      This patch is a safe convert for netdev->priv to netdev_priv(netdev).
      Since all of the netdev->priv is only for read.
      But it is too big to be sent in one mail.
      I split it to 4 parts and make every part smaller than 100,000 bytes,
      which is max size allowed by vger.
      Signed-off-by: NWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4cf1653a
  22. 04 11月, 2008 1 次提交
  23. 31 10月, 2008 1 次提交
  24. 28 10月, 2008 1 次提交
  25. 12 10月, 2008 1 次提交
  26. 10 10月, 2008 1 次提交
  27. 25 9月, 2008 1 次提交
  28. 23 7月, 2008 7 次提交
  29. 19 7月, 2008 1 次提交
  30. 17 7月, 2008 1 次提交