|
@@ -93,7 +93,6 @@ MODULE_FIRMWARE(FW_FILE_NAME_E1);
|
|
|
MODULE_FIRMWARE(FW_FILE_NAME_E1H);
|
|
|
MODULE_FIRMWARE(FW_FILE_NAME_E2);
|
|
|
|
|
|
-
|
|
|
int num_queues;
|
|
|
module_param(num_queues, int, 0);
|
|
|
MODULE_PARM_DESC(num_queues,
|
|
@@ -122,8 +121,6 @@ static int debug;
|
|
|
module_param(debug, int, 0);
|
|
|
MODULE_PARM_DESC(debug, " Default debug msglevel");
|
|
|
|
|
|
-
|
|
|
-
|
|
|
struct workqueue_struct *bnx2x_wq;
|
|
|
|
|
|
struct bnx2x_mac_vals {
|
|
@@ -917,7 +914,6 @@ void bnx2x_panic_dump(struct bnx2x *bp, bool disable_int)
|
|
|
sp_sb_data.p_func.vf_valid,
|
|
|
sp_sb_data.state);
|
|
|
|
|
|
-
|
|
|
for_each_eth_queue(bp, i) {
|
|
|
struct bnx2x_fastpath *fp = &bp->fp[i];
|
|
|
int loop;
|
|
@@ -1290,7 +1286,6 @@ void bnx2x_tx_hw_flushed(struct bnx2x *bp, u32 poll_count)
|
|
|
for (i = 0; i < ARRAY_SIZE(cmd_regs); i++)
|
|
|
bnx2x_pbf_pN_cmd_flushed(bp, &cmd_regs[i], poll_count);
|
|
|
|
|
|
-
|
|
|
/* Verify the transmission buffers are flushed P0, P1, P4 */
|
|
|
for (i = 0; i < ARRAY_SIZE(buf_regs); i++)
|
|
|
bnx2x_pbf_pN_buf_flushed(bp, &buf_regs[i], poll_count);
|
|
@@ -1305,11 +1300,9 @@ void bnx2x_tx_hw_flushed(struct bnx2x *bp, u32 poll_count)
|
|
|
#define OP_GEN_AGG_VECT(index) \
|
|
|
(((index) << SDM_OP_GEN_AGG_VECT_IDX_SHIFT) & SDM_OP_GEN_AGG_VECT_IDX)
|
|
|
|
|
|
-
|
|
|
int bnx2x_send_final_clnup(struct bnx2x *bp, u8 clnup_func, u32 poll_cnt)
|
|
|
{
|
|
|
u32 op_gen_command = 0;
|
|
|
-
|
|
|
u32 comp_addr = BAR_CSTRORM_INTMEM +
|
|
|
CSTORM_FINAL_CLEANUP_COMPLETE_OFFSET(clnup_func);
|
|
|
int ret = 0;
|
|
@@ -1352,7 +1345,6 @@ u8 bnx2x_is_pcie_pending(struct pci_dev *dev)
|
|
|
*/
|
|
|
static int bnx2x_poll_hw_usage_counters(struct bnx2x *bp, u32 poll_cnt)
|
|
|
{
|
|
|
-
|
|
|
/* wait for CFC PF usage-counter to zero (includes all the VFs) */
|
|
|
if (bnx2x_flr_clnup_poll_hw_counter(bp,
|
|
|
CFC_REG_NUM_LCIDS_INSIDE_PF,
|
|
@@ -1360,7 +1352,6 @@ static int bnx2x_poll_hw_usage_counters(struct bnx2x *bp, u32 poll_cnt)
|
|
|
poll_cnt))
|
|
|
return 1;
|
|
|
|
|
|
-
|
|
|
/* Wait for DQ PF usage-counter to zero (until DQ cleanup) */
|
|
|
if (bnx2x_flr_clnup_poll_hw_counter(bp,
|
|
|
DORQ_REG_PF_USAGE_CNT,
|
|
@@ -1991,7 +1982,6 @@ int bnx2x_release_hw_lock(struct bnx2x *bp, u32 resource)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
int bnx2x_get_gpio(struct bnx2x *bp, int gpio_num, u8 port)
|
|
|
{
|
|
|
/* The GPIO should be swapped if swap register is set and active */
|
|
@@ -2347,7 +2337,6 @@ u8 bnx2x_link_test(struct bnx2x *bp, u8 is_serdes)
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/* Calculates the sum of vn_min_rates.
|
|
|
It's needed for further normalizing of the min_rates.
|
|
|
Returns:
|
|
@@ -2419,7 +2408,6 @@ static void bnx2x_calc_vn_max(struct bnx2x *bp, int vn,
|
|
|
input->vnic_max_rate[vn] = vn_max_rate;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static int bnx2x_get_cmng_fns_mode(struct bnx2x *bp)
|
|
|
{
|
|
|
if (CHIP_REV_IS_SLOW(bp))
|
|
@@ -2901,7 +2889,6 @@ u32 bnx2x_fw_command(struct bnx2x *bp, u32 command, u32 param)
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void storm_memset_func_cfg(struct bnx2x *bp,
|
|
|
struct tstorm_eth_function_common_config *tcfg,
|
|
|
u16 abs_fid)
|
|
@@ -3006,7 +2993,6 @@ static unsigned long bnx2x_get_q_flags(struct bnx2x *bp,
|
|
|
if (IS_MF_AFEX(bp))
|
|
|
__set_bit(BNX2X_Q_FLG_SILENT_VLAN_REM, &flags);
|
|
|
|
|
|
-
|
|
|
return flags | bnx2x_get_common_flags(bp, fp, true);
|
|
|
}
|
|
|
|
|
@@ -3196,7 +3182,6 @@ static void bnx2x_pf_init(struct bnx2x *bp)
|
|
|
storm_memset_eq_data(bp, &eq_data, BP_FUNC(bp));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void bnx2x_e1h_disable(struct bnx2x *bp)
|
|
|
{
|
|
|
int port = BP_PORT(bp);
|
|
@@ -3540,10 +3525,8 @@ static bool bnx2x_is_contextless_ramrod(int cmd, int cmd_type)
|
|
|
return true;
|
|
|
else
|
|
|
return false;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* bnx2x_sp_post - place a single command on an SP ring
|
|
|
*
|
|
@@ -3615,7 +3598,6 @@ int bnx2x_sp_post(struct bnx2x *bp, int command, int cid,
|
|
|
else
|
|
|
atomic_dec(&bp->cq_spq_left);
|
|
|
|
|
|
-
|
|
|
DP(BNX2X_MSG_SP,
|
|
|
"SPQE[%x] (%x:%x) (cmd, common?) (%d,%d) hw_cid %x data (%x:%x) type(0x%x) left (CQ, EQ) (%x,%x)\n",
|
|
|
bp->spq_prod_idx, (u32)U64_HI(bp->spq_mapping),
|
|
@@ -3836,7 +3818,6 @@ static void bnx2x_fan_failure(struct bnx2x *bp)
|
|
|
set_bit(BNX2X_SP_RTNL_FAN_FAILURE, &bp->sp_rtnl_state);
|
|
|
smp_mb__after_clear_bit();
|
|
|
schedule_delayed_work(&bp->sp_rtnl_task, 0);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
static void bnx2x_attn_int_deasserted0(struct bnx2x *bp, u32 attn)
|
|
@@ -4591,7 +4572,6 @@ bool bnx2x_chk_parity_attn(struct bnx2x *bp, bool *global, bool print)
|
|
|
return bnx2x_parity_attn(bp, global, print, attn.sig);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void bnx2x_attn_int_deasserted4(struct bnx2x *bp, u32 attn)
|
|
|
{
|
|
|
u32 val;
|
|
@@ -4643,7 +4623,6 @@ static void bnx2x_attn_int_deasserted4(struct bnx2x *bp, u32 attn)
|
|
|
(u32)(attn & (AEU_INPUTS_ATTN_BITS_PGLUE_PARITY_ERROR |
|
|
|
AEU_INPUTS_ATTN_BITS_ATC_PARITY_ERROR)));
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
static void bnx2x_attn_int_deasserted(struct bnx2x *bp, u32 deasserted)
|
|
@@ -4878,7 +4857,6 @@ static void bnx2x_handle_classification_eqe(struct bnx2x *bp,
|
|
|
BNX2X_ERR("Failed to schedule new commands: %d\n", rc);
|
|
|
else if (rc > 0)
|
|
|
DP(BNX2X_MSG_SP, "Scheduled next pending commands...\n");
|
|
|
-
|
|
|
}
|
|
|
|
|
|
static void bnx2x_set_iscsi_eth_rx_mode(struct bnx2x *bp, bool start);
|
|
@@ -5075,8 +5053,6 @@ static void bnx2x_eq_int(struct bnx2x *bp)
|
|
|
if (q_obj->complete_cmd(bp, q_obj, BNX2X_Q_CMD_CFC_DEL))
|
|
|
break;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
goto next_spqe;
|
|
|
|
|
|
case EVENT_RING_OPCODE_STOP_TRAFFIC:
|
|
@@ -5265,7 +5241,6 @@ static void bnx2x_sp_task(struct work_struct *work)
|
|
|
/* ack status block only if something was actually handled */
|
|
|
bnx2x_ack_sb(bp, bp->igu_dsb_id, ATTENTION_ID,
|
|
|
le16_to_cpu(bp->def_att_idx), IGU_INT_ENABLE, 1);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/* must be called after the EQ processing (since eq leads to sriov
|
|
@@ -5316,7 +5291,6 @@ irqreturn_t bnx2x_msix_sp_int(int irq, void *dev_instance)
|
|
|
|
|
|
/* end of slow path */
|
|
|
|
|
|
-
|
|
|
void bnx2x_drv_pulse(struct bnx2x *bp)
|
|
|
{
|
|
|
SHMEM_WR(bp, func_mb[BP_FW_MB_IDX(bp)].drv_pulse_mb,
|
|
@@ -5382,7 +5356,6 @@ static void bnx2x_fill(struct bnx2x *bp, u32 addr, int fill, u32 len)
|
|
|
else
|
|
|
for (i = 0; i < len; i++)
|
|
|
REG_WR8(bp, addr + i, fill);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/* helper: writes FP SP data to FW - data_size in dwords */
|
|
@@ -5461,10 +5434,8 @@ static void bnx2x_zero_sp_sb(struct bnx2x *bp)
|
|
|
bnx2x_fill(bp, BAR_CSTRORM_INTMEM +
|
|
|
CSTORM_SP_SYNC_BLOCK_OFFSET(func), 0,
|
|
|
CSTORM_SP_SYNC_BLOCK_SIZE);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void bnx2x_setup_ndsb_state_machine(struct hc_status_block_sm *hc_sm,
|
|
|
int igu_sb_id, int igu_seg_id)
|
|
|
{
|
|
@@ -5474,7 +5445,6 @@ static void bnx2x_setup_ndsb_state_machine(struct hc_status_block_sm *hc_sm,
|
|
|
hc_sm->time_to_expire = 0xFFFFFFFF;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/* allocates state machine ids. */
|
|
|
static void bnx2x_map_sb_state_machines(struct hc_index_data *index_data)
|
|
|
{
|
|
@@ -6001,6 +5971,7 @@ static void bnx2x_init_tx_rings_cnic(struct bnx2x *bp)
|
|
|
for_each_tx_queue_cnic(bp, i)
|
|
|
bnx2x_init_tx_ring_one(bp->fp[i].txdata_ptr[0]);
|
|
|
}
|
|
|
+
|
|
|
static void bnx2x_init_tx_rings(struct bnx2x *bp)
|
|
|
{
|
|
|
int i;
|
|
@@ -6772,7 +6743,6 @@ static int bnx2x_init_hw_common(struct bnx2x *bp)
|
|
|
|
|
|
bnx2x_init_block(bp, BLOCK_QM, PHASE_COMMON);
|
|
|
|
|
|
-
|
|
|
/* QM queues pointers table */
|
|
|
bnx2x_qm_init_ptr_table(bp, bp->qm_cid_count, INITOP_SET);
|
|
|
|
|
@@ -7013,7 +6983,6 @@ static int bnx2x_init_hw_port(struct bnx2x *bp)
|
|
|
u32 low, high;
|
|
|
u32 val;
|
|
|
|
|
|
-
|
|
|
DP(NETIF_MSG_HW, "starting port init port %d\n", port);
|
|
|
|
|
|
REG_WR(bp, NIG_REG_MASK_INTERRUPT_PORT0 + port*4, 0);
|
|
@@ -7078,7 +7047,6 @@ static int bnx2x_init_hw_port(struct bnx2x *bp)
|
|
|
BRB1_REG_MAC_GUARANTIED_1 :
|
|
|
BRB1_REG_MAC_GUARANTIED_0), 40);
|
|
|
|
|
|
-
|
|
|
bnx2x_init_block(bp, BLOCK_PRS, init_phase);
|
|
|
if (CHIP_IS_E3B0(bp)) {
|
|
|
if (IS_MF_AFEX(bp)) {
|
|
@@ -7275,7 +7243,6 @@ void bnx2x_igu_clear_sb_gen(struct bnx2x *bp, u8 func, u8 idu_sb_id, bool is_pf)
|
|
|
while (!(REG_RD(bp, igu_addr_ack) & sb_bit) && --cnt)
|
|
|
msleep(20);
|
|
|
|
|
|
-
|
|
|
if (!(REG_RD(bp, igu_addr_ack) & sb_bit)) {
|
|
|
DP(NETIF_MSG_HW,
|
|
|
"Unable to finish IGU cleanup: idu_sb_id %d offset %d bit %d (cnt %d)\n",
|
|
@@ -7295,7 +7262,6 @@ static void bnx2x_clear_func_ilt(struct bnx2x *bp, u32 func)
|
|
|
bnx2x_ilt_wr(bp, i, 0);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void bnx2x_init_searcher(struct bnx2x *bp)
|
|
|
{
|
|
|
int port = BP_PORT(bp);
|
|
@@ -7331,7 +7297,6 @@ static int bnx2x_reset_nic_mode(struct bnx2x *bp)
|
|
|
int rc, i, port = BP_PORT(bp);
|
|
|
int vlan_en = 0, mac_en[NUM_MACS];
|
|
|
|
|
|
-
|
|
|
/* Close input from network */
|
|
|
if (bp->mf_mode == SINGLE_FUNCTION) {
|
|
|
bnx2x_set_rx_filter(&bp->link_params, 0);
|
|
@@ -7480,7 +7445,6 @@ static int bnx2x_init_hw_func(struct bnx2x *bp)
|
|
|
/* Set NIC mode */
|
|
|
REG_WR(bp, PRS_REG_NIC_MODE, 1);
|
|
|
DP(NETIF_MSG_IFUP, "NIC MODE configrued\n");
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if (!CHIP_IS_E1x(bp)) {
|
|
@@ -7734,7 +7698,6 @@ static int bnx2x_init_hw_func(struct bnx2x *bp)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
void bnx2x_free_mem_cnic(struct bnx2x *bp)
|
|
|
{
|
|
|
bnx2x_ilt_mem_op_cnic(bp, ILT_MEMOP_FREE);
|
|
@@ -7779,7 +7742,6 @@ void bnx2x_free_mem(struct bnx2x *bp)
|
|
|
bnx2x_iov_free_mem(bp);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
int bnx2x_alloc_mem_cnic(struct bnx2x *bp)
|
|
|
{
|
|
|
if (!CHIP_IS_E1x(bp))
|
|
@@ -8068,7 +8030,6 @@ void bnx2x_ilt_set_info(struct bnx2x *bp)
|
|
|
ilt_client->page_size,
|
|
|
ilt_client->flags,
|
|
|
ilog2(ilt_client->page_size >> 12));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if (CNIC_SUPPORT(bp)) {
|
|
@@ -8124,7 +8085,6 @@ void bnx2x_ilt_set_info(struct bnx2x *bp)
|
|
|
static void bnx2x_pf_q_prep_init(struct bnx2x *bp,
|
|
|
struct bnx2x_fastpath *fp, struct bnx2x_queue_init_params *init_params)
|
|
|
{
|
|
|
-
|
|
|
u8 cos;
|
|
|
int cxt_index, cxt_offset;
|
|
|
|
|
@@ -8205,7 +8165,6 @@ static int bnx2x_setup_tx_only(struct bnx2x *bp, struct bnx2x_fastpath *fp,
|
|
|
return bnx2x_queue_state_change(bp, q_params);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* bnx2x_setup_queue - setup queue
|
|
|
*
|
|
@@ -8254,7 +8213,6 @@ int bnx2x_setup_queue(struct bnx2x *bp, struct bnx2x_fastpath *fp,
|
|
|
|
|
|
DP(NETIF_MSG_IFUP, "init complete\n");
|
|
|
|
|
|
-
|
|
|
/* Now move the Queue to the SETUP state... */
|
|
|
memset(setup_params, 0, sizeof(*setup_params));
|
|
|
|
|
@@ -8315,7 +8273,6 @@ static int bnx2x_stop_queue(struct bnx2x *bp, int index)
|
|
|
/* We want to wait for completion in this context */
|
|
|
__set_bit(RAMROD_COMP_WAIT, &q_params.ramrod_flags);
|
|
|
|
|
|
-
|
|
|
/* close tx-only connections */
|
|
|
for (tx_index = FIRST_TX_ONLY_COS_INDEX;
|
|
|
tx_index < fp->max_cos;
|
|
@@ -8369,7 +8326,6 @@ static int bnx2x_stop_queue(struct bnx2x *bp, int index)
|
|
|
return bnx2x_queue_state_change(bp, &q_params);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void bnx2x_reset_func(struct bnx2x *bp)
|
|
|
{
|
|
|
int port = BP_PORT(bp);
|
|
@@ -8740,7 +8696,6 @@ void bnx2x_chip_cleanup(struct bnx2x *bp, int unload_mode, bool keep_link)
|
|
|
|
|
|
bnx2x_iov_chip_cleanup(bp);
|
|
|
|
|
|
-
|
|
|
/*
|
|
|
* Send the UNLOAD_REQUEST to the MCP. This will return if
|
|
|
* this function should perform FUNC, PORT or COMMON HW
|
|
@@ -8813,7 +8768,6 @@ unload_error:
|
|
|
if (rc)
|
|
|
BNX2X_ERR("HW_RESET failed\n");
|
|
|
|
|
|
-
|
|
|
/* Report UNLOAD_DONE to MCP */
|
|
|
bnx2x_send_unload_done(bp, keep_link);
|
|
|
}
|
|
@@ -9179,7 +9133,6 @@ static int bnx2x_process_kill(struct bnx2x *bp, bool global)
|
|
|
if (!CHIP_IS_E1x(bp) && bnx2x_er_poll_igu_vq(bp))
|
|
|
return -EAGAIN;
|
|
|
|
|
|
-
|
|
|
/* TBD: Indicate that "process kill" is in progress to MCP */
|
|
|
|
|
|
/* Clear "unprepared" bit */
|
|
@@ -9647,7 +9600,6 @@ static void bnx2x_prev_unload_close_mac(struct bnx2x *bp,
|
|
|
wb_data[0] &= ~BMAC_CONTROL_RX_ENABLE;
|
|
|
REG_WR(bp, vals->bmac_addr, wb_data[0]);
|
|
|
REG_WR(bp, vals->bmac_addr + 0x4, wb_data[1]);
|
|
|
-
|
|
|
}
|
|
|
BNX2X_DEV_INFO("Disable emac Rx\n");
|
|
|
vals->emac_addr = NIG_REG_NIG_EMAC0_EN + BP_PORT(bp)*4;
|
|
@@ -9681,7 +9633,6 @@ static void bnx2x_prev_unload_close_mac(struct bnx2x *bp,
|
|
|
|
|
|
if (mac_stopped)
|
|
|
msleep(20);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
#define BNX2X_PREV_UNDI_PROD_ADDR(p) (BAR_TSTRORM_INTMEM + 0x1508 + ((p) << 4))
|
|
@@ -9854,7 +9805,6 @@ static int bnx2x_do_flr(struct bnx2x *bp)
|
|
|
u16 status;
|
|
|
struct pci_dev *dev = bp->pdev;
|
|
|
|
|
|
-
|
|
|
if (CHIP_IS_E1x(bp)) {
|
|
|
BNX2X_DEV_INFO("FLR not supported in E1/E1H\n");
|
|
|
return -EINVAL;
|
|
@@ -10001,7 +9951,6 @@ static int bnx2x_prev_unload_common(struct bnx2x *bp)
|
|
|
|
|
|
if (!timer_count)
|
|
|
BNX2X_ERR("Failed to empty BRB, hope for the best\n");
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/* No packets are in the pipeline, path is ready for reset */
|
|
@@ -10205,8 +10154,6 @@ static void bnx2x_get_common_hwinfo(struct bnx2x *bp)
|
|
|
|
|
|
bnx2x_init_shmem(bp);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
bp->common.shmem2_base = REG_RD(bp, (BP_PATH(bp) ?
|
|
|
MISC_REG_GENERIC_CR_1 :
|
|
|
MISC_REG_GENERIC_CR_0));
|
|
@@ -10467,7 +10414,6 @@ static void bnx2x_link_settings_supported(struct bnx2x *bp, u32 switch_cfg)
|
|
|
if (!(bp->link_params.speed_cap_mask[idx] &
|
|
|
PORT_HW_CFG_SPEED_CAPABILITY_D0_10G))
|
|
|
bp->port.supported[idx] &= ~SUPPORTED_10000baseT_Full;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
BNX2X_DEV_INFO("supported 0x%x 0x%x\n", bp->port.supported[0],
|
|
@@ -10778,7 +10724,6 @@ void bnx2x_get_iscsi_info(struct bnx2x *bp)
|
|
|
*/
|
|
|
if (!bp->cnic_eth_dev.max_iscsi_conn)
|
|
|
bp->flags |= no_flags;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
static void bnx2x_get_ext_wwn_info(struct bnx2x *bp, int func)
|
|
@@ -11442,7 +11387,6 @@ static int bnx2x_init_bp(struct bnx2x *bp)
|
|
|
mutex_init(&bp->fw_mb_mutex);
|
|
|
spin_lock_init(&bp->stats_lock);
|
|
|
|
|
|
-
|
|
|
INIT_DELAYED_WORK(&bp->sp_task, bnx2x_sp_task);
|
|
|
INIT_DELAYED_WORK(&bp->sp_rtnl_task, bnx2x_sp_rtnl_task);
|
|
|
INIT_DELAYED_WORK(&bp->period_task, bnx2x_period_task);
|
|
@@ -11475,7 +11419,6 @@ static int bnx2x_init_bp(struct bnx2x *bp)
|
|
|
bnx2x_prev_unload(bp);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
if (CHIP_REV_IS_FPGA(bp))
|
|
|
dev_err(&bp->pdev->dev, "FPGA detected\n");
|
|
|
|
|
@@ -11558,7 +11501,6 @@ static int bnx2x_init_bp(struct bnx2x *bp)
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/****************************************************************************
|
|
|
* General service functions
|
|
|
****************************************************************************/
|
|
@@ -12397,7 +12339,6 @@ static void bnx2x_release_firmware(struct bnx2x *bp)
|
|
|
bp->firmware = NULL;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static struct bnx2x_func_sp_drv_ops bnx2x_func_sp_drv = {
|
|
|
.init_hw_cmn_chip = bnx2x_init_hw_common_chip,
|
|
|
.init_hw_cmn = bnx2x_init_hw_common,
|
|
@@ -12676,7 +12617,6 @@ static int bnx2x_init_one(struct pci_dev *pdev,
|
|
|
}
|
|
|
BNX2X_DEV_INFO("device name after netdev register %s\n", dev->name);
|
|
|
|
|
|
-
|
|
|
if (!NO_FCOE(bp)) {
|
|
|
/* Add storage MAC address */
|
|
|
rtnl_lock();
|
|
@@ -13048,6 +12988,7 @@ static int __init bnx2x_init(void)
|
|
|
static void __exit bnx2x_cleanup(void)
|
|
|
{
|
|
|
struct list_head *pos, *q;
|
|
|
+
|
|
|
pci_unregister_driver(&bnx2x_pci_driver);
|
|
|
|
|
|
destroy_workqueue(bnx2x_wq);
|
|
@@ -13103,7 +13044,6 @@ static void bnx2x_cnic_sp_post(struct bnx2x *bp, int count)
|
|
|
BUG_ON(bp->cnic_spq_pending < count);
|
|
|
bp->cnic_spq_pending -= count;
|
|
|
|
|
|
-
|
|
|
for (; bp->cnic_kwq_pending; bp->cnic_kwq_pending--) {
|
|
|
u16 type = (le16_to_cpu(bp->cnic_kwq_cons->hdr.type)
|
|
|
& SPE_HDR_CONN_TYPE) >>
|
|
@@ -13276,7 +13216,6 @@ static void bnx2x_cnic_cfc_comp(struct bnx2x *bp, int cid, u8 err)
|
|
|
bnx2x_cnic_sp_post(bp, 0);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/* Called with netif_addr_lock_bh() taken.
|
|
|
* Sets an rx_mode config for an iSCSI ETH client.
|
|
|
* Doesn't block.
|
|
@@ -13317,7 +13256,6 @@ static void bnx2x_set_iscsi_eth_rx_mode(struct bnx2x *bp, bool start)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static int bnx2x_drv_ctl(struct net_device *dev, struct drv_ctl_info *ctl)
|
|
|
{
|
|
|
struct bnx2x *bp = netdev_priv(dev);
|
|
@@ -13505,7 +13443,6 @@ void bnx2x_setup_cnic_info(struct bnx2x *bp)
|
|
|
{
|
|
|
struct cnic_eth_dev *cp = &bp->cnic_eth_dev;
|
|
|
|
|
|
-
|
|
|
cp->ctx_tbl_offset = FUNC_ILT_BASE(BP_FUNC(bp)) +
|
|
|
bnx2x_cid_ilt_lines(bp);
|
|
|
cp->starting_cid = bnx2x_cid_ilt_lines(bp) * ILT_PAGE_CIDS;
|
|
@@ -13541,7 +13478,6 @@ static int bnx2x_register_cnic(struct net_device *dev, struct cnic_ops *ops,
|
|
|
BNX2X_ERR("CNIC-related load failed\n");
|
|
|
return rc;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
bp->cnic_enabled = true;
|