Commit 1bd49b48 authored by Vasu Dev's avatar Vasu Dev Committed by James Bottomley

[SCSI] libfc, fcoe, bnx2fc: cleanup fcoe_dev_stats

The libfc is used by fcoe but fcoe agnostic,
and therefore should not have any fcoe references.

So renaming fcoe_dev_stats from libfc as its for fc_stats.
After that libfc is fcoe string free except some strings for
Open-FCoE.org.
Signed-off-by: default avatarVasu Dev <vasu.dev@intel.com>
Acked-by : Robert Love <robert.w.love@intel.com>
Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
Acked-by: default avatarBhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent e58abb0c
...@@ -286,7 +286,7 @@ static int bnx2fc_xmit(struct fc_lport *lport, struct fc_frame *fp) ...@@ -286,7 +286,7 @@ static int bnx2fc_xmit(struct fc_lport *lport, struct fc_frame *fp)
struct fcoe_port *port; struct fcoe_port *port;
struct fcoe_hdr *hp; struct fcoe_hdr *hp;
struct bnx2fc_rport *tgt; struct bnx2fc_rport *tgt;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
u8 sof, eof; u8 sof, eof;
u32 crc; u32 crc;
unsigned int hlen, tlen, elen; unsigned int hlen, tlen, elen;
...@@ -412,7 +412,7 @@ static int bnx2fc_xmit(struct fc_lport *lport, struct fc_frame *fp) ...@@ -412,7 +412,7 @@ static int bnx2fc_xmit(struct fc_lport *lport, struct fc_frame *fp)
} }
/*update tx stats */ /*update tx stats */
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->TxFrames++; stats->TxFrames++;
stats->TxWords += wlen; stats->TxWords += wlen;
put_cpu(); put_cpu();
...@@ -522,7 +522,7 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) ...@@ -522,7 +522,7 @@ static void bnx2fc_recv_frame(struct sk_buff *skb)
u32 fr_len; u32 fr_len;
struct fc_lport *lport; struct fc_lport *lport;
struct fcoe_rcv_info *fr; struct fcoe_rcv_info *fr;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
struct fc_frame_header *fh; struct fc_frame_header *fh;
struct fcoe_crc_eof crc_eof; struct fcoe_crc_eof crc_eof;
struct fc_frame *fp; struct fc_frame *fp;
...@@ -551,7 +551,7 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) ...@@ -551,7 +551,7 @@ static void bnx2fc_recv_frame(struct sk_buff *skb)
skb_pull(skb, sizeof(struct fcoe_hdr)); skb_pull(skb, sizeof(struct fcoe_hdr));
fr_len = skb->len - sizeof(struct fcoe_crc_eof); fr_len = skb->len - sizeof(struct fcoe_crc_eof);
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->RxFrames++; stats->RxFrames++;
stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; stats->RxWords += fr_len / FCOE_WORD_TO_BYTE;
...@@ -942,7 +942,7 @@ static void bnx2fc_indicate_netevent(void *context, unsigned long event, ...@@ -942,7 +942,7 @@ static void bnx2fc_indicate_netevent(void *context, unsigned long event,
FC_PORTTYPE_UNKNOWN; FC_PORTTYPE_UNKNOWN;
mutex_unlock(&lport->lp_mutex); mutex_unlock(&lport->lp_mutex);
fc_host_port_type(lport->host) = FC_PORTTYPE_UNKNOWN; fc_host_port_type(lport->host) = FC_PORTTYPE_UNKNOWN;
per_cpu_ptr(lport->dev_stats, per_cpu_ptr(lport->stats,
get_cpu())->LinkFailureCount++; get_cpu())->LinkFailureCount++;
put_cpu(); put_cpu();
fcoe_clean_pending_queue(lport); fcoe_clean_pending_queue(lport);
......
...@@ -1980,7 +1980,7 @@ int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, ...@@ -1980,7 +1980,7 @@ int bnx2fc_post_io_req(struct bnx2fc_rport *tgt,
struct bnx2fc_interface *interface = port->priv; struct bnx2fc_interface *interface = port->priv;
struct bnx2fc_hba *hba = interface->hba; struct bnx2fc_hba *hba = interface->hba;
struct fc_lport *lport = port->lport; struct fc_lport *lport = port->lport;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
int task_idx, index; int task_idx, index;
u16 xid; u16 xid;
...@@ -1991,7 +1991,7 @@ int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, ...@@ -1991,7 +1991,7 @@ int bnx2fc_post_io_req(struct bnx2fc_rport *tgt,
io_req->data_xfer_len = scsi_bufflen(sc_cmd); io_req->data_xfer_len = scsi_bufflen(sc_cmd);
sc_cmd->SCp.ptr = (char *)io_req; sc_cmd->SCp.ptr = (char *)io_req;
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
if (sc_cmd->sc_data_direction == DMA_FROM_DEVICE) { if (sc_cmd->sc_data_direction == DMA_FROM_DEVICE) {
io_req->io_req_flags = BNX2FC_READ; io_req->io_req_flags = BNX2FC_READ;
stats->InputRequests++; stats->InputRequests++;
......
...@@ -1529,7 +1529,7 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, ...@@ -1529,7 +1529,7 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev,
return 0; return 0;
err: err:
per_cpu_ptr(lport->dev_stats, get_cpu())->ErrorFrames++; per_cpu_ptr(lport->stats, get_cpu())->ErrorFrames++;
put_cpu(); put_cpu();
err2: err2:
kfree_skb(skb); kfree_skb(skb);
...@@ -1569,7 +1569,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp) ...@@ -1569,7 +1569,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp)
struct ethhdr *eh; struct ethhdr *eh;
struct fcoe_crc_eof *cp; struct fcoe_crc_eof *cp;
struct sk_buff *skb; struct sk_buff *skb;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
struct fc_frame_header *fh; struct fc_frame_header *fh;
unsigned int hlen; /* header length implies the version */ unsigned int hlen; /* header length implies the version */
unsigned int tlen; /* trailer length */ unsigned int tlen; /* trailer length */
...@@ -1680,7 +1680,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp) ...@@ -1680,7 +1680,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp)
skb_shinfo(skb)->gso_size = 0; skb_shinfo(skb)->gso_size = 0;
} }
/* update tx stats: regardless if LLD fails */ /* update tx stats: regardless if LLD fails */
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->TxFrames++; stats->TxFrames++;
stats->TxWords += wlen; stats->TxWords += wlen;
put_cpu(); put_cpu();
...@@ -1714,7 +1714,7 @@ static inline int fcoe_filter_frames(struct fc_lport *lport, ...@@ -1714,7 +1714,7 @@ static inline int fcoe_filter_frames(struct fc_lport *lport,
struct fcoe_interface *fcoe; struct fcoe_interface *fcoe;
struct fc_frame_header *fh; struct fc_frame_header *fh;
struct sk_buff *skb = (struct sk_buff *)fp; struct sk_buff *skb = (struct sk_buff *)fp;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
/* /*
* We only check CRC if no offload is available and if it is * We only check CRC if no offload is available and if it is
...@@ -1745,7 +1745,7 @@ static inline int fcoe_filter_frames(struct fc_lport *lport, ...@@ -1745,7 +1745,7 @@ static inline int fcoe_filter_frames(struct fc_lport *lport,
return 0; return 0;
} }
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->InvalidCRCCount++; stats->InvalidCRCCount++;
if (stats->InvalidCRCCount < 5) if (stats->InvalidCRCCount < 5)
printk(KERN_WARNING "fcoe: dropping frame with CRC error\n"); printk(KERN_WARNING "fcoe: dropping frame with CRC error\n");
...@@ -1762,7 +1762,7 @@ static void fcoe_recv_frame(struct sk_buff *skb) ...@@ -1762,7 +1762,7 @@ static void fcoe_recv_frame(struct sk_buff *skb)
u32 fr_len; u32 fr_len;
struct fc_lport *lport; struct fc_lport *lport;
struct fcoe_rcv_info *fr; struct fcoe_rcv_info *fr;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
struct fcoe_crc_eof crc_eof; struct fcoe_crc_eof crc_eof;
struct fc_frame *fp; struct fc_frame *fp;
struct fcoe_port *port; struct fcoe_port *port;
...@@ -1793,7 +1793,7 @@ static void fcoe_recv_frame(struct sk_buff *skb) ...@@ -1793,7 +1793,7 @@ static void fcoe_recv_frame(struct sk_buff *skb)
*/ */
hp = (struct fcoe_hdr *) skb_network_header(skb); hp = (struct fcoe_hdr *) skb_network_header(skb);
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) { if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
if (stats->ErrorFrames < 5) if (stats->ErrorFrames < 5)
printk(KERN_WARNING "fcoe: FCoE version " printk(KERN_WARNING "fcoe: FCoE version "
...@@ -1970,7 +1970,7 @@ static int fcoe_device_notification(struct notifier_block *notifier, ...@@ -1970,7 +1970,7 @@ static int fcoe_device_notification(struct notifier_block *notifier,
struct fcoe_ctlr *ctlr; struct fcoe_ctlr *ctlr;
struct fcoe_interface *fcoe; struct fcoe_interface *fcoe;
struct fcoe_port *port; struct fcoe_port *port;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
u32 link_possible = 1; u32 link_possible = 1;
u32 mfs; u32 mfs;
int rc = NOTIFY_OK; int rc = NOTIFY_OK;
...@@ -2024,7 +2024,7 @@ static int fcoe_device_notification(struct notifier_block *notifier, ...@@ -2024,7 +2024,7 @@ static int fcoe_device_notification(struct notifier_block *notifier,
if (link_possible && !fcoe_link_ok(lport)) if (link_possible && !fcoe_link_ok(lport))
fcoe_ctlr_link_up(ctlr); fcoe_ctlr_link_up(ctlr);
else if (fcoe_ctlr_link_down(ctlr)) { else if (fcoe_ctlr_link_down(ctlr)) {
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->LinkFailureCount++; stats->LinkFailureCount++;
put_cpu(); put_cpu();
fcoe_clean_pending_queue(lport); fcoe_clean_pending_queue(lport);
......
...@@ -788,11 +788,11 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) ...@@ -788,11 +788,11 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
unsigned long deadline; unsigned long deadline;
unsigned long sel_time = 0; unsigned long sel_time = 0;
struct list_head del_list; struct list_head del_list;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
INIT_LIST_HEAD(&del_list); INIT_LIST_HEAD(&del_list);
stats = per_cpu_ptr(fip->lp->dev_stats, get_cpu()); stats = per_cpu_ptr(fip->lp->stats, get_cpu());
list_for_each_entry_safe(fcf, next, &fip->fcfs, list) { list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2; deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2;
...@@ -1104,8 +1104,8 @@ static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb) ...@@ -1104,8 +1104,8 @@ static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb)
struct fc_frame_header *fh = NULL; struct fc_frame_header *fh = NULL;
struct fip_desc *desc; struct fip_desc *desc;
struct fip_encaps *els; struct fip_encaps *els;
struct fcoe_dev_stats *stats;
struct fcoe_fcf *sel; struct fcoe_fcf *sel;
struct fc_stats *stats;
enum fip_desc_type els_dtype = 0; enum fip_desc_type els_dtype = 0;
u8 els_op; u8 els_op;
u8 sub; u8 sub;
...@@ -1249,7 +1249,7 @@ static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb) ...@@ -1249,7 +1249,7 @@ static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb)
fr_dev(fp) = lport; fr_dev(fp) = lport;
fr_encaps(fp) = els_dtype; fr_encaps(fp) = els_dtype;
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->RxFrames++; stats->RxFrames++;
stats->RxWords += skb->len / FIP_BPW; stats->RxWords += skb->len / FIP_BPW;
put_cpu(); put_cpu();
...@@ -1353,7 +1353,7 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip, ...@@ -1353,7 +1353,7 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
ntoh24(vp->fd_fc_id)); ntoh24(vp->fd_fc_id));
if (vn_port && (vn_port == lport)) { if (vn_port && (vn_port == lport)) {
mutex_lock(&fip->ctlr_mutex); mutex_lock(&fip->ctlr_mutex);
per_cpu_ptr(lport->dev_stats, per_cpu_ptr(lport->stats,
get_cpu())->VLinkFailureCount++; get_cpu())->VLinkFailureCount++;
put_cpu(); put_cpu();
fcoe_ctlr_reset(fip); fcoe_ctlr_reset(fip);
...@@ -1383,8 +1383,7 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip, ...@@ -1383,8 +1383,7 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
* followed by physical port * followed by physical port
*/ */
mutex_lock(&fip->ctlr_mutex); mutex_lock(&fip->ctlr_mutex);
per_cpu_ptr(lport->dev_stats, per_cpu_ptr(lport->stats, get_cpu())->VLinkFailureCount++;
get_cpu())->VLinkFailureCount++;
put_cpu(); put_cpu();
fcoe_ctlr_reset(fip); fcoe_ctlr_reset(fip);
mutex_unlock(&fip->ctlr_mutex); mutex_unlock(&fip->ctlr_mutex);
......
...@@ -89,7 +89,7 @@ void __fcoe_get_lesb(struct fc_lport *lport, ...@@ -89,7 +89,7 @@ void __fcoe_get_lesb(struct fc_lport *lport,
{ {
unsigned int cpu; unsigned int cpu;
u32 lfc, vlfc, mdac; u32 lfc, vlfc, mdac;
struct fcoe_dev_stats *devst; struct fc_stats *stats;
struct fcoe_fc_els_lesb *lesb; struct fcoe_fc_els_lesb *lesb;
struct rtnl_link_stats64 temp; struct rtnl_link_stats64 temp;
...@@ -99,10 +99,10 @@ void __fcoe_get_lesb(struct fc_lport *lport, ...@@ -99,10 +99,10 @@ void __fcoe_get_lesb(struct fc_lport *lport,
lesb = (struct fcoe_fc_els_lesb *)fc_lesb; lesb = (struct fcoe_fc_els_lesb *)fc_lesb;
memset(lesb, 0, sizeof(*lesb)); memset(lesb, 0, sizeof(*lesb));
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
devst = per_cpu_ptr(lport->dev_stats, cpu); stats = per_cpu_ptr(lport->stats, cpu);
lfc += devst->LinkFailureCount; lfc += stats->LinkFailureCount;
vlfc += devst->VLinkFailureCount; vlfc += stats->VLinkFailureCount;
mdac += devst->MissDiscAdvCount; mdac += stats->MissDiscAdvCount;
} }
lesb->lesb_link_fail = htonl(lfc); lesb->lesb_link_fail = htonl(lfc);
lesb->lesb_vlink_fail = htonl(vlfc); lesb->lesb_vlink_fail = htonl(vlfc);
......
...@@ -124,7 +124,7 @@ struct fc_exch_mgr { ...@@ -124,7 +124,7 @@ struct fc_exch_mgr {
* for each anchor to determine if that EM should be used. The last * for each anchor to determine if that EM should be used. The last
* anchor in the list will always match to handle any exchanges not * anchor in the list will always match to handle any exchanges not
* handled by other EMs. The non-default EMs would be added to the * handled by other EMs. The non-default EMs would be added to the
* anchor list by HW that provides FCoE offloads. * anchor list by HW that provides offloads.
*/ */
struct fc_exch_mgr_anchor { struct fc_exch_mgr_anchor {
struct list_head ema_list; struct list_head ema_list;
...@@ -986,7 +986,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport, ...@@ -986,7 +986,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
/* /*
* Update sequence_id based on incoming last * Update sequence_id based on incoming last
* frame of sequence exchange. This is needed * frame of sequence exchange. This is needed
* for FCoE target where DDP has been used * for FC target where DDP has been used
* on target where, stack is indicated only * on target where, stack is indicated only
* about last frame's (payload _header) header. * about last frame's (payload _header) header.
* Whereas "seq_id" which is part of * Whereas "seq_id" which is part of
......
...@@ -434,7 +434,7 @@ static void fc_fcp_recv_data(struct fc_fcp_pkt *fsp, struct fc_frame *fp) ...@@ -434,7 +434,7 @@ static void fc_fcp_recv_data(struct fc_fcp_pkt *fsp, struct fc_frame *fp)
{ {
struct scsi_cmnd *sc = fsp->cmd; struct scsi_cmnd *sc = fsp->cmd;
struct fc_lport *lport = fsp->lp; struct fc_lport *lport = fsp->lp;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
struct fc_frame_header *fh; struct fc_frame_header *fh;
size_t start_offset; size_t start_offset;
size_t offset; size_t offset;
...@@ -496,7 +496,7 @@ static void fc_fcp_recv_data(struct fc_fcp_pkt *fsp, struct fc_frame *fp) ...@@ -496,7 +496,7 @@ static void fc_fcp_recv_data(struct fc_fcp_pkt *fsp, struct fc_frame *fp)
if (~crc != le32_to_cpu(fr_crc(fp))) { if (~crc != le32_to_cpu(fr_crc(fp))) {
crc_err: crc_err:
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
stats->ErrorFrames++; stats->ErrorFrames++;
/* per cpu count, not total count, but OK for limit */ /* per cpu count, not total count, but OK for limit */
if (stats->InvalidCRCCount++ < FC_MAX_ERROR_CNT) if (stats->InvalidCRCCount++ < FC_MAX_ERROR_CNT)
...@@ -1786,7 +1786,7 @@ int fc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *sc_cmd) ...@@ -1786,7 +1786,7 @@ int fc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *sc_cmd)
struct fc_rport_libfc_priv *rpriv; struct fc_rport_libfc_priv *rpriv;
int rval; int rval;
int rc = 0; int rc = 0;
struct fcoe_dev_stats *stats; struct fc_stats *stats;
rval = fc_remote_port_chkready(rport); rval = fc_remote_port_chkready(rport);
if (rval) { if (rval) {
...@@ -1835,7 +1835,7 @@ int fc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *sc_cmd) ...@@ -1835,7 +1835,7 @@ int fc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *sc_cmd)
/* /*
* setup the data direction * setup the data direction
*/ */
stats = per_cpu_ptr(lport->dev_stats, get_cpu()); stats = per_cpu_ptr(lport->stats, get_cpu());
if (sc_cmd->sc_data_direction == DMA_FROM_DEVICE) { if (sc_cmd->sc_data_direction == DMA_FROM_DEVICE) {
fsp->req_flags = FC_SRB_READ; fsp->req_flags = FC_SRB_READ;
stats->InputRequests++; stats->InputRequests++;
......
...@@ -49,7 +49,7 @@ u32 fc_frame_crc_check(struct fc_frame *fp) ...@@ -49,7 +49,7 @@ u32 fc_frame_crc_check(struct fc_frame *fp)
EXPORT_SYMBOL(fc_frame_crc_check); EXPORT_SYMBOL(fc_frame_crc_check);
/* /*
* Allocate a frame intended to be sent via fcoe_xmit. * Allocate a frame intended to be sent.
* Get an sk_buff for the frame and set the length. * Get an sk_buff for the frame and set the length.
*/ */
struct fc_frame *_fc_frame_alloc(size_t len) struct fc_frame *_fc_frame_alloc(size_t len)
......
...@@ -299,47 +299,47 @@ EXPORT_SYMBOL(fc_get_host_speed); ...@@ -299,47 +299,47 @@ EXPORT_SYMBOL(fc_get_host_speed);
*/ */
struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost) struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost)
{ {
struct fc_host_statistics *fcoe_stats; struct fc_host_statistics *fc_stats;
struct fc_lport *lport = shost_priv(shost); struct fc_lport *lport = shost_priv(shost);
struct timespec v0, v1; struct timespec v0, v1;
unsigned int cpu; unsigned int cpu;
u64 fcp_in_bytes = 0; u64 fcp_in_bytes = 0;
u64 fcp_out_bytes = 0; u64 fcp_out_bytes = 0;
fcoe_stats = &lport->host_stats; fc_stats = &lport->host_stats;
memset(fcoe_stats, 0, sizeof(struct fc_host_statistics)); memset(fc_stats, 0, sizeof(struct fc_host_statistics));
jiffies_to_timespec(jiffies, &v0); jiffies_to_timespec(jiffies, &v0);
jiffies_to_timespec(lport->boot_time, &v1); jiffies_to_timespec(lport->boot_time, &v1);
fcoe_stats->seconds_since_last_reset = (v0.tv_sec - v1.tv_sec); fc_stats->seconds_since_last_reset = (v0.tv_sec - v1.tv_sec);
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
struct fcoe_dev_stats *stats; struct fc_stats *stats;
stats = per_cpu_ptr(lport->dev_stats, cpu); stats = per_cpu_ptr(lport->stats, cpu);
fcoe_stats->tx_frames += stats->TxFrames; fc_stats->tx_frames += stats->TxFrames;
fcoe_stats->tx_words += stats->TxWords; fc_stats->tx_words += stats->TxWords;
fcoe_stats->rx_frames += stats->RxFrames; fc_stats->rx_frames += stats->RxFrames;
fcoe_stats->rx_words += stats->RxWords; fc_stats->rx_words += stats->RxWords;
fcoe_stats->error_frames += stats->ErrorFrames; fc_stats->error_frames += stats->ErrorFrames;
fcoe_stats->invalid_crc_count += stats->InvalidCRCCount; fc_stats->invalid_crc_count += stats->InvalidCRCCount;
fcoe_stats->fcp_input_requests += stats->InputRequests; fc_stats->fcp_input_requests += stats->InputRequests;
fcoe_stats->fcp_output_requests += stats->OutputRequests; fc_stats->fcp_output_requests += stats->OutputRequests;
fcoe_stats->fcp_control_requests += stats->ControlRequests; fc_stats->fcp_control_requests += stats->ControlRequests;
fcp_in_bytes += stats->InputBytes; fcp_in_bytes += stats->InputBytes;
fcp_out_bytes += stats->OutputBytes; fcp_out_bytes += stats->OutputBytes;
fcoe_stats->link_failure_count += stats->LinkFailureCount; fc_stats->link_failure_count += stats->LinkFailureCount;
} }
fcoe_stats->fcp_input_megabytes = div_u64(fcp_in_bytes, 1000000); fc_stats->fcp_input_megabytes = div_u64(fcp_in_bytes, 1000000);
fcoe_stats->fcp_output_megabytes = div_u64(fcp_out_bytes, 1000000); fc_stats->fcp_output_megabytes = div_u64(fcp_out_bytes, 1000000);
fcoe_stats->lip_count = -1; fc_stats->lip_count = -1;
fcoe_stats->nos_count = -1; fc_stats->nos_count = -1;
fcoe_stats->loss_of_sync_count = -1; fc_stats->loss_of_sync_count = -1;
fcoe_stats->loss_of_signal_count = -1; fc_stats->loss_of_signal_count = -1;
fcoe_stats->prim_seq_protocol_err_count = -1; fc_stats->prim_seq_protocol_err_count = -1;
fcoe_stats->dumped_frames = -1; fc_stats->dumped_frames = -1;
return fcoe_stats; return fc_stats;
} }
EXPORT_SYMBOL(fc_get_host_stats); EXPORT_SYMBOL(fc_get_host_stats);
......
...@@ -224,7 +224,7 @@ struct fc_rport_priv { ...@@ -224,7 +224,7 @@ struct fc_rport_priv {
}; };
/** /**
* struct fcoe_dev_stats - fcoe stats structure * struct fc_stats - fc stats structure
* @SecondsSinceLastReset: Seconds since the last reset * @SecondsSinceLastReset: Seconds since the last reset
* @TxFrames: Number of transmitted frames * @TxFrames: Number of transmitted frames
* @TxWords: Number of transmitted words * @TxWords: Number of transmitted words
...@@ -244,7 +244,7 @@ struct fc_rport_priv { ...@@ -244,7 +244,7 @@ struct fc_rport_priv {
* @VLinkFailureCount: Number of virtual link failures * @VLinkFailureCount: Number of virtual link failures
* @MissDiscAdvCount: Number of missing FIP discovery advertisement * @MissDiscAdvCount: Number of missing FIP discovery advertisement
*/ */
struct fcoe_dev_stats { struct fc_stats {
u64 SecondsSinceLastReset; u64 SecondsSinceLastReset;
u64 TxFrames; u64 TxFrames;
u64 TxWords; u64 TxWords;
...@@ -510,7 +510,7 @@ struct libfc_function_template { ...@@ -510,7 +510,7 @@ struct libfc_function_template {
int (*ddp_done)(struct fc_lport *, u16); int (*ddp_done)(struct fc_lport *, u16);
/* /*
* Sets up the DDP context for a given exchange id on the given * Sets up the DDP context for a given exchange id on the given
* scatterlist if LLD supports DDP for FCoE target. * scatterlist if LLD supports DDP for target.
* *
* STATUS: OPTIONAL * STATUS: OPTIONAL
*/ */
...@@ -817,8 +817,7 @@ enum fc_lport_event { ...@@ -817,8 +817,7 @@ enum fc_lport_event {
* @state: Identifies the state * @state: Identifies the state
* @boot_time: Timestamp indicating when the local port came online * @boot_time: Timestamp indicating when the local port came online
* @host_stats: SCSI host statistics * @host_stats: SCSI host statistics
* @dev_stats: FCoE device stats (TODO: libfc should not be * @stats: FC local port stats (TODO separate libfc LLD stats)
* FCoE aware)
* @retry_count: Number of retries in the current state * @retry_count: Number of retries in the current state
* @port_id: FC Port ID * @port_id: FC Port ID
* @wwpn: World Wide Port Name * @wwpn: World Wide Port Name
...@@ -867,7 +866,7 @@ struct fc_lport { ...@@ -867,7 +866,7 @@ struct fc_lport {
enum fc_lport_state state; enum fc_lport_state state;
unsigned long boot_time; unsigned long boot_time;
struct fc_host_statistics host_stats; struct fc_host_statistics host_stats;
struct fcoe_dev_stats __percpu *dev_stats; struct fc_stats __percpu *stats;
u8 retry_count; u8 retry_count;
/* Fabric information */ /* Fabric information */
...@@ -980,8 +979,8 @@ static inline void fc_lport_state_enter(struct fc_lport *lport, ...@@ -980,8 +979,8 @@ static inline void fc_lport_state_enter(struct fc_lport *lport,
*/ */
static inline int fc_lport_init_stats(struct fc_lport *lport) static inline int fc_lport_init_stats(struct fc_lport *lport)
{ {
lport->dev_stats = alloc_percpu(struct fcoe_dev_stats); lport->stats = alloc_percpu(struct fc_stats);
if (!lport->dev_stats) if (!lport->stats)
return -ENOMEM; return -ENOMEM;
return 0; return 0;
} }
...@@ -992,7 +991,7 @@ static inline int fc_lport_init_stats(struct fc_lport *lport) ...@@ -992,7 +991,7 @@ static inline int fc_lport_init_stats(struct fc_lport *lport)
*/ */
static inline void fc_lport_free_stats(struct fc_lport *lport) static inline void fc_lport_free_stats(struct fc_lport *lport)
{ {
free_percpu(lport->dev_stats); free_percpu(lport->stats);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment