Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3df59529 authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds
Browse files

[PATCH] uml: make the emulated iomem driver work on 2.6



This makes the minimal fixes needed to make the UML iomem driver work in 2.6.

Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent a3813329
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -204,5 +204,11 @@ config UML_RANDOM
	http://sourceforge.net/projects/gkernel/).  rngd periodically reads
	/dev/hwrng and injects the entropy into /dev/random.

config MMAPPER
	tristate "iomem emulation driver"
	help
	This driver allows a host file to be used as emulated IO memory inside
	UML.

endmenu
+20 −4
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <linux/slab.h>
#include <linux/init.h> 
#include <linux/smp_lock.h>
#include <linux/miscdevice.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/pgtable.h>
@@ -117,24 +118,39 @@ static struct file_operations mmapper_fops = {
	.release	= mmapper_release,
};

static struct miscdevice mmapper_dev = {
	.minor		= MISC_DYNAMIC_MINOR,
	.name		= "mmapper",
	.fops		= &mmapper_fops
};

static int __init mmapper_init(void)
{
	int err;

	printk(KERN_INFO "Mapper v0.1\n");

	v_buf = (char *) find_iomem("mmapper", &mmapper_size);
	if(mmapper_size == 0){
		printk(KERN_ERR "mmapper_init - find_iomem failed\n");
		return(0);
		goto out;
	}

	p_buf = __pa(v_buf);
	err = misc_register(&mmapper_dev);
	if(err){
		printk(KERN_ERR "mmapper - misc_register failed, err = %d\n",
		       err);
		goto out;
	}

	devfs_mk_cdev(MKDEV(30, 0), S_IFCHR|S_IRUGO|S_IWUGO, "mmapper");
	return(0);
	p_buf = __pa(v_buf);
out:
	return 0;
}

static void mmapper_exit(void)
{
	misc_deregister(&mmapper_dev);
}

module_init(mmapper_init);