Patch from Bart Van Assche <bart.vanassche@gmail.com>, except few chuncks from qla2x0...
authorvlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Mon, 19 May 2008 10:21:41 +0000 (10:21 +0000)
committervlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Mon, 19 May 2008 10:21:41 +0000 (10:21 +0000)
One of the Linux kernel patch submission requirements is that source files do
not contain trailing whitespace. The patch below removes trailing whitespace
from .c and .h source files.

Note: it might be more convenient to run the script I used to generate this
patch than to review and apply the patch below. This is how I generated and
verified the patch below:

cat <<EOF >./strip-trailing-whitespace
#!/bin/bash
trap "rm -f $t" EXIT
t=/tmp/temporary-file.$$
for f in "$@"
do
  sed 's/[  ]*$//' <"$f" >"$t" && mv "$t" "$f"
done
EOF
chmod a+x ./strip-trailing-whitespace
find -name '*.[ch]' | xargs ./strip-trailing-whitespace
svn diff -x -w

Signed-off-by: <bart.vanassche@gmail.com>
git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@377 d57e44dd-8a1f-0410-8b47-8ef2f437770f

105 files changed:
iscsi-scst/include/iscsi_scst.h
iscsi-scst/include/iscsi_scst_ver.h
iscsi-scst/kernel/config.c
iscsi-scst/kernel/conn.c
iscsi-scst/kernel/digest.c
iscsi-scst/kernel/digest.h
iscsi-scst/kernel/event.c
iscsi-scst/kernel/iscsi.c
iscsi-scst/kernel/iscsi.h
iscsi-scst/kernel/iscsi_dbg.h
iscsi-scst/kernel/iscsi_hdr.h
iscsi-scst/kernel/nthread.c
iscsi-scst/kernel/param.c
iscsi-scst/kernel/session.c
iscsi-scst/kernel/target.c
iscsi-scst/usr/chap.c
iscsi-scst/usr/config.h
iscsi-scst/usr/conn.c
iscsi-scst/usr/ctldev.c
iscsi-scst/usr/event.c
iscsi-scst/usr/iscsi_adm.c
iscsi-scst/usr/iscsi_adm.h
iscsi-scst/usr/iscsi_hdr.h
iscsi-scst/usr/iscsi_scstd.c
iscsi-scst/usr/iscsid.c
iscsi-scst/usr/iscsid.h
iscsi-scst/usr/log.c
iscsi-scst/usr/message.c
iscsi-scst/usr/misc.h
iscsi-scst/usr/param.c
iscsi-scst/usr/param.h
iscsi-scst/usr/plain.c
iscsi-scst/usr/session.c
iscsi-scst/usr/target.c
iscsi-scst/usr/types.h
mpt/mpt_scst.c
mpt/mpt_scst.h
qla2x00t/qla2x00-target/qla2x00t.c
qla2x00t/qla2x00-target/qla2x00t.h
qla2x00t/qla2x_tgt.h
qla2x00t/qla2x_tgt_def.h
qla2x00t/qla_attr.c
qla2x00t/qla_dbg.c
qla2x00t/qla_init.c
qla2x00t/qla_isr.c
qla2x00t/qla_os.c
qla_isp/common/isp.c
qla_isp/common/isp_library.c
qla_isp/common/isp_library.h
qla_isp/common/isp_stds.h
qla_isp/common/isp_target.c
qla_isp/common/isp_target.h
qla_isp/common/isp_tpublic.h
qla_isp/common/ispmbox.h
qla_isp/common/ispreg.h
qla_isp/common/ispvar.h
qla_isp/firmware/asm_1000.h
qla_isp/firmware/asm_1040.h
qla_isp/firmware/asm_1080.h
qla_isp/firmware/asm_12160.h
qla_isp/firmware/asm_2100.h
qla_isp/firmware/asm_2200.h
qla_isp/firmware/asm_2300.h
qla_isp/firmware/asm_2322.h
qla_isp/firmware/asm_2400.h
qla_isp/linux/exioct.h
qla_isp/linux/exioctln.h
qla_isp/linux/isp_cb_ops.c
qla_isp/linux/isp_ioctl.h
qla_isp/linux/isp_linux.c
qla_isp/linux/isp_linux.h
qla_isp/linux/isp_pci.c
qla_isp/linux/scsi_target.c
qla_isp/linux/scsi_target.h
qla_isp/linux/scsi_target_ctl.c
scst/include/scst.h
scst/include/scst_const.h
scst/include/scst_debug.h
scst/include/scst_user.h
scst/src/dev_handlers/scst_cdrom.c
scst/src/dev_handlers/scst_changer.c
scst/src/dev_handlers/scst_dev_handler.h
scst/src/dev_handlers/scst_disk.c
scst/src/dev_handlers/scst_modisk.c
scst/src/dev_handlers/scst_processor.c
scst/src/dev_handlers/scst_raid.c
scst/src/dev_handlers/scst_tape.c
scst/src/dev_handlers/scst_user.c
scst/src/dev_handlers/scst_vdisk.c
scst/src/scst_cdbprobe.h
scst/src/scst_debug.c
scst/src/scst_lib.c
scst/src/scst_main.c
scst/src/scst_mem.c
scst/src/scst_mem.h
scst/src/scst_module.c
scst/src/scst_priv.h
scst/src/scst_proc.c
scst/src/scst_targ.c
srpt/src/ib_srpt.c
usr/fileio/common.c
usr/fileio/common.h
usr/fileio/debug.c
usr/fileio/debug.h
usr/fileio/fileio.c

index 4a1c9a7..cbf374d 100644 (file)
@@ -1,12 +1,12 @@
 /*
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index dc90abb..cba6dca 100644 (file)
@@ -1,12 +1,12 @@
 /*
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 2900138..0c933d2 100644 (file)
@@ -2,11 +2,11 @@
  *  Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -505,7 +505,7 @@ void iscsi_dump_iov(struct msghdr *msg)
        if (trace_flag & TRACE_D_IOV) {
                int i;
                printk("%p, %zd\n", msg->msg_iov, msg->msg_iovlen);
-               for (i = 0; i < min_t(size_t, msg->msg_iovlen, 
+               for (i = 0; i < min_t(size_t, msg->msg_iovlen,
                                ISCSI_CONN_IOV_MAX); i++) {
                        printk("%d: %p,%zd\n", i, msg->msg_iov[i].iov_base,
                                msg->msg_iov[i].iov_len);
index 6e3f1e7..c9f7197 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index fea0dd5..84b981d 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2004 - 2006 Xiranet Communications GmbH <arne.redlich@xiranet.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -117,7 +117,7 @@ static u32 digest_data(struct iscsi_cmnd *cmd, u32 osize, u32 offset)
        offset += sg[0].offset;
        idx = offset >> PAGE_SHIFT;
        offset &= ~PAGE_MASK;
-       
+
        count = get_pgcnt(size, offset);
 
        TRACE_DBG("req %p, idx %d, count %d, sg_cnt %d, size %d, "
@@ -209,7 +209,7 @@ void digest_tx_data(struct iscsi_cmnd *cmnd)
                offset = 0;
        }
 
-       /* 
+       /*
         * cmnd is used here regardless of its sg comes from parent or was
         * allocated for this cmnd only, see cmnd_send_pdu()
         */
index 82da3a3..935a888 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2004 Xiranet Communications GmbH <arne.redlich@xiranet.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 480bc9c..b77b96f 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 72bf9a3..4a59dc8 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -148,7 +148,7 @@ struct iscsi_cmnd *cmnd_alloc(struct iscsi_conn *conn, struct iscsi_cmnd *parent
 
 #ifdef NET_PAGE_CALLBACKS_DEFINED
                atomic_set(&cmnd->net_ref_cnt, 0);
-#endif         
+#endif
                spin_lock_init(&cmnd->rsp_cmd_lock);
                INIT_LIST_HEAD(&cmnd->rsp_cmd_list);
                INIT_LIST_HEAD(&cmnd->rx_ddigest_cmd_list);
@@ -382,7 +382,7 @@ again_rsp:
 
 /*
  * Corresponding conn may also gets destroyed atfer this function, except only
- * if it's called from the read thread! 
+ * if it's called from the read thread!
  */
 void req_cmnd_release(struct iscsi_cmnd *req)
 {
@@ -437,7 +437,7 @@ void req_cmnd_release(struct iscsi_cmnd *req)
 
 /*
  * Corresponding conn may also gets destroyed atfer this function, except only
- * if it's called from the read thread! 
+ * if it's called from the read thread!
  */
 void rsp_cmnd_release(struct iscsi_cmnd *cmnd)
 {
@@ -458,7 +458,7 @@ void rsp_cmnd_release(struct iscsi_cmnd *cmnd)
 /**
  * create a new command used as response.
  *
- * iscsi_cmnd_create_rsp_cmnd - 
+ * iscsi_cmnd_create_rsp_cmnd -
  * @cmnd: ptr to request command
  *
  * @return    ptr to response command or NULL
@@ -494,7 +494,7 @@ static inline struct iscsi_cmnd *get_rsp_cmnd(struct iscsi_cmnd *req)
 
 static void iscsi_cmnds_init_write(struct list_head *send, int flags)
 {
-       struct iscsi_cmnd *rsp = list_entry(send->next, struct iscsi_cmnd, 
+       struct iscsi_cmnd *rsp = list_entry(send->next, struct iscsi_cmnd,
                                                write_list_entry);
        struct iscsi_conn *conn = rsp->conn;
        struct list_head *pos, *next;
@@ -572,7 +572,7 @@ static void iscsi_set_datasize(struct iscsi_cmnd *cmnd, u32 offset, u32 size)
                u8 *p = (u8*)page_address(sg_page(&cmnd->sg[idx])) +
                        (last_off & ~PAGE_MASK);
                int i = 4 - (size & 3);
-               while(i--) 
+               while(i--)
                    *p++ = 0;
        }
 }
@@ -679,7 +679,7 @@ static struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, int status,
                if (rsp->bufflen - rsp->pdu.datasize) {
                    int i = rsp->pdu.datasize;
                    u8 *p = (u8 *)sense + i;
-                   
+
                    while (i < rsp->bufflen) {
                        *p ++ = 0;
                        i++;
@@ -747,7 +747,7 @@ static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason)
 
 static inline int iscsi_get_allowed_cmds(struct iscsi_session *sess)
 {
-       int res = max(-1, (int)sess->max_queued_cmnds - 
+       int res = max(-1, (int)sess->max_queued_cmnds -
                                atomic_read(&sess->active_cmds)-1);
        TRACE_DBG("allowed cmds %d (sess %p, active_cmds %d)", res,
                sess, atomic_read(&sess->active_cmds));
@@ -1165,7 +1165,7 @@ static int iscsi_pre_exec(struct scst_cmd *scst_cmd)
                                SCST_LOAD_SENSE(iscsi_sense_crc_error));
                        res = SCST_PREPROCESS_STATUS_ERROR_SENSE_SET;
                        /*
-                        * The rest of rx_ddigest_cmd_list will be freed 
+                        * The rest of rx_ddigest_cmd_list will be freed
                         * in req_cmnd_release()
                         */
                        goto out;
@@ -1562,7 +1562,7 @@ static void __cmnd_abort(struct iscsi_cmnd *cmnd)
        /*
         * Here, if cmnd is data_waiting, we should iscsi_fail_waiting_cmnd()
         * it. But, since this function can be called from any thread, not only
-        * from the read one, we at the moment can't do that, because of 
+        * from the read one, we at the moment can't do that, because of
         * absence of appropriate locking protection. But this isn't a stuff
         * for 0.9.6. So, currently a misbehaving initiator, not sending
         * data in R2T state for a sharing between targets device, for which
@@ -2479,7 +2479,7 @@ static void iscsi_preprocessing_done(struct scst_cmd *scst_cmd)
        return;
 }
 
-/* 
+/*
  * No locks.
  *
  * IMPORTANT! Connection conn must be protected by additional conn_get()
@@ -2611,7 +2611,7 @@ static int iscsi_xmit_response(struct scst_cmd *scst_cmd)
        }
 
        if (req->bufflen != 0) {
-               /* 
+               /*
                 * Check above makes sure that is_send_status is set,
                 * so status is valid here, but in future that could change.
                 * ToDo
@@ -2967,7 +2967,7 @@ out_reg:
 out_callb:
 #ifdef NET_PAGE_CALLBACKS_DEFINED
        net_set_get_put_page_callbacks(NULL, NULL);
-#endif 
+#endif
        goto out;
 }
 
index cb3c039..cd374fd 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -124,7 +124,7 @@ struct iscsi_session {
 #define ISCSI_CONN_IOV_MAX                     (PAGE_SIZE/sizeof(struct iovec))
 
 #define ISCSI_CONN_RD_STATE_IDLE               0
-#define ISCSI_CONN_RD_STATE_IN_LIST            1               
+#define ISCSI_CONN_RD_STATE_IN_LIST            1
 #define ISCSI_CONN_RD_STATE_PROCESSING         2
 
 #define ISCSI_CONN_WR_STATE_IDLE               0
@@ -137,7 +137,7 @@ struct iscsi_conn {
 
        /* Both protected by session->sn_lock */
        u32 stat_sn;
-       u32 exp_stat_sn;        
+       u32 exp_stat_sn;
 
        spinlock_t cmd_list_lock; /* BH lock */
 
@@ -235,7 +235,7 @@ typedef void (iscsi_show_info_t)(struct seq_file *seq, struct iscsi_target *targ
 #define ISCSI_REJECT_CMD                  2
 #define ISCSI_REJECT_DATA                 3
 
-/* 
+/*
  * Most of the fields don't need any protection, since accessed from only a
  * single thread, except where noted.
  */
@@ -287,7 +287,7 @@ struct iscsi_cmnd {
        unsigned long write_timeout;
 
        /*
-        * Unprotected, since could be accessed from only a single 
+        * Unprotected, since could be accessed from only a single
         * thread at time
         */
        struct list_head rx_ddigest_cmd_list;
@@ -538,7 +538,7 @@ static inline void conn_put(struct iscsi_conn *conn)
                atomic_read(&conn->conn_ref_cnt)-1);
        sBUG_ON(atomic_read(&conn->conn_ref_cnt) == 0);
 
-       /* 
+       /*
         * It always ordered to protect from undesired side effects like
         * accessing just destroyed object because of this *_dec() reordering.
         */
index 8f76aac..066e448 100644 (file)
@@ -1,12 +1,12 @@
 /*
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 335ca88..c33d3c8 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 3a6e051..4f40353 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -398,7 +398,7 @@ static void close_conn(struct iscsi_conn *conn)
                                }
 
                                sBUG_ON(cmnd->parent_req != NULL);
-                               
+
                                spin_lock_bh(&cmnd->rsp_cmd_lock);
                                list_for_each_entry(rsp, &cmnd->rsp_cmd_list, rsp_cmd_list_entry) {
                                        TRACE_CONN_CLOSE_DBG("  rsp %p, ref_cnt %d, net_ref_cnt %d, "
@@ -1012,7 +1012,7 @@ retry:
                                break;
                        goto out_iov;
                }
-               sBUG_ON(iop > conn->write_iov + 
+               sBUG_ON(iop > conn->write_iov +
                        sizeof(conn->write_iov)/sizeof(conn->write_iov[0]));
                iop->iov_base += rest;
                iop->iov_len -= rest;
@@ -1082,7 +1082,7 @@ retry:
 retry2:
                        res = sendpage(sock, sg_page(&sg[idx]), offset, size, flags);
                        TRACE_WRITE("Final %s %#Lx:%u: %d(%lu,%u,%u, cmd %p, page %p)",
-                               (sendpage != sock_no_sendpage) ? "sendpage" : 
+                               (sendpage != sock_no_sendpage) ? "sendpage" :
                                                                 "sock_no_sendpage",
                                conn->session->sid, conn->cid,
                                res, sg_page(&sg[idx])->index, offset, size,
@@ -1110,7 +1110,7 @@ retry1:
                res = sendpage(sock, sg_page(&sg[idx]), offset, sendsize,
                        flags | MSG_MORE);
                TRACE_WRITE("%s %#Lx:%u: %d(%lu,%u,%u, cmd %p, page %p)",
-                       (sendpage != sock_no_sendpage) ? "sendpage" : 
+                       (sendpage != sock_no_sendpage) ? "sendpage" :
                                                         "sock_no_sendpage",
                        (unsigned long long)conn->session->sid, conn->cid,
                        res, sg_page(&sg[idx])->index, offset, sendsize,
@@ -1257,7 +1257,7 @@ static int iscsi_do_send(struct iscsi_conn *conn, int state)
        return res;
 }
 
-/* 
+/*
  * No locks, conn is wr processing.
  *
  * IMPORTANT! Connection conn must be protected by additional conn_get()
@@ -1288,7 +1288,7 @@ int iscsi_send(struct iscsi_conn *conn)
                    init_tx_hdigest(cmnd);
                conn->write_state = TX_BHS_DATA;
        case TX_BHS_DATA:
-               res = iscsi_do_send(conn, ddigest && cmnd->pdu.datasize ? 
+               res = iscsi_do_send(conn, ddigest && cmnd->pdu.datasize ?
                                        TX_INIT_DDIGEST : TX_END);
                if (res <= 0 || conn->write_state != TX_INIT_DDIGEST)
                        break;
index b0d1822..0a64fed 100644 (file)
@@ -2,11 +2,11 @@
  *  Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index cab228e..3577407 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index cd47941..37b3e0b 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 1fdee6f..b8266f5 100644 (file)
@@ -15,7 +15,7 @@
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 00d6bf0..f02f258 100644 (file)
@@ -1,12 +1,12 @@
 /*
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 99a9c2e..f212206 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 34417ac..05fdeec 100644 (file)
@@ -2,11 +2,11 @@
  *  Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -208,7 +208,7 @@ static int proc_session_parse(int fd, struct session_file_operations *ops,
                                        goto out;
                } else
                        log_error("Unknown %s string: %s\n", PROC_SESSION, p);
-                       
+
                done = 1;
        }
 
@@ -414,7 +414,7 @@ static int iscsi_session_destroy(u32 tid, u64 sid)
        do {
                res = ioctl(ctrl_fd, DEL_SESSION, &info);
        } while (res < 0 && errno == EINTR);
-       
+
        return res;
 }
 
index 4604127..a1d0af6 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 7270eb1..a1e4aff 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -159,7 +159,7 @@ static int iscsid_response_recv(int fd, struct iscsi_adm_req *req)
        do {
                ret = readv(fd, iov, 2);
        } while (ret < 0 && errno == EINTR);
-       
+
        if (ret != sizeof(rsp) + sizeof(*req)) {
                err = (ret < 0) ? -errno : -EIO;
                fprintf(stderr, "%s %d %d %d\n", __FUNCTION__, __LINE__, ret,
index 771be05..5bdcf1f 100644 (file)
@@ -1,12 +1,12 @@
 /*
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 21460b0..e8b5551 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 66c07a2..4edf0c4 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -123,14 +123,14 @@ static void sock_set_keepalive(int sock, int timeout)
 
                if (setsockopt(sock, SOL_TCP, TCP_KEEPCNT, &opt, sizeof(opt)))
                        log_warning("unable to set TCP_KEEPCNT on server socket (%s)!", strerror(errno));
-       
+
                if (setsockopt(sock, SOL_TCP, TCP_KEEPIDLE, &timeout, sizeof(timeout)))
                        log_warning("unable to set TCP_KEEPIDLE on server socket (%s)!", strerror(errno));
-       
+
                opt = 3;
                if (setsockopt(sock, SOL_TCP, TCP_KEEPINTVL, &opt, sizeof(opt)))
                        log_warning("unable to set KEEPINTVL on server socket (%s)!", strerror(errno));
-       
+
                opt = 1;
                if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &opt, sizeof(opt)))
                        log_warning("unable to set SO_KEEPALIVE on server socket (%s)!", strerror(errno));
@@ -166,7 +166,7 @@ static void create_listen_socket(struct pollfd *array)
                }
 
                sock_set_keepalive(sock, 50);
-               
+
                opt = 1;
                if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)))
                        log_warning("Unable to set SO_REUSEADDR on server socket (%s)!",
@@ -422,7 +422,7 @@ out:
 void wait_4_iscsi_event(int timeout)
 {
        int res;
-    
+
        do {
                res = poll(&poll_array[POLL_NL], 1, timeout);
        } while (res < 0 && errno == EINTR);
@@ -497,12 +497,12 @@ static void event_loop(int timeout)
                for (i = 0; i < INCOMING_MAX; i++) {
                        struct connection *conn = incoming[i];
                        struct pollfd *pollfd = &poll_array[POLL_INCOMING + i];
-                       
+
                        if (!conn || !pollfd->revents)
                                continue;
 
                        pollfd->revents = 0;
-                       
+
                        event_conn(conn, pollfd);
 
                        if (conn->state == STATE_CLOSE) {
index 35ae1a6..53a520c 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -394,7 +394,7 @@ static void login_start(struct connection *conn)
                        rsp->status_detail = ISCSI_STATUS_SVC_UNAVAILABLE;
                        conn->state = STATE_EXIT;
                }
-               conn->session_param[key_max_recv_data_length].exec_val = 
+               conn->session_param[key_max_recv_data_length].exec_val =
                        conn->session_param[key_max_recv_data_length].local_val;
        }
        conn->exp_cmd_sn = be32_to_cpu(req->cmd_sn);
index 0aaffc5..3774f0a 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index dd6cefd..8de4b20 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 3ee7b08..3d3c91b 100644 (file)
@@ -2,11 +2,11 @@
  *  Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index bad5ca0..e4f7cfd 100644 (file)
@@ -1,12 +1,12 @@
 /*
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 9be6722..3fe20e5 100644 (file)
@@ -2,11 +2,11 @@
  *  Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 3fbdd00..5a5763f 100644 (file)
@@ -2,11 +2,11 @@
  *  Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index ed83ce1..555d4dc 100644 (file)
@@ -4,11 +4,11 @@
  *  Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index bafc802..2e6a9e7 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index 0941c87..e69eeef 100644 (file)
@@ -2,12 +2,12 @@
  *  Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index b4a27a0..98fa0fb 100644 (file)
@@ -2,12 +2,12 @@
 *   Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
  *  Copyright (C) 2007 Vladislav Bolkhovitin
  *  Copyright (C) 2007 CMS Distribution Limited
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
index e63299f..3ba1a10 100644 (file)
@@ -7,7 +7,7 @@
  *                and Leonid Stoljar
  *
  *  MPT SCSI target mode driver for SCST.
- * 
+ *
  *  Originally   By: Stephen Shirron
  *  Port to SCST By: Hu Gang <hugang@soulinfo.com>
  *
@@ -15,7 +15,7 @@
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation; either version 2
  *  of the License, or (at your option) any later version.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -90,7 +90,7 @@ static void stmapp_set_status(MPT_STM_PRIV *priv, CMD *cmd, int status);
 static void stmapp_tgt_command(MPT_STM_PRIV *priv, u32 reply_word);
 static void stm_cmd_buf_post(MPT_STM_PRIV *priv, int index);
 
-static void stm_tgt_reply_high_pri(MPT_ADAPTER *ioc, 
+static void stm_tgt_reply_high_pri(MPT_ADAPTER *ioc,
                TargetCmdBufferPostErrorReply_t *rep);
 static void stm_target_reply_error(MPT_ADAPTER *ioc, TargetErrorReply_t *rep);
 static void stmapp_target_error(MPT_STM_PRIV *priv, u32 reply_word, int index,
@@ -122,7 +122,7 @@ static void stm_link_serv_buf_post(MPT_STM_PRIV *priv, int index);
 static void stm_wait(MPT_STM_PRIV *priv, int milliseconds, int sleep);
 static int stm_wait_for(MPT_STM_PRIV *priv, volatile int *flag, int seconds,
             int sleep);
-static void stmapp_srr_process(MPT_STM_PRIV *priv, int rx_id, int r_ctl, 
+static void stmapp_srr_process(MPT_STM_PRIV *priv, int rx_id, int r_ctl,
                u32 offset, LinkServiceBufferPostReply_t *rep, int index);
 static void stm_set_scsi_port_page1(MPT_STM_PRIV *priv, int sleep);
 
@@ -144,7 +144,7 @@ mpt_target_show(struct seq_file *seq, void *v)
        MPT_STM_PRIV *priv = tgt->priv;
 
        TRACE_ENTRY();
-       TRACE_DBG("priv %p, tgt %p", priv, tgt); 
+       TRACE_DBG("priv %p, tgt %p", priv, tgt);
 
        sBUG_ON(tgt == NULL);
        sBUG_ON(ioc == NULL);
@@ -210,7 +210,7 @@ mpt_target_show(struct seq_file *seq, void *v)
 }
 
 static int
-mpt_proc_target_write(struct file *file, const char __user *buf, 
+mpt_proc_target_write(struct file *file, const char __user *buf,
                        size_t length, loff_t *off)
 {
 
@@ -249,10 +249,10 @@ mpt_proc_target_write(struct file *file, const char __user *buf,
                int id = simple_strtoul(s, NULL, 0);
                if (id < MPT_MAX_SCSI_DEVICES) {
                        if (IsScsi(tgt->priv)) {
-                               TRACE_DBG("Changing target id to %d\n", 
+                               TRACE_DBG("Changing target id to %d\n",
                                                id);
                                tgt->priv->port_id = id;
-                               stm_set_scsi_port_page1(tgt->priv, 
+                               stm_set_scsi_port_page1(tgt->priv,
                                                NO_SLEEP);
                        }
                }
@@ -273,7 +273,7 @@ static int mpt_target_detect(struct scst_tgt_template *temp1);
 static int mpt_target_release(struct scst_tgt *scst_tgt);
 static int stmapp_pending_sense(struct mpt_cmd *mpt_cmd);
 static int mpt_xmit_response(struct scst_cmd *scst_cmd);
-static void mpt_inquiry_no_tagged_commands(MPT_STM_PRIV *priv, 
+static void mpt_inquiry_no_tagged_commands(MPT_STM_PRIV *priv,
                struct scst_cmd *scst_cmd);
 static int mpt_rdy_to_xfer(struct scst_cmd *scst_cmd);
 static void mpt_on_free_cmd(struct scst_cmd *scst_cmd);
@@ -301,13 +301,13 @@ static struct scst_tgt_template tgt_template = {
        .task_mgmt_fn_done = mpt_task_mgmt_fn_done,
 };
 
-static inline void 
+static inline void
 mpt_msg_frame_free(MPT_STM_PRIV *priv, int index)
 {
        MPT_ADAPTER *ioc = priv->ioc;
        if (priv->current_mf[index] != NULL) {
                TRACE_DBG("%s: free mf index %d, %p", ioc->name,
-                               MF_TO_INDEX(priv->current_mf[index]), 
+                               MF_TO_INDEX(priv->current_mf[index]),
                                priv->current_mf[index]);
                mpt_free_msg_frame(_HANDLE_IOC_ID, priv->current_mf[index]);
                priv->current_mf[index] = NULL;
@@ -321,7 +321,7 @@ mpt_msg_frame_alloc(MPT_ADAPTER *ioc, int index)
        MPT_FRAME_HDR *mf;
 
        if (index != -1) {
-               TRACE_DBG("%s: current_mf %p, index %d", 
+               TRACE_DBG("%s: current_mf %p, index %d",
                                ioc->name, priv->current_mf[index], index);
                WARN_ON(priv->current_mf[index] != NULL);
        }
@@ -331,12 +331,12 @@ mpt_msg_frame_alloc(MPT_ADAPTER *ioc, int index)
        if (mf == NULL) {
                sBUG_ON(1);
        }
-       
+
        if (index != -1) {
                priv->current_mf[index] = mf;
        }
 
-       TRACE_DBG("%s: alloc mf index %d, %p, %d", ioc->name, 
+       TRACE_DBG("%s: alloc mf index %d, %p, %d", ioc->name,
                        MF_TO_INDEX(mf), mf, index);
 
        return mf;
@@ -353,7 +353,7 @@ mptstm_probe(struct pci_dev *pdev, const struct pci_device_id *id)
     struct proc_dir_entry *p;
     struct proc_dir_entry *root;
     char name[4];
-    
+
     TRACE_ENTRY();
     ret = mpt_stm_adapter_install(ioc);
     if (ret != 0) {
@@ -379,12 +379,12 @@ mptstm_probe(struct pci_dev *pdev, const struct pci_device_id *id)
     tgt->priv->scsi_id_config = 0;
     atomic_set(&tgt->sess_count, 0);
     init_waitqueue_head(&tgt->waitQ);
-    
+
     tgt->scst_tgt = scst_register(&tgt_template, NULL);
     if (tgt->scst_tgt == NULL) {
            PRINT_ERROR(MYNAM ": scst_register() "
                        "failed for host %p", pdev);
-           
+
            ret = -ENODEV;
            goto out;
     }
@@ -406,11 +406,11 @@ mptstm_probe(struct pci_dev *pdev, const struct pci_device_id *id)
     scst_tgt_set_tgt_priv(tgt->scst_tgt, tgt);
     mpt_stm_priv[ioc->id]->tgt = tgt;
     _mpt_ada_nums ++;
-                       
+
  out:
-    
+
     TRACE_EXIT_RES(ret);
-    
+
     return ret;
 }
 
@@ -438,7 +438,7 @@ static struct mpt_pci_driver mptstm_driver = {
  * the system. Each found adapter should be registered by calling
  * scst_register(). The function should return a value >= 0 to signify
  * the number of detected target adapters. A negative value should be
- * returned whenever there is an error. 
+ * returned whenever there is an error.
  */
 static int mpt_target_detect(struct scst_tgt_template *templ)
 {
@@ -456,17 +456,17 @@ static int mpt_target_detect(struct scst_tgt_template *templ)
                ret = -ENODEV;
                goto out;
        }
-       
+
        ret = _mpt_ada_nums;
-       
+
  out:
        TRACE_EXIT_RES(ret);
-       
+
        return ret;
 }
 
 static struct scst_cmd *
-_stm_target_command(MPT_STM_PRIV *priv, int reply_word, 
+_stm_target_command(MPT_STM_PRIV *priv, int reply_word,
                    struct mpt_cmd *mpt_cmd)
 {
        u8 *cdb;
@@ -478,9 +478,9 @@ _stm_target_command(MPT_STM_PRIV *priv, int reply_word,
 #ifdef DEBUG
        MPT_ADAPTER *ioc = priv->ioc;
 #endif
-       /* 
-        * Get the CBD, LUN, tag,  Task Mgmt flags, and data length from the 
-        * receive packet 
+       /*
+        * Get the CBD, LUN, tag,  Task Mgmt flags, and data length from the
+        * receive packet
         */
        TRACE_ENTRY();
 
@@ -546,7 +546,7 @@ _stm_target_command(MPT_STM_PRIV *priv, int reply_word,
 
        TRACE_DBG("%s: cmd %p, re_word %x, alias %x, lun %x, tag %x,"
                        "%s, init_idx %d, %p, %d",
-                       ioc->name, cmd, reply_word, alias, lun, tag, alias_lun, 
+                       ioc->name, cmd, reply_word, alias, lun, tag, alias_lun,
                        init_index, priv->scst_cmd[index], dl);
 
        mpt_cmd->CMD = cmd;
@@ -581,7 +581,7 @@ mpt_send_busy(struct mpt_cmd *cmd)
        stmapp_set_status(cmd->priv, cmd->CMD, STS_BUSY);
 }
 
-static void 
+static void
 mpt_alloc_session_done(struct scst_session *scst_sess, void *data, int result)
 {
        struct mpt_sess *sess = (struct mpt_sess *) data;
@@ -592,7 +592,7 @@ mpt_alloc_session_done(struct scst_session *scst_sess, void *data, int result)
        TRACE_ENTRY();
        if (result == 0) {
                scst_sess_set_tgt_priv(scst_sess, sess);
-               
+
                while (!list_empty(&sess->delayed_cmds)) {
                        cmd = list_entry(sess->delayed_cmds.next,
                                         typeof(*cmd), delayed_cmds_entry);
@@ -600,7 +600,7 @@ mpt_alloc_session_done(struct scst_session *scst_sess, void *data, int result)
                        if (rc == 0)
                                rc = mpt_send_cmd_to_scst(cmd, SCST_CONTEXT_THREAD);
                        if (rc != 0) {
-                               PRINT_INFO(MYNAM ": Unable to get the command, sending BUSY state %p", 
+                               PRINT_INFO(MYNAM ": Unable to get the command, sending BUSY state %p",
                                           cmd);
                                mpt_send_busy(cmd);
                                kfree(cmd);
@@ -619,27 +619,27 @@ mpt_alloc_session_done(struct scst_session *scst_sess, void *data, int result)
                        kfree(cmd);
                }
                tgt->sess[sess->init_index] = NULL;
-               
+
                TRACE_MEM("kfree for sess %p", sess);
                kfree(sess);
-               
+
                if (atomic_dec_and_test(&tgt->sess_count))
                                wake_up_all(&tgt->waitQ);
        }
-       
+
         __clear_bit(MPT_SESS_INITING, &sess->sess_flags);
 
        TRACE_EXIT();
        return;
 }
 
-static int 
+static int
 mpt_send_cmd_to_scst(struct mpt_cmd *cmd, int context)
 {
        int res = 0;
-       
+
        TRACE_ENTRY();
-       
+
        cmd->scst_cmd = _stm_target_command(cmd->priv, cmd->reply_word, cmd);
        if (cmd->scst_cmd == NULL) {
                res = -EFAULT;
@@ -650,9 +650,9 @@ mpt_send_cmd_to_scst(struct mpt_cmd *cmd, int context)
 #endif
        scst_cmd_init_done(cmd->scst_cmd, context);
 
- out:  
+ out:
        TRACE_EXIT_RES(res);
-       
+
        return res;
 }
 
@@ -685,7 +685,7 @@ stm_send_target_status_deferred(MPT_STM_PRIV *priv,
 }
 
 static void
-stm_data_done(MPT_ADAPTER *ioc, u32 reply_word, 
+stm_data_done(MPT_ADAPTER *ioc, u32 reply_word,
                struct scst_cmd *scst_cmd, struct mpt_cmd *cmd, int index)
 {
        MPT_STM_PRIV *priv = mpt_stm_priv[ioc->id];
@@ -704,7 +704,7 @@ stm_data_done(MPT_ADAPTER *ioc, u32 reply_word,
        TRACE_EXIT();
 }
 
-void 
+void
 stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
 {
        MPT_STM_PRIV *priv = mpt_stm_priv[ioc->id];
@@ -713,7 +713,7 @@ stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
        struct scst_cmd *scst_cmd;
        struct mpt_cmd *cmd;
        volatile int *io_state;
-       
+
        TRACE_ENTRY();
 
        index = GET_IO_INDEX(reply_word);
@@ -724,23 +724,23 @@ stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
        TRACE_DBG("index %d, state %x, scst cmd %p, current_mf %p",
                        index, *io_state, scst_cmd, priv->current_mf[index]);
        /*
-        * if scst_cmd is NULL it show the command buffer not using by 
+        * if scst_cmd is NULL it show the command buffer not using by
         * SCST, let parse the CDB
         */
        if (scst_cmd == NULL) {
                WARN_ON((*io_state & ~IO_STATE_HIGH_PRIORITY) != IO_STATE_POSTED);
                *io_state &= ~IO_STATE_POSTED;
-       
+
                mpt_msg_frame_free(priv, index);
 
                stmapp_tgt_command(priv, reply_word);
                goto out;
        }
-       
+
        cmd = (struct mpt_cmd *)scst_cmd_get_tgt_priv(scst_cmd);
-       TRACE_DBG("scst cmd %p, index %d, cmd %p, cmd state %s", 
+       TRACE_DBG("scst cmd %p, index %d, cmd %p, cmd state %s",
                  scst_cmd, index, cmd, mpt_state_string[cmd->state]);
-       
+
        if (cmd->state == MPT_STATE_NEED_DATA) {
                int context = SCST_CONTEXT_TASKLET;
                int rx_status = SCST_RX_STATUS_SUCCESS;
@@ -801,18 +801,18 @@ stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
                        switch (atomic_read(&priv->pending_sense[init_index])) {
                                /* attempt to send status and sense succeeded */
                                case MPT_STATUS_SENSE_ATTEMPT:
-                                       atomic_set(&priv->pending_sense[init_index], 
+                                       atomic_set(&priv->pending_sense[init_index],
                                                MPT_STATUS_SENSE_IDLE);
                                        /* ToDo: check and set scst_set_delivery_status(), if necessary */
                                        scst_tgt_cmd_done(scst_cmd);
                                        break;
 
-                               /* we tried to send status and sense 
-                                * simltaneously and failed.  Prepare to handle 
-                                * the next command without SCST if it is 
+                               /* we tried to send status and sense
+                                * simltaneously and failed.  Prepare to handle
+                                * the next command without SCST if it is
                                 * REQUEST_SENSE */
                                case MPT_STATUS_SENSE_NOT_SENT:
-                                       atomic_set(&priv->pending_sense[init_index], 
+                                       atomic_set(&priv->pending_sense[init_index],
                                                MPT_STATUS_SENSE_HANDLE_RQ);
                                        /* ToDo: check and set scst_set_delivery_status(), if necessary */
                                        scst_tgt_cmd_done(scst_cmd);
@@ -821,17 +821,17 @@ stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
                                /* we've handled REQUEST_SENSE ourselves and
                                 * we're done with the command.  Clean up */
                                case MPT_STATUS_SENSE_HANDLE_RQ:
-                                       TRACE_DBG("%s: clearing pending sense", 
+                                       TRACE_DBG("%s: clearing pending sense",
                                                        ioc->name);
-                                       atomic_set(&priv->pending_sense[init_index], 
+                                       atomic_set(&priv->pending_sense[init_index],
                                                        MPT_STATUS_SENSE_IDLE);
                                        mpt_on_free_cmd(scst_cmd);
                                        /* scst_cmd alloced in stmapp_pending_sense */
-                                       kfree(scst_cmd); 
+                                       kfree(scst_cmd);
                                        break;
 
                                default:
-                                       /* nothing much to do here, we aren't 
+                                       /* nothing much to do here, we aren't
                                         * handling cached sense/status */
                                        /* ToDo: check and set scst_set_delivery_status(), if necessary */
                                        scst_tgt_cmd_done(scst_cmd);
@@ -863,7 +863,7 @@ stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
 
        /*
         * just insert into list
-        * bug how can i handle it 
+        * bug how can i handle it
         */
        if (*io_state == 0 && cmd->state == MPT_STATE_NEW) {
                WARN_ON(1);
@@ -881,11 +881,11 @@ stm_tgt_reply(MPT_ADAPTER *ioc, u32 reply_word)
 #endif
        WARN_ON(1);
  out:
-       
+
        TRACE_EXIT();
 }
 
-static int 
+static int
 mpt_is_task_mgm(MPT_STM_PRIV *priv, u32 reply_word, int *lun)
 {
        int task_mgmt = 0, index;
@@ -927,22 +927,22 @@ stmapp_tgt_command(MPT_STM_PRIV *priv, u32 reply_word)
        int init_index, res = 0, task_mgmt, lun;
 
        TRACE_ENTRY();
-       
+
        tgt = priv->tgt;
 
        task_mgmt = mpt_is_task_mgm(priv, reply_word, &lun);
        if (task_mgmt) {
                mpt_handle_task_mgmt(priv, reply_word, task_mgmt, lun);
        }
-       
+
        init_index = GET_INITIATOR_INDEX(reply_word);
-       
+
        if (test_bit(MPT_TGT_SHUTDOWN, &tgt->tgt_flags)) {
                TRACE_DBG("New command while the device %p is shutting down", tgt);
                res = -EFAULT;
                goto out;
        }
-       
+
        cmd = kmalloc(sizeof(*cmd), GFP_ATOMIC);
        TRACE_MEM("kmalloc(GFP_ATOMIC) for cmd (%d): %p", sizeof(*cmd), cmd);
        if (cmd == NULL) {
@@ -950,7 +950,7 @@ stmapp_tgt_command(MPT_STM_PRIV *priv, u32 reply_word)
                res = -ENOMEM;
                goto out;
        }
-       
+
        memset(cmd, 0, sizeof(*cmd));
        cmd->priv = priv;
        cmd->reply_word = reply_word;
@@ -966,29 +966,29 @@ stmapp_tgt_command(MPT_STM_PRIV *priv, u32 reply_word)
                        goto out_free_cmd;
                }
                /* WWPN */
-               
+
                atomic_inc(&tgt->sess_count);
                smp_mb__after_atomic_inc();
-               
+
                memset(sess, 0, sizeof(*sess));
                sess->tgt = tgt;
                sess->init_index = init_index;
                INIT_LIST_HEAD(&sess->delayed_cmds);
-               
+
                sess->scst_sess = scst_register_session(tgt->scst_tgt, 1,
                                                        "", sess, mpt_alloc_session_done);
                if (sess->scst_sess == NULL) {
-                       PRINT_ERROR(MYNAM ": scst_register_session failed %p", 
+                       PRINT_ERROR(MYNAM ": scst_register_session failed %p",
                                    tgt);
                        res = -EFAULT;
                        goto out_free_sess;
                }
-               
+
                __set_bit(MPT_SESS_INITING, &sess->sess_flags);
-               
+
                tgt->sess[init_index] = sess;
                scst_sess_set_tgt_priv(sess->scst_sess, sess);
-               
+
                cmd->sess = sess;
                list_add_tail(&cmd->delayed_cmds_entry, &sess->delayed_cmds);
                goto out;
@@ -1009,7 +1009,7 @@ stmapp_tgt_command(MPT_STM_PRIV *priv, u32 reply_word)
                                goto out_free_cmd;
                }
        }
-       
+
  out:
        TRACE_EXIT();
        return;
@@ -1029,7 +1029,7 @@ stmapp_tgt_command(MPT_STM_PRIV *priv, u32 reply_word)
 
 /*
  * mpt_target_release
- * 
+ *
  * this function is
  * intended to free up the resources allocated to the device. The function
  * should return 0 to indicate successful release or a negative value if
@@ -1058,7 +1058,7 @@ struct mpt_prm
        struct mpt_cmd *cmd;
 };
 
-static inline void 
+static inline void
 mpt_dump_sge(MPT_SGE *sge, struct scatterlist *sg)
 {
        if (sge) {
@@ -1066,13 +1066,13 @@ mpt_dump_sge(MPT_SGE *sge, struct scatterlist *sg)
                struct page *page = NULL;
                address = bus_to_virt(sge->address);
                page = virt_to_page(address);
-               TRACE_DBG("address %p, length %x, count %d, page %p", 
+               TRACE_DBG("address %p, length %x, count %d, page %p",
                                address, sge->length, page_count(page), page);
                TRACE_BUFFER("sge data", address, min(sge->length, (u32)0x10));
        }
        if (sg) {
                TRACE_DBG("sg %p, page %p, %p, offset %d, dma address %x, len %d",
-                               sg, sg->page, page_address(sg->page), 
+                               sg, sg->page, page_address(sg->page),
                                sg->offset, sg->dma_address, sg->length);
                TRACE_BUFFER("sg data", page_address(sg->page), (u32)0x10);
        }
@@ -1096,8 +1096,8 @@ mpt_sge_to_sgl(struct mpt_prm *prm, MPT_STM_PRIV *priv, MPT_SGL *sgl)
        prm->sg = (struct scatterlist *)prm->buffer;
        prm->seg_cnt = pci_map_sg(priv->ioc->pcidev, prm->sg, prm->use_sg,
                                   scst_to_tgt_dma_dir(prm->data_direction));
-               
-       pci_dma_sync_sg_for_cpu(priv->ioc->pcidev, prm->sg, prm->use_sg, 
+
+       pci_dma_sync_sg_for_cpu(priv->ioc->pcidev, prm->sg, prm->use_sg,
                        scst_to_tgt_dma_dir(prm->data_direction));
        for (i = 0; i < prm->use_sg; i++) {
                sgl->sge[i].length = sg_dma_len(&prm->sg[i]);
@@ -1110,11 +1110,11 @@ mpt_sge_to_sgl(struct mpt_prm *prm, MPT_STM_PRIV *priv, MPT_SGL *sgl)
                mpt_dump_sge(&sgl->sge[i], &prm->sg[i]);
                bufflen -= sgl->sge[i].length;
        }
-       pci_dma_sync_sg_for_device(priv->ioc->pcidev, prm->sg, prm->use_sg, 
+       pci_dma_sync_sg_for_device(priv->ioc->pcidev, prm->sg, prm->use_sg,
                        scst_to_tgt_dma_dir(prm->data_direction));
-       
+
        sgl->num_sges = prm->seg_cnt;
-       
+
        TRACE_EXIT();
 }
 
@@ -1122,7 +1122,7 @@ static inline void
 mpt_set_sense_info(MPT_STM_PRIV *priv, CMD *cmd, int len, u8 *sense_buf)
 {
        u8 *info = NULL;
-       
+
        TRACE_ENTRY();
 
        if (IsScsi(priv)) {
@@ -1180,11 +1180,11 @@ mpt_send_tgt_data(MPT_STM_PRIV *priv, u32 reply_word,
        TRACE_ENTRY();
        req = (TargetAssistRequest_t *)mpt_msg_frame_alloc(ioc,index);
        memset(req, 0, sizeof(*req));
-       
+
        if (priv->exiting) {
                flags &= ~TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER;
        }
-       
+
        if (priv->io_state[index] & IO_STATE_HIGH_PRIORITY) {
                flags |= TARGET_ASSIST_FLAGS_HIGH_PRIORITY;
                if (flags & TARGET_ASSIST_FLAGS_AUTO_STATUS) {
@@ -1192,7 +1192,7 @@ mpt_send_tgt_data(MPT_STM_PRIV *priv, u32 reply_word,
                        priv->io_state[index] |= IO_STATE_AUTO_REPOST;
                }
        }
-       
+
        if (priv->fcp2_capable/* && priv->initiators != NULL*/) {
                init_index = GET_INITIATOR_INDEX(reply_word);
                /*init = priv->initiators[init_index];
@@ -1202,7 +1202,7 @@ mpt_send_tgt_data(MPT_STM_PRIV *priv, u32 reply_word,
        }
        TRACE_DBG("flags %x, tag %x, lun %x, offset %x, length %x",
                  flags, tag, lun, offset, length);
-       
+
        req->StatusCode = 0;
        req->TargetAssistFlags = (u8)flags;
        req->Function = MPI_FUNCTION_TARGET_ASSIST;
@@ -1229,7 +1229,7 @@ mpt_send_tgt_data(MPT_STM_PRIV *priv, u32 reply_word,
                                        (u8)(MPI_SGE_FLAGS_CHAIN_ELEMENT |
                                                 MPI_SGE_FLAGS_MPT_STM_ADDRESSING);
                                dma_addr = priv->hw_dma +
-                                       ((u8 *)priv->hw->cmd_buf[index].chain_sge - 
+                                       ((u8 *)priv->hw->cmd_buf[index].chain_sge -
                                         (u8 *)priv->hw);
                                stm_set_dma_addr(sge_chain->Address, dma_addr);
                                /* set the "last element" flag in the mf */
@@ -1347,7 +1347,7 @@ if(trace_mpi)
        }
 #endif
        res = 0;
-       
+
        priv->io_state[index] |= IO_STATE_DATA_SENT;
        if (flags & TARGET_ASSIST_FLAGS_AUTO_STATUS)
                priv->io_state[index] |= IO_STATE_STATUS_SENT;
@@ -1361,28 +1361,28 @@ if(trace_mpi)
        }
 
        TRACE_EXIT_RES(res);
-       
-       return res;     
+
+       return res;
 }
 
-/* 
+/*
  * calling mpt_send_target_data
  *
  */
-static void 
+static void
 mpt_send_target_data(struct mpt_prm *prm, int flags)
 {
        MPT_STM_PRIV *priv;
        u32 reply_word;
        int index, lun, tag, length, offset;
        MPT_SGL *sgl;
-       
+
        TRACE_ENTRY();
        priv = prm->tgt->priv;
        sgl = &priv->sgl;
-       
+
        mpt_sge_to_sgl(prm, priv, sgl);
-       
+
        reply_word = prm->cmd->CMD->reply_word;
        index = GET_IO_INDEX(reply_word);
 
@@ -1392,15 +1392,15 @@ mpt_send_target_data(struct mpt_prm *prm, int flags)
        if (prm->data_direction == SCST_DATA_READ) {
                flags |= TARGET_ASSIST_FLAGS_DATA_DIRECTION;
        }
-       
+
        length = prm->bufflen;
        offset = 0;
-#if 0  
+#if 0
        TRACE_DBG("priv %p, reply_word %x, index %x, flags %x, lun %x, "
                  "tag %x, sgl %p, length %x, offset %x",
-                 priv, reply_word, index, flags, lun, tag, 
+                 priv, reply_word, index, flags, lun, tag,
                  sgl, length, offset);
-#endif 
+#endif
        mpt_send_tgt_data(priv, reply_word, index, flags, lun, tag,
                        sgl, length, offset);
 
@@ -1409,14 +1409,14 @@ mpt_send_target_data(struct mpt_prm *prm, int flags)
 }
 
 /*
- * this function checks if we need to handle REQUEST_SENSE on behalf of the 
- * target device.  If the sense wasn't able to be sent simultaneously 
- * with the status for the last command with a check condition, it needs 
- * to either get sent for a REQUEST_SENSE command or forgotten. 
+ * this function checks if we need to handle REQUEST_SENSE on behalf of the
+ * target device.  If the sense wasn't able to be sent simultaneously
+ * with the status for the last command with a check condition, it needs
+ * to either get sent for a REQUEST_SENSE command or forgotten.
  *
  * The pending_sense state and a buffer for holding sense is created for
  * each possible initiator.  The pending_sense state is used to tell if
- * sending sense failed and to track the progress of the following 
+ * sending sense failed and to track the progress of the following
  * REQUEST_SENSE command.
  *
  * There are four values for the pending_sense state:
@@ -1430,25 +1430,25 @@ mpt_send_target_data(struct mpt_prm *prm, int flags)
  *   sense data, otherwise the cached sense data is ignored and the
  *   command is sent to SCST.
  *
- * In stmapp_pending_sense, if pending_sense state for an initiator == 
- * SENSE_HANDLE_RQ, the incoming command is inspected.  If it is 
- * REQUEST_SENSE, the command is handled by the LSI driver without 
- * involving SCST.  The cached sense data from the immediately previous 
- * command is used.  This sense data was not sent along with the status 
- * for that command (see below).  If the command is not REQUEST_SENSE, 
- * the cached sense data is discarded and the command is sent to SCST 
+ * In stmapp_pending_sense, if pending_sense state for an initiator ==
+ * SENSE_HANDLE_RQ, the incoming command is inspected.  If it is
+ * REQUEST_SENSE, the command is handled by the LSI driver without
+ * involving SCST.  The cached sense data from the immediately previous
+ * command is used.  This sense data was not sent along with the status
+ * for that command (see below).  If the command is not REQUEST_SENSE,
+ * the cached sense data is discarded and the command is sent to SCST
  * for processing.
  *
  * In stm_send_target_status, sense data about to be sent is saved in a
  * buffer and the pending_sense state for that initiator is set to
  * MPT_STATUS_SENSE_ATTEMPT.  The sense and status are sent to the LSI
- * hardware.  
+ * hardware.
  *
- * If the LSI hardware determines that the sense and status could not be 
- * sent in one operation, stm_reply is called with state == STATUS_SENT 
- * and with IOCStatus of MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT (0x6B).  
- * This condition only happens in the non-packetized SCSI operating mode.  
- * When this happens, the pending_sense state is advanced to 
+ * If the LSI hardware determines that the sense and status could not be
+ * sent in one operation, stm_reply is called with state == STATUS_SENT
+ * and with IOCStatus of MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT (0x6B).
+ * This condition only happens in the non-packetized SCSI operating mode.
+ * When this happens, the pending_sense state is advanced to
  * MPT_STATUS_SENSE_NOT_SENT.
  *
  * In stm_tgt_reply, if io_state == STATUS_SENT:
@@ -1469,7 +1469,7 @@ mpt_send_target_data(struct mpt_prm *prm, int flags)
  * tagged command queueing.  The mpt_inquiry_no_tagged_commands function
  * does this by modifying INQUIRY data before sending it over the wire.
  */
-static int 
+static int
 stmapp_pending_sense(struct mpt_cmd *mpt_cmd)
 {
        int res = 0;
@@ -1490,7 +1490,7 @@ stmapp_pending_sense(struct mpt_cmd *mpt_cmd)
        if (IsScsi(priv)) {
                index = GET_IO_INDEX(mpt_cmd->reply_word);
                init_index = GET_INITIATOR_INDEX(mpt_cmd->reply_word);
-               if (atomic_read(&priv->pending_sense[init_index]) == 
+               if (atomic_read(&priv->pending_sense[init_index]) ==
                                MPT_STATUS_SENSE_HANDLE_RQ) {
                        cmd = &priv->hw->cmd_buf[index];
                        scsi_cmd = (SCSI_CMD *)cmd->cmd;
@@ -1499,27 +1499,27 @@ stmapp_pending_sense(struct mpt_cmd *mpt_cmd)
                        if (cdb[0] == REQUEST_SENSE) {
                                /* scst_cmd used as a container in stm_tgt_reply,
                                 * command doesn't actually go to SCST */
-                               scst_cmd = kmalloc(sizeof(struct scst_cmd), 
+                               scst_cmd = kmalloc(sizeof(struct scst_cmd),
                                                GFP_ATOMIC);
                                TRACE_DBG("scst_cmd 0x%p", scst_cmd);
                                if (scst_cmd != NULL) {
                                        cmd->reply_word = mpt_cmd->reply_word;
-                                       if (cmd->reply_word & 
+                                       if (cmd->reply_word &
                                                TARGET_MODE_REPLY_ALIAS_MASK) {
-                                               cmd->alias = (scsi_cmd->AliasID - 
+                                               cmd->alias = (scsi_cmd->AliasID -
                                                                priv->port_id) & 15;
                                        } else {
                                                cmd->alias = 0;
                                        }
-                                       cmd->lun = get2bytes(scsi_cmd->LogicalUnitNumber, 
+                                       cmd->lun = get2bytes(scsi_cmd->LogicalUnitNumber,
                                                        0);
                                        cmd->tag = scsi_cmd->Tag;
                                        mpt_cmd->CMD = cmd;
 
-                                       memset(scst_cmd, 0x00, 
+                                       memset(scst_cmd, 0x00,
                                                sizeof(struct scst_cmd));
                                        scst_cmd->resp_data_len = -1;
-                                       memcpy(scst_cmd->cdb, cdb, 
+                                       memcpy(scst_cmd->cdb, cdb,
                                                        MPT_MAX_CDB_LEN);
                                        priv->scst_cmd[index] = scst_cmd;
                                        scst_cmd_set_tag(scst_cmd, cmd->tag);
@@ -1532,10 +1532,10 @@ stmapp_pending_sense(struct mpt_cmd *mpt_cmd)
                                        /* smallest amount of data between
                                         * requested length, buffer size,
                                         * and cached length */
-                                       prm.bufflen = min((size_t)cdb[4], 
+                                       prm.bufflen = min((size_t)cdb[4],
                                                (size_t)SCSI_SENSE_BUFFERSIZE);
-                                       prm.bufflen = min(prm.bufflen, 
-                                               (size_t)(priv->pending_sense_buffer[init_index][7] 
+                                       prm.bufflen = min(prm.bufflen,
+                                               (size_t)(priv->pending_sense_buffer[init_index][7]
                                                         + 8));
                                        sg.page = virt_to_page(priv->pending_sense_buffer[init_index]);
                                        sg.offset = offset_in_page(priv->pending_sense_buffer[init_index]);
@@ -1546,29 +1546,29 @@ stmapp_pending_sense(struct mpt_cmd *mpt_cmd)
                                        prm.tgt = priv->tgt->sess[init_index]->tgt;
                                        prm.cmd->state = MPT_STATE_DATA_OUT;
 
-                                       TRACE_DBG("%s: sending pending sense", 
+                                       TRACE_DBG("%s: sending pending sense",
                                                        priv->ioc->name);
                                        mpt_send_target_data(&prm, flags);
                                        res = 1;
                                } else {
-                                       /* we couldn't create a scst_cmd, so 
+                                       /* we couldn't create a scst_cmd, so
                                         * we can't do anything.  Send the
                                         * command to SCST. */
-                                       atomic_set(&priv->pending_sense[init_index], 
+                                       atomic_set(&priv->pending_sense[init_index],
                                                        MPT_STATUS_SENSE_IDLE);
                                }
                        } else {
-                               /* next command immediately after check 
-                                * condition is not REQUEST_SENSE, so we can 
-                                * discard the cached sense and send the 
+                               /* next command immediately after check
+                                * condition is not REQUEST_SENSE, so we can
+                                * discard the cached sense and send the
                                 * command to SCST. */
-                               atomic_set(&priv->pending_sense[init_index], 
+                               atomic_set(&priv->pending_sense[init_index],
                                                MPT_STATUS_SENSE_IDLE);
                        }
                } else {
                        /* we don't need to perform REQUEST_SENSE and can
                         * send the command to SCST */
-                       atomic_set(&priv->pending_sense[init_index], 
+                       atomic_set(&priv->pending_sense[init_index],
                                        MPT_STATUS_SENSE_IDLE);
                }
        }
@@ -1582,7 +1582,7 @@ stmapp_pending_sense(struct mpt_cmd *mpt_cmd)
  * transmit the response data and the status in the struct scst_cmd. See
  * below for details. Must be defined.
  */
-static int 
+static int
 mpt_xmit_response(struct scst_cmd *scst_cmd)
 {
        int res = SCST_TGT_RES_SUCCESS;
@@ -1602,7 +1602,7 @@ mpt_xmit_response(struct scst_cmd *scst_cmd)
        prm.cmd = (struct mpt_cmd *)scst_cmd_get_tgt_priv(scst_cmd);
        sess = (struct mpt_sess *)
                scst_sess_get_tgt_priv(scst_cmd_get_session(scst_cmd));
-       
+
        prm.sg = NULL;
        prm.bufflen = scst_cmd_get_resp_data_len(scst_cmd);
        prm.buffer = scst_cmd->sg;
@@ -1615,7 +1615,7 @@ mpt_xmit_response(struct scst_cmd *scst_cmd)
        prm.seg_cnt = 0;
        is_send_status = scst_cmd_get_is_send_status(scst_cmd);
 
-       TRACE_DBG("rq_result=%x, is_send_status=%x, %x, %d", prm.rq_result, 
+       TRACE_DBG("rq_result=%x, is_send_status=%x, %x, %d", prm.rq_result,
                        is_send_status, prm.bufflen, prm.sense_buffer_len);
        if ((prm.rq_result != 0) && (prm.sense_buffer != NULL))
                TRACE_BUFFER("Sense", prm.sense_buffer, prm.sense_buffer_len);
@@ -1627,16 +1627,16 @@ mpt_xmit_response(struct scst_cmd *scst_cmd)
                res = SCST_TGT_RES_FATAL_ERROR;
                goto out_tgt_free;
        }
-       
+
        if (test_bit(MPT_SESS_SHUTDOWN, &sess->sess_flags)) {
                TRACE_DBG("cmd %p while session %p is shutting down",
                          prm.cmd, sess);
                res = SCST_TGT_RES_SUCCESS;
                goto out_tgt_free;
        }
-       
+
        if (SCST_SENSE_VALID(prm.sense_buffer)) {
-               mpt_set_sense_info(prm.tgt->priv, prm.cmd->CMD, 
+               mpt_set_sense_info(prm.tgt->priv, prm.cmd->CMD,
                                prm.sense_buffer_len, prm.sense_buffer);
        }
 
@@ -1651,7 +1651,7 @@ mpt_xmit_response(struct scst_cmd *scst_cmd)
                                scst_to_tgt_dma_dir(scst_cmd_get_data_direction(scst_cmd)));
                }
                mpt_send_target_data(&prm, flags);
-               
+
                if (prm.rq_result == 0) {
                        goto out;
                }
@@ -1674,13 +1674,13 @@ mpt_xmit_response(struct scst_cmd *scst_cmd)
                TRACE_DBG("scst cmd %p, index %d, flags %d",
                                scst_cmd, index, flags);
 
-               stm_send_target_status(priv, reply_word, index, 
+               stm_send_target_status(priv, reply_word, index,
                                flags, lun, tag);
        }
 
  out:
        TRACE_EXIT_RES(res);
-       
+
        return res;
 
  out_tgt_free:
@@ -1703,12 +1703,12 @@ mpt_inquiry_no_tagged_commands(MPT_STM_PRIV *priv, struct scst_cmd *scst_cmd)
 
        TRACE_ENTRY();
 
-       /* 
+       /*
         * only modify INQUIRY if we're on a SCSI bus,
         * and we are handling a standard INQUIRY command
         * (EVPD = 0)
         */
-       if (IsScsi(priv) && (scst_cmd->cdb[0] == INQUIRY) && 
+       if (IsScsi(priv) && (scst_cmd->cdb[0] == INQUIRY) &&
                        !(scst_cmd->cdb[1] & 0x1)) {
                sBUG_ON(scst_cmd->sg_cnt == 0);
                length = scst_get_buf_first(scst_cmd, &address);
@@ -1724,7 +1724,7 @@ mpt_inquiry_no_tagged_commands(MPT_STM_PRIV *priv, struct scst_cmd *scst_cmd)
 }
 
 /*
- * this function 
+ * this function
  * informs the driver that data buffer corresponding to the said command
  * have now been allocated and it is OK to receive data for this command.
  * This function is necessary because a SCSI target does not have any
@@ -1763,7 +1763,7 @@ static int mpt_rdy_to_xfer(struct scst_cmd *scst_cmd)
        prm.use_sg = scst_cmd->sg_cnt;
        prm.data_direction = scst_cmd_get_data_direction(scst_cmd);
        prm.tgt = sess->tgt;
-       
+
        if (test_bit(MPT_SESS_SHUTDOWN, &sess->sess_flags)) {
                TRACE_DBG("cmd %p while session %p is shutting down",
                          prm.cmd, sess);
@@ -1772,14 +1772,14 @@ static int mpt_rdy_to_xfer(struct scst_cmd *scst_cmd)
                res = SCST_TGT_RES_SUCCESS;
                goto out;
        }
-       
+
        prm.cmd->state = MPT_STATE_NEED_DATA;
-       
+
        mpt_send_target_data(&prm, 0);
-       
+
  out:
        TRACE_EXIT_RES(res);
-       
+
        return res;
 }
 
@@ -1795,7 +1795,7 @@ static void mpt_on_free_cmd(struct scst_cmd *scst_cmd)
                (struct mpt_cmd *)scst_cmd_get_tgt_priv(scst_cmd);
 
        TRACE_ENTRY();
-       
+
        TRACE_DBG("cmd %p, scst_cmd %p", cmd, scst_cmd);
 
        scst_cmd_set_tgt_priv(scst_cmd, NULL);
@@ -1814,7 +1814,7 @@ static void mpt_on_free_cmd(struct scst_cmd *scst_cmd)
  * scst_mgmt_cmd_get_status(). No return value expected. Must be
  * defined, if the target supports task management functionality.
  */
-static void 
+static void
 mpt_task_mgmt_fn_done(struct scst_mgmt_cmd *mgmt_cmd)
 {
        TRACE_ENTRY();
@@ -1826,7 +1826,7 @@ static void
 mpt_local_task_mgmt(struct mpt_sess *sess, int task_mgmt, int lun)
 {
        struct mpt_cmd *cmd, *t;
-       
+
        TRACE_ENTRY();
        switch (task_mgmt) {
        case IMM_NTFY_TARGET_RESET:
@@ -1851,7 +1851,7 @@ mpt_local_task_mgmt(struct mpt_sess *sess, int task_mgmt, int lun)
                                }
                        }
                break;
-               
+
        case IMM_NTFY_CLEAR_ACA:
        default:
                break;
@@ -1859,7 +1859,7 @@ mpt_local_task_mgmt(struct mpt_sess *sess, int task_mgmt, int lun)
        TRACE_EXIT();
 }
 
-static int 
+static int
 mpt_handle_task_mgmt(MPT_STM_PRIV *priv, u32 reply_word,
                     int task_mgmt, int _lun)
 {
@@ -1871,11 +1871,11 @@ mpt_handle_task_mgmt(MPT_STM_PRIV *priv, u32 reply_word,
        uint16_t lun = _lun;
 
        TRACE_ENTRY();
-       
+
        TRACE_DBG("task_mgmt %d", task_mgmt);
        tgt = priv->tgt;
        init_index = GET_INITIATOR_INDEX(reply_word);
-       
+
        sess = tgt->sess[init_index];
        if (sess == NULL) {
                TRACE(TRACE_MGMT, "mpt_scst(%s): task mgmt fn %p for "
@@ -1883,7 +1883,7 @@ mpt_handle_task_mgmt(MPT_STM_PRIV *priv, u32 reply_word,
                res = -EFAULT;
                goto out;
        }
-       
+
        if (test_bit(MPT_SESS_INITING, &sess->sess_flags)) {
                TRACE(TRACE_MGMT, "mpt_scst(%s): task mgmt fn %p for "
                      "inited session", priv->ioc->name, tgt);
@@ -1891,7 +1891,7 @@ mpt_handle_task_mgmt(MPT_STM_PRIV *priv, u32 reply_word,
                res = -EFAULT;
                goto out;
        }
-       
+
        mcmd = kmalloc(sizeof(*mcmd), GFP_ATOMIC);
        TRACE_MEM("kmalloc(GFP_ATOMIC) for mcmd (%d): %p",
                  sizeof(*mcmd), mcmd);
@@ -1904,7 +1904,7 @@ mpt_handle_task_mgmt(MPT_STM_PRIV *priv, u32 reply_word,
        memset(mcmd, 0, sizeof(*mcmd));
        mcmd->sess = sess;
        mcmd->task_mgmt = task_mgmt;
-       
+
        switch(task_mgmt) {
        case IMM_NTFY_CLEAR_ACA:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_CLEAR_ACA received");
@@ -1931,7 +1931,7 @@ mpt_handle_task_mgmt(MPT_STM_PRIV *priv, u32 reply_word,
                                         (uint8_t *)&lun, sizeof(lun),
                                         SCST_ATOMIC, mcmd);
                break;
-               
+
        case IMM_NTFY_ABORT_TS:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_ABORT_TS received");
                rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_ABORT_TASK_SET,
@@ -2068,13 +2068,13 @@ stm_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf_req, MPT_FRAME_HDR *mf_rep)
                        return (0);
                }
                if (ioc_status == MPI_IOCSTATUS_TARGET_NO_CONNECTION) {
-                       printk(KERN_ERR MYNAM 
+                       printk(KERN_ERR MYNAM
                                        ": %s: Got MPI_IOCSTATUS_TARGET_NO_CONNECTION\n",
                                        ioc->name);
                        return (0);
                }
                if (rep->MsgLength > sizeof(*rep)/sizeof(u32)) {
-                       TRACE_DBG("MsgLength is %d, %d", 
+                       TRACE_DBG("MsgLength is %d, %d",
                                        rep->MsgLength, sizeof(*rep)/sizeof(u32));
                        WARN_ON(1);
                        /*
@@ -2127,10 +2127,10 @@ stm_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf_req, MPT_FRAME_HDR *mf_rep)
                /* if this is a MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT
                 * and we're SCSI, only print if we're debugging and
                 * tracing.  This is a normal consequence of attempting
-                * to send sense data and status in the same 
+                * to send sense data and status in the same
                 * transaction.
                 */
-               if (IsScsi(priv) && 
+               if (IsScsi(priv) &&
                        (ioc_status == MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT)) {
                        TRACE_DBG(MYNAM ":%s TargetStatusSendReq IOCStatus = %04x\n",
                                ioc->name, ioc_status);
@@ -2324,8 +2324,8 @@ stm_tgt_reply_high_pri(MPT_ADAPTER *ioc, TargetCmdBufferPostErrorReply_t *rep)
        if (reason == PRIORITY_REASON_NO_DISCONNECT ||
                        reason == PRIORITY_REASON_SCSI_TASK_MANAGEMENT) {
                stm_tgt_reply(ioc, reply_word);
-               goto out;       
-       } 
+               goto out;
+       }
 
        WARN_ON(1);
        if (reason == PRIORITY_REASON_TARGET_BUSY) {
@@ -2529,7 +2529,7 @@ stm_event_process(MPT_ADAPTER *ioc,
             */
            if (IsScsi(priv)) {
                    for (i = 0; i < NUM_SCSI_DEVICES; i++) {
-                           atomic_set(&priv->pending_sense[i], 
+                           atomic_set(&priv->pending_sense[i],
                                            MPT_STATUS_SENSE_IDLE);
                    }
            }
@@ -3131,18 +3131,18 @@ stm_send_target_status(MPT_STM_PRIV *priv,
                /*
                 * cache sense buffer so we can send it on the next
                 * REQUEST SENSE command if the IOC can't send the
-                * status and sense simultaneously (generating 
+                * status and sense simultaneously (generating
                 * MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT IOCStatus)
                 */
-               sense_size = min(sizeof(rsp->SenseData), 
+               sense_size = min(sizeof(rsp->SenseData),
                                       (size_t)SCSI_SENSE_BUFFERSIZE);
                TRACE_DBG("caching %d bytes pending sense", sense_size);
-               memcpy(priv->pending_sense_buffer[init_index], 
+               memcpy(priv->pending_sense_buffer[init_index],
                                rsp->SenseData, sense_size);
-               TRACE_BUFFER("priv->pending_sense_buffer", 
-                               priv->pending_sense_buffer[init_index], 
+               TRACE_BUFFER("priv->pending_sense_buffer",
+                               priv->pending_sense_buffer[init_index],
                                sense_size);
-               atomic_set(&priv->pending_sense[init_index], 
+               atomic_set(&priv->pending_sense[init_index],
                                MPT_STATUS_SENSE_ATTEMPT);
            }
            if (rsp->Valid & SCSI_RSP_LEN_VALID) {
@@ -3281,7 +3281,7 @@ stm_send_els(MPT_STM_PRIV *priv,
 
                TRACE(TRACE_MPI, "%s: stm_send_els %d", ioc->name, index);
                for (i = 0; i < sizeof(*req) / 4; i++) {
-                       TRACE(TRACE_MPI, "%s: req[%02x] = %08x", 
+                       TRACE(TRACE_MPI, "%s: req[%02x] = %08x",
                                        ioc->name, i * 4, le32_to_cpu(p[i]));
                }
        }
@@ -3728,7 +3728,7 @@ stm_process_logout_port(MPT_STM_PRIV *priv,
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 static int
-stm_get_hard_address(MPT_STM_PRIV *priv, int port_id, int *hard_address, 
+stm_get_hard_address(MPT_STM_PRIV *priv, int port_id, int *hard_address,
                int sleep)
 {
     MPT_ADAPTER                        *ioc = priv->ioc;
@@ -3857,7 +3857,7 @@ stm_scsi_configuration(MPT_STM_PRIV *priv,
        ScsiDevice1->RequestedParameters = cpu_to_le32(cap | (sync << 8));
        TRACE_DBG("%s initiator %d parameters = %08x, %s %s",
               ioc->name, i, le32_to_cpu(ScsiDevice1->RequestedParameters),
-                  sync ? "SYNC" : " ", 
+                  sync ? "SYNC" : " ",
                   wide ? "WIDE" : " ");
        memcpy(priv->hw->config_buf, ScsiDevice1, sizeof(*ScsiDevice1));
        stm_set_config_page(priv, MPI_CONFIG_PAGETYPE_SCSI_DEVICE, 1, i, sleep);
@@ -3869,7 +3869,7 @@ stm_scsi_configuration(MPT_STM_PRIV *priv,
 }
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-static void 
+static void
 stm_set_scsi_port_page1(MPT_STM_PRIV *priv, int sleep)
 {
 #ifdef DEBUG
@@ -5158,7 +5158,7 @@ stmapp_srr_adjust_offset(MPT_STM_PRIV *priv, int index)
        TRACE_EXIT();
 }
 
-static void 
+static void
 stmapp_target_error_prioprity_io(MPT_STM_PRIV *priv,
                u32 reply_word, int index, int status, int reason,
                int lun, int tag)
@@ -5369,10 +5369,10 @@ stmapp_target_error(MPT_STM_PRIV *priv,
      */
     /*
      *  Allow STATUS_SENT status to go through also, this is the
-     *  result of an attempt to send a check condition with 
-     *  attached sense bytes.  
-     *  The IOC knows it can't send status and sense over a 
-     *  traditional SCSI cable (if non-packetized), so we should 
+     *  result of an attempt to send a check condition with
+     *  attached sense bytes.
+     *  The IOC knows it can't send status and sense over a
+     *  traditional SCSI cable (if non-packetized), so we should
      *  treat this as a successful completion, manually repost the
      *  command to the IOC, and free the SCST command.
      */
@@ -5383,7 +5383,7 @@ stmapp_target_error(MPT_STM_PRIV *priv,
                     * simultaneously, indicate that we failed */
                    if (atomic_read(&priv->pending_sense[init_index]) ==
                                    MPT_STATUS_SENSE_ATTEMPT) {
-                           atomic_set(&priv->pending_sense[init_index], 
+                           atomic_set(&priv->pending_sense[init_index],
                                MPT_STATUS_SENSE_NOT_SENT);
                    }
                    stm_tgt_reply(ioc, reply_word);
@@ -5562,7 +5562,7 @@ static void __exit mpt_target_exit(void)
        mpt_proc_log_entry_clean(&tgt_template);
        scst_unregister_target_template(&tgt_template);
        _mpt_stm_exit();
-       
+
        TRACE_EXIT();
        return;
 }
index f087e91..04bcf3c 100644 (file)
@@ -241,7 +241,7 @@ typedef struct _MPT_STM_PRIV
 #define FWVersion_0101 Reserved_0101_FWVersion
 #define EventDataSasPhyLinkStatus_t MpiEventDataSasPhyLinkStatus_t
 
-#ifndef MPI_FCPORTPAGE1_FLAGS_FORCE_USE_NOSEEPROM_WWNS 
+#ifndef MPI_FCPORTPAGE1_FLAGS_FORCE_USE_NOSEEPROM_WWNS
 #define MPI_FCPORTPAGE1_FLAGS_FORCE_USE_NOSEEPROM_WWNS  (0x02000000)
 #endif
 
@@ -337,7 +337,7 @@ typedef struct _MPT_STM_PRIV
 #define MPT_STATUS_SENSE_NOT_SENT  2 /* sense couldn't be sent with status */
 #define MPT_STATUS_SENSE_HANDLE_RQ 3 /* REQUEST SENSE handled with cached sense */
 
-struct mpt_cmd 
+struct mpt_cmd
 {
        struct mpt_sess *sess;
        struct scst_cmd *scst_cmd;
@@ -349,7 +349,7 @@ struct mpt_cmd
        dma_addr_t dma_handle;
 };
 
-struct mpt_sess 
+struct mpt_sess
 {
        struct scst_session *scst_sess;
        struct mpt_tgt *tgt;
@@ -375,5 +375,5 @@ struct mpt_mgmt_cmd
        struct mpt_sess *sess;
        int task_mgmt;
 };
-       
+
 #endif
index 8ef47d4..5a75438 100644 (file)
@@ -1,17 +1,17 @@
 /*
  *  qla2x00t.c
- *  
+ *
  *  Copyright (C) 2004-2007 Vladislav Bolkhovitin <vst@vlnb.net>
  *                          Leonid Stoljar
  *                          Nathaniel Clark <nate@misrule.us>
  *
  *  Qlogic 2x00 SCSI target driver.
- *  
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -142,7 +142,7 @@ static void q2t_modify_command_count(scsi_qla_host_t *ha, int cmd_count,
 
        TRACE_ENTRY();
 
-       TRACE_DBG("Sending MODIFY_LUN ha %p, cmd %d, imm %d", 
+       TRACE_DBG("Sending MODIFY_LUN ha %p, cmd %d, imm %d",
                  ha, cmd_count, imm_count);
 
        pkt = (modify_lun_entry_t *)tgt_data.req_pkt(ha);
@@ -180,7 +180,7 @@ static void __q2t_send_notify_ack(scsi_qla_host_t *ha,
         int resp_code_valid, uint16_t ox_id)
 {
        nack_entry_t *ntfy;
-       
+
        TRACE_ENTRY();
 
        /* Send marker if required */
@@ -233,7 +233,7 @@ static inline void q2t_send_notify_ack(scsi_qla_host_t *ha,
              resp_code_valid, iocb->ox_id);
 }
 
-/* 
+/*
  * register with initiator driver (but target mode isn't enabled till
  * it's turned on via sysfs)
  */
@@ -257,7 +257,7 @@ static int q2t_target_detect(struct scst_tgt_template *templ)
        }
 
         if (tgt_data.magic != QLA2X_INITIATOR_MAGIC) {
-                PRINT_ERROR("Wrong version of the initiator driver: %d", 
+                PRINT_ERROR("Wrong version of the initiator driver: %d",
                            tgt_data.magic);
                 res = -EINVAL;
         }
@@ -320,7 +320,7 @@ static void q2t_unreg_sess(struct q2t_sess *sess)
        PRINT_INFO("qla2x00tgt(%ld): session for loop_id %d deleted",
                sess->tgt->ha->instance, sess->loop_id);
 
-       /* 
+       /*
         * Any commands for this session will be finished regularly,
         * because we must not drop SCSI commands on transport level,
         * at least without any response to the initiator.
@@ -384,12 +384,12 @@ static int q2t_target_release(struct scst_tgt *scst_tgt)
        wait_event(tgt->waitQ, test_tgt_sess_count(tgt, ha));
 
        /* big hammer */
-       if(!ha->flags.host_shutting_down) 
+       if(!ha->flags.host_shutting_down)
                tgt_data.disable_lun(ha);
 
        /* wait for sessions to clear out (just in case) */
-       wait_event(tgt->waitQ, test_tgt_sess_count(tgt, ha)); 
-       
+       wait_event(tgt->waitQ, test_tgt_sess_count(tgt, ha));
+
        TRACE_MGMT_DBG("Finished waiting for tgt %p: empty(sess_list)=%d "
                "sess_count=%d", tgt, list_empty(&tgt->sess_list),
                tgt->sess_count);
@@ -426,19 +426,19 @@ static int q2t_pci_map_calc_cnt(struct q2t_prm *prm)
                                prm->tgt->datasegs_per_cmd) /
                                prm->tgt->datasegs_per_cont;
                if (((uint16_t)(prm->seg_cnt - prm->tgt->datasegs_per_cmd)) %
-                                       prm->tgt->datasegs_per_cont) 
+                                       prm->tgt->datasegs_per_cont)
                {
                        prm->req_cnt++;
                }
        }
 
 out:
-       TRACE_DBG("seg_cnt=%d, req_cnt=%d, res=%d", prm->seg_cnt, 
+       TRACE_DBG("seg_cnt=%d, req_cnt=%d, res=%d", prm->seg_cnt,
                prm->req_cnt, res);
        return res;
 
 out_err:
-       PRINT_ERROR("qla2x00tgt(%ld): PCI mapping failed: sg_cnt=%d", 
+       PRINT_ERROR("qla2x00tgt(%ld): PCI mapping failed: sg_cnt=%d",
                prm->tgt->ha->instance, prm->sg_cnt);
        res = -1;
        goto out;
@@ -464,7 +464,7 @@ static inline uint32_t q2t_make_handle(scsi_qla_host_t *ha)
                }
        } while ((h == Q2T_NULL_HANDLE) ||
                 (h == Q2T_BUSY_HANDLE) ||
-                (h == Q2T_SKIP_HANDLE) || 
+                (h == Q2T_SKIP_HANDLE) ||
                 (ha->cmds[h] != NULL));
 
        if (h != Q2T_NULL_HANDLE)
@@ -493,7 +493,7 @@ static void q2t_build_ctio_pkt(struct q2t_prm *prm)
                prm->pkt->entry_type = CONTINUE_TGT_IO_TYPE;
 
        prm->pkt->entry_count = (uint8_t) prm->req_cnt;
-       
+
        h = q2t_make_handle(prm->tgt->ha);
        if (h != Q2T_NULL_HANDLE) {
                prm->tgt->ha->cmds[h] = prm->cmd;
@@ -506,10 +506,10 @@ static void q2t_build_ctio_pkt(struct q2t_prm *prm)
        /* Set initiator ID */
        h = GET_TARGET_ID(prm->tgt->ha, &prm->cmd->atio);
        SET_TARGET_ID(prm->tgt->ha, prm->pkt->target, h);
-                     
+
        prm->pkt->exchange_id = prm->cmd->atio.exchange_id;
 
-       TRACE(TRACE_DEBUG|TRACE_SCSI, 
+       TRACE(TRACE_DEBUG|TRACE_SCSI,
              "handle(scst_cmd) -> %08x, timeout %d L %#x -> I %#x E %#x",
              prm->pkt->handle, timeout, le16_to_cpu(prm->cmd->atio.lun),
              GET_TARGET_ID(prm->tgt->ha, prm->pkt),
@@ -549,7 +549,7 @@ static void q2t_load_data_segments(struct q2t_prm *prm)
        /* Load command entry data segments */
        for (cnt = 0;
             (cnt < prm->tgt->datasegs_per_cmd) && prm->seg_cnt;
-            cnt++, prm->seg_cnt--) 
+            cnt++, prm->seg_cnt--)
        {
                *dword_ptr++ =
                    cpu_to_le32(pci_dma_lo32(sg_dma_address(prm->sg)));
@@ -573,10 +573,10 @@ static void q2t_load_data_segments(struct q2t_prm *prm)
 
        /* Build continuation packets */
        while (prm->seg_cnt > 0) {
-               cont_a64_entry_t *cont_pkt64 = 
+               cont_a64_entry_t *cont_pkt64 =
                        (cont_a64_entry_t *)tgt_data.req_cont_pkt(prm->tgt->ha);
 
-               /* 
+               /*
                 * Make sure that from cont_pkt64 none of
                 * 64-bit specific fields used for 32-bit
                 * addressing. Cast to (cont_entry_t*) for
@@ -602,7 +602,7 @@ static void q2t_load_data_segments(struct q2t_prm *prm)
                /* Load continuation entry data segments */
                for (cnt = 0;
                     cnt < prm->tgt->datasegs_per_cont && prm->seg_cnt;
-                    cnt++, prm->seg_cnt--) 
+                    cnt++, prm->seg_cnt--)
                {
                        *dword_ptr++ =
                            cpu_to_le32(pci_dma_lo32
@@ -636,7 +636,7 @@ static void q2t_init_ctio_ret_entry(ctio_ret_entry_t *ctio_m1,
 {
        TRACE_ENTRY();
 
-       prm->sense_buffer_len = min((uint32_t)prm->sense_buffer_len, 
+       prm->sense_buffer_len = min((uint32_t)prm->sense_buffer_len,
                                    (uint32_t)sizeof(ctio_m1->sense_data));
 
        ctio_m1->flags = __constant_cpu_to_le16(OF_SSTS | OF_FAST_POST |
@@ -782,10 +782,10 @@ static int q2t_xmit_response(struct scst_cmd *scst_cmd)
                                prm.pkt->scsi_status = cpu_to_le16(
                                        prm.rq_result);
                                prm.pkt->residual = cpu_to_le32(prm.residual);
-                               prm.pkt->flags |= 
+                               prm.pkt->flags |=
                                        __constant_cpu_to_le16(OF_SSTS);
                        } else {
-                               ctio_ret_entry_t *ctio_m1 = 
+                               ctio_ret_entry_t *ctio_m1 =
                                        (ctio_ret_entry_t *)
                                        tgt_data.req_cont_pkt(prm.tgt->ha);
 
@@ -810,7 +810,7 @@ static int q2t_xmit_response(struct scst_cmd *scst_cmd)
        } else {
                q2t_init_ctio_ret_entry((ctio_ret_entry_t *)prm.pkt, &prm);
        }
-       
+
        prm.cmd->state = Q2T_STATE_PROCESSED;   /* Mid-level is done processing */
 
        TRACE_BUFFER("Xmitting", prm.pkt, REQUEST_ENTRY_SIZE);
@@ -884,7 +884,7 @@ static int q2t_rdy_to_xfer(struct scst_cmd *scst_cmd)
        TRACE_BUFFER("Xfering", prm.pkt, REQUEST_ENTRY_SIZE);
 
        q2t_exec_queue(prm.tgt->ha);
-       
+
 out_unlock:
        /* Release ring specific lock */
        spin_unlock_irqrestore(&prm.tgt->ha->hardware_lock, flags);
@@ -1001,7 +1001,7 @@ static inline struct scst_cmd *q2t_get_cmd(scsi_qla_host_t *ha, uint32_t handle)
 
 /* ha->hardware_lock supposed to be held on entry */
 static void q2t_do_ctio_completion(scsi_qla_host_t *ha,
-                                  uint32_t handle, 
+                                  uint32_t handle,
                                   uint16_t status,
                                   ctio_common_entry_t *ctio)
 {
@@ -1012,10 +1012,10 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *ha,
 
        TRACE_ENTRY();
 
-       if (ctio != NULL) 
+       if (ctio != NULL)
                loop_id = GET_TARGET_ID(ha, ctio);
 
-       TRACE(TRACE_DEBUG|TRACE_SCSI, "handle(ctio %p status %#x) <- %08x I %x", 
+       TRACE(TRACE_DEBUG|TRACE_SCSI, "handle(ctio %p status %#x) <- %08x I %x",
              ctio, status, handle, loop_id);
 
        /* Clear out CTIO_COMPLETION_HANDLE_MARK */
@@ -1061,7 +1061,7 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *ha,
                scst_cmd = q2t_get_cmd(ha, handle);
                if (unlikely(scst_cmd == NULL)) {
                        PRINT_INFO("qla2x00tgt(%ld): Suspicious: unable to "
-                                  "find the command with handle %x", 
+                                  "find the command with handle %x",
                                   ha->instance, handle);
                        goto out;
                }
@@ -1076,7 +1076,7 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *ha,
                if (sess == NULL) {
                        PRINT_INFO("qla2x00tgt(%ld): Suspicious: "
                                   "ctio_completion for non-existing session "
-                                  "(loop_id %d, tag %d)", 
+                                  "(loop_id %d, tag %d)",
                                   ha->instance, loop_id, tag);
                        goto out;
                }
@@ -1084,7 +1084,7 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *ha,
                scst_cmd = scst_find_cmd_by_tag(sess->scst_sess, tag);
                if (scst_cmd == NULL) {
                        PRINT_INFO("qla2x00tgt(%ld): Suspicious: unable to "
-                            "find the command with tag %d (loop_id %d)", 
+                            "find the command with tag %d (loop_id %d)",
                             ha->instance, tag, loop_id);
                        goto out;
                }
@@ -1318,9 +1318,9 @@ static char *q2t_find_name(scsi_qla_host_t *ha, int loop_id)
        list_for_each_entry(fcl, &ha->fcports, list) {
            if (loop_id == (fcl->loop_id & 0xFF)) {
                sprintf(wwn_str, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
-                       fcl->port_name[0], fcl->port_name[1], 
-                       fcl->port_name[2], fcl->port_name[3], 
-                       fcl->port_name[4], fcl->port_name[5], 
+                       fcl->port_name[0], fcl->port_name[1],
+                       fcl->port_name[2], fcl->port_name[3],
+                       fcl->port_name[4], fcl->port_name[5],
                        fcl->port_name[6], fcl->port_name[7]);
                TRACE_DBG("found wwn: %s for loop_id: %d", wwn_str, loop_id);
                wwn_found = 1;
@@ -1349,7 +1349,7 @@ static char *q2t_make_name(scsi_qla_host_t *ha, const uint8_t *name)
                goto out;
        }
        sprintf(wwn_str, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
-               name[1], name[0], name[3], name[2], name[5], name[4], 
+               name[1], name[0], name[3], name[2], name[5], name[4],
                name[7], name[6]);
 
 out:
@@ -1514,35 +1514,35 @@ static int q2t_handle_task_mgmt(scsi_qla_host_t *ha, notify_entry_t *iocb)
        case IMM_NTFY_CLEAR_ACA:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_CLEAR_ACA received");
                rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_CLEAR_ACA,
-                                        (uint8_t *)&lun, sizeof(lun), 
+                                        (uint8_t *)&lun, sizeof(lun),
                                         SCST_ATOMIC, mcmd);
                break;
 
        case IMM_NTFY_TARGET_RESET:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_TARGET_RESET received");
                rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_TARGET_RESET,
-                                        (uint8_t *)&lun, sizeof(lun), 
+                                        (uint8_t *)&lun, sizeof(lun),
                                         SCST_ATOMIC, mcmd);
                break;
 
        case IMM_NTFY_LUN_RESET:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_LUN_RESET received");
                rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_LUN_RESET,
-                                        (uint8_t *)&lun, sizeof(lun), 
+                                        (uint8_t *)&lun, sizeof(lun),
                                         SCST_ATOMIC, mcmd);
                break;
 
        case IMM_NTFY_CLEAR_TS:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_CLEAR_TS received");
                rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_CLEAR_TASK_SET,
-                                        (uint8_t *)&lun, sizeof(lun), 
+                                        (uint8_t *)&lun, sizeof(lun),
                                         SCST_ATOMIC, mcmd);
                break;
 
        case IMM_NTFY_ABORT_TS:
                TRACE(TRACE_MGMT, "%s", "IMM_NTFY_ABORT_TS received");
                rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_ABORT_TASK_SET,
-                                        (uint8_t *)&lun, sizeof(lun), 
+                                        (uint8_t *)&lun, sizeof(lun),
                                         SCST_ATOMIC, mcmd);
                break;
 
@@ -1589,7 +1589,7 @@ static int q2t_abort_task(scsi_qla_host_t *ha, notify_entry_t *iocb)
                res = -EFAULT;
                goto out;
        }
-       
+
        mcmd = kzalloc(sizeof(*mcmd), GFP_ATOMIC);
        if (mcmd == NULL) {
                TRACE(TRACE_OUT_OF_MEM, "%s", "Allocation of mgmt cmd failed");
@@ -1600,7 +1600,7 @@ static int q2t_abort_task(scsi_qla_host_t *ha, notify_entry_t *iocb)
        mcmd->sess = sess;
        mcmd->notify_entry = *iocb;
 
-       rc = scst_rx_mgmt_fn_tag(sess->scst_sess, SCST_ABORT_TASK, tag, 
+       rc = scst_rx_mgmt_fn_tag(sess->scst_sess, SCST_ABORT_TASK, tag,
                SCST_ATOMIC, mcmd);
        if (rc != 0) {
                PRINT_ERROR("qla2x00tgt(%ld): scst_rx_mgmt_fn_tag() failed: %d",
@@ -1665,20 +1665,20 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, notify_entry_t *iocb)
 
        if (!ha->flags.enable_target_mode || ha->tgt == NULL) {
                TRACE(TRACE_MGMT_DEBUG|TRACE_SCSI|TRACE_DEBUG,
-                     "Acking %04x S %04x I %#x -> L %#x", status, 
+                     "Acking %04x S %04x I %#x -> L %#x", status,
                      le16_to_cpu(iocb->seq_id), loop_id,
                      le16_to_cpu(iocb->lun));
                goto out;
        }
 
        TRACE_BUFFER("IMMED Notify Coming Up", iocb, sizeof(*iocb));
-       
+
        switch (status) {
        case IMM_NTFY_LIP_RESET:
                TRACE(TRACE_MGMT, "LIP reset (I %#x)", loop_id);
-               /* 
-                * ToDo: doing so we reset all holding RESERVE'ations, 
-                * which could be unexpected, so be more carefull here 
+               /*
+                * ToDo: doing so we reset all holding RESERVE'ations,
+                * which could be unexpected, so be more carefull here
                 */
                q2t_clear_tgt_db(ha->tgt);
                /* set the Clear LIP reset event flag */
@@ -1691,7 +1691,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, notify_entry_t *iocb)
                break;
 
        case IMM_NTFY_ABORT_TASK:
-               TRACE(TRACE_MGMT_MINOR, "Abort Task (S %04x I %#x -> L %#x)", 
+               TRACE(TRACE_MGMT_MINOR, "Abort Task (S %04x I %#x -> L %#x)",
                      le16_to_cpu(iocb->seq_id), loop_id,
                      le16_to_cpu(iocb->lun));
                if (q2t_abort_task(ha, iocb) == 0)
@@ -1699,12 +1699,12 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, notify_entry_t *iocb)
                break;
 
        case IMM_NTFY_PORT_LOGOUT:
-               TRACE(TRACE_MGMT, "Port logout (S %04x I %#x -> L %#x)", 
+               TRACE(TRACE_MGMT, "Port logout (S %04x I %#x -> L %#x)",
                      le16_to_cpu(iocb->seq_id), loop_id,
                      le16_to_cpu(iocb->lun));
-               /* 
-                * ToDo: doing so we reset all holding RESERVE'ations, 
-                * which could be unexpected, so be more carefull here 
+               /*
+                * ToDo: doing so we reset all holding RESERVE'ations,
+                * which could be unexpected, so be more carefull here
                 */
                q2t_port_logout(ha, loop_id);
                break;
@@ -1715,9 +1715,9 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, notify_entry_t *iocb)
                /* ToDo: ports DB changes handling ?? */
                TRACE(TRACE_MGMT, "Port config changed, Global TPRLO or "
                      "Global LOGO (%d)", status);
-               /* 
-                * ToDo: doing so we reset all holding RESERVE'ations, 
-                * which could be unexpected, so be more carefull here 
+               /*
+                * ToDo: doing so we reset all holding RESERVE'ations,
+                * which could be unexpected, so be more carefull here
                 */
                q2t_clear_tgt_db(ha->tgt);
                break;
@@ -1765,7 +1765,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                        ha, ha->flags.enable_target_mode);
                goto out;
        }
-       
+
        if (pkt->entry_status != 0) {
                PRINT_ERROR("qla2x00tgt(%ld): Received response packet %x "
                     "with error status %x", ha->instance, pkt->entry_type,
@@ -1780,9 +1780,9 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                        atio = (atio_entry_t *)pkt;
                        TRACE_DBG("ACCEPT_TGT_IO instance %ld status %04x "
                                  "lun %04x read/write %d data_length %08x "
-                                 "target_id %02x exchange_id %04x ", 
+                                 "target_id %02x exchange_id %04x ",
                                  ha->instance, le16_to_cpu(atio->status),
-                                 le16_to_cpu(atio->lun), 
+                                 le16_to_cpu(atio->lun),
                                  atio->execution_codes,
                                  le32_to_cpu(atio->data_length),
                                  GET_TARGET_ID(ha, atio),
@@ -1790,7 +1790,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                        if (atio->status !=
                                __constant_cpu_to_le16(ATIO_CDB_VALID)) {
                                PRINT_ERROR("qla2x00tgt(%ld): ATIO with error "
-                                           "status %x received", ha->instance, 
+                                           "status %x received", ha->instance,
                                            le16_to_cpu(atio->status));
                                break;
                        }
@@ -1808,7 +1808,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                                        if (!ha->tgt->tgt_shutdown) {
                                                PRINT_INFO("qla2x00tgt(%ld): Unable to "
                                                    "send the command to SCSI target "
-                                                   "mid-level, sending BUSY status", 
+                                                   "mid-level, sending BUSY status",
                                                    ha->instance);
                                        }
                                        q2t_send_busy(ha, atio);
@@ -1819,34 +1819,34 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                                "disabled", ha->instance);
                }
                break;
-                       
+
        case CONTINUE_TGT_IO_TYPE:
                if (ha->flags.enable_target_mode && ha->tgt != NULL) {
                        ctio_common_entry_t *entry = (ctio_common_entry_t *)pkt;
                        TRACE_DBG("CONTINUE_TGT_IO: instance %ld",
                                  ha->instance);
                        q2t_do_ctio_completion(ha, entry->handle,
-                                              le16_to_cpu(entry->status), 
+                                              le16_to_cpu(entry->status),
                                               entry);
                } else if (!ha->tgt->tgt_shutdown) {
                        PRINT_ERROR("qla2x00tgt(%ld): CTIO, but target mode "
                                "disabled", ha->instance);
                }
                break;
-               
+
        case CTIO_A64_TYPE:
                if (ha->flags.enable_target_mode && ha->tgt != NULL) {
                        ctio_common_entry_t *entry = (ctio_common_entry_t *)pkt;
                        TRACE_DBG("CTIO_A64: instance %ld", ha->instance);
-                       q2t_do_ctio_completion(ha, entry->handle, 
-                                              le16_to_cpu(entry->status), 
+                       q2t_do_ctio_completion(ha, entry->handle,
+                                              le16_to_cpu(entry->status),
                                               entry);
                } else if (!ha->tgt->tgt_shutdown) {
                        PRINT_ERROR("qla2x00tgt(%ld): CTIO_A64, but target "
                                "mode disabled", ha->instance);
                }
                break;
-                       
+
        case IMMED_NOTIFY_TYPE:
                TRACE_DBG("%s", "IMMED_NOTIFY");
                q2t_handle_imm_notify(ha, (notify_entry_t *)pkt);
@@ -1858,14 +1858,14 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                                "with NULL tgt", ha->instance);
                } else if (ha->tgt->notify_ack_expected > 0) {
                        nack_entry_t *entry = (nack_entry_t *)pkt;
-                       TRACE_DBG("NOTIFY_ACK seq %04x status %x", 
+                       TRACE_DBG("NOTIFY_ACK seq %04x status %x",
                                  le16_to_cpu(entry->seq_id),
                                  le16_to_cpu(entry->status));
                        ha->tgt->notify_ack_expected--;
                        if (entry->status !=
                                __constant_cpu_to_le16(NOTIFY_ACK_SUCCESS)) {
                                PRINT_ERROR("qla2x00tgt(%ld): NOTIFY_ACK "
-                                           "failed %x", ha->instance, 
+                                           "failed %x", ha->instance,
                                            le16_to_cpu(entry->status));
                        }
                } else {
@@ -1874,24 +1874,24 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                }
                break;
 
-       case MODIFY_LUN_TYPE: 
+       case MODIFY_LUN_TYPE:
                if ((ha->tgt != NULL) && (ha->tgt->modify_lun_expected > 0)) {
                        struct q2t_tgt *tgt = ha->tgt;
                        modify_lun_entry_t *entry = (modify_lun_entry_t *)pkt;
-                       TRACE_DBG("MODIFY_LUN %x, imm %c%d, cmd %c%d", 
+                       TRACE_DBG("MODIFY_LUN %x, imm %c%d, cmd %c%d",
                                  entry->status,
-                                 (entry->operators & MODIFY_LUN_IMM_ADD) ?'+' 
-                                 :(entry->operators & MODIFY_LUN_IMM_SUB) ?'-' 
-                                 :' ', 
-                                 entry->immed_notify_count, 
-                                 (entry->operators & MODIFY_LUN_CMD_ADD) ?'+' 
+                                 (entry->operators & MODIFY_LUN_IMM_ADD) ?'+'
+                                 :(entry->operators & MODIFY_LUN_IMM_SUB) ?'-'
+                                 :' ',
+                                 entry->immed_notify_count,
+                                 (entry->operators & MODIFY_LUN_CMD_ADD) ?'+'
                                  :(entry->operators & MODIFY_LUN_CMD_SUB) ?'-'
-                                 :' ', 
+                                 :' ',
                                  entry->command_count);
                        tgt->modify_lun_expected--;
                        if (entry->status != MODIFY_LUN_SUCCESS) {
                                PRINT_ERROR("qla2x00tgt(%ld): MODIFY_LUN "
-                                           "failed %x", ha->instance, 
+                                           "failed %x", ha->instance,
                                            entry->status);
                        }
                        tgt->disable_lun_status = entry->status;
@@ -1905,7 +1905,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                if (ha->tgt != NULL) {
                        struct q2t_tgt *tgt = ha->tgt;
                        elun_entry_t *entry = (elun_entry_t *)pkt;
-                       TRACE_DBG("ENABLE_LUN %x imm %u cmd %u ", 
+                       TRACE_DBG("ENABLE_LUN %x imm %u cmd %u ",
                                  entry->status, entry->immed_notify_count,
                                  entry->command_count);
                        if ((ha->flags.enable_target_mode) &&
@@ -1918,8 +1918,8 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, sts_entry_t *pkt)
                                        "error: %#x", entry->status);
                                entry->status = ENABLE_LUN_SUCCESS;
                        } else if (entry->status != ENABLE_LUN_SUCCESS) {
-                               PRINT_ERROR("qla2x00tgt(%ld): ENABLE_LUN " 
-                                           "failed %x", 
+                               PRINT_ERROR("qla2x00tgt(%ld): ENABLE_LUN "
+                                           "failed %x",
                                            ha->instance, entry->status);
                                ha->flags.enable_target_mode =
                                        ~ha->flags.enable_target_mode;
@@ -1948,7 +1948,7 @@ static void q2t_async_event(uint16_t code, scsi_qla_host_t *ha, uint16_t *mailbo
        sBUG_ON(ha == NULL);
 
        if (unlikely(ha->tgt == NULL)) {
-               TRACE(TRACE_DEBUG|TRACE_MGMT, 
+               TRACE(TRACE_DEBUG|TRACE_MGMT,
                      "ASYNC EVENT %#x, but no tgt. ha %p tgt_flag %d",
                      code, ha, ha->flags.enable_target_mode);
                goto out;
@@ -1966,16 +1966,16 @@ static void q2t_async_event(uint16_t code, scsi_qla_host_t *ha, uint16_t *mailbo
        case MBA_CHG_IN_CONNECTION:     /* Change in connection mode. */
                TRACE_MGMT_DBG("Async event %#x occured: clear tgt_db", code);
 #if 0
-               /* 
-                * ToDo: doing so we reset all holding RESERVE'ations, 
-                * which could be unexpected, so be more carefull here 
+               /*
+                * ToDo: doing so we reset all holding RESERVE'ations,
+                * which could be unexpected, so be more carefull here
                 */
                q2t_clear_tgt_db(ha->tgt);
 #endif
                break;
        case MBA_RSCN_UPDATE:
                TRACE_MGMT_DBG("RSCN Update (%x) N_Port %#06x (fmt %x)",
-                     code, ((mailbox[1]&0xF)<<2)|le16_to_cpu(mailbox[2]), 
+                     code, ((mailbox[1]&0xF)<<2)|le16_to_cpu(mailbox[2]),
                      (mailbox[1]&0xF0)>>1);
                break;
 
@@ -2010,9 +2010,9 @@ static int q2t_get_target_name(scsi_qla_host_t *ha, char **wwn)
        }
 
        sprintf(name, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
-               ha->port_name[0], ha->port_name[1], 
-               ha->port_name[2], ha->port_name[3], 
-               ha->port_name[4], ha->port_name[5], 
+               ha->port_name[0], ha->port_name[1],
+               ha->port_name[2], ha->port_name[3],
+               ha->port_name[4], ha->port_name[5],
                ha->port_name[6], ha->port_name[7]);
 
        *wwn = name;
@@ -2023,12 +2023,12 @@ out:
 
 /* no lock held on entry */
 /* called via callback from qla2xxx */
-static void q2t_host_action(scsi_qla_host_t *ha, 
+static void q2t_host_action(scsi_qla_host_t *ha,
                            qla2x_tgt_host_action_t action)
 {
        struct q2t_tgt *tgt = NULL;
        unsigned long flags = 0;
-       
+
 
        TRACE_ENTRY();
 
@@ -2046,18 +2046,18 @@ static void q2t_host_action(scsi_qla_host_t *ha,
                              "Allocation of tgt failed");
                        goto out;
                }
-               
+
                tgt->ha = ha;
                tgt->disable_lun_status = Q2T_DISABLE_LUN_STATUS_NOT_SET;
                INIT_LIST_HEAD(&tgt->sess_list);
                init_waitqueue_head(&tgt->waitQ);
-               
+
                if (ha->flags.enable_64bit_addressing) {
                        PRINT_INFO("qla2x00tgt(%ld): 64 Bit PCI "
                                   "Addressing Enabled", ha->instance);
                        tgt->tgt_enable_64bit_addr = 1;
                        /* 3 is reserved */
-                       sg_tablesize = 
+                       sg_tablesize =
                                QLA_MAX_SG64(ha->request_q_length - 3);
                        tgt->datasegs_per_cmd = DATASEGS_PER_COMMAND64;
                        tgt->datasegs_per_cont = DATASEGS_PER_CONT64;
@@ -2069,7 +2069,7 @@ static void q2t_host_action(scsi_qla_host_t *ha,
                        tgt->datasegs_per_cmd = DATASEGS_PER_COMMAND32;
                        tgt->datasegs_per_cont = DATASEGS_PER_CONT32;
                }
-               
+
                if (q2t_get_target_name(ha, &wwn) != 0) {
                        kfree(tgt);
                        goto out;
@@ -2079,7 +2079,7 @@ static void q2t_host_action(scsi_qla_host_t *ha,
                kfree(wwn);
                if (!tgt->scst_tgt) {
                        PRINT_ERROR("qla2x00tgt(%ld): scst_register() "
-                                   "failed for host %ld(%p)", ha->instance, 
+                                   "failed for host %ld(%p)", ha->instance,
                                    ha->host_no, ha);
                        kfree(tgt);
                        goto out;
@@ -2087,7 +2087,7 @@ static void q2t_host_action(scsi_qla_host_t *ha,
 
                scst_tgt_set_sg_tablesize(tgt->scst_tgt, sg_tablesize);
                scst_tgt_set_tgt_priv(tgt->scst_tgt, tgt);
-               
+
                spin_lock_irqsave(&ha->hardware_lock, flags);
                ha->tgt = tgt;
                spin_unlock_irqrestore(&ha->hardware_lock, flags);
@@ -2095,7 +2095,7 @@ static void q2t_host_action(scsi_qla_host_t *ha,
                TRACE_DBG("Enable lun for host %ld(%ld,%p)",
                          ha->host_no, ha->instance, ha);
                tgt_data.enable_lun(ha);
-               
+
                break;
        }
        case DISABLE_TARGET_MODE:
@@ -2105,9 +2105,9 @@ static void q2t_host_action(scsi_qla_host_t *ha,
                        ha->flags.enable_target_mode = 0;
                        spin_unlock_irqrestore(&ha->hardware_lock, flags);
 
-                       if(!ha->flags.host_shutting_down) 
+                       if(!ha->flags.host_shutting_down)
                                tgt_data.disable_lun(ha);
-                       
+
                        goto out;
                }
 
@@ -2120,7 +2120,7 @@ static void q2t_host_action(scsi_qla_host_t *ha,
                scst_unregister(tgt->scst_tgt);
                /*
                 * Free of tgt happens via callback q2t_target_release
-                * called from scst_unregister, so we shouldn't touch it again 
+                * called from scst_unregister, so we shouldn't touch it again
                 */
                tgt = NULL;
                break;
@@ -2237,7 +2237,7 @@ static int __init q2t_init(void)
                goto out_free_kmem;
 
        /*
-        * qla2xxx_tgt_register_driver() happens in q2t_target_detect 
+        * qla2xxx_tgt_register_driver() happens in q2t_target_detect
         * called via scst_register_target_template()
         */
 
@@ -2254,7 +2254,7 @@ out_unreg_target:
 
 out_free_kmem:
        kmem_cache_destroy(q2t_cmd_cachep);
+
        qla2xxx_tgt_unregister_driver();
        goto out;
 }
@@ -2266,9 +2266,9 @@ static void __exit q2t_exit(void)
        q2t_proc_log_entry_clean(&tgt_template);
 
        scst_unregister_target_template(&tgt_template);
-       
+
        qla2xxx_tgt_unregister_driver();
-       
+
        kmem_cache_destroy(q2t_cmd_cachep);
 
        TRACE_EXIT();
index cfcea70..16c7c87 100644 (file)
@@ -1,19 +1,19 @@
 /*
  *  qla2x00t.h
- *  
+ *
  *  Copyright (C) 2004-2007 Vladislav Bolkhovitin <vst@vlnb.net>
  *                          Leonid Stoljar
  *                          Nathaniel Clark <nate@misrule.us>
  *
- *  Significant modification 2006 by Nathaniel Clark <nate@misrule.us> 
+ *  Significant modification 2006 by Nathaniel Clark <nate@misrule.us>
  *
  *  Qlogic 2x00 SCSI target driver.
- *  
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -163,10 +163,10 @@ struct q2t_prm
 };
 
 /* ha->hardware_lock supposed to be held on entry (to protect tgt->sess_list) */
-static inline struct q2t_sess *q2t_find_sess_by_lid(struct q2t_tgt *tgt, 
-                                                   uint16_t lid) 
+static inline struct q2t_sess *q2t_find_sess_by_lid(struct q2t_tgt *tgt,
+                                                   uint16_t lid)
 {
-       struct q2t_sess *sess, *sess_tmp;       
+       struct q2t_sess *sess, *sess_tmp;
        sBUG_ON(tgt == NULL);
        list_for_each_entry_safe(sess, sess_tmp, &tgt->sess_list, list) {
                if (lid == (sess->loop_id))
index a923279..ad5b569 100644 (file)
@@ -1,16 +1,16 @@
 /*
  *  qla2x_tgt.h
- *  
+ *
  *  Copyright (C) 2004-2005 Vladislav Bolkhovitin <vst@vlnb.net>
  *                and Leonid Stoljar
  *
  *  Additional file for the target driver support.
- *  
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation; either version 2
  *  of the License, or (at your option) any later version.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -49,7 +49,7 @@ extern request_t *qla2x00_req_pkt(scsi_qla_host_t *ha);
  */
 /* Caller MUST have hardware lock held */
 static inline void
-__qla2x00_en_dis_lun(scsi_qla_host_t *ha, int enable) 
+__qla2x00_en_dis_lun(scsi_qla_host_t *ha, int enable)
 {
        elun_entry_t *pkt;
 
@@ -66,7 +66,7 @@ __qla2x00_en_dis_lun(scsi_qla_host_t *ha, int enable)
                        pkt->immed_notify_count = 0;
                        pkt->timeout = 0;
                }
-               DEBUG2(printk(KERN_DEBUG 
+               DEBUG2(printk(KERN_DEBUG
                              "scsi%lu:ENABLE_LUN IOCB imm %u cmd %u timeout %u\n",
                              ha->host_no, pkt->immed_notify_count,
                              pkt->command_count, pkt->timeout));
index c059495..455090c 100644 (file)
@@ -1,17 +1,17 @@
 /*
  *  qla2x_tgt_def.h
- *  
+ *
  *  Copyright (C) 2004-2005 Vladislav Bolkhovitin <vst@vlnb.net>
  *                 and Leonid Stoljar
  *
  *  Additional file for the target driver support. Intended to define
  *  for 2200 and 2300 thier own exported symbols with unique names.
- *  
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation; either version 2
  *  of the License, or (at your option) any later version.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -47,7 +47,7 @@
 
 #define QLA_EXTENDED_LUN 1
 
-/* 
+/*
  * Used to mark which completion handles (for RIO Status's) are for CTIO's
  * vs. regular (non-target) info.
  */
@@ -330,9 +330,9 @@ typedef struct
  * Type Definitions used by initiator & target halves
 \********************************************************************/
 
-typedef enum { 
-       DISABLE_TARGET_MODE = 0, 
-       ENABLE_TARGET_MODE = 1 
+typedef enum {
+       DISABLE_TARGET_MODE = 0,
+       ENABLE_TARGET_MODE = 1
 } qla2x_tgt_host_action_t;
 
 struct qla2x_tgt_initiator
@@ -349,7 +349,7 @@ struct qla2x_tgt_initiator
 struct qla2x_tgt_target
 {
        int magic;
-       
+
        /* Callbacks - H/W lock MUST be held while calling any*/
        request_t *(*req_pkt)(scsi_qla_host_t *ha);
        void (*isp_cmd)(scsi_qla_host_t *ha);
@@ -360,7 +360,7 @@ struct qla2x_tgt_target
        int (*get_counts)(scsi_qla_host_t *ha, uint8_t *cmd, uint8_t *imm);
 };
 
-int qla2xxx_tgt_register_driver(/* IN */  struct qla2x_tgt_initiator *tgt, 
+int qla2xxx_tgt_register_driver(/* IN */  struct qla2x_tgt_initiator *tgt,
                                /* OUT */ struct qla2x_tgt_target *init);
 
 void qla2xxx_tgt_unregister_driver(void);
index c2edd9c..97527df 100644 (file)
@@ -29,7 +29,7 @@ qla2x00_show_tgt_enabled(struct class_device *cdev, char *buffer)
        ulong max_size = PAGE_SIZE;
        ulong size;
 
-       size = snprintf(buffer, max_size, "%d\n", 
+       size = snprintf(buffer, max_size, "%d\n",
                        ha->flags.enable_target_mode);
 
        return size;
@@ -58,7 +58,7 @@ qla2x00_store_tgt_enabled(struct class_device *cdev,
        }
 
        switch (buffer[0]) {
-       case '0' : 
+       case '0' :
                if ((ha->flags.enable_target_mode) || force) {
                        qla_target.tgt_host_action(ha, DISABLE_TARGET_MODE);
                        msleep_interruptible(10*1000);
@@ -79,12 +79,12 @@ qla2x00_store_tgt_enabled(struct class_device *cdev,
        if ((size > 2) && (buffer[2] == 'r')) {
                set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
        }
-       
+
        return size;
 }
 
-static CLASS_DEVICE_ATTR(target_mode_enabled, 
-                        S_IRUGO|S_IWUSR, 
+static CLASS_DEVICE_ATTR(target_mode_enabled,
+                        S_IRUGO|S_IWUSR,
                         qla2x00_show_tgt_enabled,
                         qla2x00_store_tgt_enabled);
 
@@ -106,13 +106,13 @@ qla2x00_show_resource_counts(struct class_device *cdev, char *buffer)
        rval = qla2x00_mailbox_command(ha, &mc);
 
        if (rval != QLA_SUCCESS) {
-               size = snprintf(buffer, max_size, 
-                               "Mailbox Command failed %d, mb %#x", 
+               size = snprintf(buffer, max_size,
+                               "Mailbox Command failed %d, mb %#x",
                                rval, mc.mb[0]);
                goto out;
        }
 
-       size = snprintf(buffer, max_size, 
+       size = snprintf(buffer, max_size,
                        "immed_notify\t%d\ncommand\t\t%d\n",
                        mc.mb[2], mc.mb[1]);
 
@@ -143,7 +143,7 @@ qla2x00_show_port_database(struct class_device *cdev, char *buffer)
        dma_addr_t pmap_dma;
        port_data_t *pmap;
        ulong dma_size = 0x100*sizeof(*pmap);
-       pmap = (port_data_t*)dma_alloc_coherent(&ha->pdev->dev, dma_size, 
+       pmap = (port_data_t*)dma_alloc_coherent(&ha->pdev->dev, dma_size,
                                                &pmap_dma, GFP_KERNEL);
        if (pmap == NULL) {
                size = snprintf(buffer, max_size, "DMA Alloc failed of %ld",
@@ -165,30 +165,30 @@ qla2x00_show_port_database(struct class_device *cdev, char *buffer)
        rval = qla2x00_mailbox_command(ha, &mc);
 
        if (rval != QLA_SUCCESS) {
-               size = snprintf(buffer, max_size, 
-                               "Mailbox Command failed %d, mb0 %#x mb1 %#x\n", 
+               size = snprintf(buffer, max_size,
+                               "Mailbox Command failed %d, mb0 %#x mb1 %#x\n",
                                rval, mc.mb[0], mc.mb[1]);
                goto out_free;
        }
 
        entries = le16_to_cpu(mc.mb[1])/sizeof(*pmap);
-       
-       size += snprintf(buffer+size, max_size-size, 
+
+       size += snprintf(buffer+size, max_size-size,
                         "Port Name List (%#04x) returned %d bytes\nL_ID WWPN\n",
                         MBC_PORT_NODE_NAME_LIST, le16_to_cpu(mc.mb[1]));
 
        for (i = 0; (i < entries) && (size < max_size); ++i) {
-               size += snprintf(buffer+size, max_size-size, 
+               size += snprintf(buffer+size, max_size-size,
                                 "%04x %02x%02x%02x%02x%02x%02x%02x%02x\n",
                                 le16_to_cpu(pmap[i].loop_id),
-                                pmap[i].port_name[7], pmap[i].port_name[6], 
-                                pmap[i].port_name[5], pmap[i].port_name[4], 
-                                pmap[i].port_name[3], pmap[i].port_name[2], 
+                                pmap[i].port_name[7], pmap[i].port_name[6],
+                                pmap[i].port_name[5], pmap[i].port_name[4],
+                                pmap[i].port_name[3], pmap[i].port_name[2],
                                 pmap[i].port_name[1], pmap[i].port_name[0]);
        }
 
 out_free:
-       dma_free_coherent(&ha->pdev->dev, dma_size, pmap, pmap_dma);    
+       dma_free_coherent(&ha->pdev->dev, dma_size, pmap, pmap_dma);
 
 
        if (size < max_size) {
@@ -204,17 +204,17 @@ out_free:
                rval = qla2x00_get_id_list(ha, ha->gid_list, ha->gid_list_dma,
                                           &entries);
                if (rval != QLA_SUCCESS) {
-                       size += snprintf(buffer+size, max_size-size, 
+                       size += snprintf(buffer+size, max_size-size,
                                         "qla2x00_get_id_list failed: %d",
                                        rval);
                        goto get_id_failed;
                }
-               
-               size += snprintf(buffer+size, max_size-size, 
+
+               size += snprintf(buffer+size, max_size-size,
                                 "\nGet ID List (0x007C) returned %d entries\n"
                                 "L_ID PortID\n",
                                 entries);
-               
+
                id_iter = (char *)ha->gid_list;
                for (i = 0; (i < entries) && (size < max_size); ++i) {
                        gid = (struct gid_list_info *)id_iter;
@@ -234,7 +234,7 @@ out_free:
                                                 gid->area,
                                                 gid->al_pa,
                                                 gid->loop_id_2100);
-                               
+
                        }
                        id_iter += ha->gid_list_info_size;
                }
@@ -245,8 +245,8 @@ get_id_failed:
                fc_port_t *fcport;
                char * state;
                char port_type[] = "URSBIT";
-               
-               size += snprintf(buffer+size, max_size-size, 
+
+               size += snprintf(buffer+size, max_size-size,
                                 "\nfc_ports database\n");
 
                list_for_each_entry(fcport, &ha->fcports, list) {
@@ -262,8 +262,8 @@ get_id_failed:
                        case FCS_FAILOVER_FAILED : state = "Failover Failed"; break;
                        default: state = "Unknown"; break;
                        }
-                       
-                       size += snprintf(buffer+size, max_size-size, 
+
+                       size += snprintf(buffer+size, max_size-size,
                                         "%04x %02x%02x%02x "
                                         "%02x%02x%02x%02x%02x%02x%02x%02x "
                                         "%c %s\n",
@@ -271,9 +271,9 @@ get_id_failed:
                                         fcport->d_id.b.domain,
                                         fcport->d_id.b.area,
                                         fcport->d_id.b.al_pa,
-                                        fcport->port_name[0], fcport->port_name[1], 
-                                        fcport->port_name[2], fcport->port_name[3], 
-                                        fcport->port_name[4], fcport->port_name[5], 
+                                        fcport->port_name[0], fcport->port_name[1],
+                                        fcport->port_name[2], fcport->port_name[3],
+                                        fcport->port_name[4], fcport->port_name[5],
                                         fcport->port_name[6], fcport->port_name[7],
                                         port_type[fcport->port_type], state);
                }
@@ -291,7 +291,7 @@ qla2x00_update_portdb(struct class_device *cdev, const char *buffer, size_t size
 {
        scsi_qla_host_t *ha = to_qla_host(class_to_shost(cdev));
        unsigned char reading = '0';
-       
+
        switch (reading) {
        case '2':
                qla2x00_configure_loop(ha);
@@ -385,7 +385,7 @@ qla2x00_sysfs_write_fw_dump(struct kobject *kobj, struct bin_attribute *attr,
                break;
        case 1:
                if ((ha->fw_dump == NULL) && (ha->isp_ops.fw_dump != NULL))
-                       ha->isp_ops.fw_dump(ha, 0);     
+                       ha->isp_ops.fw_dump(ha, 0);
 
                if ((ha->fw_dump || ha->fw_dumped) && !ha->fw_dump_reading) {
                        ha->fw_dump_reading = 1;
@@ -1031,7 +1031,7 @@ struct class_device_attribute *qla2x00_host_attrs[] = {
 #if defined(FC_TARGET_SUPPORT)
        &class_device_attr_target_mode_enabled,
        &class_device_attr_resource_counts,
-       &class_device_attr_port_database,       
+       &class_device_attr_port_database,
 #endif
        NULL,
 };
index 413dc85..b48ef70 100644 (file)
@@ -542,7 +542,7 @@ qla2300_ascii_fw_dump(scsi_qla_host_t *ha)
                        qla_uprintf(&uiter, "\t");
                        for (cnt2 = 8; cnt2 > 0 && cnt2 <= 8; --cnt2) {
 #define PRINTC(c) ((c > 0x20 && c < 0x7e) ?c :'.')
-                               qla_uprintf(&uiter, "%c", 
+                               qla_uprintf(&uiter, "%c",
                                            PRINTC(fw->risc_ram[cnt-cnt2]));
 #undef PRINTC
                        }
@@ -948,7 +948,7 @@ qla2100_ascii_fw_dump(scsi_qla_host_t *ha)
                        qla_uprintf(&uiter, "\t");
                        for (cnt2 = 8; cnt2 > 0 && cnt2 <= 8; --cnt2) {
 #define PRINTC(c) ((c > 0x20 && c < 0x7e) ?c :'.')
-                               qla_uprintf(&uiter, "%c", 
+                               qla_uprintf(&uiter, "%c",
                                            PRINTC(fw->risc_ram[cnt-cnt2]));
 #undef PRINTC
                        }
index b5fdbd6..a424c63 100644 (file)
@@ -690,10 +690,10 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
                        data = RD_REG_WORD(&reg->ctrl_status);
                        barrier();
                }
-               
+
                if (!cnt)
                        goto chip_diag_failed;
-               
+
                DEBUG3(printk("scsi(%ld): Reset register cleared by chip reset\n",
                              ha->host_no));
 
@@ -1432,7 +1432,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
            nv->id[2] != 'P' || nv->id[3] != ' ' || nv->nvram_version < 1) {
                /* Reset NVRAM data. */
                qla_printk(KERN_WARNING, ha, "Inconsistent NVRAM detected: "
-                          "checksum=0x%x nv=%p id=%c version=0x%x.\n", chksum, nv, 
+                          "checksum=0x%x nv=%p id=%c version=0x%x.\n", chksum, nv,
                           nv->id[0], nv->nvram_version);
                qla_printk(KERN_WARNING, ha, "Falling back to functioning (yet "
                    "invalid -- WWPN) defaults.\n");
@@ -1510,7 +1510,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
 #ifdef FC_TARGET_SUPPORT
        if (ha->flags.enable_target_mode)
                nv->firmware_options[0] |= BIT_4;
-       else 
+       else
 #endif /* FC_TARGET_SUPPORT */
                nv->firmware_options[0] &= ~BIT_4;
        nv->firmware_options[1] |= (BIT_5 | BIT_0);
@@ -1520,7 +1520,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
                nv->firmware_options[0] |= BIT_2;
                nv->firmware_options[0] &= ~BIT_3;
                nv->add_firmware_options[1] |= BIT_5 | BIT_4;
-               
+
                if (IS_QLA2300(ha)) {
                        if (ha->fb_rev == FPM_2310) {
                                strcpy(ha->model_number, "QLA2310");
@@ -4001,7 +4001,7 @@ __qla2x00_host_reset(scsi_qla_host_t *ha)
 {
        int ret = FAILED;
 
-       qla_printk(KERN_INFO, ha, "scsi(%ld): ADAPTER RESET ISSUED.\n", 
+       qla_printk(KERN_INFO, ha, "scsi(%ld): ADAPTER RESET ISSUED.\n",
                   ha->host_no);
 
        if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS)
@@ -4022,7 +4022,7 @@ __qla2x00_host_reset(scsi_qla_host_t *ha)
        /* Waiting for our command in done_queue to be returned to OS.*/
        if (qla2x00_eh_wait_for_pending_commands(ha))
                ret = SUCCESS;
-       
+
 out:
        qla_printk(KERN_INFO, ha, "%s: reset %s\n", __func__,
            (ret == FAILED) ? "failed" : "succeded");
@@ -4035,7 +4035,7 @@ out:
  * host_reset, bring up w/ Target Mode Enabled
  */
 void
-__qla2x00_enable_lun(scsi_qla_host_t *ha) 
+__qla2x00_enable_lun(scsi_qla_host_t *ha)
 {
        unsigned long flags = 0;
 
@@ -4052,9 +4052,9 @@ __qla2x00_enable_lun(scsi_qla_host_t *ha)
  *
  * Disable Target Mode and reset the adapter
  */
-void 
-__qla2x00_disable_lun(scsi_qla_host_t *ha) 
-{ 
+void
+__qla2x00_disable_lun(scsi_qla_host_t *ha)
+{
        unsigned long flags = 0;
 
        spin_lock_irqsave(&ha->hardware_lock, flags);
@@ -4087,7 +4087,7 @@ __qla2x00_issue_marker(scsi_qla_host_t *ha)
 int
 qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp);
 
-int 
+int
 qla2x00_get_resource_counts(scsi_qla_host_t *ha, uint8_t *cmd, uint8_t *imm)
 {
        mbx_cmd_t mc;
@@ -4099,9 +4099,9 @@ qla2x00_get_resource_counts(scsi_qla_host_t *ha, uint8_t *cmd, uint8_t *imm)
        mc.in_mb = MBX_0|MBX_1|MBX_2;
        mc.tov = 30;
        mc.flags = 0;
-       
+
        rval = qla2x00_mailbox_command(ha, &mc);
-               
+
        *cmd = mc.mb[1];
        *imm = mc.mb[2];
 
@@ -4134,16 +4134,16 @@ int qla2xxx_tgt_register_driver(struct qla2x_tgt_initiator *tgt_data,
        int res = 0;
 
        ENTER(__func__);
-       
+
        if ((tgt_data == NULL) || (tgt_data->magic != QLA2X_TARGET_MAGIC)) {
                printk("***ERROR*** Wrong version of the target driver: %d\n",
                        tgt_data->magic);
                res = -EINVAL;
                goto out;
        }
-       
+
        memcpy(&qla_target, tgt_data, sizeof(qla_target));
-       
+
        init_data->magic = QLA2X_INITIATOR_MAGIC;
        init_data->req_pkt = qla2x00_req_pkt;
        init_data->isp_cmd = qla2x00_isp_cmd;
@@ -4153,7 +4153,7 @@ int qla2xxx_tgt_register_driver(struct qla2x_tgt_initiator *tgt_data,
        init_data->req_cont_pkt = qla2x00_req_cont_pkt;
        init_data->get_counts = qla2x00_get_resource_counts;
        /* ... */
-       
+
 out:
        LEAVE(__func__);
        return res;
index 0b20724..f5f0295 100644 (file)
@@ -601,8 +601,8 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
                    ha->flags.init_done && mb[1] != 0xffff &&
 #ifndef FC_TARGET_SUPPORT
                    ((ha->operating_mode == P2P && mb[1] != 0) ||
-                    (ha->operating_mode != P2P && 
-                     mb[1] != SNS_FIRST_LOOP_ID)) && 
+                    (ha->operating_mode != P2P &&
+                     mb[1] != SNS_FIRST_LOOP_ID)) &&
 #endif
                    (mb[2] == 6 || mb[2] == 7)) {
                        int rval;
@@ -651,8 +651,8 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
                            mb[2], mb[3]));
 #ifdef FC_TARGET_SUPPORT
                        DEBUG2(printk("scsi(%ld): ha state %d init_done %d "
-                                     "oper_mode %d topo %d\n", 
-                                     ha->host_no, 
+                                     "oper_mode %d topo %d\n",
+                                     ha->host_no,
                                      atomic_read(&ha->loop_state),
                                      ha->flags.init_done,
                                      ha->operating_mode,
@@ -845,14 +845,14 @@ qla2x00_process_response_queue(struct scsi_qla_host *ha)
                case STATUS_TYPE_21:
                        handle_cnt = ((sts21_entry_t *)pkt)->handle_count;
                        for (cnt = 0; cnt < handle_cnt; cnt++) {
-                               qla2x00_process_completed_request(ha, 
+                               qla2x00_process_completed_request(ha,
                                        ((sts21_entry_t *)pkt)->handle[cnt]);
                        }
                        break;
                case STATUS_TYPE_22:
                        handle_cnt = ((sts22_entry_t *)pkt)->handle_count;
                        for (cnt = 0; cnt < handle_cnt; cnt++) {
-                               qla2x00_process_completed_request(ha, 
+                               qla2x00_process_completed_request(ha,
                                        ((sts22_entry_t *)pkt)->handle[cnt]);
                        }
                        break;
@@ -866,10 +866,10 @@ qla2x00_process_response_queue(struct scsi_qla_host *ha)
                 case ACCEPT_TGT_IO_TYPE:
                 case CONTINUE_TGT_IO_TYPE:
                 case CTIO_A64_TYPE:
-                case IMMED_NOTIFY_TYPE: 
+                case IMMED_NOTIFY_TYPE:
                 case NOTIFY_ACK_TYPE:
                 case ENABLE_LUN_TYPE:
-                case MODIFY_LUN_TYPE: 
+                case MODIFY_LUN_TYPE:
                        DEBUG4(printk(KERN_WARNING
                                      "qla2x00_response_pkt: "
                                      "calling tgt_response_pkt %p "
@@ -880,7 +880,7 @@ qla2x00_process_response_queue(struct scsi_qla_host *ha)
                        {
                                qla_target.tgt_response_pkt(ha, pkt);
                        }
-                       break;              
+                       break;
 #endif /* FC_TARGET_SUPPORT */
                case MBX_IOCB_TYPE:
                        if (!IS_QLA2100(ha) && !IS_QLA2200(ha) &&
@@ -1541,7 +1541,7 @@ qla24xx_process_response_queue(struct scsi_qla_host *ha)
                 case IMMED_NOTIFY_TYPE: /* always send these responses if we can */
                 case NOTIFY_ACK_TYPE:
                 case ENABLE_LUN_TYPE:
-                case MODIFY_LUN_TYPE: 
+                case MODIFY_LUN_TYPE:
                        DEBUG4(printk(KERN_WARNING
                                      "qla2x00_response_pkt: "
                                      "calling tgt_response_pkt %p "
@@ -1550,10 +1550,10 @@ qla24xx_process_response_queue(struct scsi_qla_host *ha)
                                      pkt->entry_type););
                        if (qla_target.tgt_response_pkt)
                        {
-                               qla_target.tgt_response_pkt(ha, 
+                               qla_target.tgt_response_pkt(ha,
                                        (sts_entry_t *)pkt);
                        }
-                       break;              
+                       break;
 #endif /* FC_TARGET_SUPPORT */
                default:
                        /* Type Not Supported. */
index 5877ca0..149fcda 100644 (file)
@@ -804,7 +804,7 @@ qla2xxx_eh_device_reset(struct scsi_cmnd *cmd)
                           "%s: failed while waiting for commands\n", __func__);
        } else {
                qla_printk(KERN_INFO, ha,
-                          "scsi(%ld:%d:%d): DEVICE RESET SUCCEEDED.\n", 
+                          "scsi(%ld:%d:%d): DEVICE RESET SUCCEEDED.\n",
                           ha->host_no, id, lun);
        }
 
@@ -1680,7 +1680,7 @@ void qla2x00_remove_one(struct pci_dev *pdev)
 
 #if defined(FC_TARGET_SUPPORT)
        ha->flags.host_shutting_down = 1;
-       if (qla_target.tgt_host_action != NULL) 
+       if (qla_target.tgt_host_action != NULL)
                qla_target.tgt_host_action(ha, DISABLE_TARGET_MODE);
 #endif
 
index 6caa330..4ade866 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 
@@ -530,7 +530,7 @@ isp_reset(ispsoftc_t *isp)
                        if ((val & BIU2400_DMA_ACTIVE) == 0) {
                                break;
                        }
-               } 
+               }
                if (val & BIU2400_DMA_ACTIVE) {
                        ISP_RESET0(isp);
                        isp_prt(isp, ISP_LOGERR, "DMA Failed to Stop on Reset");
@@ -624,7 +624,7 @@ isp_reset(ispsoftc_t *isp)
                ISP_WRITE(isp, BIU_SEMA, 0);
        }
 
-       
+
        /*
         * Post-RISC Reset stuff.
         */
@@ -851,7 +851,7 @@ isp_reset(ispsoftc_t *isp)
                                break;
                        }
                        ptr += ptr[3];
-               } 
+               }
                isp->isp_loaded_fw = 1;
        } else if (dodnld && IS_23XX(isp)) {
                const uint16_t *ptr = isp->isp_mdvec->dv_ispfw;
@@ -874,7 +874,7 @@ isp_reset(ispsoftc_t *isp)
                        while (wi < ptr[3]) {
                                uint16_t *cp;
                                uint32_t nw;
-                               
+
                                nw = ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)) >> 1;
                                if (nw > wl) {
                                        nw = wl;
@@ -1071,7 +1071,7 @@ isp_reset(ispsoftc_t *isp)
                        isp->isp_fwrev[1] = 37;
 #endif
                        isp->isp_fwrev[2] = 0;
-               } 
+               }
        } else {
                isp->isp_fwrev[0] = mbs.param[1];
                isp->isp_fwrev[1] = mbs.param[2];
@@ -1640,7 +1640,7 @@ isp_fibre_init(ispsoftc_t *isp)
        /*
         * Right now we just set extended options to prefer point-to-point
         * over loop based upon some soft config options.
-        * 
+        *
         * NB: for the 2300, ICBOPT_EXTENDED is required.
         */
        if (IS_2200(isp) || IS_23XX(isp)) {
@@ -2331,7 +2331,7 @@ isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid,
                msg = buf;
                break;
        case PLOGX_IOCBERR_PORTUSED:
-               lev = ISP_LOGSANCFG|ISP_LOGDEBUG0;      
+               lev = ISP_LOGSANCFG|ISP_LOGDEBUG0;
                SNPRINTF(buf, sizeof (buf),
                    "already logged in with N-Port handle 0x%x", parm1);
                msg = buf;
@@ -3306,7 +3306,7 @@ isp_scan_loop(ispsoftc_t *isp, int chan)
                                    "Valid", chan, tmp.portid, tmp.handle);
                                break;
                        }
-               
+
                        /*
                         * We can wipe out the old handle value
                         * here because it's no longer valid.
@@ -3387,7 +3387,7 @@ isp_scan_loop(ispsoftc_t *isp, int chan)
  */
 
 /*
- * Take less than half of our scratch area to store Port IDs 
+ * Take less than half of our scratch area to store Port IDs
  */
 #define        GIDLEN  ((ISP_FC_SCRLEN >> 1) - 16 - SNS_GID_FT_REQ_SIZE)
 #define        NGENT   ((GIDLEN - 16) >> 2)
@@ -3856,10 +3856,10 @@ isp_scan_fabric(ispsoftc_t *isp, int chan)
                                /*
                                 * Try to re-login to this device using a
                                 * new handle. If that fails, mark it dead.
-                                * 
+                                *
                                 * isp_login_device will check for handle and
                                 * portid consistency after re-login.
-                                * 
+                                *
                                 */
                                if (isp_login_device(isp, chan, portid, &pdb,
                                    &oldhandle)) {
@@ -3932,7 +3932,7 @@ isp_scan_fabric(ispsoftc_t *isp, int chan)
                 * with the same port id. While we're at it, mark where the
                 * last free entry was.
                 */
-       
+
                dbidx = MAX_FC_TARG;
                for (lp = fcp->portdb; lp < &fcp->portdb[MAX_FC_TARG]; lp++) {
                        if (lp >= &fcp->portdb[FL_ID] &&
@@ -5865,7 +5865,7 @@ isp_parse_async(ispsoftc_t *isp, uint16_t mbox)
                        break;
                }
                handle =
-                   (ISP_READ(isp, OUTMAILBOX2) << 16) | 
+                   (ISP_READ(isp, OUTMAILBOX2) << 16) |
                    (ISP_READ(isp, OUTMAILBOX1));
                if (isp_target_async(isp, handle, mbox)) {
                        rval = -1;
@@ -6736,7 +6736,7 @@ isp_parse_status_24xx(ispsoftc_t *isp, isp24xx_statusreq_t *sp,
        case RQCS_DATA_UNDERRUN:
                ru_marked = (sp->req_scsi_status & RQCS_RU) != 0;
                /*
-                * We can get an underrun w/o things being marked 
+                * We can get an underrun w/o things being marked
                 * if we got a non-zero status.
                 */
                sv_marked = (sp->req_scsi_status & (RQCS_SV|RQCS_RV)) != 0;
@@ -7265,7 +7265,7 @@ static const uint32_t mbpfc[] = {
 /*
  * Footnotes
  *
- * (1): this sets bits 21..16 in mailbox register #8, which we nominally 
+ * (1): this sets bits 21..16 in mailbox register #8, which we nominally
  *     do not access at this time in the core driver. The caller is
  *     responsible for setting this register first (Gross!). The assumption
  *     is that we won't overflow.
@@ -7866,7 +7866,7 @@ isp_setdfltsdparm(ispsoftc_t *isp)
                                        return;
                                }
                        }
-                       
+
                }
                MEMZERO(&mbs, sizeof (mbs));
                mbs.param[0] = MBOX_GET_ACT_NEG_STATE;
@@ -8127,13 +8127,13 @@ isp_read_nvram_2400(ispsoftc_t *isp, uint8_t *nvram_data)
 {
        int retval = 0;
        uint32_t addr, csum, lwrds, *dptr;
-       
+
        if (isp->isp_port) {
                addr = ISP2400_NVRAM_PORT1_ADDR;
        } else {
                addr = ISP2400_NVRAM_PORT0_ADDR;
        }
-       
+
        dptr = (uint32_t *) nvram_data;
        for (lwrds = 0; lwrds < ISP2400_NVRAM_SIZE >> 2; lwrds++) {
                isp_rd_2400_nvram(isp, addr++, dptr++);
@@ -8173,7 +8173,7 @@ isp_rdnvram_word(ispsoftc_t *isp, int wo, uint16_t *rp)
        USEC_DELAY(10);
 
        if (IS_FC(isp)) {
-               wo &= ((ISP2100_NVRAM_SIZE >> 1) - 1); 
+               wo &= ((ISP2100_NVRAM_SIZE >> 1) - 1);
                if (IS_2312(isp) && isp->isp_port) {
                        wo += 128;
                }
@@ -8582,7 +8582,7 @@ isp_parse_nvram_2100(ispsoftc_t *isp, uint8_t *nvram_data)
                fcp->isp_loopid = ISP2100_NVRAM_HARDLOOPID(nvram_data);
        }
        if ((isp->isp_confopts & ISP_CFG_OWNEXCTHROTTLE) == 0) {
-               DEFAULT_EXEC_THROTTLE(isp) = 
+               DEFAULT_EXEC_THROTTLE(isp) =
                        ISP2100_NVRAM_EXECUTION_THROTTLE(nvram_data);
        }
        fcp->isp_fwoptions = ISP2100_NVRAM_OPTIONS(nvram_data);
@@ -8667,7 +8667,7 @@ isp_parse_nvram_2400(ispsoftc_t *isp, uint8_t *nvram_data)
                fcp->isp_loopid = ISP2400_NVRAM_HARDLOOPID(nvram_data);
        }
        if ((isp->isp_confopts & ISP_CFG_OWNEXCTHROTTLE) == 0) {
-               DEFAULT_EXEC_THROTTLE(isp) = 
+               DEFAULT_EXEC_THROTTLE(isp) =
                        ISP2400_NVRAM_EXECUTION_THROTTLE(nvram_data);
        }
        fcp->isp_fwoptions = ISP2400_NVRAM_FIRMWARE_OPTIONS1(nvram_data);
index bc0c043..bca43bf 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -1392,7 +1392,7 @@ isp_put_sns_request(ispsoftc_t *isp, sns_screq_t *src, sns_screq_t *dst)
        for (i = 0; i < nw; i++) {
                ISP_IOXPUT_16(isp, src->snscb_data[i], &dst->snscb_data[i]);
        }
-       
+
 }
 
 void
index 06b4db0..2bda0a1 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 #ifndef _ISP_LIBRARY_H
index 211cc3a..94b6a6c 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
index ed2afcc..1821ffe 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -459,7 +459,7 @@ isp_target_notify(ispsoftc_t *isp, void *vptr, uint32_t *optrp)
        return (rval);
 }
 
+
 /*
  * Toggle (on/off) target mode for bus/target/lun.
  *
@@ -978,7 +978,7 @@ isp_got_tmf_24xx(ispsoftc_t *isp, at7_entry_t *aep)
        tmd_notify_t nt;
        static const char f1[] =
            "%s from PortID 0x%06x lun %d seq 0x%08x%08x";
-       static const char f2[] = 
+       static const char f2[] =
            "unknown Task Flag 0x%x lun %d PortID 0x%x tag 0x%08x%08x";
        uint16_t chan;
        uint32_t sid, did;
index 4018b9d..6722512 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
index fd3c2c9..d5f713b 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as
  *   published by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -349,7 +349,7 @@ typedef struct tmd_xact {
  * The cd_xact tag is the first or only transaction structure related to this command.
  *
  * The tag cd_lreserved, cd_hreserved are scratch areas for use for the outer and inner layers respectively.
- * 
+ *
  */
 
 #ifndef TMD_CDBLEN
index 9f3cc9f..39acdd3 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -399,7 +399,7 @@ typedef struct {
        uint16_t        mrk_lun;
        uint8_t         mrk_reserved1[48];
 } isp_marker_t;
-       
+
 typedef struct {
        isphdr_t        mrk_header;
        uint32_t        mrk_handle;
@@ -412,7 +412,7 @@ typedef struct {
        uint8_t         mrk_lun[8];
        uint8_t         mrk_reserved3[40];
 } isp_marker_24xx_t;
-       
+
 
 #define SYNC_DEVICE    0
 #define SYNC_TARGET    1
@@ -666,7 +666,7 @@ typedef struct {
        uint8_t         req_rsp_sense[28];
 } isp24xx_statusreq_t;
 
-/* 
+/*
  * For Qlogic 2X00, the high order byte of SCSI status has
  * additional meaning.
  */
@@ -719,7 +719,7 @@ typedef struct {
        ispds64_t       ms_dataseg[2];
 } isp_ms_t;
 
-/* 
+/*
  * Completion Status Codes.
  */
 #define RQCS_COMPLETE                  0x0000
@@ -771,7 +771,7 @@ typedef struct {
 
 
 /*
- * 1X00 specific State Flags 
+ * 1X00 specific State Flags
  */
 #define RQSF_GOT_BUS                   0x0100
 #define RQSF_GOT_TARGET                        0x0200
@@ -952,7 +952,7 @@ typedef struct {
 #define        ICBXOPT_RIO_32BIT       2
 #define        ICBXOPT_RIO_16BIT_IOCB  3
 #define        ICBXOPT_RIO_32BIT_IOCB  4
-#define        ICBXOPT_ZIO             5       
+#define        ICBXOPT_ZIO             5
 #define        ICBXOPT_TIMER_MASK      0x7
 
 #define        ICBZOPT_RATE_MASK       0xC000
@@ -1045,7 +1045,7 @@ typedef struct {
        uint16_t        icb_prqstqlen;
        uint16_t        icb_rqstaddr[4];
        uint16_t        icb_respaddr[4];
-       uint16_t        icb_priaddr[4]; 
+       uint16_t        icb_priaddr[4];
        uint16_t        icb_reserved1[4];
        uint16_t        icb_atio_in;
        uint16_t        icb_atioqlen;
@@ -1619,14 +1619,14 @@ typedef struct {
 typedef struct {
        uint16_t        handle;
        uint16_t        lun;
-       uint32_t        
+       uint32_t
                channel : 8,
                portid  : 24;
        uint32_t        timeout;
        union {
                struct {
                        uint32_t data_length;
-                       uint32_t 
+                       uint32_t
                                no_wait : 1,
                                do_read : 1;
                        uint8_t cdb[16];
index f35b767..da2b0ae 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
 
 /*
  * 2400 Interface Offsets and Register Definitions
- * 
+ *
  * The 2400 looks quite different in terms of registers from other QLogic cards.
  * It is getting to be a genuine pain and challenge to keep the same model
  * for all.
 #define        OUTMAILBOX7     (MBOX_BLOCK+0xE)
 
 /*
- * Strictly speaking, it's 
+ * Strictly speaking, it's
  *  SCSI && 2100 : 8 MBOX registers
  *  2200: 24 MBOX registers
  *  2300/2400: 32 MBOX registers
index cdd3c28..514f862 100644 (file)
@@ -2,17 +2,17 @@
 /*-
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -212,7 +212,7 @@ typedef struct {
        uint8_t         isp_retry_count;
        uint8_t         isp_retry_delay;
        struct {
-               uint32_t        
+               uint32_t
                        exc_throttle    :       8,
                                        :       1,
                        dev_enable      :       1,      /* ignored */
@@ -318,7 +318,7 @@ typedef struct {
  * from 0..MAX_FC_TARG that is used to index into the isp_ini_map array. If
  * the value therein is non-zero, then that value minus one is used to index
  * into the Port Database to find the handle for forming commands. There is
- * back-index minus one value within to Port Database entry that tells us 
+ * back-index minus one value within to Port Database entry that tells us
  * which entry in isp_ini_map points to us (to avoid searching).
  *
  * Local loop devices the firmware automatically performs PLOGI on for us
@@ -1013,7 +1013,7 @@ void isp_async(ispsoftc_t *, ispasync_t, ...);
  *
  *     GET_DEFAULT_ROLE(ispsoftc_t *, int)     Get Default Role for a channel
  *     SET_DEFAULT_ROLE(ispsoftc_t *, int, int) Set Default Role for a channel
- *     DEFAULT_IID(ispsoftc_t *, int)          Default SCSI initiator ID 
+ *     DEFAULT_IID(ispsoftc_t *, int)          Default SCSI initiator ID
  *     DEFAULT_LOOPID(ispsoftc_t *, int)       Default FC Loop ID
  *
  *             These establish reasonable defaults for each platform.
index 24765ad..7c049d1 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 #ifndef        ISP_TARGET_MODE
 /*
index 4ecc82e..2c0b575 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /************************************************************************
  *                                                                     *
index 1e70424..fc12560 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 #ifndef        ISP_TARGET_MODE
 /************************************************************************
index 0d02df9..7be429f 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /************************************************************************
  *                                                                     *
index bf45fb0..6387149 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /*
  * Some very early boards have problems loading firmware that is larger than
index fec0bcd..cd9a77a 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /************************************************************************
  *                                                                     *
index 26ba1d2..a8e991e 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /************************************************************************
  *                                                                     *
index a152873..bc5a7d2 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /************************************************************************
  *                                                                     *
index d2d7843..68782a5 100644 (file)
@@ -23,7 +23,7 @@
  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */ 
+ */
 
 /************************************************************************
  *                                                                     *
index c4bd9a2..44c4948 100644 (file)
  * Rev. 1      March 2, 2000
  * RLU - Updated with latest definitions.  Added more comments.
  *
- * Rev. 2      May 16, 2000                
+ * Rev. 2      May 16, 2000
  * SP  - Updated definitions and changed structures (March 27, 2000)
- * SP   - Addded structures 
+ * SP   - Addded structures
  *
- * Rev. 3      June 1, 2000                 
+ * Rev. 3      June 1, 2000
  * THL - Made major changes to include all changes talked in our meeting.
  *
  * Rev. 4      June 5, 2000
- * RLU - Added new definitions/structures for SDM_GET_AEN and SDM_REG_AEN 
+ * RLU - Added new definitions/structures for SDM_GET_AEN and SDM_REG_AEN
  *       functions.
  *     - Major definition/structure name changes as discussed in meetings.
  *     - Deleted duplicated command code and structure definitions.
@@ -68,7 +68,7 @@
  * Rev. 4.5     August 15, 2000
  * SP   - Rolled back some changes made by Todd R.
  *       Kept new status code SDM_STATUS_NO_MEMORY
- *       Port types fabric and tape device 
+ *       Port types fabric and tape device
  *
  * Rev. 4.7     Sep 6, 2000
  * YPL  - Replace SDM_ with EXT_, _ISP with _CHIP.
@@ -89,7 +89,7 @@
  *
  * Rev. 5.3     Sep 29, 2000
  * THL  - Add access mode for NVRAM.
- * 
+ *
  * Rev. 5.4     Oct 03, 2000
  * THL  - Add EXT_SC_GET_FC_STATISTICS.
  *
  *
  * Rev. 5.8 Oct 25, 2000
  * BN   - Added EXT_CC_DRIVER_PROP define
- * 
+ *
  * Rev. 5.9 Oct 26, 2000
  * BN   - Sync with UnixApi project
- * 
+ *
  * Rev. 5.10 Oct 30, 2000
  * BN   - Remove not needed #define for EXT_CC_DRIVER_PROP
  *     - Add EXT_ to IS_LUN_BIT_SET, SET_LUN_BIT, CLR_LUN_BIT
- * 
+ *
  * Rev. 5.11 Nov 1, 2000
  * BN   - Increased [1] of EXT_DEVICEDATA to [EXT_MAX_TARGET]
  * TLE  - Decreased [EXT_MAX_TARGET] of EXT_DEVICEDATA to [1]
- * 
+ *
  * Rev. 5.12   Nov 7, 2000
  * RLU - Deleted EXT_DEF_MAX_LUNS define and changed all references
  *       to it to use EXT_MAX_LUN.
  *     - Changed the revision numbers for the last 2 revisions down
  *       to use 5.x.
- * 
+ *
  * Rev. 5.13   Nov 14, 2000
  * WTR - Fixed pointer referencing problem in the LUN_BIT_MASK macros.
  *       Updated comment at bit mask definition.
  *
  * Rev. 5.14   Dec 6, 2000
  * THL - Added Local and LoopID to discovered port/target property.
- * 
+ *
  * Rev. 5.15   Dec 24, 2000
  * YPL - Enhance port connection modes and driver attrib
- * 
+ *
  * Rev. 5.16   Dec 27, 2000
  * TLE  - Add BufferHandle member to _EXT_ASYNC_EVENT data structure for
  *       SCTP support
- * 
+ *
  * Rev. 5.17   Jan 10, 2001
  * YPL  - Add edtov, ratov & fabric name in port property
- * 
+ *
  * Rev. 5.18   Feb 28, 2001
  * YPL  - Remove SCTP fields and add fabric parameter flags in port property
- * 
+ *
  * Rev. 5.19   Mar 08, 2001
  * YPL  - Remove SCTP fields from hba port prop
- * 
+ *
  * Rev. 5.20   June 11, 2001
  * YPL  - Change to reserved fields and add fabric name field in port property
- * 
+ *
  * Rev. 5.21   June 29, 2001
  * YPL  - Merge in changes decided long time ago (use _DEF_ for defines) &
  *       reserved some EXT_CC for legacy ioctls, plus add RNID dataformat
  *       values definition
- * 
+ *
  * Rev. 5.21    Sep 18, 2001
  * SP   - Added New return status codes
  *
@@ -412,14 +412,14 @@ typedef struct {
 
 
 /* Reserved command codes. */
-#define        EXT_CC_RESERVED0A               EXT_CC_RESERVED0A_OS    
-#define        EXT_CC_RESERVED0B               EXT_CC_RESERVED0B_OS    
-#define        EXT_CC_RESERVED0C               EXT_CC_RESERVED0C_OS    
-#define        EXT_CC_RESERVED0D               EXT_CC_RESERVED0D_OS    
-#define        EXT_CC_RESERVED0E               EXT_CC_RESERVED0E_OS    
-#define        EXT_CC_RESERVED0F               EXT_CC_RESERVED0F_OS    
-#define        EXT_CC_RESERVED0G               EXT_CC_RESERVED0G_OS    
-#define        EXT_CC_RESERVED0H               EXT_CC_RESERVED0H_OS    
+#define        EXT_CC_RESERVED0A               EXT_CC_RESERVED0A_OS
+#define        EXT_CC_RESERVED0B               EXT_CC_RESERVED0B_OS
+#define        EXT_CC_RESERVED0C               EXT_CC_RESERVED0C_OS
+#define        EXT_CC_RESERVED0D               EXT_CC_RESERVED0D_OS
+#define        EXT_CC_RESERVED0E               EXT_CC_RESERVED0E_OS
+#define        EXT_CC_RESERVED0F               EXT_CC_RESERVED0F_OS
+#define        EXT_CC_RESERVED0G               EXT_CC_RESERVED0G_OS
+#define        EXT_CC_RESERVED0H               EXT_CC_RESERVED0H_OS
 #define        EXT_CC_RESERVED0I               EXT_CC_RESERVED0I_OS
 #define        EXT_CC_RESERVED0J               EXT_CC_RESERVED0J_OS
 #define        EXT_CC_RESERVED0Z               EXT_CC_RESERVED0Z_OS
@@ -474,8 +474,8 @@ typedef struct {
 #define        EXT_SC_GET_DR_DUMP_BUF          5       /* Currently Not Supported */
 #define        EXT_SC_GET_RISC_CODE            6       /* Currently Not Supported */
 #define        EXT_SC_GET_FLASH_RAM            7       /* for backward compatible */
-#define        EXT_SC_GET_BEACON_STATE         8       
-#define        EXT_SC_GET_FC4_STATISTICS       9       
+#define        EXT_SC_GET_BEACON_STATE         8
+#define        EXT_SC_GET_FC4_STATISTICS       9
 #define EXT_SC_GET_LUN_BY_Q            10
 
 /* 100 - 199 FC_INTF_TYPE */
@@ -487,7 +487,7 @@ typedef struct {
 #define        EXT_SC_GET_PORT_SUMMARY         106
 #define        EXT_SC_GET_POSITION_MAP         107
 #define        EXT_SC_GET_RETRY_CNT            108     /* Currently Not Supported */
-#define        EXT_SC_GET_RNID                 109     
+#define        EXT_SC_GET_RNID                 109
 #define        EXT_SC_GET_RTIN                 110     /* Currently Not Supported */
 #define        EXT_SC_GET_FC_LUN_BITMASK       111
 #define        EXT_SC_GET_FC_STATISTICS        112     /* for backward compatible */
@@ -496,7 +496,7 @@ typedef struct {
 #define        EXT_SC_GET_SEL_TIMEOUT          201     /* Currently Not Supported */
 
 
-/* 
+/*
  * Sub codes for Set Data.
  * Use in combination with EXT_SET_DATA as the ioctl code
  */
@@ -507,7 +507,7 @@ typedef struct {
 
 /* 100 - 199 FC_INTF_TYPE */
 #define        EXT_SC_SET_LUN_BITMASK          103
-#define        EXT_SC_SET_RNID                 109     
+#define        EXT_SC_SET_RNID                 109
 #define        EXT_SC_SET_FC_LUN_BITMASK       111
 #define        EXT_SC_RESERVED_BC112   112
 #define        EXT_SC_RESERVED_BC113   113
@@ -638,9 +638,9 @@ typedef struct _EXT_DISC_PORT {
        UINT16    TargetId;                     /* 2 */
        UINT8     Local;                        /* 1; Local or Remote */
        UINT8     ReservedByte[1];              /* 1 */
-       
+
        UINT16    LoopID;                       /* 2; Loop ID */
-       
+
        UINT32    Reserved[7];                  /* 28 */
 } EXT_DISC_PORT, *PEXT_DISC_PORT;              /* 60 */
 
@@ -662,9 +662,9 @@ typedef struct _EXT_DISC_TARGET {
 
        UINT8     Local;                        /* 1; Local or Remote */
        UINT8     ReservedByte[1];              /* 1 */
-       
+
        UINT16    LoopID;                       /* 2; Loop ID */
-       
+
        UINT16    Reserved[13];                 /* 26 */
 } EXT_DISC_TARGET, *PEXT_DISC_TARGET;          /* 60 */
 
@@ -945,7 +945,7 @@ typedef struct _EXT_DEVICEDATAENTRY
        EXT_SCSI_ADDR   TargetAddress;  /* scsi address */
        UINT32          DeviceFlags;    /* Flags for device */
        UINT16          LoopID;         /* Loop ID */
-       UINT16          BaseLunNumber;  
+       UINT16          BaseLunNumber;
        UINT32          Reserved[32];
 } EXT_DEVICEDATAENTRY, *PEXT_DEVICEDATAENTRY;
 
@@ -1068,7 +1068,7 @@ typedef struct _EXT_ELS_PT_REQ {
 
 typedef struct _EXT_BEACON_CONTROL {
        UINT32  State;                          /* 4  */
-       UINT32  Reserved[3];                    /* 12 */        
+       UINT32  Reserved[3];                    /* 12 */
 } EXT_BEACON_CONTROL , *PEXT_BEACON_CONTROL ;  /* 16 */
 
 #ifndef EXTERNAL_LUN_COUNT
index 2ab01ec..f0b3dc3 100644 (file)
    Rev 12    January 20, 2003  RL
              - Added EXT_DEF_USE_HBASELECT definition for use by
                the SETINSTANCE command.
+
    Rev 11    December 10, 2002 RL
              - Added EXT_CC_SEND_ELS_PASSTHRU_OS definition.
+
    Rev 10    October 26, 2001  RL
              - Corrected MAX_HBA, MAX_TARGET and MAX_LUN values to 255.
+
    Rev 9     July 26, 2001     RL
              - Added definition of signed types.
+
    Rev 8     July 05, 2001     RL
              - Redefined ioctl command values.
+
    Rev 7     Nov 06, 2000   BN
              - Added EXT_DEF_MAX_AEN_QUEUE_OS define
              - Added define for handle_hba_t
+
    Rev 6     Oct 25, 2000   BN
              - Added EXT_CC_DRIVER_PROP_OS define
+
    Rev 5     Oct 25, 2000   BN
              - Redo the copyright header and add AEN details
+
    Rev 4     Oct 23, 2000   BN
              - Added definition for BOOLEAN
+
    Rev 3     Oct 23, 2000   BN
              - Added definitions for EXT_ADDR_MODE_OS
                and also include of <linux/ioctl.h>
+
    Rev 2     Oct 18, 2000   BN
              - Enable API Exention support
+
    Rev 1     Original version Sep 7, 2000   BN
+
 */
 
 
 /***************************************************************
  * These are regular/external command codes, starting from 0.
  * The regular command code end index must be updated whenever
- * adding new commands. 
+ * adding new commands.
  ***************************************************************/
 #define EXT_DEF_LN_REG_CC_START_IDX    0x00    /* reg cmd start index */
 
index b97ad45..bb1b801 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -64,7 +64,7 @@
 #ifdef  CONFIG_PROC_FS
 
 /*
- * 'safe' proc pretty print code 
+ * 'safe' proc pretty print code
  */
 struct info_str {
     char *buffer;
@@ -215,7 +215,7 @@ isplinux_proc_info(struct Scsi_Host *shp, char *buf, char **st, off_t off, int l
     info.length = len;
     info.offset = off;
     info.pos    = 0;
-    
+
     copy_info(&info, (char *)isplinux_info(isp->isp_host));
 #ifdef  HBA_VERSION
     copy_info(&info, "\n HBA Version %s, built %s, %s", HBA_VERSION, __DATE__, __TIME__);
@@ -903,7 +903,7 @@ isp_exti_setinstance(EXT_IOCTL *ext)
     api_channel = 0;    /* XXXXXXXXXXXXXXXXXXXXXXX */
     return (0);
 }
-    
+
 static int
 isp_exti_query(EXT_IOCTL *pext)
 {
@@ -1975,7 +1975,7 @@ isp_perf_test(ispsoftc_t *isp, isp_perftst_t *tt)
             ISP_LOCKU_SOFTC(isp);
             ISP_DMAFREE(isp, Cmnd, handle);
             isp_destroy_handle(isp, handle);
-        } 
+        }
         ISP_UNLKU_SOFTC(isp);
     }
 out:
index 78a1f3b..0ea6377 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
index 369bf63..fa55139 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -341,7 +341,7 @@ static inline void
 isplinux_flushwaitq(ispsoftc_t *isp)
 {
     Scsi_Cmnd *Cmnd, *Ncmnd;
-   
+
     if ((Cmnd = isp->isp_osinfo.wqnext) == NULL) {
         return;
     }
@@ -2136,7 +2136,7 @@ isp_handle_platform_atio7(ispsoftc_t *isp, at7_entry_t *aep)
     fcportdb_t *lp;
     fcparam *fcp;
     tmd_cmd_t *tmd;
-    
+
     isp->isp_osinfo.cmds_started++;
     tattr = aep->at_ta_len >> 12;
     iulen = aep->at_ta_len & 0xffffff;
@@ -3851,7 +3851,7 @@ isplinux_default_wwn(ispsoftc_t *isp, int chan, int isactive, int iswwnn)
          * The type 2 NAA fields for QLogic cards appear be laid out thusly:
          *
          * bits 63..60  NAA == 2
-         * bits 59..57  unused/zero  
+         * bits 59..57  unused/zero
          * bit  56      port (1) or node (0) WWN distinguishor
          * bit  48      physical port on dual-port chips (23XX/24XX)
          *
@@ -4034,7 +4034,7 @@ isp_parse_rolearg(ispsoftc_t *isp, int chan, char *roles)
     while (role && *role) {
         unsigned int id;
         char *eqtok, *commatok, *p, *q;
-    
+
         eqtok = role;
         eqtok = strchr(role, '=');
         if (eqtok == NULL) {
@@ -4109,7 +4109,7 @@ isp_parse_wwnarg(ispsoftc_t *isp, int chan, char *wwns)
         unsigned int id;
         int thischan;
         char *eqtok, *commatok, *colontok, *wwnstart, *p, *q;
-    
+
         eqtok = wwnt;
         eqtok = strchr(wwnt, '=');
         if (eqtok == NULL) {
@@ -4210,7 +4210,7 @@ isplinux_common_init(ispsoftc_t *isp)
         if (isp_fcduplex & (1 << isp->isp_unit)) {
             isp->isp_confopts |= ISP_CFG_FULL_DUPLEX;
         }
-        isp->isp_osinfo.host->max_id = MAX_FC_TARG; 
+        isp->isp_osinfo.host->max_id = MAX_FC_TARG;
         isp->isp_osinfo.host->max_cmd_len = 16;
 
         for (chan = 0; chan < isp->isp_nchan; chan++) {
@@ -4326,13 +4326,13 @@ isplinux_reinit(ispsoftc_t *isp)
     if (isp->isp_state != ISP_RESETSTATE) {
         isp_prt(isp, ISP_LOGERR, "failed to enter RESET state");
         return (-1);
-    } 
+    }
 
     /*
      * Until the midlayer starts using REPORT LUNS to dertermine how many
      * luns there are for SCSI-3 devices and sets a reasonable limit for
      * SCSI-2 devices, we'll follow this ruleset:
-     * 
+     *
      *     If our isp_maxluns parameter is unchanged from its default, we
      *     limit ourselves to 8 luns for parallel SCSI, 256 for FC-SCSI.
      *
index eb949d2..2029a1c 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -61,7 +61,7 @@
 
 //#define DISABLE_FW_LOADER 1
 //#define ISP_DISABLE_1080_SUPPORT 1
-//#define ISP_DISABLE_12160_SUPPORT 1 
+//#define ISP_DISABLE_12160_SUPPORT 1
 //#define ISP_DISABLE_2100_SUPPORT 1
 //#define ISP_DISABLE_2200_SUPPORT 1
 //#define ISP_DISABLE_2300_SUPPORT 1
@@ -653,7 +653,7 @@ static inline void mbox_wait_complete(ispsoftc_t *, mbreg_t *);
 int isplinux_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int);
 const char *isplinux_info(struct Scsi_Host *);
 int isplinux_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
-int isplinux_biosparam(struct scsi_device *, struct block_device *, sector_t, int[]); 
+int isplinux_biosparam(struct scsi_device *, struct block_device *, sector_t, int[]);
 int isplinux_get_default_id(ispsoftc_t *, int);
 int isplinux_get_default_role(ispsoftc_t *, int);
 void isplinux_set_default_role(ispsoftc_t *, int, int);
@@ -868,7 +868,7 @@ static inline int
 fc_scratch_acquire(ispsoftc_t *isp, int chan)
 {
     if (ISP_DATA(isp, chan)->scratch_busy) {
-        return (-1);    
+        return (-1);
     }
     ISP_DATA(isp, chan)->scratch_busy = 1;
     return (0);
index f92e89c..9b289ba 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -402,7 +402,7 @@ void unmap_pci_mem(struct isp_pcisoftc *isp_pci, unsigned long size)
     }
 }
 
-static __inline int 
+static __inline int
 map_isp_mem(struct isp_pcisoftc *isp_pci, u_short cmd, vm_offset_t mem_base)
 {
     if (cmd & PCI_COMMAND_MEMORY) {
@@ -414,7 +414,7 @@ map_isp_mem(struct isp_pcisoftc *isp_pci, u_short cmd, vm_offset_t mem_base)
     return (0);
 }
 
-static __inline int 
+static __inline int
 map_isp_io(struct isp_pcisoftc *isp_pci, u_short cmd, vm_offset_t io_base)
 {
     if ((cmd & PCI_COMMAND_IO) && (io_base & 3) == 1) {
@@ -723,7 +723,7 @@ isplinux_pci_init_one(struct Scsi_Host *host)
         isp->isp_type = ISP_HA_SCSI_UNKNOWN;
         if (isp->isp_mdvec->dv_ispfw == NULL)
             fwname = "ql1020_fw.bin";
-    } 
+    }
 #endif
 #ifndef    ISP_DISABLE_1080_SUPPORT
     if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP1080) {
@@ -1592,7 +1592,7 @@ static int tdma_mkfc(ispsoftc_t *, tmd_xact_t *, ct2_entry_t *, uint32_t *, uint
 
 /*
  * We need to handle DMA for target mode differently from initiator mode.
- * 
+ *
  * DMA mapping and construction and submission of CTIO Request Entries
  * and rendevous for completion are very tightly coupled because we start
  * out by knowing (per platform) how much data we have to move, but we
@@ -1605,7 +1605,7 @@ static int tdma_mkfc(ispsoftc_t *, tmd_xact_t *, ct2_entry_t *, uint32_t *, uint
  * for the DMA mapping routines comes here instead with a pointer to a
  * partially filled in already allocated request queue entry.
  */
-    
+
 static int
 tdma_mk(ispsoftc_t *isp, tmd_xact_t *xact, ct_entry_t *cto, uint32_t *nxtip, uint32_t optr)
 {
@@ -1915,7 +1915,7 @@ tdma_mk_2400(ispsoftc_t *isp, tmd_xact_t *xact, ct7_entry_t *cto, uint32_t *nxti
     int nseg, seg, ovseg, seglim, new_seg_cnt;
 #ifdef ALLOW_SYNTHETIC_CTIO
     ct7_entry_t *cto2 = NULL, ct2;
-#endif 
+#endif
 
     nxti = *nxtip;
     curi = isp->isp_reqidx;
@@ -2214,13 +2214,13 @@ tdma_mkfc(ispsoftc_t *isp, tmd_xact_t *xact, ct2_entry_t *cto, uint32_t *nxtip,
     int nseg, seg, ovseg, seglim, new_seg_cnt;
 #ifdef ALLOW_SYNTHETIC_CTIO
     ct2_entry_t *cto2 = NULL, ct2;
-#endif 
+#endif
 
     nxti = *nxtip;
     curi = isp->isp_reqidx;
     qe = ISP_QUEUE_ENTRY(isp->isp_rquest, curi);
 
-    
+
     if (cto->ct_flags & CT2_SENDSTATUS) {
         int level;
         if ((cto->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE0) {
@@ -3210,7 +3210,7 @@ isp_pci_reset1(ispsoftc_t *isp)
 static void
 isp_pci_dumpregs(ispsoftc_t *isp, const char *msg)
 {
-    struct isp_pcisoftc *pcs = (struct isp_pcisoftc *) isp;    
+    struct isp_pcisoftc *pcs = (struct isp_pcisoftc *) isp;
     uint16_t csr;
 
     pci_read_config_word(pcs->pci_dev, PCI_COMMAND, &csr);
@@ -3258,7 +3258,7 @@ isplinux_pci_exclude(struct pci_dev *dev)
     while (wrk && *wrk) {
         unsigned int id;
         char *commatok, *p, *q;
-    
+
         commatok = strchr(wrk, ',');
         if (commatok) {
             *commatok = 0;
index 8aadb1c..253c41d 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
 
 /*
  * Size to allocate both a scatterlist + payload for small allocations
- */ 
+ */
 #define SGS_SIZE            1024
 #define SGS0                (roundup(sizeof (struct scatterlist), sizeof (void *)))
 #define SGS_PAYLOAD_SIZE    (SGS_SIZE - SGS0)
@@ -259,7 +259,7 @@ static struct scatterlist *sg_cache = NULL;
 
 
 /*
- * A memory disk is constructed of a two dimensional array of pointers to pages. 
+ * A memory disk is constructed of a two dimensional array of pointers to pages.
  *
  * Allocate a series of chunks of memory, each of which becomes a flat array
  * of pointers to pages that we allocate one at a time.
@@ -345,7 +345,7 @@ static uint8_t inqdata[INQ_SIZE] = {
     '0', '0', '0', '1'
 };
 static uint8_t vp0data[7] = {
-    DEFAULT_DEVICE_TYPE, 0, 0, 0x3, 0, 0x80, 0x83 
+    DEFAULT_DEVICE_TYPE, 0, 0, 0x3, 0, 0x80, 0x83
 };
 static uint8_t vp80data[36] = {
     DEFAULT_DEVICE_TYPE, 0x80, 0, 0x20,
@@ -654,7 +654,7 @@ free_sdata_chain(sdata_t *sdp)
 {
     while (sdp) {
         sdata_t *nxt = sdp->next;
-        scsi_target_kfree(sdp, sizeof (*sdp)); 
+        scsi_target_kfree(sdp, sizeof (*sdp));
         sdp = nxt;
     }
 }
@@ -2474,7 +2474,7 @@ scsi_target_endis(char *hba_name_unit, uint64_t nbytes, int chan, int lun, int e
         }
     }
     spin_unlock_irqrestore(&scsi_target_lock, flags);
-    
+
     if (en == 0) {
         scsi_free_disk(bp, chan, lun);
     } else {
index 99f4da0..fc08424 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
index b18e462..f7a5aff 100644 (file)
@@ -2,17 +2,17 @@
 /*
  *  Copyright (c) 1997-2008 by Matthew Jacob
  *  All rights reserved.
- * 
+ *
  *  Redistribution and use in source and binary forms, with or without
  *  modification, are permitted provided that the following conditions
  *  are met:
- * 
+ *
  *  1. Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *  2. Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 
+ *
  *  THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  *  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
- * 
- * 
+ *
+ *
  *  Alternatively, this software may be distributed under the terms of the
  *  the GNU Public License ("GPL") with platforms where the prevalant license
  *  is the GNU Public License:
- * 
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of The Version 2 GNU General Public License as published
  *   by the Free Software Foundation.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *  
+ *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * 
+ *
+ *
  *  Matthew Jacob
  *  Feral Software
  *  421 Laurel Avenue
  *  Menlo Park, CA 94025
  *  USA
- * 
+ *
  *  gplbsd at feral com
  */
 /*
@@ -157,7 +157,7 @@ main(int a, char **v)
 
     if ((fd = open(SCSI_TARGET_DEV, O_RDWR)) < 0) {
         perror(SCSI_TARGET_DEV);
-        return (1);    
+        return (1);
     }
 
     if (ioctl(fd, action, &x) < 0) {
index 7138f62..5bdeda3 100644 (file)
@@ -1,16 +1,16 @@
 /*
  *  include/scst.h
- *  
+ *
  *  Copyright (C) 2004-2007 Vladislav Bolkhovitin <vst@vlnb.net>
  *                 and Leonid Stoljar
- *  
+ *
  *  Main SCSI target mid-level include file.
- * 
+ *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
  *  as published by the Free Software Foundation, version 2
  *  of the License.
- * 
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -53,7 +53,7 @@ typedef _Bool bool;
 #define SCST_INTERFACE_VERSION SCST_VERSION_STRING "$Revision$" SCST_CONST_VERSION
 
 /*************************************************************
- ** States of command processing state machine. At first, 
+ ** States of command processing state machine. At first,
  ** "active" states, then - "passive" ones. This is to have
  ** more efficient generated code of the corresponding
  ** "switch" statements.
@@ -116,22 +116,22 @@ typedef _Bool bool;
 /* Waiting for response's transmission finish */
 #define SCST_CMD_STATE_XMIT_WAIT     (SCST_CMD_STATE_LAST_ACTIVE+6)
 
-/************************************************************* 
- * Can be retuned instead of cmd's state by dev handlers' 
+/*************************************************************
+ * Can be retuned instead of cmd's state by dev handlers'
  * functions, if the command's state should be set by default
  *************************************************************/
 #define SCST_CMD_STATE_DEFAULT        500
 
-/************************************************************* 
- * Can be retuned instead of cmd's state by dev handlers' 
+/*************************************************************
+ * Can be retuned instead of cmd's state by dev handlers'
  * functions, if it is impossible to complete requested
- * task in atomic context. The cmd will be restarted in thread 
+ * task in atomic context. The cmd will be restarted in thread
  * context.
  *************************************************************/
 #define SCST_CMD_STATE_NEED_THREAD_CTX 1000
 
-/************************************************************* 
- * Can be retuned instead of cmd's state by dev handlers' 
+/*************************************************************
+ * Can be retuned instead of cmd's state by dev handlers'
  * parse function, if the cmd processing should be stopped
  * for now. The cmd will be restarted by dev handlers itself.
  *************************************************************/
@@ -165,19 +165,19 @@ typedef _Bool bool;
 #define SCST_NON_ATOMIC              0
 #define SCST_ATOMIC                  1
 
-/************************************************************* 
- ** Values for pref_context parameter of scst_cmd_init_done() and 
- ** scst_rx_data() 
+/*************************************************************
+ ** Values for pref_context parameter of scst_cmd_init_done() and
+ ** scst_rx_data()
  *************************************************************/
 
-/* 
- * Direct cmd's processing (i.e. regular function calls in the current 
+/*
+ * Direct cmd's processing (i.e. regular function calls in the current
  * context) sleeping is not allowed
  */
 #define SCST_CONTEXT_DIRECT_ATOMIC   0
 
-/* 
- * Direct cmd's processing (i.e. regular function calls in the current 
+/*
+ * Direct cmd's processing (i.e. regular function calls in the current
  * context), sleeping is allowed, no restrictions
  */
 #define SCST_CONTEXT_DIRECT          1
@@ -196,51 +196,51 @@ typedef _Bool bool;
  */
 #define SCST_CONTEXT_PROCESSABLE     0x100
 
-/************************************************************* 
- ** Values for status parameter of scst_rx_data() 
+/*************************************************************
+ ** Values for status parameter of scst_rx_data()
  *************************************************************/
 
 /* Success */
 #define SCST_RX_STATUS_SUCCESS       0
 
-/* 
+/*
  * Data receiving finished with error, so set the sense and
  * finish the command, including xmit_response() call
  */
 #define SCST_RX_STATUS_ERROR         1
 
-/* 
+/*
  * Data receiving finished with error and the sense is set,
  * so finish the command, including xmit_response() call
  */
 #define SCST_RX_STATUS_ERROR_SENSE_SET 2
 
-/* 
+/*
  * Data receiving finished with fatal error, so finish the command,
  * but don't call xmit_response()
  */
 #define SCST_RX_STATUS_ERROR_FATAL   3
 
-/************************************************************* 
- ** Values for status parameter of scst_restart_cmd() 
+/*************************************************************
+ ** Values for status parameter of scst_restart_cmd()
  *************************************************************/
 
 /* Success */
 #define SCST_PREPROCESS_STATUS_SUCCESS       0
 
-/* 
+/*
  * Command's processing finished with error, so set the sense and
  * finish the command, including xmit_response() call
  */
 #define SCST_PREPROCESS_STATUS_ERROR         1
 
-/* 
+/*
  * Command's processing finished with error and the sense is set,
  * so finish the command, including xmit_response() call
  */
 #define SCST_PREPROCESS_STATUS_ERROR_SENSE_SET 2
 
-/* 
+/*
  * Command's processing finished with fatal error, so finish the command,
  * but don't call xmit_response()
  */
@@ -250,8 +250,8 @@ typedef _Bool bool;
 #define SCST_PREPROCESS_STATUS_NEED_THREAD   4
 
 /*************************************************************
- ** Allowed return codes for xmit_response(), rdy_to_xfer(), 
- ** report_aen() 
+ ** Allowed return codes for xmit_response(), rdy_to_xfer(),
+ ** report_aen()
  *************************************************************/
 
 /* Success */
@@ -260,15 +260,15 @@ typedef _Bool bool;
 /* Internal device queue is full, retry again later */
 #define SCST_TGT_RES_QUEUE_FULL      -1
 
-/* 
- * It is impossible to complete requested task in atomic context. 
+/*
+ * It is impossible to complete requested task in atomic context.
  * The cmd will be restarted in thread  context.
  */
 #define SCST_TGT_RES_NEED_THREAD_CTX -2
 
-/* 
- * Fatal error, if returned by xmit_response() the cmd will 
- * be destroyed, if by any other function, xmit_response() 
+/*
+ * Fatal error, if returned by xmit_response() the cmd will
+ * be destroyed, if by any other function, xmit_response()
  * will be called with HARDWARE ERROR sense data
  */
 #define SCST_TGT_RES_FATAL_ERROR     -3
@@ -283,22 +283,22 @@ typedef _Bool bool;
 /* The cmd should be sent to SCSI mid-level */
 #define SCST_EXEC_NOT_COMPLETED      1
 
-/* 
- * Thread context is required to execute the command. 
+/*
+ * Thread context is required to execute the command.
  * Exec() will be called again in the thread context.
  */
 #define SCST_EXEC_NEED_THREAD        2
 
-/************************************************************* 
- ** Default timeout for cmd's CDB execution 
+/*************************************************************
+ ** Default timeout for cmd's CDB execution
  ** by SCSI mid-level (cmd's "timeout" field).
  *************************************************************/
 #define SCST_DEFAULT_T