1. 19 Apr, 2013 1 commit
  2. 11 Jul, 2012 4 commits
  3. 04 Feb, 2012 1 commit
  4. 24 Nov, 2011 1 commit
    • Thadeu Lima de Souza Cascardo's avatar
      qlge: fix size of external list for TX address descriptors · 78242853
      Thadeu Lima de Souza Cascardo authored
      When transmiting a fragmented skb, qlge fills a descriptor with the
      fragment addresses, after DMA-mapping them. If there are more than eight
      fragments, it will use the eighth descriptor as a pointer to an external
      list. After mapping this external list, called OAL to a structure
      containing more descriptors, it fills it with the extra fragments.
      
      However, considering that systems with pages larger than 8KiB would have
      less than 8 fragments, which was true before commit a715dea3, it
      defined a macro for the OAL size as 0 in those cases.
      
      Now, if a skb with more than 8 fragments (counting skb->data as one
      fragment), this would start overwriting the list of addresses already
      mapped and would make the driver fail to properly unmap the right
      addresses on architectures with pages larger than 8KiB.
      
      Besides that, the list of mappings was one size too small, since it must
      have a mapping for the maxinum number of skb fragments plus one for
      skb->data and another for the OAL. So, even on architectures with page
      sizes 4KiB and 8KiB, a skb with the maximum number of fragments would
      make the driver overwrite its counter for the number of mappings, which,
      again, would make it fail to unmap the mapped DMA addresses.
      Signed-off-by: default avatarThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      78242853
  5. 11 Aug, 2011 1 commit
  6. 21 Jul, 2011 1 commit
  7. 02 Jul, 2011 2 commits
  8. 07 Jun, 2011 1 commit
  9. 15 Apr, 2011 1 commit
  10. 12 Dec, 2010 1 commit
  11. 10 Nov, 2010 2 commits
  12. 24 Oct, 2010 2 commits
  13. 21 Jul, 2010 1 commit
  14. 06 Jul, 2010 3 commits
  15. 03 Jun, 2010 1 commit
  16. 13 Apr, 2010 1 commit
  17. 17 Feb, 2010 1 commit
  18. 12 Feb, 2010 1 commit
  19. 04 Feb, 2010 2 commits
  20. 16 Jan, 2010 4 commits
  21. 07 Jan, 2010 1 commit
  22. 12 Nov, 2009 1 commit
  23. 04 Nov, 2009 2 commits
  24. 02 Nov, 2009 1 commit
  25. 29 Oct, 2009 1 commit
  26. 22 Oct, 2009 2 commits