Re: pnp_bus_resume(): inconsequent NULL checking

From: Bjorn Helgaas
Date: Thu Feb 21 2008 - 10:31:52 EST


On Wednesday 20 February 2008 10:47:21 pm Rene Herman wrote:
> On 20-02-08 17:59, Bjorn Helgaas wrote:
> > I agree with you that we can just delete the dev->protocol tests
> > completely. So I'd rather see something like this (built but untested):
> >
> >
> > PNP: remove dev->protocol NULL checks
> >
> > Every PNP device should have a valid protocol pointer. If it doesn't,
> > something's wrong and we should oops so we can find and fix the problem.
> >
> > Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
>
> Ack from a functional standpoint: we are oopsing in pnp_start/stop_dev
> _anyway_ if the protocol pointer isn't set.
>
> Will you coach this upstream? A 2.6.25-rc1 change from me made the coverity
> checker pick up on it which might be considered enough of an excuse to call
> it a regression and submit this as a fix...

I'll push it upstream, but a coverity warning seems like a marginal
excuse for putting it in 2.6.25. Is there any real reason it can't
wait until 2.6.26?

> > Index: work6/drivers/pnp/driver.c
> > ===================================================================
> > --- work6.orig/drivers/pnp/driver.c 2008-02-20 09:46:01.000000000 -0700
> > +++ work6/drivers/pnp/driver.c 2008-02-20 09:46:28.000000000 -0700
> > @@ -167,7 +167,7 @@
> > return error;
> > }
> >
> > - if (pnp_dev->protocol && pnp_dev->protocol->suspend)
> > + if (pnp_dev->protocol->suspend)
> > pnp_dev->protocol->suspend(pnp_dev, state);
> > return 0;
> > }
> > @@ -181,7 +181,7 @@
> > if (!pnp_drv)
> > return 0;
> >
> > - if (pnp_dev->protocol && pnp_dev->protocol->resume)
> > + if (pnp_dev->protocol->resume)
> > pnp_dev->protocol->resume(pnp_dev);
> >
> > if (pnp_can_write(pnp_dev)) {
>
> Rene.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/