Page MenuHomeFreeBSD

D19711.id57246.diff
No OneTemporary

D19711.id57246.diff

Index: stable/11/sys/dev/ixgbe/if_fdir.c
===================================================================
--- stable/11/sys/dev/ixgbe/if_fdir.c
+++ stable/11/sys/dev/ixgbe/if_fdir.c
@@ -50,7 +50,7 @@
} /* ixgbe_init_fdir */
void
-ixgbe_reinit_fdir(void *context, int pending)
+ixgbe_reinit_fdir(void *context)
{
struct adapter *adapter = context;
struct ifnet *ifp = adapter->ifp;
@@ -146,9 +146,9 @@
/* TASK_INIT needs this function defined regardless if it's enabled */
void
-ixgbe_reinit_fdir(void *context, int pending)
+ixgbe_reinit_fdir(void *context)
{
- UNREFERENCED_2PARAMETER(context, pending);
+ UNREFERENCED_1PARAMETER(context);
} /* ixgbe_reinit_fdir */
void
Index: stable/11/sys/dev/ixgbe/if_ix.c
===================================================================
--- stable/11/sys/dev/ixgbe/if_ix.c
+++ stable/11/sys/dev/ixgbe/if_ix.c
@@ -156,8 +156,8 @@
static void ixgbe_disable_rx_drop(struct adapter *);
static void ixgbe_initialize_rss_mapping(struct adapter *);
-static void ixgbe_enable_intr(struct adapter *);
-static void ixgbe_disable_intr(struct adapter *);
+static void ixgbe_enable_intr(struct adapter *, bool);
+static void ixgbe_disable_intr(struct adapter *, bool);
static void ixgbe_update_stats_counters(struct adapter *);
static void ixgbe_set_promisc(struct adapter *);
static void ixgbe_set_multi(struct adapter *);
@@ -209,10 +209,11 @@
/* Deferred interrupt tasklets */
static void ixgbe_handle_que(void *, int);
-static void ixgbe_handle_link(void *, int);
-static void ixgbe_handle_msf(void *, int);
-static void ixgbe_handle_mod(void *, int);
-static void ixgbe_handle_phy(void *, int);
+static void ixgbe_handle_link(void *);
+static void ixgbe_handle_msf(void *);
+static void ixgbe_handle_mod(void *);
+static void ixgbe_handle_phy(void *);
+static void ixgbe_handle_admin_task(void *, int);
/************************************************************************
@@ -929,6 +930,15 @@
if (adapter->feat_en & IXGBE_FEATURE_NETMAP)
ixgbe_netmap_attach(adapter);
+ /* Initialize Admin Task */
+ TASK_INIT(&adapter->admin_task, 0, ixgbe_handle_admin_task, adapter);
+
+ /* Initialize task queue */
+ adapter->tq = taskqueue_create_fast("ixgbe_admin", M_NOWAIT,
+ taskqueue_thread_enqueue, &adapter->tq);
+ taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s admintaskq",
+ device_get_nameunit(adapter->dev));
+
INIT_DEBUGOUT("ixgbe_attach: end");
return (0);
@@ -1250,9 +1260,12 @@
if (hw->phy.multispeed_fiber) {
hw->mac.ops.setup_sfp(hw);
ixgbe_enable_tx_laser(hw);
- taskqueue_enqueue(adapter->tq, &adapter->msf_task);
- } else
- taskqueue_enqueue(adapter->tq, &adapter->mod_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MSF;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
+ } else {
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MOD;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
+ }
} else {
if (hw->mac.ops.check_link)
err = ixgbe_check_link(hw, &adapter->link_speed,
@@ -2351,7 +2364,8 @@
/* Link status change */
if (eicr & IXGBE_EICR_LSC) {
IXGBE_WRITE_REG(hw, IXGBE_EIMC, IXGBE_EIMC_LSC);
- taskqueue_enqueue(adapter->tq, &adapter->link_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_LINK;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
if (adapter->hw.mac.type != ixgbe_mac_82598EB) {
@@ -2362,7 +2376,8 @@
return;
/* Disable the interrupt */
IXGBE_WRITE_REG(hw, IXGBE_EIMC, IXGBE_EIMC_FLOW_DIR);
- taskqueue_enqueue(adapter->tq, &adapter->fdir_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_FDIR;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
if (eicr & IXGBE_EICR_ECC) {
@@ -2402,8 +2417,10 @@
/* Check for VF message */
if ((adapter->feat_en & IXGBE_FEATURE_SRIOV) &&
- (eicr & IXGBE_EICR_MAILBOX))
- taskqueue_enqueue(adapter->tq, &adapter->mbx_task);
+ (eicr & IXGBE_EICR_MAILBOX)) {
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MBX;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
+ }
}
if (ixgbe_is_sfp(hw)) {
@@ -2415,14 +2432,16 @@
if (eicr & eicr_mask) {
IXGBE_WRITE_REG(hw, IXGBE_EICR, eicr_mask);
- taskqueue_enqueue(adapter->tq, &adapter->mod_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MOD;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
if ((hw->mac.type == ixgbe_mac_82599EB) &&
(eicr & IXGBE_EICR_GPI_SDP1_BY_MAC(hw))) {
IXGBE_WRITE_REG(hw, IXGBE_EICR,
IXGBE_EICR_GPI_SDP1_BY_MAC(hw));
- taskqueue_enqueue(adapter->tq, &adapter->msf_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MSF;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
}
@@ -2436,11 +2455,9 @@
if ((hw->phy.type == ixgbe_phy_x550em_ext_t) &&
(eicr & IXGBE_EICR_GPI_SDP0_X540)) {
IXGBE_WRITE_REG(hw, IXGBE_EICR, IXGBE_EICR_GPI_SDP0_X540);
- taskqueue_enqueue(adapter->tq, &adapter->phy_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_PHY;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
-
- /* Re-enable other interrupts */
- IXGBE_WRITE_REG(hw, IXGBE_EIMS, IXGBE_EIMS_OTHER);
} /* ixgbe_msix_link */
/************************************************************************
@@ -2627,19 +2644,6 @@
}
}
- /* Drain the Link queue */
- if (adapter->tq) {
- taskqueue_drain(adapter->tq, &adapter->link_task);
- taskqueue_drain(adapter->tq, &adapter->mod_task);
- taskqueue_drain(adapter->tq, &adapter->msf_task);
- if (adapter->feat_cap & IXGBE_FEATURE_SRIOV)
- taskqueue_drain(adapter->tq, &adapter->mbx_task);
- taskqueue_drain(adapter->tq, &adapter->phy_task);
- if (adapter->feat_en & IXGBE_FEATURE_FDIR)
- taskqueue_drain(adapter->tq, &adapter->fdir_task);
- taskqueue_free(adapter->tq);
- }
-
/* let hardware know driver is unloading */
ctrl_ext = IXGBE_READ_REG(&adapter->hw, IXGBE_CTRL_EXT);
ctrl_ext &= ~IXGBE_CTRL_EXT_DRV_LOAD;
@@ -2656,6 +2660,12 @@
if (adapter->feat_en & IXGBE_FEATURE_NETMAP)
netmap_detach(adapter->ifp);
+ /* Drain the Admin Task queue */
+ if (adapter->tq) {
+ taskqueue_drain(adapter->tq, &adapter->admin_task);
+ taskqueue_free(adapter->tq);
+ }
+
ixgbe_free_pci_resources(adapter);
bus_generic_detach(dev);
if_free(adapter->ifp);
@@ -2913,6 +2923,10 @@
/* Configure RX settings */
ixgbe_initialize_receive_units(adapter);
+ /* Initialize variable holding task enqueue requests
+ * generated by interrupt handlers */
+ adapter->task_requests = 0;
+
/* Enable SDP & MSI-X interrupts based on adapter */
ixgbe_config_gpie(adapter);
@@ -3055,7 +3069,7 @@
ixgbe_config_dmac(adapter);
/* And now turn on interrupts */
- ixgbe_enable_intr(adapter);
+ ixgbe_enable_intr(adapter, false);
/* Enable the use of the MBX by the VF's */
if (adapter->feat_en & IXGBE_FEATURE_SRIOV) {
@@ -3463,7 +3477,7 @@
* ixgbe_handle_mod - Tasklet for SFP module interrupts
************************************************************************/
static void
-ixgbe_handle_mod(void *context, int pending)
+ixgbe_handle_mod(void *context)
{
struct adapter *adapter = context;
struct ixgbe_hw *hw = &adapter->hw;
@@ -3493,16 +3507,21 @@
if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) {
device_printf(dev,
"Unsupported SFP+ module type was detected.\n");
- return;
+ goto handle_mod_out;
}
err = hw->mac.ops.setup_sfp(hw);
if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) {
device_printf(dev,
"Setup failure - unsupported SFP+ module type.\n");
- return;
+ goto handle_mod_out;
}
- taskqueue_enqueue(adapter->tq, &adapter->msf_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MSF;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
+ return;
+
+handle_mod_out:
+ adapter->task_requests &= ~(IXGBE_REQUEST_TASK_MSF);
} /* ixgbe_handle_mod */
@@ -3510,7 +3529,7 @@
* ixgbe_handle_msf - Tasklet for MSF (multispeed fiber) interrupts
************************************************************************/
static void
-ixgbe_handle_msf(void *context, int pending)
+ixgbe_handle_msf(void *context)
{
struct adapter *adapter = context;
struct ixgbe_hw *hw = &adapter->hw;
@@ -3536,7 +3555,7 @@
* ixgbe_handle_phy - Tasklet for external PHY interrupts
************************************************************************/
static void
-ixgbe_handle_phy(void *context, int pending)
+ixgbe_handle_phy(void *context)
{
struct adapter *adapter = context;
struct ixgbe_hw *hw = &adapter->hw;
@@ -3551,6 +3570,36 @@
} /* ixgbe_handle_phy */
/************************************************************************
+ * ixgbe_handle_admin_task - Handler for interrupt tasklets meant to be
+ * called in separate task.
+ ************************************************************************/
+static void
+ixgbe_handle_admin_task(void *context, int pending)
+{
+ struct adapter *adapter = context;
+
+ IXGBE_CORE_LOCK(adapter);
+ ixgbe_disable_intr(adapter, true);
+
+ if (adapter->task_requests & IXGBE_REQUEST_TASK_MOD)
+ ixgbe_handle_mod(adapter);
+ if (adapter->task_requests & IXGBE_REQUEST_TASK_MSF)
+ ixgbe_handle_msf(adapter);
+ if (adapter->task_requests & IXGBE_REQUEST_TASK_MBX)
+ ixgbe_handle_mbx(adapter);
+ if (adapter->task_requests & IXGBE_REQUEST_TASK_FDIR)
+ ixgbe_reinit_fdir(adapter);
+ if (adapter->task_requests & IXGBE_REQUEST_TASK_PHY)
+ ixgbe_handle_phy(adapter);
+ if (adapter->task_requests & IXGBE_REQUEST_TASK_LINK)
+ ixgbe_handle_link(adapter);
+ adapter->task_requests = 0;
+
+ ixgbe_enable_intr(adapter, true);
+ IXGBE_CORE_UNLOCK(adapter);
+} /* ixgbe_handle_admin_task */
+
+/************************************************************************
* ixgbe_stop - Stop the hardware
*
* Disables all traffic on the adapter by issuing a
@@ -3568,7 +3617,7 @@
mtx_assert(&adapter->core_mtx, MA_OWNED);
INIT_DEBUGOUT("ixgbe_stop: begin\n");
- ixgbe_disable_intr(adapter);
+ ixgbe_disable_intr(adapter, false);
callout_stop(&adapter->timer);
/* Let the stack know...*/
@@ -3662,9 +3711,13 @@
/************************************************************************
* ixgbe_enable_intr
+ * If skip_traffic parameter is set, queues' irqs are not enabled.
+ * This is useful while reenabling interrupts after disabling them
+ * with ixgbe_disable_intr() 'keep_traffic' parameter set to true
+ * as queues' interrupts are already enabled.
************************************************************************/
static void
-ixgbe_enable_intr(struct adapter *adapter)
+ixgbe_enable_intr(struct adapter *adapter, bool skip_traffic)
{
struct ixgbe_hw *hw = &adapter->hw;
struct ix_queue *que = adapter->queues;
@@ -3732,13 +3785,15 @@
IXGBE_WRITE_REG(hw, IXGBE_EIAC, mask);
}
- /*
- * Now enable all queues, this is done separately to
- * allow for handling the extended (beyond 32) MSI-X
- * vectors that can be used by 82599
- */
- for (int i = 0; i < adapter->num_queues; i++, que++)
- ixgbe_enable_queue(adapter, que->msix);
+ if (!skip_traffic) {
+ /*
+ * Now enable all queues, this is done separately to
+ * allow for handling the extended (beyond 32) MSI-X
+ * vectors that can be used by 82599
+ */
+ for (int i = 0; i < adapter->num_queues; i++, que++)
+ ixgbe_enable_queue(adapter, que->msix);
+ }
IXGBE_WRITE_FLUSH(hw);
@@ -3747,21 +3802,39 @@
/************************************************************************
* ixgbe_disable_intr
+ * If keep_traffic parameter is set, queue interrupts are not disabled.
+ * This is needed by ixgbe_handle_admin_task() to handle link specific
+ * interrupt procedures without stopping the traffic.
************************************************************************/
static void
-ixgbe_disable_intr(struct adapter *adapter)
+ixgbe_disable_intr(struct adapter *adapter, bool keep_traffic)
{
- if (adapter->msix_mem)
- IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIAC, 0);
- if (adapter->hw.mac.type == ixgbe_mac_82598EB) {
- IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, ~0);
+ struct ixgbe_hw *hw = &adapter->hw;
+ u32 eiac_mask, eimc_mask, eimc_ext_mask;
+
+ if (keep_traffic) {
+ /* Autoclear only queue irqs */
+ eiac_mask = IXGBE_EICR_RTX_QUEUE;
+
+ /* Disable everything but queue irqs */
+ eimc_mask = ~0;
+ eimc_mask &= ~IXGBE_EIMC_RTX_QUEUE;
+ eimc_ext_mask = 0;
} else {
- IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFF0000);
- IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC_EX(0), ~0);
- IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC_EX(1), ~0);
+ eiac_mask = 0;
+ eimc_mask = (hw->mac.type == ixgbe_mac_82598EB) ? ~0 : 0xFFFF0000;
+ eimc_ext_mask = ~0;
}
- IXGBE_WRITE_FLUSH(&adapter->hw);
+ if (adapter->msix_mem)
+ IXGBE_WRITE_REG(hw, IXGBE_EIAC, eiac_mask);
+
+ IXGBE_WRITE_REG(hw, IXGBE_EIMC, eimc_mask);
+ IXGBE_WRITE_REG(hw, IXGBE_EIMC_EX(0), eimc_ext_mask);
+ IXGBE_WRITE_REG(hw, IXGBE_EIMC_EX(1), eimc_ext_mask);
+
+ IXGBE_WRITE_FLUSH(hw);
+
return;
} /* ixgbe_disable_intr */
@@ -3786,7 +3859,7 @@
++que->irqs;
if (eicr == 0) {
- ixgbe_enable_intr(adapter);
+ ixgbe_enable_intr(adapter, false);
return;
}
@@ -3807,8 +3880,10 @@
}
/* Link status change */
- if (eicr & IXGBE_EICR_LSC)
- taskqueue_enqueue(adapter->tq, &adapter->link_task);
+ if (eicr & IXGBE_EICR_LSC){
+ adapter->task_requests |= IXGBE_REQUEST_TASK_LINK;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
+ }
if (ixgbe_is_sfp(hw)) {
/* Pluggable optics-related interrupt */
@@ -3819,26 +3894,30 @@
if (eicr & eicr_mask) {
IXGBE_WRITE_REG(hw, IXGBE_EICR, eicr_mask);
- taskqueue_enqueue(adapter->tq, &adapter->mod_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MOD;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
if ((hw->mac.type == ixgbe_mac_82599EB) &&
(eicr & IXGBE_EICR_GPI_SDP1_BY_MAC(hw))) {
IXGBE_WRITE_REG(hw, IXGBE_EICR,
IXGBE_EICR_GPI_SDP1_BY_MAC(hw));
- taskqueue_enqueue(adapter->tq, &adapter->msf_task);
+ adapter->task_requests |= IXGBE_REQUEST_TASK_MSF;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
}
}
/* External PHY interrupt */
if ((hw->phy.type == ixgbe_phy_x550em_ext_t) &&
- (eicr & IXGBE_EICR_GPI_SDP0_X540))
- taskqueue_enqueue(adapter->tq, &adapter->phy_task);
+ (eicr & IXGBE_EICR_GPI_SDP0_X540)) {
+ adapter->task_requests |= IXGBE_REQUEST_TASK_PHY;
+ taskqueue_enqueue(adapter->tq, &adapter->admin_task);
+ }
if (more)
taskqueue_enqueue(que->tq, &que->que_task);
else
- ixgbe_enable_intr(adapter);
+ ixgbe_enable_intr(adapter, false);
return;
} /* ixgbe_legacy_irq */
@@ -4768,9 +4847,9 @@
IOCTL_DEBUGOUT("ioctl: SIOC(ADD|DEL)MULTI");
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
IXGBE_CORE_LOCK(adapter);
- ixgbe_disable_intr(adapter);
+ ixgbe_disable_intr(adapter, false);
ixgbe_set_multi(adapter);
- ixgbe_enable_intr(adapter);
+ ixgbe_enable_intr(adapter, false);
IXGBE_CORE_UNLOCK(adapter);
}
break;
@@ -4893,7 +4972,7 @@
if (que->res != NULL)
ixgbe_enable_queue(adapter, que->msix);
else
- ixgbe_enable_intr(adapter);
+ ixgbe_enable_intr(adapter, false);
return;
} /* ixgbe_handle_que */
@@ -4932,27 +5011,13 @@
taskqueue_start_threads(&que->tq, 1, PI_NET, "%s ixq",
device_get_nameunit(adapter->dev));
- /* Tasklets for Link, SFP and Multispeed Fiber */
- TASK_INIT(&adapter->link_task, 0, ixgbe_handle_link, adapter);
- TASK_INIT(&adapter->mod_task, 0, ixgbe_handle_mod, adapter);
- TASK_INIT(&adapter->msf_task, 0, ixgbe_handle_msf, adapter);
- TASK_INIT(&adapter->phy_task, 0, ixgbe_handle_phy, adapter);
- if (adapter->feat_en & IXGBE_FEATURE_FDIR)
- TASK_INIT(&adapter->fdir_task, 0, ixgbe_reinit_fdir, adapter);
- adapter->tq = taskqueue_create_fast("ixgbe_link", M_NOWAIT,
- taskqueue_thread_enqueue, &adapter->tq);
- taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s linkq",
- device_get_nameunit(adapter->dev));
-
if ((error = bus_setup_intr(dev, adapter->res,
INTR_TYPE_NET | INTR_MPSAFE, NULL, ixgbe_legacy_irq, que,
&adapter->tag)) != 0) {
device_printf(dev,
"Failed to register fast interrupt handler: %d\n", error);
taskqueue_free(que->tq);
- taskqueue_free(adapter->tq);
que->tq = NULL;
- adapter->tq = NULL;
return (error);
}
@@ -5093,20 +5158,6 @@
bus_describe_intr(dev, adapter->res, adapter->tag, "link");
#endif
adapter->vector = vector;
- /* Tasklets for Link, SFP and Multispeed Fiber */
- TASK_INIT(&adapter->link_task, 0, ixgbe_handle_link, adapter);
- TASK_INIT(&adapter->mod_task, 0, ixgbe_handle_mod, adapter);
- TASK_INIT(&adapter->msf_task, 0, ixgbe_handle_msf, adapter);
- if (adapter->feat_cap & IXGBE_FEATURE_SRIOV)
- TASK_INIT(&adapter->mbx_task, 0, ixgbe_handle_mbx, adapter);
- TASK_INIT(&adapter->phy_task, 0, ixgbe_handle_phy, adapter);
- if (adapter->feat_en & IXGBE_FEATURE_FDIR)
- TASK_INIT(&adapter->fdir_task, 0, ixgbe_reinit_fdir, adapter);
- adapter->tq = taskqueue_create_fast("ixgbe_link", M_NOWAIT,
- taskqueue_thread_enqueue, &adapter->tq);
- taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s linkq",
- device_get_nameunit(adapter->dev));
-
return (0);
} /* ixgbe_allocate_msix */
@@ -5232,13 +5283,12 @@
* Done outside of interrupt context since the driver might sleep
************************************************************************/
static void
-ixgbe_handle_link(void *context, int pending)
+ixgbe_handle_link(void *context)
{
struct adapter *adapter = context;
struct ixgbe_hw *hw = &adapter->hw;
ixgbe_check_link(hw, &adapter->link_speed, &adapter->link_up, 0);
- ixgbe_update_link_status(adapter);
/* Re-enable link interrupts */
IXGBE_WRITE_REG(hw, IXGBE_EIMS, IXGBE_EIMS_LSC);
Index: stable/11/sys/dev/ixgbe/if_sriov.c
===================================================================
--- stable/11/sys/dev/ixgbe/if_sriov.c
+++ stable/11/sys/dev/ixgbe/if_sriov.c
@@ -620,7 +620,7 @@
/* Tasklet for handling VF -> PF mailbox messages */
void
-ixgbe_handle_mbx(void *context, int pending)
+ixgbe_handle_mbx(void *context)
{
struct adapter *adapter;
struct ixgbe_hw *hw;
@@ -898,9 +898,9 @@
#else
void
-ixgbe_handle_mbx(void *context, int pending)
+ixgbe_handle_mbx(void *context)
{
- UNREFERENCED_2PARAMETER(context, pending);
+ UNREFERENCED_1PARAMETER(context);
} /* ixgbe_handle_mbx */
inline int
Index: stable/11/sys/dev/ixgbe/ixgbe.h
===================================================================
--- stable/11/sys/dev/ixgbe/ixgbe.h
+++ stable/11/sys/dev/ixgbe/ixgbe.h
@@ -464,17 +464,15 @@
/* Support for pluggable optics */
bool sfp_probe;
- struct task link_task; /* Link tasklet */
- struct task mod_task; /* SFP tasklet */
- struct task msf_task; /* Multispeed Fiber */
- struct task mbx_task; /* VF -> PF mailbox interrupt */
+ struct task link_task; /* Link tasklet */
/* Flow Director */
int fdir_reinit;
- struct task fdir_task;
- struct task phy_task; /* PHY intr tasklet */
- struct taskqueue *tq;
+ /* Admin task */
+ struct taskqueue *tq;
+ struct task admin_task;
+ u32 task_requests;
/*
* Queues:
Index: stable/11/sys/dev/ixgbe/ixgbe_fdir.h
===================================================================
--- stable/11/sys/dev/ixgbe/ixgbe_fdir.h
+++ stable/11/sys/dev/ixgbe/ixgbe_fdir.h
@@ -52,7 +52,7 @@
#endif
-void ixgbe_reinit_fdir(void *, int);
+void ixgbe_reinit_fdir(void *);
void ixgbe_atr(struct tx_ring *, struct mbuf *);
#endif /* _IXGBE_FDIR_H_ */
Index: stable/11/sys/dev/ixgbe/ixgbe_sriov.h
===================================================================
--- stable/11/sys/dev/ixgbe/ixgbe_sriov.h
+++ stable/11/sys/dev/ixgbe/ixgbe_sriov.h
@@ -96,7 +96,7 @@
#endif /* PCI_IOV */
-void ixgbe_handle_mbx(void *, int);
+void ixgbe_handle_mbx(void *);
int ixgbe_vf_que_index(int, int, int);
#endif
Index: stable/11/sys/dev/ixgbe/ixgbe_type.h
===================================================================
--- stable/11/sys/dev/ixgbe/ixgbe_type.h
+++ stable/11/sys/dev/ixgbe/ixgbe_type.h
@@ -4392,4 +4392,11 @@
#define IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD \
(0x1F << IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD_SHIFT)
+#define IXGBE_REQUEST_TASK_MOD 0x01
+#define IXGBE_REQUEST_TASK_MSF 0x02
+#define IXGBE_REQUEST_TASK_MBX 0x04
+#define IXGBE_REQUEST_TASK_FDIR 0x08
+#define IXGBE_REQUEST_TASK_PHY 0x10
+#define IXGBE_REQUEST_TASK_LINK 0x20
+
#endif /* _IXGBE_TYPE_H_ */

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 21, 7:55 PM (5 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31864538
Default Alt Text
D19711.id57246.diff (20 KB)

Event Timeline