2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00

xen: branch for v6.17-rc3

-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCaKf/jgAKCRCAXGG7T9hj
 vsTcAP0eRBCWDlCTzyuRN+2MpyryoNspFcovhJGwMG16a/7SbgEA/Vi7WqK7Y0XT
 /7ovC2AzehL9iJaZvl8hWULVnw9C8Aw=
 =gDSN
 -----END PGP SIGNATURE-----

Merge tag 'for-linus-6.17-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:
 "Two small cleanups which are both relevant only when running as a Xen
  guest"

* tag 'for-linus-6.17-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  drivers/xen/xenbus: remove quirk for Xen 3.x
  compiler: remove __ADDRESSABLE_ASM{_STR,}() again
This commit is contained in:
Linus Torvalds 2025-08-22 09:50:17 -04:00
commit b3d80535e2
3 changed files with 3 additions and 33 deletions

View File

@ -94,12 +94,13 @@ DECLARE_STATIC_CALL(xen_hypercall, xen_hypercall_func);
#ifdef MODULE #ifdef MODULE
#define __ADDRESSABLE_xen_hypercall #define __ADDRESSABLE_xen_hypercall
#else #else
#define __ADDRESSABLE_xen_hypercall __ADDRESSABLE_ASM_STR(__SCK__xen_hypercall) #define __ADDRESSABLE_xen_hypercall \
__stringify(.global STATIC_CALL_KEY(xen_hypercall);)
#endif #endif
#define __HYPERCALL \ #define __HYPERCALL \
__ADDRESSABLE_xen_hypercall \ __ADDRESSABLE_xen_hypercall \
"call __SCT__xen_hypercall" __stringify(call STATIC_CALL_TRAMP(xen_hypercall))
#define __HYPERCALL_ENTRY(x) "a" (x) #define __HYPERCALL_ENTRY(x) "a" (x)

View File

@ -718,26 +718,6 @@ int xs_watch_msg(struct xs_watch_event *event)
return 0; return 0;
} }
/*
* Certain older XenBus toolstack cannot handle reading values that are
* not populated. Some Xen 3.4 installation are incapable of doing this
* so if we are running on anything older than 4 do not attempt to read
* control/platform-feature-xs_reset_watches.
*/
static bool xen_strict_xenbus_quirk(void)
{
#ifdef CONFIG_X86
uint32_t eax, ebx, ecx, edx, base;
base = xen_cpuid_base();
cpuid(base + 1, &eax, &ebx, &ecx, &edx);
if ((eax >> 16) < 4)
return true;
#endif
return false;
}
static void xs_reset_watches(void) static void xs_reset_watches(void)
{ {
int err; int err;
@ -745,9 +725,6 @@ static void xs_reset_watches(void)
if (!xen_hvm_domain() || xen_initial_domain()) if (!xen_hvm_domain() || xen_initial_domain())
return; return;
if (xen_strict_xenbus_quirk())
return;
if (!xenbus_read_unsigned("control", if (!xenbus_read_unsigned("control",
"platform-feature-xs_reset_watches", 0)) "platform-feature-xs_reset_watches", 0))
return; return;

View File

@ -288,14 +288,6 @@ static inline void *offset_to_ptr(const int *off)
#define __ADDRESSABLE(sym) \ #define __ADDRESSABLE(sym) \
___ADDRESSABLE(sym, __section(".discard.addressable")) ___ADDRESSABLE(sym, __section(".discard.addressable"))
#define __ADDRESSABLE_ASM(sym) \
.pushsection .discard.addressable,"aw"; \
.align ARCH_SEL(8,4); \
ARCH_SEL(.quad, .long) __stringify(sym); \
.popsection;
#define __ADDRESSABLE_ASM_STR(sym) __stringify(__ADDRESSABLE_ASM(sym))
/* /*
* This returns a constant expression while determining if an argument is * This returns a constant expression while determining if an argument is
* a constant expression, most importantly without evaluating the argument. * a constant expression, most importantly without evaluating the argument.