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
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
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
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
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 <[email protected]>
---
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);