On 05.04.16 at 15:38, fu.wei@linaro.org wrote:
--- a/xen/xsm/xsm_core.c +++ b/xen/xsm/xsm_core.c @@ -19,6 +19,8 @@ #ifdef CONFIG_XSM +#include <asm/setup.h>
This is not a good idea. Note how xsm_policy.c limits this inclusion to the CONFIG_HAS_DEVICE_TREE case only, which is the least that should be done here too.
@@ -109,6 +111,25 @@ int __init xsm_dt_init(void) return ret; }
+/**
- has_xsm_magic - Check XSM Magic of the module header by phy address
- A XSM module has a special header
- uint magic | uint target_len | uchar target[8] |
- 0xf97cff8c | 8 | "XenFlask" |
- 0xf97cff8c is policy magic number (XSM_MAGIC).
- Here we only check the "magic" of the module.
- */
+bool __init has_xsm_magic(paddr_t start) +{
- xsm_magic_t magic;
- copy_from_paddr(&magic, start, sizeof(magic) );
- return ( XSM_MAGIC && magic == XSM_MAGIC );
Is XSM_MAGIC == 0 possible here at all? And if it is, wouldn't it be better to avoid the copy_from_paddr() in that case?
Jan