diff options
Diffstat (limited to 'arch')
25 files changed, 289 insertions, 110 deletions
diff --git a/arch/avr32/boards/favr-32/flash.c b/arch/avr32/boards/favr-32/flash.c index 5f139b7cb5f7..604bbd5e41d9 100644 --- a/arch/avr32/boards/favr-32/flash.c +++ b/arch/avr32/boards/favr-32/flash.c | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #include <linux/mtd/partitions.h> | 13 | #include <linux/mtd/partitions.h> |
| 14 | #include <linux/mtd/physmap.h> | 14 | #include <linux/mtd/physmap.h> |
| 15 | 15 | ||
| 16 | #include <asm/arch/smc.h> | 16 | #include <mach/smc.h> |
| 17 | 17 | ||
| 18 | static struct smc_timing flash_timing __initdata = { | 18 | static struct smc_timing flash_timing __initdata = { |
| 19 | .ncs_read_setup = 0, | 19 | .ncs_read_setup = 0, |
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c index 7538f3d2b9e0..1ee4faf0742d 100644 --- a/arch/avr32/boards/favr-32/setup.c +++ b/arch/avr32/boards/favr-32/setup.c | |||
| @@ -25,10 +25,10 @@ | |||
| 25 | 25 | ||
| 26 | #include <asm/setup.h> | 26 | #include <asm/setup.h> |
| 27 | 27 | ||
| 28 | #include <asm/arch/at32ap700x.h> | 28 | #include <mach/at32ap700x.h> |
| 29 | #include <asm/arch/init.h> | 29 | #include <mach/init.h> |
| 30 | #include <asm/arch/board.h> | 30 | #include <mach/board.h> |
| 31 | #include <asm/arch/portmux.h> | 31 | #include <mach/portmux.h> |
| 32 | 32 | ||
| 33 | /* Oscillator frequencies. These are board-specific */ | 33 | /* Oscillator frequencies. These are board-specific */ |
| 34 | unsigned long at32_board_osc_rates[3] = { | 34 | unsigned long at32_board_osc_rates[3] = { |
diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile index 219720a47bf9..1848bf0d7f62 100644 --- a/arch/avr32/boot/images/Makefile +++ b/arch/avr32/boot/images/Makefile | |||
| @@ -10,7 +10,7 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh | |||
| 10 | 10 | ||
| 11 | extra-y := vmlinux.bin vmlinux.gz | 11 | extra-y := vmlinux.bin vmlinux.gz |
| 12 | 12 | ||
| 13 | OBJCOPYFLAGS_vmlinux.bin := -O binary | 13 | OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id |
| 14 | $(obj)/vmlinux.bin: vmlinux FORCE | 14 | $(obj)/vmlinux.bin: vmlinux FORCE |
| 15 | $(call if_changed,objcopy) | 15 | $(call if_changed,objcopy) |
| 16 | 16 | ||
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig index 8b6e54c9946a..6c45a3b77aa3 100644 --- a/arch/avr32/configs/atstk1006_defconfig +++ b/arch/avr32/configs/atstk1006_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.27-rc1 | 3 | # Linux kernel version: 2.6.28-rc8 |
| 4 | # Tue Aug 5 15:40:26 2008 | 4 | # Thu Dec 18 11:22:23 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_AVR32=y | 6 | CONFIG_AVR32=y |
| 7 | CONFIG_GENERIC_GPIO=y | 7 | CONFIG_GENERIC_GPIO=y |
| @@ -67,6 +67,7 @@ CONFIG_SIGNALFD=y | |||
| 67 | CONFIG_TIMERFD=y | 67 | CONFIG_TIMERFD=y |
| 68 | CONFIG_EVENTFD=y | 68 | CONFIG_EVENTFD=y |
| 69 | CONFIG_SHMEM=y | 69 | CONFIG_SHMEM=y |
| 70 | CONFIG_AIO=y | ||
| 70 | CONFIG_VM_EVENT_COUNTERS=y | 71 | CONFIG_VM_EVENT_COUNTERS=y |
| 71 | CONFIG_SLUB_DEBUG=y | 72 | CONFIG_SLUB_DEBUG=y |
| 72 | # CONFIG_SLAB is not set | 73 | # CONFIG_SLAB is not set |
| @@ -77,15 +78,8 @@ CONFIG_PROFILING=y | |||
| 77 | CONFIG_OPROFILE=m | 78 | CONFIG_OPROFILE=m |
| 78 | CONFIG_HAVE_OPROFILE=y | 79 | CONFIG_HAVE_OPROFILE=y |
| 79 | CONFIG_KPROBES=y | 80 | CONFIG_KPROBES=y |
| 80 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | ||
| 81 | # CONFIG_HAVE_IOREMAP_PROT is not set | ||
| 82 | CONFIG_HAVE_KPROBES=y | 81 | CONFIG_HAVE_KPROBES=y |
| 83 | # CONFIG_HAVE_KRETPROBES is not set | ||
| 84 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
| 85 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
| 86 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
| 87 | CONFIG_HAVE_CLK=y | 82 | CONFIG_HAVE_CLK=y |
| 88 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 89 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 83 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
| 90 | CONFIG_SLABINFO=y | 84 | CONFIG_SLABINFO=y |
| 91 | CONFIG_RT_MUTEXES=y | 85 | CONFIG_RT_MUTEXES=y |
| @@ -118,6 +112,7 @@ CONFIG_DEFAULT_CFQ=y | |||
| 118 | # CONFIG_DEFAULT_NOOP is not set | 112 | # CONFIG_DEFAULT_NOOP is not set |
| 119 | CONFIG_DEFAULT_IOSCHED="cfq" | 113 | CONFIG_DEFAULT_IOSCHED="cfq" |
| 120 | CONFIG_CLASSIC_RCU=y | 114 | CONFIG_CLASSIC_RCU=y |
| 115 | CONFIG_FREEZER=y | ||
| 121 | 116 | ||
| 122 | # | 117 | # |
| 123 | # System Type and features | 118 | # System Type and features |
| @@ -134,6 +129,8 @@ CONFIG_CPU_AT32AP700X=y | |||
| 134 | CONFIG_CPU_AT32AP7000=y | 129 | CONFIG_CPU_AT32AP7000=y |
| 135 | CONFIG_BOARD_ATSTK1000=y | 130 | CONFIG_BOARD_ATSTK1000=y |
| 136 | # CONFIG_BOARD_ATNGW100 is not set | 131 | # CONFIG_BOARD_ATNGW100 is not set |
| 132 | # CONFIG_BOARD_FAVR_32 is not set | ||
| 133 | # CONFIG_BOARD_MIMC200 is not set | ||
| 137 | # CONFIG_BOARD_ATSTK1002 is not set | 134 | # CONFIG_BOARD_ATSTK1002 is not set |
| 138 | # CONFIG_BOARD_ATSTK1003 is not set | 135 | # CONFIG_BOARD_ATSTK1003 is not set |
| 139 | # CONFIG_BOARD_ATSTK1004 is not set | 136 | # CONFIG_BOARD_ATSTK1004 is not set |
| @@ -171,14 +168,14 @@ CONFIG_FLATMEM_MANUAL=y | |||
| 171 | # CONFIG_SPARSEMEM_MANUAL is not set | 168 | # CONFIG_SPARSEMEM_MANUAL is not set |
| 172 | CONFIG_FLATMEM=y | 169 | CONFIG_FLATMEM=y |
| 173 | CONFIG_FLAT_NODE_MEM_MAP=y | 170 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 174 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 175 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
| 176 | CONFIG_PAGEFLAGS_EXTENDED=y | 171 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 177 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 172 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 178 | # CONFIG_RESOURCES_64BIT is not set | 173 | # CONFIG_RESOURCES_64BIT is not set |
| 174 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
| 179 | CONFIG_ZONE_DMA_FLAG=0 | 175 | CONFIG_ZONE_DMA_FLAG=0 |
| 180 | CONFIG_NR_QUICK=2 | 176 | CONFIG_NR_QUICK=2 |
| 181 | CONFIG_VIRT_TO_BUS=y | 177 | CONFIG_VIRT_TO_BUS=y |
| 178 | CONFIG_UNEVICTABLE_LRU=y | ||
| 182 | # CONFIG_OWNERSHIP_TRACE is not set | 179 | # CONFIG_OWNERSHIP_TRACE is not set |
| 183 | CONFIG_NMI_DEBUGGING=y | 180 | CONFIG_NMI_DEBUGGING=y |
| 184 | # CONFIG_HZ_100 is not set | 181 | # CONFIG_HZ_100 is not set |
| @@ -186,7 +183,7 @@ CONFIG_HZ_250=y | |||
| 186 | # CONFIG_HZ_300 is not set | 183 | # CONFIG_HZ_300 is not set |
| 187 | # CONFIG_HZ_1000 is not set | 184 | # CONFIG_HZ_1000 is not set |
| 188 | CONFIG_HZ=250 | 185 | CONFIG_HZ=250 |
| 189 | # CONFIG_SCHED_HRTICK is not set | 186 | CONFIG_SCHED_HRTICK=y |
| 190 | CONFIG_CMDLINE="" | 187 | CONFIG_CMDLINE="" |
| 191 | 188 | ||
| 192 | # | 189 | # |
| @@ -228,6 +225,8 @@ CONFIG_CPU_FREQ_AT32AP=y | |||
| 228 | # Executable file formats | 225 | # Executable file formats |
| 229 | # | 226 | # |
| 230 | CONFIG_BINFMT_ELF=y | 227 | CONFIG_BINFMT_ELF=y |
| 228 | CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y | ||
| 229 | # CONFIG_HAVE_AOUT is not set | ||
| 231 | # CONFIG_BINFMT_MISC is not set | 230 | # CONFIG_BINFMT_MISC is not set |
| 232 | CONFIG_NET=y | 231 | CONFIG_NET=y |
| 233 | 232 | ||
| @@ -299,6 +298,7 @@ CONFIG_IPV6_TUNNEL=m | |||
| 299 | # CONFIG_ATM is not set | 298 | # CONFIG_ATM is not set |
| 300 | CONFIG_STP=m | 299 | CONFIG_STP=m |
| 301 | CONFIG_BRIDGE=m | 300 | CONFIG_BRIDGE=m |
| 301 | # CONFIG_NET_DSA is not set | ||
| 302 | # CONFIG_VLAN_8021Q is not set | 302 | # CONFIG_VLAN_8021Q is not set |
| 303 | # CONFIG_DECNET is not set | 303 | # CONFIG_DECNET is not set |
| 304 | CONFIG_LLC=m | 304 | CONFIG_LLC=m |
| @@ -321,14 +321,8 @@ CONFIG_LLC=m | |||
| 321 | # CONFIG_IRDA is not set | 321 | # CONFIG_IRDA is not set |
| 322 | # CONFIG_BT is not set | 322 | # CONFIG_BT is not set |
| 323 | # CONFIG_AF_RXRPC is not set | 323 | # CONFIG_AF_RXRPC is not set |
| 324 | 324 | # CONFIG_PHONET is not set | |
| 325 | # | 325 | # CONFIG_WIRELESS is not set |
| 326 | # Wireless | ||
| 327 | # | ||
| 328 | # CONFIG_CFG80211 is not set | ||
| 329 | # CONFIG_WIRELESS_EXT is not set | ||
| 330 | # CONFIG_MAC80211 is not set | ||
| 331 | # CONFIG_IEEE80211 is not set | ||
| 332 | # CONFIG_RFKILL is not set | 326 | # CONFIG_RFKILL is not set |
| 333 | # CONFIG_NET_9P is not set | 327 | # CONFIG_NET_9P is not set |
| 334 | 328 | ||
| @@ -359,6 +353,7 @@ CONFIG_MTD_CMDLINE_PARTS=y | |||
| 359 | # User Modules And Translation Layers | 353 | # User Modules And Translation Layers |
| 360 | # | 354 | # |
| 361 | CONFIG_MTD_CHAR=y | 355 | CONFIG_MTD_CHAR=y |
| 356 | CONFIG_HAVE_MTD_OTP=y | ||
| 362 | CONFIG_MTD_BLKDEVS=y | 357 | CONFIG_MTD_BLKDEVS=y |
| 363 | CONFIG_MTD_BLOCK=y | 358 | CONFIG_MTD_BLOCK=y |
| 364 | # CONFIG_FTL is not set | 359 | # CONFIG_FTL is not set |
| @@ -407,6 +402,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | |||
| 407 | # Self-contained MTD device drivers | 402 | # Self-contained MTD device drivers |
| 408 | # | 403 | # |
| 409 | CONFIG_MTD_DATAFLASH=m | 404 | CONFIG_MTD_DATAFLASH=m |
| 405 | # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set | ||
| 406 | CONFIG_MTD_DATAFLASH_OTP=y | ||
| 410 | CONFIG_MTD_M25P80=m | 407 | CONFIG_MTD_M25P80=m |
| 411 | CONFIG_M25PXX_USE_FAST_READ=y | 408 | CONFIG_M25PXX_USE_FAST_READ=y |
| 412 | # CONFIG_MTD_SLRAM is not set | 409 | # CONFIG_MTD_SLRAM is not set |
| @@ -464,9 +461,10 @@ CONFIG_ATMEL_TCLIB=y | |||
| 464 | CONFIG_ATMEL_TCB_CLKSRC=y | 461 | CONFIG_ATMEL_TCB_CLKSRC=y |
| 465 | CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 | 462 | CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 |
| 466 | # CONFIG_EEPROM_93CX6 is not set | 463 | # CONFIG_EEPROM_93CX6 is not set |
| 464 | # CONFIG_ICS932S401 is not set | ||
| 467 | CONFIG_ATMEL_SSC=m | 465 | CONFIG_ATMEL_SSC=m |
| 468 | # CONFIG_ENCLOSURE_SERVICES is not set | 466 | # CONFIG_ENCLOSURE_SERVICES is not set |
| 469 | # CONFIG_HAVE_IDE is not set | 467 | # CONFIG_C2PORT is not set |
| 470 | 468 | ||
| 471 | # | 469 | # |
| 472 | # SCSI device support | 470 | # SCSI device support |
| @@ -548,6 +546,9 @@ CONFIG_MACB=y | |||
| 548 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 546 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
| 549 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 547 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
| 550 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 548 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 549 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 550 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 551 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 551 | # CONFIG_B44 is not set | 552 | # CONFIG_B44 is not set |
| 552 | # CONFIG_NETDEV_1000 is not set | 553 | # CONFIG_NETDEV_1000 is not set |
| 553 | # CONFIG_NETDEV_10000 is not set | 554 | # CONFIG_NETDEV_10000 is not set |
| @@ -653,6 +654,7 @@ CONFIG_UNIX98_PTYS=y | |||
| 653 | CONFIG_I2C=m | 654 | CONFIG_I2C=m |
| 654 | CONFIG_I2C_BOARDINFO=y | 655 | CONFIG_I2C_BOARDINFO=y |
| 655 | CONFIG_I2C_CHARDEV=m | 656 | CONFIG_I2C_CHARDEV=m |
| 657 | CONFIG_I2C_HELPER_AUTO=y | ||
| 656 | CONFIG_I2C_ALGOBIT=m | 658 | CONFIG_I2C_ALGOBIT=m |
| 657 | 659 | ||
| 658 | # | 660 | # |
| @@ -717,6 +719,10 @@ CONFIG_GPIOLIB=y | |||
| 717 | CONFIG_GPIO_SYSFS=y | 719 | CONFIG_GPIO_SYSFS=y |
| 718 | 720 | ||
| 719 | # | 721 | # |
| 722 | # Memory mapped GPIO expanders: | ||
| 723 | # | ||
| 724 | |||
| 725 | # | ||
| 720 | # I2C GPIO expanders: | 726 | # I2C GPIO expanders: |
| 721 | # | 727 | # |
| 722 | # CONFIG_GPIO_MAX732X is not set | 728 | # CONFIG_GPIO_MAX732X is not set |
| @@ -745,11 +751,11 @@ CONFIG_WATCHDOG=y | |||
| 745 | # | 751 | # |
| 746 | # CONFIG_SOFT_WATCHDOG is not set | 752 | # CONFIG_SOFT_WATCHDOG is not set |
| 747 | CONFIG_AT32AP700X_WDT=y | 753 | CONFIG_AT32AP700X_WDT=y |
| 754 | CONFIG_SSB_POSSIBLE=y | ||
| 748 | 755 | ||
| 749 | # | 756 | # |
| 750 | # Sonics Silicon Backplane | 757 | # Sonics Silicon Backplane |
| 751 | # | 758 | # |
| 752 | CONFIG_SSB_POSSIBLE=y | ||
| 753 | # CONFIG_SSB is not set | 759 | # CONFIG_SSB is not set |
| 754 | 760 | ||
| 755 | # | 761 | # |
| @@ -758,6 +764,10 @@ CONFIG_SSB_POSSIBLE=y | |||
| 758 | # CONFIG_MFD_CORE is not set | 764 | # CONFIG_MFD_CORE is not set |
| 759 | # CONFIG_MFD_SM501 is not set | 765 | # CONFIG_MFD_SM501 is not set |
| 760 | # CONFIG_HTC_PASIC3 is not set | 766 | # CONFIG_HTC_PASIC3 is not set |
| 767 | # CONFIG_MFD_TMIO is not set | ||
| 768 | # CONFIG_MFD_WM8400 is not set | ||
| 769 | # CONFIG_MFD_WM8350_I2C is not set | ||
| 770 | # CONFIG_REGULATOR is not set | ||
| 761 | 771 | ||
| 762 | # | 772 | # |
| 763 | # Multimedia devices | 773 | # Multimedia devices |
| @@ -783,6 +793,7 @@ CONFIG_SSB_POSSIBLE=y | |||
| 783 | CONFIG_FB=y | 793 | CONFIG_FB=y |
| 784 | # CONFIG_FIRMWARE_EDID is not set | 794 | # CONFIG_FIRMWARE_EDID is not set |
| 785 | # CONFIG_FB_DDC is not set | 795 | # CONFIG_FB_DDC is not set |
| 796 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
| 786 | CONFIG_FB_CFB_FILLRECT=y | 797 | CONFIG_FB_CFB_FILLRECT=y |
| 787 | CONFIG_FB_CFB_COPYAREA=y | 798 | CONFIG_FB_CFB_COPYAREA=y |
| 788 | CONFIG_FB_CFB_IMAGEBLIT=y | 799 | CONFIG_FB_CFB_IMAGEBLIT=y |
| @@ -804,10 +815,13 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
| 804 | # CONFIG_FB_S1D13XXX is not set | 815 | # CONFIG_FB_S1D13XXX is not set |
| 805 | CONFIG_FB_ATMEL=y | 816 | CONFIG_FB_ATMEL=y |
| 806 | # CONFIG_FB_VIRTUAL is not set | 817 | # CONFIG_FB_VIRTUAL is not set |
| 818 | # CONFIG_FB_METRONOME is not set | ||
| 819 | # CONFIG_FB_MB862XX is not set | ||
| 807 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 820 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
| 808 | CONFIG_LCD_CLASS_DEVICE=y | 821 | CONFIG_LCD_CLASS_DEVICE=y |
| 809 | CONFIG_LCD_LTV350QV=y | 822 | CONFIG_LCD_LTV350QV=y |
| 810 | # CONFIG_LCD_ILI9320 is not set | 823 | # CONFIG_LCD_ILI9320 is not set |
| 824 | # CONFIG_LCD_TDO24M is not set | ||
| 811 | # CONFIG_LCD_VGG2432A4 is not set | 825 | # CONFIG_LCD_VGG2432A4 is not set |
| 812 | # CONFIG_LCD_PLATFORM is not set | 826 | # CONFIG_LCD_PLATFORM is not set |
| 813 | # CONFIG_BACKLIGHT_CLASS_DEVICE is not set | 827 | # CONFIG_BACKLIGHT_CLASS_DEVICE is not set |
| @@ -818,6 +832,7 @@ CONFIG_LCD_LTV350QV=y | |||
| 818 | # CONFIG_DISPLAY_SUPPORT is not set | 832 | # CONFIG_DISPLAY_SUPPORT is not set |
| 819 | # CONFIG_LOGO is not set | 833 | # CONFIG_LOGO is not set |
| 820 | CONFIG_SOUND=m | 834 | CONFIG_SOUND=m |
| 835 | CONFIG_SOUND_OSS_CORE=y | ||
| 821 | CONFIG_SND=m | 836 | CONFIG_SND=m |
| 822 | CONFIG_SND_TIMER=m | 837 | CONFIG_SND_TIMER=m |
| 823 | CONFIG_SND_PCM=m | 838 | CONFIG_SND_PCM=m |
| @@ -848,28 +863,32 @@ CONFIG_USB_SUPPORT=y | |||
| 848 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 863 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
| 849 | # CONFIG_USB_OTG_WHITELIST is not set | 864 | # CONFIG_USB_OTG_WHITELIST is not set |
| 850 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 865 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
| 866 | # CONFIG_USB_MUSB_HDRC is not set | ||
| 867 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | ||
| 851 | 868 | ||
| 852 | # | 869 | # |
| 853 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 870 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; |
| 854 | # | 871 | # |
| 855 | CONFIG_USB_GADGET=y | 872 | CONFIG_USB_GADGET=y |
| 856 | # CONFIG_USB_GADGET_DEBUG is not set | 873 | # CONFIG_USB_GADGET_DEBUG is not set |
| 857 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | 874 | # CONFIG_USB_GADGET_DEBUG_FILES is not set |
| 858 | # CONFIG_USB_GADGET_DEBUG_FS is not set | 875 | # CONFIG_USB_GADGET_DEBUG_FS is not set |
| 876 | CONFIG_USB_GADGET_VBUS_DRAW=2 | ||
| 859 | CONFIG_USB_GADGET_SELECTED=y | 877 | CONFIG_USB_GADGET_SELECTED=y |
| 860 | # CONFIG_USB_GADGET_AMD5536UDC is not set | 878 | # CONFIG_USB_GADGET_AT91 is not set |
| 861 | CONFIG_USB_GADGET_ATMEL_USBA=y | 879 | CONFIG_USB_GADGET_ATMEL_USBA=y |
| 862 | CONFIG_USB_ATMEL_USBA=y | 880 | CONFIG_USB_ATMEL_USBA=y |
| 863 | # CONFIG_USB_GADGET_FSL_USB2 is not set | 881 | # CONFIG_USB_GADGET_FSL_USB2 is not set |
| 864 | # CONFIG_USB_GADGET_NET2280 is not set | ||
| 865 | # CONFIG_USB_GADGET_PXA25X is not set | ||
| 866 | # CONFIG_USB_GADGET_M66592 is not set | ||
| 867 | # CONFIG_USB_GADGET_PXA27X is not set | ||
| 868 | # CONFIG_USB_GADGET_GOKU is not set | ||
| 869 | # CONFIG_USB_GADGET_LH7A40X is not set | 882 | # CONFIG_USB_GADGET_LH7A40X is not set |
| 870 | # CONFIG_USB_GADGET_OMAP is not set | 883 | # CONFIG_USB_GADGET_OMAP is not set |
| 884 | # CONFIG_USB_GADGET_PXA25X is not set | ||
| 885 | # CONFIG_USB_GADGET_PXA27X is not set | ||
| 871 | # CONFIG_USB_GADGET_S3C2410 is not set | 886 | # CONFIG_USB_GADGET_S3C2410 is not set |
| 872 | # CONFIG_USB_GADGET_AT91 is not set | 887 | # CONFIG_USB_GADGET_M66592 is not set |
| 888 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
| 889 | # CONFIG_USB_GADGET_FSL_QE is not set | ||
| 890 | # CONFIG_USB_GADGET_NET2280 is not set | ||
| 891 | # CONFIG_USB_GADGET_GOKU is not set | ||
| 873 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | 892 | # CONFIG_USB_GADGET_DUMMY_HCD is not set |
| 874 | CONFIG_USB_GADGET_DUALSPEED=y | 893 | CONFIG_USB_GADGET_DUALSPEED=y |
| 875 | CONFIG_USB_ZERO=m | 894 | CONFIG_USB_ZERO=m |
| @@ -887,7 +906,7 @@ CONFIG_MMC=y | |||
| 887 | # CONFIG_MMC_UNSAFE_RESUME is not set | 906 | # CONFIG_MMC_UNSAFE_RESUME is not set |
| 888 | 907 | ||
| 889 | # | 908 | # |
| 890 | # MMC/SD Card Drivers | 909 | # MMC/SD/SDIO Card Drivers |
| 891 | # | 910 | # |
| 892 | CONFIG_MMC_BLOCK=y | 911 | CONFIG_MMC_BLOCK=y |
| 893 | CONFIG_MMC_BLOCK_BOUNCE=y | 912 | CONFIG_MMC_BLOCK_BOUNCE=y |
| @@ -895,10 +914,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
| 895 | # CONFIG_MMC_TEST is not set | 914 | # CONFIG_MMC_TEST is not set |
| 896 | 915 | ||
| 897 | # | 916 | # |
| 898 | # MMC/SD Host Controller Drivers | 917 | # MMC/SD/SDIO Host Controller Drivers |
| 899 | # | 918 | # |
| 900 | # CONFIG_MMC_SDHCI is not set | 919 | # CONFIG_MMC_SDHCI is not set |
| 901 | CONFIG_MMC_ATMELMCI=y | 920 | CONFIG_MMC_ATMELMCI=y |
| 921 | # CONFIG_MMC_ATMELMCI_DMA is not set | ||
| 902 | CONFIG_MMC_SPI=m | 922 | CONFIG_MMC_SPI=m |
| 903 | # CONFIG_MEMSTICK is not set | 923 | # CONFIG_MEMSTICK is not set |
| 904 | CONFIG_NEW_LEDS=y | 924 | CONFIG_NEW_LEDS=y |
| @@ -918,6 +938,7 @@ CONFIG_LEDS_GPIO=m | |||
| 918 | CONFIG_LEDS_TRIGGERS=y | 938 | CONFIG_LEDS_TRIGGERS=y |
| 919 | CONFIG_LEDS_TRIGGER_TIMER=m | 939 | CONFIG_LEDS_TRIGGER_TIMER=m |
| 920 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m | 940 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m |
| 941 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | ||
| 921 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=m | 942 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=m |
| 922 | # CONFIG_ACCESSIBILITY is not set | 943 | # CONFIG_ACCESSIBILITY is not set |
| 923 | CONFIG_RTC_LIB=y | 944 | CONFIG_RTC_LIB=y |
| @@ -950,25 +971,31 @@ CONFIG_RTC_INTF_DEV=y | |||
| 950 | # CONFIG_RTC_DRV_M41T80 is not set | 971 | # CONFIG_RTC_DRV_M41T80 is not set |
| 951 | # CONFIG_RTC_DRV_S35390A is not set | 972 | # CONFIG_RTC_DRV_S35390A is not set |
| 952 | # CONFIG_RTC_DRV_FM3130 is not set | 973 | # CONFIG_RTC_DRV_FM3130 is not set |
| 974 | # CONFIG_RTC_DRV_RX8581 is not set | ||
| 953 | 975 | ||
| 954 | # | 976 | # |
| 955 | # SPI RTC drivers | 977 | # SPI RTC drivers |
| 956 | # | 978 | # |
| 957 | # CONFIG_RTC_DRV_M41T94 is not set | 979 | # CONFIG_RTC_DRV_M41T94 is not set |
| 958 | # CONFIG_RTC_DRV_DS1305 is not set | 980 | # CONFIG_RTC_DRV_DS1305 is not set |
| 981 | # CONFIG_RTC_DRV_DS1390 is not set | ||
| 959 | # CONFIG_RTC_DRV_MAX6902 is not set | 982 | # CONFIG_RTC_DRV_MAX6902 is not set |
| 960 | # CONFIG_RTC_DRV_R9701 is not set | 983 | # CONFIG_RTC_DRV_R9701 is not set |
| 961 | # CONFIG_RTC_DRV_RS5C348 is not set | 984 | # CONFIG_RTC_DRV_RS5C348 is not set |
| 985 | # CONFIG_RTC_DRV_DS3234 is not set | ||
| 962 | 986 | ||
| 963 | # | 987 | # |
| 964 | # Platform RTC drivers | 988 | # Platform RTC drivers |
| 965 | # | 989 | # |
| 990 | # CONFIG_RTC_DRV_DS1286 is not set | ||
| 966 | # CONFIG_RTC_DRV_DS1511 is not set | 991 | # CONFIG_RTC_DRV_DS1511 is not set |
| 967 | # CONFIG_RTC_DRV_DS1553 is not set | 992 | # CONFIG_RTC_DRV_DS1553 is not set |
| 968 | # CONFIG_RTC_DRV_DS1742 is not set | 993 | # CONFIG_RTC_DRV_DS1742 is not set |
| 969 | # CONFIG_RTC_DRV_STK17TA8 is not set | 994 | # CONFIG_RTC_DRV_STK17TA8 is not set |
| 970 | # CONFIG_RTC_DRV_M48T86 is not set | 995 | # CONFIG_RTC_DRV_M48T86 is not set |
| 996 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 971 | # CONFIG_RTC_DRV_M48T59 is not set | 997 | # CONFIG_RTC_DRV_M48T59 is not set |
| 998 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 972 | # CONFIG_RTC_DRV_V3020 is not set | 999 | # CONFIG_RTC_DRV_V3020 is not set |
| 973 | 1000 | ||
| 974 | # | 1001 | # |
| @@ -989,6 +1016,8 @@ CONFIG_DMA_ENGINE=y | |||
| 989 | # CONFIG_NET_DMA is not set | 1016 | # CONFIG_NET_DMA is not set |
| 990 | CONFIG_DMATEST=m | 1017 | CONFIG_DMATEST=m |
| 991 | # CONFIG_UIO is not set | 1018 | # CONFIG_UIO is not set |
| 1019 | # CONFIG_STAGING is not set | ||
| 1020 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
| 992 | 1021 | ||
| 993 | # | 1022 | # |
| 994 | # File systems | 1023 | # File systems |
| @@ -998,12 +1027,17 @@ CONFIG_EXT2_FS=m | |||
| 998 | # CONFIG_EXT2_FS_XIP is not set | 1027 | # CONFIG_EXT2_FS_XIP is not set |
| 999 | CONFIG_EXT3_FS=m | 1028 | CONFIG_EXT3_FS=m |
| 1000 | # CONFIG_EXT3_FS_XATTR is not set | 1029 | # CONFIG_EXT3_FS_XATTR is not set |
| 1001 | # CONFIG_EXT4DEV_FS is not set | 1030 | CONFIG_EXT4_FS=m |
| 1031 | CONFIG_EXT4DEV_COMPAT=y | ||
| 1032 | # CONFIG_EXT4_FS_XATTR is not set | ||
| 1002 | CONFIG_JBD=m | 1033 | CONFIG_JBD=m |
| 1003 | # CONFIG_JBD_DEBUG is not set | 1034 | # CONFIG_JBD_DEBUG is not set |
| 1035 | CONFIG_JBD2=m | ||
| 1036 | # CONFIG_JBD2_DEBUG is not set | ||
| 1004 | # CONFIG_REISERFS_FS is not set | 1037 | # CONFIG_REISERFS_FS is not set |
| 1005 | # CONFIG_JFS_FS is not set | 1038 | # CONFIG_JFS_FS is not set |
| 1006 | # CONFIG_FS_POSIX_ACL is not set | 1039 | # CONFIG_FS_POSIX_ACL is not set |
| 1040 | CONFIG_FILE_LOCKING=y | ||
| 1007 | # CONFIG_XFS_FS is not set | 1041 | # CONFIG_XFS_FS is not set |
| 1008 | # CONFIG_OCFS2_FS is not set | 1042 | # CONFIG_OCFS2_FS is not set |
| 1009 | # CONFIG_DNOTIFY is not set | 1043 | # CONFIG_DNOTIFY is not set |
| @@ -1036,6 +1070,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 1036 | CONFIG_PROC_FS=y | 1070 | CONFIG_PROC_FS=y |
| 1037 | CONFIG_PROC_KCORE=y | 1071 | CONFIG_PROC_KCORE=y |
| 1038 | CONFIG_PROC_SYSCTL=y | 1072 | CONFIG_PROC_SYSCTL=y |
| 1073 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 1039 | CONFIG_SYSFS=y | 1074 | CONFIG_SYSFS=y |
| 1040 | CONFIG_TMPFS=y | 1075 | CONFIG_TMPFS=y |
| 1041 | # CONFIG_TMPFS_POSIX_ACL is not set | 1076 | # CONFIG_TMPFS_POSIX_ACL is not set |
| @@ -1054,7 +1089,8 @@ CONFIG_TMPFS=y | |||
| 1054 | # CONFIG_EFS_FS is not set | 1089 | # CONFIG_EFS_FS is not set |
| 1055 | CONFIG_JFFS2_FS=y | 1090 | CONFIG_JFFS2_FS=y |
| 1056 | CONFIG_JFFS2_FS_DEBUG=0 | 1091 | CONFIG_JFFS2_FS_DEBUG=0 |
| 1057 | # CONFIG_JFFS2_FS_WRITEBUFFER is not set | 1092 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
| 1093 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
| 1058 | # CONFIG_JFFS2_SUMMARY is not set | 1094 | # CONFIG_JFFS2_SUMMARY is not set |
| 1059 | # CONFIG_JFFS2_FS_XATTR is not set | 1095 | # CONFIG_JFFS2_FS_XATTR is not set |
| 1060 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | 1096 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
| @@ -1088,6 +1124,7 @@ CONFIG_LOCKD=y | |||
| 1088 | CONFIG_LOCKD_V4=y | 1124 | CONFIG_LOCKD_V4=y |
| 1089 | CONFIG_NFS_COMMON=y | 1125 | CONFIG_NFS_COMMON=y |
| 1090 | CONFIG_SUNRPC=y | 1126 | CONFIG_SUNRPC=y |
| 1127 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
| 1091 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1128 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
| 1092 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1129 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
| 1093 | # CONFIG_SMB_FS is not set | 1130 | # CONFIG_SMB_FS is not set |
| @@ -1185,10 +1222,21 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
| 1185 | CONFIG_FRAME_POINTER=y | 1222 | CONFIG_FRAME_POINTER=y |
| 1186 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1223 | # CONFIG_BOOT_PRINTK_DELAY is not set |
| 1187 | # CONFIG_RCU_TORTURE_TEST is not set | 1224 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1225 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 1188 | # CONFIG_KPROBES_SANITY_TEST is not set | 1226 | # CONFIG_KPROBES_SANITY_TEST is not set |
| 1189 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1227 | # CONFIG_BACKTRACE_SELF_TEST is not set |
| 1228 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
| 1190 | # CONFIG_LKDTM is not set | 1229 | # CONFIG_LKDTM is not set |
| 1191 | # CONFIG_FAULT_INJECTION is not set | 1230 | # CONFIG_FAULT_INJECTION is not set |
| 1231 | |||
| 1232 | # | ||
| 1233 | # Tracers | ||
| 1234 | # | ||
| 1235 | # CONFIG_IRQSOFF_TRACER is not set | ||
| 1236 | # CONFIG_SCHED_TRACER is not set | ||
| 1237 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
| 1238 | # CONFIG_BOOT_TRACER is not set | ||
| 1239 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 1192 | # CONFIG_SAMPLES is not set | 1240 | # CONFIG_SAMPLES is not set |
| 1193 | 1241 | ||
| 1194 | # | 1242 | # |
| @@ -1196,17 +1244,26 @@ CONFIG_FRAME_POINTER=y | |||
| 1196 | # | 1244 | # |
| 1197 | # CONFIG_KEYS is not set | 1245 | # CONFIG_KEYS is not set |
| 1198 | # CONFIG_SECURITY is not set | 1246 | # CONFIG_SECURITY is not set |
| 1247 | # CONFIG_SECURITYFS is not set | ||
| 1199 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1248 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
| 1200 | CONFIG_CRYPTO=y | 1249 | CONFIG_CRYPTO=y |
| 1201 | 1250 | ||
| 1202 | # | 1251 | # |
| 1203 | # Crypto core or helper | 1252 | # Crypto core or helper |
| 1204 | # | 1253 | # |
| 1254 | CONFIG_CRYPTO_FIPS=y | ||
| 1205 | CONFIG_CRYPTO_ALGAPI=y | 1255 | CONFIG_CRYPTO_ALGAPI=y |
| 1256 | CONFIG_CRYPTO_ALGAPI2=y | ||
| 1206 | CONFIG_CRYPTO_AEAD=m | 1257 | CONFIG_CRYPTO_AEAD=m |
| 1258 | CONFIG_CRYPTO_AEAD2=y | ||
| 1207 | CONFIG_CRYPTO_BLKCIPHER=m | 1259 | CONFIG_CRYPTO_BLKCIPHER=m |
| 1260 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
| 1208 | CONFIG_CRYPTO_HASH=m | 1261 | CONFIG_CRYPTO_HASH=m |
| 1262 | CONFIG_CRYPTO_HASH2=y | ||
| 1263 | CONFIG_CRYPTO_RNG=m | ||
| 1264 | CONFIG_CRYPTO_RNG2=y | ||
| 1209 | CONFIG_CRYPTO_MANAGER=m | 1265 | CONFIG_CRYPTO_MANAGER=m |
| 1266 | CONFIG_CRYPTO_MANAGER2=y | ||
| 1210 | # CONFIG_CRYPTO_GF128MUL is not set | 1267 | # CONFIG_CRYPTO_GF128MUL is not set |
| 1211 | # CONFIG_CRYPTO_NULL is not set | 1268 | # CONFIG_CRYPTO_NULL is not set |
| 1212 | # CONFIG_CRYPTO_CRYPTD is not set | 1269 | # CONFIG_CRYPTO_CRYPTD is not set |
| @@ -1257,7 +1314,7 @@ CONFIG_CRYPTO_SHA1=m | |||
| 1257 | # | 1314 | # |
| 1258 | # Ciphers | 1315 | # Ciphers |
| 1259 | # | 1316 | # |
| 1260 | # CONFIG_CRYPTO_AES is not set | 1317 | CONFIG_CRYPTO_AES=m |
| 1261 | # CONFIG_CRYPTO_ANUBIS is not set | 1318 | # CONFIG_CRYPTO_ANUBIS is not set |
| 1262 | # CONFIG_CRYPTO_ARC4 is not set | 1319 | # CONFIG_CRYPTO_ARC4 is not set |
| 1263 | # CONFIG_CRYPTO_BLOWFISH is not set | 1320 | # CONFIG_CRYPTO_BLOWFISH is not set |
| @@ -1278,14 +1335,17 @@ CONFIG_CRYPTO_DES=m | |||
| 1278 | # | 1335 | # |
| 1279 | CONFIG_CRYPTO_DEFLATE=y | 1336 | CONFIG_CRYPTO_DEFLATE=y |
| 1280 | CONFIG_CRYPTO_LZO=y | 1337 | CONFIG_CRYPTO_LZO=y |
| 1338 | |||
| 1339 | # | ||
| 1340 | # Random Number Generation | ||
| 1341 | # | ||
| 1342 | CONFIG_CRYPTO_ANSI_CPRNG=m | ||
| 1281 | # CONFIG_CRYPTO_HW is not set | 1343 | # CONFIG_CRYPTO_HW is not set |
| 1282 | 1344 | ||
| 1283 | # | 1345 | # |
| 1284 | # Library routines | 1346 | # Library routines |
| 1285 | # | 1347 | # |
| 1286 | CONFIG_BITREVERSE=y | 1348 | CONFIG_BITREVERSE=y |
| 1287 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
| 1288 | # CONFIG_GENERIC_FIND_NEXT_BIT is not set | ||
| 1289 | CONFIG_CRC_CCITT=m | 1349 | CONFIG_CRC_CCITT=m |
| 1290 | CONFIG_CRC16=y | 1350 | CONFIG_CRC16=y |
| 1291 | CONFIG_CRC_T10DIF=m | 1351 | CONFIG_CRC_T10DIF=m |
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 0c6e02f80a31..066252eebf61 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
| @@ -967,28 +967,28 @@ static inline void configure_usart0_pins(void) | |||
| 967 | { | 967 | { |
| 968 | u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */ | 968 | u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */ |
| 969 | 969 | ||
| 970 | select_peripheral(PIOA, pin_mask, PERIPH_B, 0); | 970 | select_peripheral(PIOA, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); |
| 971 | } | 971 | } |
| 972 | 972 | ||
| 973 | static inline void configure_usart1_pins(void) | 973 | static inline void configure_usart1_pins(void) |
| 974 | { | 974 | { |
| 975 | u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */ | 975 | u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */ |
| 976 | 976 | ||
| 977 | select_peripheral(PIOA, pin_mask, PERIPH_A, 0); | 977 | select_peripheral(PIOA, pin_mask, PERIPH_A, AT32_GPIOF_PULLUP); |
| 978 | } | 978 | } |
| 979 | 979 | ||
| 980 | static inline void configure_usart2_pins(void) | 980 | static inline void configure_usart2_pins(void) |
| 981 | { | 981 | { |
| 982 | u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */ | 982 | u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */ |
| 983 | 983 | ||
| 984 | select_peripheral(PIOB, pin_mask, PERIPH_B, 0); | 984 | select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); |
| 985 | } | 985 | } |
| 986 | 986 | ||
| 987 | static inline void configure_usart3_pins(void) | 987 | static inline void configure_usart3_pins(void) |
| 988 | { | 988 | { |
| 989 | u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */ | 989 | u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */ |
| 990 | 990 | ||
| 991 | select_peripheral(PIOB, pin_mask, PERIPH_B, 0); | 991 | select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP); |
| 992 | } | 992 | } |
| 993 | 993 | ||
| 994 | static struct platform_device *__initdata at32_usarts[4]; | 994 | static struct platform_device *__initdata at32_usarts[4]; |
diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h index 2988d29a0867..33790b9e0cc0 100644 --- a/arch/mips/include/asm/byteorder.h +++ b/arch/mips/include/asm/byteorder.h | |||
| @@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x) | |||
| 50 | static inline __attribute_const__ __u64 __arch_swab64(__u64 x) | 50 | static inline __attribute_const__ __u64 __arch_swab64(__u64 x) |
| 51 | { | 51 | { |
| 52 | __asm__( | 52 | __asm__( |
| 53 | " dsbh %0, %1 \n" | 53 | " dsbh %0, %1\n" |
| 54 | " dshd %0, %0 \n" | 54 | " dshd %0, %0" |
| 55 | " drotr %0, %0, 32 \n" | ||
| 56 | : "=r" (x) | 55 | : "=r" (x) |
| 57 | : "r" (x)); | 56 | : "r" (x)); |
| 58 | 57 | ||
diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h index a8eac1697b3d..d58f128aa747 100644 --- a/arch/mips/include/asm/elf.h +++ b/arch/mips/include/asm/elf.h | |||
| @@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | |||
| 232 | */ | 232 | */ |
| 233 | #ifdef __MIPSEB__ | 233 | #ifdef __MIPSEB__ |
| 234 | #define ELF_DATA ELFDATA2MSB | 234 | #define ELF_DATA ELFDATA2MSB |
| 235 | #elif __MIPSEL__ | 235 | #elif defined(__MIPSEL__) |
| 236 | #define ELF_DATA ELFDATA2LSB | 236 | #define ELF_DATA ELFDATA2LSB |
| 237 | #endif | 237 | #endif |
| 238 | #define ELF_ARCH EM_MIPS | 238 | #define ELF_ARCH EM_MIPS |
diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index b72ec66db699..1f6fd4fc05b9 100644 --- a/arch/parisc/include/asm/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h | |||
| @@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm) | |||
| 44 | { | 44 | { |
| 45 | BUG_ON(mm == &init_mm); /* Should never happen */ | 45 | BUG_ON(mm == &init_mm); /* Should never happen */ |
| 46 | 46 | ||
| 47 | #ifdef CONFIG_SMP | 47 | #if 1 || defined(CONFIG_SMP) |
| 48 | flush_tlb_all(); | 48 | flush_tlb_all(); |
| 49 | #else | 49 | #else |
| 50 | /* FIXME: currently broken, causing space id and protection ids | ||
| 51 | * to go out of sync, resulting in faults on userspace accesses. | ||
| 52 | */ | ||
| 50 | if (mm) { | 53 | if (mm) { |
| 51 | if (mm->context != 0) | 54 | if (mm->context != 0) |
| 52 | free_sid(mm->context); | 55 | free_sid(mm->context); |
diff --git a/arch/sparc/include/asm/ptrace_32.h b/arch/sparc/include/asm/ptrace_32.h index d409c4f21a5c..4cef450167dd 100644 --- a/arch/sparc/include/asm/ptrace_32.h +++ b/arch/sparc/include/asm/ptrace_32.h | |||
| @@ -62,6 +62,8 @@ struct sparc_stackf { | |||
| 62 | 62 | ||
| 63 | #ifdef __KERNEL__ | 63 | #ifdef __KERNEL__ |
| 64 | 64 | ||
| 65 | #include <asm/system.h> | ||
| 66 | |||
| 65 | static inline bool pt_regs_is_syscall(struct pt_regs *regs) | 67 | static inline bool pt_regs_is_syscall(struct pt_regs *regs) |
| 66 | { | 68 | { |
| 67 | return (regs->psr & PSR_SYSCALL); | 69 | return (regs->psr & PSR_SYSCALL); |
| @@ -72,6 +74,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs) | |||
| 72 | return (regs->psr &= ~PSR_SYSCALL); | 74 | return (regs->psr &= ~PSR_SYSCALL); |
| 73 | } | 75 | } |
| 74 | 76 | ||
| 77 | #define arch_ptrace_stop_needed(exit_code, info) \ | ||
| 78 | ({ flush_user_windows(); \ | ||
| 79 | current_thread_info()->w_saved != 0; \ | ||
| 80 | }) | ||
| 81 | |||
| 82 | #define arch_ptrace_stop(exit_code, info) \ | ||
| 83 | synchronize_user_stack() | ||
| 84 | |||
| 75 | #define user_mode(regs) (!((regs)->psr & PSR_PS)) | 85 | #define user_mode(regs) (!((regs)->psr & PSR_PS)) |
| 76 | #define instruction_pointer(regs) ((regs)->pc) | 86 | #define instruction_pointer(regs) ((regs)->pc) |
| 77 | #define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP]) | 87 | #define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP]) |
diff --git a/arch/sparc/include/asm/ptrace_64.h b/arch/sparc/include/asm/ptrace_64.h index 84e969f06afe..cd6fbfc20435 100644 --- a/arch/sparc/include/asm/ptrace_64.h +++ b/arch/sparc/include/asm/ptrace_64.h | |||
| @@ -114,6 +114,7 @@ struct sparc_trapf { | |||
| 114 | #ifdef __KERNEL__ | 114 | #ifdef __KERNEL__ |
| 115 | 115 | ||
| 116 | #include <linux/threads.h> | 116 | #include <linux/threads.h> |
| 117 | #include <asm/system.h> | ||
| 117 | 118 | ||
| 118 | static inline int pt_regs_trap_type(struct pt_regs *regs) | 119 | static inline int pt_regs_trap_type(struct pt_regs *regs) |
| 119 | { | 120 | { |
| @@ -130,6 +131,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs) | |||
| 130 | return (regs->tstate &= ~TSTATE_SYSCALL); | 131 | return (regs->tstate &= ~TSTATE_SYSCALL); |
| 131 | } | 132 | } |
| 132 | 133 | ||
| 134 | #define arch_ptrace_stop_needed(exit_code, info) \ | ||
| 135 | ({ flush_user_windows(); \ | ||
| 136 | get_thread_wsaved() != 0; \ | ||
| 137 | }) | ||
| 138 | |||
| 139 | #define arch_ptrace_stop(exit_code, info) \ | ||
| 140 | synchronize_user_stack() | ||
| 141 | |||
| 133 | struct global_reg_snapshot { | 142 | struct global_reg_snapshot { |
| 134 | unsigned long tstate; | 143 | unsigned long tstate; |
| 135 | unsigned long tpc; | 144 | unsigned long tpc; |
diff --git a/arch/x86/include/asm/ds.h b/arch/x86/include/asm/ds.h index ee0ea3a96c11..a8f672ba100c 100644 --- a/arch/x86/include/asm/ds.h +++ b/arch/x86/include/asm/ds.h | |||
| @@ -252,12 +252,21 @@ extern void __cpuinit ds_init_intel(struct cpuinfo_x86 *); | |||
| 252 | */ | 252 | */ |
| 253 | extern void ds_switch_to(struct task_struct *prev, struct task_struct *next); | 253 | extern void ds_switch_to(struct task_struct *prev, struct task_struct *next); |
| 254 | 254 | ||
| 255 | /* | ||
| 256 | * Task clone/init and cleanup work | ||
| 257 | */ | ||
| 258 | extern void ds_copy_thread(struct task_struct *tsk, struct task_struct *father); | ||
| 259 | extern void ds_exit_thread(struct task_struct *tsk); | ||
| 260 | |||
| 255 | #else /* CONFIG_X86_DS */ | 261 | #else /* CONFIG_X86_DS */ |
| 256 | 262 | ||
| 257 | struct cpuinfo_x86; | 263 | struct cpuinfo_x86; |
| 258 | static inline void __cpuinit ds_init_intel(struct cpuinfo_x86 *ignored) {} | 264 | static inline void __cpuinit ds_init_intel(struct cpuinfo_x86 *ignored) {} |
| 259 | static inline void ds_switch_to(struct task_struct *prev, | 265 | static inline void ds_switch_to(struct task_struct *prev, |
| 260 | struct task_struct *next) {} | 266 | struct task_struct *next) {} |
| 267 | static inline void ds_copy_thread(struct task_struct *tsk, | ||
| 268 | struct task_struct *father) {} | ||
| 269 | static inline void ds_exit_thread(struct task_struct *tsk) {} | ||
| 261 | 270 | ||
| 262 | #endif /* CONFIG_X86_DS */ | 271 | #endif /* CONFIG_X86_DS */ |
| 263 | #endif /* _ASM_X86_DS_H */ | 272 | #endif /* _ASM_X86_DS_H */ |
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h index c2a812ebde89..b8a1799ea871 100644 --- a/arch/x86/include/asm/msr.h +++ b/arch/x86/include/asm/msr.h | |||
| @@ -85,7 +85,8 @@ static inline void native_write_msr(unsigned int msr, | |||
| 85 | asm volatile("wrmsr" : : "c" (msr), "a"(low), "d" (high) : "memory"); | 85 | asm volatile("wrmsr" : : "c" (msr), "a"(low), "d" (high) : "memory"); |
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | static inline int native_write_msr_safe(unsigned int msr, | 88 | /* Can be uninlined because referenced by paravirt */ |
| 89 | notrace static inline int native_write_msr_safe(unsigned int msr, | ||
| 89 | unsigned low, unsigned high) | 90 | unsigned low, unsigned high) |
| 90 | { | 91 | { |
| 91 | int err; | 92 | int err; |
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h index fbf744215911..6d34d954c228 100644 --- a/arch/x86/include/asm/ptrace.h +++ b/arch/x86/include/asm/ptrace.h | |||
| @@ -235,6 +235,13 @@ extern int do_get_thread_area(struct task_struct *p, int idx, | |||
| 235 | extern int do_set_thread_area(struct task_struct *p, int idx, | 235 | extern int do_set_thread_area(struct task_struct *p, int idx, |
| 236 | struct user_desc __user *info, int can_allocate); | 236 | struct user_desc __user *info, int can_allocate); |
| 237 | 237 | ||
| 238 | extern void x86_ptrace_untrace(struct task_struct *); | ||
| 239 | extern void x86_ptrace_fork(struct task_struct *child, | ||
| 240 | unsigned long clone_flags); | ||
| 241 | |||
| 242 | #define arch_ptrace_untrace(tsk) x86_ptrace_untrace(tsk) | ||
| 243 | #define arch_ptrace_fork(child, flags) x86_ptrace_fork(child, flags) | ||
| 244 | |||
| 238 | #endif /* __KERNEL__ */ | 245 | #endif /* __KERNEL__ */ |
| 239 | 246 | ||
| 240 | #endif /* !__ASSEMBLY__ */ | 247 | #endif /* !__ASSEMBLY__ */ |
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index a7b6dec6fc3f..0a60d60ed036 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c | |||
| @@ -235,8 +235,9 @@ static int iommu_completion_wait(struct amd_iommu *iommu) | |||
| 235 | status &= ~MMIO_STATUS_COM_WAIT_INT_MASK; | 235 | status &= ~MMIO_STATUS_COM_WAIT_INT_MASK; |
| 236 | writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET); | 236 | writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET); |
| 237 | 237 | ||
| 238 | if (unlikely((i == EXIT_LOOP_COUNT) && printk_ratelimit())) | 238 | if (unlikely(i == EXIT_LOOP_COUNT)) |
| 239 | printk(KERN_WARNING "AMD IOMMU: Completion wait loop failed\n"); | 239 | panic("AMD IOMMU: Completion wait loop failed\n"); |
| 240 | |||
| 240 | out: | 241 | out: |
| 241 | spin_unlock_irqrestore(&iommu->lock, flags); | 242 | spin_unlock_irqrestore(&iommu->lock, flags); |
| 242 | 243 | ||
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 30ae2701b3df..c6cc22815d35 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
| @@ -427,6 +427,10 @@ static u8 * __init alloc_command_buffer(struct amd_iommu *iommu) | |||
| 427 | memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET, | 427 | memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET, |
| 428 | &entry, sizeof(entry)); | 428 | &entry, sizeof(entry)); |
| 429 | 429 | ||
| 430 | /* set head and tail to zero manually */ | ||
| 431 | writel(0x00, iommu->mmio_base + MMIO_CMD_HEAD_OFFSET); | ||
| 432 | writel(0x00, iommu->mmio_base + MMIO_CMD_TAIL_OFFSET); | ||
| 433 | |||
| 430 | iommu_feature_enable(iommu, CONTROL_CMDBUF_EN); | 434 | iommu_feature_enable(iommu, CONTROL_CMDBUF_EN); |
| 431 | 435 | ||
| 432 | return cmd_buf; | 436 | return cmd_buf; |
| @@ -1074,7 +1078,8 @@ int __init amd_iommu_init(void) | |||
| 1074 | goto free; | 1078 | goto free; |
| 1075 | 1079 | ||
| 1076 | /* IOMMU rlookup table - find the IOMMU for a specific device */ | 1080 | /* IOMMU rlookup table - find the IOMMU for a specific device */ |
| 1077 | amd_iommu_rlookup_table = (void *)__get_free_pages(GFP_KERNEL, | 1081 | amd_iommu_rlookup_table = (void *)__get_free_pages( |
| 1082 | GFP_KERNEL | __GFP_ZERO, | ||
| 1078 | get_order(rlookup_table_size)); | 1083 | get_order(rlookup_table_size)); |
| 1079 | if (amd_iommu_rlookup_table == NULL) | 1084 | if (amd_iommu_rlookup_table == NULL) |
| 1080 | goto free; | 1085 | goto free; |
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile index 82ec6075c057..4ae495a313f3 100644 --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile | |||
| @@ -2,6 +2,11 @@ | |||
| 2 | # Makefile for x86-compatible CPU details and quirks | 2 | # Makefile for x86-compatible CPU details and quirks |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | # Don't trace early stages of a secondary CPU boot | ||
| 6 | ifdef CONFIG_FUNCTION_TRACER | ||
| 7 | CFLAGS_REMOVE_common.o = -pg | ||
| 8 | endif | ||
| 9 | |||
| 5 | obj-y := intel_cacheinfo.o addon_cpuid_features.o | 10 | obj-y := intel_cacheinfo.o addon_cpuid_features.o |
| 6 | obj-y += proc.o capflags.o powerflags.o common.o | 11 | obj-y += proc.o capflags.o powerflags.o common.o |
| 7 | 12 | ||
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c index 4b031a4ac856..1c838032fd37 100644 --- a/arch/x86/kernel/cpu/mcheck/mce_64.c +++ b/arch/x86/kernel/cpu/mcheck/mce_64.c | |||
| @@ -510,12 +510,9 @@ static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c) | |||
| 510 | */ | 510 | */ |
| 511 | void __cpuinit mcheck_init(struct cpuinfo_x86 *c) | 511 | void __cpuinit mcheck_init(struct cpuinfo_x86 *c) |
| 512 | { | 512 | { |
| 513 | static cpumask_t mce_cpus = CPU_MASK_NONE; | ||
| 514 | |||
| 515 | mce_cpu_quirks(c); | 513 | mce_cpu_quirks(c); |
| 516 | 514 | ||
| 517 | if (mce_dont_init || | 515 | if (mce_dont_init || |
| 518 | cpu_test_and_set(smp_processor_id(), mce_cpus) || | ||
| 519 | !mce_available(c)) | 516 | !mce_available(c)) |
| 520 | return; | 517 | return; |
| 521 | 518 | ||
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c index 98d271e60e08..da91701a2348 100644 --- a/arch/x86/kernel/ds.c +++ b/arch/x86/kernel/ds.c | |||
| @@ -1017,3 +1017,14 @@ void ds_switch_to(struct task_struct *prev, struct task_struct *next) | |||
| 1017 | 1017 | ||
| 1018 | update_debugctlmsr(next->thread.debugctlmsr); | 1018 | update_debugctlmsr(next->thread.debugctlmsr); |
| 1019 | } | 1019 | } |
| 1020 | |||
| 1021 | void ds_copy_thread(struct task_struct *tsk, struct task_struct *father) | ||
| 1022 | { | ||
| 1023 | clear_tsk_thread_flag(tsk, TIF_DS_AREA_MSR); | ||
| 1024 | tsk->thread.ds_ctx = NULL; | ||
| 1025 | } | ||
| 1026 | |||
| 1027 | void ds_exit_thread(struct task_struct *tsk) | ||
| 1028 | { | ||
| 1029 | WARN_ON(tsk->thread.ds_ctx); | ||
| 1030 | } | ||
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c index 82fb2809ce32..c4b5b24e0217 100644 --- a/arch/x86/kernel/microcode_core.c +++ b/arch/x86/kernel/microcode_core.c | |||
| @@ -272,13 +272,18 @@ static struct attribute_group mc_attr_group = { | |||
| 272 | .name = "microcode", | 272 | .name = "microcode", |
| 273 | }; | 273 | }; |
| 274 | 274 | ||
| 275 | static void microcode_fini_cpu(int cpu) | 275 | static void __microcode_fini_cpu(int cpu) |
| 276 | { | 276 | { |
| 277 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 277 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
| 278 | 278 | ||
| 279 | mutex_lock(µcode_mutex); | ||
| 280 | microcode_ops->microcode_fini_cpu(cpu); | 279 | microcode_ops->microcode_fini_cpu(cpu); |
| 281 | uci->valid = 0; | 280 | uci->valid = 0; |
| 281 | } | ||
| 282 | |||
| 283 | static void microcode_fini_cpu(int cpu) | ||
| 284 | { | ||
| 285 | mutex_lock(µcode_mutex); | ||
| 286 | __microcode_fini_cpu(cpu); | ||
| 282 | mutex_unlock(µcode_mutex); | 287 | mutex_unlock(µcode_mutex); |
| 283 | } | 288 | } |
| 284 | 289 | ||
| @@ -306,12 +311,16 @@ static int microcode_resume_cpu(int cpu) | |||
| 306 | * to this cpu (a bit of paranoia): | 311 | * to this cpu (a bit of paranoia): |
| 307 | */ | 312 | */ |
| 308 | if (microcode_ops->collect_cpu_info(cpu, &nsig)) { | 313 | if (microcode_ops->collect_cpu_info(cpu, &nsig)) { |
| 309 | microcode_fini_cpu(cpu); | 314 | __microcode_fini_cpu(cpu); |
| 315 | printk(KERN_ERR "failed to collect_cpu_info for resuming cpu #%d\n", | ||
| 316 | cpu); | ||
| 310 | return -1; | 317 | return -1; |
| 311 | } | 318 | } |
| 312 | 319 | ||
| 313 | if (memcmp(&nsig, &uci->cpu_sig, sizeof(nsig))) { | 320 | if ((nsig.sig != uci->cpu_sig.sig) || (nsig.pf != uci->cpu_sig.pf)) { |
| 314 | microcode_fini_cpu(cpu); | 321 | __microcode_fini_cpu(cpu); |
| 322 | printk(KERN_ERR "cached ucode doesn't match the resuming cpu #%d\n", | ||
| 323 | cpu); | ||
| 315 | /* Should we look for a new ucode here? */ | 324 | /* Should we look for a new ucode here? */ |
| 316 | return 1; | 325 | return 1; |
| 317 | } | 326 | } |
diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c index 622dc4a21784..a8e62792d171 100644 --- a/arch/x86/kernel/microcode_intel.c +++ b/arch/x86/kernel/microcode_intel.c | |||
| @@ -155,6 +155,7 @@ static DEFINE_SPINLOCK(microcode_update_lock); | |||
| 155 | static int collect_cpu_info(int cpu_num, struct cpu_signature *csig) | 155 | static int collect_cpu_info(int cpu_num, struct cpu_signature *csig) |
| 156 | { | 156 | { |
| 157 | struct cpuinfo_x86 *c = &cpu_data(cpu_num); | 157 | struct cpuinfo_x86 *c = &cpu_data(cpu_num); |
| 158 | unsigned long flags; | ||
| 158 | unsigned int val[2]; | 159 | unsigned int val[2]; |
| 159 | 160 | ||
| 160 | memset(csig, 0, sizeof(*csig)); | 161 | memset(csig, 0, sizeof(*csig)); |
| @@ -174,11 +175,16 @@ static int collect_cpu_info(int cpu_num, struct cpu_signature *csig) | |||
| 174 | csig->pf = 1 << ((val[1] >> 18) & 7); | 175 | csig->pf = 1 << ((val[1] >> 18) & 7); |
| 175 | } | 176 | } |
| 176 | 177 | ||
| 178 | /* serialize access to the physical write to MSR 0x79 */ | ||
| 179 | spin_lock_irqsave(µcode_update_lock, flags); | ||
| 180 | |||
| 177 | wrmsr(MSR_IA32_UCODE_REV, 0, 0); | 181 | wrmsr(MSR_IA32_UCODE_REV, 0, 0); |
| 178 | /* see notes above for revision 1.07. Apparent chip bug */ | 182 | /* see notes above for revision 1.07. Apparent chip bug */ |
| 179 | sync_core(); | 183 | sync_core(); |
| 180 | /* get the current revision from MSR 0x8B */ | 184 | /* get the current revision from MSR 0x8B */ |
| 181 | rdmsr(MSR_IA32_UCODE_REV, val[0], csig->rev); | 185 | rdmsr(MSR_IA32_UCODE_REV, val[0], csig->rev); |
| 186 | spin_unlock_irqrestore(µcode_update_lock, flags); | ||
| 187 | |||
| 182 | pr_debug("microcode: collect_cpu_info : sig=0x%x, pf=0x%x, rev=0x%x\n", | 188 | pr_debug("microcode: collect_cpu_info : sig=0x%x, pf=0x%x, rev=0x%x\n", |
| 183 | csig->sig, csig->pf, csig->rev); | 189 | csig->sig, csig->pf, csig->rev); |
| 184 | 190 | ||
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c index ba7ad83e20a8..a35eaa379ff6 100644 --- a/arch/x86/kernel/pci-gart_64.c +++ b/arch/x86/kernel/pci-gart_64.c | |||
| @@ -745,10 +745,8 @@ void __init gart_iommu_init(void) | |||
| 745 | unsigned long scratch; | 745 | unsigned long scratch; |
| 746 | long i; | 746 | long i; |
| 747 | 747 | ||
| 748 | if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0) { | 748 | if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0) |
| 749 | printk(KERN_INFO "PCI-GART: No AMD GART found.\n"); | ||
| 750 | return; | 749 | return; |
| 751 | } | ||
| 752 | 750 | ||
| 753 | #ifndef CONFIG_AGP_AMD64 | 751 | #ifndef CONFIG_AGP_AMD64 |
| 754 | no_agp = 1; | 752 | no_agp = 1; |
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index 605eff9a8ac0..3ba155d24884 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | #include <asm/idle.h> | 60 | #include <asm/idle.h> |
| 61 | #include <asm/syscalls.h> | 61 | #include <asm/syscalls.h> |
| 62 | #include <asm/smp.h> | 62 | #include <asm/smp.h> |
| 63 | #include <asm/ds.h> | ||
| 63 | 64 | ||
| 64 | asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); | 65 | asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); |
| 65 | 66 | ||
| @@ -251,17 +252,8 @@ void exit_thread(void) | |||
| 251 | tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET; | 252 | tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET; |
| 252 | put_cpu(); | 253 | put_cpu(); |
| 253 | } | 254 | } |
| 254 | #ifdef CONFIG_X86_DS | 255 | |
| 255 | /* Free any BTS tracers that have not been properly released. */ | 256 | ds_exit_thread(current); |
| 256 | if (unlikely(current->bts)) { | ||
| 257 | ds_release_bts(current->bts); | ||
| 258 | current->bts = NULL; | ||
| 259 | |||
| 260 | kfree(current->bts_buffer); | ||
| 261 | current->bts_buffer = NULL; | ||
| 262 | current->bts_size = 0; | ||
| 263 | } | ||
| 264 | #endif /* CONFIG_X86_DS */ | ||
| 265 | } | 257 | } |
| 266 | 258 | ||
| 267 | void flush_thread(void) | 259 | void flush_thread(void) |
| @@ -343,6 +335,12 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp, | |||
| 343 | kfree(p->thread.io_bitmap_ptr); | 335 | kfree(p->thread.io_bitmap_ptr); |
| 344 | p->thread.io_bitmap_max = 0; | 336 | p->thread.io_bitmap_max = 0; |
| 345 | } | 337 | } |
| 338 | |||
| 339 | ds_copy_thread(p, current); | ||
| 340 | |||
| 341 | clear_tsk_thread_flag(p, TIF_DEBUGCTLMSR); | ||
| 342 | p->thread.debugctlmsr = 0; | ||
| 343 | |||
| 346 | return err; | 344 | return err; |
| 347 | } | 345 | } |
| 348 | 346 | ||
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 1cfd2a4bf853..416fb9282f4f 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
| @@ -53,6 +53,7 @@ | |||
| 53 | #include <asm/ia32.h> | 53 | #include <asm/ia32.h> |
| 54 | #include <asm/idle.h> | 54 | #include <asm/idle.h> |
| 55 | #include <asm/syscalls.h> | 55 | #include <asm/syscalls.h> |
| 56 | #include <asm/ds.h> | ||
| 56 | 57 | ||
| 57 | asmlinkage extern void ret_from_fork(void); | 58 | asmlinkage extern void ret_from_fork(void); |
| 58 | 59 | ||
| @@ -236,17 +237,8 @@ void exit_thread(void) | |||
| 236 | t->io_bitmap_max = 0; | 237 | t->io_bitmap_max = 0; |
| 237 | put_cpu(); | 238 | put_cpu(); |
| 238 | } | 239 | } |
| 239 | #ifdef CONFIG_X86_DS | 240 | |
| 240 | /* Free any BTS tracers that have not been properly released. */ | 241 | ds_exit_thread(current); |
| 241 | if (unlikely(current->bts)) { | ||
| 242 | ds_release_bts(current->bts); | ||
| 243 | current->bts = NULL; | ||
| 244 | |||
| 245 | kfree(current->bts_buffer); | ||
| 246 | current->bts_buffer = NULL; | ||
| 247 | current->bts_size = 0; | ||
| 248 | } | ||
| 249 | #endif /* CONFIG_X86_DS */ | ||
| 250 | } | 242 | } |
| 251 | 243 | ||
| 252 | void flush_thread(void) | 244 | void flush_thread(void) |
| @@ -376,6 +368,12 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp, | |||
| 376 | if (err) | 368 | if (err) |
| 377 | goto out; | 369 | goto out; |
| 378 | } | 370 | } |
| 371 | |||
| 372 | ds_copy_thread(p, me); | ||
| 373 | |||
| 374 | clear_tsk_thread_flag(p, TIF_DEBUGCTLMSR); | ||
| 375 | p->thread.debugctlmsr = 0; | ||
| 376 | |||
| 379 | err = 0; | 377 | err = 0; |
| 380 | out: | 378 | out: |
| 381 | if (err && p->thread.io_bitmap_ptr) { | 379 | if (err && p->thread.io_bitmap_ptr) { |
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index 45e9855da2d2..0a5df5f82fb9 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c | |||
| @@ -650,6 +650,24 @@ static int ptrace_bts_drain(struct task_struct *child, | |||
| 650 | return drained; | 650 | return drained; |
| 651 | } | 651 | } |
| 652 | 652 | ||
| 653 | static int ptrace_bts_allocate_buffer(struct task_struct *child, size_t size) | ||
| 654 | { | ||
| 655 | child->bts_buffer = alloc_locked_buffer(size); | ||
| 656 | if (!child->bts_buffer) | ||
| 657 | return -ENOMEM; | ||
| 658 | |||
| 659 | child->bts_size = size; | ||
| 660 | |||
| 661 | return 0; | ||
| 662 | } | ||
| 663 | |||
| 664 | static void ptrace_bts_free_buffer(struct task_struct *child) | ||
| 665 | { | ||
| 666 | free_locked_buffer(child->bts_buffer, child->bts_size); | ||
| 667 | child->bts_buffer = NULL; | ||
| 668 | child->bts_size = 0; | ||
| 669 | } | ||
| 670 | |||
| 653 | static int ptrace_bts_config(struct task_struct *child, | 671 | static int ptrace_bts_config(struct task_struct *child, |
| 654 | long cfg_size, | 672 | long cfg_size, |
| 655 | const struct ptrace_bts_config __user *ucfg) | 673 | const struct ptrace_bts_config __user *ucfg) |
| @@ -679,14 +697,13 @@ static int ptrace_bts_config(struct task_struct *child, | |||
| 679 | 697 | ||
| 680 | if ((cfg.flags & PTRACE_BTS_O_ALLOC) && | 698 | if ((cfg.flags & PTRACE_BTS_O_ALLOC) && |
| 681 | (cfg.size != child->bts_size)) { | 699 | (cfg.size != child->bts_size)) { |
| 682 | kfree(child->bts_buffer); | 700 | int error; |
| 683 | 701 | ||
| 684 | child->bts_size = cfg.size; | 702 | ptrace_bts_free_buffer(child); |
| 685 | child->bts_buffer = kzalloc(cfg.size, GFP_KERNEL); | 703 | |
| 686 | if (!child->bts_buffer) { | 704 | error = ptrace_bts_allocate_buffer(child, cfg.size); |
| 687 | child->bts_size = 0; | 705 | if (error < 0) |
| 688 | return -ENOMEM; | 706 | return error; |
| 689 | } | ||
| 690 | } | 707 | } |
| 691 | 708 | ||
| 692 | if (cfg.flags & PTRACE_BTS_O_TRACE) | 709 | if (cfg.flags & PTRACE_BTS_O_TRACE) |
| @@ -701,10 +718,8 @@ static int ptrace_bts_config(struct task_struct *child, | |||
| 701 | if (IS_ERR(child->bts)) { | 718 | if (IS_ERR(child->bts)) { |
| 702 | int error = PTR_ERR(child->bts); | 719 | int error = PTR_ERR(child->bts); |
| 703 | 720 | ||
| 704 | kfree(child->bts_buffer); | 721 | ptrace_bts_free_buffer(child); |
| 705 | child->bts = NULL; | 722 | child->bts = NULL; |
| 706 | child->bts_buffer = NULL; | ||
| 707 | child->bts_size = 0; | ||
| 708 | 723 | ||
| 709 | return error; | 724 | return error; |
| 710 | } | 725 | } |
| @@ -769,8 +784,55 @@ static int ptrace_bts_size(struct task_struct *child) | |||
| 769 | 784 | ||
| 770 | return (trace->ds.top - trace->ds.begin) / trace->ds.size; | 785 | return (trace->ds.top - trace->ds.begin) / trace->ds.size; |
| 771 | } | 786 | } |
| 787 | |||
| 788 | static void ptrace_bts_fork(struct task_struct *tsk) | ||
| 789 | { | ||
| 790 | tsk->bts = NULL; | ||
| 791 | tsk->bts_buffer = NULL; | ||
| 792 | tsk->bts_size = 0; | ||
| 793 | tsk->thread.bts_ovfl_signal = 0; | ||
| 794 | } | ||
| 795 | |||
| 796 | static void ptrace_bts_untrace(struct task_struct *child) | ||
| 797 | { | ||
| 798 | if (unlikely(child->bts)) { | ||
| 799 | ds_release_bts(child->bts); | ||
| 800 | child->bts = NULL; | ||
| 801 | |||
| 802 | /* We cannot update total_vm and locked_vm since | ||
| 803 | child's mm is already gone. But we can reclaim the | ||
| 804 | memory. */ | ||
| 805 | kfree(child->bts_buffer); | ||
| 806 | child->bts_buffer = NULL; | ||
| 807 | child->bts_size = 0; | ||
| 808 | } | ||
| 809 | } | ||
| 810 | |||
| 811 | static void ptrace_bts_detach(struct task_struct *child) | ||
| 812 | { | ||
| 813 | if (unlikely(child->bts)) { | ||
| 814 | ds_release_bts(child->bts); | ||
| 815 | child->bts = NULL; | ||
| 816 | |||
| 817 | ptrace_bts_free_buffer(child); | ||
| 818 | } | ||
| 819 | } | ||
| 820 | #else | ||
| 821 | static inline void ptrace_bts_fork(struct task_struct *tsk) {} | ||
| 822 | static inline void ptrace_bts_detach(struct task_struct *child) {} | ||
| 823 | static inline void ptrace_bts_untrace(struct task_struct *child) {} | ||
| 772 | #endif /* CONFIG_X86_PTRACE_BTS */ | 824 | #endif /* CONFIG_X86_PTRACE_BTS */ |
| 773 | 825 | ||
| 826 | void x86_ptrace_fork(struct task_struct *child, unsigned long clone_flags) | ||
| 827 | { | ||
| 828 | ptrace_bts_fork(child); | ||
| 829 | } | ||
| 830 | |||
| 831 | void x86_ptrace_untrace(struct task_struct *child) | ||
| 832 | { | ||
| 833 | ptrace_bts_untrace(child); | ||
| 834 | } | ||
| 835 | |||
| 774 | /* | 836 | /* |
| 775 | * Called by kernel/ptrace.c when detaching.. | 837 | * Called by kernel/ptrace.c when detaching.. |
| 776 | * | 838 | * |
| @@ -782,16 +844,7 @@ void ptrace_disable(struct task_struct *child) | |||
| 782 | #ifdef TIF_SYSCALL_EMU | 844 | #ifdef TIF_SYSCALL_EMU |
| 783 | clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); | 845 | clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); |
| 784 | #endif | 846 | #endif |
| 785 | #ifdef CONFIG_X86_PTRACE_BTS | 847 | ptrace_bts_detach(child); |
| 786 | if (child->bts) { | ||
| 787 | ds_release_bts(child->bts); | ||
| 788 | child->bts = NULL; | ||
| 789 | |||
| 790 | kfree(child->bts_buffer); | ||
| 791 | child->bts_buffer = NULL; | ||
| 792 | child->bts_size = 0; | ||
| 793 | } | ||
| 794 | #endif /* CONFIG_X86_PTRACE_BTS */ | ||
| 795 | } | 848 | } |
| 796 | 849 | ||
| 797 | #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION | 850 | #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index f71f96fc9e62..f6174d229024 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
| @@ -287,7 +287,7 @@ static int __cpuinitdata unsafe_smp; | |||
| 287 | /* | 287 | /* |
| 288 | * Activate a secondary processor. | 288 | * Activate a secondary processor. |
| 289 | */ | 289 | */ |
| 290 | static void __cpuinit start_secondary(void *unused) | 290 | notrace static void __cpuinit start_secondary(void *unused) |
| 291 | { | 291 | { |
| 292 | /* | 292 | /* |
| 293 | * Don't put *anything* before cpu_init(), SMP booting is too | 293 | * Don't put *anything* before cpu_init(), SMP booting is too |
