From: Christian Lamparter <chunkeey@googlemail.com>
To: Alexey Khoroshilov <khoroshilov@ispras.ru>
Cc: "John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org
Subject: Re: [PATCH] p54pci: don't return zero on failure path in p54p_probe()
Date: Tue, 1 Jan 2013 22:45:42 +0100 [thread overview]
Message-ID: <201301012245.43064.chunkeey@googlemail.com> (raw)
In-Reply-To: <1357074661-15784-1-git-send-email-khoroshilov@ispras.ru>
On Tuesday 01 January 2013 22:11:01 Alexey Khoroshilov wrote:
> If pci_set_dma_mask() or pci_set_consistent_dma_mask() fails in p54p_probe(),
> it breaks off initialization, deallocates all resources, but returns zero.
>
> The patch implements proper error code propagation.
Uh, Thanks!
But wait, I think there's another return 0 in the error
path. See p54pci.c @ line 558:
mem_len = pci_resource_len(pdev, 0);
if (mem_len < sizeof(...)) {
dev_err(...)
goto err_disabled_dev;
}
Do you think you can add a err = -EINVAL; before the goto too?
[I wonder why this wasn't found by the verification project as
well? Could it be that pci_resource_len(...) < sizeof(...) is
somehow always true and this is a dead branch?]
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>
Regards,
Christian
> ---
> drivers/net/wireless/p54/p54pci.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
> index 933e5d9..fef69ea 100644
> --- a/drivers/net/wireless/p54/p54pci.c
> +++ b/drivers/net/wireless/p54/p54pci.c
> @@ -568,8 +568,10 @@ static int p54p_probe(struct pci_dev *pdev,
> goto err_disable_dev;
> }
>
> - if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) ||
> - pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
> + err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
> + if (!err)
> + err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
> + if (err) {
> dev_err(&pdev->dev, "No suitable DMA available\n");
> goto err_free_reg;
> }
>
next prev parent reply other threads:[~2013-01-01 21:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-01 21:11 [PATCH] p54pci: don't return zero on failure path in p54p_probe() Alexey Khoroshilov
2013-01-01 21:45 ` Christian Lamparter [this message]
2013-01-01 22:44 ` Alexey Khoroshilov
2013-01-01 22:44 ` Alexey Khoroshilov
2013-01-01 23:53 ` Christian Lamparter
2013-01-01 23:53 ` Christian Lamparter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201301012245.43064.chunkeey@googlemail.com \
--to=chunkeey@googlemail.com \
--cc=khoroshilov@ispras.ru \
--cc=ldv-project@linuxtesting.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.