diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-02 16:36:34 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-02 16:36:34 -0700 |
commit | 61bd1e858db743af64f6e363c526f7e433d12e0c (patch) | |
tree | a9213c472c1458e9e7686f9d9fa1c4ed1362e3f3 /drivers/scsi/cxgb3i/cxgb3i_pdu.c | |
parent | 8c0c3f7ff0daa119f0bb109148f6f0e39573b429 (diff) | |
parent | e9da4d7f731dafc2b93ce7b31aa09c4d935ef978 (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.c | 19 |
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) |