Commit 97cbf3d0 authored by David Wei's avatar David Wei Committed by David S. Miller
Browse files

bnxt_en: only set dev->queue_mgmt_ops if supported by FW



The queue API calls bnxt_hwrm_vnic_update() to stop/start the flow of
packets, which can only properly flush the pipeline if FW indicates
support.

Add a macro BNXT_SUPPORTS_QUEUE_API that checks for the required flags
and only set queue_mgmt_ops if true.

Signed-off-by: default avatarDavid Wei <dw@davidwei.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b9d2956e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -15718,7 +15718,6 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
	dev->stat_ops = &bnxt_stat_ops;
	dev->watchdog_timeo = BNXT_TX_TIMEOUT;
	dev->ethtool_ops = &bnxt_ethtool_ops;
	dev->queue_mgmt_ops = &bnxt_queue_mgmt_ops;
	pci_set_drvdata(pdev, dev);

	rc = bnxt_alloc_hwrm_resources(bp);
@@ -15899,6 +15898,8 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)

	if (BNXT_SUPPORTS_NTUPLE_VNIC(bp))
		bp->rss_cap |= BNXT_RSS_CAP_MULTI_RSS_CTX;
	if (BNXT_SUPPORTS_QUEUE_API(bp))
		dev->queue_mgmt_ops = &bnxt_queue_mgmt_ops;

	rc = register_netdev(dev);
	if (rc)
+3 −0
Original line number Diff line number Diff line
@@ -2451,6 +2451,9 @@ struct bnxt {
#define BNXT_SUPPORTS_MULTI_RSS_CTX(bp)				\
	(BNXT_PF(bp) && BNXT_SUPPORTS_NTUPLE_VNIC(bp) &&	\
	 ((bp)->rss_cap & BNXT_RSS_CAP_MULTI_RSS_CTX))
#define BNXT_SUPPORTS_QUEUE_API(bp)				\
	(BNXT_PF(bp) && BNXT_SUPPORTS_NTUPLE_VNIC(bp) &&	\
	 ((bp)->fw_cap & BNXT_FW_CAP_VNIC_RE_FLUSH))

	u32			hwrm_spec_code;
	u16			hwrm_cmd_seq;