fw_fcoe_stats
struct qed_fcoe_stats *fw_fcoe_stats;
fw_fcoe_stats = kmalloc_obj(struct qed_fcoe_stats);
if (!fw_fcoe_stats) {
qed_ops->get_stats(qedf->cdev, fw_fcoe_stats);
fw_fcoe_stats->fcoe_rx_byte_cnt,
fw_fcoe_stats->fcoe_rx_data_pkt_cnt,
fw_fcoe_stats->fcoe_rx_xfer_pkt_cnt,
fw_fcoe_stats->fcoe_rx_other_pkt_cnt,
fw_fcoe_stats->fcoe_silent_drop_pkt_cmdq_full_cnt,
fw_fcoe_stats->fcoe_silent_drop_pkt_crc_error_cnt,
fw_fcoe_stats->fcoe_silent_drop_pkt_task_invalid_cnt,
fw_fcoe_stats->fcoe_silent_drop_total_pkt_cnt,
fw_fcoe_stats->fcoe_silent_drop_pkt_rq_full_cnt,
fw_fcoe_stats->fcoe_tx_byte_cnt,
fw_fcoe_stats->fcoe_tx_data_pkt_cnt,
fw_fcoe_stats->fcoe_tx_xfer_pkt_cnt,
fw_fcoe_stats->fcoe_tx_other_pkt_cnt);
kfree(fw_fcoe_stats);
struct qed_fcoe_stats *fw_fcoe_stats;
fw_fcoe_stats = kmalloc_obj(struct qed_fcoe_stats);
if (!fw_fcoe_stats) {
qed_ops->get_stats(qedf->cdev, fw_fcoe_stats);
qedf_stats->tx_frames += fw_fcoe_stats->fcoe_tx_data_pkt_cnt +
fw_fcoe_stats->fcoe_tx_xfer_pkt_cnt +
fw_fcoe_stats->fcoe_tx_other_pkt_cnt;
qedf_stats->rx_frames += fw_fcoe_stats->fcoe_rx_data_pkt_cnt +
fw_fcoe_stats->fcoe_rx_xfer_pkt_cnt +
fw_fcoe_stats->fcoe_rx_other_pkt_cnt;
do_div(fw_fcoe_stats->fcoe_rx_byte_cnt, 1000000);
do_div(fw_fcoe_stats->fcoe_tx_byte_cnt, 1000000);
qedf_stats->rx_words += fw_fcoe_stats->fcoe_rx_byte_cnt / 4;
qedf_stats->tx_words += fw_fcoe_stats->fcoe_tx_byte_cnt / 4;
fw_fcoe_stats->fcoe_silent_drop_pkt_crc_error_cnt;
fw_fcoe_stats->fcoe_silent_drop_total_pkt_cnt;
fw_fcoe_stats->fcoe_silent_drop_total_pkt_cnt;
kfree(fw_fcoe_stats);