mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
sh: Add a command line option for disabling I/O trapping.
This adds a 'noiotrap' kernel command line option to permit disabling of I/O trapping. This is mostly useful for running on emulators where the physical device limitations are not an issue. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
8dafc34616
commit
eeee7853c4
2 changed files with 15 additions and 0 deletions
|
@ -1544,6 +1544,8 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
Valid arguments: on, off
|
Valid arguments: on, off
|
||||||
Default: on
|
Default: on
|
||||||
|
|
||||||
|
noiotrap [SH] Disables trapped I/O port accesses.
|
||||||
|
|
||||||
noirqdebug [X86-32] Disables the code which attempts to detect and
|
noirqdebug [X86-32] Disables the code which attempts to detect and
|
||||||
disable unhandled interrupt sources.
|
disable unhandled interrupt sources.
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/init.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
|
@ -32,6 +33,15 @@ EXPORT_SYMBOL_GPL(trapped_mem);
|
||||||
#endif
|
#endif
|
||||||
static DEFINE_SPINLOCK(trapped_lock);
|
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)
|
int register_trapped_io(struct trapped_io *tiop)
|
||||||
{
|
{
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
|
@ -39,6 +49,9 @@ int register_trapped_io(struct trapped_io *tiop)
|
||||||
struct page *pages[TRAPPED_PAGES_MAX];
|
struct page *pages[TRAPPED_PAGES_MAX];
|
||||||
int k, n;
|
int k, n;
|
||||||
|
|
||||||
|
if (unlikely(trapped_io_disable))
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* structure must be page aligned */
|
/* structure must be page aligned */
|
||||||
if ((unsigned long)tiop & (PAGE_SIZE - 1))
|
if ((unsigned long)tiop & (PAGE_SIZE - 1))
|
||||||
goto bad;
|
goto bad;
|
||||||
|
|
Loading…
Reference in a new issue