Message ID | 20170621132530.11937-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 3e3d8aa611076efc945687df30a3abf181989d1d |
Delegated to: | Kalle Valo |
Headers | show |
> The return value ret is unitialized and garbage is being returned > for the three different error conditions when setting up the PCIe > BARs. Fix this by initializing ret to -ENOMEM to indicate that > the BARs failed to be setup correctly. > > Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable") > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c > index f93b27f3a236..7fc4f0d6a9ad 100644 > --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c > +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c > @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv) > > static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv) > { > - int ret; > + int ret = -ENOMEM; > > priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR); > if (IS_ERR_OR_NULL(priv->sysctl_bar)) { > -- Thanks ! Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> By the way, could you please use the recepient list suggested by get_maintainer.pl script from the kernel scripts directory. Regards, Sergey
On 21/06/17 14:54, Sergey Matyukevich wrote: >> The return value ret is unitialized and garbage is being returned >> for the three different error conditions when setting up the PCIe >> BARs. Fix this by initializing ret to -ENOMEM to indicate that >> the BARs failed to be setup correctly. >> >> Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable") >> >> Signed-off-by: Colin Ian King <colin.king@canonical.com> >> --- >> drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c >> index f93b27f3a236..7fc4f0d6a9ad 100644 >> --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c >> +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c >> @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv) >> >> static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv) >> { >> - int ret; >> + int ret = -ENOMEM; >> >> priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR); >> if (IS_ERR_OR_NULL(priv->sysctl_bar)) { >> -- > > Thanks ! > > Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> > > By the way, could you please use the recepient list suggested by > get_maintainer.pl script from the kernel scripts directory. Yep, I did. > > Regards, > Sergey >
On Wed, Jun 21, 2017 at 02:25:30PM +0100, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > The return value ret is unitialized and garbage is being returned > for the three different error conditions when setting up the PCIe > BARs. Fix this by initializing ret to -ENOMEM to indicate that > the BARs failed to be setup correctly. > > Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable") > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c > index f93b27f3a236..7fc4f0d6a9ad 100644 > --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c > +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c > @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv) > > static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv) > { > - int ret; > + int ret = -ENOMEM; > > priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR); > if (IS_ERR_OR_NULL(priv->sysctl_bar)) { Not related to your patch but qtnf_map_bar() should be changed not to return NULL. When functions return both NULL and error pointers the NULL is supposed to be a special type of success return. Here it is just a fail return where we forgot to set the error code to ERR_PTR(-ENOMEM). regards, dan carpenter
> Not related to your patch but qtnf_map_bar() should be changed not to > return NULL. When functions return both NULL and error pointers the > NULL is supposed to be a special type of success return. Here it is > just a fail return where we forgot to set the error code to > ERR_PTR(-ENOMEM). Thanks for reporting! FWIW it is not a bug, all the checks of pci maps are in place. Though having both ERR_PTR and NULL in return indeed looks confusing. We will add a fix in the upcoming cleanup series. Regards, Sergey
Colin Ian King <colin.king@canonical.com> wrote: > From: Colin Ian King <colin.king@canonical.com> > > The return value ret is unitialized and garbage is being returned > for the three different error conditions when setting up the PCIe > BARs. Fix this by initializing ret to -ENOMEM to indicate that > the BARs failed to be setup correctly. > > Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable") > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Patch applied to wireless-drivers-next.git, thanks. 3e3d8aa61107 qtnfmac: fix uninitialized return code in ret
diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c index f93b27f3a236..7fc4f0d6a9ad 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv) static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv) { - int ret; + int ret = -ENOMEM; priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR); if (IS_ERR_OR_NULL(priv->sysctl_bar)) {