mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
![Coiby Xu](/assets/img/avatar_default.png)
The debugging code in the following ifdef land - QL_ALL_DUMP - QL_REG_DUMP - QL_DEV_DUMP - QL_CB_DUMP - QL_IB_DUMP - QL_OB_DUMP becomes unnecessary because, - Device status and general registers can be obtained by ethtool. - Coredump can be done via devlink health reporter. - Structure related to the hardware (struct ql_adapter) can be obtained by crash or drgn. Link: https://lkml.org/lkml/2020/6/30/19 Suggested-by: Benjamin Poirier <benjamin.poirier@gmail.com> Signed-off-by: Coiby Xu <coiby.xu@gmail.com> Link: https://lore.kernel.org/r/20210123104613.38359-8-coiby.xu@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
33 lines
1.8 KiB
Text
33 lines
1.8 KiB
Text
* 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
|
|
ql_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
|
|
* some structures are initialized redundantly (ex. memset 0 after
|
|
alloc_etherdev())
|
|
* the driver has a habit of using runtime checks where compile time checks are
|
|
possible (ex. ql_free_rx_buffers(), ql_alloc_rx_buffers())
|
|
* reorder struct members to avoid holes if it doesn't impact performance
|
|
* avoid legacy/deprecated apis (ex. replace pci_dma_*, replace pci_enable_msi,
|
|
use pci_iomap)
|
|
* some "while" loops could be rewritten with simple "for", ex.
|
|
ql_wait_reg_rdy(), ql_start_rx_ring())
|
|
* remove duplicate and useless comments
|
|
* fix weird line wrapping (all over, ex. the ql_set_routing_reg() calls in
|
|
qlge_set_multicast_list()).
|
|
* fix weird indentation (all over, ex. the for loops in qlge_get_stats())
|
|
* fix checkpatch issues
|