Lines Matching refs:reply

753 lcs_get_reply(struct lcs_reply *reply)
755 refcount_inc(&reply->refcnt);
759 lcs_put_reply(struct lcs_reply *reply)
761 if (refcount_dec_and_test(&reply->refcnt))
762 kfree(reply);
768 struct lcs_reply *reply;
772 reply = kzalloc(sizeof(struct lcs_reply), GFP_ATOMIC);
773 if (!reply)
775 refcount_set(&reply->refcnt, 1);
776 reply->sequence_no = cmd->sequence_no;
777 reply->received = 0;
778 reply->rc = 0;
779 init_waitqueue_head(&reply->wait_q);
781 return reply;
791 struct lcs_reply *reply;
796 reply = list_entry(l, struct lcs_reply, list);
797 if (reply->sequence_no == cmd->sequence_no) {
798 lcs_get_reply(reply);
799 list_del_init(&reply->list);
800 if (reply->callback != NULL)
801 reply->callback(card, cmd);
802 reply->received = 1;
803 reply->rc = cmd->return_code;
804 wake_up(&reply->wait_q);
805 lcs_put_reply(reply);
818 struct lcs_reply *reply = from_timer(reply, t, timer);
823 spin_lock_irqsave(&reply->card->lock, flags);
825 &reply->card->lancmd_waiters,list) {
826 if (reply == list_reply) {
827 lcs_get_reply(reply);
828 list_del_init(&reply->list);
829 spin_unlock_irqrestore(&reply->card->lock, flags);
830 reply->received = 1;
831 reply->rc = -ETIME;
832 wake_up(&reply->wait_q);
833 lcs_put_reply(reply);
837 spin_unlock_irqrestore(&reply->card->lock, flags);
844 struct lcs_reply *reply;
853 reply = lcs_alloc_reply(cmd);
854 if (!reply)
856 reply->callback = reply_callback;
857 reply->card = card;
859 list_add_tail(&reply->list, &card->lancmd_waiters);
866 timer_setup(&reply->timer, lcs_lancmd_timeout, 0);
867 mod_timer(&reply->timer, jiffies + HZ * card->lancmd_timeout);
868 wait_event(reply->wait_q, reply->received);
869 del_timer_sync(&reply->timer);
870 LCS_DBF_TEXT_(4, trace, "rc:%d",reply->rc);
871 rc = reply->rc;
872 lcs_put_reply(reply);