mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 22:26:41 +07:00
9cc91f2121
The improved type-checking version of container_of() triggers a warning for
xchg_xen_ulong, pointing out that 'xen_ulong_t' is unsigned, but atomic64_t
contains a signed value:
drivers/xen/events/events_2l.c: In function 'evtchn_2l_handle_events':
drivers/xen/events/events_2l.c:187:1020: error: call to '__compiletime_assert_187' declared with attribute error: pointer type mismatch in container_of()
This adds a cast to work around the warning.
Cc: Ian Abbott <abbotti@mev.co.uk>
Fixes: 85323a991d
("xen: arm: mandate EABI and use generic atomic operations.")
Fixes: daa2ac80834d ("kernel.h: handle pointers to arrays better in container_of()")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Ian Abbott <abbotti@mev.co.uk>
30 lines
598 B
C
30 lines
598 B
C
#ifndef _ASM_ARM_XEN_EVENTS_H
|
|
#define _ASM_ARM_XEN_EVENTS_H
|
|
|
|
#include <asm/ptrace.h>
|
|
#include <asm/atomic.h>
|
|
|
|
enum ipi_vector {
|
|
XEN_PLACEHOLDER_VECTOR,
|
|
|
|
/* Xen IPIs go here */
|
|
XEN_NR_IPIS,
|
|
};
|
|
|
|
static inline int xen_irqs_disabled(struct pt_regs *regs)
|
|
{
|
|
return raw_irqs_disabled_flags(regs->ARM_cpsr);
|
|
}
|
|
|
|
#define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((long long*)(ptr),\
|
|
atomic64_t, \
|
|
counter), (val))
|
|
|
|
/* Rebind event channel is supported by default */
|
|
static inline bool xen_support_evtchn_rebind(void)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
#endif /* _ASM_ARM_XEN_EVENTS_H */
|