Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
ARM: 6061/1: PL061 GPIO: Bug fix - setting gpio for HIGH_LEVEL interrupt is not working.
ARM: 5957/1: ARM: RealView SD/MMC Card detection and write-protect using GPIOLIB
ARM: 6030/1: KS8695: enable console
ARM: 6060/1: PL061 GPIO: Setting gpio val after changing direction to OUT.
ARM: 6059/1: PL061 GPIO: Changing *_irq_chip_data with *_irq_data for real irqs.
ARM: 6023/1: update bcmring_defconfig to latest version and fix build error
ARM: fix build error in arch/arm/kernel/process.c

+200 -116
+1
arch/arm/Kconfig
··· 253 253 select GENERIC_TIME 254 254 select GENERIC_CLOCKEVENTS 255 255 select ARCH_WANT_OPTIONAL_GPIOLIB 256 + select GPIO_PL061 if GPIOLIB 256 257 help 257 258 This enables support for ARM Ltd RealView boards. 258 259
+101 -25
arch/arm/configs/bcmring_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.31-rc3 4 - # Fri Jul 17 12:07:28 2009 3 + # Linux kernel version: 2.6.34-rc2 4 + # Mon Mar 29 12:01:41 2010 5 5 # 6 6 CONFIG_ARM=y 7 7 CONFIG_SYS_SUPPORTS_APM_EMULATION=y 8 8 CONFIG_GENERIC_TIME=y 9 9 CONFIG_GENERIC_CLOCKEVENTS=y 10 - CONFIG_MMU=y 10 + CONFIG_HAVE_PROC_CPU=y 11 11 CONFIG_GENERIC_HARDIRQS=y 12 12 CONFIG_STACKTRACE_SUPPORT=y 13 13 CONFIG_HAVE_LATENCYTOP_SUPPORT=y ··· 18 18 CONFIG_RWSEM_GENERIC_SPINLOCK=y 19 19 CONFIG_GENERIC_HWEIGHT=y 20 20 CONFIG_GENERIC_CALIBRATE_DELAY=y 21 + CONFIG_NEED_DMA_MAP_STATE=y 21 22 CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 22 23 CONFIG_VECTORS_BASE=0xffff0000 23 24 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" ··· 33 32 CONFIG_INIT_ENV_ARG_LIMIT=32 34 33 CONFIG_LOCALVERSION="" 35 34 # CONFIG_LOCALVERSION_AUTO is not set 35 + CONFIG_HAVE_KERNEL_GZIP=y 36 + CONFIG_HAVE_KERNEL_LZO=y 37 + CONFIG_KERNEL_GZIP=y 38 + # CONFIG_KERNEL_BZIP2 is not set 39 + # CONFIG_KERNEL_LZMA is not set 40 + # CONFIG_KERNEL_LZO is not set 36 41 # CONFIG_SWAP is not set 37 42 CONFIG_SYSVIPC=y 38 43 CONFIG_SYSVIPC_SYSCTL=y ··· 50 43 # 51 44 # RCU Subsystem 52 45 # 53 - CONFIG_CLASSIC_RCU=y 54 - # CONFIG_TREE_RCU is not set 55 - # CONFIG_PREEMPT_RCU is not set 46 + CONFIG_TREE_RCU=y 47 + # CONFIG_TREE_PREEMPT_RCU is not set 48 + # CONFIG_TINY_RCU is not set 49 + # CONFIG_RCU_TRACE is not set 50 + CONFIG_RCU_FANOUT=32 51 + # CONFIG_RCU_FANOUT_EXACT is not set 56 52 # CONFIG_TREE_RCU_TRACE is not set 57 - # CONFIG_PREEMPT_RCU_TRACE is not set 58 53 # CONFIG_IKCONFIG is not set 59 54 CONFIG_LOG_BUF_SHIFT=17 60 - # CONFIG_GROUP_SCHED is not set 61 - # CONFIG_CGROUPS is not set 62 55 # CONFIG_SYSFS_DEPRECATED_V2 is not set 63 56 # CONFIG_RELAY is not set 64 57 # CONFIG_NAMESPACES is not set 65 58 # CONFIG_BLK_DEV_INITRD is not set 66 59 CONFIG_CC_OPTIMIZE_FOR_SIZE=y 67 60 CONFIG_SYSCTL=y 61 + CONFIG_ANON_INODES=y 68 62 CONFIG_EMBEDDED=y 69 63 CONFIG_UID16=y 70 64 CONFIG_SYSCTL_SYSCALL=y ··· 83 75 # CONFIG_EVENTFD is not set 84 76 CONFIG_SHMEM=y 85 77 # CONFIG_AIO is not set 78 + CONFIG_HAVE_PERF_EVENTS=y 79 + CONFIG_PERF_USE_VMALLOC=y 86 80 87 81 # 88 - # Performance Counters 82 + # Kernel Performance Events And Counters 89 83 # 84 + CONFIG_PERF_EVENTS=y 85 + CONFIG_PERF_COUNTERS=y 90 86 # CONFIG_VM_EVENT_COUNTERS is not set 91 87 # CONFIG_SLUB_DEBUG is not set 92 - # CONFIG_STRIP_ASM_SYMS is not set 93 88 # CONFIG_COMPAT_BRK is not set 94 89 # CONFIG_SLAB is not set 95 90 CONFIG_SLUB=y 96 91 # CONFIG_SLOB is not set 97 92 # CONFIG_PROFILING is not set 98 - # CONFIG_MARKERS is not set 99 93 CONFIG_HAVE_OPROFILE=y 100 94 # CONFIG_KPROBES is not set 101 95 CONFIG_HAVE_KPROBES=y ··· 125 115 # IO Schedulers 126 116 # 127 117 CONFIG_IOSCHED_NOOP=y 128 - # CONFIG_IOSCHED_AS is not set 129 118 # CONFIG_IOSCHED_DEADLINE is not set 130 119 # CONFIG_IOSCHED_CFQ is not set 131 - # CONFIG_DEFAULT_AS is not set 132 120 # CONFIG_DEFAULT_DEADLINE is not set 133 121 # CONFIG_DEFAULT_CFQ is not set 134 122 CONFIG_DEFAULT_NOOP=y 135 123 CONFIG_DEFAULT_IOSCHED="noop" 124 + # CONFIG_INLINE_SPIN_TRYLOCK is not set 125 + # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set 126 + # CONFIG_INLINE_SPIN_LOCK is not set 127 + # CONFIG_INLINE_SPIN_LOCK_BH is not set 128 + # CONFIG_INLINE_SPIN_LOCK_IRQ is not set 129 + # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set 130 + # CONFIG_INLINE_SPIN_UNLOCK is not set 131 + # CONFIG_INLINE_SPIN_UNLOCK_BH is not set 132 + # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set 133 + # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set 134 + # CONFIG_INLINE_READ_TRYLOCK is not set 135 + # CONFIG_INLINE_READ_LOCK is not set 136 + # CONFIG_INLINE_READ_LOCK_BH is not set 137 + # CONFIG_INLINE_READ_LOCK_IRQ is not set 138 + # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set 139 + # CONFIG_INLINE_READ_UNLOCK is not set 140 + # CONFIG_INLINE_READ_UNLOCK_BH is not set 141 + # CONFIG_INLINE_READ_UNLOCK_IRQ is not set 142 + # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set 143 + # CONFIG_INLINE_WRITE_TRYLOCK is not set 144 + # CONFIG_INLINE_WRITE_LOCK is not set 145 + # CONFIG_INLINE_WRITE_LOCK_BH is not set 146 + # CONFIG_INLINE_WRITE_LOCK_IRQ is not set 147 + # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set 148 + # CONFIG_INLINE_WRITE_UNLOCK is not set 149 + # CONFIG_INLINE_WRITE_UNLOCK_BH is not set 150 + # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set 151 + # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set 152 + # CONFIG_MUTEX_SPIN_ON_OWNER is not set 136 153 # CONFIG_FREEZER is not set 137 154 138 155 # 139 156 # System Type 140 157 # 158 + CONFIG_MMU=y 141 159 # CONFIG_ARCH_AAEC2000 is not set 142 160 # CONFIG_ARCH_INTEGRATOR is not set 143 161 # CONFIG_ARCH_REALVIEW is not set 144 162 # CONFIG_ARCH_VERSATILE is not set 145 163 # CONFIG_ARCH_AT91 is not set 164 + CONFIG_ARCH_BCMRING=y 146 165 # CONFIG_ARCH_CLPS711X is not set 147 166 # CONFIG_ARCH_GEMINI is not set 148 167 # CONFIG_ARCH_EBSA110 is not set ··· 188 149 # CONFIG_ARCH_IXP2000 is not set 189 150 # CONFIG_ARCH_IXP4XX is not set 190 151 # CONFIG_ARCH_L7200 is not set 152 + # CONFIG_ARCH_DOVE is not set 191 153 # CONFIG_ARCH_KIRKWOOD is not set 192 154 # CONFIG_ARCH_LOKI is not set 193 155 # CONFIG_ARCH_MV78XX0 is not set ··· 197 157 # CONFIG_ARCH_KS8695 is not set 198 158 # CONFIG_ARCH_NS9XXX is not set 199 159 # CONFIG_ARCH_W90X900 is not set 160 + # CONFIG_ARCH_NUC93X is not set 200 161 # CONFIG_ARCH_PNX4008 is not set 201 162 # CONFIG_ARCH_PXA is not set 202 163 # CONFIG_ARCH_MSM is not set 164 + # CONFIG_ARCH_SHMOBILE is not set 203 165 # CONFIG_ARCH_RPC is not set 204 166 # CONFIG_ARCH_SA1100 is not set 205 167 # CONFIG_ARCH_S3C2410 is not set 206 168 # CONFIG_ARCH_S3C64XX is not set 169 + # CONFIG_ARCH_S5P6440 is not set 170 + # CONFIG_ARCH_S5P6442 is not set 171 + # CONFIG_ARCH_S5PC1XX is not set 172 + # CONFIG_ARCH_S5PV210 is not set 207 173 # CONFIG_ARCH_SHARK is not set 208 174 # CONFIG_ARCH_LH7A40X is not set 209 175 # CONFIG_ARCH_U300 is not set 176 + # CONFIG_ARCH_U8500 is not set 177 + # CONFIG_ARCH_NOMADIK is not set 210 178 # CONFIG_ARCH_DAVINCI is not set 211 179 # CONFIG_ARCH_OMAP is not set 212 - CONFIG_ARCH_BCMRING=y 213 180 # CONFIG_ARCH_FPGA11107 is not set 214 181 CONFIG_ARCH_BCM11107=y 215 182 ··· 232 185 CONFIG_CPU_32v6K=y 233 186 CONFIG_CPU_32v6=y 234 187 CONFIG_CPU_ABRT_EV6=y 235 - CONFIG_CPU_PABRT_NOIFAR=y 188 + CONFIG_CPU_PABRT_V6=y 236 189 CONFIG_CPU_CACHE_V6=y 237 190 CONFIG_CPU_CACHE_VIPT=y 238 191 CONFIG_CPU_COPY_V6=y ··· 248 201 # CONFIG_CPU_ICACHE_DISABLE is not set 249 202 # CONFIG_CPU_DCACHE_DISABLE is not set 250 203 # CONFIG_CPU_BPREDICT_DISABLE is not set 204 + CONFIG_ARM_L1_CACHE_SHIFT=5 205 + CONFIG_CPU_HAS_PMU=y 251 206 # CONFIG_ARM_ERRATA_411920 is not set 252 207 CONFIG_COMMON_CLKDEV=y 253 208 ··· 271 222 # CONFIG_VMSPLIT_2G is not set 272 223 # CONFIG_VMSPLIT_1G is not set 273 224 CONFIG_PAGE_OFFSET=0xC0000000 225 + # CONFIG_PREEMPT_NONE is not set 226 + # CONFIG_PREEMPT_VOLUNTARY is not set 274 227 CONFIG_PREEMPT=y 275 228 CONFIG_HZ=100 276 229 CONFIG_AEABI=y ··· 280 229 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set 281 230 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set 282 231 # CONFIG_HIGHMEM is not set 232 + CONFIG_HW_PERF_EVENTS=y 283 233 CONFIG_SELECT_MEMORY_MODEL=y 284 234 CONFIG_FLATMEM_MANUAL=y 285 235 # CONFIG_DISCONTIGMEM_MANUAL is not set ··· 292 240 # CONFIG_PHYS_ADDR_T_64BIT is not set 293 241 CONFIG_ZONE_DMA_FLAG=0 294 242 CONFIG_VIRT_TO_BUS=y 295 - CONFIG_HAVE_MLOCK=y 296 - CONFIG_HAVE_MLOCKED_PAGE_BIT=y 243 + # CONFIG_KSM is not set 297 244 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 298 245 CONFIG_ALIGNMENT_TRAP=y 299 246 CONFIG_UACCESS_WITH_MEMCPY=y ··· 386 335 # CONFIG_CONNECTOR is not set 387 336 CONFIG_MTD=y 388 337 # CONFIG_MTD_DEBUG is not set 338 + # CONFIG_MTD_TESTS is not set 389 339 CONFIG_MTD_CONCAT=y 390 340 CONFIG_MTD_PARTITIONS=y 391 - # CONFIG_MTD_TESTS is not set 392 341 # CONFIG_MTD_REDBOOT_PARTS is not set 393 342 CONFIG_MTD_CMDLINE_PARTS=y 394 343 # CONFIG_MTD_AFS_PARTS is not set ··· 484 433 CONFIG_BLK_DEV=y 485 434 # CONFIG_BLK_DEV_COW_COMMON is not set 486 435 # CONFIG_BLK_DEV_LOOP is not set 436 + 437 + # 438 + # DRBD disabled because PROC_FS, INET or CONNECTOR not selected 439 + # 487 440 # CONFIG_BLK_DEV_NBD is not set 488 441 # CONFIG_BLK_DEV_RAM is not set 489 442 # CONFIG_CDROM_PKTCDVD is not set ··· 499 444 # 500 445 # SCSI device support 501 446 # 447 + CONFIG_SCSI_MOD=y 502 448 # CONFIG_RAID_ATTRS is not set 503 449 # CONFIG_SCSI is not set 504 450 # CONFIG_SCSI_DMA is not set ··· 508 452 # CONFIG_MD is not set 509 453 # CONFIG_NETDEVICES is not set 510 454 # CONFIG_ISDN is not set 455 + # CONFIG_PHONE is not set 511 456 512 457 # 513 458 # Input device support ··· 516 459 CONFIG_INPUT=y 517 460 # CONFIG_INPUT_FF_MEMLESS is not set 518 461 # CONFIG_INPUT_POLLDEV is not set 462 + # CONFIG_INPUT_SPARSEKMAP is not set 519 463 520 464 # 521 465 # Userland interfaces ··· 566 508 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 567 509 CONFIG_SERIAL_CORE=y 568 510 CONFIG_SERIAL_CORE_CONSOLE=y 511 + # CONFIG_SERIAL_TIMBERDALE is not set 569 512 CONFIG_UNIX98_PTYS=y 570 513 # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 571 514 CONFIG_LEGACY_PTYS=y ··· 578 519 # CONFIG_TCG_TPM is not set 579 520 # CONFIG_I2C is not set 580 521 # CONFIG_SPI is not set 522 + 523 + # 524 + # PPS support 525 + # 526 + # CONFIG_PPS is not set 581 527 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 582 528 # CONFIG_GPIOLIB is not set 583 529 # CONFIG_W1 is not set 584 530 # CONFIG_POWER_SUPPLY is not set 585 531 # CONFIG_HWMON is not set 586 532 # CONFIG_THERMAL is not set 587 - # CONFIG_THERMAL_HWMON is not set 588 533 # CONFIG_WATCHDOG is not set 589 534 CONFIG_SSB_POSSIBLE=y 590 535 ··· 604 541 # CONFIG_MFD_SM501 is not set 605 542 # CONFIG_HTC_PASIC3 is not set 606 543 # CONFIG_MFD_TMIO is not set 544 + # CONFIG_REGULATOR is not set 607 545 # CONFIG_MEDIA_SUPPORT is not set 608 546 609 547 # ··· 630 566 # CONFIG_USB_SUPPORT is not set 631 567 # CONFIG_MMC is not set 632 568 # CONFIG_MEMSTICK is not set 633 - # CONFIG_ACCESSIBILITY is not set 634 569 # CONFIG_NEW_LEDS is not set 570 + # CONFIG_ACCESSIBILITY is not set 635 571 CONFIG_RTC_LIB=y 636 572 # CONFIG_RTC_CLASS is not set 637 573 # CONFIG_DMADEVICES is not set 638 574 # CONFIG_AUXDISPLAY is not set 639 - # CONFIG_REGULATOR is not set 640 575 # CONFIG_UIO is not set 576 + 577 + # 578 + # TI VLYNQ 579 + # 641 580 # CONFIG_STAGING is not set 642 581 643 582 # ··· 656 589 # CONFIG_GFS2_FS is not set 657 590 # CONFIG_OCFS2_FS is not set 658 591 # CONFIG_BTRFS_FS is not set 592 + # CONFIG_NILFS2_FS is not set 659 593 # CONFIG_FILE_LOCKING is not set 660 594 # CONFIG_FSNOTIFY is not set 595 + # CONFIG_DNOTIFY is not set 661 596 # CONFIG_INOTIFY is not set 597 + # CONFIG_INOTIFY_USER is not set 662 598 # CONFIG_QUOTA is not set 663 599 # CONFIG_AUTOFS_FS is not set 664 600 # CONFIG_AUTOFS4_FS is not set ··· 717 647 # CONFIG_JFFS2_LZO is not set 718 648 CONFIG_JFFS2_RTIME=y 719 649 # CONFIG_JFFS2_RUBIN is not set 650 + # CONFIG_LOGFS is not set 720 651 # CONFIG_CRAMFS is not set 721 652 # CONFIG_SQUASHFS is not set 722 653 # CONFIG_VXFS_FS is not set ··· 728 657 # CONFIG_ROMFS_FS is not set 729 658 # CONFIG_SYSV_FS is not set 730 659 # CONFIG_UFS_FS is not set 731 - # CONFIG_NILFS2_FS is not set 732 660 # CONFIG_NETWORK_FILESYSTEMS is not set 733 661 734 662 # ··· 745 675 CONFIG_ENABLE_MUST_CHECK=y 746 676 CONFIG_FRAME_WARN=1024 747 677 CONFIG_MAGIC_SYSRQ=y 678 + # CONFIG_STRIP_ASM_SYMS is not set 748 679 # CONFIG_UNUSED_SYMBOLS is not set 749 680 # CONFIG_DEBUG_FS is not set 750 681 CONFIG_HEADERS_CHECK=y 751 682 # CONFIG_DEBUG_KERNEL is not set 752 - # CONFIG_DEBUG_BUGVERBOSE is not set 683 + CONFIG_DEBUG_BUGVERBOSE=y 753 684 # CONFIG_DEBUG_MEMORY_INIT is not set 754 685 CONFIG_FRAME_POINTER=y 755 686 # CONFIG_RCU_CPU_STALL_DETECTOR is not set ··· 764 693 CONFIG_HAVE_ARCH_KGDB=y 765 694 # CONFIG_ARM_UNWIND is not set 766 695 # CONFIG_DEBUG_USER is not set 696 + # CONFIG_OC_ETM is not set 767 697 768 698 # 769 699 # Security options ··· 772 700 # CONFIG_KEYS is not set 773 701 # CONFIG_SECURITY is not set 774 702 # CONFIG_SECURITYFS is not set 775 - # CONFIG_SECURITY_FILE_CAPABILITIES is not set 703 + # CONFIG_DEFAULT_SECURITY_SELINUX is not set 704 + # CONFIG_DEFAULT_SECURITY_SMACK is not set 705 + # CONFIG_DEFAULT_SECURITY_TOMOYO is not set 706 + CONFIG_DEFAULT_SECURITY_DAC=y 707 + CONFIG_DEFAULT_SECURITY="" 776 708 # CONFIG_CRYPTO is not set 777 709 # CONFIG_BINARY_PRINTF is not set 778 710
+6 -6
arch/arm/include/asm/assembler.h
··· 149 149 150 150 #define USER(x...) \ 151 151 9999: x; \ 152 - .section __ex_table,"a"; \ 152 + .pushsection __ex_table,"a"; \ 153 153 .align 3; \ 154 154 .long 9999b,9001f; \ 155 - .previous 155 + .popsection 156 156 157 157 /* 158 158 * SMP data memory barrier ··· 193 193 .error "Unsupported inc macro argument" 194 194 .endif 195 195 196 - .section __ex_table,"a" 196 + .pushsection __ex_table,"a" 197 197 .align 3 198 198 .long 9999b, \abort 199 - .previous 199 + .popsection 200 200 .endm 201 201 202 202 .macro usracc, instr, reg, ptr, inc, cond, rept, abort ··· 234 234 .error "Unsupported inc macro argument" 235 235 .endif 236 236 237 - .section __ex_table,"a" 237 + .pushsection __ex_table,"a" 238 238 .align 3 239 239 .long 9999b, \abort 240 - .previous 240 + .popsection 241 241 .endr 242 242 .endm 243 243
+8 -8
arch/arm/include/asm/futex.h
··· 21 21 "2: strt %0, [%2]\n" \ 22 22 " mov %0, #0\n" \ 23 23 "3:\n" \ 24 - " .section __ex_table,\"a\"\n" \ 24 + " .pushsection __ex_table,\"a\"\n" \ 25 25 " .align 3\n" \ 26 26 " .long 1b, 4f, 2b, 4f\n" \ 27 - " .previous\n" \ 28 - " .section .fixup,\"ax\"\n" \ 27 + " .popsection\n" \ 28 + " .pushsection .fixup,\"ax\"\n" \ 29 29 "4: mov %0, %4\n" \ 30 30 " b 3b\n" \ 31 - " .previous" \ 31 + " .popsection" \ 32 32 : "=&r" (ret), "=&r" (oldval) \ 33 33 : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ 34 34 : "cc", "memory") ··· 102 102 " it eq @ explicit IT needed for the 2b label\n" 103 103 "2: streqt %2, [%3]\n" 104 104 "3:\n" 105 - " .section __ex_table,\"a\"\n" 105 + " .pushsection __ex_table,\"a\"\n" 106 106 " .align 3\n" 107 107 " .long 1b, 4f, 2b, 4f\n" 108 - " .previous\n" 109 - " .section .fixup,\"ax\"\n" 108 + " .popsection\n" 109 + " .pushsection .fixup,\"ax\"\n" 110 110 "4: mov %0, %4\n" 111 111 " b 3b\n" 112 - " .previous" 112 + " .popsection" 113 113 : "=&r" (val) 114 114 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) 115 115 : "cc", "memory");
+20 -20
arch/arm/include/asm/uaccess.h
··· 229 229 __asm__ __volatile__( \ 230 230 "1: ldrbt %1,[%2]\n" \ 231 231 "2:\n" \ 232 - " .section .fixup,\"ax\"\n" \ 232 + " .pushsection .fixup,\"ax\"\n" \ 233 233 " .align 2\n" \ 234 234 "3: mov %0, %3\n" \ 235 235 " mov %1, #0\n" \ 236 236 " b 2b\n" \ 237 - " .previous\n" \ 238 - " .section __ex_table,\"a\"\n" \ 237 + " .popsection\n" \ 238 + " .pushsection __ex_table,\"a\"\n" \ 239 239 " .align 3\n" \ 240 240 " .long 1b, 3b\n" \ 241 - " .previous" \ 241 + " .popsection" \ 242 242 : "+r" (err), "=&r" (x) \ 243 243 : "r" (addr), "i" (-EFAULT) \ 244 244 : "cc") ··· 265 265 __asm__ __volatile__( \ 266 266 "1: ldrt %1,[%2]\n" \ 267 267 "2:\n" \ 268 - " .section .fixup,\"ax\"\n" \ 268 + " .pushsection .fixup,\"ax\"\n" \ 269 269 " .align 2\n" \ 270 270 "3: mov %0, %3\n" \ 271 271 " mov %1, #0\n" \ 272 272 " b 2b\n" \ 273 - " .previous\n" \ 274 - " .section __ex_table,\"a\"\n" \ 273 + " .popsection\n" \ 274 + " .pushsection __ex_table,\"a\"\n" \ 275 275 " .align 3\n" \ 276 276 " .long 1b, 3b\n" \ 277 - " .previous" \ 277 + " .popsection" \ 278 278 : "+r" (err), "=&r" (x) \ 279 279 : "r" (addr), "i" (-EFAULT) \ 280 280 : "cc") ··· 310 310 __asm__ __volatile__( \ 311 311 "1: strbt %1,[%2]\n" \ 312 312 "2:\n" \ 313 - " .section .fixup,\"ax\"\n" \ 313 + " .pushsection .fixup,\"ax\"\n" \ 314 314 " .align 2\n" \ 315 315 "3: mov %0, %3\n" \ 316 316 " b 2b\n" \ 317 - " .previous\n" \ 318 - " .section __ex_table,\"a\"\n" \ 317 + " .popsection\n" \ 318 + " .pushsection __ex_table,\"a\"\n" \ 319 319 " .align 3\n" \ 320 320 " .long 1b, 3b\n" \ 321 - " .previous" \ 321 + " .popsection" \ 322 322 : "+r" (err) \ 323 323 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ 324 324 : "cc") ··· 343 343 __asm__ __volatile__( \ 344 344 "1: strt %1,[%2]\n" \ 345 345 "2:\n" \ 346 - " .section .fixup,\"ax\"\n" \ 346 + " .pushsection .fixup,\"ax\"\n" \ 347 347 " .align 2\n" \ 348 348 "3: mov %0, %3\n" \ 349 349 " b 2b\n" \ 350 - " .previous\n" \ 351 - " .section __ex_table,\"a\"\n" \ 350 + " .popsection\n" \ 351 + " .pushsection __ex_table,\"a\"\n" \ 352 352 " .align 3\n" \ 353 353 " .long 1b, 3b\n" \ 354 - " .previous" \ 354 + " .popsection" \ 355 355 : "+r" (err) \ 356 356 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ 357 357 : "cc") ··· 371 371 THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \ 372 372 THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \ 373 373 "3:\n" \ 374 - " .section .fixup,\"ax\"\n" \ 374 + " .pushsection .fixup,\"ax\"\n" \ 375 375 " .align 2\n" \ 376 376 "4: mov %0, %3\n" \ 377 377 " b 3b\n" \ 378 - " .previous\n" \ 379 - " .section __ex_table,\"a\"\n" \ 378 + " .popsection\n" \ 379 + " .pushsection __ex_table,\"a\"\n" \ 380 380 " .align 3\n" \ 381 381 " .long 1b, 4b\n" \ 382 382 " .long 2b, 4b\n" \ 383 - " .previous" \ 383 + " .popsection" \ 384 384 : "+r" (err), "+r" (__pu_addr) \ 385 385 : "r" (x), "i" (-EFAULT) \ 386 386 : "cc")
+5 -5
arch/arm/kernel/entry-armv.S
··· 523 523 /* 524 524 * The out of line fixup for the ldrt above. 525 525 */ 526 - .section .fixup, "ax" 526 + .pushsection .fixup, "ax" 527 527 4: mov pc, r9 528 - .previous 529 - .section __ex_table,"a" 528 + .popsection 529 + .pushsection __ex_table,"a" 530 530 .long 1b, 4b 531 531 #if __LINUX_ARM_ARCH__ >= 7 532 532 .long 2b, 4b 533 533 .long 3b, 4b 534 534 #endif 535 - .previous 535 + .popsection 536 536 537 537 /* 538 538 * Check whether the instruction is a co-processor instruction. ··· 679 679 .data 680 680 ENTRY(fp_enter) 681 681 .word no_fp 682 - .previous 682 + .text 683 683 684 684 ENTRY(no_fp) 685 685 mov pc, lr
+4 -4
arch/arm/kernel/ftrace.c
··· 62 62 " movne %0, #2 \n" 63 63 "3:\n" 64 64 65 - ".section .fixup, \"ax\"\n" 65 + ".pushsection .fixup, \"ax\"\n" 66 66 "4: mov %0, #1 \n" 67 67 " b 3b \n" 68 - ".previous\n" 68 + ".popsection\n" 69 69 70 - ".section __ex_table, \"a\"\n" 70 + ".pushsection __ex_table, \"a\"\n" 71 71 " .long 1b, 4b \n" 72 72 " .long 2b, 4b \n" 73 - ".previous\n" 73 + ".popsection\n" 74 74 75 75 : "=r"(err), "=r"(replaced) 76 76 : "r"(pc), "r"(new), "r"(old), "0"(err), "1"(replaced)
+4 -4
arch/arm/kernel/process.c
··· 355 355 * the thread function, and r3 points to the exit function. 356 356 */ 357 357 extern void kernel_thread_helper(void); 358 - asm( ".section .text\n" 358 + asm( ".pushsection .text\n" 359 359 " .align\n" 360 360 " .type kernel_thread_helper, #function\n" 361 361 "kernel_thread_helper:\n" ··· 363 363 " mov lr, r3\n" 364 364 " mov pc, r2\n" 365 365 " .size kernel_thread_helper, . - kernel_thread_helper\n" 366 - " .previous"); 366 + " .popsection"); 367 367 368 368 #ifdef CONFIG_ARM_UNWIND 369 369 extern void kernel_thread_exit(long code); 370 - asm( ".section .text\n" 370 + asm( ".pushsection .text\n" 371 371 " .align\n" 372 372 " .type kernel_thread_exit, #function\n" 373 373 "kernel_thread_exit:\n" ··· 377 377 " nop\n" 378 378 " .fnend\n" 379 379 " .size kernel_thread_exit, . - kernel_thread_exit\n" 380 - " .previous"); 380 + " .popsection"); 381 381 #else 382 382 #define kernel_thread_exit do_exit 383 383 #endif
+2 -2
arch/arm/lib/backtrace.S
··· 110 110 ENDPROC(__backtrace) 111 111 ENDPROC(c_backtrace) 112 112 113 - .section __ex_table,"a" 113 + .pushsection __ex_table,"a" 114 114 .align 3 115 115 .long 1001b, 1006b 116 116 .long 1002b, 1006b 117 117 .long 1003b, 1006b 118 118 .long 1004b, 1006b 119 - .previous 119 + .popsection 120 120 121 121 #define instr r4 122 122 #define reg r5
+2 -2
arch/arm/lib/clear_user.S
··· 46 46 ldmfd sp!, {r1, pc} 47 47 ENDPROC(__clear_user) 48 48 49 - .section .fixup,"ax" 49 + .pushsection .fixup,"ax" 50 50 .align 0 51 51 9001: ldmfd sp!, {r0, pc} 52 - .previous 52 + .popsection 53 53
+2 -2
arch/arm/lib/copy_from_user.S
··· 90 90 91 91 ENDPROC(__copy_from_user) 92 92 93 - .section .fixup,"ax" 93 + .pushsection .fixup,"ax" 94 94 .align 0 95 95 copy_abort_preamble 96 96 ldmfd sp!, {r1, r2} ··· 100 100 bl __memzero 101 101 ldr r0, [sp], #4 102 102 copy_abort_end 103 - .previous 103 + .popsection 104 104
+2 -2
arch/arm/lib/copy_to_user.S
··· 94 94 95 95 ENDPROC(__copy_to_user) 96 96 97 - .section .fixup,"ax" 97 + .pushsection .fixup,"ax" 98 98 .align 0 99 99 copy_abort_preamble 100 100 ldmfd sp!, {r1, r2, r3} 101 101 sub r0, r0, r1 102 102 rsb r0, r0, r2 103 103 copy_abort_end 104 - .previous 104 + .popsection 105 105
+2 -2
arch/arm/lib/csumpartialcopyuser.S
··· 68 68 * so properly, we would have to add in whatever registers were loaded before 69 69 * the fault, which, with the current asm above is not predictable. 70 70 */ 71 - .section .fixup,"ax" 71 + .pushsection .fixup,"ax" 72 72 .align 4 73 73 9001: mov r4, #-EFAULT 74 74 ldr r5, [fp, #4] @ *err_ptr ··· 80 80 strneb r0, [r1], #1 81 81 bne 9002b 82 82 load_regs 83 - .previous 83 + .popsection
+2 -2
arch/arm/lib/getuser.S
··· 64 64 mov pc, lr 65 65 ENDPROC(__get_user_bad) 66 66 67 - .section __ex_table, "a" 67 + .pushsection __ex_table, "a" 68 68 .long 1b, __get_user_bad 69 69 .long 2b, __get_user_bad 70 70 .long 3b, __get_user_bad 71 71 .long 4b, __get_user_bad 72 - .previous 72 + .popsection
+2 -2
arch/arm/lib/putuser.S
··· 81 81 mov pc, lr 82 82 ENDPROC(__put_user_bad) 83 83 84 - .section __ex_table, "a" 84 + .pushsection __ex_table, "a" 85 85 .long 1b, __put_user_bad 86 86 .long 2b, __put_user_bad 87 87 .long 3b, __put_user_bad 88 88 .long 4b, __put_user_bad 89 89 .long 5b, __put_user_bad 90 90 .long 6b, __put_user_bad 91 - .previous 91 + .popsection
+2 -2
arch/arm/lib/strncpy_from_user.S
··· 33 33 mov pc, lr 34 34 ENDPROC(__strncpy_from_user) 35 35 36 - .section .fixup,"ax" 36 + .pushsection .fixup,"ax" 37 37 .align 0 38 38 9001: mov r3, #0 39 39 strb r3, [r0, #0] @ null terminate 40 40 mov r0, #-EFAULT 41 41 mov pc, lr 42 - .previous 42 + .popsection 43 43
+2 -2
arch/arm/lib/strnlen_user.S
··· 33 33 mov pc, lr 34 34 ENDPROC(__strnlen_user) 35 35 36 - .section .fixup,"ax" 36 + .pushsection .fixup,"ax" 37 37 .align 0 38 38 9001: mov r0, #0 39 39 mov pc, lr 40 - .previous 40 + .popsection
+4 -4
arch/arm/lib/uaccess.S
··· 279 279 b .Lc2u_finished 280 280 ENDPROC(__copy_to_user) 281 281 282 - .section .fixup,"ax" 282 + .pushsection .fixup,"ax" 283 283 .align 0 284 284 9001: ldmfd sp!, {r0, r4 - r7, pc} 285 - .previous 285 + .popsection 286 286 287 287 /* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n); 288 288 * Purpose : copy a block from user memory to kernel memory ··· 545 545 b .Lcfu_finished 546 546 ENDPROC(__copy_from_user) 547 547 548 - .section .fixup,"ax" 548 + .pushsection .fixup,"ax" 549 549 .align 0 550 550 /* 551 551 * We took an exception. r0 contains a pointer to ··· 559 559 blne __memzero 560 560 mov r0, r4 561 561 ldmfd sp!, {r4 - r7, pc} 562 - .previous 562 + .popsection 563 563
+1 -1
arch/arm/mach-realview/core.c
··· 254 254 else 255 255 mask = 2; 256 256 257 - return readl(REALVIEW_SYSMCI) & mask; 257 + return !(readl(REALVIEW_SYSMCI) & mask); 258 258 } 259 259 260 260 struct mmci_platform_data realview_mmc0_plat_data = {
+12 -12
arch/arm/mm/alignment.c
··· 166 166 THUMB( "1: "ins" %1, [%2]\n" ) \ 167 167 THUMB( " add %2, %2, #1\n" ) \ 168 168 "2:\n" \ 169 - " .section .fixup,\"ax\"\n" \ 169 + " .pushsection .fixup,\"ax\"\n" \ 170 170 " .align 2\n" \ 171 171 "3: mov %0, #1\n" \ 172 172 " b 2b\n" \ 173 - " .previous\n" \ 174 - " .section __ex_table,\"a\"\n" \ 173 + " .popsection\n" \ 174 + " .pushsection __ex_table,\"a\"\n" \ 175 175 " .align 3\n" \ 176 176 " .long 1b, 3b\n" \ 177 - " .previous\n" \ 177 + " .popsection\n" \ 178 178 : "=r" (err), "=&r" (val), "=r" (addr) \ 179 179 : "0" (err), "2" (addr)) 180 180 ··· 226 226 " mov %1, %1, "NEXT_BYTE"\n" \ 227 227 "2: "ins" %1, [%2]\n" \ 228 228 "3:\n" \ 229 - " .section .fixup,\"ax\"\n" \ 229 + " .pushsection .fixup,\"ax\"\n" \ 230 230 " .align 2\n" \ 231 231 "4: mov %0, #1\n" \ 232 232 " b 3b\n" \ 233 - " .previous\n" \ 234 - " .section __ex_table,\"a\"\n" \ 233 + " .popsection\n" \ 234 + " .pushsection __ex_table,\"a\"\n" \ 235 235 " .align 3\n" \ 236 236 " .long 1b, 4b\n" \ 237 237 " .long 2b, 4b\n" \ 238 - " .previous\n" \ 238 + " .popsection\n" \ 239 239 : "=r" (err), "=&r" (v), "=&r" (a) \ 240 240 : "0" (err), "1" (v), "2" (a)); \ 241 241 if (err) \ ··· 266 266 " mov %1, %1, "NEXT_BYTE"\n" \ 267 267 "4: "ins" %1, [%2]\n" \ 268 268 "5:\n" \ 269 - " .section .fixup,\"ax\"\n" \ 269 + " .pushsection .fixup,\"ax\"\n" \ 270 270 " .align 2\n" \ 271 271 "6: mov %0, #1\n" \ 272 272 " b 5b\n" \ 273 - " .previous\n" \ 274 - " .section __ex_table,\"a\"\n" \ 273 + " .popsection\n" \ 274 + " .pushsection __ex_table,\"a\"\n" \ 275 275 " .align 3\n" \ 276 276 " .long 1b, 6b\n" \ 277 277 " .long 2b, 6b\n" \ 278 278 " .long 3b, 6b\n" \ 279 279 " .long 4b, 6b\n" \ 280 - " .previous\n" \ 280 + " .popsection\n" \ 281 281 : "=r" (err), "=&r" (v), "=&r" (a) \ 282 282 : "0" (err), "1" (v), "2" (a)); \ 283 283 if (err) \
+1 -1
arch/arm/mm/proc-sa1100.S
··· 45 45 mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland 46 46 mov pc, lr 47 47 48 - .previous 48 + .section .text 49 49 50 50 /* 51 51 * cpu_sa1100_proc_fin()
+4 -4
arch/arm/nwfpe/entry.S
··· 111 111 @ to fault. Emit the appropriate exception gunk to fix things up. 112 112 @ ??? For some reason, faults can happen at .Lx2 even with a 113 113 @ plain LDR instruction. Weird, but it seems harmless. 114 - .section .fixup,"ax" 114 + .pushsection .fixup,"ax" 115 115 .align 2 116 116 .Lfix: mov pc, r9 @ let the user eat segfaults 117 - .previous 117 + .popsection 118 118 119 - .section __ex_table,"a" 119 + .pushsection __ex_table,"a" 120 120 .align 3 121 121 .long .Lx1, .Lfix 122 - .previous 122 + .popsection
+10 -4
drivers/gpio/pl061.c
··· 91 91 gpiodir = readb(chip->base + GPIODIR); 92 92 gpiodir |= 1 << offset; 93 93 writeb(gpiodir, chip->base + GPIODIR); 94 + 95 + /* 96 + * gpio value is set again, because pl061 doesn't allow to set value of 97 + * a gpio pin before configuring it in OUT mode. 98 + */ 99 + writeb(!!value << offset, chip->base + (1 << (offset + 2))); 94 100 spin_unlock_irqrestore(&chip->lock, flags); 95 101 96 102 return 0; ··· 189 183 gpioibe &= ~(1 << offset); 190 184 if (trigger & IRQ_TYPE_EDGE_RISING) 191 185 gpioiev |= 1 << offset; 192 - else 186 + else if (trigger & IRQ_TYPE_EDGE_FALLING) 193 187 gpioiev &= ~(1 << offset); 194 188 } 195 189 writeb(gpioibe, chip->base + GPIOIBE); ··· 210 204 211 205 static void pl061_irq_handler(unsigned irq, struct irq_desc *desc) 212 206 { 213 - struct list_head *chip_list = get_irq_chip_data(irq); 207 + struct list_head *chip_list = get_irq_data(irq); 214 208 struct list_head *ptr; 215 209 struct pl061_gpio *chip; 216 210 ··· 303 297 goto iounmap; 304 298 } 305 299 INIT_LIST_HEAD(chip_list); 306 - set_irq_chip_data(irq, chip_list); 300 + set_irq_data(irq, chip_list); 307 301 } else 308 - chip_list = get_irq_chip_data(irq); 302 + chip_list = get_irq_data(irq); 309 303 list_add(&chip->list, chip_list); 310 304 311 305 for (i = 0; i < PL061_GPIO_NR; i++) {
+1
drivers/serial/serial_ks8695.c
··· 650 650 651 651 static int __init ks8695_console_init(void) 652 652 { 653 + add_preferred_console(SERIAL_KS8695_DEVNAME, 0, NULL); 653 654 register_console(&ks8695_console); 654 655 return 0; 655 656 }