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 <hulkci@xxxxxxxxxx> > Signed-off-by: zhengbin <zhengbin13@xxxxxxxxxx> > --- > 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 > > > . >