From: pjkirner Date: Thu, 22 Sep 2005 03:07:33 +0000 (+0000) Subject: * Additional checks for correct locking X-Git-Tag: v1_7_100~1^25~6^2~156 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=c655810a85b5164fb4326e7a5e87db3d1b93db69;p=fs%2Flustre-release.git * Additional checks for correct locking --- diff --git a/lnet/lnet/api-ni.c b/lnet/lnet/api-ni.c index 4d3e84c..d19de4f 100644 --- a/lnet/lnet/api-ni.c +++ b/lnet/lnet/api-ni.c @@ -765,6 +765,7 @@ lnet_shutdown_lndnis (void) islo = ni->ni_lnd->lnd_type == LOLND; LASSERT (!in_interrupt()); + LASSERT (!irqs_disabled ()); (ni->ni_lnd->lnd_shutdown)(ni); /* can't deref lnd anymore now; it might have unregistered diff --git a/lnet/lnet/lib-move.c b/lnet/lnet/lib-move.c index 0541498..fbd98c2 100644 --- a/lnet/lnet/lib-move.c +++ b/lnet/lnet/lib-move.c @@ -443,6 +443,7 @@ lnet_copy_kiov2kiov (unsigned int ndiov, lnet_kiov_t *diov, unsigned int doffset return; LASSERT (!in_interrupt ()); + LASSERT (!irqs_disabled ()); LASSERT (ndiov > 0); while (doffset > diov->kiov_len) { @@ -521,6 +522,7 @@ lnet_copy_kiov2iov (unsigned int niov, struct iovec *iov, unsigned int iovoffset return; LASSERT (!in_interrupt ()); + LASSERT (!irqs_disabled ()); LASSERT (niov > 0); while (iovoffset > iov->iov_len) { @@ -588,6 +590,7 @@ lnet_copy_iov2kiov (unsigned int nkiov, lnet_kiov_t *kiov, unsigned int kiovoffs return; LASSERT (!in_interrupt ()); + LASSERT (!irqs_disabled ()); LASSERT (nkiov > 0); while (kiovoffset > kiov->kiov_len) { @@ -700,7 +703,8 @@ lnet_ni_recv(lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed, lnet_kiov_t *kiov = NULL; int rc; - LASSERT (!in_interrupt()); + LASSERT (!in_interrupt()); + LASSERT (!irqs_disabled ()); LASSERT (mlen == 0 || msg != NULL); if (msg != NULL) { @@ -720,6 +724,7 @@ lnet_ni_recv(lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed, rc = (ni->ni_lnd->lnd_recv)(ni, private, msg, delayed, niov, iov, kiov, offset, mlen, rlen); + LASSERT(!irqs_disabled()); if (rc < 0) lnet_finalize(ni, msg, rc); } @@ -792,7 +797,8 @@ lnet_ni_send(lnet_ni_t *ni, lnet_msg_t *msg) int delayed = msg->msg_delayed; int rc; - LASSERT (!in_interrupt()); + LASSERT (!in_interrupt()); + LASSERT (!irqs_disabled ()); /* On GET, call lnet_ni_recv() right after the send. The recv gets * delayed until after the send to ensure the LND still has any RDMA @@ -809,6 +815,7 @@ lnet_ni_send(lnet_ni_t *ni, lnet_msg_t *msg) (msg->msg_txcredit && msg->msg_peertxcredit)); rc = (ni->ni_lnd->lnd_send)(ni, priv, msg); + LASSERT(!irqs_disabled()); if (rc < 0) lnet_finalize(ni, msg, rc); @@ -1682,8 +1689,9 @@ lnet_parse(lnet_ni_t *ni, lnet_hdr_t *hdr, lnet_nid_t from_nid, void *private) __u32 payload_length; __u32 type; - LASSERT (!in_interrupt()); - + LASSERT (!in_interrupt()); + LASSERT (!irqs_disabled ()); + type = le32_to_cpu(hdr->type); src_nid = le64_to_cpu(hdr->src_nid); dest_nid = le64_to_cpu(hdr->dest_nid);