diff options
Diffstat (limited to 'drivers/scsi/fnic/fnic_isr.c')
-rw-r--r-- | drivers/scsi/fnic/fnic_isr.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/scsi/fnic/fnic_isr.c b/drivers/scsi/fnic/fnic_isr.c index 5c1f223cabce..7d9b54ae7f62 100644 --- a/drivers/scsi/fnic/fnic_isr.c +++ b/drivers/scsi/fnic/fnic_isr.c | |||
@@ -37,6 +37,9 @@ static irqreturn_t fnic_isr_legacy(int irq, void *data) | |||
37 | if (!pba) | 37 | if (!pba) |
38 | return IRQ_NONE; | 38 | return IRQ_NONE; |
39 | 39 | ||
40 | fnic->fnic_stats.misc_stats.last_isr_time = jiffies; | ||
41 | atomic64_inc(&fnic->fnic_stats.misc_stats.isr_count); | ||
42 | |||
40 | if (pba & (1 << FNIC_INTX_NOTIFY)) { | 43 | if (pba & (1 << FNIC_INTX_NOTIFY)) { |
41 | vnic_intr_return_all_credits(&fnic->intr[FNIC_INTX_NOTIFY]); | 44 | vnic_intr_return_all_credits(&fnic->intr[FNIC_INTX_NOTIFY]); |
42 | fnic_handle_link_event(fnic); | 45 | fnic_handle_link_event(fnic); |
@@ -66,6 +69,9 @@ static irqreturn_t fnic_isr_msi(int irq, void *data) | |||
66 | struct fnic *fnic = data; | 69 | struct fnic *fnic = data; |
67 | unsigned long work_done = 0; | 70 | unsigned long work_done = 0; |
68 | 71 | ||
72 | fnic->fnic_stats.misc_stats.last_isr_time = jiffies; | ||
73 | atomic64_inc(&fnic->fnic_stats.misc_stats.isr_count); | ||
74 | |||
69 | work_done += fnic_wq_copy_cmpl_handler(fnic, -1); | 75 | work_done += fnic_wq_copy_cmpl_handler(fnic, -1); |
70 | work_done += fnic_wq_cmpl_handler(fnic, -1); | 76 | work_done += fnic_wq_cmpl_handler(fnic, -1); |
71 | work_done += fnic_rq_cmpl_handler(fnic, -1); | 77 | work_done += fnic_rq_cmpl_handler(fnic, -1); |
@@ -83,6 +89,9 @@ static irqreturn_t fnic_isr_msix_rq(int irq, void *data) | |||
83 | struct fnic *fnic = data; | 89 | struct fnic *fnic = data; |
84 | unsigned long rq_work_done = 0; | 90 | unsigned long rq_work_done = 0; |
85 | 91 | ||
92 | fnic->fnic_stats.misc_stats.last_isr_time = jiffies; | ||
93 | atomic64_inc(&fnic->fnic_stats.misc_stats.isr_count); | ||
94 | |||
86 | rq_work_done = fnic_rq_cmpl_handler(fnic, -1); | 95 | rq_work_done = fnic_rq_cmpl_handler(fnic, -1); |
87 | vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_RQ], | 96 | vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_RQ], |
88 | rq_work_done, | 97 | rq_work_done, |
@@ -97,6 +106,9 @@ static irqreturn_t fnic_isr_msix_wq(int irq, void *data) | |||
97 | struct fnic *fnic = data; | 106 | struct fnic *fnic = data; |
98 | unsigned long wq_work_done = 0; | 107 | unsigned long wq_work_done = 0; |
99 | 108 | ||
109 | fnic->fnic_stats.misc_stats.last_isr_time = jiffies; | ||
110 | atomic64_inc(&fnic->fnic_stats.misc_stats.isr_count); | ||
111 | |||
100 | wq_work_done = fnic_wq_cmpl_handler(fnic, -1); | 112 | wq_work_done = fnic_wq_cmpl_handler(fnic, -1); |
101 | vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_WQ], | 113 | vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_WQ], |
102 | wq_work_done, | 114 | wq_work_done, |
@@ -110,6 +122,9 @@ static irqreturn_t fnic_isr_msix_wq_copy(int irq, void *data) | |||
110 | struct fnic *fnic = data; | 122 | struct fnic *fnic = data; |
111 | unsigned long wq_copy_work_done = 0; | 123 | unsigned long wq_copy_work_done = 0; |
112 | 124 | ||
125 | fnic->fnic_stats.misc_stats.last_isr_time = jiffies; | ||
126 | atomic64_inc(&fnic->fnic_stats.misc_stats.isr_count); | ||
127 | |||
113 | wq_copy_work_done = fnic_wq_copy_cmpl_handler(fnic, -1); | 128 | wq_copy_work_done = fnic_wq_copy_cmpl_handler(fnic, -1); |
114 | vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_WQ_COPY], | 129 | vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_WQ_COPY], |
115 | wq_copy_work_done, | 130 | wq_copy_work_done, |
@@ -122,6 +137,9 @@ static irqreturn_t fnic_isr_msix_err_notify(int irq, void *data) | |||
122 | { | 137 | { |
123 | struct fnic *fnic = data; | 138 | struct fnic *fnic = data; |
124 | 139 | ||
140 | fnic->fnic_stats.misc_stats.last_isr_time = jiffies; | ||
141 | atomic64_inc(&fnic->fnic_stats.misc_stats.isr_count); | ||
142 | |||
125 | vnic_intr_return_all_credits(&fnic->intr[FNIC_MSIX_ERR_NOTIFY]); | 143 | vnic_intr_return_all_credits(&fnic->intr[FNIC_MSIX_ERR_NOTIFY]); |
126 | fnic_log_q_error(fnic); | 144 | fnic_log_q_error(fnic); |
127 | fnic_handle_link_event(fnic); | 145 | fnic_handle_link_event(fnic); |