]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[SCSI] libcxgbi: do not print a message when memory allocation fails
authorThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Wed, 14 Dec 2011 15:46:23 +0000 (13:46 -0200)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 10 Jan 2012 23:01:21 +0000 (17:01 -0600)
In alloc_pdu, libcxgbi tries to allocate a skb with GFP_ATOMIC, which
may potentially fail. When it happens, the current code prints a warning
message.

When the system is under IO stress, this failure may happen lots of
times and it usually scares users.

Instead of printing the warning message, the code now increases the
tx_dropped statistics for the ethernet interface wich is doing the iscsi
task.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Acked-by: Karen Xie <kxie@chelsio.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/cxgbi/libcxgbi.c

index c5360ffb4bed35ae9bd06fa1a0195f2517b82778..d3ff9cd40234f5d5ea478020ecbf0a04bac1503e 100644 (file)
@@ -1868,8 +1868,9 @@ int cxgbi_conn_alloc_pdu(struct iscsi_task *task, u8 opcode)
 
        tdata->skb = alloc_skb(cdev->skb_tx_rsvd + headroom, GFP_ATOMIC);
        if (!tdata->skb) {
-               pr_warn("alloc skb %u+%u, opcode 0x%x failed.\n",
-                       cdev->skb_tx_rsvd, headroom, opcode);
+               struct cxgbi_sock *csk = cconn->cep->csk;
+               struct net_device *ndev = cdev->ports[csk->port_id];
+               ndev->stats.tx_dropped++;
                return -ENOMEM;
        }