2013-02-15 09:52:31

by Stanislaw Gruszka

[permalink] [raw]
Subject: [PATCH] iwl4965: fix 'phys_addr' may be used uninitialized

This should fix:

drivers/net/wireless/iwlegacy/4965-mac.c:1847:33: warning: 'phys_addr' may be used uninitialized in this function [-Wmaybe-uninitialized]

Reported-by: Fengguang Wu <[email protected]>
Signed-off-by: Stanislaw Gruszka <[email protected]>
---
drivers/net/wireless/iwlegacy/4965-mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
index 7941eb3..d2ab1cf 100644
--- a/drivers/net/wireless/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
@@ -1843,7 +1843,7 @@ il4965_tx_skb(struct il_priv *il,
il->ops->txq_attach_buf_to_tfd(il, txq, txcmd_phys, firstlen, 1, 0);
dma_unmap_addr_set(out_meta, mapping, txcmd_phys);
dma_unmap_len_set(out_meta, len, firstlen);
- if (secondlen)
+ if (secondlen > 0)
il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, secondlen,
0, 0);

--
1.7.11.7



2013-02-15 19:30:10

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] iwl4965: fix 'phys_addr' may be used uninitialized

I still get the warning when building wireless-next on my F17 box
with this patch applied...

On Fri, Feb 15, 2013 at 10:52:21AM +0100, Stanislaw Gruszka wrote:
> This should fix:
>
> drivers/net/wireless/iwlegacy/4965-mac.c:1847:33: warning: 'phys_addr' may be used uninitialized in this function [-Wmaybe-uninitialized]
>
> Reported-by: Fengguang Wu <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>
> ---
> drivers/net/wireless/iwlegacy/4965-mac.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
> index 7941eb3..d2ab1cf 100644
> --- a/drivers/net/wireless/iwlegacy/4965-mac.c
> +++ b/drivers/net/wireless/iwlegacy/4965-mac.c
> @@ -1843,7 +1843,7 @@ il4965_tx_skb(struct il_priv *il,
> il->ops->txq_attach_buf_to_tfd(il, txq, txcmd_phys, firstlen, 1, 0);
> dma_unmap_addr_set(out_meta, mapping, txcmd_phys);
> dma_unmap_len_set(out_meta, len, firstlen);
> - if (secondlen)
> + if (secondlen > 0)
> il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, secondlen,
> 0, 0);
>
> --
> 1.7.11.7
>
>

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2013-02-18 08:40:51

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [PATCH] iwl4965: fix 'phys_addr' may be used uninitialized

On Fri, Feb 15, 2013 at 02:26:27PM -0500, John W. Linville wrote:
> I still get the warning when building wireless-next on my F17 box
> with this patch applied...

I have no warning of F17 with:

gcc-4.7.2-2.fc17.x86_64

perhaps you use i686 or kernel config is different.

This warning must be a false positive. The code looks like below:

secondlen = skb->len - hdr_len;
if (secondlen > 0) {
phys_addr =
pci_map_single(il->pci_dev, skb->data + hdr_len, secondlen,
PCI_DMA_TODEVICE);
if (unlikely(pci_dma_mapping_error(il->pci_dev, phys_addr)))
goto drop_unlock;
}
/* */
if (secondlen > 0)
il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, secondlen,
0, 0);

and there are no other places where phys_addr is used.

I just realized that secondlen is u16, so there is no difference between
"if (secondlen)" and "if (secondlen > 0)". So this patch can be dropped.

Stanislaw

> On Fri, Feb 15, 2013 at 10:52:21AM +0100, Stanislaw Gruszka wrote:
> > This should fix:
> >
> > drivers/net/wireless/iwlegacy/4965-mac.c:1847:33: warning: 'phys_addr' may be used uninitialized in this function [-Wmaybe-uninitialized]
> >
> > Reported-by: Fengguang Wu <[email protected]>
> > Signed-off-by: Stanislaw Gruszka <[email protected]>
> > ---
> > drivers/net/wireless/iwlegacy/4965-mac.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
> > index 7941eb3..d2ab1cf 100644
> > --- a/drivers/net/wireless/iwlegacy/4965-mac.c
> > +++ b/drivers/net/wireless/iwlegacy/4965-mac.c
> > @@ -1843,7 +1843,7 @@ il4965_tx_skb(struct il_priv *il,
> > il->ops->txq_attach_buf_to_tfd(il, txq, txcmd_phys, firstlen, 1, 0);
> > dma_unmap_addr_set(out_meta, mapping, txcmd_phys);
> > dma_unmap_len_set(out_meta, len, firstlen);
> > - if (secondlen)
> > + if (secondlen > 0)
> > il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, secondlen,
> > 0, 0);
> >
> > --
> > 1.7.11.7
> >
> >
>
> --
> John W. Linville Someday the world will need a hero, and you
> [email protected] might be all we have. Be ready.