cxgb4i.c (54499b2a926964b6b671fd03dcdc83c444b8f467) cxgb4i.c (ee7255ada313a6db99be47ce174b0bfb8295a041)
1/*
2 * cxgb4i.c: Chelsio T4 iSCSI driver.
3 *
4 * Copyright (c) 2010 Chelsio Communications, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation.

--- 814 unchanged lines hidden (view full) ---

823
824 pr_info_ipaddr("tid %u/%u, status %u.\n"
825 "csk 0x%p,%u,0x%lx. ", (&csk->saddr), (&csk->daddr),
826 atid, tid, status, csk, csk->state, csk->flags);
827
828 if (status == CPL_ERR_RTX_NEG_ADVICE)
829 goto rel_skb;
830
1/*
2 * cxgb4i.c: Chelsio T4 iSCSI driver.
3 *
4 * Copyright (c) 2010 Chelsio Communications, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation.

--- 814 unchanged lines hidden (view full) ---

823
824 pr_info_ipaddr("tid %u/%u, status %u.\n"
825 "csk 0x%p,%u,0x%lx. ", (&csk->saddr), (&csk->daddr),
826 atid, tid, status, csk, csk->state, csk->flags);
827
828 if (status == CPL_ERR_RTX_NEG_ADVICE)
829 goto rel_skb;
830
831 module_put(THIS_MODULE);
832
831 if (status && status != CPL_ERR_TCAM_FULL &&
832 status != CPL_ERR_CONN_EXIST &&
833 status != CPL_ERR_ARP_MISS)
834 cxgb4_remove_tid(lldi->tids, csk->port_id, GET_TID(rpl));
835
836 cxgbi_sock_get(csk);
837 spin_lock_bh(&csk->lock);
838

--- 92 unchanged lines hidden (view full) ---

931
932 if (req->status == CPL_ERR_RTX_NEG_ADVICE ||
933 req->status == CPL_ERR_PERSIST_NEG_ADVICE)
934 goto rel_skb;
935
936 cxgbi_sock_get(csk);
937 spin_lock_bh(&csk->lock);
938
833 if (status && status != CPL_ERR_TCAM_FULL &&
834 status != CPL_ERR_CONN_EXIST &&
835 status != CPL_ERR_ARP_MISS)
836 cxgb4_remove_tid(lldi->tids, csk->port_id, GET_TID(rpl));
837
838 cxgbi_sock_get(csk);
839 spin_lock_bh(&csk->lock);
840

--- 92 unchanged lines hidden (view full) ---

933
934 if (req->status == CPL_ERR_RTX_NEG_ADVICE ||
935 req->status == CPL_ERR_PERSIST_NEG_ADVICE)
936 goto rel_skb;
937
938 cxgbi_sock_get(csk);
939 spin_lock_bh(&csk->lock);
940
939 cxgbi_sock_clear_flag(csk, CTPF_ABORT_REQ_RCVD);
940
941 if (!cxgbi_sock_flag(csk, CTPF_TX_DATA_SENT)) {
942 send_tx_flowc_wr(csk);
943 cxgbi_sock_set_flag(csk, CTPF_TX_DATA_SENT);
941 if (!cxgbi_sock_flag(csk, CTPF_ABORT_REQ_RCVD)) {
942 cxgbi_sock_set_flag(csk, CTPF_ABORT_REQ_RCVD);
943 cxgbi_sock_set_state(csk, CTP_ABORTING);
944 goto done;
944 }
945
945 }
946
946 cxgbi_sock_set_flag(csk, CTPF_ABORT_REQ_RCVD);
947 cxgbi_sock_set_state(csk, CTP_ABORTING);
948
947 cxgbi_sock_clear_flag(csk, CTPF_ABORT_REQ_RCVD);
949 send_abort_rpl(csk, rst_status);
950
951 if (!cxgbi_sock_flag(csk, CTPF_ABORT_RPL_PENDING)) {
952 csk->err = abort_status_to_errno(csk, req->status, &rst_status);
953 cxgbi_sock_closed(csk);
954 }
948 send_abort_rpl(csk, rst_status);
949
950 if (!cxgbi_sock_flag(csk, CTPF_ABORT_RPL_PENDING)) {
951 csk->err = abort_status_to_errno(csk, req->status, &rst_status);
952 cxgbi_sock_closed(csk);
953 }
955
954done:
956 spin_unlock_bh(&csk->lock);
957 cxgbi_sock_put(csk);
958rel_skb:
959 __kfree_skb(skb);
960}
961
962static void do_abort_rpl_rss(struct cxgbi_device *cdev, struct sk_buff *skb)
963{

--- 840 unchanged lines hidden ---
955 spin_unlock_bh(&csk->lock);
956 cxgbi_sock_put(csk);
957rel_skb:
958 __kfree_skb(skb);
959}
960
961static void do_abort_rpl_rss(struct cxgbi_device *cdev, struct sk_buff *skb)
962{

--- 840 unchanged lines hidden ---