]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: bql: fix building with BQL disabled
authorArnd Bergmann <arnd@arndb.de>
Wed, 28 Feb 2024 16:06:56 +0000 (17:06 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Mar 2024 08:46:15 +0000 (08:46 +0000)
It is now possible to disable BQL, but that causes the cpsw driver to break:

drivers/net/ethernet/ti/am65-cpsw-nuss.c:297:28: error: no member named 'dql' in 'struct netdev_queue'
  297 |                    dql_avail(&netif_txq->dql),

There is already a helper function in net/sch_generic.h that could
be used to help here. Move its implementation into the common
linux/netdevice.h along with the other bql interfaces and change
both users over to the new interface.

Fixes: ea7f3cfaa588 ("net: bql: allow the config to be disabled")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/am65-cpsw-nuss.c
include/linux/netdevice.h
include/net/sch_generic.h

index 9d2f4ac783e43502586b27283a4db73351ca0583..2939a21ca74f3cf0f627981df74a949e9c61011e 100644 (file)
@@ -294,7 +294,7 @@ static void am65_cpsw_nuss_ndo_host_tx_timeout(struct net_device *ndev,
                   txqueue,
                   netif_tx_queue_stopped(netif_txq),
                   jiffies_to_msecs(jiffies - trans_start),
-                  dql_avail(&netif_txq->dql),
+                  netdev_queue_dql_avail(netif_txq),
                   k3_cppi_desc_pool_avail(tx_chn->desc_pool));
 
        if (netif_tx_queue_stopped(netif_txq)) {
index a9c973b92294bb110cf3cd336485972127b01b58..735a9386fcf80d914ad3be7c94170158ed53d5aa 100644 (file)
@@ -3499,6 +3499,16 @@ static inline void netdev_queue_set_dql_min_limit(struct netdev_queue *dev_queue
 #endif
 }
 
+static inline int netdev_queue_dql_avail(const struct netdev_queue *txq)
+{
+#ifdef CONFIG_BQL
+       /* Non-BQL migrated drivers will return 0, too. */
+       return dql_avail(&txq->dql);
+#else
+       return 0;
+#endif
+}
+
 /**
  *     netdev_txq_bql_enqueue_prefetchw - prefetch bql data for write
  *     @dev_queue: pointer to transmit queue
index 934fdb9775519ff45d9455e74a8695bf8a1e4bce..cefe0c4bdae34c91868c22731a3b666f8e16e996 100644 (file)
@@ -238,12 +238,7 @@ static inline bool qdisc_may_bulk(const struct Qdisc *qdisc)
 
 static inline int qdisc_avail_bulklimit(const struct netdev_queue *txq)
 {
-#ifdef CONFIG_BQL
-       /* Non-BQL migrated drivers will return 0, too. */
-       return dql_avail(&txq->dql);
-#else
-       return 0;
-#endif
+       return netdev_queue_dql_avail(txq);
 }
 
 struct Qdisc_class_ops {