aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/plat-omap/mailbox.c8
-rw-r--r--arch/powerpc/platforms/cell/spufs/spufs.h5
-rw-r--r--arch/sparc/defconfig2
-rw-r--r--arch/sparc/kernel/sparc_ksyms.c3
-rw-r--r--arch/sparc/kernel/vmlinux.lds.S2
-rw-r--r--arch/sparc/lib/memset.S2
-rw-r--r--arch/sparc/prom/printf.c2
-rw-r--r--arch/sparc64/defconfig32
-rw-r--r--arch/sparc64/kernel/head.S11
-rw-r--r--arch/sparc64/kernel/vmlinux.lds.S2
-rw-r--r--arch/um/drivers/mconsole_kern.c4
-rw-r--r--arch/um/drivers/net_kern.c2
-rw-r--r--arch/um/drivers/ubd_kern.c4
-rw-r--r--arch/um/kernel/mem.c2
-rw-r--r--arch/um/kernel/physmem.c15
-rw-r--r--arch/um/kernel/skas/process.c4
-rw-r--r--arch/um/os-Linux/aio.c47
-rw-r--r--arch/um/os-Linux/process.c2
-rw-r--r--arch/um/os-Linux/user_syms.c5
-rw-r--r--arch/um/sys-i386/Makefile2
20 files changed, 67 insertions, 89 deletions
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
index de7e6ef48bd0..0360b1f14d11 100644
--- a/arch/arm/plat-omap/mailbox.c
+++ b/arch/arm/plat-omap/mailbox.c
@@ -161,11 +161,11 @@ static void mbox_rx_work(struct work_struct *work)
161/* 161/*
162 * Mailbox interrupt handler 162 * Mailbox interrupt handler
163 */ 163 */
164static void mbox_txq_fn(request_queue_t * q) 164static void mbox_txq_fn(struct request_queue * q)
165{ 165{
166} 166}
167 167
168static void mbox_rxq_fn(request_queue_t * q) 168static void mbox_rxq_fn(struct request_queue * q)
169{ 169{
170} 170}
171 171
@@ -180,7 +180,7 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox)
180{ 180{
181 struct request *rq; 181 struct request *rq;
182 mbox_msg_t msg; 182 mbox_msg_t msg;
183 request_queue_t *q = mbox->rxq->queue; 183 struct request_queue *q = mbox->rxq->queue;
184 184
185 disable_mbox_irq(mbox, IRQ_RX); 185 disable_mbox_irq(mbox, IRQ_RX);
186 186
@@ -297,7 +297,7 @@ static struct omap_mbox_queue *mbox_queue_alloc(struct omap_mbox *mbox,
297 request_fn_proc * proc, 297 request_fn_proc * proc,
298 void (*work) (struct work_struct *)) 298 void (*work) (struct work_struct *))
299{ 299{
300 request_queue_t *q; 300 struct request_queue *q;
301 struct omap_mbox_queue *mq; 301 struct omap_mbox_queue *mq;
302 302
303 mq = kzalloc(sizeof(struct omap_mbox_queue), GFP_KERNEL); 303 mq = kzalloc(sizeof(struct omap_mbox_queue), GFP_KERNEL);
diff --git a/arch/powerpc/platforms/cell/spufs/spufs.h b/arch/powerpc/platforms/cell/spufs/spufs.h
index 8b20c0c1556f..2bfdeb8ea8bd 100644
--- a/arch/powerpc/platforms/cell/spufs/spufs.h
+++ b/arch/powerpc/platforms/cell/spufs/spufs.h
@@ -40,13 +40,10 @@ enum {
40struct spu_context_ops; 40struct spu_context_ops;
41struct spu_gang; 41struct spu_gang;
42 42
43enum {
44 SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */
45};
46
47/* ctx->sched_flags */ 43/* ctx->sched_flags */
48enum { 44enum {
49 SPU_SCHED_NOTIFY_ACTIVE, 45 SPU_SCHED_NOTIFY_ACTIVE,
46 SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */
50}; 47};
51 48
52struct spu_context { 49struct spu_context {
diff --git a/arch/sparc/defconfig b/arch/sparc/defconfig
index 38bd79fe6e75..fdc67238408a 100644
--- a/arch/sparc/defconfig
+++ b/arch/sparc/defconfig
@@ -600,7 +600,7 @@ CONFIG_LEGACY_PTY_COUNT=256
600# CONFIG_IPMI_HANDLER is not set 600# CONFIG_IPMI_HANDLER is not set
601# CONFIG_WATCHDOG is not set 601# CONFIG_WATCHDOG is not set
602CONFIG_HW_RANDOM=m 602CONFIG_HW_RANDOM=m
603CONFIG_RTC=m 603CONFIG_JS_RTC=m
604# CONFIG_R3964 is not set 604# CONFIG_R3964 is not set
605# CONFIG_APPLICOM is not set 605# CONFIG_APPLICOM is not set
606# CONFIG_DRM is not set 606# CONFIG_DRM is not set
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c
index 55bac516dfe2..7b4abde43028 100644
--- a/arch/sparc/kernel/sparc_ksyms.c
+++ b/arch/sparc/kernel/sparc_ksyms.c
@@ -161,6 +161,8 @@ EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one));
161EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl)); 161EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl));
162EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one)); 162EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one));
163 163
164EXPORT_SYMBOL(BTFIXUP_CALL(pgprot_noncached));
165
164#ifdef CONFIG_SBUS 166#ifdef CONFIG_SBUS
165EXPORT_SYMBOL(sbus_root); 167EXPORT_SYMBOL(sbus_root);
166EXPORT_SYMBOL(dma_chain); 168EXPORT_SYMBOL(dma_chain);
@@ -260,6 +262,7 @@ EXPORT_SYMBOL(__memmove);
260/* Moving data to/from userspace. */ 262/* Moving data to/from userspace. */
261EXPORT_SYMBOL(__copy_user); 263EXPORT_SYMBOL(__copy_user);
262EXPORT_SYMBOL(__strncpy_from_user); 264EXPORT_SYMBOL(__strncpy_from_user);
265EXPORT_SYMBOL(__strnlen_user);
263 266
264/* Networking helper routines. */ 267/* Networking helper routines. */
265EXPORT_SYMBOL(__csum_partial_copy_sparc_generic); 268EXPORT_SYMBOL(__csum_partial_copy_sparc_generic);
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S
index 47583887abc6..15109c156e83 100644
--- a/arch/sparc/kernel/vmlinux.lds.S
+++ b/arch/sparc/kernel/vmlinux.lds.S
@@ -35,6 +35,8 @@ SECTIONS
35 __ex_table : { *(__ex_table) } 35 __ex_table : { *(__ex_table) }
36 __stop___ex_table = .; 36 __stop___ex_table = .;
37 37
38 NOTES
39
38 . = ALIGN(4096); 40 . = ALIGN(4096);
39 __init_begin = .; 41 __init_begin = .;
40 _sinittext = .; 42 _sinittext = .;
diff --git a/arch/sparc/lib/memset.S b/arch/sparc/lib/memset.S
index a65eba41097c..1c37ea892deb 100644
--- a/arch/sparc/lib/memset.S
+++ b/arch/sparc/lib/memset.S
@@ -162,7 +162,7 @@ __bzero:
1628: 1628:
163 add %o0, 1, %o0 163 add %o0, 1, %o0
164 subcc %o1, 1, %o1 164 subcc %o1, 1, %o1
165 bne,a 8b 165 bne 8b
166 EX(stb %g3, [%o0 - 1], add %o1, 1) 166 EX(stb %g3, [%o0 - 1], add %o1, 1)
1670: 1670:
168 retl 168 retl
diff --git a/arch/sparc/prom/printf.c b/arch/sparc/prom/printf.c
index 27fdac99f790..a36ab9c5ee08 100644
--- a/arch/sparc/prom/printf.c
+++ b/arch/sparc/prom/printf.c
@@ -13,6 +13,7 @@
13 */ 13 */
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/module.h>
16 17
17#include <asm/openprom.h> 18#include <asm/openprom.h>
18#include <asm/oplib.h> 19#include <asm/oplib.h>
@@ -44,3 +45,4 @@ prom_printf(char *fmt, ...)
44 45
45 prom_write(ppbuf, i); 46 prom_write(ppbuf, i);
46} 47}
48EXPORT_SYMBOL(prom_printf);
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 10e301970a44..68338a601f70 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,11 +1,12 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22 3# Linux kernel version: 2.6.23-rc1
4# Thu Jul 19 21:30:37 2007 4# Sun Jul 22 19:24:37 2007
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
8CONFIG_GENERIC_TIME=y 8CONFIG_GENERIC_TIME=y
9CONFIG_GENERIC_CMOS_UPDATE=y
9CONFIG_GENERIC_CLOCKEVENTS=y 10CONFIG_GENERIC_CLOCKEVENTS=y
10CONFIG_64BIT=y 11CONFIG_64BIT=y
11CONFIG_MMU=y 12CONFIG_MMU=y
@@ -17,6 +18,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
17# CONFIG_ARCH_HAS_ILOG2_U64 is not set 18# CONFIG_ARCH_HAS_ILOG2_U64 is not set
18CONFIG_AUDIT_ARCH=y 19CONFIG_AUDIT_ARCH=y
19CONFIG_ARCH_NO_VIRT_TO_BUS=y 20CONFIG_ARCH_NO_VIRT_TO_BUS=y
21CONFIG_OF=y
20CONFIG_SPARC64_PAGE_SIZE_8KB=y 22CONFIG_SPARC64_PAGE_SIZE_8KB=y
21# CONFIG_SPARC64_PAGE_SIZE_64KB is not set 23# CONFIG_SPARC64_PAGE_SIZE_64KB is not set
22# CONFIG_SPARC64_PAGE_SIZE_512KB is not set 24# CONFIG_SPARC64_PAGE_SIZE_512KB is not set
@@ -314,6 +316,7 @@ CONFIG_FW_LOADER=y
314# CONFIG_SYS_HYPERVISOR is not set 316# CONFIG_SYS_HYPERVISOR is not set
315CONFIG_CONNECTOR=m 317CONFIG_CONNECTOR=m
316# CONFIG_MTD is not set 318# CONFIG_MTD is not set
319CONFIG_OF_DEVICE=y
317# CONFIG_PARPORT is not set 320# CONFIG_PARPORT is not set
318CONFIG_BLK_DEV=y 321CONFIG_BLK_DEV=y
319# CONFIG_BLK_DEV_FD is not set 322# CONFIG_BLK_DEV_FD is not set
@@ -433,10 +436,7 @@ CONFIG_SCSI_FC_ATTRS=y
433CONFIG_SCSI_ISCSI_ATTRS=m 436CONFIG_SCSI_ISCSI_ATTRS=m
434# CONFIG_SCSI_SAS_ATTRS is not set 437# CONFIG_SCSI_SAS_ATTRS is not set
435# CONFIG_SCSI_SAS_LIBSAS is not set 438# CONFIG_SCSI_SAS_LIBSAS is not set
436 439CONFIG_SCSI_LOWLEVEL=y
437#
438# SCSI low-level drivers
439#
440CONFIG_ISCSI_TCP=m 440CONFIG_ISCSI_TCP=m
441# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 441# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
442# CONFIG_SCSI_3W_9XXX is not set 442# CONFIG_SCSI_3W_9XXX is not set
@@ -701,7 +701,6 @@ CONFIG_UNIX98_PTYS=y
701# CONFIG_IPMI_HANDLER is not set 701# CONFIG_IPMI_HANDLER is not set
702# CONFIG_WATCHDOG is not set 702# CONFIG_WATCHDOG is not set
703# CONFIG_HW_RANDOM is not set 703# CONFIG_HW_RANDOM is not set
704CONFIG_RTC=y
705# CONFIG_R3964 is not set 704# CONFIG_R3964 is not set
706# CONFIG_APPLICOM is not set 705# CONFIG_APPLICOM is not set
707# CONFIG_DRM is not set 706# CONFIG_DRM is not set
@@ -844,6 +843,7 @@ CONFIG_HWMON=y
844# 843#
845# CONFIG_DISPLAY_SUPPORT is not set 844# CONFIG_DISPLAY_SUPPORT is not set
846# CONFIG_VGASTATE is not set 845# CONFIG_VGASTATE is not set
846# CONFIG_VIDEO_OUTPUT_CONTROL is not set
847CONFIG_FB=y 847CONFIG_FB=y
848# CONFIG_FIRMWARE_EDID is not set 848# CONFIG_FIRMWARE_EDID is not set
849CONFIG_FB_DDC=y 849CONFIG_FB_DDC=y
@@ -937,7 +937,6 @@ CONFIG_SND_MIXER_OSS=m
937CONFIG_SND_PCM_OSS=m 937CONFIG_SND_PCM_OSS=m
938CONFIG_SND_PCM_OSS_PLUGINS=y 938CONFIG_SND_PCM_OSS_PLUGINS=y
939CONFIG_SND_SEQUENCER_OSS=y 939CONFIG_SND_SEQUENCER_OSS=y
940# CONFIG_SND_RTCTIMER is not set
941# CONFIG_SND_DYNAMIC_MINORS is not set 940# CONFIG_SND_DYNAMIC_MINORS is not set
942CONFIG_SND_SUPPORT_OLD_API=y 941CONFIG_SND_SUPPORT_OLD_API=y
943CONFIG_SND_VERBOSE_PROCFS=y 942CONFIG_SND_VERBOSE_PROCFS=y
@@ -1034,6 +1033,10 @@ CONFIG_SND_SUN_CS4231=m
1034# CONFIG_SND_SOC is not set 1033# CONFIG_SND_SOC is not set
1035 1034
1036# 1035#
1036# SoC Audio support for SuperH
1037#
1038
1039#
1037# Open Sound System 1040# Open Sound System
1038# 1041#
1039# CONFIG_SOUND_PRIME is not set 1042# CONFIG_SOUND_PRIME is not set
@@ -1157,19 +1160,7 @@ CONFIG_USB_STORAGE=m
1157# 1160#
1158# CONFIG_USB_GADGET is not set 1161# CONFIG_USB_GADGET is not set
1159# CONFIG_MMC is not set 1162# CONFIG_MMC is not set
1160
1161#
1162# LED devices
1163#
1164# CONFIG_NEW_LEDS is not set 1163# CONFIG_NEW_LEDS is not set
1165
1166#
1167# LED drivers
1168#
1169
1170#
1171# LED Triggers
1172#
1173# CONFIG_INFINIBAND is not set 1164# CONFIG_INFINIBAND is not set
1174 1165
1175# 1166#
@@ -1199,7 +1190,6 @@ CONFIG_USB_STORAGE=m
1199# Misc Linux/SPARC drivers 1190# Misc Linux/SPARC drivers
1200# 1191#
1201CONFIG_SUN_OPENPROMIO=m 1192CONFIG_SUN_OPENPROMIO=m
1202CONFIG_SUN_MOSTEK_RTC=y
1203# CONFIG_OBP_FLASH is not set 1193# CONFIG_OBP_FLASH is not set
1204# CONFIG_SUN_BPP is not set 1194# CONFIG_SUN_BPP is not set
1205# CONFIG_BBC_I2C is not set 1195# CONFIG_BBC_I2C is not set
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index 35feacb6b8ec..9dbd833d79d6 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -1,15 +1,15 @@
1/* $Id: head.S,v 1.87 2002/02/09 19:49:31 davem Exp $ 1/* head.S: Initial boot code for the Sparc64 port of Linux.
2 * head.S: Initial boot code for the Sparc64 port of Linux.
3 * 2 *
4 * Copyright (C) 1996,1997 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1996, 1997, 2007 David S. Miller (davem@davemloft.net)
5 * Copyright (C) 1996 David Sitsky (David.Sitsky@anu.edu.au) 4 * Copyright (C) 1996 David Sitsky (David.Sitsky@anu.edu.au)
6 * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) 5 * Copyright (C) 1997, 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
7 * Copyright (C) 1997 Miguel de Icaza (miguel@nuclecu.unam.mx) 6 * Copyright (C) 1997 Miguel de Icaza (miguel@nuclecu.unam.mx)
8 */ 7 */
9 8
10#include <linux/version.h> 9#include <linux/version.h>
11#include <linux/errno.h> 10#include <linux/errno.h>
12#include <linux/threads.h> 11#include <linux/threads.h>
12#include <linux/init.h>
13#include <asm/thread_info.h> 13#include <asm/thread_info.h>
14#include <asm/asi.h> 14#include <asm/asi.h>
15#include <asm/pstate.h> 15#include <asm/pstate.h>
@@ -374,6 +374,7 @@ jump_to_sun4u_init:
374 jmpl %g2 + %g0, %g0 374 jmpl %g2 + %g0, %g0
375 nop 375 nop
376 376
377 .section .text.init.refok
377sun4u_init: 378sun4u_init:
378 BRANCH_IF_SUN4V(g1, sun4v_init) 379 BRANCH_IF_SUN4V(g1, sun4v_init)
379 380
@@ -529,6 +530,8 @@ tlb_fixup_done:
529 nop 530 nop
530 /* Not reached... */ 531 /* Not reached... */
531 532
533 .previous
534
532 /* This is meant to allow the sharing of this code between 535 /* This is meant to allow the sharing of this code between
533 * boot processor invocation (via setup_tba() below) and 536 * boot processor invocation (via setup_tba() below) and
534 * secondary processor startup (via trampoline.S). The 537 * secondary processor startup (via trampoline.S). The
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S
index 481861764deb..b982fa3dd748 100644
--- a/arch/sparc64/kernel/vmlinux.lds.S
+++ b/arch/sparc64/kernel/vmlinux.lds.S
@@ -45,6 +45,8 @@ SECTIONS
45 __ex_table : { *(__ex_table) } 45 __ex_table : { *(__ex_table) }
46 __stop___ex_table = .; 46 __stop___ex_table = .;
47 47
48 NOTES
49
48 . = ALIGN(PAGE_SIZE); 50 . = ALIGN(PAGE_SIZE);
49 __init_begin = .; 51 __init_begin = .;
50 .init.text : { 52 .init.text : {
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c
index 542c9ef858f8..d87090507401 100644
--- a/arch/um/drivers/mconsole_kern.c
+++ b/arch/um/drivers/mconsole_kern.c
@@ -499,7 +499,7 @@ static struct mc_device mem_mc = {
499 .remove = mem_remove, 499 .remove = mem_remove,
500}; 500};
501 501
502static int mem_mc_init(void) 502static int __init mem_mc_init(void)
503{ 503{
504 if(can_drop_memory()) 504 if(can_drop_memory())
505 mconsole_register_dev(&mem_mc); 505 mconsole_register_dev(&mem_mc);
@@ -798,7 +798,7 @@ void mconsole_stack(struct mc_request *req)
798 */ 798 */
799static char *notify_socket = NULL; 799static char *notify_socket = NULL;
800 800
801static int mconsole_init(void) 801static int __init mconsole_init(void)
802{ 802{
803 /* long to avoid size mismatch warnings from gcc */ 803 /* long to avoid size mismatch warnings from gcc */
804 long sock; 804 long sock;
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c
index 72773dd54425..d35d0c1ee7f4 100644
--- a/arch/um/drivers/net_kern.c
+++ b/arch/um/drivers/net_kern.c
@@ -623,7 +623,7 @@ static int eth_setup_common(char *str, int index)
623 return found; 623 return found;
624} 624}
625 625
626static int eth_setup(char *str) 626static int __init eth_setup(char *str)
627{ 627{
628 struct eth_init *new; 628 struct eth_init *new;
629 char *error; 629 char *error;
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c
index fc27f6c72b41..aff661fe2ee1 100644
--- a/arch/um/drivers/ubd_kern.c
+++ b/arch/um/drivers/ubd_kern.c
@@ -469,7 +469,7 @@ __uml_help(fakehd,
469" Change the ubd device name to \"hd\".\n\n" 469" Change the ubd device name to \"hd\".\n\n"
470); 470);
471 471
472static void do_ubd_request(request_queue_t * q); 472static void do_ubd_request(struct request_queue * q);
473 473
474/* Only changed by ubd_init, which is an initcall. */ 474/* Only changed by ubd_init, which is an initcall. */
475int thread_fd = -1; 475int thread_fd = -1;
@@ -1081,7 +1081,7 @@ static void prepare_request(struct request *req, struct io_thread_req *io_req,
1081} 1081}
1082 1082
1083/* Called with dev->lock held */ 1083/* Called with dev->lock held */
1084static void do_ubd_request(request_queue_t *q) 1084static void do_ubd_request(struct request_queue *q)
1085{ 1085{
1086 struct io_thread_req *io_req; 1086 struct io_thread_req *io_req;
1087 struct request *req; 1087 struct request *req;
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c
index 72ff85693a39..d2b11f242698 100644
--- a/arch/um/kernel/mem.c
+++ b/arch/um/kernel/mem.c
@@ -62,7 +62,7 @@ static void setup_highmem(unsigned long highmem_start,
62} 62}
63#endif 63#endif
64 64
65void mem_init(void) 65void __init mem_init(void)
66{ 66{
67 /* clear the zero-page */ 67 /* clear the zero-page */
68 memset((void *) empty_zero_page, 0, PAGE_SIZE); 68 memset((void *) empty_zero_page, 0, PAGE_SIZE);
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c
index 3ba6e4c841da..5ee7e851bbc1 100644
--- a/arch/um/kernel/physmem.c
+++ b/arch/um/kernel/physmem.c
@@ -28,7 +28,8 @@ unsigned long high_physmem;
28 28
29extern unsigned long long physmem_size; 29extern unsigned long long physmem_size;
30 30
31int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem) 31int __init init_maps(unsigned long physmem, unsigned long iomem,
32 unsigned long highmem)
32{ 33{
33 struct page *p, *map; 34 struct page *p, *map;
34 unsigned long phys_len, phys_pages, highmem_len, highmem_pages; 35 unsigned long phys_len, phys_pages, highmem_len, highmem_pages;
@@ -47,13 +48,7 @@ int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
47 total_pages = phys_pages + iomem_pages + highmem_pages; 48 total_pages = phys_pages + iomem_pages + highmem_pages;
48 total_len = phys_len + iomem_len + highmem_len; 49 total_len = phys_len + iomem_len + highmem_len;
49 50
50 if(kmalloc_ok){ 51 map = alloc_bootmem_low_pages(total_len);
51 map = kmalloc(total_len, GFP_KERNEL);
52 if(map == NULL)
53 map = vmalloc(total_len);
54 }
55 else map = alloc_bootmem_low_pages(total_len);
56
57 if(map == NULL) 52 if(map == NULL)
58 return -ENOMEM; 53 return -ENOMEM;
59 54
@@ -98,8 +93,8 @@ void map_memory(unsigned long virt, unsigned long phys, unsigned long len,
98 93
99extern int __syscall_stub_start; 94extern int __syscall_stub_start;
100 95
101void setup_physmem(unsigned long start, unsigned long reserve_end, 96void __init setup_physmem(unsigned long start, unsigned long reserve_end,
102 unsigned long len, unsigned long long highmem) 97 unsigned long len, unsigned long long highmem)
103{ 98{
104 unsigned long reserve = reserve_end - start; 99 unsigned long reserve = reserve_end - start;
105 int pfn = PFN_UP(__pa(reserve_end)); 100 int pfn = PFN_UP(__pa(reserve_end));
diff --git a/arch/um/kernel/skas/process.c b/arch/um/kernel/skas/process.c
index 2a69a7ce5792..48051a98525f 100644
--- a/arch/um/kernel/skas/process.c
+++ b/arch/um/kernel/skas/process.c
@@ -145,7 +145,7 @@ void init_idle_skas(void)
145 145
146extern void start_kernel(void); 146extern void start_kernel(void);
147 147
148static int start_kernel_proc(void *unused) 148static int __init start_kernel_proc(void *unused)
149{ 149{
150 int pid; 150 int pid;
151 151
@@ -165,7 +165,7 @@ extern int userspace_pid[];
165 165
166extern char cpu0_irqstack[]; 166extern char cpu0_irqstack[];
167 167
168int start_uml_skas(void) 168int __init start_uml_skas(void)
169{ 169{
170 stack_protections((unsigned long) &cpu0_irqstack); 170 stack_protections((unsigned long) &cpu0_irqstack);
171 set_sigstack(cpu0_irqstack, THREAD_SIZE); 171 set_sigstack(cpu0_irqstack, THREAD_SIZE);
diff --git a/arch/um/os-Linux/aio.c b/arch/um/os-Linux/aio.c
index b126df4ea168..59348359f9ab 100644
--- a/arch/um/os-Linux/aio.c
+++ b/arch/um/os-Linux/aio.c
@@ -14,6 +14,7 @@
14#include "init.h" 14#include "init.h"
15#include "user.h" 15#include "user.h"
16#include "mode.h" 16#include "mode.h"
17#include "kern_constants.h"
17 18
18struct aio_thread_req { 19struct aio_thread_req {
19 enum aio_type type; 20 enum aio_type type;
@@ -65,47 +66,33 @@ static long io_getevents(aio_context_t ctx_id, long min_nr, long nr,
65static int do_aio(aio_context_t ctx, enum aio_type type, int fd, char *buf, 66static int do_aio(aio_context_t ctx, enum aio_type type, int fd, char *buf,
66 int len, unsigned long long offset, struct aio_context *aio) 67 int len, unsigned long long offset, struct aio_context *aio)
67{ 68{
68 struct iocb iocb, *iocbp = &iocb; 69 struct iocb *iocbp = & ((struct iocb) {
70 .aio_data = (unsigned long) aio,
71 .aio_fildes = fd,
72 .aio_buf = (unsigned long) buf,
73 .aio_nbytes = len,
74 .aio_offset = offset
75 });
69 char c; 76 char c;
70 int err;
71 77
72 iocb = ((struct iocb) { .aio_data = (unsigned long) aio, 78 switch (type) {
73 .aio_reqprio = 0,
74 .aio_fildes = fd,
75 .aio_buf = (unsigned long) buf,
76 .aio_nbytes = len,
77 .aio_offset = offset,
78 .aio_reserved1 = 0,
79 .aio_reserved2 = 0,
80 .aio_reserved3 = 0 });
81
82 switch(type){
83 case AIO_READ: 79 case AIO_READ:
84 iocb.aio_lio_opcode = IOCB_CMD_PREAD; 80 iocbp->aio_lio_opcode = IOCB_CMD_PREAD;
85 err = io_submit(ctx, 1, &iocbp);
86 break; 81 break;
87 case AIO_WRITE: 82 case AIO_WRITE:
88 iocb.aio_lio_opcode = IOCB_CMD_PWRITE; 83 iocbp->aio_lio_opcode = IOCB_CMD_PWRITE;
89 err = io_submit(ctx, 1, &iocbp);
90 break; 84 break;
91 case AIO_MMAP: 85 case AIO_MMAP:
92 iocb.aio_lio_opcode = IOCB_CMD_PREAD; 86 iocbp->aio_lio_opcode = IOCB_CMD_PREAD;
93 iocb.aio_buf = (unsigned long) &c; 87 iocbp->aio_buf = (unsigned long) &c;
94 iocb.aio_nbytes = sizeof(c); 88 iocbp->aio_nbytes = sizeof(c);
95 err = io_submit(ctx, 1, &iocbp);
96 break; 89 break;
97 default: 90 default:
98 printk("Bogus op in do_aio - %d\n", type); 91 printk(UM_KERN_ERR "Bogus op in do_aio - %d\n", type);
99 err = -EINVAL; 92 return -EINVAL;
100 break;
101 } 93 }
102 94
103 if(err > 0) 95 return (io_submit(ctx, 1, &iocbp) > 0) ? 0 : -errno;
104 err = 0;
105 else
106 err = -errno;
107
108 return err;
109} 96}
110 97
111/* Initialized in an initcall and unchanged thereafter */ 98/* Initialized in an initcall and unchanged thereafter */
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c
index 2d9d2ca39299..e9c143297512 100644
--- a/arch/um/os-Linux/process.c
+++ b/arch/um/os-Linux/process.c
@@ -194,7 +194,7 @@ int os_unmap_memory(void *addr, int len)
194#define MADV_REMOVE KERNEL_MADV_REMOVE 194#define MADV_REMOVE KERNEL_MADV_REMOVE
195#endif 195#endif
196 196
197int __init os_drop_memory(void *addr, int length) 197int os_drop_memory(void *addr, int length)
198{ 198{
199 int err; 199 int err;
200 200
diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c
index 419b2d5ff6de..4c37b1b1d0b5 100644
--- a/arch/um/os-Linux/user_syms.c
+++ b/arch/um/os-Linux/user_syms.c
@@ -19,10 +19,7 @@ extern void *memmove(void *, const void *, size_t);
19extern void *memset(void *, int, size_t); 19extern void *memset(void *, int, size_t);
20extern int printf(const char *, ...); 20extern int printf(const char *, ...);
21 21
22/* If they're not defined, the export is included in lib/string.c.*/ 22/* If it's not defined, the export is included in lib/string.c.*/
23#ifdef __HAVE_ARCH_STRLEN
24EXPORT_SYMBOL(strlen);
25#endif
26#ifdef __HAVE_ARCH_STRSTR 23#ifdef __HAVE_ARCH_STRSTR
27EXPORT_SYMBOL(strstr); 24EXPORT_SYMBOL(strstr);
28#endif 25#endif
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile
index 098720be019a..d6b3ecd4b77e 100644
--- a/arch/um/sys-i386/Makefile
+++ b/arch/um/sys-i386/Makefile
@@ -4,7 +4,7 @@ obj-y = bug.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \
4 4
5obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o 5obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o
6 6
7subarch-obj-y = lib/bitops.o lib/semaphore.o 7subarch-obj-y = lib/bitops.o lib/semaphore.o lib/string.o
8subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o 8subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o
9subarch-obj-$(CONFIG_MODULES) += kernel/module.o 9subarch-obj-$(CONFIG_MODULES) += kernel/module.o
10 10