diff options
Diffstat (limited to 'arch/sparc')
34 files changed, 131 insertions, 38 deletions
| diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig index 56e3163673e..259e3fd5099 100644 --- a/arch/sparc/configs/sparc64_defconfig +++ b/arch/sparc/configs/sparc64_defconfig @@ -1,7 +1,7 @@  #  # Automatically generated make config: don't edit -# Linux kernel version: 2.6.33 -# Wed Mar  3 02:54:29 2010 +# Linux kernel version: 2.6.34-rc3 +# Sat Apr  3 15:49:56 2010  #  CONFIG_64BIT=y  CONFIG_SPARC=y @@ -23,6 +23,7 @@ CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y  CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y  CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y  CONFIG_MMU=y +CONFIG_NEED_DMA_MAP_STATE=y  CONFIG_ARCH_NO_VIRT_TO_BUS=y  CONFIG_OF=y  CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -439,6 +440,7 @@ CONFIG_MISC_DEVICES=y  # CONFIG_ENCLOSURE_SERVICES is not set  # CONFIG_HP_ILO is not set  # CONFIG_ISL29003 is not set +# CONFIG_SENSORS_TSL2550 is not set  # CONFIG_DS1682 is not set  # CONFIG_C2PORT is not set @@ -511,6 +513,7 @@ CONFIG_BLK_DEV_IDEDMA=y  #  # SCSI device support  # +CONFIG_SCSI_MOD=y  CONFIG_RAID_ATTRS=m  CONFIG_SCSI=y  CONFIG_SCSI_DMA=y @@ -888,6 +891,7 @@ CONFIG_SERIAL_SUNHV=y  CONFIG_SERIAL_CORE=y  CONFIG_SERIAL_CORE_CONSOLE=y  # CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_TIMBERDALE is not set  # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set  CONFIG_UNIX98_PTYS=y  # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set @@ -935,6 +939,7 @@ CONFIG_I2C_ALGOBIT=y  #  # CONFIG_I2C_OCORES is not set  # CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set  #  # External I2C/SMBus adapter drivers @@ -948,15 +953,9 @@ CONFIG_I2C_ALGOBIT=y  #  # CONFIG_I2C_PCA_PLATFORM is not set  # CONFIG_I2C_STUB is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_SENSORS_TSL2550 is not set  # CONFIG_I2C_DEBUG_CORE is not set  # CONFIG_I2C_DEBUG_ALGO is not set  # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set  # CONFIG_SPI is not set  # @@ -982,10 +981,11 @@ CONFIG_HWMON=y  # CONFIG_SENSORS_ADM1029 is not set  # CONFIG_SENSORS_ADM1031 is not set  # CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7411 is not set  # CONFIG_SENSORS_ADT7462 is not set  # CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7473 is not set  # CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_ASC7621 is not set  # CONFIG_SENSORS_ATXP1 is not set  # CONFIG_SENSORS_DS1621 is not set  # CONFIG_SENSORS_I5K_AMB is not set @@ -1052,18 +1052,21 @@ CONFIG_SSB_POSSIBLE=y  # Multifunction device drivers  #  # CONFIG_MFD_CORE is not set +# CONFIG_MFD_88PM860X is not set  # CONFIG_MFD_SM501 is not set  # CONFIG_HTC_PASIC3 is not set  # CONFIG_TWL4030_CORE is not set  # CONFIG_MFD_TMIO is not set  # CONFIG_PMIC_DA903X is not set  # CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set  # CONFIG_MFD_WM8400 is not set  # CONFIG_MFD_WM831X is not set  # CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set  # CONFIG_MFD_PCF50633 is not set  # CONFIG_AB3100_CORE is not set -# CONFIG_MFD_88PM8607 is not set +# CONFIG_LPC_SCH is not set  # CONFIG_REGULATOR is not set  # CONFIG_MEDIA_SUPPORT is not set @@ -1113,6 +1116,7 @@ CONFIG_FB_FFB=y  # CONFIG_FB_LEO is not set  CONFIG_FB_XVR500=y  CONFIG_FB_XVR2500=y +CONFIG_FB_XVR1000=y  # CONFIG_FB_S1D13XXX is not set  # CONFIG_FB_NVIDIA is not set  # CONFIG_FB_RIVA is not set @@ -1430,7 +1434,6 @@ CONFIG_USB_STORAGE=m  # CONFIG_USB_RIO500 is not set  # CONFIG_USB_LEGOTOWER is not set  # CONFIG_USB_LCD is not set -# CONFIG_USB_BERRY_CHARGE is not set  # CONFIG_USB_LED is not set  # CONFIG_USB_CYPRESS_CY7C63 is not set  # CONFIG_USB_CYTHERM is not set @@ -1443,7 +1446,6 @@ CONFIG_USB_STORAGE=m  # CONFIG_USB_IOWARRIOR is not set  # CONFIG_USB_TEST is not set  # CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_VST is not set  # CONFIG_USB_GADGET is not set  # @@ -1610,6 +1612,7 @@ CONFIG_MISC_FILESYSTEMS=y  # CONFIG_BEFS_FS is not set  # CONFIG_BFS_FS is not set  # CONFIG_EFS_FS is not set +# CONFIG_LOGFS is not set  # CONFIG_CRAMFS is not set  # CONFIG_SQUASHFS is not set  # CONFIG_VXFS_FS is not set @@ -1624,6 +1627,7 @@ CONFIG_NETWORK_FILESYSTEMS=y  # CONFIG_NFS_FS is not set  # CONFIG_NFSD is not set  # CONFIG_SMB_FS is not set +# CONFIG_CEPH_FS is not set  # CONFIG_CIFS is not set  # CONFIG_NCP_FS is not set  # CONFIG_CODA_FS is not set diff --git a/arch/sparc/include/asm/stat.h b/arch/sparc/include/asm/stat.h index 39327d6a57e..a232e9e1f4e 100644 --- a/arch/sparc/include/asm/stat.h +++ b/arch/sparc/include/asm/stat.h @@ -53,8 +53,8 @@ struct stat {  	ino_t		st_ino;  	mode_t		st_mode;  	short		st_nlink; -	uid16_t		st_uid; -	gid16_t		st_gid; +	unsigned short	st_uid; +	unsigned short	st_gid;  	unsigned short	st_rdev;  	off_t		st_size;  	time_t		st_atime; diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c index 4589ca33220..415c86d5a8d 100644 --- a/arch/sparc/kernel/central.c +++ b/arch/sparc/kernel/central.c @@ -5,6 +5,7 @@  #include <linux/kernel.h>  #include <linux/types.h> +#include <linux/slab.h>  #include <linux/string.h>  #include <linux/init.h>  #include <linux/of_device.h> diff --git a/arch/sparc/kernel/cpumap.c b/arch/sparc/kernel/cpumap.c index 7430ed080b2..8de64c8126b 100644 --- a/arch/sparc/kernel/cpumap.c +++ b/arch/sparc/kernel/cpumap.c @@ -4,6 +4,7 @@   */  #include <linux/module.h> +#include <linux/slab.h>  #include <linux/kernel.h>  #include <linux/init.h>  #include <linux/cpumask.h> diff --git a/arch/sparc/kernel/helpers.S b/arch/sparc/kernel/helpers.S index 314dd0c9fc5..92090cc9e82 100644 --- a/arch/sparc/kernel/helpers.S +++ b/arch/sparc/kernel/helpers.S @@ -46,6 +46,81 @@ stack_trace_flush:  	 nop  	.size		stack_trace_flush,.-stack_trace_flush +#ifdef CONFIG_PERF_EVENTS +	.globl		perf_arch_fetch_caller_regs +	.type		perf_arch_fetch_caller_regs,#function +perf_arch_fetch_caller_regs: +	/* We always read the %pstate into %o5 since we will use +	 * that to construct a fake %tstate to store into the regs. +	 */ +	rdpr		%pstate, %o5 +	brz,pn		%o2, 50f +	 mov		%o2, %g7 + +	/* Turn off interrupts while we walk around the register +	 * window by hand. +	 */ +	wrpr		%o5, PSTATE_IE, %pstate + +	/* The %canrestore tells us how many register windows are +	 * still live in the chip above us, past that we have to +	 * walk the frame as saved on the stack.   We stash away +	 * the %cwp in %g1 so we can return back to the original +	 * register window. +	 */ +	rdpr		%cwp, %g1 +	rdpr		%canrestore, %g2 +	sub		%g1, 1, %g3 + +	/* We have the skip count in %g7, if it hits zero then +	 * %fp/%i7 are the registers we need.  Otherwise if our +	 * %canrestore count maintained in %g2 hits zero we have +	 * to start traversing the stack. +	 */ +10:	brz,pn		%g2, 4f +	 sub		%g2, 1, %g2 +	wrpr		%g3, %cwp +	subcc		%g7, 1, %g7 +	bne,pt		%xcc, 10b +	 sub		%g3, 1, %g3 + +	/* We found the values we need in the cpu's register +	 * windows. +	 */ +	mov		%fp, %g3 +	ba,pt		%xcc, 3f +	 mov		%i7, %g2 + +50:	mov		%fp, %g3 +	ba,pt		%xcc, 2f +	 mov		%i7, %g2 + +	/* We hit the end of the valid register windows in the +	 * cpu, start traversing the stack frame. +	 */ +4:	mov		%fp, %g3 + +20:	ldx		[%g3 + STACK_BIAS + RW_V9_I7], %g2 +	subcc		%g7, 1, %g7 +	bne,pn		%xcc, 20b +	 ldx		[%g3 + STACK_BIAS + RW_V9_I6], %g3 + +	/* Restore the current register window position and +	 * re-enable interrupts. +	 */ +3:	wrpr		%g1, %cwp +	wrpr		%o5, %pstate + +2:	stx		%g3, [%o0 + PT_V9_FP] +	sllx		%o5, 8, %o5 +	stx		%o5, [%o0 + PT_V9_TSTATE] +	stx		%g2, [%o0 + PT_V9_TPC] +	add		%g2, 4, %g2 +	retl +	 stx		%g2, [%o0 + PT_V9_TNPC] +	.size		perf_arch_fetch_caller_regs,.-perf_arch_fetch_caller_regs +#endif /* CONFIG_PERF_EVENTS */ +  #ifdef CONFIG_SMP  	.globl		hard_smp_processor_id  	.type		hard_smp_processor_id,#function diff --git a/arch/sparc/kernel/hvapi.c b/arch/sparc/kernel/hvapi.c index 1d272c3b574..7c60afb835b 100644 --- a/arch/sparc/kernel/hvapi.c +++ b/arch/sparc/kernel/hvapi.c @@ -5,7 +5,6 @@  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/init.h> -#include <linux/slab.h>  #include <asm/hypervisor.h>  #include <asm/oplib.h> diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c index 8414549c183..47977a77f6c 100644 --- a/arch/sparc/kernel/iommu.c +++ b/arch/sparc/kernel/iommu.c @@ -6,6 +6,7 @@  #include <linux/kernel.h>  #include <linux/module.h> +#include <linux/slab.h>  #include <linux/delay.h>  #include <linux/device.h>  #include <linux/dma-mapping.h> diff --git a/arch/sparc/kernel/kprobes.c b/arch/sparc/kernel/kprobes.c index 6716584e48a..a39d1ba5a11 100644 --- a/arch/sparc/kernel/kprobes.c +++ b/arch/sparc/kernel/kprobes.c @@ -7,6 +7,7 @@  #include <linux/kprobes.h>  #include <linux/module.h>  #include <linux/kdebug.h> +#include <linux/slab.h>  #include <asm/signal.h>  #include <asm/cacheflush.h>  #include <asm/uaccess.h> diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c index 00d034ea216..3ae36f36e75 100644 --- a/arch/sparc/kernel/led.c +++ b/arch/sparc/kernel/led.c @@ -3,6 +3,7 @@  #include <linux/init.h>  #include <linux/proc_fs.h>  #include <linux/seq_file.h> +#include <linux/slab.h>  #include <linux/string.h>  #include <linux/jiffies.h>  #include <linux/timer.h> diff --git a/arch/sparc/kernel/leon_kernel.c b/arch/sparc/kernel/leon_kernel.c index 0409d62d8ca..6a7b4dbc8e0 100644 --- a/arch/sparc/kernel/leon_kernel.c +++ b/arch/sparc/kernel/leon_kernel.c @@ -7,7 +7,6 @@  #include <linux/module.h>  #include <linux/errno.h>  #include <linux/mutex.h> -#include <linux/slab.h>  #include <linux/of.h>  #include <linux/of_platform.h>  #include <linux/interrupt.h> diff --git a/arch/sparc/kernel/leon_smp.c b/arch/sparc/kernel/leon_smp.c index 85787577f68..e1656fc41cc 100644 --- a/arch/sparc/kernel/leon_smp.c +++ b/arch/sparc/kernel/leon_smp.c @@ -22,6 +22,7 @@  #include <linux/profile.h>  #include <linux/pm.h>  #include <linux/delay.h> +#include <linux/gfp.h>  #include <asm/cacheflush.h>  #include <asm/tlbflush.h> diff --git a/arch/sparc/kernel/module.c b/arch/sparc/kernel/module.c index 0ee642f6323..f848aadf54d 100644 --- a/arch/sparc/kernel/module.c +++ b/arch/sparc/kernel/module.c @@ -9,9 +9,9 @@  #include <linux/elf.h>  #include <linux/vmalloc.h>  #include <linux/fs.h> +#include <linux/gfp.h>  #include <linux/string.h>  #include <linux/ctype.h> -#include <linux/slab.h>  #include <linux/mm.h>  #include <asm/processor.h> diff --git a/arch/sparc/kernel/of_device_common.c b/arch/sparc/kernel/of_device_common.c index cb8eb799bb6..0247e68210b 100644 --- a/arch/sparc/kernel/of_device_common.c +++ b/arch/sparc/kernel/of_device_common.c @@ -4,7 +4,6 @@  #include <linux/init.h>  #include <linux/module.h>  #include <linux/mod_devicetable.h> -#include <linux/slab.h>  #include <linux/errno.h>  #include <linux/irq.h>  #include <linux/of_device.h> diff --git a/arch/sparc/kernel/pci_msi.c b/arch/sparc/kernel/pci_msi.c index e1b0541feb1..e0ef847219c 100644 --- a/arch/sparc/kernel/pci_msi.c +++ b/arch/sparc/kernel/pci_msi.c @@ -4,6 +4,7 @@   */  #include <linux/kernel.h>  #include <linux/interrupt.h> +#include <linux/slab.h>  #include <linux/irq.h>  #include "pci_impl.h" diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 68cb9b42088..e2771939341 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c @@ -1337,7 +1337,7 @@ static void perf_callchain_user_32(struct pt_regs *regs,  	callchain_store(entry, PERF_CONTEXT_USER);  	callchain_store(entry, regs->tpc); -	ufp = regs->u_regs[UREG_I6]; +	ufp = regs->u_regs[UREG_I6] & 0xffffffffUL;  	do {  		struct sparc_stackf32 *usf, sf;  		unsigned long pc; diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index c49865b3071..40e29fc8a4d 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c @@ -17,13 +17,13 @@  #include <linux/mm.h>  #include <linux/stddef.h>  #include <linux/ptrace.h> -#include <linux/slab.h>  #include <linux/user.h>  #include <linux/smp.h>  #include <linux/reboot.h>  #include <linux/delay.h>  #include <linux/pm.h>  #include <linux/init.h> +#include <linux/slab.h>  #include <asm/auxio.h>  #include <asm/oplib.h> diff --git a/arch/sparc/kernel/ptrace_32.c b/arch/sparc/kernel/ptrace_32.c index 7e3dfd9bb97..e608f397e11 100644 --- a/arch/sparc/kernel/ptrace_32.c +++ b/arch/sparc/kernel/ptrace_32.c @@ -65,6 +65,7 @@ static int genregs32_get(struct task_struct *target,  			*k++ = regs->u_regs[pos++];  		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		for (; count > 0 && pos < 32; count--) {  			if (get_user(*k++, ®_window[pos++]))  				return -EFAULT; @@ -76,6 +77,7 @@ static int genregs32_get(struct task_struct *target,  		}  		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		for (; count > 0 && pos < 32; count--) {  			if (get_user(reg, ®_window[pos++]) ||  			    put_user(reg, u++)) @@ -141,6 +143,7 @@ static int genregs32_set(struct task_struct *target,  			regs->u_regs[pos++] = *k++;  		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		for (; count > 0 && pos < 32; count--) {  			if (put_user(*k++, ®_window[pos++]))  				return -EFAULT; @@ -153,6 +156,7 @@ static int genregs32_set(struct task_struct *target,  		}  		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		for (; count > 0 && pos < 32; count--) {  			if (get_user(reg, u++) ||  			    put_user(reg, ®_window[pos++])) diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c index 2f6524d1a81..aa90da08bf6 100644 --- a/arch/sparc/kernel/ptrace_64.c +++ b/arch/sparc/kernel/ptrace_64.c @@ -492,6 +492,7 @@ static int genregs32_get(struct task_struct *target,  			*k++ = regs->u_regs[pos++];  		reg_window = (compat_ulong_t __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		if (target == current) {  			for (; count > 0 && pos < 32; count--) {  				if (get_user(*k++, ®_window[pos++])) @@ -516,6 +517,7 @@ static int genregs32_get(struct task_struct *target,  		}  		reg_window = (compat_ulong_t __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		if (target == current) {  			for (; count > 0 && pos < 32; count--) {  				if (get_user(reg, ®_window[pos++]) || @@ -599,6 +601,7 @@ static int genregs32_set(struct task_struct *target,  			regs->u_regs[pos++] = *k++;  		reg_window = (compat_ulong_t __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		if (target == current) {  			for (; count > 0 && pos < 32; count--) {  				if (put_user(*k++, ®_window[pos++])) @@ -625,6 +628,7 @@ static int genregs32_set(struct task_struct *target,  		}  		reg_window = (compat_ulong_t __user *) regs->u_regs[UREG_I6]; +		reg_window -= 16;  		if (target == current) {  			for (; count > 0 && pos < 32; count--) {  				if (get_user(reg, u++) || diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c index a2a79e76344..5f72de67588 100644 --- a/arch/sparc/kernel/setup_64.c +++ b/arch/sparc/kernel/setup_64.c @@ -12,7 +12,6 @@  #include <linux/stddef.h>  #include <linux/unistd.h>  #include <linux/ptrace.h> -#include <linux/slab.h>  #include <asm/smp.h>  #include <linux/user.h>  #include <linux/screen_info.h> diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index eb14844a002..4c533452810 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c @@ -23,6 +23,7 @@  #include <linux/bootmem.h>  #include <linux/vmalloc.h>  #include <linux/cpu.h> +#include <linux/slab.h>  #include <asm/head.h>  #include <asm/ptrace.h> diff --git a/arch/sparc/kernel/sun4c_irq.c b/arch/sparc/kernel/sun4c_irq.c index bc3adbf79c6..892fb884910 100644 --- a/arch/sparc/kernel/sun4c_irq.c +++ b/arch/sparc/kernel/sun4c_irq.c @@ -16,7 +16,6 @@  #include <linux/sched.h>  #include <linux/ptrace.h>  #include <linux/interrupt.h> -#include <linux/slab.h>  #include <linux/init.h>  #include <linux/of.h>  #include <linux/of_device.h> diff --git a/arch/sparc/kernel/sun4m_irq.c b/arch/sparc/kernel/sun4m_irq.c index 301892e2d71..7f3b97ff62c 100644 --- a/arch/sparc/kernel/sun4m_irq.c +++ b/arch/sparc/kernel/sun4m_irq.c @@ -17,7 +17,6 @@  #include <linux/ptrace.h>  #include <linux/smp.h>  #include <linux/interrupt.h> -#include <linux/slab.h>  #include <linux/init.h>  #include <linux/ioport.h>  #include <linux/of.h> diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c index daded3b9639..c0ca87553e1 100644 --- a/arch/sparc/kernel/sys_sparc32.c +++ b/arch/sparc/kernel/sys_sparc32.c @@ -21,7 +21,6 @@  #include <linux/sem.h>  #include <linux/msg.h>  #include <linux/shm.h> -#include <linux/slab.h>  #include <linux/uio.h>  #include <linux/nfs_fs.h>  #include <linux/quota.h> @@ -44,6 +43,7 @@  #include <linux/compat.h>  #include <linux/vfs.h>  #include <linux/ptrace.h> +#include <linux/slab.h>  #include <asm/types.h>  #include <asm/uaccess.h> diff --git a/arch/sparc/kernel/sysfs.c b/arch/sparc/kernel/sysfs.c index ca39c606fe8..1eb8b00aed7 100644 --- a/arch/sparc/kernel/sysfs.c +++ b/arch/sparc/kernel/sysfs.c @@ -107,12 +107,12 @@ static unsigned long run_on_cpu(unsigned long cpu,  	unsigned long ret;  	/* should return -EINVAL to userspace */ -	if (set_cpus_allowed(current, cpumask_of_cpu(cpu))) +	if (set_cpus_allowed_ptr(current, cpumask_of(cpu)))  		return 0;  	ret = func(arg); -	set_cpus_allowed(current, old_affinity); +	set_cpus_allowed_ptr(current, &old_affinity);  	return ret;  } diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c index bdc05a21908..837dfc2390d 100644 --- a/arch/sparc/kernel/traps_64.c +++ b/arch/sparc/kernel/traps_64.c @@ -17,6 +17,7 @@  #include <linux/mm.h>  #include <linux/init.h>  #include <linux/kdebug.h> +#include <linux/gfp.h>  #include <asm/smp.h>  #include <asm/delay.h> diff --git a/arch/sparc/kernel/us2e_cpufreq.c b/arch/sparc/kernel/us2e_cpufreq.c index 791c15138f3..8f982b76c71 100644 --- a/arch/sparc/kernel/us2e_cpufreq.c +++ b/arch/sparc/kernel/us2e_cpufreq.c @@ -238,12 +238,12 @@ static unsigned int us2e_freq_get(unsigned int cpu)  		return 0;  	cpus_allowed = current->cpus_allowed; -	set_cpus_allowed(current, cpumask_of_cpu(cpu)); +	set_cpus_allowed_ptr(current, cpumask_of(cpu));  	clock_tick = sparc64_get_clock_tick(cpu) / 1000;  	estar = read_hbreg(HBIRD_ESTAR_MODE_ADDR); -	set_cpus_allowed(current, cpus_allowed); +	set_cpus_allowed_ptr(current, &cpus_allowed);  	return clock_tick / estar_to_divisor(estar);  } @@ -259,7 +259,7 @@ static void us2e_set_cpu_divider_index(unsigned int cpu, unsigned int index)  		return;  	cpus_allowed = current->cpus_allowed; -	set_cpus_allowed(current, cpumask_of_cpu(cpu)); +	set_cpus_allowed_ptr(current, cpumask_of(cpu));  	new_freq = clock_tick = sparc64_get_clock_tick(cpu) / 1000;  	new_bits = index_to_estar_mode(index); @@ -281,7 +281,7 @@ static void us2e_set_cpu_divider_index(unsigned int cpu, unsigned int index)  	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); -	set_cpus_allowed(current, cpus_allowed); +	set_cpus_allowed_ptr(current, &cpus_allowed);  }  static int us2e_freq_target(struct cpufreq_policy *policy, diff --git a/arch/sparc/kernel/us3_cpufreq.c b/arch/sparc/kernel/us3_cpufreq.c index 365b6464e2c..f35d1e79454 100644 --- a/arch/sparc/kernel/us3_cpufreq.c +++ b/arch/sparc/kernel/us3_cpufreq.c @@ -86,12 +86,12 @@ static unsigned int us3_freq_get(unsigned int cpu)  		return 0;  	cpus_allowed = current->cpus_allowed; -	set_cpus_allowed(current, cpumask_of_cpu(cpu)); +	set_cpus_allowed_ptr(current, cpumask_of(cpu));  	reg = read_safari_cfg();  	ret = get_current_freq(cpu, reg); -	set_cpus_allowed(current, cpus_allowed); +	set_cpus_allowed_ptr(current, &cpus_allowed);  	return ret;  } @@ -106,7 +106,7 @@ static void us3_set_cpu_divider_index(unsigned int cpu, unsigned int index)  		return;  	cpus_allowed = current->cpus_allowed; -	set_cpus_allowed(current, cpumask_of_cpu(cpu)); +	set_cpus_allowed_ptr(current, cpumask_of(cpu));  	new_freq = sparc64_get_clock_tick(cpu) / 1000;  	switch (index) { @@ -140,7 +140,7 @@ static void us3_set_cpu_divider_index(unsigned int cpu, unsigned int index)  	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); -	set_cpus_allowed(current, cpus_allowed); +	set_cpus_allowed_ptr(current, &cpus_allowed);  }  static int us3_freq_target(struct cpufreq_policy *policy, diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c index c28c71449a6..3cb1def9806 100644 --- a/arch/sparc/kernel/vio.c +++ b/arch/sparc/kernel/vio.c @@ -10,6 +10,7 @@   */  #include <linux/kernel.h> +#include <linux/slab.h>  #include <linux/irq.h>  #include <linux/init.h> diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c index f27d10369e0..5fdddf134ca 100644 --- a/arch/sparc/mm/hugetlbpage.c +++ b/arch/sparc/mm/hugetlbpage.c @@ -10,7 +10,6 @@  #include <linux/mm.h>  #include <linux/hugetlb.h>  #include <linux/pagemap.h> -#include <linux/slab.h>  #include <linux/sysctl.h>  #include <asm/mman.h> diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c index dc7c3b17a15..6d0e02c4fe0 100644 --- a/arch/sparc/mm/init_32.c +++ b/arch/sparc/mm/init_32.c @@ -24,6 +24,7 @@  #include <linux/bootmem.h>  #include <linux/pagemap.h>  #include <linux/poison.h> +#include <linux/gfp.h>  #include <asm/sections.h>  #include <asm/system.h> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 9245a822a2f..b2831dc3c12 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -13,7 +13,6 @@  #include <linux/bootmem.h>  #include <linux/mm.h>  #include <linux/hugetlb.h> -#include <linux/slab.h>  #include <linux/initrd.h>  #include <linux/swap.h>  #include <linux/pagemap.h> @@ -26,6 +25,7 @@  #include <linux/percpu.h>  #include <linux/lmb.h>  #include <linux/mmzone.h> +#include <linux/gfp.h>  #include <asm/head.h>  #include <asm/system.h> @@ -2117,7 +2117,7 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)  			       "node=%d entry=%lu/%lu\n", start, block, nr,  			       node,  			       addr >> VMEMMAP_CHUNK_SHIFT, -			       VMEMMAP_SIZE >> VMEMMAP_CHUNK_SHIFT); +			       VMEMMAP_SIZE);  		}  	}  	return 0; diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index df49b200ca4..f5f75a58e0b 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c @@ -10,7 +10,6 @@  #include <linux/kernel.h>  #include <linux/mm.h> -#include <linux/slab.h>  #include <linux/vmalloc.h>  #include <linux/pagemap.h>  #include <linux/init.h> @@ -20,6 +19,7 @@  #include <linux/seq_file.h>  #include <linux/kdebug.h>  #include <linux/log2.h> +#include <linux/gfp.h>  #include <asm/bitext.h>  #include <asm/page.h> diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 18652534b91..cf38846753d 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c @@ -12,6 +12,7 @@  #include <linux/kernel.h>  #include <linux/mm.h>  #include <linux/init.h> +#include <linux/slab.h>  #include <linux/bootmem.h>  #include <linux/highmem.h>  #include <linux/fs.h> diff --git a/arch/sparc/mm/tsb.c b/arch/sparc/mm/tsb.c index 36a0813f951..101d7c82870 100644 --- a/arch/sparc/mm/tsb.c +++ b/arch/sparc/mm/tsb.c @@ -5,6 +5,7 @@  #include <linux/kernel.h>  #include <linux/preempt.h> +#include <linux/slab.h>  #include <asm/system.h>  #include <asm/page.h>  #include <asm/tlbflush.h> | 
