[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC v4 1/8] Port WARN_ON_ONCE() from Linux
On 1/23/2018 9:13 AM, Wei Liu wrote: > On Mon, Dec 18, 2017 at 08:16:56PM -0700, Sameer Goel wrote: >> Port WARN_ON_ONCE macro from Linux. >> >> Signed-off-by: Sameer Goel <sameer.goel@xxxxxxxxxx> >> --- >> xen/include/xen/lib.h | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h >> index ed00ae1379..83206c0848 100644 >> --- a/xen/include/xen/lib.h >> +++ b/xen/include/xen/lib.h >> @@ -11,6 +11,17 @@ >> #define BUG_ON(p) do { if (unlikely(p)) BUG(); } while (0) >> #define WARN_ON(p) do { if (unlikely(p)) WARN(); } while (0) >> >> +#define WARN_ON_ONCE(p) ({ \ >> + static bool __section(".data.unlikely") __warned; \ > You introduced a new section without corresponding changes to > {arm,x86}/xen.lds.S I will fix this. > >> + int __ret_warn_once = !!(p); \ >> + \ >> + if (unlikely(__ret_warn_once && !__warned)) { \ >> + __warned = true; \ >> + WARN_ON(1); \ > This isn't really a direct port from Linux. At this point I wonder why > you didn't use WARN() directly? > > Wei. > >> + } \ >> + unlikely(__ret_warn_once); \ >> +}) >> + >> #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) >> /* Force a compilation error if condition is true */ >> #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); }) >> -- >> 2.14.1 >> > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxxx > https://lists.xenproject.org/mailman/listinfo/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |