scsi: qla2xxx: Add endianizer macro calls to fc host stats
authorJoe Carnuccio <joe.carnuccio@cavium.com>
Wed, 12 Feb 2020 21:44:16 +0000 (13:44 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 24 Feb 2020 17:34:27 +0000 (12:34 -0500)
This patch fixes endian warning for fc_host_stats.

Link: https://lore.kernel.org/r/20200212214436.25532-6-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_attr.c
drivers/scsi/qla2xxx/qla_def.h

index 401b5ee..97cabd7 100644 (file)
@@ -2745,22 +2745,28 @@ qla2x00_get_fc_host_stats(struct Scsi_Host *shost)
        if (rval != QLA_SUCCESS)
                goto done_free;
 
-       p->link_failure_count = stats->link_fail_cnt;
-       p->loss_of_sync_count = stats->loss_sync_cnt;
-       p->loss_of_signal_count = stats->loss_sig_cnt;
-       p->prim_seq_protocol_err_count = stats->prim_seq_err_cnt;
-       p->invalid_tx_word_count = stats->inval_xmit_word_cnt;
-       p->invalid_crc_count = stats->inval_crc_cnt;
+       p->link_failure_count = le32_to_cpu(stats->link_fail_cnt);
+       p->loss_of_sync_count = le32_to_cpu(stats->loss_sync_cnt);
+       p->loss_of_signal_count = le32_to_cpu(stats->loss_sig_cnt);
+       p->prim_seq_protocol_err_count = le32_to_cpu(stats->prim_seq_err_cnt);
+       p->invalid_tx_word_count = le32_to_cpu(stats->inval_xmit_word_cnt);
+       p->invalid_crc_count = le32_to_cpu(stats->inval_crc_cnt);
        if (IS_FWI2_CAPABLE(ha)) {
-               p->lip_count = stats->lip_cnt;
-               p->tx_frames = stats->tx_frames;
-               p->rx_frames = stats->rx_frames;
-               p->dumped_frames = stats->discarded_frames;
-               p->nos_count = stats->nos_rcvd;
+               p->lip_count = le32_to_cpu(stats->lip_cnt);
+               p->tx_frames = le32_to_cpu(stats->tx_frames);
+               p->rx_frames = le32_to_cpu(stats->rx_frames);
+               p->dumped_frames = le32_to_cpu(stats->discarded_frames);
+               p->nos_count = le32_to_cpu(stats->nos_rcvd);
                p->error_frames =
-                       stats->dropped_frames + stats->discarded_frames;
-               p->rx_words = vha->qla_stats.input_bytes;
-               p->tx_words = vha->qla_stats.output_bytes;
+                   le32_to_cpu(stats->dropped_frames) +
+                   le32_to_cpu(stats->discarded_frames);
+               if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) {
+                       p->rx_words = le64_to_cpu(stats->fpm_recv_word_cnt);
+                       p->tx_words = le64_to_cpu(stats->fpm_xmit_word_cnt);
+               } else {
+                       p->rx_words = vha->qla_stats.input_bytes;
+                       p->tx_words = vha->qla_stats.output_bytes;
+               }
        }
        p->fcp_control_requests = vha->qla_stats.control_requests;
        p->fcp_input_requests = vha->qla_stats.input_requests;
@@ -2768,7 +2774,7 @@ qla2x00_get_fc_host_stats(struct Scsi_Host *shost)
        p->fcp_input_megabytes = vha->qla_stats.input_bytes >> 20;
        p->fcp_output_megabytes = vha->qla_stats.output_bytes >> 20;
        p->seconds_since_last_reset =
-               get_jiffies_64() - vha->qla_stats.jiffies_at_last_reset;
+           get_jiffies_64() - vha->qla_stats.jiffies_at_last_reset;
        do_div(p->seconds_since_last_reset, HZ);
 
 done_free:
index 22f859b..3021736 100644 (file)
@@ -1475,47 +1475,44 @@ typedef struct {
 #define GLSO_USE_DID   BIT_3
 
 struct link_statistics {
-       uint32_t link_fail_cnt;
-       uint32_t loss_sync_cnt;
-       uint32_t loss_sig_cnt;
-       uint32_t prim_seq_err_cnt;
-       uint32_t inval_xmit_word_cnt;
-       uint32_t inval_crc_cnt;
-       uint32_t lip_cnt;
-       uint32_t link_up_cnt;
-       uint32_t link_down_loop_init_tmo;
-       uint32_t link_down_los;
-       uint32_t link_down_loss_rcv_clk;
+       __le32 link_fail_cnt;
+       __le32 loss_sync_cnt;
+       __le32 loss_sig_cnt;
+       __le32 prim_seq_err_cnt;
+       __le32 inval_xmit_word_cnt;
+       __le32 inval_crc_cnt;
+       __le32 lip_cnt;
+       __le32 link_up_cnt;
+       __le32 link_down_loop_init_tmo;
+       __le32 link_down_los;
+       __le32 link_down_loss_rcv_clk;
        uint32_t reserved0[5];
-       uint32_t port_cfg_chg;
+       __le32 port_cfg_chg;
        uint32_t reserved1[11];
-       uint32_t rsp_q_full;
-       uint32_t atio_q_full;
-       uint32_t drop_ae;
-       uint32_t els_proto_err;
-       uint32_t reserved2;
-       uint32_t tx_frames;
-       uint32_t rx_frames;
-       uint32_t discarded_frames;
-       uint32_t dropped_frames;
+       __le32 rsp_q_full;
+       __le32 atio_q_full;
+       __le32 drop_ae;
+       __le32 els_proto_err;
+       __le32 reserved2;
+       __le32 tx_frames;
+       __le32 rx_frames;
+       __le32 discarded_frames;
+       __le32 dropped_frames;
        uint32_t reserved3;
-       uint32_t nos_rcvd;
+       __le32 nos_rcvd;
        uint32_t reserved4[4];
-       uint32_t tx_prjt;
-       uint32_t rcv_exfail;
-       uint32_t rcv_abts;
-       uint32_t seq_frm_miss;
-       uint32_t corr_err;
-       uint32_t mb_rqst;
-       uint32_t nport_full;
-       uint32_t eofa;
+       __le32 tx_prjt;
+       __le32 rcv_exfail;
+       __le32 rcv_abts;
+       __le32 seq_frm_miss;
+       __le32 corr_err;
+       __le32 mb_rqst;
+       __le32 nport_full;
+       __le32 eofa;
        uint32_t reserved5;
-       uint32_t fpm_recv_word_cnt_lo;
-       uint32_t fpm_recv_word_cnt_hi;
-       uint32_t fpm_disc_word_cnt_lo;
-       uint32_t fpm_disc_word_cnt_hi;
-       uint32_t fpm_xmit_word_cnt_lo;
-       uint32_t fpm_xmit_word_cnt_hi;
+       __le64 fpm_recv_word_cnt;
+       __le64 fpm_disc_word_cnt;
+       __le64 fpm_xmit_word_cnt;
        uint32_t reserved6[70];
 };