]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
qlge: Move drivers/net/ethernet/qlogic/qlge/ to drivers/staging/qlge/
authorBenjamin Poirier <bpoirier@suse.com>
Tue, 23 Jul 2019 06:14:13 +0000 (15:14 +0900)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Jul 2019 18:29:40 +0000 (11:29 -0700)
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>
14 files changed:
Documentation/PCI/pci-error-recovery.rst
MAINTAINERS
drivers/net/ethernet/qlogic/Kconfig
drivers/net/ethernet/qlogic/Makefile
drivers/staging/Kconfig
drivers/staging/Makefile
drivers/staging/qlge/Kconfig [new file with mode: 0644]
drivers/staging/qlge/Makefile [moved from drivers/net/ethernet/qlogic/qlge/Makefile with 100% similarity]
drivers/staging/qlge/TODO [new file with mode: 0644]
drivers/staging/qlge/qlge.h [moved from drivers/net/ethernet/qlogic/qlge/qlge.h with 100% similarity]
drivers/staging/qlge/qlge_dbg.c [moved from drivers/net/ethernet/qlogic/qlge/qlge_dbg.c with 100% similarity]
drivers/staging/qlge/qlge_ethtool.c [moved from drivers/net/ethernet/qlogic/qlge/qlge_ethtool.c with 100% similarity]
drivers/staging/qlge/qlge_main.c [moved from drivers/net/ethernet/qlogic/qlge/qlge_main.c with 100% similarity]
drivers/staging/qlge/qlge_mpi.c [moved from drivers/net/ethernet/qlogic/qlge/qlge_mpi.c with 100% similarity]

index 83db420929352cce72c301d30a4435e01223fe8e..7e30f43a9659b26b40d53d5ecf2245cd31b016b4 100644 (file)
@@ -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
index 783569e3c4b48752c3555e9bee6fbc87adad5117..9bca7781d67e8e54cbdec54e3db7e5a862c1f39a 100644 (file)
@@ -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>
index a391cf6ee4b2201fbc29372701916e2d2ffb68bf..55a29ec766807a5169bd45fca47c64b73cd58c0e 100644 (file)
@@ -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
index 6cd2e333a5fc19930627331a7c2d83afd6bee543..1ae4a0743bd50ff1974a4c069afe351737525756 100644 (file)
@@ -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/
index 7c96a01eef6c714f390816c18d6916aaaddaa721..0b8a614be11eb515041acd50823856c3e7278f04 100644 (file)
@@ -120,4 +120,6 @@ source "drivers/staging/kpc2000/Kconfig"
 
 source "drivers/staging/isdn/Kconfig"
 
+source "drivers/staging/qlge/Kconfig"
+
 endif # STAGING
index fcaac9693b8312d45d21667660c7f958a5c2a734..741152511a1046e99699a4996967b992f876df26 100644 (file)
@@ -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/
diff --git a/drivers/staging/qlge/Kconfig b/drivers/staging/qlge/Kconfig
new file mode 100644 (file)
index 0000000..ae9ed2c
--- /dev/null
@@ -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.
diff --git a/drivers/staging/qlge/TODO b/drivers/staging/qlge/TODO
new file mode 100644 (file)
index 0000000..51c5090
--- /dev/null
@@ -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