aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_dbf.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi/zfcp_dbf.c')
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c59
1 files changed, 1 insertions, 58 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index e1a8cc2526e..96d1462e0bf 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -3,13 +3,12 @@
3 * 3 *
4 * Debug traces for zfcp. 4 * Debug traces for zfcp.
5 * 5 *
6 * Copyright IBM Corp. 2002, 2010 6 * Copyright IBM Corporation 2002, 2010
7 */ 7 */
8 8
9#define KMSG_COMPONENT "zfcp" 9#define KMSG_COMPONENT "zfcp"
10#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt 10#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
11 11
12#include <linux/module.h>
13#include <linux/ctype.h> 12#include <linux/ctype.h>
14#include <linux/slab.h> 13#include <linux/slab.h>
15#include <asm/debug.h> 14#include <asm/debug.h>
@@ -164,62 +163,6 @@ void zfcp_dbf_hba_bit_err(char *tag, struct zfcp_fsf_req *req)
164 spin_unlock_irqrestore(&dbf->hba_lock, flags); 163 spin_unlock_irqrestore(&dbf->hba_lock, flags);
165} 164}
166 165
167/**
168 * zfcp_dbf_hba_def_err - trace event for deferred error messages
169 * @adapter: pointer to struct zfcp_adapter
170 * @req_id: request id which caused the deferred error message
171 * @scount: number of sbals incl. the signaling sbal
172 * @pl: array of all involved sbals
173 */
174void zfcp_dbf_hba_def_err(struct zfcp_adapter *adapter, u64 req_id, u16 scount,
175 void **pl)
176{
177 struct zfcp_dbf *dbf = adapter->dbf;
178 struct zfcp_dbf_pay *payload = &dbf->pay_buf;
179 unsigned long flags;
180 u16 length;
181
182 if (!pl)
183 return;
184
185 spin_lock_irqsave(&dbf->pay_lock, flags);
186 memset(payload, 0, sizeof(*payload));
187
188 memcpy(payload->area, "def_err", 7);
189 payload->fsf_req_id = req_id;
190 payload->counter = 0;
191 length = min((u16)sizeof(struct qdio_buffer),
192 (u16)ZFCP_DBF_PAY_MAX_REC);
193
194 while (payload->counter < scount && (char *)pl[payload->counter]) {
195 memcpy(payload->data, (char *)pl[payload->counter], length);
196 debug_event(dbf->pay, 1, payload, zfcp_dbf_plen(length));
197 payload->counter++;
198 }
199
200 spin_unlock_irqrestore(&dbf->pay_lock, flags);
201}
202
203/**
204 * zfcp_dbf_hba_basic - trace event for basic adapter events
205 * @adapter: pointer to struct zfcp_adapter
206 */
207void zfcp_dbf_hba_basic(char *tag, struct zfcp_adapter *adapter)
208{
209 struct zfcp_dbf *dbf = adapter->dbf;
210 struct zfcp_dbf_hba *rec = &dbf->hba_buf;
211 unsigned long flags;
212
213 spin_lock_irqsave(&dbf->hba_lock, flags);
214 memset(rec, 0, sizeof(*rec));
215
216 memcpy(rec->tag, tag, ZFCP_DBF_TAG_LEN);
217 rec->id = ZFCP_DBF_HBA_BASIC;
218
219 debug_event(dbf->hba, 1, rec, sizeof(*rec));
220 spin_unlock_irqrestore(&dbf->hba_lock, flags);
221}
222
223static void zfcp_dbf_set_common(struct zfcp_dbf_rec *rec, 166static void zfcp_dbf_set_common(struct zfcp_dbf_rec *rec,
224 struct zfcp_adapter *adapter, 167 struct zfcp_adapter *adapter,
225 struct zfcp_port *port, 168 struct zfcp_port *port,