* Re: [bug report] [S390] dasd: Add support for raw ECKD access.
[not found] <20160803124338.GA16986@mwanda>
@ 2016-08-04 7:34 ` Stefan Haberland
0 siblings, 0 replies; only message in thread
From: Stefan Haberland @ 2016-08-04 7:34 UTC (permalink / raw)
To: linux-s390
Hi,
thanks for the report.
Am 03.08.2016 um 14:43 schrieb Dan Carpenter:
> Hello Stefan Haberland,
>
> The patch e4dbb0f2b5dd: "[S390] dasd: Add support for raw ECKD
> access." from Jan 5, 2011, leads to the following static checker
> warning:
>
> drivers/s390/block/dasd_eckd.c:3970 dasd_raw_build_cp()
> warn: 'cqr' isn't an ERR_PTR
>
> drivers/s390/block/dasd_eckd.c
> 3961 cqr->startdev = startdev;
> 3962 cqr->memdev = startdev;
> 3963 cqr->block = block;
> 3964 cqr->expires = startdev->default_expires * HZ;
> 3965 cqr->lpm = startdev->path_data.ppm;
> 3966 cqr->retries = startdev->default_retries;
> 3967 cqr->buildclk = get_tod_clock();
> 3968 cqr->status = DASD_CQR_FILLED;
> ^^^^^^^^^^^
> We're dereferencing cqr pretty hard here.
cqr is checked previously so it is valid at this point.
>
> 3969
> 3970 if (IS_ERR(cqr) && PTR_ERR(cqr) != -EAGAIN)
> ^^^^^^^^^^^
> so it had better not be an error pointer. Perhaps move this after the
> out label?
This line does not make any sense.
It will never be reached since cqr is checked previously and returning
an error in cqr is correct. I will remove it.
>
> 3971 cqr = NULL;
> 3972 out:
> 3973 return cqr;
> 3974 }
>
> regards,
> dan carpenter
> --
> To unsubscribe from this list: send the line "unsubscribe linux-s390" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-08-04 7:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20160803124338.GA16986@mwanda>
2016-08-04 7:34 ` [bug report] [S390] dasd: Add support for raw ECKD access Stefan Haberland
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.