| * commit 7c734359d350 ("qlge: Size RX buffers based on MTU.", v2.6.33-rc1) |
| introduced dead code in the receive routines, which should be rewritten |
| anyways by the admission of the author himself, see the comment above |
| qlge_build_rx_skb(). That function is now used exclusively to handle packets |
| that underwent header splitting but it still contains code to handle non |
| split cases. |
| * truesize accounting is incorrect (ex: a 9000B frame has skb->truesize 10280 |
| while containing two frags of order-1 allocations, ie. >16K) |
| * while in that area, using two 8k buffers to store one 9k frame is a poor |
| choice of buffer size. |
| * in the "chain of large buffers" case, the driver uses an skb allocated with |
| head room but only puts data in the frags. |
| * rename "rx" queues to "completion" queues. Calling tx completion queues "rx |
| queues" is confusing. |
| * struct rx_ring is used for rx and tx completions, with some members relevant |
| to one case only |
| * the flow control implementation in firmware is buggy (sends a flood of pause |
| frames, resets the link, device and driver buffer queues become |
| desynchronized), disable it by default |
| * the driver has a habit of using runtime checks where compile time checks are |
| possible (ex. qlge_free_rx_buffers()) |
| * reorder struct members to avoid holes if it doesn't impact performance |
| * use better-suited apis (ex. use pci_iomap() instead of ioremap()) |
| * remove duplicate and useless comments |
| * fix weird line wrapping (all over, ex. the qlge_set_routing_reg() calls in |
| qlge_set_multicast_list()). |
| * remove useless casts (ex. memset((void *)mac_iocb_ptr, ...)) |
| * fix checkpatch issues |