diff mbox series

[v4,01/10] mtd: powernv_flash: Use WARN_ON_ONCE() rather than BUG_ON()

Message ID 20171010033302.20854-2-cyrilbur@gmail.com (mailing list archive)
State Superseded
Headers show
Series Allow opal-async waiters to get interrupted | expand

Commit Message

Cyril Bur Oct. 10, 2017, 3:32 a.m. UTC
BUG_ON() should be reserved in situations where we can not longer
guarantee the integrity of the system. In the case where
powernv_flash_async_op() receives an impossible op, we can still
guarantee the integrity of the system.

Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
---
 drivers/mtd/devices/powernv_flash.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Boris Brezillon Oct. 30, 2017, 8:49 a.m. UTC | #1
On Tue, 10 Oct 2017 14:32:53 +1100
Cyril Bur <cyrilbur@gmail.com> wrote:

> BUG_ON() should be reserved in situations where we can not longer
> guarantee the integrity of the system. In the case where
> powernv_flash_async_op() receives an impossible op, we can still
> guarantee the integrity of the system.
> 
> Signed-off-by: Cyril Bur <cyrilbur@gmail.com>

Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>

> ---
>  drivers/mtd/devices/powernv_flash.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/devices/powernv_flash.c b/drivers/mtd/devices/powernv_flash.c
> index f5396f26ddb4..f9ec38281ff2 100644
> --- a/drivers/mtd/devices/powernv_flash.c
> +++ b/drivers/mtd/devices/powernv_flash.c
> @@ -78,7 +78,9 @@ static int powernv_flash_async_op(struct mtd_info *mtd, enum flash_op op,
>  		rc = opal_flash_erase(info->id, offset, len, token);
>  		break;
>  	default:
> -		BUG_ON(1);
> +		WARN_ON_ONCE(1);
> +		opal_async_release_token(token);
> +		return -EIO;
>  	}
>  
>  	if (rc != OPAL_ASYNC_COMPLETION) {
diff mbox series

Patch

diff --git a/drivers/mtd/devices/powernv_flash.c b/drivers/mtd/devices/powernv_flash.c
index f5396f26ddb4..f9ec38281ff2 100644
--- a/drivers/mtd/devices/powernv_flash.c
+++ b/drivers/mtd/devices/powernv_flash.c
@@ -78,7 +78,9 @@  static int powernv_flash_async_op(struct mtd_info *mtd, enum flash_op op,
 		rc = opal_flash_erase(info->id, offset, len, token);
 		break;
 	default:
-		BUG_ON(1);
+		WARN_ON_ONCE(1);
+		opal_async_release_token(token);
+		return -EIO;
 	}
 
 	if (rc != OPAL_ASYNC_COMPLETION) {