]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/sh/kernel/io_trapped.c
Merge branch 'omap-pool'
[linux-2.6-omap-h63xx.git] / arch / sh / kernel / io_trapped.c
index 39cd7f3aec7bc34b2139a272c497b2bbf8141276..c22853b059efd118528cbff82a02b399412add8c 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/bitops.h>
 #include <linux/vmalloc.h>
 #include <linux/module.h>
+#include <linux/init.h>
 #include <asm/system.h>
 #include <asm/mmu_context.h>
 #include <asm/uaccess.h>
@@ -32,6 +33,15 @@ EXPORT_SYMBOL_GPL(trapped_mem);
 #endif
 static DEFINE_SPINLOCK(trapped_lock);
 
+static int trapped_io_disable __read_mostly;
+
+static int __init trapped_io_setup(char *__unused)
+{
+       trapped_io_disable = 1;
+       return 1;
+}
+__setup("noiotrap", trapped_io_setup);
+
 int register_trapped_io(struct trapped_io *tiop)
 {
        struct resource *res;
@@ -39,6 +49,9 @@ int register_trapped_io(struct trapped_io *tiop)
        struct page *pages[TRAPPED_PAGES_MAX];
        int k, n;
 
+       if (unlikely(trapped_io_disable))
+               return 0;
+
        /* structure must be page aligned */
        if ((unsigned long)tiop & (PAGE_SIZE - 1))
                goto bad;