diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/configs/pasemi_defconfig | 142 | ||||
-rw-r--r-- | arch/powerpc/kernel/process.c | 10 | ||||
-rw-r--r-- | arch/powerpc/oprofile/cell/vma_map.c | 37 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 2 | ||||
-rw-r--r-- | arch/x86/lguest/boot.c | 108 | ||||
-rw-r--r-- | arch/x86/lguest/i386_head.S | 15 | ||||
-rw-r--r-- | arch/x86/mm/highmem_32.c | 6 |
7 files changed, 186 insertions, 134 deletions
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig index 797f0dfebde2..09f306248f2e 100644 --- a/arch/powerpc/configs/pasemi_defconfig +++ b/arch/powerpc/configs/pasemi_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.24-rc6 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Tue Jan 15 10:26:10 2008 | 4 | # Tue Mar 25 10:25:48 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 27 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 28 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 29 | CONFIG_GENERIC_HARDIRQS=y |
30 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
30 | CONFIG_IRQ_PER_CPU=y | 31 | CONFIG_IRQ_PER_CPU=y |
31 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
32 | CONFIG_ARCH_HAS_ILOG2_U32=y | 33 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
67 | # CONFIG_POSIX_MQUEUE is not set | 68 | # CONFIG_POSIX_MQUEUE is not set |
68 | # CONFIG_BSD_PROCESS_ACCT is not set | 69 | # CONFIG_BSD_PROCESS_ACCT is not set |
69 | # CONFIG_TASKSTATS is not set | 70 | # CONFIG_TASKSTATS is not set |
70 | # CONFIG_USER_NS is not set | ||
71 | # CONFIG_PID_NS is not set | ||
72 | # CONFIG_AUDIT is not set | 71 | # CONFIG_AUDIT is not set |
73 | # CONFIG_IKCONFIG is not set | 72 | # CONFIG_IKCONFIG is not set |
74 | CONFIG_LOG_BUF_SHIFT=17 | 73 | CONFIG_LOG_BUF_SHIFT=17 |
75 | # CONFIG_CGROUPS is not set | 74 | # CONFIG_CGROUPS is not set |
76 | CONFIG_FAIR_GROUP_SCHED=y | 75 | # CONFIG_GROUP_SCHED is not set |
77 | CONFIG_FAIR_USER_SCHED=y | ||
78 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
79 | CONFIG_SYSFS_DEPRECATED=y | 76 | CONFIG_SYSFS_DEPRECATED=y |
77 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
80 | # CONFIG_RELAY is not set | 78 | # CONFIG_RELAY is not set |
79 | CONFIG_NAMESPACES=y | ||
80 | # CONFIG_UTS_NS is not set | ||
81 | # CONFIG_IPC_NS is not set | ||
82 | # CONFIG_USER_NS is not set | ||
83 | # CONFIG_PID_NS is not set | ||
81 | CONFIG_BLK_DEV_INITRD=y | 84 | CONFIG_BLK_DEV_INITRD=y |
82 | CONFIG_INITRAMFS_SOURCE="" | 85 | CONFIG_INITRAMFS_SOURCE="" |
83 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 86 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
@@ -91,11 +94,13 @@ CONFIG_HOTPLUG=y | |||
91 | CONFIG_PRINTK=y | 94 | CONFIG_PRINTK=y |
92 | CONFIG_BUG=y | 95 | CONFIG_BUG=y |
93 | CONFIG_ELF_CORE=y | 96 | CONFIG_ELF_CORE=y |
97 | CONFIG_COMPAT_BRK=y | ||
94 | CONFIG_BASE_FULL=y | 98 | CONFIG_BASE_FULL=y |
95 | CONFIG_FUTEX=y | 99 | CONFIG_FUTEX=y |
96 | CONFIG_ANON_INODES=y | 100 | CONFIG_ANON_INODES=y |
97 | CONFIG_EPOLL=y | 101 | CONFIG_EPOLL=y |
98 | CONFIG_SIGNALFD=y | 102 | CONFIG_SIGNALFD=y |
103 | CONFIG_TIMERFD=y | ||
99 | CONFIG_EVENTFD=y | 104 | CONFIG_EVENTFD=y |
100 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
101 | CONFIG_VM_EVENT_COUNTERS=y | 106 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -103,6 +108,15 @@ CONFIG_SLUB_DEBUG=y | |||
103 | # CONFIG_SLAB is not set | 108 | # CONFIG_SLAB is not set |
104 | CONFIG_SLUB=y | 109 | CONFIG_SLUB=y |
105 | # CONFIG_SLOB is not set | 110 | # CONFIG_SLOB is not set |
111 | CONFIG_PROFILING=y | ||
112 | # CONFIG_MARKERS is not set | ||
113 | CONFIG_OPROFILE=y | ||
114 | CONFIG_HAVE_OPROFILE=y | ||
115 | # CONFIG_KPROBES is not set | ||
116 | CONFIG_HAVE_KPROBES=y | ||
117 | CONFIG_HAVE_KRETPROBES=y | ||
118 | CONFIG_PROC_PAGE_MONITOR=y | ||
119 | CONFIG_SLABINFO=y | ||
106 | CONFIG_RT_MUTEXES=y | 120 | CONFIG_RT_MUTEXES=y |
107 | # CONFIG_TINY_SHMEM is not set | 121 | # CONFIG_TINY_SHMEM is not set |
108 | CONFIG_BASE_SMALL=0 | 122 | CONFIG_BASE_SMALL=0 |
@@ -130,6 +144,7 @@ CONFIG_DEFAULT_AS=y | |||
130 | # CONFIG_DEFAULT_CFQ is not set | 144 | # CONFIG_DEFAULT_CFQ is not set |
131 | # CONFIG_DEFAULT_NOOP is not set | 145 | # CONFIG_DEFAULT_NOOP is not set |
132 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 146 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
147 | CONFIG_CLASSIC_RCU=y | ||
133 | 148 | ||
134 | # | 149 | # |
135 | # Platform support | 150 | # Platform support |
@@ -140,8 +155,8 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
140 | # CONFIG_PPC_86xx is not set | 155 | # CONFIG_PPC_86xx is not set |
141 | # CONFIG_PPC_PSERIES is not set | 156 | # CONFIG_PPC_PSERIES is not set |
142 | # CONFIG_PPC_ISERIES is not set | 157 | # CONFIG_PPC_ISERIES is not set |
143 | # CONFIG_PPC_MPC52xx is not set | 158 | # CONFIG_PPC_MPC512x is not set |
144 | # CONFIG_PPC_MPC5200 is not set | 159 | # CONFIG_PPC_MPC5121 is not set |
145 | # CONFIG_PPC_PMAC is not set | 160 | # CONFIG_PPC_PMAC is not set |
146 | # CONFIG_PPC_MAPLE is not set | 161 | # CONFIG_PPC_MAPLE is not set |
147 | CONFIG_PPC_PASEMI=y | 162 | CONFIG_PPC_PASEMI=y |
@@ -159,6 +174,7 @@ CONFIG_PPC_PASEMI_MDIO=y | |||
159 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 174 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
160 | # CONFIG_PQ2ADS is not set | 175 | # CONFIG_PQ2ADS is not set |
161 | CONFIG_PPC_NATIVE=y | 176 | CONFIG_PPC_NATIVE=y |
177 | # CONFIG_IPIC is not set | ||
162 | CONFIG_MPIC=y | 178 | CONFIG_MPIC=y |
163 | # CONFIG_MPIC_WEIRD is not set | 179 | # CONFIG_MPIC_WEIRD is not set |
164 | # CONFIG_PPC_I8259 is not set | 180 | # CONFIG_PPC_I8259 is not set |
@@ -189,7 +205,6 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y | |||
189 | # CPU Frequency drivers | 205 | # CPU Frequency drivers |
190 | # | 206 | # |
191 | CONFIG_PPC_PASEMI_CPUFREQ=y | 207 | CONFIG_PPC_PASEMI_CPUFREQ=y |
192 | # CONFIG_CPM2 is not set | ||
193 | # CONFIG_FSL_ULI1575 is not set | 208 | # CONFIG_FSL_ULI1575 is not set |
194 | 209 | ||
195 | # | 210 | # |
@@ -204,16 +219,20 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
204 | # CONFIG_HZ_300 is not set | 219 | # CONFIG_HZ_300 is not set |
205 | CONFIG_HZ_1000=y | 220 | CONFIG_HZ_1000=y |
206 | CONFIG_HZ=1000 | 221 | CONFIG_HZ=1000 |
222 | # CONFIG_SCHED_HRTICK is not set | ||
207 | CONFIG_PREEMPT_NONE=y | 223 | CONFIG_PREEMPT_NONE=y |
208 | # CONFIG_PREEMPT_VOLUNTARY is not set | 224 | # CONFIG_PREEMPT_VOLUNTARY is not set |
209 | # CONFIG_PREEMPT is not set | 225 | # CONFIG_PREEMPT is not set |
210 | # CONFIG_PREEMPT_BKL is not set | ||
211 | CONFIG_BINFMT_ELF=y | 226 | CONFIG_BINFMT_ELF=y |
227 | CONFIG_COMPAT_BINFMT_ELF=y | ||
212 | # CONFIG_BINFMT_MISC is not set | 228 | # CONFIG_BINFMT_MISC is not set |
213 | CONFIG_FORCE_MAX_ZONEORDER=9 | 229 | CONFIG_FORCE_MAX_ZONEORDER=9 |
214 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 230 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
215 | CONFIG_IOMMU_VMERGE=y | 231 | CONFIG_IOMMU_VMERGE=y |
232 | CONFIG_IOMMU_HELPER=y | ||
216 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 233 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
234 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
235 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
217 | # CONFIG_KEXEC is not set | 236 | # CONFIG_KEXEC is not set |
218 | # CONFIG_CRASH_DUMP is not set | 237 | # CONFIG_CRASH_DUMP is not set |
219 | # CONFIG_IRQ_ALL_CPUS is not set | 238 | # CONFIG_IRQ_ALL_CPUS is not set |
@@ -236,12 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1 | |||
236 | CONFIG_BOUNCE=y | 255 | CONFIG_BOUNCE=y |
237 | CONFIG_PPC_HAS_HASH_64K=y | 256 | CONFIG_PPC_HAS_HASH_64K=y |
238 | CONFIG_PPC_64K_PAGES=y | 257 | CONFIG_PPC_64K_PAGES=y |
258 | # CONFIG_PPC_SUBPAGE_PROT is not set | ||
239 | # CONFIG_SCHED_SMT is not set | 259 | # CONFIG_SCHED_SMT is not set |
240 | CONFIG_PROC_DEVICETREE=y | 260 | CONFIG_PROC_DEVICETREE=y |
241 | # CONFIG_CMDLINE_BOOL is not set | 261 | # CONFIG_CMDLINE_BOOL is not set |
242 | # CONFIG_PM is not set | 262 | # CONFIG_PM is not set |
243 | # CONFIG_SECCOMP is not set | 263 | # CONFIG_SECCOMP is not set |
244 | # CONFIG_WANT_DEVICE_TREE is not set | ||
245 | CONFIG_ISA_DMA_API=y | 264 | CONFIG_ISA_DMA_API=y |
246 | 265 | ||
247 | # | 266 | # |
@@ -290,6 +309,7 @@ CONFIG_XFRM=y | |||
290 | CONFIG_XFRM_USER=y | 309 | CONFIG_XFRM_USER=y |
291 | # CONFIG_XFRM_SUB_POLICY is not set | 310 | # CONFIG_XFRM_SUB_POLICY is not set |
292 | # CONFIG_XFRM_MIGRATE is not set | 311 | # CONFIG_XFRM_MIGRATE is not set |
312 | # CONFIG_XFRM_STATISTICS is not set | ||
293 | CONFIG_NET_KEY=y | 313 | CONFIG_NET_KEY=y |
294 | # CONFIG_NET_KEY_MIGRATE is not set | 314 | # CONFIG_NET_KEY_MIGRATE is not set |
295 | CONFIG_INET=y | 315 | CONFIG_INET=y |
@@ -346,6 +366,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
346 | # | 366 | # |
347 | # CONFIG_NET_PKTGEN is not set | 367 | # CONFIG_NET_PKTGEN is not set |
348 | # CONFIG_HAMRADIO is not set | 368 | # CONFIG_HAMRADIO is not set |
369 | # CONFIG_CAN is not set | ||
349 | # CONFIG_IRDA is not set | 370 | # CONFIG_IRDA is not set |
350 | # CONFIG_BT is not set | 371 | # CONFIG_BT is not set |
351 | # CONFIG_AF_RXRPC is not set | 372 | # CONFIG_AF_RXRPC is not set |
@@ -441,8 +462,10 @@ CONFIG_MTD_NAND=y | |||
441 | CONFIG_MTD_NAND_IDS=y | 462 | CONFIG_MTD_NAND_IDS=y |
442 | # CONFIG_MTD_NAND_DISKONCHIP is not set | 463 | # CONFIG_MTD_NAND_DISKONCHIP is not set |
443 | # CONFIG_MTD_NAND_CAFE is not set | 464 | # CONFIG_MTD_NAND_CAFE is not set |
465 | CONFIG_MTD_NAND_PASEMI=y | ||
444 | # CONFIG_MTD_NAND_PLATFORM is not set | 466 | # CONFIG_MTD_NAND_PLATFORM is not set |
445 | # CONFIG_MTD_ALAUDA is not set | 467 | # CONFIG_MTD_ALAUDA is not set |
468 | # CONFIG_MTD_NAND_FSL_ELBC is not set | ||
446 | # CONFIG_MTD_ONENAND is not set | 469 | # CONFIG_MTD_ONENAND is not set |
447 | 470 | ||
448 | # | 471 | # |
@@ -465,7 +488,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
465 | CONFIG_BLK_DEV_RAM=y | 488 | CONFIG_BLK_DEV_RAM=y |
466 | CONFIG_BLK_DEV_RAM_COUNT=16 | 489 | CONFIG_BLK_DEV_RAM_COUNT=16 |
467 | CONFIG_BLK_DEV_RAM_SIZE=16384 | 490 | CONFIG_BLK_DEV_RAM_SIZE=16384 |
468 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 491 | # CONFIG_BLK_DEV_XIP is not set |
469 | # CONFIG_CDROM_PKTCDVD is not set | 492 | # CONFIG_CDROM_PKTCDVD is not set |
470 | # CONFIG_ATA_OVER_ETH is not set | 493 | # CONFIG_ATA_OVER_ETH is not set |
471 | CONFIG_MISC_DEVICES=y | 494 | CONFIG_MISC_DEVICES=y |
@@ -473,11 +496,13 @@ CONFIG_MISC_DEVICES=y | |||
473 | # CONFIG_EEPROM_93CX6 is not set | 496 | # CONFIG_EEPROM_93CX6 is not set |
474 | # CONFIG_SGI_IOC4 is not set | 497 | # CONFIG_SGI_IOC4 is not set |
475 | # CONFIG_TIFM_CORE is not set | 498 | # CONFIG_TIFM_CORE is not set |
499 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
500 | CONFIG_HAVE_IDE=y | ||
476 | CONFIG_IDE=y | 501 | CONFIG_IDE=y |
477 | CONFIG_BLK_DEV_IDE=y | 502 | CONFIG_BLK_DEV_IDE=y |
478 | 503 | ||
479 | # | 504 | # |
480 | # Please see Documentation/ide.txt for help/info on IDE drives | 505 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
481 | # | 506 | # |
482 | # CONFIG_BLK_DEV_IDE_SATA is not set | 507 | # CONFIG_BLK_DEV_IDE_SATA is not set |
483 | CONFIG_BLK_DEV_IDEDISK=y | 508 | CONFIG_BLK_DEV_IDEDISK=y |
@@ -485,6 +510,7 @@ CONFIG_IDEDISK_MULTI_MODE=y | |||
485 | # CONFIG_BLK_DEV_IDECS is not set | 510 | # CONFIG_BLK_DEV_IDECS is not set |
486 | # CONFIG_BLK_DEV_DELKIN is not set | 511 | # CONFIG_BLK_DEV_DELKIN is not set |
487 | CONFIG_BLK_DEV_IDECD=y | 512 | CONFIG_BLK_DEV_IDECD=y |
513 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
488 | # CONFIG_BLK_DEV_IDETAPE is not set | 514 | # CONFIG_BLK_DEV_IDETAPE is not set |
489 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 515 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
490 | CONFIG_BLK_DEV_IDESCSI=y | 516 | CONFIG_BLK_DEV_IDESCSI=y |
@@ -500,7 +526,6 @@ CONFIG_IDE_PROC_FS=y | |||
500 | # | 526 | # |
501 | # PCI IDE chipsets support | 527 | # PCI IDE chipsets support |
502 | # | 528 | # |
503 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
504 | # CONFIG_BLK_DEV_GENERIC is not set | 529 | # CONFIG_BLK_DEV_GENERIC is not set |
505 | # CONFIG_BLK_DEV_OPTI621 is not set | 530 | # CONFIG_BLK_DEV_OPTI621 is not set |
506 | # CONFIG_BLK_DEV_AEC62XX is not set | 531 | # CONFIG_BLK_DEV_AEC62XX is not set |
@@ -528,7 +553,6 @@ CONFIG_IDE_PROC_FS=y | |||
528 | # CONFIG_BLK_DEV_TRM290 is not set | 553 | # CONFIG_BLK_DEV_TRM290 is not set |
529 | # CONFIG_BLK_DEV_VIA82CXXX is not set | 554 | # CONFIG_BLK_DEV_VIA82CXXX is not set |
530 | # CONFIG_BLK_DEV_TC86C001 is not set | 555 | # CONFIG_BLK_DEV_TC86C001 is not set |
531 | # CONFIG_IDE_ARM is not set | ||
532 | # CONFIG_BLK_DEV_IDEDMA is not set | 556 | # CONFIG_BLK_DEV_IDEDMA is not set |
533 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 557 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
534 | # CONFIG_BLK_DEV_HD is not set | 558 | # CONFIG_BLK_DEV_HD is not set |
@@ -593,6 +617,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
593 | # CONFIG_SCSI_IPS is not set | 617 | # CONFIG_SCSI_IPS is not set |
594 | # CONFIG_SCSI_INITIO is not set | 618 | # CONFIG_SCSI_INITIO is not set |
595 | # CONFIG_SCSI_INIA100 is not set | 619 | # CONFIG_SCSI_INIA100 is not set |
620 | # CONFIG_SCSI_MVSAS is not set | ||
596 | # CONFIG_SCSI_STEX is not set | 621 | # CONFIG_SCSI_STEX is not set |
597 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 622 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
598 | # CONFIG_SCSI_IPR is not set | 623 | # CONFIG_SCSI_IPR is not set |
@@ -646,6 +671,7 @@ CONFIG_ATA_GENERIC=y | |||
646 | # CONFIG_PATA_MPIIX is not set | 671 | # CONFIG_PATA_MPIIX is not set |
647 | # CONFIG_PATA_OLDPIIX is not set | 672 | # CONFIG_PATA_OLDPIIX is not set |
648 | # CONFIG_PATA_NETCELL is not set | 673 | # CONFIG_PATA_NETCELL is not set |
674 | # CONFIG_PATA_NINJA32 is not set | ||
649 | # CONFIG_PATA_NS87410 is not set | 675 | # CONFIG_PATA_NS87410 is not set |
650 | # CONFIG_PATA_NS87415 is not set | 676 | # CONFIG_PATA_NS87415 is not set |
651 | # CONFIG_PATA_OPTI is not set | 677 | # CONFIG_PATA_OPTI is not set |
@@ -699,7 +725,6 @@ CONFIG_DUMMY=y | |||
699 | # CONFIG_EQUALIZER is not set | 725 | # CONFIG_EQUALIZER is not set |
700 | # CONFIG_TUN is not set | 726 | # CONFIG_TUN is not set |
701 | # CONFIG_VETH is not set | 727 | # CONFIG_VETH is not set |
702 | # CONFIG_IP1000 is not set | ||
703 | # CONFIG_ARCNET is not set | 728 | # CONFIG_ARCNET is not set |
704 | CONFIG_PHYLIB=y | 729 | CONFIG_PHYLIB=y |
705 | 730 | ||
@@ -715,6 +740,7 @@ CONFIG_MARVELL_PHY=y | |||
715 | # CONFIG_SMSC_PHY is not set | 740 | # CONFIG_SMSC_PHY is not set |
716 | # CONFIG_BROADCOM_PHY is not set | 741 | # CONFIG_BROADCOM_PHY is not set |
717 | # CONFIG_ICPLUS_PHY is not set | 742 | # CONFIG_ICPLUS_PHY is not set |
743 | # CONFIG_REALTEK_PHY is not set | ||
718 | # CONFIG_FIXED_PHY is not set | 744 | # CONFIG_FIXED_PHY is not set |
719 | # CONFIG_MDIO_BITBANG is not set | 745 | # CONFIG_MDIO_BITBANG is not set |
720 | CONFIG_NET_ETHERNET=y | 746 | CONFIG_NET_ETHERNET=y |
@@ -742,6 +768,7 @@ CONFIG_NET_PCI=y | |||
742 | # CONFIG_NE2K_PCI is not set | 768 | # CONFIG_NE2K_PCI is not set |
743 | # CONFIG_8139CP is not set | 769 | # CONFIG_8139CP is not set |
744 | # CONFIG_8139TOO is not set | 770 | # CONFIG_8139TOO is not set |
771 | # CONFIG_R6040 is not set | ||
745 | # CONFIG_SIS900 is not set | 772 | # CONFIG_SIS900 is not set |
746 | # CONFIG_EPIC100 is not set | 773 | # CONFIG_EPIC100 is not set |
747 | # CONFIG_SUNDANCE is not set | 774 | # CONFIG_SUNDANCE is not set |
@@ -754,6 +781,9 @@ CONFIG_E1000=y | |||
754 | CONFIG_E1000_NAPI=y | 781 | CONFIG_E1000_NAPI=y |
755 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 782 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
756 | # CONFIG_E1000E is not set | 783 | # CONFIG_E1000E is not set |
784 | # CONFIG_E1000E_ENABLED is not set | ||
785 | # CONFIG_IP1000 is not set | ||
786 | # CONFIG_IGB is not set | ||
757 | # CONFIG_NS83820 is not set | 787 | # CONFIG_NS83820 is not set |
758 | # CONFIG_HAMACHI is not set | 788 | # CONFIG_HAMACHI is not set |
759 | # CONFIG_YELLOWFIN is not set | 789 | # CONFIG_YELLOWFIN is not set |
@@ -779,6 +809,7 @@ CONFIG_NETDEV_10000=y | |||
779 | CONFIG_PASEMI_MAC=y | 809 | CONFIG_PASEMI_MAC=y |
780 | # CONFIG_MLX4_CORE is not set | 810 | # CONFIG_MLX4_CORE is not set |
781 | # CONFIG_TEHUTI is not set | 811 | # CONFIG_TEHUTI is not set |
812 | # CONFIG_BNX2X is not set | ||
782 | # CONFIG_TR is not set | 813 | # CONFIG_TR is not set |
783 | 814 | ||
784 | # | 815 | # |
@@ -802,7 +833,6 @@ CONFIG_PASEMI_MAC=y | |||
802 | # CONFIG_PPP is not set | 833 | # CONFIG_PPP is not set |
803 | # CONFIG_SLIP is not set | 834 | # CONFIG_SLIP is not set |
804 | # CONFIG_NET_FC is not set | 835 | # CONFIG_NET_FC is not set |
805 | # CONFIG_SHAPER is not set | ||
806 | # CONFIG_NETCONSOLE is not set | 836 | # CONFIG_NETCONSOLE is not set |
807 | # CONFIG_NETPOLL is not set | 837 | # CONFIG_NETPOLL is not set |
808 | # CONFIG_NET_POLL_CONTROLLER is not set | 838 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -861,6 +891,7 @@ CONFIG_VT_CONSOLE=y | |||
861 | CONFIG_HW_CONSOLE=y | 891 | CONFIG_HW_CONSOLE=y |
862 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 892 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
863 | # CONFIG_SERIAL_NONSTANDARD is not set | 893 | # CONFIG_SERIAL_NONSTANDARD is not set |
894 | # CONFIG_NOZOMI is not set | ||
864 | 895 | ||
865 | # | 896 | # |
866 | # Serial drivers | 897 | # Serial drivers |
@@ -886,8 +917,7 @@ CONFIG_LEGACY_PTY_COUNT=4 | |||
886 | # CONFIG_IPMI_HANDLER is not set | 917 | # CONFIG_IPMI_HANDLER is not set |
887 | CONFIG_HW_RANDOM=y | 918 | CONFIG_HW_RANDOM=y |
888 | CONFIG_HW_RANDOM_PASEMI=y | 919 | CONFIG_HW_RANDOM_PASEMI=y |
889 | CONFIG_GEN_RTC=y | 920 | # CONFIG_GEN_RTC is not set |
890 | CONFIG_GEN_RTC_X=y | ||
891 | # CONFIG_R3964 is not set | 921 | # CONFIG_R3964 is not set |
892 | # CONFIG_APPLICOM is not set | 922 | # CONFIG_APPLICOM is not set |
893 | 923 | ||
@@ -897,6 +927,7 @@ CONFIG_GEN_RTC_X=y | |||
897 | # CONFIG_SYNCLINK_CS is not set | 927 | # CONFIG_SYNCLINK_CS is not set |
898 | # CONFIG_CARDMAN_4000 is not set | 928 | # CONFIG_CARDMAN_4000 is not set |
899 | # CONFIG_CARDMAN_4040 is not set | 929 | # CONFIG_CARDMAN_4040 is not set |
930 | # CONFIG_IPWIRELESS is not set | ||
900 | CONFIG_RAW_DRIVER=y | 931 | CONFIG_RAW_DRIVER=y |
901 | CONFIG_MAX_RAW_DEVS=256 | 932 | CONFIG_MAX_RAW_DEVS=256 |
902 | # CONFIG_HANGCHECK_TIMER is not set | 933 | # CONFIG_HANGCHECK_TIMER is not set |
@@ -944,13 +975,12 @@ CONFIG_I2C_PASEMI=y | |||
944 | # | 975 | # |
945 | # Miscellaneous I2C Chip support | 976 | # Miscellaneous I2C Chip support |
946 | # | 977 | # |
947 | # CONFIG_SENSORS_DS1337 is not set | ||
948 | # CONFIG_SENSORS_DS1374 is not set | ||
949 | # CONFIG_DS1682 is not set | 978 | # CONFIG_DS1682 is not set |
950 | CONFIG_SENSORS_EEPROM=y | 979 | CONFIG_SENSORS_EEPROM=y |
951 | # CONFIG_SENSORS_PCF8574 is not set | 980 | # CONFIG_SENSORS_PCF8574 is not set |
952 | # CONFIG_SENSORS_PCA9539 is not set | 981 | # CONFIG_PCF8575 is not set |
953 | # CONFIG_SENSORS_PCF8591 is not set | 982 | # CONFIG_SENSORS_PCF8591 is not set |
983 | # CONFIG_TPS65010 is not set | ||
954 | # CONFIG_SENSORS_MAX6875 is not set | 984 | # CONFIG_SENSORS_MAX6875 is not set |
955 | # CONFIG_SENSORS_TSL2550 is not set | 985 | # CONFIG_SENSORS_TSL2550 is not set |
956 | # CONFIG_I2C_DEBUG_CORE is not set | 986 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -975,6 +1005,7 @@ CONFIG_HWMON_VID=y | |||
975 | # CONFIG_SENSORS_ADM1031 is not set | 1005 | # CONFIG_SENSORS_ADM1031 is not set |
976 | # CONFIG_SENSORS_ADM9240 is not set | 1006 | # CONFIG_SENSORS_ADM9240 is not set |
977 | # CONFIG_SENSORS_ADT7470 is not set | 1007 | # CONFIG_SENSORS_ADT7470 is not set |
1008 | # CONFIG_SENSORS_ADT7473 is not set | ||
978 | # CONFIG_SENSORS_ATXP1 is not set | 1009 | # CONFIG_SENSORS_ATXP1 is not set |
979 | # CONFIG_SENSORS_DS1621 is not set | 1010 | # CONFIG_SENSORS_DS1621 is not set |
980 | # CONFIG_SENSORS_I5K_AMB is not set | 1011 | # CONFIG_SENSORS_I5K_AMB is not set |
@@ -1004,6 +1035,7 @@ CONFIG_SENSORS_LM90=y | |||
1004 | # CONFIG_SENSORS_SMSC47M1 is not set | 1035 | # CONFIG_SENSORS_SMSC47M1 is not set |
1005 | # CONFIG_SENSORS_SMSC47M192 is not set | 1036 | # CONFIG_SENSORS_SMSC47M192 is not set |
1006 | # CONFIG_SENSORS_SMSC47B397 is not set | 1037 | # CONFIG_SENSORS_SMSC47B397 is not set |
1038 | # CONFIG_SENSORS_ADS7828 is not set | ||
1007 | # CONFIG_SENSORS_THMC50 is not set | 1039 | # CONFIG_SENSORS_THMC50 is not set |
1008 | # CONFIG_SENSORS_VIA686A is not set | 1040 | # CONFIG_SENSORS_VIA686A is not set |
1009 | # CONFIG_SENSORS_VT1211 is not set | 1041 | # CONFIG_SENSORS_VT1211 is not set |
@@ -1013,9 +1045,11 @@ CONFIG_SENSORS_LM90=y | |||
1013 | # CONFIG_SENSORS_W83792D is not set | 1045 | # CONFIG_SENSORS_W83792D is not set |
1014 | # CONFIG_SENSORS_W83793 is not set | 1046 | # CONFIG_SENSORS_W83793 is not set |
1015 | # CONFIG_SENSORS_W83L785TS is not set | 1047 | # CONFIG_SENSORS_W83L785TS is not set |
1048 | # CONFIG_SENSORS_W83L786NG is not set | ||
1016 | # CONFIG_SENSORS_W83627HF is not set | 1049 | # CONFIG_SENSORS_W83627HF is not set |
1017 | # CONFIG_SENSORS_W83627EHF is not set | 1050 | # CONFIG_SENSORS_W83627EHF is not set |
1018 | # CONFIG_HWMON_DEBUG_CHIP is not set | 1051 | # CONFIG_HWMON_DEBUG_CHIP is not set |
1052 | # CONFIG_THERMAL is not set | ||
1019 | # CONFIG_WATCHDOG is not set | 1053 | # CONFIG_WATCHDOG is not set |
1020 | 1054 | ||
1021 | # | 1055 | # |
@@ -1183,6 +1217,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1183 | # CONFIG_SND_BT87X is not set | 1217 | # CONFIG_SND_BT87X is not set |
1184 | # CONFIG_SND_CA0106 is not set | 1218 | # CONFIG_SND_CA0106 is not set |
1185 | # CONFIG_SND_CMIPCI is not set | 1219 | # CONFIG_SND_CMIPCI is not set |
1220 | # CONFIG_SND_OXYGEN is not set | ||
1186 | # CONFIG_SND_CS4281 is not set | 1221 | # CONFIG_SND_CS4281 is not set |
1187 | # CONFIG_SND_CS46XX is not set | 1222 | # CONFIG_SND_CS46XX is not set |
1188 | # CONFIG_SND_CS5530 is not set | 1223 | # CONFIG_SND_CS5530 is not set |
@@ -1208,6 +1243,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1208 | # CONFIG_SND_HDA_INTEL is not set | 1243 | # CONFIG_SND_HDA_INTEL is not set |
1209 | # CONFIG_SND_HDSP is not set | 1244 | # CONFIG_SND_HDSP is not set |
1210 | # CONFIG_SND_HDSPM is not set | 1245 | # CONFIG_SND_HDSPM is not set |
1246 | # CONFIG_SND_HIFIER is not set | ||
1211 | # CONFIG_SND_ICE1712 is not set | 1247 | # CONFIG_SND_ICE1712 is not set |
1212 | # CONFIG_SND_ICE1724 is not set | 1248 | # CONFIG_SND_ICE1724 is not set |
1213 | # CONFIG_SND_INTEL8X0 is not set | 1249 | # CONFIG_SND_INTEL8X0 is not set |
@@ -1225,6 +1261,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1225 | # CONFIG_SND_TRIDENT is not set | 1261 | # CONFIG_SND_TRIDENT is not set |
1226 | # CONFIG_SND_VIA82XX is not set | 1262 | # CONFIG_SND_VIA82XX is not set |
1227 | # CONFIG_SND_VIA82XX_MODEM is not set | 1263 | # CONFIG_SND_VIA82XX_MODEM is not set |
1264 | # CONFIG_SND_VIRTUOSO is not set | ||
1228 | # CONFIG_SND_VX222 is not set | 1265 | # CONFIG_SND_VX222 is not set |
1229 | # CONFIG_SND_YMFPCI is not set | 1266 | # CONFIG_SND_YMFPCI is not set |
1230 | 1267 | ||
@@ -1259,6 +1296,10 @@ CONFIG_SND_USB_USX2Y=y | |||
1259 | # | 1296 | # |
1260 | 1297 | ||
1261 | # | 1298 | # |
1299 | # ALSA SoC audio for Freescale SOCs | ||
1300 | # | ||
1301 | |||
1302 | # | ||
1262 | # Open Sound System | 1303 | # Open Sound System |
1263 | # | 1304 | # |
1264 | # CONFIG_SOUND_PRIME is not set | 1305 | # CONFIG_SOUND_PRIME is not set |
@@ -1280,6 +1321,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1280 | CONFIG_USB_ARCH_HAS_EHCI=y | 1321 | CONFIG_USB_ARCH_HAS_EHCI=y |
1281 | CONFIG_USB=y | 1322 | CONFIG_USB=y |
1282 | # CONFIG_USB_DEBUG is not set | 1323 | # CONFIG_USB_DEBUG is not set |
1324 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1283 | 1325 | ||
1284 | # | 1326 | # |
1285 | # Miscellaneous USB options | 1327 | # Miscellaneous USB options |
@@ -1293,17 +1335,14 @@ CONFIG_USB_DEVICEFS=y | |||
1293 | # USB Host Controller Drivers | 1335 | # USB Host Controller Drivers |
1294 | # | 1336 | # |
1295 | CONFIG_USB_EHCI_HCD=y | 1337 | CONFIG_USB_EHCI_HCD=y |
1296 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1297 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1338 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1298 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1339 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1340 | CONFIG_USB_EHCI_HCD_PPC_OF=y | ||
1299 | # CONFIG_USB_ISP116X_HCD is not set | 1341 | # CONFIG_USB_ISP116X_HCD is not set |
1300 | CONFIG_USB_OHCI_HCD=y | 1342 | CONFIG_USB_OHCI_HCD=y |
1301 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 1343 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
1302 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | 1344 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
1303 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set | 1345 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set |
1304 | CONFIG_USB_OHCI_HCD_PCI=y | ||
1305 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | ||
1306 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | ||
1307 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1346 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1308 | CONFIG_USB_UHCI_HCD=y | 1347 | CONFIG_USB_UHCI_HCD=y |
1309 | CONFIG_USB_SL811_HCD=y | 1348 | CONFIG_USB_SL811_HCD=y |
@@ -1348,10 +1387,6 @@ CONFIG_USB_LIBUSUAL=y | |||
1348 | # | 1387 | # |
1349 | # USB port drivers | 1388 | # USB port drivers |
1350 | # | 1389 | # |
1351 | |||
1352 | # | ||
1353 | # USB Serial Converter support | ||
1354 | # | ||
1355 | # CONFIG_USB_SERIAL is not set | 1390 | # CONFIG_USB_SERIAL is not set |
1356 | 1391 | ||
1357 | # | 1392 | # |
@@ -1377,16 +1412,9 @@ CONFIG_USB_LIBUSUAL=y | |||
1377 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1412 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1378 | # CONFIG_USB_IOWARRIOR is not set | 1413 | # CONFIG_USB_IOWARRIOR is not set |
1379 | # CONFIG_USB_TEST is not set | 1414 | # CONFIG_USB_TEST is not set |
1380 | |||
1381 | # | ||
1382 | # USB DSL modem support | ||
1383 | # | ||
1384 | |||
1385 | # | ||
1386 | # USB Gadget Support | ||
1387 | # | ||
1388 | # CONFIG_USB_GADGET is not set | 1415 | # CONFIG_USB_GADGET is not set |
1389 | # CONFIG_MMC is not set | 1416 | # CONFIG_MMC is not set |
1417 | # CONFIG_MEMSTICK is not set | ||
1390 | # CONFIG_NEW_LEDS is not set | 1418 | # CONFIG_NEW_LEDS is not set |
1391 | # CONFIG_INFINIBAND is not set | 1419 | # CONFIG_INFINIBAND is not set |
1392 | CONFIG_EDAC=y | 1420 | CONFIG_EDAC=y |
@@ -1425,6 +1453,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1425 | # CONFIG_RTC_DRV_PCF8563 is not set | 1453 | # CONFIG_RTC_DRV_PCF8563 is not set |
1426 | # CONFIG_RTC_DRV_PCF8583 is not set | 1454 | # CONFIG_RTC_DRV_PCF8583 is not set |
1427 | # CONFIG_RTC_DRV_M41T80 is not set | 1455 | # CONFIG_RTC_DRV_M41T80 is not set |
1456 | # CONFIG_RTC_DRV_S35390A is not set | ||
1428 | 1457 | ||
1429 | # | 1458 | # |
1430 | # SPI RTC drivers | 1459 | # SPI RTC drivers |
@@ -1434,9 +1463,10 @@ CONFIG_RTC_DRV_DS1307=y | |||
1434 | # Platform RTC drivers | 1463 | # Platform RTC drivers |
1435 | # | 1464 | # |
1436 | # CONFIG_RTC_DRV_CMOS is not set | 1465 | # CONFIG_RTC_DRV_CMOS is not set |
1466 | # CONFIG_RTC_DRV_DS1511 is not set | ||
1437 | # CONFIG_RTC_DRV_DS1553 is not set | 1467 | # CONFIG_RTC_DRV_DS1553 is not set |
1438 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1439 | # CONFIG_RTC_DRV_DS1742 is not set | 1468 | # CONFIG_RTC_DRV_DS1742 is not set |
1469 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1440 | # CONFIG_RTC_DRV_M48T86 is not set | 1470 | # CONFIG_RTC_DRV_M48T86 is not set |
1441 | # CONFIG_RTC_DRV_M48T59 is not set | 1471 | # CONFIG_RTC_DRV_M48T59 is not set |
1442 | # CONFIG_RTC_DRV_V3020 is not set | 1472 | # CONFIG_RTC_DRV_V3020 is not set |
@@ -1444,6 +1474,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1444 | # | 1474 | # |
1445 | # on-CPU RTC drivers | 1475 | # on-CPU RTC drivers |
1446 | # | 1476 | # |
1477 | # CONFIG_DMADEVICES is not set | ||
1447 | 1478 | ||
1448 | # | 1479 | # |
1449 | # Userspace I/O | 1480 | # Userspace I/O |
@@ -1471,12 +1502,10 @@ CONFIG_FS_POSIX_ACL=y | |||
1471 | # CONFIG_XFS_FS is not set | 1502 | # CONFIG_XFS_FS is not set |
1472 | # CONFIG_GFS2_FS is not set | 1503 | # CONFIG_GFS2_FS is not set |
1473 | # CONFIG_OCFS2_FS is not set | 1504 | # CONFIG_OCFS2_FS is not set |
1474 | # CONFIG_MINIX_FS is not set | 1505 | CONFIG_DNOTIFY=y |
1475 | # CONFIG_ROMFS_FS is not set | ||
1476 | CONFIG_INOTIFY=y | 1506 | CONFIG_INOTIFY=y |
1477 | CONFIG_INOTIFY_USER=y | 1507 | CONFIG_INOTIFY_USER=y |
1478 | # CONFIG_QUOTA is not set | 1508 | # CONFIG_QUOTA is not set |
1479 | CONFIG_DNOTIFY=y | ||
1480 | CONFIG_AUTOFS_FS=y | 1509 | CONFIG_AUTOFS_FS=y |
1481 | CONFIG_AUTOFS4_FS=y | 1510 | CONFIG_AUTOFS4_FS=y |
1482 | # CONFIG_FUSE_FS is not set | 1511 | # CONFIG_FUSE_FS is not set |
@@ -1536,8 +1565,10 @@ CONFIG_JFFS2_RTIME=y | |||
1536 | # CONFIG_JFFS2_RUBIN is not set | 1565 | # CONFIG_JFFS2_RUBIN is not set |
1537 | # CONFIG_CRAMFS is not set | 1566 | # CONFIG_CRAMFS is not set |
1538 | # CONFIG_VXFS_FS is not set | 1567 | # CONFIG_VXFS_FS is not set |
1568 | # CONFIG_MINIX_FS is not set | ||
1539 | # CONFIG_HPFS_FS is not set | 1569 | # CONFIG_HPFS_FS is not set |
1540 | # CONFIG_QNX4FS_FS is not set | 1570 | # CONFIG_QNX4FS_FS is not set |
1571 | # CONFIG_ROMFS_FS is not set | ||
1541 | # CONFIG_SYSV_FS is not set | 1572 | # CONFIG_SYSV_FS is not set |
1542 | # CONFIG_UFS_FS is not set | 1573 | # CONFIG_UFS_FS is not set |
1543 | CONFIG_NETWORK_FILESYSTEMS=y | 1574 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1629,7 +1660,6 @@ CONFIG_NLS_ISO8859_1=y | |||
1629 | # CONFIG_NLS_KOI8_U is not set | 1660 | # CONFIG_NLS_KOI8_U is not set |
1630 | # CONFIG_NLS_UTF8 is not set | 1661 | # CONFIG_NLS_UTF8 is not set |
1631 | # CONFIG_DLM is not set | 1662 | # CONFIG_DLM is not set |
1632 | # CONFIG_UCC_SLOW is not set | ||
1633 | 1663 | ||
1634 | # | 1664 | # |
1635 | # Library routines | 1665 | # Library routines |
@@ -1647,11 +1677,6 @@ CONFIG_PLIST=y | |||
1647 | CONFIG_HAS_IOMEM=y | 1677 | CONFIG_HAS_IOMEM=y |
1648 | CONFIG_HAS_IOPORT=y | 1678 | CONFIG_HAS_IOPORT=y |
1649 | CONFIG_HAS_DMA=y | 1679 | CONFIG_HAS_DMA=y |
1650 | CONFIG_INSTRUMENTATION=y | ||
1651 | CONFIG_PROFILING=y | ||
1652 | CONFIG_OPROFILE=y | ||
1653 | # CONFIG_KPROBES is not set | ||
1654 | # CONFIG_MARKERS is not set | ||
1655 | 1680 | ||
1656 | # | 1681 | # |
1657 | # Kernel hacking | 1682 | # Kernel hacking |
@@ -1670,6 +1695,7 @@ CONFIG_DETECT_SOFTLOCKUP=y | |||
1670 | # CONFIG_SCHEDSTATS is not set | 1695 | # CONFIG_SCHEDSTATS is not set |
1671 | # CONFIG_TIMER_STATS is not set | 1696 | # CONFIG_TIMER_STATS is not set |
1672 | # CONFIG_SLUB_DEBUG_ON is not set | 1697 | # CONFIG_SLUB_DEBUG_ON is not set |
1698 | # CONFIG_SLUB_STATS is not set | ||
1673 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1699 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1674 | # CONFIG_RT_MUTEX_TESTER is not set | 1700 | # CONFIG_RT_MUTEX_TESTER is not set |
1675 | # CONFIG_DEBUG_SPINLOCK is not set | 1701 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1682,9 +1708,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1682 | # CONFIG_DEBUG_VM is not set | 1708 | # CONFIG_DEBUG_VM is not set |
1683 | # CONFIG_DEBUG_LIST is not set | 1709 | # CONFIG_DEBUG_LIST is not set |
1684 | # CONFIG_DEBUG_SG is not set | 1710 | # CONFIG_DEBUG_SG is not set |
1685 | # CONFIG_FORCED_INLINING is not set | ||
1686 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1711 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1687 | # CONFIG_RCU_TORTURE_TEST is not set | 1712 | # CONFIG_RCU_TORTURE_TEST is not set |
1713 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1688 | # CONFIG_FAULT_INJECTION is not set | 1714 | # CONFIG_FAULT_INJECTION is not set |
1689 | # CONFIG_SAMPLES is not set | 1715 | # CONFIG_SAMPLES is not set |
1690 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1716 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
@@ -1710,7 +1736,9 @@ CONFIG_ASYNC_MEMCPY=y | |||
1710 | CONFIG_ASYNC_XOR=y | 1736 | CONFIG_ASYNC_XOR=y |
1711 | CONFIG_CRYPTO=y | 1737 | CONFIG_CRYPTO=y |
1712 | CONFIG_CRYPTO_ALGAPI=y | 1738 | CONFIG_CRYPTO_ALGAPI=y |
1739 | CONFIG_CRYPTO_AEAD=y | ||
1713 | CONFIG_CRYPTO_BLKCIPHER=y | 1740 | CONFIG_CRYPTO_BLKCIPHER=y |
1741 | # CONFIG_CRYPTO_SEQIV is not set | ||
1714 | CONFIG_CRYPTO_HASH=y | 1742 | CONFIG_CRYPTO_HASH=y |
1715 | CONFIG_CRYPTO_MANAGER=y | 1743 | CONFIG_CRYPTO_MANAGER=y |
1716 | CONFIG_CRYPTO_HMAC=y | 1744 | CONFIG_CRYPTO_HMAC=y |
@@ -1729,6 +1757,9 @@ CONFIG_CRYPTO_CBC=y | |||
1729 | # CONFIG_CRYPTO_PCBC is not set | 1757 | # CONFIG_CRYPTO_PCBC is not set |
1730 | # CONFIG_CRYPTO_LRW is not set | 1758 | # CONFIG_CRYPTO_LRW is not set |
1731 | # CONFIG_CRYPTO_XTS is not set | 1759 | # CONFIG_CRYPTO_XTS is not set |
1760 | # CONFIG_CRYPTO_CTR is not set | ||
1761 | # CONFIG_CRYPTO_GCM is not set | ||
1762 | # CONFIG_CRYPTO_CCM is not set | ||
1732 | # CONFIG_CRYPTO_CRYPTD is not set | 1763 | # CONFIG_CRYPTO_CRYPTD is not set |
1733 | CONFIG_CRYPTO_DES=y | 1764 | CONFIG_CRYPTO_DES=y |
1734 | # CONFIG_CRYPTO_FCRYPT is not set | 1765 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1743,11 +1774,14 @@ CONFIG_CRYPTO_AES=y | |||
1743 | # CONFIG_CRYPTO_KHAZAD is not set | 1774 | # CONFIG_CRYPTO_KHAZAD is not set |
1744 | # CONFIG_CRYPTO_ANUBIS is not set | 1775 | # CONFIG_CRYPTO_ANUBIS is not set |
1745 | # CONFIG_CRYPTO_SEED is not set | 1776 | # CONFIG_CRYPTO_SEED is not set |
1777 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1746 | # CONFIG_CRYPTO_DEFLATE is not set | 1778 | # CONFIG_CRYPTO_DEFLATE is not set |
1747 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1779 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1748 | # CONFIG_CRYPTO_CRC32C is not set | 1780 | # CONFIG_CRYPTO_CRC32C is not set |
1749 | # CONFIG_CRYPTO_CAMELLIA is not set | 1781 | # CONFIG_CRYPTO_CAMELLIA is not set |
1750 | # CONFIG_CRYPTO_TEST is not set | 1782 | # CONFIG_CRYPTO_TEST is not set |
1751 | # CONFIG_CRYPTO_AUTHENC is not set | 1783 | CONFIG_CRYPTO_AUTHENC=y |
1784 | # CONFIG_CRYPTO_LZO is not set | ||
1752 | CONFIG_CRYPTO_HW=y | 1785 | CONFIG_CRYPTO_HW=y |
1786 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1753 | # CONFIG_PPC_CLOCK is not set | 1787 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 59311ec0d422..4ec605521504 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -241,8 +241,12 @@ void discard_lazy_cpu_state(void) | |||
241 | } | 241 | } |
242 | #endif /* CONFIG_SMP */ | 242 | #endif /* CONFIG_SMP */ |
243 | 243 | ||
244 | static DEFINE_PER_CPU(unsigned long, current_dabr); | ||
245 | |||
244 | int set_dabr(unsigned long dabr) | 246 | int set_dabr(unsigned long dabr) |
245 | { | 247 | { |
248 | __get_cpu_var(current_dabr) = dabr; | ||
249 | |||
246 | #ifdef CONFIG_PPC_MERGE /* XXX for now */ | 250 | #ifdef CONFIG_PPC_MERGE /* XXX for now */ |
247 | if (ppc_md.set_dabr) | 251 | if (ppc_md.set_dabr) |
248 | return ppc_md.set_dabr(dabr); | 252 | return ppc_md.set_dabr(dabr); |
@@ -259,8 +263,6 @@ int set_dabr(unsigned long dabr) | |||
259 | DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); | 263 | DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); |
260 | #endif | 264 | #endif |
261 | 265 | ||
262 | static DEFINE_PER_CPU(unsigned long, current_dabr); | ||
263 | |||
264 | struct task_struct *__switch_to(struct task_struct *prev, | 266 | struct task_struct *__switch_to(struct task_struct *prev, |
265 | struct task_struct *new) | 267 | struct task_struct *new) |
266 | { | 268 | { |
@@ -325,10 +327,8 @@ struct task_struct *__switch_to(struct task_struct *prev, | |||
325 | 327 | ||
326 | #endif /* CONFIG_SMP */ | 328 | #endif /* CONFIG_SMP */ |
327 | 329 | ||
328 | if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) { | 330 | if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) |
329 | set_dabr(new->thread.dabr); | 331 | set_dabr(new->thread.dabr); |
330 | __get_cpu_var(current_dabr) = new->thread.dabr; | ||
331 | } | ||
332 | 332 | ||
333 | new_thread = &new->thread; | 333 | new_thread = &new->thread; |
334 | old_thread = ¤t->thread; | 334 | old_thread = ¤t->thread; |
diff --git a/arch/powerpc/oprofile/cell/vma_map.c b/arch/powerpc/oprofile/cell/vma_map.c index 76ec1d16aef7..9a932177e70e 100644 --- a/arch/powerpc/oprofile/cell/vma_map.c +++ b/arch/powerpc/oprofile/cell/vma_map.c | |||
@@ -92,7 +92,7 @@ vma_map_add(struct vma_to_fileoffset_map *map, unsigned int vma, | |||
92 | * A pointer to the first vma_map in the generated list | 92 | * A pointer to the first vma_map in the generated list |
93 | * of vma_maps is returned. */ | 93 | * of vma_maps is returned. */ |
94 | struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | 94 | struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, |
95 | unsigned long spu_elf_start) | 95 | unsigned long __spu_elf_start) |
96 | { | 96 | { |
97 | static const unsigned char expected[EI_PAD] = { | 97 | static const unsigned char expected[EI_PAD] = { |
98 | [EI_MAG0] = ELFMAG0, | 98 | [EI_MAG0] = ELFMAG0, |
@@ -107,9 +107,11 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
107 | 107 | ||
108 | int grd_val; | 108 | int grd_val; |
109 | struct vma_to_fileoffset_map *map = NULL; | 109 | struct vma_to_fileoffset_map *map = NULL; |
110 | void __user *spu_elf_start = (void __user *)__spu_elf_start; | ||
110 | struct spu_overlay_info ovly; | 111 | struct spu_overlay_info ovly; |
111 | unsigned int overlay_tbl_offset = -1; | 112 | unsigned int overlay_tbl_offset = -1; |
112 | unsigned long phdr_start, shdr_start; | 113 | Elf32_Phdr __user *phdr_start; |
114 | Elf32_Shdr __user *shdr_start; | ||
113 | Elf32_Ehdr ehdr; | 115 | Elf32_Ehdr ehdr; |
114 | Elf32_Phdr phdr; | 116 | Elf32_Phdr phdr; |
115 | Elf32_Shdr shdr, shdr_str; | 117 | Elf32_Shdr shdr, shdr_str; |
@@ -121,12 +123,12 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
121 | unsigned int ovly_buf_table_sym = 0; | 123 | unsigned int ovly_buf_table_sym = 0; |
122 | unsigned int ovly_table_end_sym = 0; | 124 | unsigned int ovly_table_end_sym = 0; |
123 | unsigned int ovly_buf_table_end_sym = 0; | 125 | unsigned int ovly_buf_table_end_sym = 0; |
124 | unsigned long ovly_table; | 126 | struct spu_overlay_info __user *ovly_table; |
125 | unsigned int n_ovlys; | 127 | unsigned int n_ovlys; |
126 | 128 | ||
127 | /* Get and validate ELF header. */ | 129 | /* Get and validate ELF header. */ |
128 | 130 | ||
129 | if (copy_from_user(&ehdr, (void *) spu_elf_start, sizeof (ehdr))) | 131 | if (copy_from_user(&ehdr, spu_elf_start, sizeof (ehdr))) |
130 | goto fail; | 132 | goto fail; |
131 | 133 | ||
132 | if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) { | 134 | if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) { |
@@ -152,9 +154,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
152 | 154 | ||
153 | /* Traverse program headers. */ | 155 | /* Traverse program headers. */ |
154 | for (i = 0; i < ehdr.e_phnum; i++) { | 156 | for (i = 0; i < ehdr.e_phnum; i++) { |
155 | if (copy_from_user(&phdr, | 157 | if (copy_from_user(&phdr, phdr_start + i, sizeof(phdr))) |
156 | (void *) (phdr_start + i * sizeof(phdr)), | ||
157 | sizeof(phdr))) | ||
158 | goto fail; | 158 | goto fail; |
159 | 159 | ||
160 | if (phdr.p_type != PT_LOAD) | 160 | if (phdr.p_type != PT_LOAD) |
@@ -171,9 +171,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
171 | pr_debug("SPU_PROF: Created non-overlay maps\n"); | 171 | pr_debug("SPU_PROF: Created non-overlay maps\n"); |
172 | /* Traverse section table and search for overlay-related symbols. */ | 172 | /* Traverse section table and search for overlay-related symbols. */ |
173 | for (i = 0; i < ehdr.e_shnum; i++) { | 173 | for (i = 0; i < ehdr.e_shnum; i++) { |
174 | if (copy_from_user(&shdr, | 174 | if (copy_from_user(&shdr, shdr_start + i, sizeof(shdr))) |
175 | (void *) (shdr_start + i * sizeof(shdr)), | ||
176 | sizeof(shdr))) | ||
177 | goto fail; | 175 | goto fail; |
178 | 176 | ||
179 | if (shdr.sh_type != SHT_SYMTAB) | 177 | if (shdr.sh_type != SHT_SYMTAB) |
@@ -182,8 +180,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
182 | continue; | 180 | continue; |
183 | 181 | ||
184 | if (copy_from_user(&shdr_str, | 182 | if (copy_from_user(&shdr_str, |
185 | (void *) (shdr_start + shdr.sh_link * | 183 | shdr_start + shdr.sh_link, |
186 | sizeof(shdr)), | ||
187 | sizeof(shdr))) | 184 | sizeof(shdr))) |
188 | goto fail; | 185 | goto fail; |
189 | 186 | ||
@@ -191,15 +188,15 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
191 | goto fail;; | 188 | goto fail;; |
192 | 189 | ||
193 | for (j = 0; j < shdr.sh_size / sizeof (sym); j++) { | 190 | for (j = 0; j < shdr.sh_size / sizeof (sym); j++) { |
194 | if (copy_from_user(&sym, (void *) (spu_elf_start + | 191 | if (copy_from_user(&sym, spu_elf_start + |
195 | shdr.sh_offset + j * | 192 | shdr.sh_offset + |
196 | sizeof (sym)), | 193 | j * sizeof (sym), |
197 | sizeof (sym))) | 194 | sizeof (sym))) |
198 | goto fail; | 195 | goto fail; |
199 | 196 | ||
200 | if (copy_from_user(name, (void *) | 197 | if (copy_from_user(name, |
201 | (spu_elf_start + shdr_str.sh_offset + | 198 | spu_elf_start + shdr_str.sh_offset + |
202 | sym.st_name), | 199 | sym.st_name, |
203 | 20)) | 200 | 20)) |
204 | goto fail; | 201 | goto fail; |
205 | 202 | ||
@@ -245,9 +242,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | |||
245 | 242 | ||
246 | /* Traverse overlay table. */ | 243 | /* Traverse overlay table. */ |
247 | for (i = 0; i < n_ovlys; i++) { | 244 | for (i = 0; i < n_ovlys; i++) { |
248 | if (copy_from_user(&ovly, (void *) | 245 | if (copy_from_user(&ovly, ovly_table + i, sizeof (ovly))) |
249 | (ovly_table + i * sizeof (ovly)), | ||
250 | sizeof (ovly))) | ||
251 | goto fail; | 246 | goto fail; |
252 | 247 | ||
253 | /* The ovly.vma/size/offset arguments are analogous to the same | 248 | /* The ovly.vma/size/offset arguments are analogous to the same |
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index ca52b587166d..a977f200db89 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -763,7 +763,7 @@ void xics_request_IPIs(void) | |||
763 | } | 763 | } |
764 | #endif /* CONFIG_SMP */ | 764 | #endif /* CONFIG_SMP */ |
765 | 765 | ||
766 | void xics_teardown_cpu() | 766 | void xics_teardown_cpu(void) |
767 | { | 767 | { |
768 | int cpu = smp_processor_id(); | 768 | int cpu = smp_processor_id(); |
769 | 769 | ||
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index a104c532ff70..3335b4595efd 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
@@ -10,21 +10,19 @@ | |||
10 | * (such as the example in Documentation/lguest/lguest.c) is called the | 10 | * (such as the example in Documentation/lguest/lguest.c) is called the |
11 | * Launcher. | 11 | * Launcher. |
12 | * | 12 | * |
13 | * Secondly, we only run specially modified Guests, not normal kernels. When | 13 | * Secondly, we only run specially modified Guests, not normal kernels: setting |
14 | * you set CONFIG_LGUEST to 'y' or 'm', this automatically sets | 14 | * CONFIG_LGUEST_GUEST to "y" compiles this file into the kernel so it knows |
15 | * CONFIG_LGUEST_GUEST=y, which compiles this file into the kernel so it knows | 15 | * how to be a Guest at boot time. This means that you can use the same kernel |
16 | * how to be a Guest. This means that you can use the same kernel you boot | 16 | * you boot normally (ie. as a Host) as a Guest. |
17 | * normally (ie. as a Host) as a Guest. | ||
18 | * | 17 | * |
19 | * These Guests know that they cannot do privileged operations, such as disable | 18 | * These Guests know that they cannot do privileged operations, such as disable |
20 | * interrupts, and that they have to ask the Host to do such things explicitly. | 19 | * interrupts, and that they have to ask the Host to do such things explicitly. |
21 | * This file consists of all the replacements for such low-level native | 20 | * This file consists of all the replacements for such low-level native |
22 | * hardware operations: these special Guest versions call the Host. | 21 | * hardware operations: these special Guest versions call the Host. |
23 | * | 22 | * |
24 | * So how does the kernel know it's a Guest? The Guest starts at a special | 23 | * So how does the kernel know it's a Guest? We'll see that later, but let's |
25 | * entry point marked with a magic string, which sets up a few things then | 24 | * just say that we end up here where we replace the native functions various |
26 | * calls here. We replace the native functions various "paravirt" structures | 25 | * "paravirt" structures with our Guest versions, then boot like normal. :*/ |
27 | * with our Guest versions, then boot like normal. :*/ | ||
28 | 26 | ||
29 | /* | 27 | /* |
30 | * Copyright (C) 2006, Rusty Russell <rusty@rustcorp.com.au> IBM Corporation. | 28 | * Copyright (C) 2006, Rusty Russell <rusty@rustcorp.com.au> IBM Corporation. |
@@ -134,7 +132,7 @@ static void async_hcall(unsigned long call, unsigned long arg1, | |||
134 | * lguest_leave_lazy_mode(). | 132 | * lguest_leave_lazy_mode(). |
135 | * | 133 | * |
136 | * So, when we're in lazy mode, we call async_hcall() to store the call for | 134 | * So, when we're in lazy mode, we call async_hcall() to store the call for |
137 | * future processing. */ | 135 | * future processing: */ |
138 | static void lazy_hcall(unsigned long call, | 136 | static void lazy_hcall(unsigned long call, |
139 | unsigned long arg1, | 137 | unsigned long arg1, |
140 | unsigned long arg2, | 138 | unsigned long arg2, |
@@ -147,7 +145,7 @@ static void lazy_hcall(unsigned long call, | |||
147 | } | 145 | } |
148 | 146 | ||
149 | /* When lazy mode is turned off reset the per-cpu lazy mode variable and then | 147 | /* When lazy mode is turned off reset the per-cpu lazy mode variable and then |
150 | * issue a hypercall to flush any stored calls. */ | 148 | * issue the do-nothing hypercall to flush any stored calls. */ |
151 | static void lguest_leave_lazy_mode(void) | 149 | static void lguest_leave_lazy_mode(void) |
152 | { | 150 | { |
153 | paravirt_leave_lazy(paravirt_get_lazy_mode()); | 151 | paravirt_leave_lazy(paravirt_get_lazy_mode()); |
@@ -164,7 +162,7 @@ static void lguest_leave_lazy_mode(void) | |||
164 | * | 162 | * |
165 | * So instead we keep an "irq_enabled" field inside our "struct lguest_data", | 163 | * So instead we keep an "irq_enabled" field inside our "struct lguest_data", |
166 | * which the Guest can update with a single instruction. The Host knows to | 164 | * which the Guest can update with a single instruction. The Host knows to |
167 | * check there when it wants to deliver an interrupt. | 165 | * check there before it tries to deliver an interrupt. |
168 | */ | 166 | */ |
169 | 167 | ||
170 | /* save_flags() is expected to return the processor state (ie. "flags"). The | 168 | /* save_flags() is expected to return the processor state (ie. "flags"). The |
@@ -196,10 +194,15 @@ static void irq_enable(void) | |||
196 | /*M:003 Note that we don't check for outstanding interrupts when we re-enable | 194 | /*M:003 Note that we don't check for outstanding interrupts when we re-enable |
197 | * them (or when we unmask an interrupt). This seems to work for the moment, | 195 | * them (or when we unmask an interrupt). This seems to work for the moment, |
198 | * since interrupts are rare and we'll just get the interrupt on the next timer | 196 | * since interrupts are rare and we'll just get the interrupt on the next timer |
199 | * tick, but when we turn on CONFIG_NO_HZ, we should revisit this. One way | 197 | * tick, but now we can run with CONFIG_NO_HZ, we should revisit this. One way |
200 | * would be to put the "irq_enabled" field in a page by itself, and have the | 198 | * would be to put the "irq_enabled" field in a page by itself, and have the |
201 | * Host write-protect it when an interrupt comes in when irqs are disabled. | 199 | * Host write-protect it when an interrupt comes in when irqs are disabled. |
202 | * There will then be a page fault as soon as interrupts are re-enabled. :*/ | 200 | * There will then be a page fault as soon as interrupts are re-enabled. |
201 | * | ||
202 | * A better method is to implement soft interrupt disable generally for x86: | ||
203 | * instead of disabling interrupts, we set a flag. If an interrupt does come | ||
204 | * in, we then disable them for real. This is uncommon, so we could simply use | ||
205 | * a hypercall for interrupt control and not worry about efficiency. :*/ | ||
203 | 206 | ||
204 | /*G:034 | 207 | /*G:034 |
205 | * The Interrupt Descriptor Table (IDT). | 208 | * The Interrupt Descriptor Table (IDT). |
@@ -212,6 +215,10 @@ static void irq_enable(void) | |||
212 | static void lguest_write_idt_entry(gate_desc *dt, | 215 | static void lguest_write_idt_entry(gate_desc *dt, |
213 | int entrynum, const gate_desc *g) | 216 | int entrynum, const gate_desc *g) |
214 | { | 217 | { |
218 | /* The gate_desc structure is 8 bytes long: we hand it to the Host in | ||
219 | * two 32-bit chunks. The whole 32-bit kernel used to hand descriptors | ||
220 | * around like this; typesafety wasn't a big concern in Linux's early | ||
221 | * years. */ | ||
215 | u32 *desc = (u32 *)g; | 222 | u32 *desc = (u32 *)g; |
216 | /* Keep the local copy up to date. */ | 223 | /* Keep the local copy up to date. */ |
217 | native_write_idt_entry(dt, entrynum, g); | 224 | native_write_idt_entry(dt, entrynum, g); |
@@ -243,7 +250,8 @@ static void lguest_load_idt(const struct desc_ptr *desc) | |||
243 | * | 250 | * |
244 | * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY | 251 | * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY |
245 | * hypercall and use that repeatedly to load a new IDT. I don't think it | 252 | * hypercall and use that repeatedly to load a new IDT. I don't think it |
246 | * really matters, but wouldn't it be nice if they were the same? | 253 | * really matters, but wouldn't it be nice if they were the same? Wouldn't |
254 | * it be even better if you were the one to send the patch to fix it? | ||
247 | */ | 255 | */ |
248 | static void lguest_load_gdt(const struct desc_ptr *desc) | 256 | static void lguest_load_gdt(const struct desc_ptr *desc) |
249 | { | 257 | { |
@@ -298,9 +306,9 @@ static void lguest_load_tr_desc(void) | |||
298 | 306 | ||
299 | /* The "cpuid" instruction is a way of querying both the CPU identity | 307 | /* The "cpuid" instruction is a way of querying both the CPU identity |
300 | * (manufacturer, model, etc) and its features. It was introduced before the | 308 | * (manufacturer, model, etc) and its features. It was introduced before the |
301 | * Pentium in 1993 and keeps getting extended by both Intel and AMD. As you | 309 | * Pentium in 1993 and keeps getting extended by both Intel, AMD and others. |
302 | * might imagine, after a decade and a half this treatment, it is now a giant | 310 | * As you might imagine, after a decade and a half this treatment, it is now a |
303 | * ball of hair. Its entry in the current Intel manual runs to 28 pages. | 311 | * giant ball of hair. Its entry in the current Intel manual runs to 28 pages. |
304 | * | 312 | * |
305 | * This instruction even it has its own Wikipedia entry. The Wikipedia entry | 313 | * This instruction even it has its own Wikipedia entry. The Wikipedia entry |
306 | * has been translated into 4 languages. I am not making this up! | 314 | * has been translated into 4 languages. I am not making this up! |
@@ -594,17 +602,17 @@ static unsigned long lguest_get_wallclock(void) | |||
594 | return lguest_data.time.tv_sec; | 602 | return lguest_data.time.tv_sec; |
595 | } | 603 | } |
596 | 604 | ||
597 | /* The TSC is a Time Stamp Counter. The Host tells us what speed it runs at, | 605 | /* The TSC is an Intel thing called the Time Stamp Counter. The Host tells us |
598 | * or 0 if it's unusable as a reliable clock source. This matches what we want | 606 | * what speed it runs at, or 0 if it's unusable as a reliable clock source. |
599 | * here: if we return 0 from this function, the x86 TSC clock will not register | 607 | * This matches what we want here: if we return 0 from this function, the x86 |
600 | * itself. */ | 608 | * TSC clock will give up and not register itself. */ |
601 | static unsigned long lguest_cpu_khz(void) | 609 | static unsigned long lguest_cpu_khz(void) |
602 | { | 610 | { |
603 | return lguest_data.tsc_khz; | 611 | return lguest_data.tsc_khz; |
604 | } | 612 | } |
605 | 613 | ||
606 | /* If we can't use the TSC, the kernel falls back to our "lguest_clock", where | 614 | /* If we can't use the TSC, the kernel falls back to our lower-priority |
607 | * we read the time value given to us by the Host. */ | 615 | * "lguest_clock", where we read the time value given to us by the Host. */ |
608 | static cycle_t lguest_clock_read(void) | 616 | static cycle_t lguest_clock_read(void) |
609 | { | 617 | { |
610 | unsigned long sec, nsec; | 618 | unsigned long sec, nsec; |
@@ -648,12 +656,16 @@ static struct clocksource lguest_clock = { | |||
648 | static int lguest_clockevent_set_next_event(unsigned long delta, | 656 | static int lguest_clockevent_set_next_event(unsigned long delta, |
649 | struct clock_event_device *evt) | 657 | struct clock_event_device *evt) |
650 | { | 658 | { |
659 | /* FIXME: I don't think this can ever happen, but James tells me he had | ||
660 | * to put this code in. Maybe we should remove it now. Anyone? */ | ||
651 | if (delta < LG_CLOCK_MIN_DELTA) { | 661 | if (delta < LG_CLOCK_MIN_DELTA) { |
652 | if (printk_ratelimit()) | 662 | if (printk_ratelimit()) |
653 | printk(KERN_DEBUG "%s: small delta %lu ns\n", | 663 | printk(KERN_DEBUG "%s: small delta %lu ns\n", |
654 | __FUNCTION__, delta); | 664 | __FUNCTION__, delta); |
655 | return -ETIME; | 665 | return -ETIME; |
656 | } | 666 | } |
667 | |||
668 | /* Please wake us this far in the future. */ | ||
657 | hcall(LHCALL_SET_CLOCKEVENT, delta, 0, 0); | 669 | hcall(LHCALL_SET_CLOCKEVENT, delta, 0, 0); |
658 | return 0; | 670 | return 0; |
659 | } | 671 | } |
@@ -738,7 +750,7 @@ static void lguest_time_init(void) | |||
738 | * will not tolerate us trying to use that), the stack pointer, and the number | 750 | * will not tolerate us trying to use that), the stack pointer, and the number |
739 | * of pages in the stack. */ | 751 | * of pages in the stack. */ |
740 | static void lguest_load_sp0(struct tss_struct *tss, | 752 | static void lguest_load_sp0(struct tss_struct *tss, |
741 | struct thread_struct *thread) | 753 | struct thread_struct *thread) |
742 | { | 754 | { |
743 | lazy_hcall(LHCALL_SET_STACK, __KERNEL_DS|0x1, thread->sp0, | 755 | lazy_hcall(LHCALL_SET_STACK, __KERNEL_DS|0x1, thread->sp0, |
744 | THREAD_SIZE/PAGE_SIZE); | 756 | THREAD_SIZE/PAGE_SIZE); |
@@ -786,9 +798,8 @@ static void lguest_safe_halt(void) | |||
786 | hcall(LHCALL_HALT, 0, 0, 0); | 798 | hcall(LHCALL_HALT, 0, 0, 0); |
787 | } | 799 | } |
788 | 800 | ||
789 | /* Perhaps CRASH isn't the best name for this hypercall, but we use it to get a | 801 | /* The SHUTDOWN hypercall takes a string to describe what's happening, and |
790 | * message out when we're crashing as well as elegant termination like powering | 802 | * an argument which says whether this to restart (reboot) the Guest or not. |
791 | * off. | ||
792 | * | 803 | * |
793 | * Note that the Host always prefers that the Guest speak in physical addresses | 804 | * Note that the Host always prefers that the Guest speak in physical addresses |
794 | * rather than virtual addresses, so we use __pa() here. */ | 805 | * rather than virtual addresses, so we use __pa() here. */ |
@@ -816,8 +827,9 @@ static struct notifier_block paniced = { | |||
816 | /* Setting up memory is fairly easy. */ | 827 | /* Setting up memory is fairly easy. */ |
817 | static __init char *lguest_memory_setup(void) | 828 | static __init char *lguest_memory_setup(void) |
818 | { | 829 | { |
819 | /* We do this here and not earlier because lockcheck barfs if we do it | 830 | /* We do this here and not earlier because lockcheck used to barf if we |
820 | * before start_kernel() */ | 831 | * did it before start_kernel(). I think we fixed that, so it'd be |
832 | * nice to move it back to lguest_init. Patch welcome... */ | ||
821 | atomic_notifier_chain_register(&panic_notifier_list, &paniced); | 833 | atomic_notifier_chain_register(&panic_notifier_list, &paniced); |
822 | 834 | ||
823 | /* The Linux bootloader header contains an "e820" memory map: the | 835 | /* The Linux bootloader header contains an "e820" memory map: the |
@@ -850,12 +862,19 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count) | |||
850 | return len; | 862 | return len; |
851 | } | 863 | } |
852 | 864 | ||
865 | /* Rebooting also tells the Host we're finished, but the RESTART flag tells the | ||
866 | * Launcher to reboot us. */ | ||
867 | static void lguest_restart(char *reason) | ||
868 | { | ||
869 | hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0); | ||
870 | } | ||
871 | |||
853 | /*G:050 | 872 | /*G:050 |
854 | * Patching (Powerfully Placating Performance Pedants) | 873 | * Patching (Powerfully Placating Performance Pedants) |
855 | * | 874 | * |
856 | * We have already seen that pv_ops structures let us replace simple | 875 | * We have already seen that pv_ops structures let us replace simple native |
857 | * native instructions with calls to the appropriate back end all throughout | 876 | * instructions with calls to the appropriate back end all throughout the |
858 | * the kernel. This allows the same kernel to run as a Guest and as a native | 877 | * kernel. This allows the same kernel to run as a Guest and as a native |
859 | * kernel, but it's slow because of all the indirect branches. | 878 | * kernel, but it's slow because of all the indirect branches. |
860 | * | 879 | * |
861 | * Remember that David Wheeler quote about "Any problem in computer science can | 880 | * Remember that David Wheeler quote about "Any problem in computer science can |
@@ -908,14 +927,9 @@ static unsigned lguest_patch(u8 type, u16 clobber, void *ibuf, | |||
908 | return insn_len; | 927 | return insn_len; |
909 | } | 928 | } |
910 | 929 | ||
911 | static void lguest_restart(char *reason) | 930 | /*G:030 Once we get to lguest_init(), we know we're a Guest. The various |
912 | { | 931 | * pv_ops structures in the kernel provide points for (almost) every routine we |
913 | hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0); | 932 | * have to override to avoid privileged instructions. */ |
914 | } | ||
915 | |||
916 | /*G:030 Once we get to lguest_init(), we know we're a Guest. The pv_ops | ||
917 | * structures in the kernel provide points for (almost) every routine we have | ||
918 | * to override to avoid privileged instructions. */ | ||
919 | __init void lguest_init(void) | 933 | __init void lguest_init(void) |
920 | { | 934 | { |
921 | /* We're under lguest, paravirt is enabled, and we're running at | 935 | /* We're under lguest, paravirt is enabled, and we're running at |
@@ -1003,9 +1017,9 @@ __init void lguest_init(void) | |||
1003 | * the normal data segment to get through booting. */ | 1017 | * the normal data segment to get through booting. */ |
1004 | asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); | 1018 | asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); |
1005 | 1019 | ||
1006 | /* The Host uses the top of the Guest's virtual address space for the | 1020 | /* The Host<->Guest Switcher lives at the top of our address space, and |
1007 | * Host<->Guest Switcher, and it tells us how big that is in | 1021 | * the Host told us how big it is when we made LGUEST_INIT hypercall: |
1008 | * lguest_data.reserve_mem, set up on the LGUEST_INIT hypercall. */ | 1022 | * it put the answer in lguest_data.reserve_mem */ |
1009 | reserve_top_address(lguest_data.reserve_mem); | 1023 | reserve_top_address(lguest_data.reserve_mem); |
1010 | 1024 | ||
1011 | /* If we don't initialize the lock dependency checker now, it crashes | 1025 | /* If we don't initialize the lock dependency checker now, it crashes |
@@ -1027,6 +1041,7 @@ __init void lguest_init(void) | |||
1027 | /* Math is always hard! */ | 1041 | /* Math is always hard! */ |
1028 | new_cpu_data.hard_math = 1; | 1042 | new_cpu_data.hard_math = 1; |
1029 | 1043 | ||
1044 | /* We don't have features. We have puppies! Puppies! */ | ||
1030 | #ifdef CONFIG_X86_MCE | 1045 | #ifdef CONFIG_X86_MCE |
1031 | mce_disabled = 1; | 1046 | mce_disabled = 1; |
1032 | #endif | 1047 | #endif |
@@ -1044,10 +1059,11 @@ __init void lguest_init(void) | |||
1044 | virtio_cons_early_init(early_put_chars); | 1059 | virtio_cons_early_init(early_put_chars); |
1045 | 1060 | ||
1046 | /* Last of all, we set the power management poweroff hook to point to | 1061 | /* Last of all, we set the power management poweroff hook to point to |
1047 | * the Guest routine to power off. */ | 1062 | * the Guest routine to power off, and the reboot hook to our restart |
1063 | * routine. */ | ||
1048 | pm_power_off = lguest_power_off; | 1064 | pm_power_off = lguest_power_off; |
1049 | |||
1050 | machine_ops.restart = lguest_restart; | 1065 | machine_ops.restart = lguest_restart; |
1066 | |||
1051 | /* Now we're set up, call start_kernel() in init/main.c and we proceed | 1067 | /* Now we're set up, call start_kernel() in init/main.c and we proceed |
1052 | * to boot as normal. It never returns. */ | 1068 | * to boot as normal. It never returns. */ |
1053 | start_kernel(); | 1069 | start_kernel(); |
diff --git a/arch/x86/lguest/i386_head.S b/arch/x86/lguest/i386_head.S index 95b6fbcded63..5c7cef34c9e7 100644 --- a/arch/x86/lguest/i386_head.S +++ b/arch/x86/lguest/i386_head.S | |||
@@ -5,13 +5,20 @@ | |||
5 | #include <asm/thread_info.h> | 5 | #include <asm/thread_info.h> |
6 | #include <asm/processor-flags.h> | 6 | #include <asm/processor-flags.h> |
7 | 7 | ||
8 | /*G:020 This is where we begin: head.S notes that the boot header's platform | 8 | /*G:020 Our story starts with the kernel booting into startup_32 in |
9 | * type field is "1" (lguest), so calls us here. | 9 | * arch/x86/kernel/head_32.S. It expects a boot header, which is created by |
10 | * the bootloader (the Launcher in our case). | ||
11 | * | ||
12 | * The startup_32 function does very little: it clears the uninitialized global | ||
13 | * C variables which we expect to be zero (ie. BSS) and then copies the boot | ||
14 | * header and kernel command line somewhere safe. Finally it checks the | ||
15 | * 'hardware_subarch' field. This was introduced in 2.6.24 for lguest and Xen: | ||
16 | * if it's set to '1' (lguest's assigned number), then it calls us here. | ||
10 | * | 17 | * |
11 | * WARNING: be very careful here! We're running at addresses equal to physical | 18 | * WARNING: be very careful here! We're running at addresses equal to physical |
12 | * addesses (around 0), not above PAGE_OFFSET as most code expectes | 19 | * addesses (around 0), not above PAGE_OFFSET as most code expectes |
13 | * (eg. 0xC0000000). Jumps are relative, so they're OK, but we can't touch any | 20 | * (eg. 0xC0000000). Jumps are relative, so they're OK, but we can't touch any |
14 | * data. | 21 | * data without remembering to subtract __PAGE_OFFSET! |
15 | * | 22 | * |
16 | * The .section line puts this code in .init.text so it will be discarded after | 23 | * The .section line puts this code in .init.text so it will be discarded after |
17 | * boot. */ | 24 | * boot. */ |
@@ -24,7 +31,7 @@ ENTRY(lguest_entry) | |||
24 | int $LGUEST_TRAP_ENTRY | 31 | int $LGUEST_TRAP_ENTRY |
25 | 32 | ||
26 | /* The Host put the toplevel pagetable in lguest_data.pgdir. The movsl | 33 | /* The Host put the toplevel pagetable in lguest_data.pgdir. The movsl |
27 | * instruction uses %esi implicitly as the source for the copy we' | 34 | * instruction uses %esi implicitly as the source for the copy we're |
28 | * about to do. */ | 35 | * about to do. */ |
29 | movl lguest_data - __PAGE_OFFSET + LGUEST_DATA_pgdir, %esi | 36 | movl lguest_data - __PAGE_OFFSET + LGUEST_DATA_pgdir, %esi |
30 | 37 | ||
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c index 3d936f232704..9cf33d3ee5bc 100644 --- a/arch/x86/mm/highmem_32.c +++ b/arch/x86/mm/highmem_32.c | |||
@@ -73,15 +73,15 @@ void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot) | |||
73 | { | 73 | { |
74 | enum fixed_addresses idx; | 74 | enum fixed_addresses idx; |
75 | unsigned long vaddr; | 75 | unsigned long vaddr; |
76 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | ||
77 | |||
78 | debug_kmap_atomic_prot(type); | ||
79 | 76 | ||
77 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | ||
80 | pagefault_disable(); | 78 | pagefault_disable(); |
81 | 79 | ||
82 | if (!PageHighMem(page)) | 80 | if (!PageHighMem(page)) |
83 | return page_address(page); | 81 | return page_address(page); |
84 | 82 | ||
83 | debug_kmap_atomic_prot(type); | ||
84 | |||
85 | idx = type + KM_TYPE_NR*smp_processor_id(); | 85 | idx = type + KM_TYPE_NR*smp_processor_id(); |
86 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | 86 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
87 | BUG_ON(!pte_none(*(kmap_pte-idx))); | 87 | BUG_ON(!pte_none(*(kmap_pte-idx))); |