0001 * commit 7c734359d350 ("qlge: Size RX buffers based on MTU.", v2.6.33-rc1)
0002 introduced dead code in the receive routines, which should be rewritten
0003 anyways by the admission of the author himself, see the comment above
0004 ql_build_rx_skb(). That function is now used exclusively to handle packets
0005 that underwent header splitting but it still contains code to handle non
0006 split cases.
0007 * truesize accounting is incorrect (ex: a 9000B frame has skb->truesize 10280
0008 while containing two frags of order-1 allocations, ie. >16K)
0009 * while in that area, using two 8k buffers to store one 9k frame is a poor
0010 choice of buffer size.
0011 * in the "chain of large buffers" case, the driver uses an skb allocated with
0012 head room but only puts data in the frags.
0013 * rename "rx" queues to "completion" queues. Calling tx completion queues "rx
0014 queues" is confusing.
0015 * struct rx_ring is used for rx and tx completions, with some members relevant
0016 to one case only
0017 * the flow control implementation in firmware is buggy (sends a flood of pause
0018 frames, resets the link, device and driver buffer queues become
0019 desynchronized), disable it by default
0020 * some structures are initialized redundantly (ex. memset 0 after
0021 alloc_etherdev())
0022 * the driver has a habit of using runtime checks where compile time checks are
0023 possible (ex. ql_free_rx_buffers(), ql_alloc_rx_buffers())
0024 * reorder struct members to avoid holes if it doesn't impact performance
0025 * avoid legacy/deprecated apis (ex. replace pci_dma_*, replace pci_enable_msi,
0026 use pci_iomap)
0027 * some "while" loops could be rewritten with simple "for", ex.
0028 ql_wait_reg_rdy(), ql_start_rx_ring())
0029 * remove duplicate and useless comments
0030 * fix weird line wrapping (all over, ex. the ql_set_routing_reg() calls in
0031 qlge_set_multicast_list()).
0032 * fix weird indentation (all over, ex. the for loops in qlge_get_stats())
0033 * fix checkpatch issues