ping

On 2019/8/13 19:23, zhengbin wrote:
> If alloc_disk fails in pcd_init_units, cd->disk & pi are empty, we need
> to check if cd->disk is null in pcd_detect.
>
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: zhengbin <[email protected]>
> ---
>  drivers/block/paride/pcd.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c
> index bfca80d..636bfea 100644
> --- a/drivers/block/paride/pcd.c
> +++ b/drivers/block/paride/pcd.c
> @@ -723,9 +723,9 @@ static int pcd_detect(void)
>       k = 0;
>       if (pcd_drive_count == 0) { /* nothing spec'd - so autoprobe for 1 */
>               cd = pcd;
> -             if (pi_init(cd->pi, 1, -1, -1, -1, -1, -1, pcd_buffer,
> -                         PI_PCD, verbose, cd->name)) {
> -                     if (!pcd_probe(cd, -1, id) && cd->disk) {
> +             if (cd->disk && pi_init(cd->pi, 1, -1, -1, -1, -1, -1,
> +                         pcd_buffer, PI_PCD, verbose, cd->name)) {
> +                     if (!pcd_probe(cd, -1, id)) {
>                               cd->present = 1;
>                               k++;
>                       } else
> @@ -736,11 +736,13 @@ static int pcd_detect(void)
>                       int *conf = *drives[unit];
>                       if (!conf[D_PRT])
>                               continue;
> +                     if (!cd->disk)
> +                             continue;
>                       if (!pi_init(cd->pi, 0, conf[D_PRT], conf[D_MOD],
>                                    conf[D_UNI], conf[D_PRO], conf[D_DLY],
>                                    pcd_buffer, PI_PCD, verbose, cd->name))
>                               continue;
> -                     if (!pcd_probe(cd, conf[D_SLV], id) && cd->disk) {
> +                     if (!pcd_probe(cd, conf[D_SLV], id)) {
>                               cd->present = 1;
>                               k++;
>                       } else
> --
> 2.7.4
>
>
> .
>

Reply via email to