Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 226b7910 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Fix probe_kernel_{read,write}().
  sparc64: Kill .fixup section bloat.
  sparc64: Don't hook up pcr_ops on spitfire chips.
  sparc64: Call dump_stack() in die_nmi().
parents 29ef0117 aeb39876
Loading
Loading
Loading
Loading
+28 −3
Original line number Diff line number Diff line
@@ -891,10 +891,35 @@ prom_tba: .xword 0
tlb_type:	.word	0	/* Must NOT end up in BSS */
	.section	".fixup",#alloc,#execinstr

	.globl	__ret_efault, __retl_efault
__ret_efault:
	.globl	__ret_efault, __retl_efault, __ret_one, __retl_one
ENTRY(__ret_efault)
	ret
	 restore %g0, -EFAULT, %o0
__retl_efault:
ENDPROC(__ret_efault)

ENTRY(__retl_efault)
	retl
	 mov	-EFAULT, %o0
ENDPROC(__retl_efault)

ENTRY(__retl_one)
	retl
	 mov	1, %o0
ENDPROC(__retl_one)

ENTRY(__ret_one_asi)
	wr	%g0, ASI_AIUS, %asi
	ret
	 restore %g0, 1, %o0
ENDPROC(__ret_one_asi)

ENTRY(__retl_one_asi)
	wr	%g0, ASI_AIUS, %asi
	retl
	 mov	1, %o0
ENDPROC(__retl_one_asi)

ENTRY(__retl_o1)
	retl
	 mov	%o1, %o0
ENDPROC(__retl_o1)
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ static void die_nmi(const char *str, struct pt_regs *regs, int do_panic)
	printk(" on CPU%d, ip %08lx, registers:\n",
	       smp_processor_id(), regs->tpc);
	show_regs(regs);
	dump_stack();

	bust_spinlocks(0);

+6 −1
Original line number Diff line number Diff line
@@ -133,11 +133,16 @@ int __init pcr_arch_init(void)

	case cheetah:
	case cheetah_plus:
	case spitfire:
		pcr_ops = &direct_pcr_ops;
		pcr_enable = PCR_SUN4U_ENABLE;
		break;

	case spitfire:
		/* UltraSPARC-I/II and derivatives lack a profile
		 * counter overflow interrupt so we can't make use of
		 * their hardware currently.
		 */
		/* fallthrough */
	default:
		err = -ENODEV;
		goto out_unregister;
+1 −5
Original line number Diff line number Diff line
@@ -6,13 +6,9 @@

#define EX_ST(x,y)		\
98:	x,y;			\
	.section .fixup;	\
	.align 4;		\
99:	retl;			\
	 mov	%o1, %o0;	\
	.section __ex_table,"a";\
	.align 4;		\
	.word 98b, 99b;		\
	.word 98b, __retl_o1;	\
	.text;			\
	.align 4;

+2 −6
Original line number Diff line number Diff line
@@ -5,13 +5,9 @@

#define EX_LD(x)		\
98:	x;			\
	.section .fixup;	\
	.align 4;		\
99:	retl;			\
	 mov	1, %o0;		\
	.section __ex_table,"a";\
	.align 4;		\
	.word 98b, 99b;		\
	.word 98b, __retl_one;	\
	.text;			\
	.align 4;

@@ -27,7 +23,7 @@
#define PREAMBLE					\
	rd		%asi, %g1;			\
	cmp		%g1, ASI_AIUS;			\
	bne,pn		%icc, memcpy_user_stub;		\
	bne,pn		%icc, ___copy_in_user;		\
	 nop
#endif

Loading