diff --git a/src/lib/core/fiber.c b/src/lib/core/fiber.c
index 6fea775f015694e28e840bcfbdb4bd674f81c8c4..243a73bf810b969f52398d45caa7c9ce369f3e18 100644
--- a/src/lib/core/fiber.c
+++ b/src/lib/core/fiber.c
@@ -66,6 +66,22 @@ static int (*fiber_invoke)(fiber_func f, va_list ap);
 #define ASAN_FINISH_SWITCH_FIBER(var_name)
 #endif
 
+#define fiber_madvise(addr, len, advice)				\
+({									\
+	int err = madvise((addr), (len), (advice));			\
+	if (err)							\
+		say_syserror("madvise");				\
+	err;								\
+})
+
+#define fiber_mprotect(addr, len, prot)					\
+({									\
+	int err = mprotect((addr), (len), (prot));			\
+	if (err)							\
+		say_syserror("mprotect");				\
+	err;								\
+})
+
 /*
  * Defines a handler to be executed on exit from cord's thread func,
  * accessible via cord()->on_exit (normally NULL). It is used to
@@ -799,7 +815,7 @@ fiber_stack_recycle(struct fiber *fiber)
 		start = page_align_up(fiber->stack_watermark);
 		end = fiber->stack + fiber->stack_size;
 	}
-	madvise(start, end - start, MADV_DONTNEED);
+	fiber_madvise(start, end - start, MADV_DONTNEED);
 	stack_put_watermark(fiber->stack_watermark);
 }
 
@@ -819,7 +835,7 @@ fiber_stack_watermark_create(struct fiber *fiber)
 	 * We don't expect the whole stack usage in regular
 	 * loads, let's try to minimize rss pressure.
 	 */
-	madvise(fiber->stack, fiber->stack_size, MADV_DONTNEED);
+	fiber_madvise(fiber->stack, fiber->stack_size, MADV_DONTNEED);
 
 	/*
 	 * To increase probability of stack overflow detection
@@ -886,7 +902,7 @@ fiber_stack_create(struct fiber *fiber, size_t stack_size)
 						  (char *)fiber->stack +
 						  fiber->stack_size);
 
-	mprotect(guard, page_size, PROT_NONE);
+	fiber_mprotect(guard, page_size, PROT_NONE);
 	fiber_stack_watermark_create(fiber);
 	return 0;
 }
@@ -904,7 +920,7 @@ fiber_stack_destroy(struct fiber *fiber, struct slab_cache *slabc)
 			guard = page_align_down(fiber->stack - page_size);
 		else
 			guard = page_align_up(fiber->stack + fiber->stack_size);
-		mprotect(guard, page_size, PROT_READ | PROT_WRITE);
+		fiber_mprotect(guard, page_size, PROT_READ | PROT_WRITE);
 		slab_put(slabc, fiber->stack_slab);
 	}
 }