static int fc_bsg_rportadd(struct Scsi_Host *, struct fc_rport *);
 static void fc_bsg_remove(struct request_queue *);
 static void fc_bsg_goose_queue(struct fc_rport *);
-static void fc_li_stats_update(struct fc_fn_li_desc *li_desc,
+static void fc_li_stats_update(u16 event_type,
                               struct fc_fpin_stats *stats);
 static void fc_delivery_stats_update(u32 reason_code,
                                     struct fc_fpin_stats *stats);
 EXPORT_SYMBOL(fc_find_rport_by_wwpn);
 
 static void
-fc_li_stats_update(struct fc_fn_li_desc *li_desc,
+fc_li_stats_update(u16 event_type,
                   struct fc_fpin_stats *stats)
 {
-       stats->li += be32_to_cpu(li_desc->event_count);
-       switch (be16_to_cpu(li_desc->event_type)) {
+       stats->li++;
+       switch (event_type) {
        case FPIN_LI_UNKNOWN:
-               stats->li_failure_unknown +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_failure_unknown++;
                break;
        case FPIN_LI_LINK_FAILURE:
-               stats->li_link_failure_count +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_link_failure_count++;
                break;
        case FPIN_LI_LOSS_OF_SYNC:
-               stats->li_loss_of_sync_count +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_loss_of_sync_count++;
                break;
        case FPIN_LI_LOSS_OF_SIG:
-               stats->li_loss_of_signals_count +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_loss_of_signals_count++;
                break;
        case FPIN_LI_PRIM_SEQ_ERR:
-               stats->li_prim_seq_err_count +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_prim_seq_err_count++;
                break;
        case FPIN_LI_INVALID_TX_WD:
-               stats->li_invalid_tx_word_count +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_invalid_tx_word_count++;
                break;
        case FPIN_LI_INVALID_CRC:
-               stats->li_invalid_crc_count +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_invalid_crc_count++;
                break;
        case FPIN_LI_DEVICE_SPEC:
-               stats->li_device_specific +=
-                   be32_to_cpu(li_desc->event_count);
+               stats->li_device_specific++;
                break;
        }
 }
        struct fc_rport *attach_rport = NULL;
        struct fc_host_attrs *fc_host = shost_to_fc_host(shost);
        struct fc_fn_li_desc *li_desc = (struct fc_fn_li_desc *)tlv;
+       u16 event_type = be16_to_cpu(li_desc->event_type);
        u64 wwpn;
 
        rport = fc_find_rport_by_wwpn(shost,
            (rport->roles & FC_PORT_ROLE_FCP_TARGET ||
             rport->roles & FC_PORT_ROLE_NVME_TARGET)) {
                attach_rport = rport;
-               fc_li_stats_update(li_desc, &attach_rport->fpin_stats);
+               fc_li_stats_update(event_type, &attach_rport->fpin_stats);
        }
 
        if (be32_to_cpu(li_desc->pname_count) > 0) {
                            rport->roles & FC_PORT_ROLE_NVME_TARGET)) {
                                if (rport == attach_rport)
                                        continue;
-                               fc_li_stats_update(li_desc,
+                               fc_li_stats_update(event_type,
                                                   &rport->fpin_stats);
                        }
                }
        }
 
        if (fc_host->port_name == be64_to_cpu(li_desc->attached_wwpn))
-               fc_li_stats_update(li_desc, &fc_host->fpin_stats);
+               fc_li_stats_update(event_type, &fc_host->fpin_stats);
 }
 
 /*