]>
Commit | Line | Data |
---|---|---|
2cb7cef9 BS |
1 | From: Suresh Siddha <suresh.b.siddha@intel.com> |
2 | Subject: x64, x2apic/intr-remap: introcude self IPI to genapic routines | |
3 | References: fate #303948 and fate #303984 | |
4 | Patch-Mainline: queued for .28 | |
5 | Commit-ID: cff73a6ffaed726780b001937d2a42efde553922 | |
6 | ||
7 | Signed-off-by: Thomas Renninger <trenn@suse.de> | |
8 | ||
9 | Introduce self IPI op for genapic. | |
10 | ||
11 | Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> | |
12 | Cc: akpm@linux-foundation.org | |
13 | Cc: arjan@linux.intel.com | |
14 | Cc: andi@firstfloor.org | |
15 | Cc: ebiederm@xmission.com | |
16 | Cc: jbarnes@virtuousgeek.org | |
17 | Cc: steiner@sgi.com | |
18 | Signed-off-by: Ingo Molnar <mingo@elte.hu> | |
19 | ||
20 | Automatically created from "patches.arch/x2APIC_PATCH_20_of_41_cff73a6ffaed726780b001937d2a42efde553922" by xen-port-patches.py | |
21 | ||
22 | Index: head-2008-11-04/arch/x86/kernel/genapic_64-xen.c | |
23 | =================================================================== | |
24 | --- head-2008-11-04.orig/arch/x86/kernel/genapic_64-xen.c 2008-11-04 11:55:22.000000000 +0100 | |
25 | +++ head-2008-11-04/arch/x86/kernel/genapic_64-xen.c 2008-11-04 14:40:00.000000000 +0100 | |
26 | @@ -72,18 +72,12 @@ void __init setup_apic_routing(void) | |
27 | ||
28 | /* Same for both flat and physical. */ | |
29 | ||
30 | -#ifdef CONFIG_XEN | |
31 | -extern void xen_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest); | |
32 | -#endif | |
33 | - | |
34 | -void send_IPI_self(int vector) | |
35 | -{ | |
36 | #ifndef CONFIG_XEN | |
37 | +void apic_send_IPI_self(int vector) | |
38 | +{ | |
39 | __send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); | |
40 | -#else | |
41 | - xen_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); | |
42 | -#endif | |
43 | } | |
44 | +#endif | |
45 | ||
46 | int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |
47 | { | |
48 | Index: head-2008-11-04/arch/x86/kernel/genapic_xen_64.c | |
49 | =================================================================== | |
50 | --- head-2008-11-04.orig/arch/x86/kernel/genapic_xen_64.c 2008-11-04 11:55:22.000000000 +0100 | |
51 | +++ head-2008-11-04/arch/x86/kernel/genapic_xen_64.c 2008-11-04 14:41:17.000000000 +0100 | |
52 | @@ -34,7 +34,8 @@ static inline void __send_IPI_one(unsign | |
53 | notify_remote_via_irq(irq); | |
54 | } | |
55 | ||
56 | -void xen_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest) | |
57 | +static void xen_send_IPI_shortcut(unsigned int shortcut, int vector, | |
58 | + unsigned int dest) | |
59 | { | |
60 | int cpu; | |
61 | ||
62 | @@ -116,6 +117,11 @@ static void xen_send_IPI_mask(cpumask_t | |
63 | local_irq_restore(flags); | |
64 | } | |
65 | ||
66 | +static void xen_send_IPI_self(int vector) | |
67 | +{ | |
68 | + xen_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); | |
69 | +} | |
70 | + | |
71 | #ifdef CONFIG_XEN_PRIVILEGED_GUEST | |
72 | static int xen_apic_id_registered(void) | |
73 | { | |
74 | @@ -152,6 +158,7 @@ struct genapic apic_xen = { | |
75 | .send_IPI_all = xen_send_IPI_all, | |
76 | .send_IPI_allbutself = xen_send_IPI_allbutself, | |
77 | .send_IPI_mask = xen_send_IPI_mask, | |
78 | + .send_IPI_self = xen_send_IPI_self, | |
79 | .cpu_mask_to_apicid = xen_cpu_mask_to_apicid, | |
80 | .phys_pkg_id = phys_pkg_id, | |
81 | }; |