aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-08-10 00:05:17 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-08-10 00:05:17 -0400
commit4d15393d20c1934a296a999d8ede125532d21cc4 (patch)
treea1ad6f5314857c1d9dfd4ba981003c2853b8027f /arch/sparc
parent7fbd15f9b42f2c30ceeb94776a111d0c28669e0c (diff)
parent2dc4ec5de039d5db4805dff170ab80f4e990e977 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Update defconfig. sparc: Kill user copy check code. sparc64: Fix perf_arch_get_caller_regs(). sparc64: Add missing ID to parport probing code.
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/Kconfig.debug14
-rw-r--r--arch/sparc/configs/sparc64_defconfig67
-rw-r--r--arch/sparc/include/asm/parport.h4
-rw-r--r--arch/sparc/include/asm/perf_event.h25
-rw-r--r--arch/sparc/include/asm/uaccess_32.h15
-rw-r--r--arch/sparc/include/asm/uaccess_64.h23
-rw-r--r--arch/sparc/kernel/helpers.S75
7 files changed, 68 insertions, 155 deletions
diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
index 1b4a831565f9..d9a795efbc04 100644
--- a/arch/sparc/Kconfig.debug
+++ b/arch/sparc/Kconfig.debug
@@ -30,18 +30,4 @@ config FRAME_POINTER
30 depends on MCOUNT 30 depends on MCOUNT
31 default y 31 default y
32 32
33config DEBUG_STRICT_USER_COPY_CHECKS
34 bool "Strict copy size checks"
35 depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
36 ---help---
37 Enabling this option turns a certain set of sanity checks for user
38 copy operations into compile time failures.
39
40 The copy_from_user() etc checks are there to help test if there
41 are sufficient security checks on the length argument of
42 the copy operation, by having gcc prove that the argument is
43 within bounds.
44
45 If unsure, or if you run an older (pre 4.4) gcc, say N.
46
47endmenu 33endmenu
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index 1dc07a0014c1..8a3b33a20632 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.34 3# Linux kernel version: 2.6.35
4# Wed May 26 21:14:01 2010 4# Mon Aug 9 02:31:36 2010
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7CONFIG_SPARC=y 7CONFIG_SPARC=y
@@ -9,7 +9,6 @@ CONFIG_SPARC=y
9CONFIG_SPARC64=y 9CONFIG_SPARC64=y
10CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig"
11CONFIG_BITS=64 11CONFIG_BITS=64
12CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 12CONFIG_GENERIC_CMOS_UPDATE=y
14CONFIG_GENERIC_CLOCKEVENTS=y 13CONFIG_GENERIC_CLOCKEVENTS=y
15CONFIG_IOMMU_HELPER=y 14CONFIG_IOMMU_HELPER=y
@@ -24,8 +23,8 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
24CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 23CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
25CONFIG_MMU=y 24CONFIG_MMU=y
26CONFIG_NEED_DMA_MAP_STATE=y 25CONFIG_NEED_DMA_MAP_STATE=y
26CONFIG_NEED_SG_DMA_LENGTH=y
27CONFIG_ARCH_NO_VIRT_TO_BUS=y 27CONFIG_ARCH_NO_VIRT_TO_BUS=y
28CONFIG_OF=y
29CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 28CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
30CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 29CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
31CONFIG_CONSTRUCTORS=y 30CONFIG_CONSTRUCTORS=y
@@ -36,6 +35,7 @@ CONFIG_CONSTRUCTORS=y
36CONFIG_EXPERIMENTAL=y 35CONFIG_EXPERIMENTAL=y
37CONFIG_LOCK_KERNEL=y 36CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32 37CONFIG_INIT_ENV_ARG_LIMIT=32
38CONFIG_CROSS_COMPILE=""
39CONFIG_LOCALVERSION="" 39CONFIG_LOCALVERSION=""
40# CONFIG_LOCALVERSION_AUTO is not set 40# CONFIG_LOCALVERSION_AUTO is not set
41CONFIG_SWAP=y 41CONFIG_SWAP=y
@@ -51,8 +51,6 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
51# RCU Subsystem 51# RCU Subsystem
52# 52#
53CONFIG_TREE_RCU=y 53CONFIG_TREE_RCU=y
54# CONFIG_TREE_PREEMPT_RCU is not set
55# CONFIG_TINY_RCU is not set
56# CONFIG_RCU_TRACE is not set 54# CONFIG_RCU_TRACE is not set
57CONFIG_RCU_FANOUT=64 55CONFIG_RCU_FANOUT=64
58# CONFIG_RCU_FANOUT_EXACT is not set 56# CONFIG_RCU_FANOUT_EXACT is not set
@@ -110,7 +108,6 @@ CONFIG_PCI_QUIRKS=y
110# CONFIG_COMPAT_BRK is not set 108# CONFIG_COMPAT_BRK is not set
111CONFIG_SLAB=y 109CONFIG_SLAB=y
112# CONFIG_SLUB is not set 110# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set
114CONFIG_PROFILING=y 111CONFIG_PROFILING=y
115CONFIG_TRACEPOINTS=y 112CONFIG_TRACEPOINTS=y
116CONFIG_OPROFILE=m 113CONFIG_OPROFILE=m
@@ -129,7 +126,6 @@ CONFIG_HAVE_DMA_API_DEBUG=y
129# GCOV-based kernel profiling 126# GCOV-based kernel profiling
130# 127#
131# CONFIG_GCOV_KERNEL is not set 128# CONFIG_GCOV_KERNEL is not set
132# CONFIG_SLOW_WORK is not set
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
@@ -227,8 +223,6 @@ CONFIG_ARCH_SELECT_MEMORY_MODEL=y
227CONFIG_ARCH_SPARSEMEM_ENABLE=y 223CONFIG_ARCH_SPARSEMEM_ENABLE=y
228CONFIG_ARCH_SPARSEMEM_DEFAULT=y 224CONFIG_ARCH_SPARSEMEM_DEFAULT=y
229CONFIG_SELECT_MEMORY_MODEL=y 225CONFIG_SELECT_MEMORY_MODEL=y
230# CONFIG_FLATMEM_MANUAL is not set
231# CONFIG_DISCONTIGMEM_MANUAL is not set
232CONFIG_SPARSEMEM_MANUAL=y 226CONFIG_SPARSEMEM_MANUAL=y
233CONFIG_SPARSEMEM=y 227CONFIG_SPARSEMEM=y
234CONFIG_NEED_MULTIPLE_NODES=y 228CONFIG_NEED_MULTIPLE_NODES=y
@@ -236,6 +230,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y
236CONFIG_SPARSEMEM_EXTREME=y 230CONFIG_SPARSEMEM_EXTREME=y
237CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 231CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
238CONFIG_SPARSEMEM_VMEMMAP=y 232CONFIG_SPARSEMEM_VMEMMAP=y
233CONFIG_HAVE_MEMBLOCK=y
239CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
240CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
241# CONFIG_COMPACTION is not set 236# CONFIG_COMPACTION is not set
@@ -345,6 +340,7 @@ CONFIG_IPV6_TUNNEL=m
345# CONFIG_IPV6_MULTIPLE_TABLES is not set 340# CONFIG_IPV6_MULTIPLE_TABLES is not set
346# CONFIG_IPV6_MROUTE is not set 341# CONFIG_IPV6_MROUTE is not set
347# CONFIG_NETWORK_SECMARK is not set 342# CONFIG_NETWORK_SECMARK is not set
343# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
348# CONFIG_NETFILTER is not set 344# CONFIG_NETFILTER is not set
349# CONFIG_IP_DCCP is not set 345# CONFIG_IP_DCCP is not set
350# CONFIG_IP_SCTP is not set 346# CONFIG_IP_SCTP is not set
@@ -368,6 +364,7 @@ CONFIG_VLAN_8021Q=m
368# CONFIG_IEEE802154 is not set 364# CONFIG_IEEE802154 is not set
369# CONFIG_NET_SCHED is not set 365# CONFIG_NET_SCHED is not set
370# CONFIG_DCB is not set 366# CONFIG_DCB is not set
367# CONFIG_DNS_RESOLVER is not set
371CONFIG_RPS=y 368CONFIG_RPS=y
372 369
373# 370#
@@ -416,6 +413,11 @@ CONFIG_EXTRA_FIRMWARE=""
416# CONFIG_SYS_HYPERVISOR is not set 413# CONFIG_SYS_HYPERVISOR is not set
417CONFIG_CONNECTOR=m 414CONFIG_CONNECTOR=m
418# CONFIG_MTD is not set 415# CONFIG_MTD is not set
416CONFIG_OF=y
417
418#
419# Flattened Device Tree and Open Firmware support
420#
419CONFIG_OF_DEVICE=y 421CONFIG_OF_DEVICE=y
420CONFIG_OF_MDIO=m 422CONFIG_OF_MDIO=m
421# CONFIG_PARPORT is not set 423# CONFIG_PARPORT is not set
@@ -638,6 +640,7 @@ CONFIG_DM_ZERO=m
638# 640#
639# CONFIG_FIREWIRE is not set 641# CONFIG_FIREWIRE is not set
640# CONFIG_IEEE1394 is not set 642# CONFIG_IEEE1394 is not set
643# CONFIG_FIREWIRE_NOSY is not set
641# CONFIG_I2O is not set 644# CONFIG_I2O is not set
642CONFIG_NETDEVICES=y 645CONFIG_NETDEVICES=y
643# CONFIG_DUMMY is not set 646# CONFIG_DUMMY is not set
@@ -708,7 +711,6 @@ CONFIG_NET_PCI=y
708# CONFIG_SMSC9420 is not set 711# CONFIG_SMSC9420 is not set
709# CONFIG_SUNDANCE is not set 712# CONFIG_SUNDANCE is not set
710# CONFIG_TLAN is not set 713# CONFIG_TLAN is not set
711# CONFIG_KS8842 is not set
712# CONFIG_KS8851_MLL is not set 714# CONFIG_KS8851_MLL is not set
713# CONFIG_VIA_RHINE is not set 715# CONFIG_VIA_RHINE is not set
714# CONFIG_SC92031 is not set 716# CONFIG_SC92031 is not set
@@ -744,6 +746,8 @@ CONFIG_CHELSIO_T3_DEPENDS=y
744# CONFIG_CHELSIO_T3 is not set 746# CONFIG_CHELSIO_T3 is not set
745CONFIG_CHELSIO_T4_DEPENDS=y 747CONFIG_CHELSIO_T4_DEPENDS=y
746# CONFIG_CHELSIO_T4 is not set 748# CONFIG_CHELSIO_T4 is not set
749CONFIG_CHELSIO_T4VF_DEPENDS=y
750# CONFIG_CHELSIO_T4VF is not set
747# CONFIG_ENIC is not set 751# CONFIG_ENIC is not set
748# CONFIG_IXGBE is not set 752# CONFIG_IXGBE is not set
749# CONFIG_IXGBEVF is not set 753# CONFIG_IXGBEVF is not set
@@ -778,6 +782,10 @@ CONFIG_NIU=m
778# CONFIG_USB_USBNET is not set 782# CONFIG_USB_USBNET is not set
779# CONFIG_USB_IPHETH is not set 783# CONFIG_USB_IPHETH is not set
780# CONFIG_WAN is not set 784# CONFIG_WAN is not set
785
786#
787# CAIF transport drivers
788#
781# CONFIG_FDDI is not set 789# CONFIG_FDDI is not set
782# CONFIG_HIPPI is not set 790# CONFIG_HIPPI is not set
783CONFIG_PPP=m 791CONFIG_PPP=m
@@ -824,10 +832,11 @@ CONFIG_INPUT_EVDEV=y
824CONFIG_INPUT_KEYBOARD=y 832CONFIG_INPUT_KEYBOARD=y
825# CONFIG_KEYBOARD_ADP5588 is not set 833# CONFIG_KEYBOARD_ADP5588 is not set
826CONFIG_KEYBOARD_ATKBD=y 834CONFIG_KEYBOARD_ATKBD=y
827# CONFIG_QT2160 is not set 835# CONFIG_KEYBOARD_QT2160 is not set
828CONFIG_KEYBOARD_LKKBD=m 836CONFIG_KEYBOARD_LKKBD=m
829# CONFIG_KEYBOARD_TCA6416 is not set 837# CONFIG_KEYBOARD_TCA6416 is not set
830# CONFIG_KEYBOARD_MAX7359 is not set 838# CONFIG_KEYBOARD_MAX7359 is not set
839# CONFIG_KEYBOARD_MCS is not set
831# CONFIG_KEYBOARD_NEWTON is not set 840# CONFIG_KEYBOARD_NEWTON is not set
832# CONFIG_KEYBOARD_OPENCORES is not set 841# CONFIG_KEYBOARD_OPENCORES is not set
833# CONFIG_KEYBOARD_STOWAWAY is not set 842# CONFIG_KEYBOARD_STOWAWAY is not set
@@ -861,6 +870,7 @@ CONFIG_INPUT_SPARCSPKR=y
861# CONFIG_INPUT_CM109 is not set 870# CONFIG_INPUT_CM109 is not set
862# CONFIG_INPUT_UINPUT is not set 871# CONFIG_INPUT_UINPUT is not set
863# CONFIG_INPUT_PCF8574 is not set 872# CONFIG_INPUT_PCF8574 is not set
873# CONFIG_INPUT_ADXL34X is not set
864 874
865# 875#
866# Hardware I/O ports 876# Hardware I/O ports
@@ -921,6 +931,7 @@ CONFIG_HW_RANDOM_N2RNG=m
921# CONFIG_RAW_DRIVER is not set 931# CONFIG_RAW_DRIVER is not set
922# CONFIG_TCG_TPM is not set 932# CONFIG_TCG_TPM is not set
923CONFIG_DEVPORT=y 933CONFIG_DEVPORT=y
934# CONFIG_RAMOOPS is not set
924CONFIG_I2C=y 935CONFIG_I2C=y
925CONFIG_I2C_BOARDINFO=y 936CONFIG_I2C_BOARDINFO=y
926CONFIG_I2C_COMPAT=y 937CONFIG_I2C_COMPAT=y
@@ -954,6 +965,7 @@ CONFIG_I2C_ALGOBIT=y
954# I2C system bus drivers (mostly embedded / system-on-chip) 965# I2C system bus drivers (mostly embedded / system-on-chip)
955# 966#
956# CONFIG_I2C_OCORES is not set 967# CONFIG_I2C_OCORES is not set
968# CONFIG_I2C_PCA_PLATFORM is not set
957# CONFIG_I2C_SIMTEC is not set 969# CONFIG_I2C_SIMTEC is not set
958# CONFIG_I2C_XILINX is not set 970# CONFIG_I2C_XILINX is not set
959 971
@@ -967,7 +979,6 @@ CONFIG_I2C_ALGOBIT=y
967# 979#
968# Other I2C/SMBus bus drivers 980# Other I2C/SMBus bus drivers
969# 981#
970# CONFIG_I2C_PCA_PLATFORM is not set
971# CONFIG_I2C_STUB is not set 982# CONFIG_I2C_STUB is not set
972# CONFIG_I2C_DEBUG_CORE is not set 983# CONFIG_I2C_DEBUG_CORE is not set
973# CONFIG_I2C_DEBUG_ALGO is not set 984# CONFIG_I2C_DEBUG_ALGO is not set
@@ -1034,12 +1045,14 @@ CONFIG_HWMON=y
1034# CONFIG_SENSORS_PCF8591 is not set 1045# CONFIG_SENSORS_PCF8591 is not set
1035# CONFIG_SENSORS_SIS5595 is not set 1046# CONFIG_SENSORS_SIS5595 is not set
1036# CONFIG_SENSORS_DME1737 is not set 1047# CONFIG_SENSORS_DME1737 is not set
1048# CONFIG_SENSORS_EMC1403 is not set
1037# CONFIG_SENSORS_SMSC47M1 is not set 1049# CONFIG_SENSORS_SMSC47M1 is not set
1038# CONFIG_SENSORS_SMSC47M192 is not set 1050# CONFIG_SENSORS_SMSC47M192 is not set
1039# CONFIG_SENSORS_SMSC47B397 is not set 1051# CONFIG_SENSORS_SMSC47B397 is not set
1040# CONFIG_SENSORS_ADS7828 is not set 1052# CONFIG_SENSORS_ADS7828 is not set
1041# CONFIG_SENSORS_AMC6821 is not set 1053# CONFIG_SENSORS_AMC6821 is not set
1042# CONFIG_SENSORS_THMC50 is not set 1054# CONFIG_SENSORS_THMC50 is not set
1055# CONFIG_SENSORS_TMP102 is not set
1043# CONFIG_SENSORS_TMP401 is not set 1056# CONFIG_SENSORS_TMP401 is not set
1044# CONFIG_SENSORS_TMP421 is not set 1057# CONFIG_SENSORS_TMP421 is not set
1045# CONFIG_SENSORS_VIA686A is not set 1058# CONFIG_SENSORS_VIA686A is not set
@@ -1063,15 +1076,14 @@ CONFIG_SSB_POSSIBLE=y
1063# Sonics Silicon Backplane 1076# Sonics Silicon Backplane
1064# 1077#
1065# CONFIG_SSB is not set 1078# CONFIG_SSB is not set
1066 1079CONFIG_MFD_SUPPORT=y
1067#
1068# Multifunction device drivers
1069#
1070# CONFIG_MFD_CORE is not set 1080# CONFIG_MFD_CORE is not set
1071# CONFIG_MFD_88PM860X is not set 1081# CONFIG_MFD_88PM860X is not set
1072# CONFIG_MFD_SM501 is not set 1082# CONFIG_MFD_SM501 is not set
1073# CONFIG_HTC_PASIC3 is not set 1083# CONFIG_HTC_PASIC3 is not set
1084# CONFIG_TPS6507X is not set
1074# CONFIG_TWL4030_CORE is not set 1085# CONFIG_TWL4030_CORE is not set
1086# CONFIG_MFD_TC35892 is not set
1075# CONFIG_MFD_TMIO is not set 1087# CONFIG_MFD_TMIO is not set
1076# CONFIG_PMIC_DA903X is not set 1088# CONFIG_PMIC_DA903X is not set
1077# CONFIG_PMIC_ADP5520 is not set 1089# CONFIG_PMIC_ADP5520 is not set
@@ -1081,8 +1093,10 @@ CONFIG_SSB_POSSIBLE=y
1081# CONFIG_MFD_WM8350_I2C is not set 1093# CONFIG_MFD_WM8350_I2C is not set
1082# CONFIG_MFD_WM8994 is not set 1094# CONFIG_MFD_WM8994 is not set
1083# CONFIG_MFD_PCF50633 is not set 1095# CONFIG_MFD_PCF50633 is not set
1084# CONFIG_AB3100_CORE is not set 1096# CONFIG_ABX500_CORE is not set
1085# CONFIG_LPC_SCH is not set 1097# CONFIG_LPC_SCH is not set
1098# CONFIG_MFD_RDC321X is not set
1099# CONFIG_MFD_JANZ_CMODIO is not set
1086# CONFIG_REGULATOR is not set 1100# CONFIG_REGULATOR is not set
1087# CONFIG_MEDIA_SUPPORT is not set 1101# CONFIG_MEDIA_SUPPORT is not set
1088 1102
@@ -1320,6 +1334,7 @@ CONFIG_USB_HIDDEV=y
1320# 1334#
1321# CONFIG_HID_3M_PCT is not set 1335# CONFIG_HID_3M_PCT is not set
1322CONFIG_HID_A4TECH=y 1336CONFIG_HID_A4TECH=y
1337# CONFIG_HID_ACRUX_FF is not set
1323CONFIG_HID_APPLE=y 1338CONFIG_HID_APPLE=y
1324CONFIG_HID_BELKIN=y 1339CONFIG_HID_BELKIN=y
1325# CONFIG_HID_CANDO is not set 1340# CONFIG_HID_CANDO is not set
@@ -1349,6 +1364,7 @@ CONFIG_HID_PANTHERLORD=y
1349CONFIG_HID_PETALYNX=y 1364CONFIG_HID_PETALYNX=y
1350# CONFIG_HID_PICOLCD is not set 1365# CONFIG_HID_PICOLCD is not set
1351# CONFIG_HID_QUANTA is not set 1366# CONFIG_HID_QUANTA is not set
1367# CONFIG_HID_ROCCAT is not set
1352# CONFIG_HID_ROCCAT_KONE is not set 1368# CONFIG_HID_ROCCAT_KONE is not set
1353CONFIG_HID_SAMSUNG=y 1369CONFIG_HID_SAMSUNG=y
1354CONFIG_HID_SONY=y 1370CONFIG_HID_SONY=y
@@ -1713,7 +1729,8 @@ CONFIG_DEBUG_FS=y
1713# CONFIG_HEADERS_CHECK is not set 1729# CONFIG_HEADERS_CHECK is not set
1714CONFIG_DEBUG_KERNEL=y 1730CONFIG_DEBUG_KERNEL=y
1715# CONFIG_DEBUG_SHIRQ is not set 1731# CONFIG_DEBUG_SHIRQ is not set
1716CONFIG_DETECT_SOFTLOCKUP=y 1732CONFIG_LOCKUP_DETECTOR=y
1733# CONFIG_HARDLOCKUP_DETECTOR is not set
1717# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1734# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1718CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1735CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1719CONFIG_DETECT_HUNG_TASK=y 1736CONFIG_DETECT_HUNG_TASK=y
@@ -1753,6 +1770,7 @@ CONFIG_DEBUG_MEMORY_INIT=y
1753# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1770# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1754# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1771# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1755# CONFIG_LKDTM is not set 1772# CONFIG_LKDTM is not set
1773# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
1756# CONFIG_FAULT_INJECTION is not set 1774# CONFIG_FAULT_INJECTION is not set
1757# CONFIG_LATENCYTOP is not set 1775# CONFIG_LATENCYTOP is not set
1758CONFIG_SYSCTL_SYSCALL_CHECK=y 1776CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1777,13 +1795,10 @@ CONFIG_FTRACE=y
1777# CONFIG_IRQSOFF_TRACER is not set 1795# CONFIG_IRQSOFF_TRACER is not set
1778# CONFIG_SCHED_TRACER is not set 1796# CONFIG_SCHED_TRACER is not set
1779# CONFIG_FTRACE_SYSCALLS is not set 1797# CONFIG_FTRACE_SYSCALLS is not set
1780# CONFIG_BOOT_TRACER is not set
1781CONFIG_BRANCH_PROFILE_NONE=y 1798CONFIG_BRANCH_PROFILE_NONE=y
1782# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set 1799# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1783# CONFIG_PROFILE_ALL_BRANCHES is not set 1800# CONFIG_PROFILE_ALL_BRANCHES is not set
1784# CONFIG_STACK_TRACER is not set 1801# CONFIG_STACK_TRACER is not set
1785# CONFIG_KMEMTRACE is not set
1786# CONFIG_WORKQUEUE_TRACER is not set
1787CONFIG_BLK_DEV_IO_TRACE=y 1802CONFIG_BLK_DEV_IO_TRACE=y
1788# CONFIG_FTRACE_STARTUP_TEST is not set 1803# CONFIG_FTRACE_STARTUP_TEST is not set
1789# CONFIG_RING_BUFFER_BENCHMARK is not set 1804# CONFIG_RING_BUFFER_BENCHMARK is not set
@@ -1795,7 +1810,6 @@ CONFIG_HAVE_ARCH_KGDB=y
1795# CONFIG_KGDB is not set 1810# CONFIG_KGDB is not set
1796# CONFIG_DEBUG_STACK_USAGE is not set 1811# CONFIG_DEBUG_STACK_USAGE is not set
1797# CONFIG_DEBUG_DCFLUSH is not set 1812# CONFIG_DEBUG_DCFLUSH is not set
1798# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
1799 1813
1800# 1814#
1801# Security options 1815# Security options
@@ -1804,9 +1818,6 @@ CONFIG_KEYS=y
1804# CONFIG_KEYS_DEBUG_PROC_KEYS is not set 1818# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
1805# CONFIG_SECURITY is not set 1819# CONFIG_SECURITY is not set
1806# CONFIG_SECURITYFS is not set 1820# CONFIG_SECURITYFS is not set
1807# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1808# CONFIG_DEFAULT_SECURITY_SMACK is not set
1809# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1810CONFIG_DEFAULT_SECURITY_DAC=y 1821CONFIG_DEFAULT_SECURITY_DAC=y
1811CONFIG_DEFAULT_SECURITY="" 1822CONFIG_DEFAULT_SECURITY=""
1812CONFIG_XOR_BLOCKS=m 1823CONFIG_XOR_BLOCKS=m
@@ -1829,9 +1840,10 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1829CONFIG_CRYPTO_HASH=y 1840CONFIG_CRYPTO_HASH=y
1830CONFIG_CRYPTO_HASH2=y 1841CONFIG_CRYPTO_HASH2=y
1831CONFIG_CRYPTO_RNG2=y 1842CONFIG_CRYPTO_RNG2=y
1832CONFIG_CRYPTO_PCOMP=y 1843CONFIG_CRYPTO_PCOMP2=y
1833CONFIG_CRYPTO_MANAGER=y 1844CONFIG_CRYPTO_MANAGER=y
1834CONFIG_CRYPTO_MANAGER2=y 1845CONFIG_CRYPTO_MANAGER2=y
1846CONFIG_CRYPTO_MANAGER_TESTS=y
1835CONFIG_CRYPTO_GF128MUL=m 1847CONFIG_CRYPTO_GF128MUL=m
1836CONFIG_CRYPTO_NULL=m 1848CONFIG_CRYPTO_NULL=m
1837# CONFIG_CRYPTO_PCRYPT is not set 1849# CONFIG_CRYPTO_PCRYPT is not set
@@ -1941,5 +1953,4 @@ CONFIG_DECOMPRESS_LZO=y
1941CONFIG_HAS_IOMEM=y 1953CONFIG_HAS_IOMEM=y
1942CONFIG_HAS_IOPORT=y 1954CONFIG_HAS_IOPORT=y
1943CONFIG_HAS_DMA=y 1955CONFIG_HAS_DMA=y
1944CONFIG_HAVE_LMB=y
1945CONFIG_NLATTR=y 1956CONFIG_NLATTR=y
diff --git a/arch/sparc/include/asm/parport.h b/arch/sparc/include/asm/parport.h
index 4f7afa01b2ae..aa4c82648d88 100644
--- a/arch/sparc/include/asm/parport.h
+++ b/arch/sparc/include/asm/parport.h
@@ -228,6 +228,10 @@ static const struct of_device_id ecpp_match[] = {
228 .name = "parallel", 228 .name = "parallel",
229 .compatible = "ns87317-ecpp", 229 .compatible = "ns87317-ecpp",
230 }, 230 },
231 {
232 .name = "parallel",
233 .compatible = "pnpALI,1533,3",
234 },
231 {}, 235 {},
232}; 236};
233 237
diff --git a/arch/sparc/include/asm/perf_event.h b/arch/sparc/include/asm/perf_event.h
index 74c4e0cd889c..727af70646cb 100644
--- a/arch/sparc/include/asm/perf_event.h
+++ b/arch/sparc/include/asm/perf_event.h
@@ -10,11 +10,26 @@ extern void set_perf_event_pending(void);
10 10
11extern void init_hw_perf_events(void); 11extern void init_hw_perf_events(void);
12 12
13extern void 13#define perf_arch_fetch_caller_regs(regs, ip) \
14__perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip); 14do { \
15 15 unsigned long _pstate, _asi, _pil, _i7, _fp; \
16#define perf_arch_fetch_caller_regs(pt_regs, ip) \ 16 __asm__ __volatile__("rdpr %%pstate, %0\n\t" \
17 __perf_arch_fetch_caller_regs(pt_regs, ip, 1); 17 "rd %%asi, %1\n\t" \
18 "rdpr %%pil, %2\n\t" \
19 "mov %%i7, %3\n\t" \
20 "mov %%i6, %4\n\t" \
21 : "=r" (_pstate), \
22 "=r" (_asi), \
23 "=r" (_pil), \
24 "=r" (_i7), \
25 "=r" (_fp)); \
26 (regs)->tstate = (_pstate << 8) | \
27 (_asi << 24) | (_pil << 20); \
28 (regs)->tpc = (ip); \
29 (regs)->tnpc = (regs)->tpc + 4; \
30 (regs)->u_regs[UREG_I6] = _fp; \
31 (regs)->u_regs[UREG_I7] = _i7; \
32} while (0)
18#else 33#else
19static inline void init_hw_perf_events(void) { } 34static inline void init_hw_perf_events(void) { }
20#endif 35#endif
diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
index 25f1d10155e8..8303ac481034 100644
--- a/arch/sparc/include/asm/uaccess_32.h
+++ b/arch/sparc/include/asm/uaccess_32.h
@@ -260,23 +260,8 @@ static inline unsigned long __copy_to_user(void __user *to, const void *from, un
260 return __copy_user(to, (__force void __user *) from, n); 260 return __copy_user(to, (__force void __user *) from, n);
261} 261}
262 262
263extern void copy_from_user_overflow(void)
264#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
265 __compiletime_error("copy_from_user() buffer size is not provably correct")
266#else
267 __compiletime_warning("copy_from_user() buffer size is not provably correct")
268#endif
269;
270
271static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) 263static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
272{ 264{
273 int sz = __compiletime_object_size(to);
274
275 if (unlikely(sz != -1 && sz < n)) {
276 copy_from_user_overflow();
277 return n;
278 }
279
280 if (n && __access_ok((unsigned long) from, n)) 265 if (n && __access_ok((unsigned long) from, n))
281 return __copy_user((__force void __user *) to, from, n); 266 return __copy_user((__force void __user *) to, from, n);
282 else 267 else
diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
index 2406788bfe5f..3e1449f07798 100644
--- a/arch/sparc/include/asm/uaccess_64.h
+++ b/arch/sparc/include/asm/uaccess_64.h
@@ -205,14 +205,6 @@ __asm__ __volatile__( \
205 205
206extern int __get_user_bad(void); 206extern int __get_user_bad(void);
207 207
208extern void copy_from_user_overflow(void)
209#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
210 __compiletime_error("copy_from_user() buffer size is not provably correct")
211#else
212 __compiletime_warning("copy_from_user() buffer size is not provably correct")
213#endif
214;
215
216extern unsigned long __must_check ___copy_from_user(void *to, 208extern unsigned long __must_check ___copy_from_user(void *to,
217 const void __user *from, 209 const void __user *from,
218 unsigned long size); 210 unsigned long size);
@@ -221,16 +213,11 @@ extern unsigned long copy_from_user_fixup(void *to, const void __user *from,
221static inline unsigned long __must_check 213static inline unsigned long __must_check
222copy_from_user(void *to, const void __user *from, unsigned long size) 214copy_from_user(void *to, const void __user *from, unsigned long size)
223{ 215{
224 int sz = __compiletime_object_size(to); 216 unsigned long ret = ___copy_from_user(to, from, size);
225 unsigned long ret = size; 217
226 218 if (unlikely(ret))
227 if (likely(sz == -1 || sz >= size)) { 219 ret = copy_from_user_fixup(to, from, size);
228 ret = ___copy_from_user(to, from, size); 220
229 if (unlikely(ret))
230 ret = copy_from_user_fixup(to, from, size);
231 } else {
232 copy_from_user_overflow();
233 }
234 return ret; 221 return ret;
235} 222}
236#define __copy_from_user copy_from_user 223#define __copy_from_user copy_from_user
diff --git a/arch/sparc/kernel/helpers.S b/arch/sparc/kernel/helpers.S
index 682fee06a16b..314dd0c9fc5b 100644
--- a/arch/sparc/kernel/helpers.S
+++ b/arch/sparc/kernel/helpers.S
@@ -46,81 +46,6 @@ stack_trace_flush:
46 nop 46 nop
47 .size stack_trace_flush,.-stack_trace_flush 47 .size stack_trace_flush,.-stack_trace_flush
48 48
49#ifdef CONFIG_PERF_EVENTS
50 .globl __perf_arch_fetch_caller_regs
51 .type __perf_arch_fetch_caller_regs,#function
52__perf_arch_fetch_caller_regs:
53 /* We always read the %pstate into %o5 since we will use
54 * that to construct a fake %tstate to store into the regs.
55 */
56 rdpr %pstate, %o5
57 brz,pn %o2, 50f
58 mov %o2, %g7
59
60 /* Turn off interrupts while we walk around the register
61 * window by hand.
62 */
63 wrpr %o5, PSTATE_IE, %pstate
64
65 /* The %canrestore tells us how many register windows are
66 * still live in the chip above us, past that we have to
67 * walk the frame as saved on the stack. We stash away
68 * the %cwp in %g1 so we can return back to the original
69 * register window.
70 */
71 rdpr %cwp, %g1
72 rdpr %canrestore, %g2
73 sub %g1, 1, %g3
74
75 /* We have the skip count in %g7, if it hits zero then
76 * %fp/%i7 are the registers we need. Otherwise if our
77 * %canrestore count maintained in %g2 hits zero we have
78 * to start traversing the stack.
79 */
8010: brz,pn %g2, 4f
81 sub %g2, 1, %g2
82 wrpr %g3, %cwp
83 subcc %g7, 1, %g7
84 bne,pt %xcc, 10b
85 sub %g3, 1, %g3
86
87 /* We found the values we need in the cpu's register
88 * windows.
89 */
90 mov %fp, %g3
91 ba,pt %xcc, 3f
92 mov %i7, %g2
93
9450: mov %fp, %g3
95 ba,pt %xcc, 2f
96 mov %i7, %g2
97
98 /* We hit the end of the valid register windows in the
99 * cpu, start traversing the stack frame.
100 */
1014: mov %fp, %g3
102
10320: ldx [%g3 + STACK_BIAS + RW_V9_I7], %g2
104 subcc %g7, 1, %g7
105 bne,pn %xcc, 20b
106 ldx [%g3 + STACK_BIAS + RW_V9_I6], %g3
107
108 /* Restore the current register window position and
109 * re-enable interrupts.
110 */
1113: wrpr %g1, %cwp
112 wrpr %o5, %pstate
113
1142: stx %g3, [%o0 + PT_V9_FP]
115 sllx %o5, 8, %o5
116 stx %o5, [%o0 + PT_V9_TSTATE]
117 stx %g2, [%o0 + PT_V9_TPC]
118 add %g2, 4, %g2
119 retl
120 stx %g2, [%o0 + PT_V9_TNPC]
121 .size perf_arch_fetch_caller_regs,.-perf_arch_fetch_caller_regs
122#endif /* CONFIG_PERF_EVENTS */
123
124#ifdef CONFIG_SMP 49#ifdef CONFIG_SMP
125 .globl hard_smp_processor_id 50 .globl hard_smp_processor_id
126 .type hard_smp_processor_id,#function 51 .type hard_smp_processor_id,#function