diff mbox series

paride/pcd: need to check if cd->disk is null in pcd_detect

Message ID 1565695392-140970-1-git-send-email-zhengbin13@huawei.com (mailing list archive)
State New, archived
Headers show
Series paride/pcd: need to check if cd->disk is null in pcd_detect | expand

Commit Message

Zheng Bin Aug. 13, 2019, 11:23 a.m. UTC
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@huawei.com>
Signed-off-by: zhengbin <zhengbin13@huawei.com>
---
 drivers/block/paride/pcd.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--
2.7.4

Comments

Zheng Bin Sept. 4, 2019, 8:40 a.m. UTC | #1
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@huawei.com>
> Signed-off-by: zhengbin <zhengbin13@huawei.com>
> ---
>  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
>
>
> .
>
Jens Axboe Sept. 4, 2019, 1:04 p.m. UTC | #2
On 8/13/19 5:23 AM, 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.

Applied, thanks.
diff mbox series

Patch

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