diff options
-rw-r--r-- | arch/sparc64/Kconfig | 2 | ||||
-rw-r--r-- | arch/sparc64/defconfig | 69 | ||||
-rw-r--r-- | arch/sparc64/kernel/sparc64_ksyms.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/time.c | 2 | ||||
-rw-r--r-- | arch/sparc64/mm/tsb.c | 4 | ||||
-rw-r--r-- | arch/sparc64/mm/ultra.S | 7 | ||||
-rw-r--r-- | include/asm-sparc64/futex.h | 6 | ||||
-rw-r--r-- | include/asm-sparc64/system.h | 4 | ||||
-rw-r--r-- | include/asm-sparc64/uaccess.h | 6 |
9 files changed, 51 insertions, 51 deletions
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index bd59ab0760b3..10b212a1f9f5 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -408,7 +408,7 @@ config SUNOS_EMUL | |||
408 | 408 | ||
409 | config SOLARIS_EMUL | 409 | config SOLARIS_EMUL |
410 | tristate "Solaris binary emulation (EXPERIMENTAL)" | 410 | tristate "Solaris binary emulation (EXPERIMENTAL)" |
411 | depends on SPARC32_COMPAT && EXPERIMENTAL | 411 | depends on SPARC32_COMPAT && NET && EXPERIMENTAL |
412 | help | 412 | help |
413 | This is experimental code which will enable you to run (many) | 413 | This is experimental code which will enable you to run (many) |
414 | Solaris binaries on your SPARC Linux machine. | 414 | Solaris binaries on your SPARC Linux machine. |
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig index e023d4b2fef4..22734ac08c8a 100644 --- a/arch/sparc64/defconfig +++ b/arch/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.23 | 3 | # Linux kernel version: 2.6.24-rc1 |
4 | # Sun Oct 21 19:57:44 2007 | 4 | # Wed Oct 31 15:36:47 2007 |
5 | # | 5 | # |
6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
@@ -19,6 +19,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y | |||
19 | CONFIG_AUDIT_ARCH=y | 19 | CONFIG_AUDIT_ARCH=y |
20 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 20 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
21 | CONFIG_OF=y | 21 | CONFIG_OF=y |
22 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
22 | CONFIG_SPARC64_PAGE_SIZE_8KB=y | 23 | CONFIG_SPARC64_PAGE_SIZE_8KB=y |
23 | # CONFIG_SPARC64_PAGE_SIZE_64KB is not set | 24 | # CONFIG_SPARC64_PAGE_SIZE_64KB is not set |
24 | # CONFIG_SPARC64_PAGE_SIZE_512KB is not set | 25 | # CONFIG_SPARC64_PAGE_SIZE_512KB is not set |
@@ -55,7 +56,8 @@ CONFIG_FAIR_USER_SCHED=y | |||
55 | # CONFIG_FAIR_CGROUP_SCHED is not set | 56 | # CONFIG_FAIR_CGROUP_SCHED is not set |
56 | CONFIG_SYSFS_DEPRECATED=y | 57 | CONFIG_SYSFS_DEPRECATED=y |
57 | CONFIG_RELAY=y | 58 | CONFIG_RELAY=y |
58 | # CONFIG_BLK_DEV_INITRD is not set | 59 | CONFIG_BLK_DEV_INITRD=y |
60 | CONFIG_INITRAMFS_SOURCE="" | ||
59 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 61 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
60 | CONFIG_SYSCTL=y | 62 | CONFIG_SYSCTL=y |
61 | # CONFIG_EMBEDDED is not set | 63 | # CONFIG_EMBEDDED is not set |
@@ -117,22 +119,7 @@ CONFIG_NO_HZ=y | |||
117 | CONFIG_HIGH_RES_TIMERS=y | 119 | CONFIG_HIGH_RES_TIMERS=y |
118 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 120 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
119 | # CONFIG_SMP is not set | 121 | # CONFIG_SMP is not set |
120 | CONFIG_CPU_FREQ=y | 122 | # CONFIG_CPU_FREQ is not set |
121 | CONFIG_CPU_FREQ_TABLE=m | ||
122 | # CONFIG_CPU_FREQ_DEBUG is not set | ||
123 | CONFIG_CPU_FREQ_STAT=m | ||
124 | CONFIG_CPU_FREQ_STAT_DETAILS=y | ||
125 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | ||
126 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
127 | # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set | ||
128 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
129 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
130 | CONFIG_CPU_FREQ_GOV_POWERSAVE=m | ||
131 | CONFIG_CPU_FREQ_GOV_USERSPACE=m | ||
132 | CONFIG_CPU_FREQ_GOV_ONDEMAND=m | ||
133 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m | ||
134 | CONFIG_US3_FREQ=m | ||
135 | CONFIG_US2E_FREQ=m | ||
136 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 123 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
137 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 124 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
138 | CONFIG_GENERIC_HWEIGHT=y | 125 | CONFIG_GENERIC_HWEIGHT=y |
@@ -161,7 +148,7 @@ CONFIG_SBUS=y | |||
161 | CONFIG_SBUSCHAR=y | 148 | CONFIG_SBUSCHAR=y |
162 | CONFIG_SUN_AUXIO=y | 149 | CONFIG_SUN_AUXIO=y |
163 | CONFIG_SUN_IO=y | 150 | CONFIG_SUN_IO=y |
164 | # CONFIG_SUN_LDOMS is not set | 151 | CONFIG_SUN_LDOMS=y |
165 | CONFIG_PCI=y | 152 | CONFIG_PCI=y |
166 | CONFIG_PCI_DOMAINS=y | 153 | CONFIG_PCI_DOMAINS=y |
167 | CONFIG_PCI_SYSCALL=y | 154 | CONFIG_PCI_SYSCALL=y |
@@ -338,6 +325,7 @@ CONFIG_CDROM_PKTCDVD=m | |||
338 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 325 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
339 | CONFIG_CDROM_PKTCDVD_WCACHE=y | 326 | CONFIG_CDROM_PKTCDVD_WCACHE=y |
340 | CONFIG_ATA_OVER_ETH=m | 327 | CONFIG_ATA_OVER_ETH=m |
328 | CONFIG_SUNVDC=m | ||
341 | CONFIG_MISC_DEVICES=y | 329 | CONFIG_MISC_DEVICES=y |
342 | # CONFIG_PHANTOM is not set | 330 | # CONFIG_PHANTOM is not set |
343 | # CONFIG_EEPROM_93CX6 is not set | 331 | # CONFIG_EEPROM_93CX6 is not set |
@@ -440,12 +428,12 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
440 | # | 428 | # |
441 | CONFIG_SCSI_SPI_ATTRS=y | 429 | CONFIG_SCSI_SPI_ATTRS=y |
442 | CONFIG_SCSI_FC_ATTRS=y | 430 | CONFIG_SCSI_FC_ATTRS=y |
443 | CONFIG_SCSI_ISCSI_ATTRS=m | 431 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
444 | # CONFIG_SCSI_SAS_ATTRS is not set | 432 | # CONFIG_SCSI_SAS_ATTRS is not set |
445 | # CONFIG_SCSI_SAS_LIBSAS is not set | 433 | # CONFIG_SCSI_SAS_LIBSAS is not set |
446 | # CONFIG_SCSI_SRP_ATTRS is not set | 434 | # CONFIG_SCSI_SRP_ATTRS is not set |
447 | CONFIG_SCSI_LOWLEVEL=y | 435 | CONFIG_SCSI_LOWLEVEL=y |
448 | CONFIG_ISCSI_TCP=m | 436 | # CONFIG_ISCSI_TCP is not set |
449 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 437 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
450 | # CONFIG_SCSI_3W_9XXX is not set | 438 | # CONFIG_SCSI_3W_9XXX is not set |
451 | # CONFIG_SCSI_ACARD is not set | 439 | # CONFIG_SCSI_ACARD is not set |
@@ -506,7 +494,7 @@ CONFIG_DM_ZERO=m | |||
506 | # CONFIG_I2O is not set | 494 | # CONFIG_I2O is not set |
507 | CONFIG_NETDEVICES=y | 495 | CONFIG_NETDEVICES=y |
508 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | 496 | # CONFIG_NETDEVICES_MULTIQUEUE is not set |
509 | CONFIG_DUMMY=m | 497 | # CONFIG_DUMMY is not set |
510 | # CONFIG_BONDING is not set | 498 | # CONFIG_BONDING is not set |
511 | # CONFIG_MACVLAN is not set | 499 | # CONFIG_MACVLAN is not set |
512 | # CONFIG_EQUALIZER is not set | 500 | # CONFIG_EQUALIZER is not set |
@@ -523,6 +511,7 @@ CONFIG_MII=m | |||
523 | # CONFIG_SUNQE is not set | 511 | # CONFIG_SUNQE is not set |
524 | # CONFIG_SUNGEM is not set | 512 | # CONFIG_SUNGEM is not set |
525 | CONFIG_CASSINI=m | 513 | CONFIG_CASSINI=m |
514 | CONFIG_SUNVNET=m | ||
526 | # CONFIG_NET_VENDOR_3COM is not set | 515 | # CONFIG_NET_VENDOR_3COM is not set |
527 | # CONFIG_NET_TULIP is not set | 516 | # CONFIG_NET_TULIP is not set |
528 | # CONFIG_HP100 is not set | 517 | # CONFIG_HP100 is not set |
@@ -577,7 +566,7 @@ CONFIG_NETDEV_10000=y | |||
577 | # CONFIG_S2IO is not set | 566 | # CONFIG_S2IO is not set |
578 | # CONFIG_MYRI10GE is not set | 567 | # CONFIG_MYRI10GE is not set |
579 | # CONFIG_NETXEN_NIC is not set | 568 | # CONFIG_NETXEN_NIC is not set |
580 | # CONFIG_NIU is not set | 569 | CONFIG_NIU=m |
581 | # CONFIG_MLX4_CORE is not set | 570 | # CONFIG_MLX4_CORE is not set |
582 | # CONFIG_TEHUTI is not set | 571 | # CONFIG_TEHUTI is not set |
583 | # CONFIG_TR is not set | 572 | # CONFIG_TR is not set |
@@ -702,7 +691,8 @@ CONFIG_SERIAL_SUNCORE=y | |||
702 | # CONFIG_SERIAL_SUNZILOG is not set | 691 | # CONFIG_SERIAL_SUNZILOG is not set |
703 | CONFIG_SERIAL_SUNSU=y | 692 | CONFIG_SERIAL_SUNSU=y |
704 | CONFIG_SERIAL_SUNSU_CONSOLE=y | 693 | CONFIG_SERIAL_SUNSU_CONSOLE=y |
705 | CONFIG_SERIAL_SUNSAB=m | 694 | CONFIG_SERIAL_SUNSAB=y |
695 | CONFIG_SERIAL_SUNSAB_CONSOLE=y | ||
706 | CONFIG_SERIAL_SUNHV=y | 696 | CONFIG_SERIAL_SUNHV=y |
707 | CONFIG_SERIAL_CORE=y | 697 | CONFIG_SERIAL_CORE=y |
708 | CONFIG_SERIAL_CORE_CONSOLE=y | 698 | CONFIG_SERIAL_CORE_CONSOLE=y |
@@ -880,9 +870,17 @@ CONFIG_FB_TILEBLITTING=y | |||
880 | # CONFIG_FB_ASILIANT is not set | 870 | # CONFIG_FB_ASILIANT is not set |
881 | # CONFIG_FB_IMSTT is not set | 871 | # CONFIG_FB_IMSTT is not set |
882 | # CONFIG_FB_UVESA is not set | 872 | # CONFIG_FB_UVESA is not set |
883 | # CONFIG_FB_SBUS is not set | 873 | CONFIG_FB_SBUS=y |
884 | # CONFIG_FB_XVR500 is not set | 874 | # CONFIG_FB_BW2 is not set |
885 | # CONFIG_FB_XVR2500 is not set | 875 | # CONFIG_FB_CG3 is not set |
876 | CONFIG_FB_CG6=y | ||
877 | CONFIG_FB_FFB=y | ||
878 | # CONFIG_FB_TCX is not set | ||
879 | # CONFIG_FB_CG14 is not set | ||
880 | # CONFIG_FB_P9100 is not set | ||
881 | # CONFIG_FB_LEO is not set | ||
882 | CONFIG_FB_XVR500=y | ||
883 | CONFIG_FB_XVR2500=y | ||
886 | # CONFIG_FB_S1D13XXX is not set | 884 | # CONFIG_FB_S1D13XXX is not set |
887 | # CONFIG_FB_NVIDIA is not set | 885 | # CONFIG_FB_NVIDIA is not set |
888 | # CONFIG_FB_RIVA is not set | 886 | # CONFIG_FB_RIVA is not set |
@@ -892,7 +890,11 @@ CONFIG_FB_RADEON_I2C=y | |||
892 | # CONFIG_FB_RADEON_BACKLIGHT is not set | 890 | # CONFIG_FB_RADEON_BACKLIGHT is not set |
893 | # CONFIG_FB_RADEON_DEBUG is not set | 891 | # CONFIG_FB_RADEON_DEBUG is not set |
894 | # CONFIG_FB_ATY128 is not set | 892 | # CONFIG_FB_ATY128 is not set |
895 | # CONFIG_FB_ATY is not set | 893 | CONFIG_FB_ATY=y |
894 | CONFIG_FB_ATY_CT=y | ||
895 | # CONFIG_FB_ATY_GENERIC_LCD is not set | ||
896 | CONFIG_FB_ATY_GX=y | ||
897 | # CONFIG_FB_ATY_BACKLIGHT is not set | ||
896 | # CONFIG_FB_S3 is not set | 898 | # CONFIG_FB_S3 is not set |
897 | # CONFIG_FB_SAVAGE is not set | 899 | # CONFIG_FB_SAVAGE is not set |
898 | # CONFIG_FB_SIS is not set | 900 | # CONFIG_FB_SIS is not set |
@@ -1191,7 +1193,7 @@ CONFIG_USB_STORAGE=m | |||
1191 | # | 1193 | # |
1192 | # Misc Linux/SPARC drivers | 1194 | # Misc Linux/SPARC drivers |
1193 | # | 1195 | # |
1194 | CONFIG_SUN_OPENPROMIO=m | 1196 | CONFIG_SUN_OPENPROMIO=y |
1195 | # CONFIG_OBP_FLASH is not set | 1197 | # CONFIG_OBP_FLASH is not set |
1196 | # CONFIG_SUN_BPP is not set | 1198 | # CONFIG_SUN_BPP is not set |
1197 | # CONFIG_BBC_I2C is not set | 1199 | # CONFIG_BBC_I2C is not set |
@@ -1199,11 +1201,6 @@ CONFIG_SUN_OPENPROMIO=m | |||
1199 | # CONFIG_DISPLAY7SEG is not set | 1201 | # CONFIG_DISPLAY7SEG is not set |
1200 | 1202 | ||
1201 | # | 1203 | # |
1202 | # Fibre Channel support | ||
1203 | # | ||
1204 | # CONFIG_FC4 is not set | ||
1205 | |||
1206 | # | ||
1207 | # File systems | 1204 | # File systems |
1208 | # | 1205 | # |
1209 | CONFIG_EXT2_FS=y | 1206 | CONFIG_EXT2_FS=y |
@@ -1345,6 +1342,7 @@ CONFIG_KPROBES=y | |||
1345 | # | 1342 | # |
1346 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1343 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
1347 | CONFIG_PRINTK_TIME=y | 1344 | CONFIG_PRINTK_TIME=y |
1345 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
1348 | CONFIG_ENABLE_MUST_CHECK=y | 1346 | CONFIG_ENABLE_MUST_CHECK=y |
1349 | CONFIG_MAGIC_SYSRQ=y | 1347 | CONFIG_MAGIC_SYSRQ=y |
1350 | # CONFIG_UNUSED_SYMBOLS is not set | 1348 | # CONFIG_UNUSED_SYMBOLS is not set |
@@ -1371,6 +1369,7 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1371 | # CONFIG_DEBUG_INFO is not set | 1369 | # CONFIG_DEBUG_INFO is not set |
1372 | # CONFIG_DEBUG_VM is not set | 1370 | # CONFIG_DEBUG_VM is not set |
1373 | # CONFIG_DEBUG_LIST is not set | 1371 | # CONFIG_DEBUG_LIST is not set |
1372 | # CONFIG_DEBUG_SG is not set | ||
1374 | CONFIG_FORCED_INLINING=y | 1373 | CONFIG_FORCED_INLINING=y |
1375 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1374 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1376 | # CONFIG_RCU_TORTURE_TEST is not set | 1375 | # CONFIG_RCU_TORTURE_TEST is not set |
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c index 23fad7ebdd0d..60765e314bd8 100644 --- a/arch/sparc64/kernel/sparc64_ksyms.c +++ b/arch/sparc64/kernel/sparc64_ksyms.c | |||
@@ -221,7 +221,7 @@ EXPORT_SYMBOL(pci_dma_supported); | |||
221 | /* I/O device mmaping on Sparc64. */ | 221 | /* I/O device mmaping on Sparc64. */ |
222 | EXPORT_SYMBOL(io_remap_pfn_range); | 222 | EXPORT_SYMBOL(io_remap_pfn_range); |
223 | 223 | ||
224 | #ifdef CONFIG_COMPAT | 224 | #if defined(CONFIG_COMPAT) && defined(CONFIG_NET) |
225 | /* Solaris/SunOS binary compatibility */ | 225 | /* Solaris/SunOS binary compatibility */ |
226 | EXPORT_SYMBOL(verify_compat_iovec); | 226 | EXPORT_SYMBOL(verify_compat_iovec); |
227 | #endif | 227 | #endif |
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index cd8c740cba1d..a2cf955294c1 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -1070,7 +1070,7 @@ static int set_rtc_mmss(unsigned long nowtime) | |||
1070 | * Not having a register set can lead to trouble. | 1070 | * Not having a register set can lead to trouble. |
1071 | * Also starfire doesn't have a tod clock. | 1071 | * Also starfire doesn't have a tod clock. |
1072 | */ | 1072 | */ |
1073 | if (!mregs && !dregs & !bregs) | 1073 | if (!mregs && !dregs && !bregs) |
1074 | return -1; | 1074 | return -1; |
1075 | 1075 | ||
1076 | if (mregs) { | 1076 | if (mregs) { |
diff --git a/arch/sparc64/mm/tsb.c b/arch/sparc64/mm/tsb.c index 7ff0a02f5813..a3e6e4b635b3 100644 --- a/arch/sparc64/mm/tsb.c +++ b/arch/sparc64/mm/tsb.c | |||
@@ -182,7 +182,9 @@ static void setup_tsb_params(struct mm_struct *mm, unsigned long tsb_idx, unsign | |||
182 | break; | 182 | break; |
183 | 183 | ||
184 | default: | 184 | default: |
185 | BUG(); | 185 | printk(KERN_ERR "TSB[%s:%d]: Impossible TSB size %lu, killing process.\n", |
186 | current->comm, current->pid, tsb_bytes); | ||
187 | do_exit(SIGSEGV); | ||
186 | }; | 188 | }; |
187 | tte |= pte_sz_bits(page_sz); | 189 | tte |= pte_sz_bits(page_sz); |
188 | 190 | ||
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 737c26923c09..2865c105b6a4 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S | |||
@@ -120,13 +120,6 @@ __spitfire_flush_tlb_mm_slow: | |||
120 | /* | 120 | /* |
121 | * The following code flushes one page_size worth. | 121 | * The following code flushes one page_size worth. |
122 | */ | 122 | */ |
123 | #if (PAGE_SHIFT == 13) | ||
124 | #define ITAG_MASK 0xfe | ||
125 | #elif (PAGE_SHIFT == 16) | ||
126 | #define ITAG_MASK 0x7fe | ||
127 | #else | ||
128 | #error unsupported PAGE_SIZE | ||
129 | #endif | ||
130 | .section .kprobes.text, "ax" | 123 | .section .kprobes.text, "ax" |
131 | .align 32 | 124 | .align 32 |
132 | .globl __flush_icache_page | 125 | .globl __flush_icache_page |
diff --git a/include/asm-sparc64/futex.h b/include/asm-sparc64/futex.h index 876312fe82cc..df1097d6ffbe 100644 --- a/include/asm-sparc64/futex.h +++ b/include/asm-sparc64/futex.h | |||
@@ -17,7 +17,8 @@ | |||
17 | "3:\n" \ | 17 | "3:\n" \ |
18 | " .section .fixup,#alloc,#execinstr\n" \ | 18 | " .section .fixup,#alloc,#execinstr\n" \ |
19 | " .align 4\n" \ | 19 | " .align 4\n" \ |
20 | "4: ba 3b\n" \ | 20 | "4: sethi %%hi(3b), %0\n" \ |
21 | " jmpl %0 + %%lo(3b), %%g0\n" \ | ||
21 | " mov %5, %0\n" \ | 22 | " mov %5, %0\n" \ |
22 | " .previous\n" \ | 23 | " .previous\n" \ |
23 | " .section __ex_table,\"a\"\n" \ | 24 | " .section __ex_table,\"a\"\n" \ |
@@ -91,7 +92,8 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
91 | "2:\n" | 92 | "2:\n" |
92 | " .section .fixup,#alloc,#execinstr\n" | 93 | " .section .fixup,#alloc,#execinstr\n" |
93 | " .align 4\n" | 94 | " .align 4\n" |
94 | "3: ba 2b\n" | 95 | "3: sethi %%hi(2b), %0\n" |
96 | " jmpl %0 + %%lo(2b), %%g0\n" | ||
95 | " mov %4, %0\n" | 97 | " mov %4, %0\n" |
96 | " .previous\n" | 98 | " .previous\n" |
97 | " .section __ex_table,\"a\"\n" | 99 | " .section __ex_table,\"a\"\n" |
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index 159e62b51d70..99a669c190c7 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h | |||
@@ -178,7 +178,9 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
178 | "ldx [%%g6 + %9], %%g4\n\t" \ | 178 | "ldx [%%g6 + %9], %%g4\n\t" \ |
179 | "brz,pt %%o7, 1f\n\t" \ | 179 | "brz,pt %%o7, 1f\n\t" \ |
180 | " mov %%g7, %0\n\t" \ | 180 | " mov %%g7, %0\n\t" \ |
181 | "b,a ret_from_syscall\n\t" \ | 181 | "sethi %%hi(ret_from_syscall), %%g1\n\t" \ |
182 | "jmpl %%g1 + %%lo(ret_from_syscall), %%g0\n\t" \ | ||
183 | " nop\n\t" \ | ||
182 | "1:\n\t" \ | 184 | "1:\n\t" \ |
183 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ | 185 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ |
184 | "=r" (__local_per_cpu_offset) \ | 186 | "=r" (__local_per_cpu_offset) \ |
diff --git a/include/asm-sparc64/uaccess.h b/include/asm-sparc64/uaccess.h index afe236ba555b..93720e7b0289 100644 --- a/include/asm-sparc64/uaccess.h +++ b/include/asm-sparc64/uaccess.h | |||
@@ -123,7 +123,8 @@ __asm__ __volatile__( \ | |||
123 | ".section .fixup,#alloc,#execinstr\n\t" \ | 123 | ".section .fixup,#alloc,#execinstr\n\t" \ |
124 | ".align 4\n" \ | 124 | ".align 4\n" \ |
125 | "3:\n\t" \ | 125 | "3:\n\t" \ |
126 | "b 2b\n\t" \ | 126 | "sethi %%hi(2b), %0\n\t" \ |
127 | "jmpl %0 + %%lo(2b), %%g0\n\t" \ | ||
127 | " mov %3, %0\n\n\t" \ | 128 | " mov %3, %0\n\n\t" \ |
128 | ".previous\n\t" \ | 129 | ".previous\n\t" \ |
129 | ".section __ex_table,\"a\"\n\t" \ | 130 | ".section __ex_table,\"a\"\n\t" \ |
@@ -165,8 +166,9 @@ __asm__ __volatile__( \ | |||
165 | ".section .fixup,#alloc,#execinstr\n\t" \ | 166 | ".section .fixup,#alloc,#execinstr\n\t" \ |
166 | ".align 4\n" \ | 167 | ".align 4\n" \ |
167 | "3:\n\t" \ | 168 | "3:\n\t" \ |
169 | "sethi %%hi(2b), %0\n\t" \ | ||
168 | "clr %1\n\t" \ | 170 | "clr %1\n\t" \ |
169 | "b 2b\n\t" \ | 171 | "jmpl %0 + %%lo(2b), %%g0\n\t" \ |
170 | " mov %3, %0\n\n\t" \ | 172 | " mov %3, %0\n\n\t" \ |
171 | ".previous\n\t" \ | 173 | ".previous\n\t" \ |
172 | ".section __ex_table,\"a\"\n\t" \ | 174 | ".section __ex_table,\"a\"\n\t" \ |