From: Yoshinori Sato Date: Sun, 4 Nov 2018 16:17:04 +0000 (+0900) Subject: build fix 4.19 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=9752ceae7047460e949fbe06c5addadbb19380ed;p=uclinux-h8%2Flinux.git build fix 4.19 --- diff --git a/arch/rx/Kconfig b/arch/rx/Kconfig index 51233d31e43a..c78f73f4ff77 100644 --- a/arch/rx/Kconfig +++ b/arch/rx/Kconfig @@ -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" diff --git a/arch/rx/Kconfig.debug b/arch/rx/Kconfig.debug index c060d7b31c68..7049995251a7 100644 --- a/arch/rx/Kconfig.debug +++ b/arch/rx/Kconfig.debug @@ -1,7 +1,5 @@ menu "Kernel Hacking" -source "lib/Kconfig.debug" - config EARLY_PRINTK bool "Early printk support" diff --git a/arch/rx/boot/compressed/head.S b/arch/rx/boot/compressed/head.S index fa8ef5dd2d5f..7406d74a1b4f 100644 --- a/arch/rx/boot/compressed/head.S +++ b/arch/rx/boot/compressed/head.S @@ -10,10 +10,10 @@ .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 diff --git a/arch/rx/boot/compressed/misc.c b/arch/rx/boot/compressed/misc.c index d8c2da74c7b9..cc3c40d6d5fe 100644 --- a/arch/rx/boot/compressed/misc.c +++ b/arch/rx/boot/compressed/misc.c @@ -8,9 +8,6 @@ * */ -#include -#include - /* * gzip declarations */ diff --git a/arch/rx/boot/compressed/vmlinux.lds b/arch/rx/boot/compressed/vmlinux.lds new file mode 100644 index 000000000000..7f7bb419ce15 --- /dev/null +++ b/arch/rx/boot/compressed/vmlinux.lds @@ -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 = . ; +} diff --git a/arch/rx/include/asm/Kbuild b/arch/rx/include/asm/Kbuild index a5848e0fcceb..ab70a788253e 100644 --- a/arch/rx/include/asm/Kbuild +++ b/arch/rx/include/asm/Kbuild @@ -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 diff --git a/arch/rx/include/asm/atomic.h b/arch/rx/include/asm/atomic.h index 2b26017897b5..f246d88aa01b 100644 --- a/arch/rx/include/asm/atomic.h +++ b/arch/rx/include/asm/atomic.h @@ -1,6 +1,7 @@ #ifndef __ARCH_RX_ATOMIC__ #define __ARCH_RX_ATOMIC__ +#include #include #include @@ -14,8 +15,6 @@ #define atomic_read(v) READ_ONCE((v)->counter) #define atomic_set(v, i) WRITE_ONCE(((v)->counter), (i)) -#include - #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 index b7fe84936662..000000000000 --- a/arch/rx/include/asm/dma-mapping.h +++ /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 */ diff --git a/arch/rx/include/asm/irqflags.h b/arch/rx/include/asm/irqflags.h index dada51a8098a..9c1f50ca0c74 100644 --- a/arch/rx/include/asm/irqflags.h +++ b/arch/rx/include/asm/irqflags.h @@ -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 diff --git a/arch/rx/include/asm/page.h b/arch/rx/include/asm/page.h index 1a8b62711f28..6ddc4764ca93 100644 --- a/arch/rx/include/asm/page.h +++ b/arch/rx/include/asm/page.h @@ -1 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _RX_PAGE_H +#define _RX_PAGE_H + #include +#include + +#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 diff --git a/arch/rx/include/asm/processor.h b/arch/rx/include/asm/processor.h index cde4fb3a71e7..578c6809f686 100644 --- a/arch/rx/include/asm/processor.h +++ b/arch/rx/include/asm/processor.h @@ -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 index 000000000000..993ce4029d7b --- /dev/null +++ b/arch/rx/include/asm/ptrace.h @@ -0,0 +1,9 @@ +#ifndef __ASM_RX_PTRACE_H__ +#define __ASM_RX_PTRACE_H__ + +#include + +#define task_pt_regs(tsk) \ + ((struct pt_regs *)(task_stack_page(tsk) + THREAD_SIZE) - 1) + +#endif diff --git a/arch/rx/include/asm/segment.h b/arch/rx/include/asm/segment.h index c9a95218299a..2847189bfd0d 100644 --- a/arch/rx/include/asm/segment.h +++ b/arch/rx/include/asm/segment.h @@ -5,6 +5,7 @@ typedef struct { unsigned long seg; } mm_segment_t; + #endif #endif diff --git a/arch/rx/include/asm/system.h b/arch/rx/include/asm/system.h index e7682bd3a040..eb1f0c5d43f8 100644 --- a/arch/rx/include/asm/system.h +++ b/arch/rx/include/asm/system.h @@ -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__ */ diff --git a/arch/rx/include/asm/thread_info.h b/arch/rx/include/asm/thread_info.h index 9ded37aa12bf..10d89e9e6d86 100644 --- a/arch/rx/include/asm/thread_info.h +++ b/arch/rx/include/asm/thread_info.h @@ -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 index 000000000000..bc8031949d07 --- /dev/null +++ b/arch/rx/include/asm/uaccess.h @@ -0,0 +1,55 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_UACCESS_H +#define _ASM_UACCESS_H + +#include + +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 + +#endif diff --git a/arch/rx/include/uapi/asm/Kbuild b/arch/rx/include/uapi/asm/Kbuild index fb6101a5d4f1..1ab3a59b555c 100644 --- a/arch/rx/include/uapi/asm/Kbuild +++ b/arch/rx/include/uapi/asm/Kbuild @@ -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 index 000000000000..2ffe34a210e8 --- /dev/null +++ b/arch/rx/include/uapi/asm/bitsperlong.h @@ -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 + +#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 */ diff --git a/arch/rx/include/uapi/asm/ptrace.h b/arch/rx/include/uapi/asm/ptrace.h index 5a725e92d7c3..65dce726dc9a 100644 --- a/arch/rx/include/uapi/asm/ptrace.h +++ b/arch/rx/include/uapi/asm/ptrace.h @@ -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__ diff --git a/arch/rx/kernel/Makefile b/arch/rx/kernel/Makefile index 408c89f51e64..79ad84b96ddc 100644 --- a/arch/rx/kernel/Makefile +++ b/arch/rx/kernel/Makefile @@ -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' diff --git a/arch/rx/kernel/process.c b/arch/rx/kernel/process.c index ab5dc6d22ebe..0be56cc467c0 100644 --- a/arch/rx/kernel/process.c +++ b/arch/rx/kernel/process.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -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) diff --git a/arch/rx/kernel/setup.c b/arch/rx/kernel/setup.c index 9af8d7477eea..063a0f314b7e 100644 --- a/arch/rx/kernel/setup.c +++ b/arch/rx/kernel/setup.c @@ -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) diff --git a/arch/rx/kernel/signal.c b/arch/rx/kernel/signal.c index 60ef4e0b230c..970b2c430239 100644 --- a/arch/rx/kernel/signal.c +++ b/arch/rx/kernel/signal.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -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; diff --git a/arch/rx/kernel/traps.c b/arch/rx/kernel/traps.c index 8aa023ed6337..996c19dfc9d5 100644 --- a/arch/rx/kernel/traps.c +++ b/arch/rx/kernel/traps.c @@ -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)) diff --git a/arch/rx/kernel/vmlinux.lds.S b/arch/rx/kernel/vmlinux.lds.S index ba40f6350eb7..a74a67e0ff68 100644 --- a/arch/rx/kernel/vmlinux.lds.S +++ b/arch/rx/kernel/vmlinux.lds.S @@ -36,6 +36,7 @@ SECTIONS { TEXT_TEXT SCHED_TEXT + CPUIDLE_TEXT LOCK_TEXT _etext = . ; } diff --git a/arch/rx/mm/init.c b/arch/rx/mm/init.c index d61b1e5eb6b7..e2973632cd1c 100644 --- a/arch/rx/mm/init.c +++ b/arch/rx/mm/init.c @@ -22,14 +22,13 @@ #include #include #include -#include -#include +#include #include #include #include #include -#include +#include #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); } - diff --git a/drivers/clocksource/rx_tpu.c b/drivers/clocksource/rx_tpu.c index 96463bceb5ab..6c44ddb0e6b0 100644 --- a/drivers/clocksource/rx_tpu.c +++ b/drivers/clocksource/rx_tpu.c @@ -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;