---

 drivers/scsi/ofc/include/fc_frame.h         |   17 +----
 drivers/scsi/ofc/libfc/fc_disc_targ.c       |   25 ++------
 drivers/scsi/ofc/libfc/fc_exch.c            |   89 ++++++++-------------------
 drivers/scsi/ofc/libfc/fc_frame.c           |    1 
 drivers/scsi/ofc/libfc/fc_local_port.c      |   60 ++++--------------
 drivers/scsi/ofc/libfc/fc_local_port_impl.h |    1 
 drivers/scsi/ofc/libfc/fc_port.c            |    9 +--
 drivers/scsi/ofc/libfc/fc_print.c           |    1 
 drivers/scsi/ofc/libfc/fc_remote_port.c     |   21 +++---
 drivers/scsi/ofc/libfc/fc_sess.c            |   63 +++++++------------
 drivers/scsi/ofc/libfc/fc_virt_fab.c        |    1 
 drivers/scsi/ofc/libfc/fcs_attr.c           |    1 
 drivers/scsi/ofc/libfc/fcs_cmd.c            |    7 +-
 drivers/scsi/ofc/libfc/fcs_event.c          |    3 -
 drivers/scsi/ofc/libfc/fcs_state.c          |   25 +++-----
 15 files changed, 103 insertions(+), 221 deletions(-)


diff --git a/drivers/scsi/ofc/include/fc_frame.h 
b/drivers/scsi/ofc/include/fc_frame.h
index 36e9dce..6f8e85e 100644
--- a/drivers/scsi/ofc/include/fc_frame.h
+++ b/drivers/scsi/ofc/include/fc_frame.h
@@ -109,7 +109,6 @@ static inline void fc_frame_init_static(struct fc_frame *fp)
  */
 static inline int fc_frame_freed_static(struct fc_frame *fp)
 {
-       ASSERT(fp->fr_flags & FCPHF_STATIC);
        return (fp->fr_flags & FCPHF_FREED);
 }
 
@@ -127,8 +126,7 @@ struct fc_frame *fc_frame_alloc_fill(struct fc_port *, 
size_t payload_len);
 static inline struct fc_frame *fc_port_frame_alloc(struct fc_port *port,
        size_t payload_len)
 {
-       ASSERT(port->np_frame_alloc);
-       ASSERT((payload_len % 4) == 0);
+       WARN_ON((payload_len % 4) != 0);
        return (*port->np_frame_alloc)(payload_len);
 }
 
@@ -137,8 +135,6 @@ static inline struct fc_frame *fc_frame_alloc_inline(struct 
fc_port *port,
 {
        struct fc_frame *fp;
 
-       ASSERT(port);
-
        /*
         * Note: Since len will often be a constant multiple of 4,
         * this check will usually be evaluated and eliminated at compile time.
@@ -166,9 +162,6 @@ static inline struct fc_frame *fc_frame_alloc_inline(struct 
fc_port *port,
  */
 static inline void fc_frame_free(struct fc_frame *fp)
 {
-       ASSERT(fp);
-       ASSERT(fp->fr_free);
-       ASSERT(fp->fr_hdr);
        FC_FRAME_STAMP(fp);
        fp->fr_hdr = NULL;
        (*fp->fr_free)(fp);
@@ -186,8 +179,7 @@ static inline int fc_frame_is_linear(struct fc_frame *fp)
 static inline struct fc_frame_header *fc_frame_header_get(const struct
                                                          fc_frame *fp)
 {
-       ASSERT(fp != NULL);
-       ASSERT(fp->fr_len >= sizeof(struct fc_frame_header));
+       WARN_ON(fp->fr_len < sizeof(struct fc_frame_header));
        return fp->fr_hdr;
 }
 
@@ -206,7 +198,6 @@ static inline void *fc_frame_payload_get(const struct 
fc_frame *fp,
 {
        void *pp = NULL;
 
-       ASSERT(fp != NULL);
        if (fp->fr_len >= sizeof(struct fc_frame_header) + len)
                pp = fc_frame_header_get(fp) + 1;
        return pp;
@@ -239,8 +230,7 @@ static inline void fc_frame_setup(struct fc_frame *fp, enum 
fc_rctl r_ctl,
        struct fc_frame_header *fh;
 
        fh = fc_frame_header_get(fp);
-       ASSERT(fh != NULL);
-       ASSERT(r_ctl != 0);
+       WARN_ON(r_ctl == 0);
        fh->fh_r_ctl = r_ctl;
        fh->fh_type = type;
        net32_put(&fh->fh_parm_offset, 0);
@@ -255,7 +245,6 @@ fc_frame_set_offset(struct fc_frame *fp, u_int32_t offset)
        struct fc_frame_header *fh;
 
        fh = fc_frame_header_get(fp);
-       ASSERT(fh != NULL);
        net32_put(&fh->fh_parm_offset, offset);
 }
 
diff --git a/drivers/scsi/ofc/libfc/fc_disc_targ.c 
b/drivers/scsi/ofc/libfc/fc_disc_targ.c
index 4906a2b..eb24e52 100644
--- a/drivers/scsi/ofc/libfc/fc_disc_targ.c
+++ b/drivers/scsi/ofc/libfc/fc_disc_targ.c
@@ -26,7 +26,6 @@
 #undef LIST_HEAD
 #include "net_types.h"
 
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "sa_timer.h"
 #include "sa_event.h"
@@ -204,7 +203,6 @@ static int fcdt_new_target(struct fc_local_port *lp,
        int error = 0;
 
        if (rp && wwpn) {
-               ASSERT(atomic_read(&rp->rp_refcnt) > 0);
                if (rp->rp_port_wwn == 0) {
                        /*
                         * Set WWN and fall through to notify of create.
@@ -258,7 +256,6 @@ static void fcdt_del_target(struct fc_local_port *lp, 
struct fc_remote_port *rp)
 {
        struct fc_sess *sess;
 
-       ASSERT(atomic_read(&rp->rp_refcnt) > 0);        /* caller holds rp */
        sess = rp->rp_sess;
        if (sess) {
                rp->rp_sess_ready = 0;
@@ -310,7 +307,7 @@ static void fcdt_done(struct fc_local_port *lp)
                else
                        held = NULL;
        }
-       ASSERT(!held);
+       WARN_ON(held);
        fc_virt_fab_unlock(vp);
        (*lp->fl_disc_cb) (lp->fl_disc_cb_arg, NULL, FC_EV_NONE);
        lp->fl_disc_in_prog = 0;
@@ -347,12 +344,10 @@ static void fcdt_gpn_ft_req(struct fc_local_port *lp)
                error = ENOMEM;
        } else {
                rp = fc_frame_payload_get(fp, sizeof(*rp));
-               ASSERT(rp);
                fcdt_fill_dns_hdr(lp, &rp->ct, FC_NS_GPN_FT, sizeof(rp->gid));
                rp->gid.fn_fc4_type = lp->fl_disc_type;
 
-               ASSERT(lp->fl_dns_sess);
-               ASSERT(fc_local_port_test_ready(lp));
+               WARN_ON(!fc_local_port_test_ready(lp));
 
                fc_frame_setup(fp, FC_RCTL_DD_UNSOL_CTL, FC_TYPE_CT);
                error = fc_sess_send_req(lp->fl_dns_sess, fp, fcdt_gpn_ft_resp,
@@ -406,10 +401,10 @@ static int fcdt_gpn_ft_parse(struct fc_local_port *lp, 
void *buf, size_t len)
        np = (struct fc_gpn_ft_resp *)bp;
        tlen = lp->fl_disc_buf_len;
        if (tlen) {
-               ASSERT(tlen < sizeof(*np));
+               WARN_ON(tlen >= sizeof(*np));
                plen = sizeof(*np) - tlen;
-               ASSERT(plen > 0);
-               ASSERT(plen < sizeof(*np));
+               WARN_ON(plen <= 0);
+               WARN_ON(plen >= sizeof(*np));
                if (plen > len)
                        plen = len;
                np = &lp->fl_disc_buf;
@@ -492,7 +487,7 @@ static void fcdt_gpn_ft_resp(struct fc_seq *sp, struct 
fc_frame *fp,
        u_int len;
        int error;
 
-       ASSERT(fc_frame_is_linear(fp)); /* buffer must be contiguous */
+       WARN_ON(!fc_frame_is_linear(fp));       /* buffer must be contiguous */
        fh = fc_frame_header_get(fp);
        len = fp->fr_len - sizeof(*fh);;
        seq_cnt = net16_get(&fh->fh_seq_cnt);
@@ -571,12 +566,10 @@ static int fcdt_gpn_id_req(struct fc_local_port *lp, 
struct fc_remote_port *rp)
                error = ENOMEM;
        } else {
                cp = fc_frame_payload_get(fp, sizeof(*cp));
-               ASSERT(cp);
                fcdt_fill_dns_hdr(lp, &cp->ct, FC_NS_GPN_ID, sizeof(cp->fid));
                net24_put(&cp->fid.fp_fid, rp->rp_fid);
 
-               ASSERT(lp->fl_dns_sess);
-               ASSERT(fc_local_port_test_ready(lp));
+               WARN_ON(!fc_local_port_test_ready(lp));
 
                fc_frame_setup(fp, FC_RCTL_DD_UNSOL_CTL, FC_TYPE_CT);
                error = fc_sess_send_req(lp->fl_dns_sess, fp, fcdt_gpn_id_resp,
@@ -601,8 +594,7 @@ static void fcdt_gpn_id_resp(struct fc_seq *sp, struct 
fc_frame *fp,
        u_int cmd;
 
        lp = list_first_entry(&rp->rp_vf->vf_local_ports, struct fc_local_port, 
fl_list);
-       ASSERT(lp);
-       ASSERT(fc_frame_is_linear(fp)); /* buffer must be contiguous */
+       WARN_ON(!fc_frame_is_linear(fp));       /* buffer must be contiguous */
 
        cp = fc_frame_payload_get(fp, sizeof(cp->ct));
        if (cp == NULL) {
@@ -652,7 +644,6 @@ static void fcdt_gpn_id_error(enum fc_event event, void 
*rp_arg)
        case FC_EV_TIMEOUT:
        case FC_EV_READY:
                lp = list_first_entry(&rp->rp_vf->vf_local_ports, struct 
fc_local_port, fl_list);
-               ASSERT(lp);
                fc_disc_targ_restart(lp);
                break;
        case FC_EV_CLOSED:
diff --git a/drivers/scsi/ofc/libfc/fc_exch.c b/drivers/scsi/ofc/libfc/fc_exch.c
index 9a5cd98..ff9b301 100644
--- a/drivers/scsi/ofc/libfc/fc_exch.c
+++ b/drivers/scsi/ofc/libfc/fc_exch.c
@@ -22,7 +22,6 @@
  */
 
 #include "sa_kernel.h"
-#include "sa_assert.h"
 #include "net_types.h"
 #include "ofc_dbg.h"
 #include "sa_hash.h"
@@ -225,7 +224,7 @@ static int fc_exch_mgr_init(struct fc_exch_mgr *mp, enum 
fc_class class,
         */
        min_xid = (min_xid + (pool_count - 1)) & ~(pool_count - 1);
        max_xid = (max_xid - (pool_count - 1)) | (pool_count - 1);
-       ASSERT(min_xid < max_xid);
+       WARN_ON(min_xid > max_xid);
        mp->em_min_xid = min_xid;
        mp->em_max_xid = max_xid;
 
@@ -243,7 +242,7 @@ static int fc_exch_mgr_init(struct fc_exch_mgr *mp, enum 
fc_class class,
                for (xid = min_xid + pool; xid <= max_xid;
                     xid += (fc_xid_t) pool_count) {
 
-                       ASSERT((xid % pool_count) == pool);
+                       WARN_ON((xid % pool_count) != pool);
                        ep = &mp->em_exch[xid - min_xid];
                        ep->ex_pool = pp;
                        ep->ex_xid = xid;
@@ -269,7 +268,7 @@ struct fc_exch_mgr *fc_exch_mgr_alloc(enum fc_class class,
 
        if (!min_xid)
                min_xid++;
-       ASSERT(min_xid < max_xid);
+       WARN_ON(min_xid > max_xid);
        len = (max_xid + 1 - min_xid) * sizeof(struct fc_exch) + sizeof(*mp);
 
        while (len > (PAGE_SIZE << order))
@@ -306,7 +305,7 @@ static inline struct fc_exch *fc_exch_lookup(struct 
fc_exch_mgr *mp,
 
        if (xid >= mp->em_min_xid && xid <= mp->em_max_xid) {
                ep = &mp->em_exch[xid - mp->em_min_xid];
-               ASSERT(ep->ex_xid == xid);
+               WARN_ON(ep->ex_xid != xid);
                if (atomic_read(&ep->ex_refcnt) == 0 &&
                    (ep->ex_e_stat & ESB_ST_COMPLETE)) {
                        ep = NULL;      /* exchange is free */
@@ -321,7 +320,6 @@ static inline struct fc_exch *fc_exch_lookup(struct 
fc_exch_mgr *mp,
 static void fc_exch_hold(struct fc_exch *ep)
 {
        atomic_inc(&ep->ex_refcnt);
-       ASSERT(atomic_read(&ep->ex_refcnt) != 0);       /* detect overflow */
 }
 
 /*
@@ -332,14 +330,12 @@ static void fc_exch_release(struct fc_exch *ep)
 {
        struct fc_exch_pool *pp;
 
-       ASSERT(atomic_read(&ep->ex_refcnt) != 0);
-
        if (atomic_dec_and_test(&ep->ex_refcnt) &&
            (ep->ex_e_stat & ESB_ST_COMPLETE)) {
                sa_timer_cancel(&ep->ex_timer);
                pp = ep->ex_pool;
                spin_lock_bh(&pp->emp_lock);
-               ASSERT(pp->emp_exch_in_use > 0);
+               WARN_ON(pp->emp_exch_in_use <= 0);
                pp->emp_exch_in_use--;
                list_del(&ep->ex_list);
                list_add_tail(&ep->ex_list, &pp->emp_exch_free);
@@ -353,7 +349,7 @@ static void fc_exch_release(struct fc_exch *ep)
  */
 inline struct fc_exch *fc_seq_exch(const struct fc_seq *sp)
 {
-       ASSERT(sp);
+       WARN_ON(!sp);
        return (struct fc_exch *)
            ((char *)sp - offsetof(struct fc_exch, ex_seq));
 }
@@ -364,7 +360,6 @@ inline struct fc_exch *fc_seq_exch(const struct fc_seq *sp)
 inline void fc_seq_hold(struct fc_seq *sp)
 {
        atomic_inc(&sp->seq_refcnt);
-       ASSERT(atomic_read(&sp->seq_refcnt) != 0);
 }
 
 /*
@@ -378,7 +373,6 @@ static struct fc_seq *fc_seq_alloc(struct fc_exch *ep, 
u_int8_t seq_id)
 {
        struct fc_seq *sp;
 
-       ASSERT(ep);
        sp = &ep->ex_seq;
        if (atomic_read(&sp->seq_refcnt) == 0 && sp->seq_active == 0)
                fc_exch_hold(ep);       /* hold exchange for the sequence */
@@ -407,7 +401,6 @@ void fc_seq_release(struct fc_seq *sp)
  */
 inline void fc_seq_complete(struct fc_seq *sp)
 {
-       ASSERT(atomic_read(&sp->seq_refcnt) != 0);
        sp->seq_active = 0;
 }
 
@@ -423,7 +416,7 @@ static void fc_exch_timeout(void *ep_arg)
        void *arg;
 
        fc_seq_hold(sp);
-       ASSERT(sp->seq_active);
+       WARN_ON(!sp->seq_active);
        if (ep->ex_aborted) {
                fc_seq_exch_complete(sp);
        } else {
@@ -466,7 +459,6 @@ int fc_seq_abort_exch(const struct fc_seq *req_sp)
        int error;
 
        ep = fc_seq_exch(req_sp);
-       ASSERT(ep);
 
        /*
         * Send the abort on a new sequence if possible.
@@ -563,10 +555,8 @@ static struct fc_exch *fc_exch_alloc(struct fc_exch_mgr 
*mp)
                pp->emp_exch_in_use++;
                spin_unlock_bh(&pp->emp_lock);
 
-               ASSERT(ep->ex_pool == pp);
-               ASSERT(atomic_read(&ep->ex_refcnt) == 0);
-               ASSERT(ep->ex_xid != 0);
-               ASSERT(spin_can_lock(&ep->ex_lock));
+               WARN_ON(ep->ex_pool != pp);
+               WARN_ON(ep->ex_xid == 0);
 
                /*
                 * Clear the portion of the exchange not maintained
@@ -576,10 +566,8 @@ static struct fc_exch *fc_exch_alloc(struct fc_exch_mgr 
*mp)
                       offsetof(struct fc_exch, fc_exch_clear_start), 0,
                       sizeof(*ep) - offsetof(struct fc_exch,
                                              fc_exch_clear_start));
-               ASSERT(ep->ex_pool == pp);
-               ASSERT(atomic_read(&ep->ex_refcnt) == 0);
-               ASSERT(ep->ex_xid != 0);
-               ASSERT(spin_can_lock(&ep->ex_lock));
+               WARN_ON(ep->ex_pool != pp);
+               WARN_ON(ep->ex_xid == 0);
 
                ep->ex_f_ctl = FC_FC_FIRST_SEQ; /* next seq is first seq */
                ep->ex_rx_id = FC_XID_UNKNOWN;
@@ -653,7 +641,7 @@ static struct fc_exch *fc_exch_resp(struct fc_exch_mgr *mp,
                 */
                if (fh->fh_type != FC_TYPE_BLS) {
                        rx_id = net16_get(&fh->fh_rx_id);
-                       ASSERT(rx_id == FC_XID_UNKNOWN);
+                       WARN_ON(rx_id != FC_XID_UNKNOWN);
                        net16_put(&fh->fh_rx_id, ep->ex_rx_id);
                }
        }
@@ -674,7 +662,7 @@ fc_seq_lookup_recip(struct fc_exch_mgr *mp, struct fc_frame 
*fp)
        fc_xid_t xid;
 
        f_ctl = net24_get(&fh->fh_f_ctl);
-       ASSERT((f_ctl & FC_FC_SEQ_CTX) == 0);
+       WARN_ON((f_ctl & FC_FC_SEQ_CTX) != 0);
 
        /*
         * Lookup or create the exchange if we will be creating the sequence.
@@ -733,7 +721,6 @@ fc_seq_lookup_recip(struct fc_exch_mgr *mp, struct fc_frame 
*fp)
         * At this point, we should have the exchange.
         * Find or create the sequence.
         */
-       ASSERT(ep);
        if (fc_sof_is_init(fp->fr_sof)) {
                sp = fc_seq_alloc(ep, fh->fh_seq_id);
                fc_exch_release(ep);    /* sequence now holds exch */
@@ -754,10 +741,7 @@ fc_seq_lookup_recip(struct fc_exch_mgr *mp, struct 
fc_frame *fp)
                        goto out;
                }
        }
-       ASSERT(sp);
-       ASSERT(ep);
-       ASSERT(ep == fc_seq_exch(sp));
-       ASSERT(atomic_read(&sp->seq_refcnt));
+       WARN_ON(ep != fc_seq_exch(sp));
 
        if (f_ctl & FC_FC_SEQ_INIT)
                ep->ex_e_stat |= ESB_ST_SEQ_INIT;
@@ -783,7 +767,7 @@ static struct fc_seq *fc_seq_lookup_orig(struct fc_exch_mgr 
*mp,
        fc_xid_t xid;
 
        f_ctl = net24_get(&fh->fh_f_ctl);
-       ASSERT(f_ctl & FC_FC_SEQ_CTX);
+       WARN_ON((f_ctl & FC_FC_SEQ_CTX) != FC_FC_SEQ_CTX);
        xid = net16_get((f_ctl & FC_FC_EX_CTX) ? &fh->fh_ox_id : &fh->fh_rx_id);
        ep = fc_exch_lookup(mp, xid);
        if (ep && ep->ex_seq.seq_id == fh->fh_seq_id) {
@@ -840,10 +824,10 @@ struct fc_seq *fc_seq_start(struct fc_exch *ep)
        struct fc_seq *sp = NULL;
 
        spin_lock_bh(&ep->ex_lock);
-       ASSERT((ep->ex_e_stat & ESB_ST_COMPLETE) == 0);
+       WARN_ON((ep->ex_e_stat & ESB_ST_COMPLETE) != 0);
 
        sp = fc_seq_alloc(ep, ep->ex_seq_id++);
-       ASSERT(sp);
+
        if (fc_exch_debug)
                OFC_DBG("exch %4x f_ctl %6x seq %2x f_ctl %6x\n",
                       ep->ex_xid, ep->ex_f_ctl, sp->seq_id, sp->seq_f_ctl);
@@ -920,8 +904,8 @@ size_t fc_seq_mfs(struct fc_seq *sp)
        size_t mfs;
 
        mfs = fc_seq_exch(sp)->ex_max_payload;
-       ASSERT(mfs >= FC_SP_MIN_MAX_PAYLOAD);
-       ASSERT(mfs <= FC_SP_MAX_MAX_PAYLOAD);
+       WARN_ON(mfs < FC_SP_MIN_MAX_PAYLOAD);
+       WARN_ON(mfs > FC_SP_MAX_MAX_PAYLOAD);
        return mfs;
 }
 
@@ -956,12 +940,11 @@ int fc_seq_send_frag(struct fc_seq *sp, struct fc_frame 
*fp)
        int error;
 
        ep = fc_seq_exch(sp);
-       ASSERT(ep);
-       ASSERT(ep->ex_e_stat & ESB_ST_SEQ_INIT);
+       WARN_ON((ep->ex_e_stat & ESB_ST_SEQ_INIT) != ESB_ST_SEQ_INIT);
        port = ep->ex_port;
-       ASSERT(port);
-       ASSERT((sp->seq_f_ctl & FC_FC_END_SEQ) == 0);
-       ASSERT(fp->fr_len % 4 == 0);    /* can't pad except on last frame */
+
+       WARN_ON((sp->seq_f_ctl & FC_FC_END_SEQ) != 0);
+       WARN_ON(fp->fr_len % 4 != 0);   /* can't pad except on last frame */
 
        class = ep->ex_class;
        fp->fr_sof = class;
@@ -1013,11 +996,9 @@ int fc_seq_send(struct fc_seq *sp, struct fc_frame *fp)
        int error;
 
        ep = fc_seq_exch(sp);
-       ASSERT(ep);
-       ASSERT(ep->ex_e_stat & ESB_ST_SEQ_INIT);
+       WARN_ON((ep->ex_e_stat & ESB_ST_SEQ_INIT) != ESB_ST_SEQ_INIT);
        port = ep->ex_port;
-       ASSERT(port);
-       ASSERT((sp->seq_f_ctl & FC_FC_END_SEQ) == 0);
+       WARN_ON((sp->seq_f_ctl & FC_FC_END_SEQ) != 0);
 
        class = ep->ex_class;
        fp->fr_sof = class;
@@ -1114,7 +1095,6 @@ int fc_seq_send_req(struct fc_seq *sp, struct fc_frame 
*fp,
 int fc_seq_send_next_req(struct fc_seq *sp, struct fc_frame *fp)
 {
        sp = fc_seq_start_next(sp);
-       ASSERT(sp);
        sp->seq_f_ctl |= FC_FC_SEQ_INIT;
        return fc_seq_send(sp, fp);
 }
@@ -1197,11 +1177,7 @@ void fc_exch_recv_req(struct fc_exch_mgr *mp, struct 
fc_frame *fp,
        reject = fc_seq_lookup_recip(mp, fp);
        if (reject == FC_RJT_NONE) {
                sp = fp->fr_seq;        /* sequence will be held */
-               ASSERT(sp);
-               ASSERT(atomic_read(&sp->seq_refcnt) != 0);
                ep = fc_seq_exch(sp);
-               ASSERT(ep);
-               ASSERT(atomic_read(&ep->ex_refcnt) != 0);
                ep->ex_max_payload = (u_int16_t) max_payload;
                sof = fp->fr_sof;
                eof = fp->fr_eof;
@@ -1223,8 +1199,8 @@ void fc_exch_recv_req(struct fc_exch_mgr *mp, struct 
fc_frame *fp,
                        if ((f_ctl & (FC_FC_LAST_SEQ | FC_FC_END_SEQ)) ==
                            (FC_FC_LAST_SEQ | FC_FC_END_SEQ))
                                fc_exch_complete_locked(ep);
-                       ASSERT(atomic_read(&sp->seq_refcnt) != 0);
-                       ASSERT(fc_seq_exch(sp) == ep);
+
+                       WARN_ON(fc_seq_exch(sp) != ep);
                        fc_seq_complete(sp);
                }
                spin_unlock_bh(&ep->ex_lock);
@@ -1316,7 +1292,6 @@ void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct 
fc_frame *fp)
        sof = fp->fr_sof;
        if (fc_sof_is_init(sof)) {
                sp = fc_seq_alloc(ep, fh->fh_seq_id);
-               ASSERT(sp);
                sp->seq_s_stat |= SSB_ST_RESP;
        } else {
                sp = &ep->ex_seq;
@@ -1348,8 +1323,7 @@ void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct 
fc_frame *fp)
                if ((f_ctl & (FC_FC_LAST_SEQ | FC_FC_END_SEQ)) ==
                    (FC_FC_LAST_SEQ | FC_FC_END_SEQ))
                        fc_exch_complete_locked(ep);
-               ASSERT(atomic_read(&sp->seq_refcnt) != 0);
-               ASSERT(fc_seq_exch(sp) == ep);
+               WARN_ON(fc_seq_exch(sp) != ep);
                fc_seq_complete(sp);
                spin_unlock_bh(&ep->ex_lock);
        }
@@ -1397,7 +1371,6 @@ void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct 
fc_frame *fp)
                        OFC_DBG("seq lookup failed: reject %x\n", reject);
        } else {
                ep = fc_seq_exch(sp);
-               ASSERT(ep);
                if (fh->fh_type == FC_TYPE_BLS) {
                        spin_lock_bh(&ep->ex_lock);
                        f_ctl = net24_get(&fh->fh_f_ctl);
@@ -1455,7 +1428,6 @@ static void fc_seq_fill_hdr(struct fc_seq *sp, struct 
fc_frame *fp)
        struct fc_exch *ep;
 
        ep = fc_seq_exch(sp);
-       ASSERT(ep);
 
        net24_put(&fh->fh_s_id, ep->ex_s_id);
        net24_put(&fh->fh_d_id, ep->ex_d_id);
@@ -1478,11 +1450,9 @@ void fc_seq_ls_acc(struct fc_seq *req_sp)
        struct fc_frame *fp;
 
        sp = fc_seq_start_next(req_sp);
-       ASSERT(sp);
        fp = fc_frame_alloc(fc_seq_exch(sp)->ex_port, sizeof(*acc));
        if (fp) {
                acc = fc_frame_payload_get(fp, sizeof(*acc));
-               ASSERT(acc);
                memset(acc, 0, sizeof(*acc));
                acc->la_cmd = ELS_LS_ACC;
                fc_seq_send_last(sp, fp, FC_RCTL_ELS_REP, FC_TYPE_ELS);
@@ -1504,11 +1474,9 @@ void fc_seq_ls_rjt(struct fc_seq *req_sp, enum 
fc_els_rjt_reason reason,
        struct fc_frame *fp;
 
        sp = fc_seq_start_next(req_sp);
-       ASSERT(sp);
        fp = fc_frame_alloc(fc_seq_exch(sp)->ex_port, sizeof(*rjt));
        if (fp) {
                rjt = fc_frame_payload_get(fp, sizeof(*rjt));
-               ASSERT(rjt);
                memset(rjt, 0, sizeof(*rjt));
                rjt->er_cmd = ELS_LS_RJT;
                rjt->er_reason = reason;
@@ -1575,7 +1543,6 @@ struct fc_seq *fc_seq_rec_req(struct fc_seq *inq_sp,
        }
        fc_seq_exch(sp)->ex_port = ep->ex_port;
        rp = fc_frame_payload_get(fp, sizeof(*rp));
-       ASSERT(rp);
        memset(rp, 0, sizeof(*rp));
        rp->rec_cmd = ELS_REC;
        if (ep->ex_f_ctl & FC_FC_EX_CTX)
diff --git a/drivers/scsi/ofc/libfc/fc_frame.c 
b/drivers/scsi/ofc/libfc/fc_frame.c
index c609ebd..34d7a8a 100644
--- a/drivers/scsi/ofc/libfc/fc_frame.c
+++ b/drivers/scsi/ofc/libfc/fc_frame.c
@@ -23,7 +23,6 @@
 
 #include "sa_kernel.h"
 #include "net_types.h"
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "fc_fs.h"
 #include "fc_types.h"
diff --git a/drivers/scsi/ofc/libfc/fc_local_port.c 
b/drivers/scsi/ofc/libfc/fc_local_port.c
index cd70c74..be3a77b 100644
--- a/drivers/scsi/ofc/libfc/fc_local_port.c
+++ b/drivers/scsi/ofc/libfc/fc_local_port.c
@@ -24,7 +24,6 @@
 #include "sa_kernel.h"
 #undef LIST_HEAD
 #include "net_types.h"
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "sa_timer.h"
 #include "sa_event.h"
@@ -209,7 +208,6 @@ const char *fc_local_port_state(struct fc_local_port *lp)
  */
 static void fc_local_port_retry(struct fc_local_port *lp)
 {
-       ASSERT(fc_local_port_locked(lp));
        if (lp->fl_retry_count == 0)
                OFC_DBG("local port %6x alloc failure in state %s "
                        "- will retry", lp->fl_fid, fc_local_port_state(lp));
@@ -266,7 +264,6 @@ static void fc_local_port_ptp_clear(struct fc_local_port 
*lp)
 {
        struct fc_remote_port *rp;
 
-       ASSERT(fc_local_port_locked(lp));
        rp = lp->fl_ptp_rp;
        if (rp) {
                lp->fl_ptp_rp = NULL;
@@ -425,7 +422,6 @@ static void fc_local_port_flogi_send(struct fc_local_port 
*lp)
        fp = fc_frame_alloc(lp->fl_port, sizeof(*flp));
        if (fp) {
                flp = fc_frame_payload_get(fp, sizeof(*flp));
-               ASSERT(flp);
                fc_local_port_flogi_fill(lp, flp, ELS_FLOGI);
        }
        fc_local_port_els_send(lp, sp, fp);
@@ -450,7 +446,6 @@ static void fc_local_port_recv_flogi_req(struct fc_seq 
*sp_in,
        fc_fid_t local_fid;
 
        fh = fc_frame_header_get(rx_fp);
-       ASSERT(fh);
        remote_fid = net24_get(&fh->fh_s_id);
        flp = fc_frame_payload_get(rx_fp, sizeof(*flp));
        if (!flp)
@@ -469,7 +464,7 @@ static void fc_local_port_recv_flogi_req(struct fc_seq 
*sp_in,
         */
 #if 0  /* XXX - can't do this yet without clearing the FLOGI exchange */
        fc_local_port_enter_init(lp);
-       ASSERT(lp->fl_fid == 0);
+       WARN_ON(lp->fl_fid != 0);
 #endif /* XXX */
 
        /*
@@ -492,10 +487,8 @@ static void fc_local_port_recv_flogi_req(struct fc_seq 
*sp_in,
        fp = fc_frame_alloc(lp->fl_port, sizeof(*flp));
        if (fp) {
                sp = fc_seq_start_next(rx_fp->fr_seq);
-               ASSERT(sp);
                fc_seq_set_addr(sp, remote_fid, local_fid);
                new_flp = fc_frame_payload_get(fp, sizeof(*flp));
-               ASSERT(new_flp);
                fc_local_port_flogi_fill(lp, new_flp, ELS_FLOGI);
                new_flp->fl_cmd = (net8_t) ELS_LS_ACC;
 
@@ -549,7 +542,6 @@ static void fc_local_port_sess_event(int event, void 
*lp_arg)
                break;
        case FC_EV_CLOSED:
                sess = lp->fl_dns_sess;
-               ASSERT(sess);
                lp->fl_dns_sess = NULL;
                if (lp->fl_state == LOCAL_PORT_ST_DNS_STOP)
                        fc_local_port_enter_logo(lp);
@@ -577,6 +569,7 @@ static void fc_local_port_enter_dns(struct fc_local_port 
*lp)
        struct fc_remote_port *rp;
 
        fc_local_port_enter_state(lp, LOCAL_PORT_ST_DNS);
+
        sess = lp->fl_dns_sess;
        if (!sess) {
                /*
@@ -668,7 +661,6 @@ static void fc_local_port_enter_reg_pn(struct fc_local_port 
*lp)
                return;
        }
        rp = fc_frame_payload_get(fp, sizeof(*rp));
-       ASSERT(rp);
        memset(rp, 0, sizeof(*rp));
        fc_local_port_fill_dns_hdr(lp, &rp->ct, FC_NS_RPN_ID, sizeof(rp->rn));
        net24_put(&rp->rn.fr_fid.fp_fid, lp->fl_fid);
@@ -717,6 +709,7 @@ static void fc_local_port_enter_reg_ft(struct fc_local_port 
*lp)
        int i;
 
        fc_local_port_enter_state(lp, LOCAL_PORT_ST_REG_FT);
+
        lps = &lp->fl_ns_fts;
        i = sizeof(lps->ff_type_map) / sizeof(lps->ff_type_map[0]);
        while (--i >= 0)
@@ -726,7 +719,6 @@ static void fc_local_port_enter_reg_ft(struct fc_local_port 
*lp)
                fp = fc_frame_alloc(lp->fl_port, sizeof(*rp));
                if (fp) {
                        rp = fc_frame_payload_get(fp, sizeof(*rp));
-                       ASSERT(rp);
                        fc_local_port_fill_dns_hdr(lp, &rp->ct,
                                                   FC_NS_RFT_ID,
                                                   sizeof(*rp) -
@@ -759,7 +751,6 @@ static void fc_local_port_enter_scr(struct fc_local_port 
*lp)
        fp = fc_frame_alloc(lp->fl_port, sizeof(*scr));
        if (fp) {
                scr = fc_frame_payload_get(fp, sizeof(*scr));
-               ASSERT(scr);
                memset(scr, 0, sizeof(*scr));
                scr->scr_cmd = ELS_SCR;
                scr->scr_reg_func = ELS_SCRF_FULL;
@@ -794,6 +785,7 @@ static void fc_local_port_enter_dns_stop(struct 
fc_local_port *lp)
        struct fc_sess *sess;
 
        fc_local_port_enter_state(lp, LOCAL_PORT_ST_DNS_STOP);
+
        sess = lp->fl_dns_sess;
        if (sess) {
                fc_sess_stop(sess);
@@ -840,7 +832,6 @@ static void fc_local_port_enter_logo(struct fc_local_port 
*lp)
        fp = fc_frame_alloc(lp->fl_port, sizeof(*logo));
        if (fp) {
                logo = fc_frame_payload_get(fp, sizeof(*logo));
-               ASSERT(logo);
                memset(logo, 0, sizeof(*logo));
                logo->fl_cmd = ELS_LOGO;
                net24_put(&logo->fl_n_port_id, lp->fl_fid);
@@ -853,8 +844,7 @@ int fc_local_port_table_create(struct fc_virt_fab *vp)
 {
        struct sa_hash *hp;
 
-       ASSERT(vp);
-       ASSERT(!vp->vf_lport_by_fid);
+       WARN_ON(vp->vf_lport_by_fid);
 
        hp = sa_hash_create(&fc_local_port_hash_by_fid,
                            FC_LOCAL_PORT_HASH_SIZE);
@@ -869,7 +859,7 @@ int fc_local_port_table_create(struct fc_virt_fab *vp)
 
 void fc_local_port_table_destroy(struct fc_virt_fab *vp)
 {
-       ASSERT(list_empty(&vp->vf_local_ports));
+       WARN_ON(!list_empty(&vp->vf_local_ports));
        sa_hash_destroy(vp->vf_lport_by_fid);
 }
 
@@ -884,19 +874,6 @@ struct fc_local_port *fc_local_port_create(struct 
fc_virt_fab *vf,
 {
        struct fc_local_port *lp;
 
-       /*
-        * Static checks for packet structure sizes.
-        * These catch some obvious errors in structure definitions.
-        * These should generate no code since they can be tested
-        * at compile time.
-        */
-#ifdef DEBUG_ASSERTS
-       fc_fs_size_checks();
-       fc_gs_size_checks();
-       fc_ils_size_checks();
-       fc_els_size_checks();
-#endif /* DEBUG_ASSERTS */
-
        lp = sa_malloc(sizeof(*lp));
        if (!lp)
                return NULL;
@@ -951,7 +928,6 @@ static void fc_local_port_set_fid_int(struct fc_local_port 
*lp, fc_fid_t fid)
        struct fc_local_port *found;
        struct fc_virt_fab *vf;
 
-       ASSERT(fc_local_port_locked(lp));
        vf = lp->fl_vf;
        if (lp->fl_fid != fid) {
                if (fc_local_port_debug) {
@@ -962,10 +938,9 @@ static void fc_local_port_set_fid_int(struct fc_local_port 
*lp, fc_fid_t fid)
                if (lp->fl_fid) {
                        found = sa_hash_lookup_delete(vf->vf_lport_by_fid,
                                                      &lp->fl_fid);
-                       ASSERT(found);
-                       ASSERT(found == lp);
+                       WARN_ON(found != lp);
                }
-               ASSERT(!sa_hash_lookup(vf->vf_lport_by_fid, &fid));
+               WARN_ON(sa_hash_lookup(vf->vf_lport_by_fid, &fid));
                lp->fl_fid = fid;
                if (fid != 0)
                        sa_hash_insert(vf->vf_lport_by_fid, &fid, lp);
@@ -1041,8 +1016,6 @@ static void fc_local_port_delete(struct fc_local_port *lp)
        struct fc_local_port *found;
        struct fc_virt_fab *vf;
 
-       ASSERT(!atomic_read(&lp->fl_refcnt));
-
        if (fc_local_port_debug)
                OFC_DBG("local port %6x delete", lp->fl_fid);
        vf = lp->fl_vf;
@@ -1050,12 +1023,11 @@ static void fc_local_port_delete(struct fc_local_port 
*lp)
        fc_virt_fab_lock(vf);
        if (lp->fl_fid) {
                found = sa_hash_lookup_delete(vf->vf_lport_by_fid, &lp->fl_fid);
-               ASSERT(found = lp);
+               WARN_ON(found != lp);
                lp->fl_fid = 0;
        }
        list_del(&lp->fl_list);
        fc_virt_fab_unlock(vf);
-       ASSERT(!lp->fl_dns_sess);       /* otherwise it holds the local port */
        sa_event_list_free(lp->fl_events);
        sa_free(lp);
 }
@@ -1063,12 +1035,10 @@ static void fc_local_port_delete(struct fc_local_port 
*lp)
 void fc_local_port_hold(struct fc_local_port *lp)
 {
        atomic_inc(&lp->fl_refcnt);
-       ASSERT(atomic_read(&lp->fl_refcnt) > 0);
 }
 
 void fc_local_port_release(struct fc_local_port *lp)
 {
-       ASSERT(atomic_read(&lp->fl_refcnt) > 0);
        if (atomic_dec_and_test(&lp->fl_refcnt))
                fc_local_port_delete(lp);
 }
@@ -1154,9 +1124,6 @@ static void fc_local_port_enter_init(struct fc_local_port 
*lp)
        struct fc_sess *sess;
        u_int mfs;
 
-       ASSERT(atomic_read(&lp->fl_refcnt) > 0);
-       ASSERT(fc_local_port_locked(lp));
-
        if (fc_local_port_debug)
                OFC_DBG("new state init");
        sess = lp->fl_dns_sess;
@@ -1374,13 +1341,12 @@ static void fc_local_port_echo_req(struct fc_seq *sp, 
struct fc_frame *in_fp,
 
        len = in_fp->fr_len - sizeof(struct fc_frame_header);
        pp = fc_frame_payload_get(in_fp, len);
-       ASSERT(pp);
+
        if (len < sizeof(net32_t))
                len = sizeof(net32_t);
        fp = fc_frame_alloc(lp->fl_port, len);
        if (fp) {
                dp = fc_frame_payload_get(fp, len);
-               ASSERT(dp);
                memcpy(dp, pp, len);
                net32_put(dp, ELS_LS_ACC << 24);
                fc_seq_send_last(fc_seq_start_next(sp), fp,
@@ -1422,7 +1388,6 @@ static void fc_local_port_rnid_req(struct fc_seq *sp, 
struct fc_frame *in_fp,
                fp = fc_frame_alloc(lp->fl_port, len);
                if (fp) {
                        rp = fc_frame_payload_get(fp, len);
-                       ASSERT(rp);
                        memset(rp, 0, len);
                        rp->rnid.rnid_cmd = ELS_LS_ACC;
                        rp->rnid.rnid_fmt = fmt;
@@ -1715,7 +1680,7 @@ static void fc_local_port_gid_pn_resp(struct fc_seq *sp, 
struct fc_frame *fp,
 
        fc_local_port_lock(lp);
 
-       ASSERT(rp->dns_lookup == arg);
+       WARN_ON(rp->dns_lookup != arg);
        rp->dns_lookup = NULL;
        rp->dns_lookup_count = 0;
        sa_free(lp_handle);
@@ -1786,7 +1751,6 @@ static int fc_local_port_send_gid_pn(struct 
fc_local_port_handle *lp_handle)
                return ENOMEM;
 
        req = fc_frame_payload_get(fp, sizeof(*req));
-       ASSERT(req);
        fc_local_port_fill_dns_hdr(lp, &req->ct, FC_NS_GID_PN, sizeof(req->pn));
        net64_put(&req->pn.fn_wwpn, rp->rp_port_wwn);
 
@@ -1820,7 +1784,7 @@ static void fc_local_port_gid_pn_error(enum fc_event 
event, void *arg)
                }
        }
 
-       ASSERT(rp->dns_lookup == arg);
+       WARN_ON(rp->dns_lookup != arg);
        rp->dns_lookup = NULL;
        sa_free(lp_handle);
 
diff --git a/drivers/scsi/ofc/libfc/fc_local_port_impl.h 
b/drivers/scsi/ofc/libfc/fc_local_port_impl.h
index d5825f1..4b5f342 100644
--- a/drivers/scsi/ofc/libfc/fc_local_port_impl.h
+++ b/drivers/scsi/ofc/libfc/fc_local_port_impl.h
@@ -138,7 +138,6 @@ static inline void fc_local_port_unlock(struct 
fc_local_port *lp)
 static inline void fc_local_port_unlock_send(struct fc_local_port *lp)
 {
        fc_local_port_unlock(lp);
-       ASSERT(atomic_read(&lp->fl_refcnt) != 0);
        sa_event_send_deferred(lp->fl_events);
 }
 
diff --git a/drivers/scsi/ofc/libfc/fc_port.c b/drivers/scsi/ofc/libfc/fc_port.c
index 191ab4f..c225fed 100644
--- a/drivers/scsi/ofc/libfc/fc_port.c
+++ b/drivers/scsi/ofc/libfc/fc_port.c
@@ -18,7 +18,6 @@
  */
 
 #include "sa_kernel.h"
-#include "sa_assert.h"
 #include "sa_error_inject.h"
 #include "ofc_dbg.h"
 #include "sa_event.h"
@@ -88,7 +87,7 @@ void fc_port_free(struct fc_port *port)
 void fc_port_set_max_frame_size(struct fc_port *port, u_int mfs)
 {
        mfs &= ~3;
-       ASSERT((size_t) mfs >= FC_MIN_MAX_FRAME);
+       WARN_ON((size_t) mfs < FC_MIN_MAX_FRAME);
        if (mfs > FC_MAX_FRAME)
                mfs = FC_MAX_FRAME;
        port->np_max_frame = mfs;
@@ -157,7 +156,7 @@ void fc_port_close_ingress(struct fc_port *port)
  */
 int fc_port_egress(struct fc_port *port, struct fc_frame *fp)
 {
-       ASSERT(port->np_egress);
+       WARN_ON(!port->np_egress);
        if (SA_ERROR_INJECT) {
                fc_frame_free(fp);
                return EBUSY;
@@ -170,8 +169,8 @@ int fc_port_egress(struct fc_port *port, struct fc_frame 
*fp)
  */
 void fc_port_ingress(struct fc_port *port, struct fc_frame *fp)
 {
-       ASSERT(port != NULL);
-       ASSERT(port->np_ingress != NULL);
+       WARN_ON(!port);
+       WARN_ON(!(port->np_ingress));
        (*port->np_ingress) (port->np_ingress_arg, fp);
 }
 
diff --git a/drivers/scsi/ofc/libfc/fc_print.c 
b/drivers/scsi/ofc/libfc/fc_print.c
index ae6fa1e..2b51a5b 100644
--- a/drivers/scsi/ofc/libfc/fc_print.c
+++ b/drivers/scsi/ofc/libfc/fc_print.c
@@ -22,7 +22,6 @@
  */
 
 #include "sa_kernel.h"
-#include "sa_assert.h"
 #include "net_types.h"
 #include "ofc_dbg.h"
 #include "fc_fs.h"
diff --git a/drivers/scsi/ofc/libfc/fc_remote_port.c 
b/drivers/scsi/ofc/libfc/fc_remote_port.c
index 9a5e62a..b0061f5 100644
--- a/drivers/scsi/ofc/libfc/fc_remote_port.c
+++ b/drivers/scsi/ofc/libfc/fc_remote_port.c
@@ -26,7 +26,6 @@
 
 #include "sa_kernel.h"
 #undef LIST_HEAD
-#include "sa_assert.h"
 #include "sa_event.h"
 #include "sa_hash.h"
 #include "ofc_dbg.h"
@@ -89,7 +88,7 @@ int fc_remote_port_table_create(struct fc_virt_fab *vp)
 
 void fc_remote_port_table_destroy(struct fc_virt_fab *vp)
 {
-       ASSERT(list_empty(&vp->vf_remote_ports));
+       WARN_ON(!list_empty(&vp->vf_remote_ports));
        INIT_LIST_HEAD(&vp->vf_remote_ports);
        if (vp->vf_rport_by_fid)
                sa_hash_destroy(vp->vf_rport_by_fid);
@@ -226,8 +225,8 @@ void fc_remote_port_set_name(struct fc_remote_port *rp, 
fc_wwn_t wwpn,
        if (old_name) {
                found_rp = sa_hash_lookup_delete(vp->vf_rport_by_wwpn,
                                                 &old_name);
-               ASSERT(found_rp);
-               ASSERT(found_rp == rp);
+               WARN_ON(!found_rp);
+               WARN_ON(found_rp != rp);
        }
 #endif /* FC_REMOTE_PORT_BY_WWPN */
        rp->rp_node_wwn = wwnn;
@@ -253,8 +252,8 @@ void fc_remote_port_set_fid(struct fc_remote_port *rp, 
fc_fid_t fid)
                if (rp->rp_fid != 0) {
                        found_rp = sa_hash_lookup_delete(vp->vf_rport_by_fid,
                                                         &rp->rp_fid);
-                       ASSERT(found_rp);
-                       ASSERT(found_rp == rp);
+                       WARN_ON(!found_rp);
+                       WARN_ON(found_rp != rp);
                }
                rp->rp_fid = fid;
                if (fid)
@@ -273,15 +272,15 @@ static void fc_remote_port_delete(struct fc_remote_port 
*rp)
        if (rp->rp_fid != 0) {
                found = sa_hash_lookup_delete(rp->rp_vf->vf_rport_by_fid,
                                              &rp->rp_fid);
-               ASSERT(found);
-               ASSERT(found == rp);
+               WARN_ON(!found);
+               WARN_ON(found != rp);
        }
 #ifdef FC_REMOTE_PORT_BY_WWPN
        if (rp->rp_port_wwn) {
                found = sa_hash_lookup_delete(rp->rp_vf->vf_rport_by_wwpn,
                                              &rp->rp_port_wwn);
-               ASSERT(found);
-               ASSERT(found == rp);
+               WARN_ON(!found);
+               WARN_ON(found != rp);
        }
 #endif /* FC_REMOTE_PORT_BY_WWPN */
        list_del(&rp->rp_list);
@@ -293,12 +292,10 @@ static void fc_remote_port_delete(struct fc_remote_port 
*rp)
 void fc_remote_port_hold(struct fc_remote_port *rp)
 {
        atomic_inc(&rp->rp_refcnt);
-       ASSERT(atomic_read(&rp->rp_refcnt) > 0);
 }
 
 void fc_remote_port_release(struct fc_remote_port *rp)
 {
-       ASSERT(atomic_read(&rp->rp_refcnt) > 0);
        if (atomic_dec_and_test(&rp->rp_refcnt))
                fc_remote_port_delete(rp);
 }
diff --git a/drivers/scsi/ofc/libfc/fc_sess.c b/drivers/scsi/ofc/libfc/fc_sess.c
index ee08c97..c218c70 100644
--- a/drivers/scsi/ofc/libfc/fc_sess.c
+++ b/drivers/scsi/ofc/libfc/fc_sess.c
@@ -28,7 +28,6 @@
 #undef LIST_HEAD
 #include "net_types.h"
 
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "sa_timer.h"
 #include "sa_event.h"
@@ -126,8 +125,6 @@ static inline void fc_sess_unlock_send(struct fc_sess *sess)
        struct fc_local_port *lp;
        enum fc_sess_state state = sess->fs_state;
 
-       ASSERT(atomic_read(&sess->fs_refcnt) != 0);
-
        /*
         * If the session is in the INIT or ERROR state and the session
         * has been started, meaning there's an internal reference, and that's
@@ -166,7 +163,6 @@ static inline void fc_sess_unlock_send(struct fc_sess *sess)
 
 static void fc_sess_state_enter(struct fc_sess *sess, enum fc_sess_state new)
 {
-       ASSERT(fc_sess_locked(sess));
        if (sess->fs_state != new)
                sess->fs_retries = 0;
        sess->fs_state = new;
@@ -272,7 +268,7 @@ struct fc_sess *fc_sess_create(struct fc_local_port *lp,
        struct fc_virt_fab *vp;
        u_int64_t key;
 
-       ASSERT(lp->fl_vf == rp->rp_vf);
+       WARN_ON(lp->fl_vf != rp->rp_vf);
 
        sess = sa_malloc(sizeof(*sess));
        if (sess) {
@@ -358,9 +354,9 @@ static void fc_sess_delete(struct fc_sess *sess, void *arg)
 
        if (fc_sess_debug)
                OFC_DBG("sess to %6x delete", sess->fs_remote_fid);
-       ASSERT(sess);
-       ASSERT(sess->fs_local_port);
-       ASSERT(sess->fs_remote_port);
+       WARN_ON(!sess);
+       WARN_ON(!(sess->fs_local_port));
+       WARN_ON(!(sess->fs_remote_port));
        lp = sess->fs_local_port;
        rp = sess->fs_remote_port;
        vp = lp->fl_vf;
@@ -369,8 +365,8 @@ static void fc_sess_delete(struct fc_sess *sess, void *arg)
 
        fc_virt_fab_lock(vp);
        found = sa_hash_lookup_delete(vp->vf_sess_by_fids, &key);
-       ASSERT(found);
-       ASSERT(found == sess);
+       WARN_ON(!found);
+       WARN_ON(found != sess);
        list_del(&sess->fs_list);                       /* under vf_lock */
        fc_virt_fab_unlock(vp);
 
@@ -384,12 +380,10 @@ static void fc_sess_delete(struct fc_sess *sess, void 
*arg)
 void fc_sess_hold(struct fc_sess *sess)
 {
        atomic_inc(&sess->fs_refcnt);
-       ASSERT(atomic_read(&sess->fs_refcnt) != 0);
 }
 
 void fc_sess_release(struct fc_sess *sess)
 {
-       ASSERT(atomic_read(&sess->fs_refcnt) > 0);
        if (atomic_dec_and_test(&sess->fs_refcnt))
                fc_sess_delete(sess, NULL);
 }
@@ -458,8 +452,8 @@ void fc_sess_reset(struct fc_sess *sess)
                key = fc_sess_key(sess->fs_local_fid, sess->fs_remote_fid);
                vp = lp->fl_vf;
                found = sa_hash_lookup_delete(vp->vf_sess_by_fids, &key);
-               ASSERT(found);
-               ASSERT(found == sess);
+               WARN_ON(!found);
+               WARN_ON(found != sess);
                sess->fs_local_fid = lp->fl_fid;
                key = fc_sess_key(sess->fs_local_fid, sess->fs_remote_fid);
                sa_hash_insert(vp->vf_sess_by_fids, &key, sess);
@@ -544,8 +538,8 @@ int fc_sess_send_req(struct fc_sess *sess, struct fc_frame 
*fp,
        int rc;
 
        fh = fc_frame_header_get(fp);
-       ASSERT(fh);
-       ASSERT(fh->fh_r_ctl != 0);      /* caller must use fc_frame_setup() */
+       WARN_ON(!fh);
+       WARN_ON(fh->fh_r_ctl == 0); /* caller must use fc_frame_setup() */
 
        sp = fc_sess_seq_alloc(sess, recv, errh, arg);
        if (sp) {
@@ -585,6 +579,7 @@ static void fc_sess_enter_started(struct fc_sess *sess)
         * Otherwise the local port will be logged on by fc_sess_unlock().
         */
        fc_sess_state_enter(sess, SESS_ST_STARTED);
+
        lp = sess->fs_local_port;
        if (sess == lp->fl_dns_sess || fc_local_port_test_ready(lp))
                fc_sess_enter_plogi(sess);
@@ -655,8 +650,6 @@ static void fc_sess_retry(struct fc_sess *sess)
 {
        struct fc_local_port *lp;
 
-       ASSERT(fc_sess_locked(sess));
-
        lp = sess->fs_local_port;
 
        if (sess->fs_retries < lp->fl_retry_limit) {
@@ -749,7 +742,6 @@ static void fc_sess_enter_plogi(struct fc_sess *sess)
        struct fc_frame *fp;
        struct fc_els_flogi *rp;
 
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_PLOGI);
        sess->fs_max_payload = sess->fs_local_port->fl_max_payload;
        fp = fc_frame_alloc(sess->fs_local_port->fl_port, sizeof(*rp));
@@ -758,7 +750,7 @@ static void fc_sess_enter_plogi(struct fc_sess *sess)
                return;
        }
        rp = fc_frame_payload_get(fp, sizeof(*rp));
-       ASSERT(rp);
+       WARN_ON(!rp);
        fc_local_port_flogi_fill(sess->fs_local_port, rp, ELS_PLOGI);
        sess->fs_e_d_tov = sess->fs_local_port->fl_e_d_tov;
        fc_frame_setup(fp, FC_RCTL_ELS_REQ, FC_TYPE_ELS);
@@ -824,7 +816,6 @@ static void fc_sess_enter_prli(struct fc_sess *sess)
        } *pp;
        struct fc_frame *fp;
 
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_PRLI);
 
        /*
@@ -842,7 +833,7 @@ static void fc_sess_enter_prli(struct fc_sess *sess)
                return;
        }
        pp = fc_frame_payload_get(fp, sizeof(*pp));
-       ASSERT(pp);
+       WARN_ON(!pp);
        memset(pp, 0, sizeof(*pp));
        pp->prli.prli_cmd = ELS_PRLI;
        pp->prli.prli_spp_len = sizeof(struct fc_els_spp);
@@ -902,7 +893,6 @@ static void fc_sess_enter_rtv(struct fc_sess *sess)
        struct fc_els_rtv *rtv;
        struct fc_frame *fp;
 
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_RTV);
 
        fp = fc_frame_alloc(sess->fs_local_port->fl_port, sizeof(*rtv));
@@ -911,7 +901,7 @@ static void fc_sess_enter_rtv(struct fc_sess *sess)
                return;
        }
        rtv = fc_frame_payload_get(fp, sizeof(*rtv));
-       ASSERT(rtv);
+       WARN_ON(!rtv);
        memset(rtv, 0, sizeof(*rtv));
        rtv->rtv_cmd = ELS_RTV;
        fc_frame_setup(fp, FC_RCTL_ELS_REQ, FC_TYPE_ELS);
@@ -943,7 +933,6 @@ void fc_sess_event_deq(struct fc_sess *sess, 
sa_event_handler_t handler,
 
 static void fc_sess_enter_ready(struct fc_sess *sess)
 {
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_READY);
        sa_event_call_cancel(sess->fs_events, FC_EV_CLOSED);
        sa_event_call_cancel(sess->fs_events, FC_EV_RJT);
@@ -952,7 +941,6 @@ static void fc_sess_enter_ready(struct fc_sess *sess)
 
 static void fc_sess_enter_init(struct fc_sess *sess)
 {
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_INIT);
        sa_event_call_cancel(sess->fs_events, FC_EV_READY);
        sa_event_call_cancel(sess->fs_events, FC_EV_RJT);
@@ -961,7 +949,6 @@ static void fc_sess_enter_init(struct fc_sess *sess)
 
 static void fc_sess_enter_error(struct fc_sess *sess)
 {
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_ERROR);
        sa_event_call_cancel(sess->fs_events, FC_EV_READY);
        sa_event_call_cancel(sess->fs_events, FC_EV_CLOSED);
@@ -974,8 +961,8 @@ static void fc_sess_enter_logo(struct fc_sess *sess)
        struct fc_els_logo *logo;
        struct fc_local_port *lp;
 
-       ASSERT(fc_sess_locked(sess));
        fc_sess_state_enter(sess, SESS_ST_LOGO);
+
        lp = sess->fs_local_port;
        fp = fc_frame_alloc(lp->fl_port, sizeof(*logo));
        if (!fp) {
@@ -983,7 +970,6 @@ static void fc_sess_enter_logo(struct fc_sess *sess)
                return;
        }
        logo = fc_frame_payload_get(fp, sizeof(*logo));
-       ASSERT(logo);
        memset(logo, 0, sizeof(*logo));
        logo->fl_cmd = ELS_LOGO;
        net24_put(&logo->fl_n_port_id, lp->fl_fid);
@@ -1077,7 +1063,6 @@ void fc_sess_recv_req(struct fc_seq *sp, struct fc_frame 
*fp, void *sess_arg)
        u_char op;
 
        fh = fc_frame_header_get(fp);
-       ASSERT(fp);
        op = fc_frame_payload_op(fp);
 
        if (fh->fh_r_ctl == FC_RCTL_ELS_REQ && fh->fh_type == FC_TYPE_ELS) {
@@ -1125,11 +1110,11 @@ static void fc_sess_recv_plogi_req(struct fc_sess *sess,
        pl = fc_frame_payload_get(fp, sizeof(*pl));
        if (!pl) {
                OFC_DBG("incoming PLOGI from %x too short", sid);
+               WARN_ON(1);
                /* XXX TBD: send reject? */
                fc_frame_free(fp);
                return;
        }
-       ASSERT(pl);             /* checked above */
        wwpn = net64_get(&pl->fl_wwpn);
        wwnn = net64_get(&pl->fl_wwnn);
        fc_sess_lock(sess);
@@ -1207,7 +1192,7 @@ static void fc_sess_recv_plogi_req(struct fc_sess *sess,
                fc_frame_free(fp);
        } else {
                sp = fc_seq_start_next(sp);
-               ASSERT(sp);
+               WARN_ON(!sp);
                fc_frame_free(rx_fp);
                fc_remote_port_set_name(rp, wwpn, wwnn);
 
@@ -1217,7 +1202,7 @@ static void fc_sess_recv_plogi_req(struct fc_sess *sess,
                sess->fs_max_payload = (uint16_t)
                    fc_local_port_get_payload_size(pl, lp->fl_max_payload);
                pl = fc_frame_payload_get(fp, sizeof(*pl));
-               ASSERT(pl);
+               WARN_ON(!pl);
                fc_local_port_flogi_fill(lp, pl, ELS_LS_ACC);
 
                /*
@@ -1297,9 +1282,9 @@ static void fc_sess_recv_prli_req(struct fc_sess *sess,
                fc_seq_ls_rjt(sp, reason, explan);
        } else {
                sp = fc_seq_start_next(sp);
-               ASSERT(sp);
+               WARN_ON(!sp);
                pp = fc_frame_payload_get(fp, len);
-               ASSERT(pp);
+               WARN_ON(!pp);
                memset(pp, 0, len);
                pp->prli.prli_cmd = ELS_LS_ACC;
                pp->prli.prli_spp_len = plen;
@@ -1324,7 +1309,7 @@ static void fc_sess_recv_prli_req(struct fc_sess *sess,
                                break;
                        case FC_TYPE_FCP:
                                rp = sess->fs_remote_port;
-                               ASSERT(rp);
+                               WARN_ON(!rp);
                                rp->rp_fcp_parm = net32_get(&rspp->spp_params);
                                net32_put(&spp->spp_params,
                                          rp->rp_local_fcp_parm);
@@ -1426,9 +1411,9 @@ struct fc_sess *fc_sess_lookup_create(struct 
fc_local_port *lp,
        struct fc_sess *sess;
        u_int64_t key;
 
-       ASSERT(fid != 0);
-       ASSERT(lp);
-       ASSERT(lp->fl_vf);
+       WARN_ON(fid == 0);
+       WARN_ON(!lp);
+       WARN_ON(!(lp->fl_vf));
 
        vp = lp->fl_vf;
 
diff --git a/drivers/scsi/ofc/libfc/fc_virt_fab.c 
b/drivers/scsi/ofc/libfc/fc_virt_fab.c
index ff87244..dd84628 100644
--- a/drivers/scsi/ofc/libfc/fc_virt_fab.c
+++ b/drivers/scsi/ofc/libfc/fc_virt_fab.c
@@ -26,7 +26,6 @@
 
 #include "sa_kernel.h"
 #undef LIST_HEAD
-#include "sa_assert.h"
 #include "sa_event.h"
 #include "net_types.h"
 
diff --git a/drivers/scsi/ofc/libfc/fcs_attr.c 
b/drivers/scsi/ofc/libfc/fcs_attr.c
index 5b355de..cc6ad1f 100644
--- a/drivers/scsi/ofc/libfc/fcs_attr.c
+++ b/drivers/scsi/ofc/libfc/fcs_attr.c
@@ -35,7 +35,6 @@
 #include <scsi/scsi_tcq.h>
 
 #include "sa_kernel.h"
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "sa_event.h"
 #include "net_types.h"
diff --git a/drivers/scsi/ofc/libfc/fcs_cmd.c b/drivers/scsi/ofc/libfc/fcs_cmd.c
index 5564f82..fb066bd 100644
--- a/drivers/scsi/ofc/libfc/fcs_cmd.c
+++ b/drivers/scsi/ofc/libfc/fcs_cmd.c
@@ -18,7 +18,6 @@
  */
 
 #include "sa_kernel.h"
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "fc_types.h"
 #include "fc_event.h"
@@ -90,7 +89,7 @@ int fcs_cmd_send(struct fcs_state *sp, struct fc_frame *fp,
        int rc;
 
        might_sleep();
-       ASSERT(!rfp->fr_sg_len);
+       WARN_ON(rfp->fr_sg_len);
        lp = sp->fs_local_port;
        fh = fc_frame_header_get(fp);
 
@@ -198,8 +197,8 @@ static void fcs_cmd_recv(struct fc_seq *seq, struct 
fc_frame *fp, void *arg)
        uint32_t len;
        u_int error = 0;        /* XXX for debugging */
 
-       ASSERT(!fp->fr_sg_len);
-       ASSERT(!(fp->fr_flags & FCPHF_CRC_UNCHECKED));
+       WARN_ON(fp->fr_sg_len);
+       WARN_ON((fp->fr_flags & FCPHF_CRC_UNCHECKED) == FCPHF_CRC_UNCHECKED);
 
        fh = fc_frame_header_get(fp);
        if (fh->fh_type != cp->fcc_req_hdr.fh_type)
diff --git a/drivers/scsi/ofc/libfc/fcs_event.c 
b/drivers/scsi/ofc/libfc/fcs_event.c
index d6ab9d9..5d5cfa6 100644
--- a/drivers/scsi/ofc/libfc/fcs_event.c
+++ b/drivers/scsi/ofc/libfc/fcs_event.c
@@ -32,7 +32,7 @@
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_transport.h>
 #include <scsi/scsi_transport_fc.h>
-#include "sa_assert.h"
+
 #include "ofc_dbg.h"
 #include "fc_types.h"
 #include "fc_frame.h"
@@ -87,7 +87,6 @@ static struct fcs_ev_elem *fcs_ev_peek(struct fcs_event_queue 
*qp)
 {
        struct fcs_ev_elem *fp = NULL;
 
-       ASSERT(spin_is_locked(&qp->fev_lock));
        if (!list_empty(&qp->fev_list))
                fp = list_entry(qp->fev_list.next, struct fcs_ev_elem, ev_list);
        return fp;
diff --git a/drivers/scsi/ofc/libfc/fcs_state.c 
b/drivers/scsi/ofc/libfc/fcs_state.c
index 794f440..78dd61a 100644
--- a/drivers/scsi/ofc/libfc/fcs_state.c
+++ b/drivers/scsi/ofc/libfc/fcs_state.c
@@ -18,7 +18,6 @@
  */
 
 #include "sa_kernel.h"
-#include "sa_assert.h"
 #include "ofc_dbg.h"
 #include "fc_types.h"
 #include "fc_frame.h"
@@ -79,8 +78,8 @@ struct fcs_state *fcs_create(struct fcs_create_args *ap)
        struct fc_port *outer_port;
        size_t mfs;
 
-       ASSERT(ap->fca_disc_done);
-       ASSERT(ap->fca_port);
+       WARN_ON(!ap->fca_disc_done);
+       WARN_ON(!ap->fca_port);
 
        sp = sa_malloc(sizeof(*sp));
        if (!sp)
@@ -145,7 +144,7 @@ void fcs_destroy(struct fcs_state *sp)
 {
        struct fc_port *port;
 
-       ASSERT(sp->fs_args.fca_port);
+       WARN_ON(!sp->fs_args.fca_port);
 
        sp->fs_args.fca_disc_done = (void (*)(void *))fcs_nop;
        sp->fs_args.fca_remote_port_state_change =
@@ -196,7 +195,6 @@ static void fcs_recv_req(void *sp_arg, struct fc_frame *fp)
        struct fc_frame_header *fh;
 
        fh = fc_frame_header_get(fp);
-       ASSERT(fh);
 
        if (fh->fh_type == FC_TYPE_FCP && sp->fs_args.fca_fcp_recv) {
                (*sp->fs_args.fca_fcp_recv) (fp->fr_seq,
@@ -215,8 +213,8 @@ int fcs_local_port_set(struct fcs_state *sp, fc_wwn_t wwnn, 
fc_wwn_t wwpn)
 {
        struct fc_local_port *lp;
 
-       ASSERT(sp->fs_inner_port);
-       ASSERT(!sp->fs_local_port);
+       WARN_ON(!sp->fs_inner_port);
+       WARN_ON(sp->fs_local_port);
        lp = fc_local_port_create(sp->fs_vf, sp->fs_inner_port, wwpn, wwnn,
                                  sp->fs_args.fca_e_d_tov,
                                  sp->fs_args.fca_plogi_retries);
@@ -236,7 +234,7 @@ int fcs_local_port_set(struct fcs_state *sp, fc_wwn_t wwnn, 
fc_wwn_t wwpn)
  */
 void fcs_start(struct fcs_state *sp)
 {
-       ASSERT(sp->fs_local_port);
+       WARN_ON(!sp->fs_local_port);
        fc_local_port_logon(sp->fs_local_port, fcs_local_port_event, sp);
 }
 
@@ -245,7 +243,7 @@ void fcs_start(struct fcs_state *sp)
  */
 void fcs_stop(struct fcs_state *sp)
 {
-       ASSERT(sp->fs_local_port);
+       WARN_ON(!sp->fs_local_port);
        fc_local_port_logoff(sp->fs_local_port);
 }
 
@@ -259,7 +257,7 @@ void fcs_reset(struct fcs_state *sp)
 {
        struct fc_local_port *lp;
 
-       ASSERT(sp->fs_local_port);
+       WARN_ON(!sp->fs_local_port);
        lp = sp->fs_local_port;
        sp->fs_disc_done = 0;
        fc_local_port_reset(lp);
@@ -336,10 +334,10 @@ static void fcs_add_remote(void *fcs_arg, struct 
fc_remote_port *rp,
        struct fc_sess *sess;
 
        lp = sp->fs_local_port;
-       ASSERT(lp);
+       WARN_ON(!lp);
 
        if (event == FC_EV_CLOSED) {
-               ASSERT(rp->rp_sess_ready == 0);
+               WARN_ON(rp->rp_sess_ready != 0);
                if (fcs_debug)
                        OFC_DBG("removing remote fid %x wwpn %llx ref %d",
                               rp->rp_fid, rp->rp_port_wwn,
@@ -386,7 +384,6 @@ static void fcs_sess_event(int event, void *rp_arg)
        void *arg;
 
        sp = rp->rp_fcs_priv;
-       ASSERT(sp);
        arg = sp->fs_args.fca_cb_arg;
 
        switch (event) {
@@ -441,7 +438,7 @@ static void fcs_port_event(int event, void *sp_arg)
                fcs_ev_add(sp, OFC_EV_LINK_UP, NULL, 0);
                break;
        }
-       ASSERT(sp->fs_inner_port);
+       WARN_ON(!sp->fs_inner_port);
        fc_port_send_event(sp->fs_inner_port, event);
 }
 

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to