OSDN Git Service

build fix 4.19
authorYoshinori Sato <ysato@users.sourceforge.jp>
Sun, 4 Nov 2018 16:17:04 +0000 (01:17 +0900)
committerYoshinori Sato <yo-satoh@sios.com>
Fri, 28 Jan 2022 13:32:09 +0000 (22:32 +0900)
27 files changed:
arch/rx/Kconfig
arch/rx/Kconfig.debug
arch/rx/boot/compressed/head.S
arch/rx/boot/compressed/misc.c
arch/rx/boot/compressed/vmlinux.lds [new file with mode: 0644]
arch/rx/include/asm/Kbuild
arch/rx/include/asm/atomic.h
arch/rx/include/asm/dma-mapping.h [deleted file]
arch/rx/include/asm/irqflags.h
arch/rx/include/asm/page.h
arch/rx/include/asm/processor.h
arch/rx/include/asm/ptrace.h [new file with mode: 0644]
arch/rx/include/asm/segment.h
arch/rx/include/asm/system.h
arch/rx/include/asm/thread_info.h
arch/rx/include/asm/uaccess.h [new file with mode: 0644]
arch/rx/include/uapi/asm/Kbuild
arch/rx/include/uapi/asm/bitsperlong.h [new file with mode: 0644]
arch/rx/include/uapi/asm/ptrace.h
arch/rx/kernel/Makefile
arch/rx/kernel/process.c
arch/rx/kernel/setup.c
arch/rx/kernel/signal.c
arch/rx/kernel/traps.c
arch/rx/kernel/vmlinux.lds.S
arch/rx/mm/init.c
drivers/clocksource/rx_tpu.c

index 51233d3..c78f73f 100644 (file)
@@ -24,6 +24,7 @@ config RX
        select CLKSRC_OF
        select GENERIC_CLOCKEVENTS
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
+       select DMA_DIRECT_OPS
 
 config MMU
        def_bool n
@@ -98,8 +99,6 @@ config NR_CPUS
 config GENERIC_IRQ_SHOW
        def_bool y
 
-source "init/Kconfig"
-
 source "kernel/Kconfig.freezer"
 
 menu "Processor type and features"
@@ -191,34 +190,5 @@ config BOOT_LINK_OFFSET
        hex "Link offset of zImage"
 endmenu
 
-config PREEMPT
-       bool "Preemptible Kernel"
-       default n
-
-source "mm/Kconfig"
-
 endmenu
 
-menu "Executable file formats"
-
-source "fs/Kconfig.binfmt"
-
-endmenu
-
-source "net/Kconfig"
-
-source "drivers/Kconfig"
-
-source "fs/Kconfig"
-
-menu "Kernel Hacking"
-
-source "lib/Kconfig.debug"
-
-endmenu
-
-source "security/Kconfig"
-
-source "crypto/Kconfig"
-
-source "lib/Kconfig"
index c060d7b..7049995 100644 (file)
@@ -1,7 +1,5 @@
 menu "Kernel Hacking"
 
-source "lib/Kconfig.debug"
-
 config EARLY_PRINTK
         bool "Early printk support"
 
index fa8ef5d..7406d74 100644 (file)
 
        .global startup
 startup:
-       mov     #_stext,r0
+       mov     #__stext,r0
        mov     r1,r6
-       mov     #_sbss,r1
-       mov     #_ebss,r3
+       mov     #__sbss,r1
+       mov     #__ebss,r3
        sub     r1,r3
        mov     #0,r2
        sstr.b
index d8c2da7..cc3c40d 100644 (file)
@@ -8,9 +8,6 @@
  *
  */
 
-#include <asm/uaccess.h>
-#include <asm/page.h>
-
 /*
  * gzip declarations
  */
diff --git a/arch/rx/boot/compressed/vmlinux.lds b/arch/rx/boot/compressed/vmlinux.lds
new file mode 100644 (file)
index 0000000..7f7bb41
--- /dev/null
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+SECTIONS
+{
+        .text :
+        {
+        __stext = . ;
+       __text = .;
+              *(.text..startup)
+              *(.text)
+        __etext = . ;
+        }
+
+       .rodata :
+       {
+               *(.rodata)
+       }
+        . = ALIGN(0x4) ;
+        .data :
+
+        {
+        . = ALIGN(0x4) ;
+        __sdata = . ;
+        ___data_start = . ;
+                *(.data.*)
+       }
+        . = ALIGN(0x4) ;
+        .bss :
+        {
+        __sbss = . ;
+                *(.bss*)
+        . = ALIGN(0x4) ;
+        __ebss = . ;
+        }
+        _end = . ;
+}
index a5848e0..ab70a78 100644 (file)
@@ -4,6 +4,7 @@ generic-y += barrier.h
 generic-y += bugs.h
 generic-y += cacheflush.h
 generic-y += checksum.h
+generic-y += compat.h
 generic-y += clkdev.h
 generic-y += cputime.h
 generic-y += current.h
@@ -11,9 +12,11 @@ generic-y += delay.h
 generic-y += device.h
 generic-y += div64.h
 generic-y += dma.h
+generic-y += dma-mapping.h
 generic-y += emergency-restart.h
 generic-y += errno.h
 generic-y += exec.h
+generic-y += extable.h
 generic-y += fb.h
 generic-y += fcntl.h
 generic-y += ftrace.h
@@ -27,6 +30,7 @@ generic-y += ipcbuf.h
 generic-y += irq_regs.h
 generic-y += irq_work.h
 generic-y += kmap_types.h
+generic-y += kprobes.h
 generic-y += kvm_para.h
 generic-y += linkage.h
 generic-y += local.h
index 2b26017..f246d88 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef __ARCH_RX_ATOMIC__
 #define __ARCH_RX_ATOMIC__
 
+#include <linux/compiler.h>
 #include <linux/types.h>
 #include <asm/cmpxchg.h>
 
@@ -14,8 +15,6 @@
 #define atomic_read(v)         READ_ONCE((v)->counter)
 #define atomic_set(v, i)       WRITE_ONCE(((v)->counter), (i))
 
-#include <linux/kernel.h>
-
 #define ATOMIC_OP_RETURN(op, c_op)                             \
 static inline int atomic_##op##_return(int i, atomic_t *v)     \
 {                                                              \
@@ -28,6 +27,19 @@ static inline int atomic_##op##_return(int i, atomic_t *v)   \
        return ret;                                             \
 }
 
+#define ATOMIC_FETCH_OP(op, c_op)                              \
+static inline int atomic_fetch_##op(int i, atomic_t *v)                \
+{                                                              \
+       unsigned long flags;                                    \
+       int ret;                                                \
+                                                               \
+       flags = arch_local_irq_save();                          \
+       ret = v->counter;                                       \
+       v->counter c_op i;                                      \
+       arch_local_irq_restore(flags);                          \
+       return ret;                                             \
+}
+
 #define ATOMIC_OP(op, c_op)                                    \
 static inline void atomic_##op(int i, atomic_t *v)             \
 {                                                              \
@@ -41,28 +53,20 @@ static inline void atomic_##op(int i, atomic_t *v)          \
 ATOMIC_OP_RETURN(add, +=)
 ATOMIC_OP_RETURN(sub, -=)
 
-ATOMIC_OP(and, &=)
-ATOMIC_OP(or,  |=)
-ATOMIC_OP(xor, ^=)
+#define ATOMIC_OPS(op, c_op)                                   \
+       ATOMIC_OP(op, c_op)                                     \
+       ATOMIC_FETCH_OP(op, c_op)
 
+ATOMIC_OPS(and, &=)
+ATOMIC_OPS(or,  |=)
+ATOMIC_OPS(xor, ^=)
+ATOMIC_OPS(add, +=)
+ATOMIC_OPS(sub, -=)
+
+#undef ATOMIC_OPS
 #undef ATOMIC_OP_RETURN
 #undef ATOMIC_OP
 
-#define atomic_add(i, v)               (void)atomic_add_return(i, v)
-#define atomic_add_negative(a, v)      (atomic_add_return((a), (v)) < 0)
-
-#define atomic_sub(i, v)               (void)atomic_sub_return(i, v)
-#define atomic_sub_and_test(i, v)      (atomic_sub_return(i, v) == 0)
-
-#define atomic_inc_return(v)           atomic_add_return(1, v)
-#define atomic_dec_return(v)           atomic_sub_return(1, v)
-
-#define atomic_inc(v)                  (void)atomic_inc_return(v)
-#define atomic_inc_and_test(v)         (atomic_inc_return(v) == 0)
-
-#define atomic_dec(v)                  (void)atomic_dec_return(v)
-#define atomic_dec_and_test(v)         (atomic_dec_return(v) == 0)
-
 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
 {
        int ret;
@@ -76,7 +80,7 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
        return ret;
 }
 
-static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+static inline int atomic_fetch_add_unless(atomic_t *v, int a, int u)
 {
        int ret;
        unsigned long flags;
@@ -88,5 +92,6 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
        arch_local_irq_restore(flags);
        return ret;
 }
+#define atomic_fetch_add_unless                atomic_fetch_add_unless
 
 #endif /* __ARCH_RX_ATOMIC __ */
diff --git a/arch/rx/include/asm/dma-mapping.h b/arch/rx/include/asm/dma-mapping.h
deleted file mode 100644 (file)
index b7fe849..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_RX_DMA_MAPPING_H
-#define __ASM_RX_DMA_MAPPING_H
-
-extern struct dma_map_ops *dma_ops;
-extern void no_iommu_init(void);
-
-static inline struct dma_map_ops *get_dma_ops(struct device *dev)
-{
-       return dma_ops;
-}
-
-#endif /* __ASM_RX_DMA_MAPPING_H */
index dada51a..9c1f50c 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef _RX_IRQFLAGS_H_
 #define _RX_IRQFLAGS_H_
 
-static inline unsigned long arch_local_irq_save_flags(void)
+static inline unsigned long arch_local_save_flags(void)
 {
        unsigned long iflag;
        asm volatile ("mvfc psw, %0\n\t"
@@ -22,7 +22,7 @@ static inline void arch_local_irq_enable(void)
 static inline unsigned long arch_local_irq_save(void)
 {
        unsigned long iflag;
-       iflag = arch_local_irq_save_flags();
+       iflag = arch_local_save_flags();
        arch_local_irq_disable();
        return iflag;
 }
@@ -43,7 +43,7 @@ static inline int arch_irqs_disabled_flags(unsigned long psw)
 
 static inline int arch_irqs_disabled(void)
 {
-       return arch_irqs_disabled_flags(arch_local_irq_save_flags());
+       return arch_irqs_disabled_flags(arch_local_save_flags());
 }
 
 #endif
index 1a8b627..6ddc476 100644 (file)
@@ -1 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _RX_PAGE_H
+#define _RX_PAGE_H
+
 #include <asm-generic/page.h>
+#include <linux/types.h>
+
+#define MAP_NR(addr) (((uintptr_t)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
+#define VM_DATA_DEFAULT_FLAGS  (VM_READ | VM_WRITE | VM_EXEC | \
+                                VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
+
+#ifndef __ASSEMBLY__
+extern unsigned long rom_length;
+extern unsigned long memory_start;
+extern unsigned long memory_end;
+extern unsigned long _ramend;
+#endif
+
+#endif
index cde4fb3..578c680 100644 (file)
@@ -78,17 +78,6 @@ static inline void prepare_to_copy(struct task_struct *tsk)
 }
 
 /*
- * Free current thread data structures etc..
- */
-static inline void exit_thread(void)
-{
-}
-
-static inline void flush_thread(void)
-{
-}
-
-/*
  * Return saved PC of a blocked thread.
  */
 #define thread_saved_pc(tsk)   (tsk->thread.pc)
@@ -96,9 +85,6 @@ static inline void flush_thread(void)
 unsigned long get_wchan(struct task_struct *p);
 void show_trace(struct task_struct *tsk, unsigned long *sp,
                struct pt_regs *regs);
-
-#define task_pt_regs(tsk) \
-       ((struct pt_regs *)(task_stack_page(tsk) + THREAD_SIZE) - 1)
 #define        KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
 #define        KSTK_ESP(tsk) (task_pt_regs(tsk)->r[0])
 
diff --git a/arch/rx/include/asm/ptrace.h b/arch/rx/include/asm/ptrace.h
new file mode 100644 (file)
index 0000000..993ce40
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef __ASM_RX_PTRACE_H__
+#define __ASM_RX_PTRACE_H__
+
+#include <uapi/asm/ptrace.h>
+
+#define task_pt_regs(tsk)                                              \
+       ((struct pt_regs *)(task_stack_page(tsk) + THREAD_SIZE) - 1)
+
+#endif
index c9a9521..2847189 100644 (file)
@@ -5,6 +5,7 @@
 typedef struct {
        unsigned long seg;
 } mm_segment_t;
+
 #endif
 
 #endif
index e7682bd..eb1f0c5 100644 (file)
@@ -23,17 +23,6 @@ __asm__ volatile("switch_to:");                              \
 } while(0)
 
 
-#define nop()  asm volatile ("nop"::)
-#define mb()   asm volatile (""   : : :"memory")
-#define rmb()  asm volatile (""   : : :"memory")
-#define wmb()  asm volatile (""   : : :"memory")
-#define set_mb(var, value) do { var = value; } while (0)
-
-#define smp_mb()       barrier()
-#define smp_rmb()      barrier()
-#define smp_wmb()      barrier()
-#define smp_read_barrier_depends()     do { } while(0)
-
 #define arch_align_stack(x) (x)
 
 #endif /* __ASM_RX_SYSTEM_H__ */
index 9ded37a..10d89e9 100644 (file)
@@ -43,10 +43,6 @@ struct thread_info {
        },                                      \
 }
 
-#define init_thread_info       (init_thread_union.thread_info)
-#define init_stack             (init_thread_union.stack)
-
-
 /* how to get the thread information struct from C */
 static inline struct thread_info *current_thread_info(void)
 {
diff --git a/arch/rx/include/asm/uaccess.h b/arch/rx/include/asm/uaccess.h
new file mode 100644 (file)
index 0000000..bc80319
--- /dev/null
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_UACCESS_H
+#define _ASM_UACCESS_H
+
+#include <linux/string.h>
+
+static inline __must_check unsigned long
+raw_copy_from_user(void *to, const void __user * from, unsigned long n)
+{
+       if (__builtin_constant_p(n)) {
+               switch(n) {
+               case 1:
+                       *(u8 *)to = *(u8 __force *)from;
+                       return 0;
+               case 2:
+                       *(u16 *)to = *(u16 __force *)from;
+                       return 0;
+               case 4:
+                       *(u32 *)to = *(u32 __force *)from;
+                       return 0;
+               }
+       }
+
+       memcpy(to, (const void __force *)from, n);
+       return 0;
+}
+
+static inline __must_check unsigned long
+raw_copy_to_user(void __user *to, const void *from, unsigned long n)
+{
+       if (__builtin_constant_p(n)) {
+               switch(n) {
+               case 1:
+                       *(u8 __force *)to = *(u8 *)from;
+                       return 0;
+               case 2:
+                       *(u16 __force *)to = *(u16 *)from;
+                       return 0;
+               case 4:
+                       *(u32 __force *)to = *(u32 *)from;
+                       return 0;
+               default:
+                       break;
+               }
+       }
+
+       memcpy((void __force *)to, from, n);
+       return 0;
+}
+#define INLINE_COPY_FROM_USER
+#define INLINE_COPY_TO_USER
+
+#include <asm-generic/uaccess.h>
+
+#endif
index fb6101a..1ab3a59 100644 (file)
@@ -1,30 +1,30 @@
 # UAPI Header export list
 include include/uapi/asm-generic/Kbuild.asm
 
-header-y += auxvec.h
-header-y += bitsperlong.h
-header-y += errno.h
-header-y += fcntl.h
-header-y += ioctl.h
-header-y += ioctls.h
-header-y += ipcbuf.h
-header-y += kvm_para.h
-header-y += mman.h
-header-y += msgbuf.h
-header-y += param.h
-header-y += poll.h
-header-y += posix_types.h
-header-y += resource.h
-header-y += sembuf.h
-header-y += setup.h
-header-y += shmbuf.h
-header-y += siginfo.h
-header-y += socket.h
-header-y += sockios.h
-header-y += stat.h
-header-y += statfs.h
-header-y += swab.h
-header-y += termbits.h
-header-y += termios.h
-header-y += types.h
-header-y += unistd.h
+generic-y += auxvec.h
+generic-y += bpf_perf_event.h
+generic-y += errno.h
+generic-y += fcntl.h
+generic-y += ioctl.h
+generic-y += ioctls.h
+generic-y += ipcbuf.h
+generic-y += kvm_para.h
+generic-y += mman.h
+generic-y += msgbuf.h
+generic-y += param.h
+generic-y += poll.h
+generic-y += posix_types.h
+generic-y += resource.h
+generic-y += sembuf.h
+generic-y += setup.h
+generic-y += shmbuf.h
+generic-y += siginfo.h
+generic-y += socket.h
+generic-y += sockios.h
+generic-y += stat.h
+generic-y += statfs.h
+generic-y += swab.h
+generic-y += termbits.h
+generic-y += termios.h
+generic-y += types.h
+generic-y += unistd.h
diff --git a/arch/rx/include/uapi/asm/bitsperlong.h b/arch/rx/include/uapi/asm/bitsperlong.h
new file mode 100644 (file)
index 0000000..2ffe34a
--- /dev/null
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _UAPI__ASM_RX_BITS_PER_LONG
+#define _UAPI__ASM_RX_BITS_PER_LONG
+
+#include <asm-generic/bitsperlong.h>
+
+#if !defined(__ASSEMBLY__)
+/* rx-unknown-linux required long */
+#define __kernel_size_t __kernel_size_t
+typedef unsigned long  __kernel_size_t;
+typedef long           __kernel_ssize_t;
+typedef long           __kernel_ptrdiff_t;
+#endif
+
+#endif /* _UAPI__ASM_RX_BITS_PER_LONG */
index 5a725e9..65dce72 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef __ASM_RX_PTRACE_H__
-#define __ASM_RX_PTRACE_H__
+#ifndef __UAPI_ASM_RX_PTRACE_H__
+#define __UAPI_ASM_RX_PTRACE_H__
 
 #ifndef __ASSEMBLY__
 
index 408c89f..79ad84b 100644 (file)
@@ -5,7 +5,7 @@
 extra-y := vmlinux.lds
 
 obj-y := head.o process.o traps.o irq.o signal.o \
-         setup.o syscalls.o entry.o ptrace.o dma-nommu.o
+         setup.o syscalls.o entry.o ptrace.o
 
 obj-$(CONFIG_RX_GDB_SIM) += sim-console.o
 ifeq '$(CONFIG_RXV2)' 'y'
index ab5dc6d..0be56cc 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/fs.h>
 #include <linux/ftrace.h>
 #include <linux/preempt.h>
+#include <linux/sched/debug.h>
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>
 #include <asm/pgalloc.h>
@@ -72,7 +73,7 @@ void show_regs(struct pt_regs * regs)
 {
        printk("\n");
        printk("Pid : %d, Comm: \t\t%s\n", task_pid_nr(current), current->comm);
-       print_symbol("PC is at %s\n", instruction_pointer(regs));
+       printk("PC is at %pS\n", (void *)instruction_pointer(regs));
 
        printk("PC  : %08lx SP  : %08lx PSW  : %08lx\n",
               regs->pc, regs->r[0], regs->psw);
@@ -93,6 +94,10 @@ void show_regs(struct pt_regs * regs)
 asmlinkage void ret_from_fork(void);
 asmlinkage void ret_from_kernel_thread(void);
 
+void flush_thread(void)
+{
+}
+
 int copy_thread(unsigned long clone_flags,
                 unsigned long usp, unsigned long topstk,
                 struct task_struct * p)
index 9af8d74..063a0f3 100644 (file)
@@ -51,12 +51,6 @@ static struct resource bss_resource = {
        .name   = "Kernel bss",
 };
 
-extern void *_ramstart, *_ramend;
-extern void *_stext, *_etext;
-extern void *_sdata, *_edata;
-extern void *_sbss, *_ebss;
-extern void *_end;
-
 void __init rx_fdt_init(void *fdt)
 {
        char saved_command_line[512];
@@ -208,7 +202,7 @@ device_initcall(device_probe);
 void __init time_init(void)
 {
        of_clk_init(NULL);
-       clocksource_probe();
+       timer_probe();
 }
 
 void __init calibrate_delay(void)
index 60ef4e0..970b2c4 100644 (file)
@@ -1,4 +1,5 @@
 #include <linux/sched.h>
+#include <linux/sched/task_stack.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
 #include <linux/kernel.h>
@@ -60,7 +61,7 @@ asmlinkage int sys_rt_sigreturn(void)
 
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;
-       if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
+       if (raw_copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
                goto badframe;
 
        set_current_blocked(&set);
@@ -145,7 +146,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
                          &frame->uc.uc_stack.ss_flags);
        err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
        err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]);
-       err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
+       err |= raw_copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
        if (err)
                return -EFAULT;
 
index 8aa023e..996c19d 100644 (file)
@@ -200,7 +200,6 @@ void die(const char *str, struct pt_regs *regs)
        do_exit(SIGSEGV);
 }
 
-extern char _stext, _etext;
 #define check_kernel_text(addr) \
         ((addr >= (unsigned long)(&_stext)) && \
          (addr <  (unsigned long)(&_etext))) 
@@ -254,13 +253,6 @@ void show_trace_task(struct task_struct *tsk)
        show_stack(tsk,(unsigned long *)tsk->thread.sp);
 }
 
-void dump_stack(void)
-{
-       show_stack(NULL,NULL);
-}
-
-EXPORT_SYMBOL(dump_stack);
-
 asmlinkage void unhandled_exception(struct pt_regs *regs, unsigned int ex)
 {
        if (!user_mode(regs))
index ba40f63..a74a67e 100644 (file)
@@ -36,6 +36,7 @@ SECTIONS
        {
        TEXT_TEXT
        SCHED_TEXT
+       CPUIDLE_TEXT
        LOCK_TEXT
        _etext = . ;
        }
index d61b1e5..e297363 100644 (file)
 #include <linux/highmem.h>
 #include <linux/pagemap.h>
 #include <linux/bootmem.h>
-#include <linux/slab.h>
-#include <linux/dma-mapping.h>
+#include <linux/gfp.h>
 
 #include <asm/setup.h>
 #include <asm/segment.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
-#include <asm/system.h>
+#include <asm/sections.h>
 
 #undef DEBUG
 
@@ -113,77 +112,26 @@ void __init paging_init(void)
 
 void __init mem_init(void)
 {
-       unsigned long tmp;
-       extern char _etext[], _stext[], _sdata[], _ebss[], __init_begin[], __init_end[];
-       extern unsigned long  _ramend, _ramstart;
-       unsigned long len;
-       unsigned long end_mem = (unsigned long)&_ramend;
-       unsigned int codek, datak, initk;
+       pr_devel("Mem_init: start=%lx, end=%lx\n", memory_start, memory_end);
 
-#ifdef DEBUG
-       printk(KERN_DEBUG "Mem_init: start=%lx, end=%lx\n", 
-              (unsigned long)&_ram_start, end_mem);
-#endif
-#ifdef CONFIG_ROMKERNEL
-       len = &_ramend - &_ramstart;
-#else
-       len = memory_end - memory_start;
-#endif
-       end_mem &= PAGE_MASK;
-       high_memory = (void *) end_mem;
-
-       max_mapnr = len >> PAGE_SHIFT;
-
-       totalram_pages = free_all_bootmem();
-
-       codek = (_etext - _stext) >> 10;
-       datak = (_ebss - _sdata) >> 10;
-       initk = (__init_begin - __init_end) >> 10;
-
-       tmp = nr_free_pages() << PAGE_SHIFT;
-       printk(KERN_INFO "Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n",
-              tmp >> 10,
-              len >> 10,
-              (rom_length > 0) ? ((rom_length >> 10) - codek) : 0,
-              rom_length >> 10,
-              codek,
-              datak
-              );
-       no_iommu_init();
-}
+       high_memory = (void *) (memory_end & PAGE_MASK);
+       max_mapnr = MAP_NR(high_memory);
 
+       /* this will put all low memory onto the freelists */
+       free_all_bootmem();
+
+       mem_init_print_info(NULL);
+}
 
 #ifdef CONFIG_BLK_DEV_INITRD
 void free_initrd_mem(unsigned long start, unsigned long end)
 {
-       int pages = 0;
-       for (; start < end; start += PAGE_SIZE) {
-               ClearPageReserved(virt_to_page(start));
-               init_page_count(virt_to_page(start));
-               free_page(start);
-               totalram_pages++;
-               pages++;
-       }
-       printk ("Freeing initrd memory: %dk freed\n", pages);
+       free_reserved_area((void *)start, (void *)end, -1, "initrd");
 }
 #endif
 
-void free_initmem(void)
+void
+free_initmem(void)
 {
-       unsigned long addr;
-       extern char __init_begin[], __init_end[];
-
-       addr = PAGE_ALIGN((unsigned long)(&__init_begin));
-       /* next to check that the page we free is not a partial page */
-       for (; addr + PAGE_SIZE < (unsigned long)(&__init_end); addr +=PAGE_SIZE) {
-               ClearPageReserved(virt_to_page(addr));
-               init_page_count(virt_to_page(addr));
-               free_page(addr);
-               totalram_pages++;
-       }
-       printk(KERN_INFO "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n",
-                       (addr - PAGE_ALIGN((long) &__init_begin)) >> 10,
-                       (int)(PAGE_ALIGN((unsigned long)(&__init_begin))),
-                       (int)(addr - PAGE_SIZE));
+       free_initmem_default(-1);
 }
-
index 96463bc..6c44ddb 100644 (file)
@@ -57,7 +57,7 @@ static inline struct tpu_priv *cs_to_priv(struct clocksource *cs)
        return container_of(cs, struct tpu_priv, cs);
 }
 
-static cycle_t tpu_clocksource_read(struct clocksource *cs)
+static u64 tpu_clocksource_read(struct clocksource *cs)
 {
        struct tpu_priv *p = cs_to_priv(cs);
        unsigned long flags;