Merge tty-next into 3.6-rc1
This handles the merge issue in: arch/um/drivers/line.c arch/um/drivers/line.h And resolves the duplicate patches that were in both trees do to the tty-next branch not getting merged into 3.6-rc1. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
このコミットが含まれているのは:
@@ -126,6 +126,7 @@ config AUDIT_ARCH
|
||||
|
||||
menuconfig PARAVIRT_GUEST
|
||||
bool "Paravirtualized guest support"
|
||||
depends on BROKEN
|
||||
help
|
||||
Say Y here to get to see options related to running Linux under
|
||||
various hypervisors. This option alone does not add any kernel code.
|
||||
@@ -138,8 +139,6 @@ config PARAVIRT
|
||||
bool "Enable paravirtualization code"
|
||||
depends on PARAVIRT_GUEST
|
||||
default y
|
||||
bool
|
||||
default y
|
||||
help
|
||||
This changes the kernel so it can modify itself when it is run
|
||||
under a hypervisor, potentially improving performance significantly
|
||||
|
@@ -17,8 +17,8 @@
|
||||
#include <asm/intrinsics.h>
|
||||
|
||||
|
||||
#define ATOMIC_INIT(i) ((atomic_t) { (i) })
|
||||
#define ATOMIC64_INIT(i) ((atomic64_t) { (i) })
|
||||
#define ATOMIC_INIT(i) { (i) }
|
||||
#define ATOMIC64_INIT(i) { (i) }
|
||||
|
||||
#define atomic_read(v) (*(volatile int *)&(v)->counter)
|
||||
#define atomic64_read(v) (*(volatile long *)&(v)->counter)
|
||||
|
@@ -11,12 +11,10 @@ extern void no_iommu_init(void);
|
||||
extern int force_iommu, no_iommu;
|
||||
extern int iommu_pass_through;
|
||||
extern int iommu_detected;
|
||||
extern int iommu_group_mf;
|
||||
#else
|
||||
#define iommu_pass_through (0)
|
||||
#define no_iommu (1)
|
||||
#define iommu_detected (0)
|
||||
#define iommu_group_mf (0)
|
||||
#endif
|
||||
extern void iommu_dma_init(void);
|
||||
extern void machvec_init(const char *name);
|
||||
|
@@ -26,6 +26,7 @@
|
||||
|
||||
/* Select x86 specific features in <linux/kvm.h> */
|
||||
#define __KVM_HAVE_IOAPIC
|
||||
#define __KVM_HAVE_IRQ_LINE
|
||||
#define __KVM_HAVE_DEVICE_ASSIGNMENT
|
||||
|
||||
/* Architectural interrupt line count. */
|
||||
|
@@ -120,7 +120,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *);
|
||||
# ifdef MACHVEC_PLATFORM_HEADER
|
||||
# include MACHVEC_PLATFORM_HEADER
|
||||
# else
|
||||
# define platform_name ia64_mv.name
|
||||
# define ia64_platform_name ia64_mv.name
|
||||
# define platform_setup ia64_mv.setup
|
||||
# define platform_cpu_init ia64_mv.cpu_init
|
||||
# define platform_irq_init ia64_mv.irq_init
|
||||
|
@@ -10,7 +10,7 @@ extern ia64_mv_setup_t dig_setup;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "dig"
|
||||
#define ia64_platform_name "dig"
|
||||
#define platform_setup dig_setup
|
||||
|
||||
#endif /* _ASM_IA64_MACHVEC_DIG_h */
|
||||
|
@@ -11,7 +11,7 @@ extern ia64_mv_dma_init pci_iommu_alloc;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "dig_vtd"
|
||||
#define ia64_platform_name "dig_vtd"
|
||||
#define platform_setup dig_setup
|
||||
#define platform_dma_init pci_iommu_alloc
|
||||
|
||||
|
@@ -11,7 +11,7 @@ extern ia64_mv_irq_init_t hpsim_irq_init;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "hpsim"
|
||||
#define ia64_platform_name "hpsim"
|
||||
#define platform_setup hpsim_setup
|
||||
#define platform_irq_init hpsim_irq_init
|
||||
|
||||
|
@@ -11,7 +11,7 @@ extern ia64_mv_dma_init sba_dma_init;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "hpzx1"
|
||||
#define ia64_platform_name "hpzx1"
|
||||
#define platform_setup dig_setup
|
||||
#define platform_dma_init sba_dma_init
|
||||
|
||||
|
@@ -11,7 +11,7 @@ extern ia64_mv_dma_get_ops hwsw_dma_get_ops;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "hpzx1_swiotlb"
|
||||
#define ia64_platform_name "hpzx1_swiotlb"
|
||||
#define platform_setup dig_setup
|
||||
#define platform_dma_init machvec_noop
|
||||
#define platform_dma_get_ops hwsw_dma_get_ops
|
||||
|
@@ -71,7 +71,7 @@ extern ia64_mv_pci_fixup_bus_t sn_pci_fixup_bus;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "sn2"
|
||||
#define ia64_platform_name "sn2"
|
||||
#define platform_setup sn_setup
|
||||
#define platform_cpu_init sn_cpu_init
|
||||
#define platform_irq_init sn_irq_init
|
||||
|
@@ -20,7 +20,7 @@ extern ia64_mv_setup_t uv_setup;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "uv"
|
||||
#define ia64_platform_name "uv"
|
||||
#define platform_setup uv_setup
|
||||
|
||||
#endif /* _ASM_IA64_MACHVEC_UV_H */
|
||||
|
@@ -13,7 +13,7 @@ extern ia64_mv_send_ipi_t xen_platform_send_ipi;
|
||||
* platform's machvec structure. When compiling a non-generic kernel,
|
||||
* the macros are used directly.
|
||||
*/
|
||||
#define platform_name "xen"
|
||||
#define ia64_platform_name "xen"
|
||||
#define platform_setup dig_setup
|
||||
#define platform_cpu_init xen_cpu_init
|
||||
#define platform_irq_init xen_irq_init
|
||||
|
@@ -719,7 +719,7 @@ enum idle_boot_override {IDLE_NO_OVERRIDE=0, IDLE_HALT, IDLE_FORCE_MWAIT,
|
||||
|
||||
void default_idle(void);
|
||||
|
||||
#define ia64_platform_is(x) (strcmp(x, platform_name) == 0)
|
||||
#define ia64_platform_is(x) (strcmp(x, ia64_platform_name) == 0)
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
@@ -12,7 +12,7 @@ EXPORT_SYMBOL(memset);
|
||||
EXPORT_SYMBOL(memcpy);
|
||||
EXPORT_SYMBOL(strlen);
|
||||
|
||||
#include<asm/pgtable.h>
|
||||
#include <asm/pgtable.h>
|
||||
EXPORT_SYMBOL_GPL(empty_zero_page);
|
||||
|
||||
#include <asm/checksum.h>
|
||||
|
@@ -23,7 +23,6 @@
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/ptrace.h>
|
||||
#include <linux/random.h> /* for rand_initialize_irq() */
|
||||
#include <linux/signal.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/threads.h>
|
||||
|
@@ -32,7 +32,6 @@ int force_iommu __read_mostly;
|
||||
#endif
|
||||
|
||||
int iommu_pass_through;
|
||||
int iommu_group_mf;
|
||||
|
||||
/* Dummy device used for NULL arguments (normally ISA). Better would
|
||||
be probably a smaller DMA mask, but this is bug-to-bug compatible
|
||||
|
@@ -2353,7 +2353,6 @@ pfm_smpl_buffer_alloc(struct task_struct *task, struct file *filp, pfm_context_t
|
||||
*/
|
||||
insert_vm_struct(mm, vma);
|
||||
|
||||
mm->total_vm += size >> PAGE_SHIFT;
|
||||
vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file,
|
||||
vma_pages(vma));
|
||||
up_write(&task->mm->mmap_sem);
|
||||
|
@@ -382,7 +382,6 @@ smp_callin (void)
|
||||
set_numa_node(cpu_to_node_map[cpuid]);
|
||||
set_numa_mem(local_memory_node(cpu_to_node_map[cpuid]));
|
||||
|
||||
ipi_call_lock_irq();
|
||||
spin_lock(&vector_lock);
|
||||
/* Setup the per cpu irq handling data structures */
|
||||
__setup_vector_irq(cpuid);
|
||||
@@ -390,7 +389,6 @@ smp_callin (void)
|
||||
set_cpu_online(cpuid, true);
|
||||
per_cpu(cpu_state, cpuid) = CPU_ONLINE;
|
||||
spin_unlock(&vector_lock);
|
||||
ipi_call_unlock_irq();
|
||||
|
||||
smp_setup_percpu_timer();
|
||||
|
||||
|
@@ -19,9 +19,11 @@ if VIRTUALIZATION
|
||||
|
||||
config KVM
|
||||
tristate "Kernel-based Virtual Machine (KVM) support"
|
||||
depends on BROKEN
|
||||
depends on HAVE_KVM && MODULES && EXPERIMENTAL
|
||||
# for device assignment:
|
||||
depends on PCI
|
||||
depends on BROKEN
|
||||
select PREEMPT_NOTIFIERS
|
||||
select ANON_INODES
|
||||
select HAVE_KVM_IRQCHIP
|
||||
|
@@ -20,9 +20,9 @@
|
||||
*/
|
||||
|
||||
|
||||
#include<linux/kernel.h>
|
||||
#include<linux/module.h>
|
||||
#include<asm/fpswa.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <asm/fpswa.h>
|
||||
|
||||
#include "vcpu.h"
|
||||
|
||||
|
@@ -72,6 +72,10 @@ mapped_kernel_page_is_present (unsigned long address)
|
||||
return pte_present(pte);
|
||||
}
|
||||
|
||||
# define VM_READ_BIT 0
|
||||
# define VM_WRITE_BIT 1
|
||||
# define VM_EXEC_BIT 2
|
||||
|
||||
void __kprobes
|
||||
ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *regs)
|
||||
{
|
||||
@@ -81,6 +85,12 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||
struct siginfo si;
|
||||
unsigned long mask;
|
||||
int fault;
|
||||
unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
|
||||
|
||||
mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
|
||||
| (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT));
|
||||
|
||||
flags |= ((mask & VM_WRITE) ? FAULT_FLAG_WRITE : 0);
|
||||
|
||||
/* mmap_sem is performance critical.... */
|
||||
prefetchw(&mm->mmap_sem);
|
||||
@@ -109,6 +119,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||
if (notify_page_fault(regs, TRAP_BRKPT))
|
||||
return;
|
||||
|
||||
retry:
|
||||
down_read(&mm->mmap_sem);
|
||||
|
||||
vma = find_vma_prev(mm, address, &prev_vma);
|
||||
@@ -130,10 +141,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||
|
||||
/* OK, we've got a good vm_area for this memory area. Check the access permissions: */
|
||||
|
||||
# define VM_READ_BIT 0
|
||||
# define VM_WRITE_BIT 1
|
||||
# define VM_EXEC_BIT 2
|
||||
|
||||
# if (((1 << VM_READ_BIT) != VM_READ || (1 << VM_WRITE_BIT) != VM_WRITE) \
|
||||
|| (1 << VM_EXEC_BIT) != VM_EXEC)
|
||||
# error File is out of sync with <linux/mm.h>. Please update.
|
||||
@@ -142,9 +149,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||
if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
|
||||
goto bad_area;
|
||||
|
||||
mask = ( (((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
|
||||
| (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT));
|
||||
|
||||
if ((vma->vm_flags & mask) != mask)
|
||||
goto bad_area;
|
||||
|
||||
@@ -153,7 +157,11 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||
* sure we exit gracefully rather than endlessly redo the
|
||||
* fault.
|
||||
*/
|
||||
fault = handle_mm_fault(mm, vma, address, (mask & VM_WRITE) ? FAULT_FLAG_WRITE : 0);
|
||||
fault = handle_mm_fault(mm, vma, address, flags);
|
||||
|
||||
if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
|
||||
return;
|
||||
|
||||
if (unlikely(fault & VM_FAULT_ERROR)) {
|
||||
/*
|
||||
* We ran out of memory, or some other thing happened
|
||||
@@ -168,10 +176,24 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||
}
|
||||
BUG();
|
||||
}
|
||||
if (fault & VM_FAULT_MAJOR)
|
||||
current->maj_flt++;
|
||||
else
|
||||
current->min_flt++;
|
||||
|
||||
if (flags & FAULT_FLAG_ALLOW_RETRY) {
|
||||
if (fault & VM_FAULT_MAJOR)
|
||||
current->maj_flt++;
|
||||
else
|
||||
current->min_flt++;
|
||||
if (fault & VM_FAULT_RETRY) {
|
||||
flags &= ~FAULT_FLAG_ALLOW_RETRY;
|
||||
|
||||
/* No need to up_read(&mm->mmap_sem) as we would
|
||||
* have already released it in __lock_page_or_retry
|
||||
* in mm/filemap.c.
|
||||
*/
|
||||
|
||||
goto retry;
|
||||
}
|
||||
}
|
||||
|
||||
up_read(&mm->mmap_sem);
|
||||
return;
|
||||
|
||||
|
@@ -30,8 +30,8 @@ static void __devinit pci_fixup_video(struct pci_dev *pdev)
|
||||
struct pci_bus *bus;
|
||||
u16 config;
|
||||
|
||||
if ((strcmp(platform_name, "dig") != 0)
|
||||
&& (strcmp(platform_name, "hpzx1") != 0))
|
||||
if ((strcmp(ia64_platform_name, "dig") != 0)
|
||||
&& (strcmp(ia64_platform_name, "hpzx1") != 0))
|
||||
return;
|
||||
/* Maybe, this machine supports legacy memory map. */
|
||||
|
||||
|
@@ -351,6 +351,8 @@ pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
#endif
|
||||
|
||||
INIT_LIST_HEAD(&info.resources);
|
||||
/* insert busn resource at first */
|
||||
pci_add_resource(&info.resources, &root->secondary);
|
||||
acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window,
|
||||
&windows);
|
||||
if (windows) {
|
||||
@@ -384,7 +386,7 @@ pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pbus->subordinate = pci_scan_child_bus(pbus);
|
||||
pci_scan_child_bus(pbus);
|
||||
return pbus;
|
||||
|
||||
out3:
|
||||
@@ -496,15 +498,6 @@ pcibios_align_resource (void *data, const struct resource *res,
|
||||
return res->start;
|
||||
}
|
||||
|
||||
/*
|
||||
* PCI BIOS setup, always defaults to SAL interface
|
||||
*/
|
||||
char * __init
|
||||
pcibios_setup (char *str)
|
||||
{
|
||||
return str;
|
||||
}
|
||||
|
||||
int
|
||||
pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma,
|
||||
enum pci_mmap_state mmap_state, int write_combine)
|
||||
|
新しいイシューから参照
ユーザーをブロックする