-
Notifications
You must be signed in to change notification settings - Fork 2
/
TODO
28 lines (28 loc) · 1.6 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
* 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