mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1159.170.57 (41b4b344W3zPVx6PTLPQLdqX4FCv_w)
Merge arcadians.cl.cam.ac.uk:/auto/anfs/scratch/labyrinth/iap10/xeno-clone/xen-2.6.10-rc2.bk into arcadians.cl.cam.ac.uk:/local/scratch-2/cl349/xen-2.0-linux.bk
This commit is contained in:
commit
135c8a2317
2 files changed
+28
-20
No files matched your search
@@ -42,12 +42,7 @@ extern void tapechar_init(void);
|
||||
*/
|
||||
static inline int uncached_access(struct file *file, unsigned long addr)
|
||||
{
|
||||
#ifdef CONFIG_XEN
|
||||
if (file->f_flags & O_SYNC)
|
||||
return 1;
|
||||
/* Xen sets correct MTRR type on non-RAM for us. */
|
||||
return 0;
|
||||
#elif defined(__i386__)
|
||||
#if defined(__i386__)
|
||||
/*
|
||||
* On the PPro and successors, the MTRRs are used to set
|
||||
* memory types for physical addresses outside main memory,
|
||||
@@ -206,21 +201,20 @@ static int mmap_mem(struct file * file, struct vm_area_struct * vma)
|
||||
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_XEN)
|
||||
#if defined(__sparc__)
|
||||
if (io_remap_page_range(vma,
|
||||
vma->vm_start,
|
||||
vma->vm_pgoff << PAGE_SHIFT,
|
||||
vma->vm_end-vma->vm_start,
|
||||
vma->vm_page_prot, 0))
|
||||
return -EAGAIN;
|
||||
#else
|
||||
if (io_remap_page_range(vma,
|
||||
vma->vm_start,
|
||||
vma->vm_pgoff << PAGE_SHIFT,
|
||||
vma->vm_end-vma->vm_start,
|
||||
vma->vm_page_prot))
|
||||
return -EAGAIN;
|
||||
#else
|
||||
/* Remap-pfn-range will mark the range VM_IO and VM_RESERVED */
|
||||
if (remap_pfn_range(vma,
|
||||
vma->vm_start,
|
||||
vma->vm_pgoff,
|
||||
vma->vm_end-vma->vm_start,
|
||||
vma->vm_page_prot))
|
||||
return -EAGAIN;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -144,9 +144,14 @@ int can_request_irq(unsigned int irq, unsigned long irqflags)
|
||||
return !action;
|
||||
}
|
||||
|
||||
/*
|
||||
* Internal function to register an irqaction - typically used to
|
||||
* allocate special interrupts that are part of the architecture.
|
||||
/**
|
||||
* setup_irq - register an irqaction structure
|
||||
* @irq: Interrupt to register
|
||||
* @irqaction: The irqaction structure to be registered
|
||||
*
|
||||
* Normally called by request_irq, this function can be used
|
||||
* directly to allocate special interrupts that are part of the
|
||||
* architecture.
|
||||
*/
|
||||
int setup_irq(unsigned int irq, struct irqaction * new)
|
||||
{
|
||||
@@ -216,8 +221,17 @@ int setup_irq(unsigned int irq, struct irqaction * new)
|
||||
}
|
||||
|
||||
/*
|
||||
* Internal function to unregister an irqaction - typically used to
|
||||
* deallocate special interrupts that are part of the architecture.
|
||||
* teardown_irq - unregister an irqaction
|
||||
* @irq: Interrupt line being freed
|
||||
* @old: Pointer to the irqaction that is to be unregistered
|
||||
*
|
||||
* This function is called by free_irq and does the actual
|
||||
* business of unregistering the handler. It exists as a
|
||||
* seperate function to enable handlers to be unregistered
|
||||
* for irqactions that have been allocated statically at
|
||||
* boot time.
|
||||
*
|
||||
* This function must not be called from interrupt context.
|
||||
*/
|
||||
int teardown_irq(unsigned int irq, struct irqaction * old)
|
||||
{
|
||||
|
||||