From 05cf189308821d7de9e36e5e061c0ded2f0ab7c5 Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Tue, 30 Nov 2004 00:49:54 +0000 Subject: [PATCH 1/2] bitkeeper revision 1.1159.202.1 (41abc3b28rm0fezCkoFB5SbFQ3QnFw) Add kerneldoc comments to teardow_irq --- .../kernel/irq/manage.c | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/linux-2.6.10-rc2-xen-sparse/kernel/irq/manage.c b/linux-2.6.10-rc2-xen-sparse/kernel/irq/manage.c index 0c69a28669..fb7f365b3d 100644 --- a/linux-2.6.10-rc2-xen-sparse/kernel/irq/manage.c +++ b/linux-2.6.10-rc2-xen-sparse/kernel/irq/manage.c @@ -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) { From 810260e9fc6dcdcefba91ce62ffc821c1ab3f85d Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Sun, 5 Dec 2004 19:04:07 +0000 Subject: [PATCH 2/2] bitkeeper revision 1.1159.202.2 (41b35ba7ESi-KakWZHP4C9MhYX61Sw) Cleanup xen-specific --- .../drivers/char/mem.c | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/linux-2.6.10-rc2-xen-sparse/drivers/char/mem.c b/linux-2.6.10-rc2-xen-sparse/drivers/char/mem.c index d6973d3c31..49e94cac98 100644 --- a/linux-2.6.10-rc2-xen-sparse/drivers/char/mem.c +++ b/linux-2.6.10-rc2-xen-sparse/drivers/char/mem.c @@ -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; }