[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: compat code lacks support for __attribute__
Wed, 14 Jun 2023 11:49:35 +0200 Jan Beulich <jbeulich@xxxxxxxx>: > However, if you're after adding packed attributes, and if you're > meaning to only communicate between Xen and the tool stack, then > the requirement above doesn't exist. Yet then I would also wonder > whether you need any compat translation in the first place. Those > packed structures would better be arch-/bitness-agnostic, wouldn't > they? So perhaps we could arrange for your additions to be excluded > from the compat translation machinery? The change below works for me. I wonder if any special compat handling for t_buf and t_rec is required. To me it looks like only uint32_t is used, which will most likely cause no unexpected alignment issues. Olaf --- a/xen/common/trace.c +++ b/xen/common/trace.c @@ -34,15 +34,6 @@ #include <asm/atomic.h> #include <public/sysctl.h> -#ifdef CONFIG_COMPAT -#include <compat/trace.h> -#define xen_t_buf t_buf -CHECK_t_buf; -#undef xen_t_buf -#else -#define compat_t_rec t_rec -#endif - /* opt_tbuf_size: trace buffer size (in pages) for each cpu */ static unsigned int opt_tbuf_size; static unsigned int opt_tevt_mask; --- a/xen/include/Makefile +++ b/xen/include/Makefile @@ -30,7 +30,7 @@ headers-$(CONFIG_HVM) += compat/hvm/hvm_op.h headers-$(CONFIG_HVM) += compat/hvm/hvm_vcpu.h headers-$(CONFIG_HYPFS) += compat/hypfs.h headers-$(CONFIG_KEXEC) += compat/kexec.h -headers-$(CONFIG_TRACEBUFFER) += compat/trace.h +headers-n += compat/trace.h headers-$(CONFIG_XENOPROF) += compat/xenoprof.h headers-$(CONFIG_XSM_FLASK) += compat/xsm/flask_op.h --- a/xen/include/public/trace.h +++ b/xen/include/public/trace.h @@ -81,6 +81,15 @@ #define TRC_TRACE_WRAP_BUFFER (TRC_GEN + 2) #define TRC_TRACE_CPU_CHANGE (TRC_GEN + 3) +#define TRC_a (TRC_GEN + 123) +struct __attribute__((__packed__)) trc_a { + unsigned a; +}; +#define TRC_b (TRC_GEN + 321) +typedef struct __attribute__((__packed__)) trc_b { + unsigned b; +} trc_b_t; + #define TRC_SCHED_RUNSTATE_CHANGE (TRC_SCHED_MIN + 1) #define TRC_SCHED_CONTINUE_RUNNING (TRC_SCHED_MIN + 2) #define TRC_SCHED_DOM_ADD (TRC_SCHED_VERBOSE + 1) Attachment:
pgpOMAQGS8AG_.pgp
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |