1. 26 Mar, 2006 8 commits
    • James Bottomley's avatar
      [PATCH] Add flush_kernel_dcache_page() API · 5a3a5a98
      James Bottomley authored
      We have a problem in a lot of emulated storage in that it takes a page from
      get_user_pages() and does something like
      
      kmap_atomic(page)
      modify page
      kunmap_atomic(page)
      
      However, nothing has flushed the kernel cache view of the page before the
      kunmap.  We need a lightweight API to do this, so this new API would
      specifically be for flushing the kernel cache view of a user page which the
      kernel has modified.  The driver would need to add
      flush_kernel_dcache_page(page) before the final kunmap.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5a3a5a98
    • James Bottomley's avatar
      [PATCH] Add API for flushing Anon pages · 03beb076
      James Bottomley authored
      Currently, get_user_pages() returns fully coherent pages to the kernel for
      anything other than anonymous pages.  This is a problem for things like
      fuse and the SCSI generic ioctl SG_IO which can potentially wish to do DMA
      to anonymous pages passed in by users.
      
      The fix is to add a new memory management API: flush_anon_page() which
      is used in get_user_pages() to make anonymous pages coherent.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      03beb076
    • Steven Rostedt's avatar
      [PATCH] protect remove_proc_entry · 64a07bd8
      Steven Rostedt authored
      It has been discovered that the remove_proc_entry has a race in the removing
      of entries in the proc file system that are siblings.  There's no protection
      around the traversing and removing of elements that belong in the same
      subdirectory.
      
      This subdirectory list is protected in other areas by the BKL.  So the BKL was
      at first used to protect this area too, but unfortunately, remove_proc_entry
      may be called with spinlocks held.  The BKL may schedule, so this was not a
      solution.
      
      The final solution was to add a new global spin lock to protect this list,
      called proc_subdir_lock.  This lock now protects the list in
      remove_proc_entry, and I also went around looking for other areas that this
      list is modified and added this protection there too.  Care must be taken
      since these locations call several functions that may also schedule.
      
      Since I don't see any location that these functions that modify the
      subdirectory list are called by interrupts, the irqsave/restore versions of
      the spin lock was _not_ used.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      64a07bd8
    • Ingo Molnar's avatar
      [PATCH] warn if free_irq() is called from IRQ context · cd7b24bb
      Ingo Molnar authored
      Warn if free_irq() is called in IRQ context - free_irq() can execute /proc
      VFS work, which must not be done in IRQ context.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      cd7b24bb
    • Ingo Molnar's avatar
      [PATCH] drivers/block/floppy.c: dont free_irq() from irq context · 6dc659d8
      Ingo Molnar authored
      free_irq() should not be executed from softirq context.
      
      Found by the lock validator.  The fix is to push fd_free_irq() into
      keventd.  The code validates fine with this patch applied.
      
      (akpm: this is revolting, but so is floppy.c)
      
      [akpm@osdl.org: added flush_scheduled_work()]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6dc659d8
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-serial · 36ddf5bb
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-serial:
        [ARM] 3383/3: ixp2000: ixdp2x01 platform serial conversion
        [SERIAL] amba-pl010: Remove accessor macros
        [SERIAL] remove 8250_acpi (replaced by 8250_pnp and PNPACPI)
        [SERIAL] icom: select FW_LOADER
      36ddf5bb
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · a41622ea
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] 3030/2: fix permission check in the obscur cmpxchg syscall
        [ARM] nommu: rename compressed/head.S symbols to a new style
        [ARM] select TLS_REG_EMUL and NEEDS_SYSCALL_FOR_CMPXCHG
        [ARM] nommu: Move hardware page table definitions to pgtable-hwdef.h
        [ARM] Move read of processor ID out of lookup_processor_type()
        [ARM] Fix typo in tlbflush.h
        [ARM] noMMU: removes TLB codes in nommu mode
        [ARM] noMMU: block sys_fork in nommu mode
        [ARM] 3399/1: Fix link problem when CONFIG_PRINTK is disabled
        [ARM] 3398/1: Fix the VFP registers loading/storing base address
        [ARM] 3397/1: AT91RM9200 Header update
        [ARM] 3385/1: Battery support for sharp zaurus sl-5500 (collie)
        [ARM] SMP: don't set cpu_*_map in smp_prepare_boot_cpu
        include/linux/clk.h is betraying its ARM origins
        [ARM] Move enable_irq and disable_irq to assembler.h
        [ARM] 3391/1: use PLAT8250_DEV_PLATFORM{,1} for platform device id instead of 0/1
      a41622ea
    • Andi Kleen's avatar
      [PATCH] Fix compilation of processor_idle.c on IA64 · 0b5c59a1
      Andi Kleen authored
      Broken earlier by me by a x86-64 patch.
      
      The code was optimized away, but the compiler still complained about an
      undeclared function.
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      0b5c59a1
  2. 25 Mar, 2006 32 commits