mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
qlge: Move drivers/net/ethernet/qlogic/qlge/ to drivers/staging/qlge/
The hardware has been declared EOL by the vendor more than 5 years ago. What's more relevant to the Linux kernel is that the quality of this driver is not on par with many other mainline drivers. Cc: Manish Chopra <manishc@marvell.com> Message-id: <20190617074858.32467-1-bpoirier@suse.com> Signed-off-by: Benjamin Poirier <bpoirier@suse.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d5c3a62d0b
commit
955315b0dc
@ -421,4 +421,3 @@ That is, the recovery API only requires that:
|
||||
- drivers/net/ixgbe
|
||||
- drivers/net/cxgb3
|
||||
- drivers/net/s2io.c
|
||||
- drivers/net/qlge
|
||||
|
@ -13217,7 +13217,7 @@ M: Manish Chopra <manishc@marvell.com>
|
||||
M: GR-Linux-NIC-Dev@marvell.com
|
||||
L: netdev@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/net/ethernet/qlogic/qlge/
|
||||
F: drivers/staging/qlge/
|
||||
|
||||
QM1D1B0004 MEDIA DRIVER
|
||||
M: Akihiro Tsukada <tskd08@gmail.com>
|
||||
|
@ -66,15 +66,6 @@ config QLCNIC_HWMON
|
||||
|
||||
This data is available via the hwmon sysfs interface.
|
||||
|
||||
config QLGE
|
||||
tristate "QLogic QLGE 10Gb Ethernet Driver Support"
|
||||
depends on PCI
|
||||
---help---
|
||||
This driver supports QLogic ISP8XXX 10Gb Ethernet cards.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called qlge.
|
||||
|
||||
config NETXEN_NIC
|
||||
tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC"
|
||||
depends on PCI
|
||||
|
@ -5,7 +5,6 @@
|
||||
|
||||
obj-$(CONFIG_QLA3XXX) += qla3xxx.o
|
||||
obj-$(CONFIG_QLCNIC) += qlcnic/
|
||||
obj-$(CONFIG_QLGE) += qlge/
|
||||
obj-$(CONFIG_NETXEN_NIC) += netxen/
|
||||
obj-$(CONFIG_QED) += qed/
|
||||
obj-$(CONFIG_QEDE)+= qede/
|
||||
|
@ -120,4 +120,6 @@ source "drivers/staging/kpc2000/Kconfig"
|
||||
|
||||
source "drivers/staging/isdn/Kconfig"
|
||||
|
||||
source "drivers/staging/qlge/Kconfig"
|
||||
|
||||
endif # STAGING
|
||||
|
@ -50,3 +50,4 @@ obj-$(CONFIG_EROFS_FS) += erofs/
|
||||
obj-$(CONFIG_FIELDBUS_DEV) += fieldbus/
|
||||
obj-$(CONFIG_KPC2000) += kpc2000/
|
||||
obj-$(CONFIG_ISDN_CAPI) += isdn/
|
||||
obj-$(CONFIG_QLGE) += qlge/
|
||||
|
10
drivers/staging/qlge/Kconfig
Normal file
10
drivers/staging/qlge/Kconfig
Normal file
@ -0,0 +1,10 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
config QLGE
|
||||
tristate "QLogic QLGE 10Gb Ethernet Driver Support"
|
||||
depends on PCI
|
||||
help
|
||||
This driver supports QLogic ISP8XXX 10Gb Ethernet cards.
|
||||
|
||||
To compile this driver as a module, choose M here. The module will be
|
||||
called qlge.
|
46
drivers/staging/qlge/TODO
Normal file
46
drivers/staging/qlge/TODO
Normal file
@ -0,0 +1,46 @@
|
||||
* reception stalls permanently (until admin intervention) if the rx buffer
|
||||
queues become empty because of allocation failures (ex. under memory
|
||||
pressure)
|
||||
* 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
|
||||
* there is an inordinate amount of disparate debugging code, most of which is
|
||||
of questionable value. In particular, qlge_dbg.c has hundreds of lines of
|
||||
code bitrotting away in ifdef land (doesn't compile since commit
|
||||
18c49b91777c ("qlge: do vlan cleanup", v3.1-rc1), 8 years ago).
|
||||
* triggering an ethtool regdump will hexdump a 176k struct to dmesg depending
|
||||
on some module parameters.
|
||||
* 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
|
||||
* in terms of namespace, the driver uses either qlge_, ql_ (used by
|
||||
other qlogic drivers, with clashes, ex: ql_sem_spinlock) or nothing (with
|
||||
clashes, ex: struct ob_mac_iocb_req). Rename everything to use the "qlge_"
|
||||
prefix.
|
||||
* 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
|
Loading…
Reference in New Issue
Block a user