diff options
Diffstat (limited to 'arch/sh/kernel')
| -rw-r--r-- | arch/sh/kernel/cpu/sh2/probe.c | 4 | ||||
| -rw-r--r-- | arch/sh/kernel/dma-nommu.c | 1 | ||||
| -rw-r--r-- | arch/sh/kernel/hw_breakpoint.c | 9 | ||||
| -rw-r--r-- | arch/sh/kernel/irq.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/process.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/process_32.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/setup.c | 1 | ||||
| -rw-r--r-- | arch/sh/kernel/traps_32.c | 20 | 
8 files changed, 17 insertions, 24 deletions
| diff --git a/arch/sh/kernel/cpu/sh2/probe.c b/arch/sh/kernel/cpu/sh2/probe.c index 4205f6d42b69..a5bd03642678 100644 --- a/arch/sh/kernel/cpu/sh2/probe.c +++ b/arch/sh/kernel/cpu/sh2/probe.c @@ -43,7 +43,11 @@ void __ref cpu_probe(void)  #endif  #if defined(CONFIG_CPU_J2) +#if defined(CONFIG_SMP)  	unsigned cpu = hard_smp_processor_id(); +#else +	unsigned cpu = 0; +#endif  	if (cpu == 0) of_scan_flat_dt(scan_cache, NULL);  	if (j2_ccr_base) __raw_writel(0x80000303, j2_ccr_base + 4*cpu);  	if (cpu != 0) return; diff --git a/arch/sh/kernel/dma-nommu.c b/arch/sh/kernel/dma-nommu.c index 178457d7620c..3e3a32fc676e 100644 --- a/arch/sh/kernel/dma-nommu.c +++ b/arch/sh/kernel/dma-nommu.c @@ -78,7 +78,6 @@ const struct dma_map_ops nommu_dma_ops = {  	.sync_single_for_device	= nommu_sync_single_for_device,  	.sync_sg_for_device	= nommu_sync_sg_for_device,  #endif -	.is_phys		= 1,  };  void __init no_iommu_init(void) diff --git a/arch/sh/kernel/hw_breakpoint.c b/arch/sh/kernel/hw_breakpoint.c index afe965712a69..8648ed05ccf0 100644 --- a/arch/sh/kernel/hw_breakpoint.c +++ b/arch/sh/kernel/hw_breakpoint.c @@ -347,13 +347,8 @@ static int __kprobes hw_breakpoint_handler(struct die_args *args)  		/* Deliver the signal to userspace */  		if (!arch_check_bp_in_kernelspace(bp)) { -			siginfo_t info; - -			info.si_signo = args->signr; -			info.si_errno = notifier_to_errno(rc); -			info.si_code = TRAP_HWBKPT; - -			force_sig_info(args->signr, &info, current); +			force_sig_fault(SIGTRAP, TRAP_HWBKPT, +					(void __user *)NULL, current);  		}  		rcu_read_unlock(); diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index 245dbeb20afe..5717c7cbdd97 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -44,7 +44,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)  	seq_printf(p, "%*s: ", prec, "NMI");  	for_each_online_cpu(j) -		seq_printf(p, "%10u ", irq_stat[j].__nmi_count); +		seq_printf(p, "%10u ", nmi_count(j));  	seq_printf(p, "  Non-maskable interrupts\n");  	seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count)); diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index 68b1a67533ce..4d1bfc848dd3 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c @@ -12,7 +12,7 @@  struct kmem_cache *task_xstate_cachep = NULL;  unsigned int xstate_size; -#ifdef CONFIG_CC_STACKPROTECTOR +#ifdef CONFIG_STACKPROTECTOR  unsigned long __stack_chk_guard __read_mostly;  EXPORT_SYMBOL(__stack_chk_guard);  #endif diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c index 93522069cb15..27fddb56b3e1 100644 --- a/arch/sh/kernel/process_32.c +++ b/arch/sh/kernel/process_32.c @@ -177,7 +177,7 @@ __switch_to(struct task_struct *prev, struct task_struct *next)  {  	struct thread_struct *next_t = &next->thread; -#if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) +#if defined(CONFIG_STACKPROTECTOR) && !defined(CONFIG_SMP)  	__stack_chk_guard = next->stack_canary;  #endif diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index d34e998b809f..c286cf5da6e7 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c @@ -11,7 +11,6 @@  #include <linux/ioport.h>  #include <linux/init.h>  #include <linux/initrd.h> -#include <linux/bootmem.h>  #include <linux/console.h>  #include <linux/root_dev.h>  #include <linux/utsname.h> diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index b3770bb26211..60709ad17fc7 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c @@ -477,7 +477,6 @@ asmlinkage void do_address_error(struct pt_regs *regs,  {  	unsigned long error_code = 0;  	mm_segment_t oldfs; -	siginfo_t info;  	insn_size_t instruction;  	int tmp; @@ -537,11 +536,7 @@ uspace_segv:  		       "access (PC %lx PR %lx)\n", current->comm, regs->pc,  		       regs->pr); -		info.si_signo = SIGBUS; -		info.si_errno = 0; -		info.si_code = si_code; -		info.si_addr = (void __user *)address; -		force_sig_info(SIGBUS, &info, current); +		force_sig_fault(SIGBUS, si_code, (void __user *)address, current);  	} else {  		inc_unaligned_kernel_access(); @@ -598,19 +593,20 @@ int is_dsp_inst(struct pt_regs *regs)  #ifdef CONFIG_CPU_SH2A  asmlinkage void do_divide_error(unsigned long r4)  { -	siginfo_t info; +	int code;  	switch (r4) {  	case TRAP_DIVZERO_ERROR: -		info.si_code = FPE_INTDIV; +		code = FPE_INTDIV;  		break;  	case TRAP_DIVOVF_ERROR: -		info.si_code = FPE_INTOVF; +		code = FPE_INTOVF;  		break; +	default: +		/* Let gcc know unhandled cases don't make it past here */ +		return;  	} - -	info.si_signo = SIGFPE; -	force_sig_info(info.si_signo, &info, current); +	force_sig_fault(SIGFPE, code, NULL, current);  }  #endif |