9 #define KMSG_COMPONENT "zfcp"
10 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
12 #include <linux/module.h>
13 #include <linux/ctype.h>
14 #include <linux/slab.h>
15 #include <asm/debug.h>
20 static u32 dbfsize = 4;
24 "number of pages for each debug feature area (default 4)");
26 static inline unsigned int zfcp_dbf_plen(
unsigned int offset)
39 memset(pl, 0,
sizeof(*pl));
43 while (offset < length) {
45 (
u16) (length - offset));
47 debug_event(dbf->
pay, 1, pl, zfcp_dbf_plen(rec_length));
70 memset(rec, 0,
sizeof(*rec));
89 zfcp_dbf_pl_write(dbf, (
char *)q_pref + q_head->
log_start,
93 debug_event(dbf->
hba, 1, rec,
sizeof(*rec));
94 spin_unlock_irqrestore(&dbf->
hba_lock, flags);
110 memset(rec, 0,
sizeof(*rec));
126 sizeof(rec->
u.
uss.queue_designator));
136 debug_event(dbf->
hba, 2, rec,
sizeof(*rec));
137 spin_unlock_irqrestore(&dbf->
hba_lock, flags);
153 memset(rec, 0,
sizeof(*rec));
163 debug_event(dbf->
hba, 1, rec,
sizeof(*rec));
164 spin_unlock_irqrestore(&dbf->
hba_lock, flags);
186 memset(payload, 0,
sizeof(*payload));
192 (
u16)ZFCP_DBF_PAY_MAX_REC);
194 while (payload->
counter < scount && (
char *)pl[payload->
counter]) {
196 debug_event(dbf->
pay, 1, payload, zfcp_dbf_plen(length));
200 spin_unlock_irqrestore(&dbf->
pay_lock, flags);
214 memset(rec, 0,
sizeof(*rec));
219 debug_event(dbf->
hba, 1, rec,
sizeof(*rec));
220 spin_unlock_irqrestore(&dbf->
hba_lock, flags);
223 static void zfcp_dbf_set_common(
struct zfcp_dbf_rec *rec,
236 rec->
lun = zfcp_scsi_dev_lun(sdev);
261 memset(rec, 0,
sizeof(*rec));
265 zfcp_dbf_set_common(rec, adapter, port, sdev);
271 rec->
u.
trig.running++;
273 rec->
u.
trig.want = want;
274 rec->
u.
trig.need = need;
276 debug_event(dbf->
rec, 1, rec,
sizeof(*rec));
277 spin_unlock_irqrestore(&dbf->
rec_lock, flags);
293 memset(rec, 0,
sizeof(*rec));
305 rec->
u.
run.rec_count =
312 debug_event(dbf->
rec, 1, rec,
sizeof(*rec));
313 spin_unlock_irqrestore(&dbf->
rec_lock, flags);
325 memset(rec, 0,
sizeof(*rec));
334 debug_event(dbf->
san, 1, rec,
sizeof(*rec));
335 spin_unlock_irqrestore(&dbf->
san_lock, flags);
406 memset(rec, 0,
sizeof(*rec));
410 rec->scsi_result = sc->
result;
411 rec->scsi_retries = sc->
retries;
412 rec->scsi_allowed = sc->
allowed;
413 rec->scsi_id = sc->
device->id;
414 rec->scsi_lun = sc->
device->lun;
423 &(fsf->
qtcb->bottom.io.fcp_rsp);
427 rec->fcp_rsp_info = fcp_rsp_info->rsp_code;
431 (
u16)ZFCP_DBF_PAY_MAX_REC);
437 debug_event(dbf->
scsi, 1, rec,
sizeof(*rec));
438 spin_unlock_irqrestore(&dbf->
scsi_lock, flags);
455 static void zfcp_dbf_unregister(
struct zfcp_dbf *dbf)
502 dbf->
pay = zfcp_dbf_reg(name, dbfsize * 2,
sizeof(
struct zfcp_dbf_pay));
522 zfcp_dbf_unregister(dbf);
535 zfcp_dbf_unregister(dbf);