diff mbox

blktap2: use abort() instead of custom crash

Message ID 1461675886-4275-1-git-send-email-cardoe@cardoe.com (mailing list archive)
State New, archived
Headers show

Commit Message

Douglas Goldstein April 26, 2016, 1:04 p.m. UTC
Instead of trying to write a snippet of code that crashes the process
just use abort() directly. This is to fix the build on clang which
detects that the snippet of code will crash and fails to compile. At
the same time removed extraneous whitespace in the macro.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
---
Honestly this whole macro could get replaced with assert(3) but I wanted
to make the smallest change possible. If that's preferrable I'll do that.
The man page claims that assert(3) will print the following to stderr:

"assertion \"%s\" failed: file \"%s\", line %d\n", \
        "expression", __FILE__, __LINE__);
---
 tools/blktap2/drivers/tapdisk-vbd.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Andrew Cooper April 26, 2016, 1:09 p.m. UTC | #1
On 26/04/16 14:04, Doug Goldstein wrote:
> Instead of trying to write a snippet of code that crashes the process
> just use abort() directly. This is to fix the build on clang which
> detects that the snippet of code will crash and fails to compile. At
> the same time removed extraneous whitespace in the macro.
>
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

I definitely remember encountering this issue when trying to do clang
builds in the past.  I wonder where the patch went...

> ---
> Honestly this whole macro could get replaced with assert(3) but I wanted
> to make the smallest change possible. If that's preferrable I'll do that.
> The man page claims that assert(3) will print the following to stderr:
>
> "assertion \"%s\" failed: file \"%s\", line %d\n", \
>         "expression", __FILE__, __LINE__);
> ---
>  tools/blktap2/drivers/tapdisk-vbd.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tools/blktap2/drivers/tapdisk-vbd.c b/tools/blktap2/drivers/tapdisk-vbd.c
> index 31bc2fe..e2e9cd5 100644
> --- a/tools/blktap2/drivers/tapdisk-vbd.c
> +++ b/tools/blktap2/drivers/tapdisk-vbd.c
> @@ -49,18 +49,18 @@
>  #define DBG(_level, _f, _a...) tlog_write(_level, _f, ##_a)
>  #define ERR(_err, _f, _a...) tlog_error(_err, _f, ##_a)
>  
> -#if 1                                                                        
> +#if 1
>  #define ASSERT(p)							\
>  	do {								\
>  		if (!(p)) {						\
>  			DPRINTF("Assertion '%s' failed, line %d, "	\
>  				"file %s", #p, __LINE__, __FILE__);	\
> -			*(int*)0 = 0;					\
> +			abort();					\
>  		}							\
>  	} while (0)
>  #else
>  #define ASSERT(p) ((void)0)
> -#endif 
> +#endif
>  
>  
>  #define TD_VBD_EIO_RETRIES          10
Wei Liu April 26, 2016, 1:15 p.m. UTC | #2
On Tue, Apr 26, 2016 at 08:04:46AM -0500, Doug Goldstein wrote:
> Instead of trying to write a snippet of code that crashes the process
> just use abort() directly. This is to fix the build on clang which
> detects that the snippet of code will crash and fails to compile. At
> the same time removed extraneous whitespace in the macro.
> 
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>

And queued.
diff mbox

Patch

diff --git a/tools/blktap2/drivers/tapdisk-vbd.c b/tools/blktap2/drivers/tapdisk-vbd.c
index 31bc2fe..e2e9cd5 100644
--- a/tools/blktap2/drivers/tapdisk-vbd.c
+++ b/tools/blktap2/drivers/tapdisk-vbd.c
@@ -49,18 +49,18 @@ 
 #define DBG(_level, _f, _a...) tlog_write(_level, _f, ##_a)
 #define ERR(_err, _f, _a...) tlog_error(_err, _f, ##_a)
 
-#if 1                                                                        
+#if 1
 #define ASSERT(p)							\
 	do {								\
 		if (!(p)) {						\
 			DPRINTF("Assertion '%s' failed, line %d, "	\
 				"file %s", #p, __LINE__, __FILE__);	\
-			*(int*)0 = 0;					\
+			abort();					\
 		}							\
 	} while (0)
 #else
 #define ASSERT(p) ((void)0)
-#endif 
+#endif
 
 
 #define TD_VBD_EIO_RETRIES          10