UML - part 1 of 2
Subsystems (4)
PATCH 1/1 UML - part 1 of 2
This patch (against 2.5.27) contains all of the changes to generic code needed by UML:
CREDITS -
Changes my address and adds a UML credit for Lars Brinkoff.
MAINTAINERS -
Adds a UML entry.
Makefile -
When ARCH=um is on the command line to do a UML build, the old value
of ARCH is saved in $(SUBARCH) for the later use of the UML build.
drivers/char/Makefile -
Sets KEYMAP, KEYBD, CONSOLE empty to prevent hardware drivers from
being compiled in.
drivers/net/setup.c -
Backs out a UML hook which leaked into your tree which UML no
longer uses.
include/linux/kernel_stat.h -
Bumps DK_MAX_MAJOR to 99 so that the UML block driver (major 98)
gets stats.
include/linux/linkage.h -
UML needs FASTCALL defined as regparm(3), too.
init/do_mounts.c -
Adds a set of entries to dev_name_struct for the UML block device.
Jeff
CREDITS +2 -1
@@ -433,6 +433,7 @@ E: [email protected] W: http://lars.nocrew.org/ D: dsp56k device driver +D: ptrace proxy in user mode kernel port S: Kopmansg 2 S: 411 13 Goteborg S: Sweden
@@ -725,7 +726,7 @@ E: [email protected] W: http://user-mode-linux.sourceforge.net D: User mode kernel port -S: RR1 Box 67C +S: 375 Tubbs Hill Rd S: Deering NH 03244 S: USA
MAINTAINERS +8 -0
@@ -1842,6 +1842,14 @@ L: [email protected] W: http://usb.in.tum.de S: Maintained + +USER-MODE LINUX +P: Jeff Dike +M: [email protected] +L: [email protected] +L: [email protected] +W: http://user-mode-linux.sourceforge.net +S: Maintained USB "USBNET" DRIVER P: David Brownell
Makefile +9 -1
@@ -27,7 +27,15 @@ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) -ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) +# SUBARCH tells the usermode build what the underlying arch is. That is set +# first, and if a usermode build is happening, the "ARCH=um" on the command +# line overrides the setting of ARCH below. If a native build is happening, +# then ARCH is assigned, getting whatever value it gets normally, and +# SUBARCH is subsequently ignored. + +SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) +ARCH := $(SUBARCH) + KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g") CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
drivers/char/Makefile +6 -0
@@ -60,6 +60,12 @@ endif endif +ifeq ($(ARCH),um) + KEYMAP = + KEYBD = + CONSOLE = +endif + ifeq ($(ARCH),sh) KEYMAP = KEYBD =
drivers/net/setup.c +0 -4
@@ -28,7 +28,6 @@extern int lmc_setup (void );extern int madgemc_probe (void ); -extern int uml_net_probe (void );/* Pad device name to IFNAMSIZ=16. F.e. __PAD6 is string of 9 zeros. */ #define __PAD6 "\0\0\0\0\0\0\0\0\0"
@@ -102,9 +101,6 @@*/ #ifdef CONFIG_MADGEMC {madgemc_probe, 0}, -#endif -#ifdef CONFIG_UML_NET - {uml_net_probe, 0}, #endif {NULL, 0},
include/linux/kernel_stat.h +1 -1
@@ -12,7 +12,7 @@* used by rstatd/perfmeter */ -#define DK_MAX_MAJOR 16 +#define DK_MAX_MAJOR 99#define DK_MAX_DISK 16struct kernel_stat {
include/linux/linkage.h +1 -1
@@ -56,7 +56,7 @@# define ATTRIB_NORET __attribute__((noreturn))# define NORET_AND noreturn, -#ifdef __i386__ +#if defined(__i386__) || defined(__arch_um__)#define FASTCALL (x) x __attribute__((regparm(3)))#else #define FASTCALL (x) x
init/do_mounts.c +16 -0
@@ -156,6 +156,22 @@ { "pf", 0x2f00 }, { "apblock", APBLOCK_MAJOR << 8}, { "ddv", DDV_MAJOR << 8}, + { "ubd0", UBD_MAJOR << 8 | 0 << 4}, + { "ubda", UBD_MAJOR << 8 | 0 << 4}, + { "ubd1", UBD_MAJOR << 8 | 1 << 4}, + { "ubdb", UBD_MAJOR << 8 | 1 << 4}, + { "ubd2", UBD_MAJOR << 8 | 2 << 4}, + { "ubdc", UBD_MAJOR << 8 | 2 << 4}, + { "ubd3", UBD_MAJOR << 8 | 3 << 4}, + { "ubdd", UBD_MAJOR << 8 | 3 << 4}, + { "ubd4", UBD_MAJOR << 8 | 4 << 4}, + { "ubde", UBD_MAJOR << 8 | 4 << 4}, + { "ubd5", UBD_MAJOR << 8 | 5 << 4}, + { "ubdf", UBD_MAJOR << 8 | 5 << 4}, + { "ubd6", UBD_MAJOR << 8 | 6 << 4}, + { "ubdg", UBD_MAJOR << 8 | 6 << 4}, + { "ubd7", UBD_MAJOR << 8 | 7 << 4}, + { "ubdh", UBD_MAJOR << 8 | 7 << 4}, { "jsfd", JSFD_MAJOR << 8}, #if defined(CONFIG_ARCH_S390) { "dasda", (DASD_MAJOR << MINORBITS) },
Quoted 2 lines · Jeff Dike
include/linux/linkage.h-
UML needs FASTCALL defined as regparm(3), too.
The fastcall definition should go into an asm/ header instead of such hacks..
the disk accounting stuff is also bogus - instead of wasting ram with huge array it should rather be dynamically-allocated in a per-disk structure..
Quoted 9 lines · Christoph Hellwig
Quoted 2 lines · Jeff Dike
include/linux/linkage.h-
UML needs FASTCALL defined as regparm(3), too.The fastcall definition should go into an asm/ header instead of such hacks..
the disk accounting stuff is also bogus - instead of wasting ram with huge array it should rather be dynamically-allocated in a per-disk structure..
per-disk structures will be there pretty soon - the stuff merged into the tree yesterday is the first part of large series introducing that animal.
Quoted 11 lines · Christoph Hellwig
Quoted 2 lines · Jeff Dike
include/linux/linkage.h-
UML needs FASTCALL defined as regparm(3), too.The fastcall definition should go into an asm/ header instead of such hacks..
the disk accounting stuff is also bogus - instead of wasting ram with huge array it should rather be dynamically-allocated in a per-disk structure..
... which the name of is: struct genpart.
Quoted 2 lines · [email protected] said:
The fastcall definition should go into an asm/ header instead of such hacks..
And I'm supposed to fix this as part of the UML patch?
Quoted 3 lines
the disk accounting stuff is also bogus - instead of wasting ram with huge array it should rather be dynamically-allocated in a per-disk structure..
And this too?
Jeff
Quoted 5 lines · Jeff Dike
Quoted 2 lines · [email protected] said:
The fastcall definition should go into an asm/ header instead of such hacks..
And I'm supposed to fix this as part of the UML patch?
Yes. as part of the XFS merge preparation I'm also fixing generic kernel issues.
Quoted 5 lines
Quoted 3 lines
the disk accounting stuff is also bogus - instead of wasting ram with huge array it should rather be dynamically-allocated in a per-disk structure..
And this too?
No. but you could just wait for that going in and live without disk statistics for that time.. :)