From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758960AbcCVLhS (ORCPT ); Tue, 22 Mar 2016 07:37:18 -0400 Received: from lucky1.263xmail.com ([211.157.147.131]:42839 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754003AbcCVLhN (ORCPT ); Tue, 22 Mar 2016 07:37:13 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-ADDR-CHECKED: 0 X-RL-SENDER: shawn.lin@rock-chips.com X-FST-TO: broonie@kernel.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: shawn.lin@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: Shawn Lin To: Mark Brown Cc: linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, Shawn Lin , Doug Anderson , Dan Carpenter Subject: [PATCH] spi: rockchip: fix warning of static check Date: Tue, 22 Mar 2016 19:36:14 +0800 Message-Id: <1458646574-12830-1-git-send-email-shawn.lin@rock-chips.com> X-Mailer: git-send-email 1.8.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Let's improve the check with -EPROBE_DEFER, otherwise we may pass on null pointer to PTR_ERR. That causes the static checker warning: passing zero to 'PTR_ERR'. Reported-by: Dan Carpenter Cc: Doug Anderson Cc: Dan Carpenter Signed-off-by: Shawn Lin --- drivers/spi/spi-rockchip.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c index bfeb0d4..2cb36d9 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c @@ -726,20 +726,24 @@ static int rockchip_spi_probe(struct platform_device *pdev) rs->dma_tx.ch = dma_request_slave_channel(rs->dev, "tx"); if (IS_ERR_OR_NULL(rs->dma_tx.ch)) { /* Check tx to see if we need defer probing driver */ - if (PTR_ERR(rs->dma_tx.ch) == -EPROBE_DEFER) { + if (rs->dma_tx.ch == ERR_PTR(-EPROBE_DEFER)) { ret = -EPROBE_DEFER; goto err_get_fifo_len; } dev_warn(rs->dev, "Failed to request TX DMA channel\n"); + rs->dma_tx.ch = NULL; } rs->dma_rx.ch = dma_request_slave_channel(rs->dev, "rx"); - if (!rs->dma_rx.ch) { - if (rs->dma_tx.ch) { + if (IS_ERR_OR_NULL(rs->dma_rx.ch)) { + if (rs->dma_tx.ch == ERR_PTR(-EPROBE_DEFER)) { dma_release_channel(rs->dma_tx.ch); rs->dma_tx.ch = NULL; + ret = -EPROBE_DEFER; + goto err_get_fifo_len; } dev_warn(rs->dev, "Failed to request RX DMA channel\n"); + rs->dma_rx.ch = NULL; } if (rs->dma_tx.ch && rs->dma_rx.ch) { -- 2.3.7 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Lin Subject: [PATCH] spi: rockchip: fix warning of static check Date: Tue, 22 Mar 2016 19:36:14 +0800 Message-ID: <1458646574-12830-1-git-send-email-shawn.lin@rock-chips.com> Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Shawn Lin , Doug Anderson , Dan Carpenter To: Mark Brown Return-path: Sender: linux-spi-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Let's improve the check with -EPROBE_DEFER, otherwise we may pass on null pointer to PTR_ERR. That causes the static checker warning: passing zero to 'PTR_ERR'. Reported-by: Dan Carpenter Cc: Doug Anderson Cc: Dan Carpenter Signed-off-by: Shawn Lin --- drivers/spi/spi-rockchip.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c index bfeb0d4..2cb36d9 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c @@ -726,20 +726,24 @@ static int rockchip_spi_probe(struct platform_device *pdev) rs->dma_tx.ch = dma_request_slave_channel(rs->dev, "tx"); if (IS_ERR_OR_NULL(rs->dma_tx.ch)) { /* Check tx to see if we need defer probing driver */ - if (PTR_ERR(rs->dma_tx.ch) == -EPROBE_DEFER) { + if (rs->dma_tx.ch == ERR_PTR(-EPROBE_DEFER)) { ret = -EPROBE_DEFER; goto err_get_fifo_len; } dev_warn(rs->dev, "Failed to request TX DMA channel\n"); + rs->dma_tx.ch = NULL; } rs->dma_rx.ch = dma_request_slave_channel(rs->dev, "rx"); - if (!rs->dma_rx.ch) { - if (rs->dma_tx.ch) { + if (IS_ERR_OR_NULL(rs->dma_rx.ch)) { + if (rs->dma_tx.ch == ERR_PTR(-EPROBE_DEFER)) { dma_release_channel(rs->dma_tx.ch); rs->dma_tx.ch = NULL; + ret = -EPROBE_DEFER; + goto err_get_fifo_len; } dev_warn(rs->dev, "Failed to request RX DMA channel\n"); + rs->dma_rx.ch = NULL; } if (rs->dma_tx.ch && rs->dma_rx.ch) { -- 2.3.7 -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html