LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* pci/pcie/aer/aerdrv_acpi.c: inconsequent NULL checking
@ 2008-02-19 19:29 Adrian Bunk
  2008-02-20  5:47 ` Greg KH
  0 siblings, 1 reply; 5+ messages in thread
From: Adrian Bunk @ 2008-02-19 19:29 UTC (permalink / raw)
  To: Andrew Patterson, Greg Kroah-Hartman; +Cc: linux-kernel, linux-pci

The Coverity checker spotted the following inconsequent NULL checking 
introduced by commit 3c75e23784e6ed5f4841de43d0750fd9b37bafcb:

<--  snip  -->

...
int aer_osc_setup(struct pcie_device *pciedev)
{
...            vvvvvvvvv
        while (pdev->bus && pdev->bus->self)
                pdev = pdev->bus->self;
        handle = acpi_get_pci_rootbridge_handle(
                pci_domain_nr(pdev->bus), pdev->bus->number);
...                                       ^^^^^^^^^^^^^^^^^

<--  snip  -->

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: pci/pcie/aer/aerdrv_acpi.c: inconsequent NULL checking
  2008-02-19 19:29 pci/pcie/aer/aerdrv_acpi.c: inconsequent NULL checking Adrian Bunk
@ 2008-02-20  5:47 ` Greg KH
  2008-02-20  7:56   ` Adrian Bunk
  0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2008-02-20  5:47 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Patterson, Greg Kroah-Hartman, linux-kernel, linux-pci

On Tue, Feb 19, 2008 at 09:29:02PM +0200, Adrian Bunk wrote:
> The Coverity checker spotted the following inconsequent NULL checking 
> introduced by commit 3c75e23784e6ed5f4841de43d0750fd9b37bafcb:
> 
> <--  snip  -->
> 
> ...
> int aer_osc_setup(struct pcie_device *pciedev)
> {
> ...            vvvvvvvvv
>         while (pdev->bus && pdev->bus->self)
>                 pdev = pdev->bus->self;

That could probably change to just pdev->bus->self, as a bus should
always be there for a pdev, so I don't see this as a problem.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: pci/pcie/aer/aerdrv_acpi.c: inconsequent NULL checking
  2008-02-20  5:47 ` Greg KH
@ 2008-02-20  7:56   ` Adrian Bunk
  2008-02-20 16:09     ` Greg KH
  0 siblings, 1 reply; 5+ messages in thread
From: Adrian Bunk @ 2008-02-20  7:56 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Patterson, linux-kernel, linux-pci

On Tue, Feb 19, 2008 at 09:47:58PM -0800, Greg KH wrote:
> On Tue, Feb 19, 2008 at 09:29:02PM +0200, Adrian Bunk wrote:
> > The Coverity checker spotted the following inconsequent NULL checking 
> > introduced by commit 3c75e23784e6ed5f4841de43d0750fd9b37bafcb:
> > 
> > <--  snip  -->
> > 
> > ...
> > int aer_osc_setup(struct pcie_device *pciedev)
> > {
> > ...            vvvvvvvvv
> >         while (pdev->bus && pdev->bus->self)
> >                 pdev = pdev->bus->self;
> 
> That could probably change to just pdev->bus->self, as a bus should
> always be there for a pdev, so I don't see this as a problem.

I'm not claiming this specific case was a problem.

When a NULL check is only performed in some cases that's sometimes a bug 
that has to be fixed and in most cases a not required check that should 
be removed at some point in time.

> thanks,
> 
> greg k-h

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: pci/pcie/aer/aerdrv_acpi.c: inconsequent NULL checking
  2008-02-20  7:56   ` Adrian Bunk
@ 2008-02-20 16:09     ` Greg KH
  2008-02-22 19:58       ` [2.6 patch] pci/pcie/aer/aerdrv_acpi.c: remove unneeded NULL check Adrian Bunk
  0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2008-02-20 16:09 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Patterson, linux-kernel, linux-pci

On Wed, Feb 20, 2008 at 09:56:28AM +0200, Adrian Bunk wrote:
> On Tue, Feb 19, 2008 at 09:47:58PM -0800, Greg KH wrote:
> > On Tue, Feb 19, 2008 at 09:29:02PM +0200, Adrian Bunk wrote:
> > > The Coverity checker spotted the following inconsequent NULL checking 
> > > introduced by commit 3c75e23784e6ed5f4841de43d0750fd9b37bafcb:
> > > 
> > > <--  snip  -->
> > > 
> > > ...
> > > int aer_osc_setup(struct pcie_device *pciedev)
> > > {
> > > ...            vvvvvvvvv
> > >         while (pdev->bus && pdev->bus->self)
> > >                 pdev = pdev->bus->self;
> > 
> > That could probably change to just pdev->bus->self, as a bus should
> > always be there for a pdev, so I don't see this as a problem.
> 
> I'm not claiming this specific case was a problem.

Well, Coverity did :)

> When a NULL check is only performed in some cases that's sometimes a bug 
> that has to be fixed and in most cases a not required check that should 
> be removed at some point in time.

I agree, patches are always welcome...

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [2.6 patch] pci/pcie/aer/aerdrv_acpi.c: remove unneeded NULL check
  2008-02-20 16:09     ` Greg KH
@ 2008-02-22 19:58       ` Adrian Bunk
  0 siblings, 0 replies; 5+ messages in thread
From: Adrian Bunk @ 2008-02-22 19:58 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Patterson, linux-kernel, linux-pci

On Wed, Feb 20, 2008 at 08:09:35AM -0800, Greg KH wrote:
> On Wed, Feb 20, 2008 at 09:56:28AM +0200, Adrian Bunk wrote:
> > On Tue, Feb 19, 2008 at 09:47:58PM -0800, Greg KH wrote:
> > > On Tue, Feb 19, 2008 at 09:29:02PM +0200, Adrian Bunk wrote:
> > > > The Coverity checker spotted the following inconsequent NULL checking 
> > > > introduced by commit 3c75e23784e6ed5f4841de43d0750fd9b37bafcb:
> > > > 
> > > > <--  snip  -->
> > > > 
> > > > ...
> > > > int aer_osc_setup(struct pcie_device *pciedev)
> > > > {
> > > > ...            vvvvvvvvv
> > > >         while (pdev->bus && pdev->bus->self)
> > > >                 pdev = pdev->bus->self;
> > > 
> > > That could probably change to just pdev->bus->self, as a bus should
> > > always be there for a pdev, so I don't see this as a problem.
> > 
> > I'm not claiming this specific case was a problem.
> 
> Well, Coverity did :)

It only said it's once checked and once not.

> > When a NULL check is only performed in some cases that's sometimes a bug 
> > that has to be fixed and in most cases a not required check that should 
> > be removed at some point in time.
> 
> I agree, patches are always welcome...

Patch below.

> thanks,
> 
> greg k-h

cu
Adrian


<--  snip  -->


There's no reason for checking pdev->bus for being NULL here (and we'd 
anyway Oops 3 lines below if it was).

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---
74832021c82be6e2ed6055f4f25dbf152df67cf5 diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c
index 8c199ae..1e2a858 100644
--- a/drivers/pci/pcie/aer/aerdrv_acpi.c
+++ b/drivers/pci/pcie/aer/aerdrv_acpi.c
@@ -34,7 +34,7 @@ int aer_osc_setup(struct pcie_device *pciedev)
 	acpi_handle handle = 0;
 
 	/* Find root host bridge */
-	while (pdev->bus && pdev->bus->self)
+	while (pdev->bus->self)
 		pdev = pdev->bus->self;
 	handle = acpi_get_pci_rootbridge_handle(
 		pci_domain_nr(pdev->bus), pdev->bus->number);


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-02-22 20:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-19 19:29 pci/pcie/aer/aerdrv_acpi.c: inconsequent NULL checking Adrian Bunk
2008-02-20  5:47 ` Greg KH
2008-02-20  7:56   ` Adrian Bunk
2008-02-20 16:09     ` Greg KH
2008-02-22 19:58       ` [2.6 patch] pci/pcie/aer/aerdrv_acpi.c: remove unneeded NULL check Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).