summaryrefslogtreecommitdiff
path: root/drivers/scsi/cxgb3i/cxgb3i_pdu.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-05-02 16:36:34 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-05-02 16:36:34 -0700
commit61bd1e858db743af64f6e363c526f7e433d12e0c (patch)
treea9213c472c1458e9e7686f9d9fa1c4ed1362e3f3 /drivers/scsi/cxgb3i/cxgb3i_pdu.c
parent8c0c3f7ff0daa119f0bb109148f6f0e39573b429 (diff)
parente9da4d7f731dafc2b93ce7b31aa09c4d935ef978 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (53 commits) [SCSI] libosd: OSD2r05: on-the-wire changes for latest OSD2 revision 5. [SCSI] libosd: OSD2r05: OSD_CRYPTO_KEYID_SIZE will grow 20 => 32 bytes [SCSI] libosd: OSD2r05: Prepare for rev5 attribute list changes [SCSI] libosd: fix potential ERR_PTR dereference in osd_initiator.c [SCSI] mpt2sas : bump driver version to 01.100.02.00 [SCSI] mpt2sas: fix hotplug event processing [SCSI] mpt2sas : release diagnotic buffers prior host reset [SCSI] mpt2sas : Broadcast Primative AEN bug fix [SCSI] mpt2sas : Identify Dell series-7 adapters at driver load time [SCSI] mpt2sas : driver name needs to be in the MPT2IOCINFO ioctl [SCSI] mpt2sas : running out of message frames [SCSI] mpt2sas : fix oops when firmware sends large sense buffer size [SCSI] mpt2sas : the sanity check in base_interrupt needs to be on dword boundary [SCSI] mpt2sas : unique ioctl magic number [SCSI] fix sign extension with 1.5TB usb-storage LBD=y [SCSI] ipr: Fix sleeping function called with interrupts disabled [SCSI] fcoe: fip: add multicast filter to receive FIP advertisements. [SCSI] libfc: Fix compilation warnings with allmodconfig [SCSI] fcoe: fix spelling typos and bad comments [SCSI] fcoe: don't export functions that are internal to fcoe ...
Diffstat (limited to 'drivers/scsi/cxgb3i/cxgb3i_pdu.c')
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_pdu.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/scsi/cxgb3i/cxgb3i_pdu.c b/drivers/scsi/cxgb3i/cxgb3i_pdu.c
index 7eebc9a7cb35..709105071177 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_pdu.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_pdu.c
@@ -400,17 +400,18 @@ int cxgb3i_conn_xmit_pdu(struct iscsi_task *task)
return 0;
}
- if (err < 0 && err != -EAGAIN) {
- kfree_skb(skb);
- cxgb3i_tx_debug("itt 0x%x, skb 0x%p, len %u/%u, xmit err %d.\n",
- task->itt, skb, skb->len, skb->data_len, err);
- iscsi_conn_printk(KERN_ERR, task->conn, "xmit err %d.\n", err);
- iscsi_conn_failure(task->conn, ISCSI_ERR_XMIT_FAILED);
+ if (err == -EAGAIN || err == -ENOBUFS) {
+ /* reset skb to send when we are called again */
+ tdata->skb = skb;
return err;
}
- /* reset skb to send when we are called again */
- tdata->skb = skb;
- return -EAGAIN;
+
+ kfree_skb(skb);
+ cxgb3i_tx_debug("itt 0x%x, skb 0x%p, len %u/%u, xmit err %d.\n",
+ task->itt, skb, skb->len, skb->data_len, err);
+ iscsi_conn_printk(KERN_ERR, task->conn, "xmit err %d.\n", err);
+ iscsi_conn_failure(task->conn, ISCSI_ERR_XMIT_FAILED);
+ return err;
}
int cxgb3i_pdu_init(void)