Showing error 555

User: Jiri Slaby
Error type: Calling function from invalid context
Error type description: Some function is called at inappropriate place like sleep inside critical sections or interrupt handlers
File location: drivers/infiniband/hw/amso1100/c2_qp.c
Line in file: 634
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:02 UTC


Source:

 604
 605        /*
 606         * Lock CQs here, so that CQ polling code can do QP lookup
 607         * without taking a lock.
 608         */
 609        c2_lock_cqs(send_cq, recv_cq);
 610        c2_free_qpn(c2dev, qp->qpn);
 611        c2_unlock_cqs(send_cq, recv_cq);
 612
 613        /*
 614         * Destory qp in the rnic...
 615         */
 616        destroy_qp(c2dev, qp);
 617
 618        /*
 619         * Mark any unreaped CQEs as null and void.
 620         */
 621        c2_cq_clean(c2dev, qp, send_cq->cqn);
 622        if (send_cq != recv_cq)
 623                c2_cq_clean(c2dev, qp, recv_cq->cqn);
 624        /*
 625         * Unmap the MQs and return the shared pointers
 626         * to the message pool.
 627         */
 628        iounmap(qp->sq_mq.peer);
 629        iounmap(qp->rq_mq.peer);
 630        c2_free_mqsp(qp->sq_mq.shared);
 631        c2_free_mqsp(qp->rq_mq.shared);
 632
 633        atomic_dec(&qp->refcount);
 634        wait_event(qp->wait, !atomic_read(&qp->refcount));
 635}
 636
 637/*
 638 * Function: move_sgl
 639 *
 640 * Description:
 641 * Move an SGL from the user's work request struct into a CCIL Work Request
 642 * message, swapping to WR byte order and ensure the total length doesn't
 643 * overflow.
 644 *
Show full sources