[Xen-devel,RESEND,for-4.13] xen: sched: Fix Arm build after commit f855dd9625

Message ID 20190924171742.25480-1-julien.grall@arm.com
State New
Headers show
Series
  • [Xen-devel,RESEND,for-4.13] xen: sched: Fix Arm build after commit f855dd9625
Related show

Commit Message

Julien Grall Sept. 24, 2019, 5:17 p.m.
Commit f855dd9625 "sched: add minimalistic idle scheduler for free cpus"
introduce the use of ZERO_BLOCK_PTR in the scheduler code. However, the
define does not exist outside of xmalloc_tsf.c for non-x86 architecture.

This will result to a compilation error on Arm:

schedule.c: In function ‘sched_idle_alloc_vdata’:
schedule.c:100:12: error: ‘ZERO_BLOCK_PTR’ undeclared (first use in this function)
     return ZERO_BLOCK_PTR;
                 ^~~~~~~~~~~~~~
schedule.c:100:12: note: each undeclared identifier is reported only once for each function it appears in
schedule.c:101:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1: all warnings being treated as errors

To avoid the compilation error, the default definition for
ZERO_BLOCK_PTR is now moved in xen/config.h allowing all the code to use
the define.

Fixes: f855dd9625 ('sched: add minimalistic idle scheduler for free cpus')
Signed-off-by: Julien Grall <julien.grall@arm.com>
---
 xen/common/xmalloc_tlsf.c | 5 -----
 xen/include/xen/config.h  | 5 +++++
 2 files changed, 5 insertions(+), 5 deletions(-)

Comments

Julien Grall Sept. 24, 2019, 6:04 p.m. | #1
Hi all,

On 9/24/19 6:17 PM, Julien Grall wrote:
> Commit f855dd9625 "sched: add minimalistic idle scheduler for free cpus"
> introduce the use of ZERO_BLOCK_PTR in the scheduler code. However, the
> define does not exist outside of xmalloc_tsf.c for non-x86 architecture.
> 
> This will result to a compilation error on Arm:
> 
> schedule.c: In function ‘sched_idle_alloc_vdata’:
> schedule.c:100:12: error: ‘ZERO_BLOCK_PTR’ undeclared (first use in this function)
>       return ZERO_BLOCK_PTR;
>                   ^~~~~~~~~~~~~~
> schedule.c:100:12: note: each undeclared identifier is reported only once for each function it appears in
> schedule.c:101:1: error: control reaches end of non-void function [-Werror=return-type]
>   }
>   ^
> cc1: all warnings being treated as errors
> 
> To avoid the compilation error, the default definition for
> ZERO_BLOCK_PTR is now moved in xen/config.h allowing all the code to use
> the define.
> 
> Fixes: f855dd9625 ('sched: add minimalistic idle scheduler for free cpus')
> Signed-off-by: Julien Grall <julien.grall@arm.com>

FYI, Andrew acked the patch on IRC, so I have committed it.

Cheers,

Patch

diff --git a/xen/common/xmalloc_tlsf.c b/xen/common/xmalloc_tlsf.c
index e98ad65455..1e8d72dea2 100644
--- a/xen/common/xmalloc_tlsf.c
+++ b/xen/common/xmalloc_tlsf.c
@@ -549,11 +549,6 @@  static void tlsf_init(void)
  * xmalloc()
  */
 
-#ifndef ZERO_BLOCK_PTR
-/* Return value for zero-size allocation, distinguished from NULL. */
-#define ZERO_BLOCK_PTR ((void *)-1L)
-#endif
-
 void *_xmalloc(unsigned long size, unsigned long align)
 {
     void *p = NULL;
diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h
index a1d0f970a7..a106380a23 100644
--- a/xen/include/xen/config.h
+++ b/xen/include/xen/config.h
@@ -86,4 +86,9 @@ 
 #define NDEBUG
 #endif
 
+#ifndef ZERO_BLOCK_PTR
+/* Return value for zero-size allocation, distinguished from NULL. */
+#define ZERO_BLOCK_PTR ((void *)-1L)
+#endif
+
 #endif /* __XEN_CONFIG_H__ */