[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] merge with linux-2.6.18-xen.hg (staging)
# HG changeset patch # User Alex Williamson <alex.williamson@xxxxxx> # Date 1189454368 21600 # Node ID 099625b07ae7ea3343b7842b2148dc2125ca14eb # Parent 8aa8af371be0e9c46b22615ba7e8990ed738ea12 # Parent 42d2c2ce9b1440adc53467b1f3095671f6b9f37d merge with linux-2.6.18-xen.hg (staging) --- arch/i386/kernel/setup-xen.c | 2 - arch/ia64/kernel/setup.c | 1 arch/powerpc/platforms/xen/setup.c | 1 arch/x86_64/kernel/setup-xen.c | 1 drivers/xen/console/console.c | 6 ---- drivers/xen/core/evtchn.c | 50 +++++++++++++++++----------------- drivers/xen/evtchn/evtchn.c | 16 +--------- include/asm-generic/pci.h | 2 + include/asm-i386/mach-xen/asm/pci.h | 4 ++ include/asm-x86_64/mach-xen/asm/pci.h | 4 ++ include/xen/evtchn.h | 4 +- include/xen/xencons.h | 2 - 12 files changed, 38 insertions(+), 55 deletions(-) diff -r 8aa8af371be0 -r 099625b07ae7 arch/i386/kernel/setup-xen.c --- a/arch/i386/kernel/setup-xen.c Fri Sep 07 13:57:35 2007 -0600 +++ b/arch/i386/kernel/setup-xen.c Mon Sep 10 13:59:28 2007 -0600 @@ -1897,8 +1897,6 @@ void __init setup_arch(char **cmdline_p) #endif } tsc_init(); - - xencons_early_setup(); } static int diff -r 8aa8af371be0 -r 099625b07ae7 arch/ia64/kernel/setup.c --- a/arch/ia64/kernel/setup.c Fri Sep 07 13:57:35 2007 -0600 +++ b/arch/ia64/kernel/setup.c Mon Sep 10 13:59:28 2007 -0600 @@ -579,7 +579,6 @@ setup_arch (char **cmdline_p) add_preferred_console(name, offset, NULL); } } - xencons_early_setup(); #endif #ifdef CONFIG_VT diff -r 8aa8af371be0 -r 099625b07ae7 arch/powerpc/platforms/xen/setup.c --- a/arch/powerpc/platforms/xen/setup.c Fri Sep 07 13:57:35 2007 -0600 +++ b/arch/powerpc/platforms/xen/setup.c Mon Sep 10 13:59:28 2007 -0600 @@ -164,7 +164,6 @@ static void __init xenppc_init_early(voi xen_setup_time(&mach_maple_md); - xencons_early_setup(); add_preferred_console("xvc", 0, NULL); if (get_property(xen, "power-control", NULL)) diff -r 8aa8af371be0 -r 099625b07ae7 arch/x86_64/kernel/setup-xen.c --- a/arch/x86_64/kernel/setup-xen.c Fri Sep 07 13:57:35 2007 -0600 +++ b/arch/x86_64/kernel/setup-xen.c Mon Sep 10 13:59:28 2007 -0600 @@ -977,7 +977,6 @@ void __init setup_arch(char **cmdline_p) #endif } } - xencons_early_setup(); #else /* CONFIG_XEN */ #ifdef CONFIG_VT diff -r 8aa8af371be0 -r 099625b07ae7 drivers/xen/console/console.c --- a/drivers/xen/console/console.c Fri Sep 07 13:57:35 2007 -0600 +++ b/drivers/xen/console/console.c Mon Sep 10 13:59:28 2007 -0600 @@ -85,12 +85,6 @@ extern int sysrq_enabled; extern int sysrq_enabled; #endif -void xencons_early_setup(void) -{ - extern int console_use_vt; - console_use_vt = 0; -} - static int __init xencons_setup(char *str) { char *q; diff -r 8aa8af371be0 -r 099625b07ae7 drivers/xen/core/evtchn.c --- a/drivers/xen/core/evtchn.c Fri Sep 07 13:57:35 2007 -0600 +++ b/drivers/xen/core/evtchn.c Mon Sep 10 13:59:28 2007 -0600 @@ -125,7 +125,7 @@ static inline unsigned long active_evtch ~sh->evtchn_mask[idx]); } -void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu) +static void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu) { shared_info_t *s = HYPERVISOR_shared_info; int irq = evtchn_to_irq[chn]; @@ -163,6 +163,10 @@ static inline unsigned long active_evtch unsigned int idx) { return (sh->evtchn_pending[idx] & ~sh->evtchn_mask[idx]); +} + +static void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu) +{ } static void init_evtchn_cpu_bindings(void) @@ -588,29 +592,27 @@ EXPORT_SYMBOL_GPL(unbind_from_irqhandler EXPORT_SYMBOL_GPL(unbind_from_irqhandler); #ifdef CONFIG_SMP -/* Rebind an evtchn so that it gets delivered to a specific cpu */ -static void rebind_irq_to_cpu(unsigned irq, unsigned tcpu) -{ - struct evtchn_bind_vcpu bind_vcpu; - int evtchn = evtchn_from_irq(irq); - - if (!VALID_EVTCHN(evtchn)) - return; - - /* Send future instances of this interrupt to other vcpu. */ - bind_vcpu.port = evtchn; - bind_vcpu.vcpu = tcpu; - - /* - * If this fails, it usually just indicates that we're dealing with a - * virq or IPI channel, which don't actually need to be rebound. Ignore - * it, but don't do the xenlinux-level rebind in that case. - */ - if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind_vcpu) == 0) - bind_evtchn_to_cpu(evtchn, tcpu); -} - -static void set_affinity_irq(unsigned irq, cpumask_t dest) +void rebind_evtchn_to_cpu(int port, unsigned int cpu) +{ + struct evtchn_bind_vcpu ebv = { .port = port, .vcpu = cpu }; + int masked; + + masked = test_and_set_evtchn_mask(port); + if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &ebv) == 0) + bind_evtchn_to_cpu(port, cpu); + if (!masked) + unmask_evtchn(port); +} + +static void rebind_irq_to_cpu(unsigned int irq, unsigned int tcpu) +{ + int evtchn = evtchn_from_irq(irq); + + if (VALID_EVTCHN(evtchn)) + rebind_evtchn_to_cpu(evtchn, tcpu); +} + +static void set_affinity_irq(unsigned int irq, cpumask_t dest) { unsigned tcpu = first_cpu(dest); rebind_irq_to_cpu(irq, tcpu); diff -r 8aa8af371be0 -r 099625b07ae7 drivers/xen/evtchn/evtchn.c --- a/drivers/xen/evtchn/evtchn.c Fri Sep 07 13:57:35 2007 -0600 +++ b/drivers/xen/evtchn/evtchn.c Mon Sep 10 13:59:28 2007 -0600 @@ -96,18 +96,6 @@ void evtchn_device_upcall(int port) spin_unlock(&port_user_lock); } -static void evtchn_rebind_cpu(evtchn_port_t port, unsigned int cpu) -{ - struct evtchn_bind_vcpu ebv = { .port = port, .vcpu = cpu }; - int masked; - - masked = test_and_set_evtchn_mask(port); - if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &ebv) == 0) - bind_evtchn_to_cpu(port, cpu); - if (!masked) - unmask_evtchn(port); -} - static void evtchn_check_wrong_delivery(struct per_user_data *u) { evtchn_port_t port; @@ -127,7 +115,7 @@ static void evtchn_check_wrong_delivery( for (port = 0; port < NR_EVENT_CHANNELS; port++) if (port_user[port] == u) - evtchn_rebind_cpu(port, current_cpu); + rebind_evtchn_to_cpu(port, current_cpu); u->bind_cpu = current_cpu; u->nr_event_wrong_delivery = 0; @@ -258,7 +246,7 @@ static void evtchn_bind_to_user(struct p u->bind_cpu = bind_cpu; } - evtchn_rebind_cpu(port, u->bind_cpu); + rebind_evtchn_to_cpu(port, u->bind_cpu); unmask_evtchn(port); diff -r 8aa8af371be0 -r 099625b07ae7 include/asm-generic/pci.h --- a/include/asm-generic/pci.h Fri Sep 07 13:57:35 2007 -0600 +++ b/include/asm-generic/pci.h Mon Sep 10 13:59:28 2007 -0600 @@ -43,7 +43,9 @@ pcibios_select_root(struct pci_dev *pdev return root; } +#ifndef pcibios_scan_all_fns #define pcibios_scan_all_fns(a, b) 0 +#endif #ifndef HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) diff -r 8aa8af371be0 -r 099625b07ae7 include/asm-i386/mach-xen/asm/pci.h --- a/include/asm-i386/mach-xen/asm/pci.h Fri Sep 07 13:57:35 2007 -0600 +++ b/include/asm-i386/mach-xen/asm/pci.h Mon Sep 10 13:59:28 2007 -0600 @@ -14,7 +14,9 @@ extern unsigned int pcibios_assign_all_b #else #define pcibios_assign_all_busses() 0 #endif -#define pcibios_scan_all_fns(a, b) 0 + +#include <asm/hypervisor.h> +#define pcibios_scan_all_fns(a, b) (!is_initial_xendomain()) extern unsigned long pci_mem_start; #define PCIBIOS_MIN_IO 0x1000 diff -r 8aa8af371be0 -r 099625b07ae7 include/asm-x86_64/mach-xen/asm/pci.h --- a/include/asm-x86_64/mach-xen/asm/pci.h Fri Sep 07 13:57:35 2007 -0600 +++ b/include/asm-x86_64/mach-xen/asm/pci.h Mon Sep 10 13:59:28 2007 -0600 @@ -16,7 +16,9 @@ extern unsigned int pcibios_assign_all_b #else #define pcibios_assign_all_busses() 0 #endif -#define pcibios_scan_all_fns(a, b) 0 + +#include <asm/hypervisor.h> +#define pcibios_scan_all_fns(a, b) (!is_initial_xendomain()) extern unsigned long pci_mem_start; #define PCIBIOS_MIN_IO 0x1000 diff -r 8aa8af371be0 -r 099625b07ae7 include/xen/evtchn.h --- a/include/xen/evtchn.h Fri Sep 07 13:57:35 2007 -0600 +++ b/include/xen/evtchn.h Mon Sep 10 13:59:28 2007 -0600 @@ -105,9 +105,9 @@ void unmask_evtchn(int port); void unmask_evtchn(int port); #ifdef CONFIG_SMP -void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu); +void rebind_evtchn_to_cpu(int port, unsigned int cpu); #else -#define bind_evtchn_to_cpu(chn, cpu) ((void)0) +#define rebind_evtchn_to_cpu(port, cpu) ((void)0) #endif static inline int test_and_set_evtchn_mask(int port) diff -r 8aa8af371be0 -r 099625b07ae7 include/xen/xencons.h --- a/include/xen/xencons.h Fri Sep 07 13:57:35 2007 -0600 +++ b/include/xen/xencons.h Mon Sep 10 13:59:28 2007 -0600 @@ -14,6 +14,4 @@ int xencons_ring_init(void); int xencons_ring_init(void); int xencons_ring_send(const char *data, unsigned len); -void xencons_early_setup(void); - #endif /* __ASM_XENCONS_H__ */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |