net: ethernet: qlogic: set error code on failure
authorPan Bian <bianpan2016@163.com>
Sun, 4 Dec 2016 05:53:53 +0000 (13:53 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Dec 2016 19:54:18 +0000 (14:54 -0500)
When calling dma_mapping_error(), the value of return variable rc is 0.
And when the call returns an unexpected value, rc is not set to a
negative errno. Thus, it will return 0 on the error path, and its
callers cannot detect the bug. This patch fixes the bug, assigning
"-ENOMEM" to err.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=189041

Signed-off-by: Pan Bian <bianpan2016@163.com>
Acked-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_ll2.c

index f95385cbbd40248d79513ad083f8c56232b70aee..62ae55bd81b8cc2940d957e6122471e29f92a6ea 100644 (file)
@@ -1730,6 +1730,7 @@ static int qed_ll2_start_xmit(struct qed_dev *cdev, struct sk_buff *skb)
                                                       mapping))) {
                                DP_NOTICE(cdev,
                                          "Unable to map frag - dropping packet\n");
+                               rc = -ENOMEM;
                                goto err;
                        }
                } else {