Re: pnp_bus_resume(): inconsequent NULL checking

Rene Herman
2008-02-21T05:45:24Z

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@hp.com>

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...

> 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.