X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fcounter%2Fcounter-api.h;h=12520445fb30a8538ac1f958ce955149916ffcda;hb=5ef5f89155bc0c8dd4f8cfa12e9ba2f345fe7ef2;hp=f2829fc5df9840cc9670dee6b138b02351379982;hpb=a101fa100885861be33fab3966db2c5136815724;p=lttng-modules.git diff --git a/include/counter/counter-api.h b/include/counter/counter-api.h index f2829fc5..12520445 100644 --- a/include/counter/counter-api.h +++ b/include/counter/counter-api.h @@ -15,6 +15,7 @@ #include #include #include +#include /* * Using unsigned arithmetic because overflow is defined. @@ -79,10 +80,12 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && (v >= U8_MAX || n < old)) overflow = true; - else if (v < 0 && (v <= -U8_MAX || n > old)) + else if (v < 0 && (v <= -(s64) U8_MAX || n > old)) underflow = true; break; } @@ -118,10 +121,12 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && (v >= U16_MAX || n < old)) overflow = true; - else if (v < 0 && (v <= -U16_MAX || n > old)) + else if (v < 0 && (v <= -(s64) U16_MAX || n > old)) underflow = true; break; } @@ -157,10 +162,12 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && (v >= U32_MAX || n < old)) overflow = true; - else if (v < 0 && (v <= -U32_MAX || n > old)) + else if (v < 0 && (v <= -(s64) U32_MAX || n > old)) underflow = true; break; } @@ -197,6 +204,8 @@ static inline int __lttng_counter_add(const struct lib_counter_config *config, } while (old != res); break; } + default: + return -EINVAL; } if (v > 0 && n < old) overflow = true;