xen-vtx-unstable
changeset 4456:445b12a7221a
bitkeeper revision 1.1267 (4251679dHqcry__n_OW9aNhfUtjZ_A)
Hand merged
Signed-off-by: michael.fetterman@cl.cam.ac.uk
Hand merged
Signed-off-by: michael.fetterman@cl.cam.ac.uk
line diff
1.1 --- a/.rootkeys Mon Apr 04 10:52:11 2005 +0000 1.2 +++ b/.rootkeys Mon Apr 04 16:13:17 2005 +0000 1.3 @@ -167,7 +167,6 @@ 3f108aeaLcGDgQdFAANLTUEid0a05w linux-2.4 1.4 3e5a4e66rw65CxyolW9PKz4GG42RcA linux-2.4.29-xen-sparse/drivers/char/tty_io.c 1.5 40c9c0c1pPwYE3-4i-oI3ubUu7UgvQ linux-2.4.29-xen-sparse/drivers/scsi/aic7xxx/Makefile 1.6 41f97f64nW0wmgLxhwzPTzkF4E5ERA linux-2.4.29-xen-sparse/drivers/usb/hcd.c 1.7 -3e5a4e669uzIE54VwucPYtGwXLAbzA linux-2.4.29-xen-sparse/fs/exec.c 1.8 3e5a4e66wbeCpsJgVf_U8Jde-CNcsA linux-2.4.29-xen-sparse/include/asm-xen/bugs.h 1.9 3e5a4e66HdSkvIV6SJ1evG_xmTmXHA linux-2.4.29-xen-sparse/include/asm-xen/desc.h 1.10 3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw linux-2.4.29-xen-sparse/include/asm-xen/fixmap.h 1.11 @@ -205,15 +204,15 @@ 3e5a4e68GxCIaFH4sy01v1wjapetaA linux-2.4 1.12 3f108af5VxPkLv13tXpXgoRKALQtXQ linux-2.4.29-xen-sparse/mm/mprotect.c 1.13 3e5a4e681xMPdF9xCMwpyfuYMySU5g linux-2.4.29-xen-sparse/mm/mremap.c 1.14 409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4.29-xen-sparse/mm/page_alloc.c 1.15 -3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.29-xen-sparse/mm/swapfile.c 1.16 -41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.29-xen-sparse/mm/vmalloc.c 1.17 41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.29-xen-sparse/net/core/skbuff.c 1.18 40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.11-xen-sparse/arch/xen/Kconfig 1.19 40f56237utH41NPukqHksuNf29IC9A linux-2.6.11-xen-sparse/arch/xen/Kconfig.drivers 1.20 40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.11-xen-sparse/arch/xen/Makefile 1.21 40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.11-xen-sparse/arch/xen/boot/Makefile 1.22 -40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig 1.23 -40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig 1.24 +40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 1.25 +424f001dsaMEQ1wWQnPmu0ejo6pgPA linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 1.26 +40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 1.27 +424f001dsBzCezYZD8vAn-h5D9ZRtQ linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 1.28 40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig 1.29 40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.11-xen-sparse/arch/xen/i386/Makefile 1.30 40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.11-xen-sparse/arch/xen/i386/kernel/Makefile 1.31 @@ -260,6 +259,40 @@ 40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6 1.32 414c113396tK1HTVeUalm3u-1DF16g linux-2.6.11-xen-sparse/arch/xen/kernel/skbuff.c 1.33 418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c 1.34 3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.11-xen-sparse/arch/xen/kernel/xen_proc.c 1.35 +424efaa6xahU2q85_dT-SjUJEaivfg linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig 1.36 +424efaa6kKleWe45IrqsG8gkejgEQA linux-2.6.11-xen-sparse/arch/xen/x86_64/Makefile 1.37 +424efaa7hjpGexXRf5TYBwgP7uT5Wg linux-2.6.11-xen-sparse/arch/xen/x86_64/defconfig 1.38 +424efaa6HSyuVodl6SxFGj39vlp6MA linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile 1.39 +424efaa7bVAw3Z_q0SdFivfNVavyIg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/asm-offsets.c 1.40 +424efaa7ddTVabh547Opf0u9vKmUXw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/e820.c 1.41 +424efaa72fQEHYQ-Sp2IW9X2xTA5zQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/early_printk.c 1.42 +424efaa7B_BWrAkLPJNoKk4EQY2a7w linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S 1.43 +424efaa7vhgi7th5QVICjfuHmEWOkw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S 1.44 +424efaa7tiMEZSAYepwyjaNWxyXF7Q linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head64.c 1.45 +424efaa6M6AGf53TJa2y9cl6coos0g linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/init_task.c 1.46 +424efaa6wHXXaloZygAv6ywDb7u7nQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/ioport.c 1.47 +424efaa6gOkc9_uHCLgvY_DXPqh_sg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/irq.c 1.48 +424efaa6ibN3xXEeXoxURmKfJF_CUA linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/ldt.c 1.49 +424efaa6aX4JkXAzBf4nqxRmLUfhqQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c 1.50 +424efaa7e8nVw04q-pK8XRFaHPVx_A linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/pci-nommu.c 1.51 +424efaa7CxY9cbhqapUfqVYnD7T9LQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/process.c 1.52 +424efaa7I-DPzj1fkZeYPJS7rA4FAw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/setup.c 1.53 +424efaa7DIVTR1U4waPGHucha9Xilg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/setup64.c 1.54 +424efaa6L1lrzwCIadTNxogSvljFwg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/signal.c 1.55 +424efaa61XzweJyW3v5Lb9egpe3rtw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/smp.c 1.56 +424efaa778MkpdkAIq0An1FjQENN_Q linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/smpboot.c 1.57 +424efaa7vzbNdhwhkQPhs1V7LrAH4Q linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/time.c 1.58 +424efaa7szEu90xkjpXk5TufZxxa4g linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c 1.59 +424efaa6sJsuHdGIGxm0r-ugsss3OQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/vsyscall.c 1.60 +424efaa6xbX9LkKyaXvgbL9s_39Trw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/x8664_ksyms.c 1.61 +424efaa670zlQTtnOYK_aNgqhmSx-Q linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/Makefile 1.62 +424efaa6HUC68-hBHgiWOMDfKZogIA linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/fault.c 1.63 +424f001d6S-OiHsk1n9gv1jGwws-9w linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/hypervisor.c 1.64 +424efaa65ELRJ3JfgQQKLzW6y0ECYQ linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/init.c 1.65 +424efaa60dTbHfv65JBLVhNLcNPcRA linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/ioremap.c 1.66 +424efaa6uMX8YJASAVJT8ral74dz9Q linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/pageattr.c 1.67 +424efaa629XgfZi3vvTAuQmhCqmvIA linux-2.6.11-xen-sparse/arch/xen/x86_64/pci/Makefile 1.68 +424efaa64SRL9FZhtQovFJAVh9sZlQ linux-2.6.11-xen-sparse/arch/xen/x86_64/pci/Makefile-BUS 1.69 41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.11-xen-sparse/drivers/Makefile 1.70 4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.11-xen-sparse/drivers/char/mem.c 1.71 4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.11-xen-sparse/drivers/char/tty_io.c 1.72 @@ -332,6 +365,39 @@ 40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6 1.73 40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/system.h 1.74 40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/tlbflush.h 1.75 41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/vga.h 1.76 +424f001delsctIT-_5gdbHsN9VfaQA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/arch_hooks.h 1.77 +424efa21QfpO4QqQf9ADB4U_2zo8dQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/bootsetup.h 1.78 +424efa21riixePBPesLRsVnhFxfEfQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/desc.h 1.79 +424efa21iAXuoKIT3-zDni6aryFlPQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/dma-mapping.h 1.80 +424efa21QCdU7W3An0BM0bboJZ6f4Q linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h 1.81 +424efa21S7Ruo0JzTFH1qwezpdtCbw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/floppy.h 1.82 +424f001ds3cL9WAgSH5Nja1BAkZfDg linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h 1.83 +424efa20tMbuEQuxvPjow-wkBx83rA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/io.h 1.84 +424efa20meDrUt6I2XWbpuf72e4gEw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/irq.h 1.85 +424f001d3cpZoX9SZD_zjTapOs-ZIQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/io_ports.h 1.86 +424f001eirTAXdX_1gCugGtzSGJUXw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/irq_vectors.h 1.87 +424f001eTD7ATy8MC71Lm2rOHHyUCA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/mach_time.h 1.88 +424f001ew4jIwfKeZUNa_U54UAaJcw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/mach_timer.h 1.89 +424f001ePIPWhBJGeTgj-KmiHOYvqw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/setup_arch_post.h 1.90 +424f001e0S9hTGOoEN8pgheQJ76yqQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/setup_arch_pre.h 1.91 +424f001eQPBrY1621DbCPKn9wK36ZQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/smpboot_hooks.h 1.92 +424efa21FvJNdHFfm2w2TOWohNsqDQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mmu_context.h 1.93 +424efa214neirHds4zbtwaefvG5PYA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/page.h 1.94 +424efa21-7jaHj-W-T4E9oM3kqFA7Q linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/param.h 1.95 +424efa20I76WtOlPh71MaXtai3-qZA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pci.h 1.96 +424efa20Fs7EHhAV6Hz_UtifwEfczg linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pda.h 1.97 +424efa20CGx-5HD8ahpdHxPW2KlrtA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pgalloc.h 1.98 +424efa21YaMjX7hz7eCkVNcNWRK42A linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h 1.99 +424efa21wPKwwFR1fcqrPD0_o3GKWA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/processor.h 1.100 +424efa20fTFqmaE0stH6lfB_4yN_lA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/ptrace.h 1.101 +424efa21fY4IvK0luYgDJHKV-MD3eQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/segment.h 1.102 +424efa21KcupuJlHgmPiTk_T214FrA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/smp.h 1.103 +424f001eT-7wjT_7K5AMlNVigIcuHA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/synch_bitops.h 1.104 +424efa210ZRt2U_8WmtyI7g74Nz-4Q linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/system.h 1.105 +424f001eBp9fMbZ0Mo2kRJQ84gMgRw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/timer.h 1.106 +424efa21Xk2acvaHYnpyTCLE6nU6hw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/tlbflush.h 1.107 +424efa21Ey6Q4L4AsXxcEwH3vMDeiw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/vga.h 1.108 +424efa214gNhOfFimFJHq4in24Yp1g linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/xor.h 1.109 41af4017PDMuSmMWtSRU5UC9Vylw5g linux-2.6.11-xen-sparse/include/asm-xen/balloon.h 1.110 40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.11-xen-sparse/include/asm-xen/ctrl_if.h 1.111 40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h 1.112 @@ -340,7 +406,6 @@ 412dfaeazclyNDM0cpnp60Yo4xulpQ linux-2.6 1.113 40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.11-xen-sparse/include/asm-xen/hypervisor.h 1.114 3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h 1.115 3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.11-xen-sparse/include/asm-xen/linux-public/suspend.h 1.116 -40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.11-xen-sparse/include/asm-xen/multicall.h 1.117 4122466356eIBnC9ot44WSVVIFyhQA linux-2.6.11-xen-sparse/include/asm-xen/queues.h 1.118 3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.11-xen-sparse/include/asm-xen/xen_proc.h 1.119 419b4e93z2S0gR17XTy8wg09JEwAhg linux-2.6.11-xen-sparse/include/linux/gfp.h 1.120 @@ -391,6 +456,7 @@ 422e4430-gOD358H8nGGnNWes08Nng netbsd-2. 1.121 413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs 1.122 413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.11/agpgart.patch 1.123 42372652KCUP-IOH9RN19YQmGhs4aA patches/linux-2.6.11/iomap.patch 1.124 +424f001e_M1Tnxc52rDrmCLelnDWMQ patches/linux-2.6.11/x86_64-linux.patch 1.125 3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile 1.126 40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk 1.127 4209033eUwhDBJ_bxejiv5c6gjXS4A tools/blktap/Makefile 1.128 @@ -465,6 +531,8 @@ 41e661e1giIEKbJ25qfiP-ke8u8hFA tools/exa 1.129 40ee75a967sxgcRY4Q7zXoVUaJ4flA tools/examples/vif-bridge 1.130 41fc0c18AFAVXA1uGm1JFWHMeeznVw tools/examples/vif-nat 1.131 41e661e1ooiRKlOfwumG6wwzc0PdhQ tools/examples/vif-route 1.132 +423ab2eaNCzxk3c-9yU1BwzxWvsDCQ tools/examples/vnc/Xservers 1.133 +423ab2ea7ajZLdZOI-8Z-bpNdNhhAQ tools/examples/vnc/Xvnc-xen 1.134 40ee75a93cqxHp6MiYXxxwR5j2_8QQ tools/examples/xend-config.sxp 1.135 41dde8af6M2Pm1Rrv_f5jEFC_BIOIA tools/examples/xmexample.vmx 1.136 41090ec8Pj_bkgCBpg2W7WfmNkumEA tools/examples/xmexample1 1.137 @@ -705,6 +773,17 @@ 4225f56dqlGC_UZ681F95mCgLbOeHQ tools/mis 1.138 4225f56dnmms-VFr1MiDVG_dYoM7IQ tools/misc/cpuperf/module/perfcntr.c 1.139 4225f56dYhIGQRD_kKVJ6xQrkqO0YQ tools/misc/cpuperf/p4perf.h 1.140 40ab2cfawIw8tsYo0dQKtp83h4qfTQ tools/misc/fakei386xen 1.141 +4249273cDOw6_uLUPvvUwWU1ZrJxnQ tools/misc/mbootpack/GPL 1.142 +4249273cSmj2h8Fj3UpTg0g-k6CLsA tools/misc/mbootpack/Makefile 1.143 +4249273c8gKIttF1QPiczvGo5AEOeA tools/misc/mbootpack/README 1.144 +4249273c4N4PAkvt3trNlto4h76k8A tools/misc/mbootpack/bin2c.c 1.145 +4249273cISg5nhW1Pt7OJ0jFu343ig tools/misc/mbootpack/bootsect.S 1.146 +4249273cUiz8CgLqnG7XYFa8x5-MoQ tools/misc/mbootpack/buildimage.c 1.147 +4249273c_gZ2yI_h-ci66E1Y5oSEPA tools/misc/mbootpack/mb_header.h 1.148 +4249273cWnlW0-lOIYua1bkKirn6vA tools/misc/mbootpack/mb_info.h 1.149 +4249273cA8LI3IMaSuhLOjykuMeQJA tools/misc/mbootpack/mbootpack.c 1.150 +4249273cVTgyv2HYd-mC29IDaz0-mg tools/misc/mbootpack/mbootpack.h 1.151 +4249273cLXQbRWFp_v-FqcyOm0sYtg tools/misc/mbootpack/setup.S 1.152 3f6dc136ZKOjd8PIqLbFBl_v-rnkGg tools/misc/miniterm/Makefile 1.153 3f6dc140C8tAeBfroAF24VrmCS4v_w tools/misc/miniterm/README 1.154 3f6dc142IHaf6XIcAYGmhV9nNSIHFQ tools/misc/miniterm/miniterm.c 1.155 @@ -996,6 +1075,7 @@ 421098b26C_0yoypoHqjDcJA9UrG_g xen/arch/ 1.156 421098b2PHgzf_Gg4R65YRNi_QzMKQ xen/arch/ia64/dom0_ops.c 1.157 421098b2O7jsNfzQXA1v3rbAc1QhpA xen/arch/ia64/dom_fw.c 1.158 421098b2ZlaBcyiuuPr3WpzaSDwg6Q xen/arch/ia64/domain.c 1.159 +4239e98a_HX-FCIcXtVqY0BbrDqVug xen/arch/ia64/hypercall.c 1.160 421098b3LYAS8xJkQiGP7tiTlyBt0Q xen/arch/ia64/idle0_task.c 1.161 421098b3ys5GAr4z6_H1jD33oem82g xen/arch/ia64/irq.c 1.162 421098b3Heh72KuoVlND3CH6c0B0aA xen/arch/ia64/lib/Makefile 1.163 @@ -1022,17 +1102,21 @@ 421098b4C0Lc3xag4Nm-_yC9IMTDqA xen/arch/ 1.164 421098b4weyd0AQTjPLmooChUJm13Q xen/arch/ia64/patch/linux-2.6.7/kregs.h 1.165 421098b4vHCejAUPem4w8p5V-AD1Ig xen/arch/ia64/patch/linux-2.6.7/lds.S 1.166 421098b4uooGl5X8zZM96qpmS0Furg xen/arch/ia64/patch/linux-2.6.7/linuxtime.h 1.167 +424dad01Txy4dcgKHGkTx1L2z7GuQA xen/arch/ia64/patch/linux-2.6.7/mca_asm.h 1.168 421098b4awnw3Jf23gohJWoK8s7-Qg xen/arch/ia64/patch/linux-2.6.7/minstate.h 1.169 421098b5hIfMbZlQTfrOKN4BtzJgDQ xen/arch/ia64/patch/linux-2.6.7/mm_bootmem.c 1.170 421098b53IVBoQPcDjFciZy86YEhRQ xen/arch/ia64/patch/linux-2.6.7/mm_contig.c 1.171 421098b5pZw41QuBTvhjvSol6aAHDw xen/arch/ia64/patch/linux-2.6.7/mmzone.h 1.172 421098b5B_dClZDGuPYeY3IXo8Hlbw xen/arch/ia64/patch/linux-2.6.7/page.h 1.173 421098b5saClfxPj36l47H9Um7h1Fw xen/arch/ia64/patch/linux-2.6.7/page_alloc.c 1.174 +424dab78_JGGpJDaAb6ZtkPJAkAKOA xen/arch/ia64/patch/linux-2.6.7/pal.S 1.175 +4241ed05l9ZdG7Aj0tygIxIwPRXhog xen/arch/ia64/patch/linux-2.6.7/pgalloc.h 1.176 421098b5OkmcjMBq8gxs7ZrTa4Ao6g xen/arch/ia64/patch/linux-2.6.7/processor.h 1.177 421098b51RLB6jWr6rIlpB2SNObxZg xen/arch/ia64/patch/linux-2.6.7/sal.h 1.178 421098b5WFeRnwGtZnHkSvHVzA4blg xen/arch/ia64/patch/linux-2.6.7/setup.c 1.179 421098b5Jm2i8abzb0mpT6mlEiKZDg xen/arch/ia64/patch/linux-2.6.7/slab.c 1.180 421098b5w6MBnluEpQJAWDTBFrbWSQ xen/arch/ia64/patch/linux-2.6.7/slab.h 1.181 +4241eb584dcZqssR_Uuz2-PgMJXZ5Q xen/arch/ia64/patch/linux-2.6.7/swiotlb.c 1.182 421098b5Cg7nbIXm3RhUF-uG3SKaUA xen/arch/ia64/patch/linux-2.6.7/system.h 1.183 421098b5XrkDYW_Nd9lg5CDgNzHLmg xen/arch/ia64/patch/linux-2.6.7/time.c 1.184 421098b5_kFbvZIIPM3bdCES1Ocqnw xen/arch/ia64/patch/linux-2.6.7/tlb.c 1.185 @@ -1046,6 +1130,7 @@ 41a26ebcJ30TFl1v2kR8rqpEBvOtVw xen/arch/ 1.186 421098b69pUiIJrqu_w0JMUnZ2uc2A xen/arch/ia64/smp.c 1.187 421098b6_ToSGrf6Pk1Uwg5aMAIBxg xen/arch/ia64/smpboot.c 1.188 421098b6AUdbxR3wyn1ATcmNuTao_Q xen/arch/ia64/tools/README.xenia64 1.189 +42376c6dfyY0eq8MS2dK3BW2rFuEGg xen/arch/ia64/tools/README.xenia64linux 1.190 421098b6rQ2BQ103qu1n1HNofbS2Og xen/arch/ia64/tools/mkbuildtree 1.191 41a26ebc--sjlYZQxmIxyCx3jw70qA xen/arch/ia64/vcpu.c 1.192 421098b6M2WhsJ_ZMzFamAQcdc5gzw xen/arch/ia64/vhpt.c 1.193 @@ -1195,6 +1280,8 @@ 421098b6Y3xqcv873Gvg1rQ5CChfFw xen/inclu 1.194 421098b6ZcIrn_gdqjUtdJyCE0YkZQ xen/include/asm-ia64/debugger.h 1.195 421098b6z0zSuW1rcSJK1gR8RUi-fw xen/include/asm-ia64/dom_fw.h 1.196 421098b6Nn0I7hGB8Mkd1Cis0KMkhA xen/include/asm-ia64/domain.h 1.197 +4241e879ry316Y_teC18DuK7mGKaQw xen/include/asm-ia64/domain_page.h 1.198 +4241e880hAyo_dk0PPDYj3LsMIvf-Q xen/include/asm-ia64/flushtlb.h 1.199 421098b6X3Fs2yht42TE2ufgKqt2Fw xen/include/asm-ia64/ia64_int.h 1.200 421098b7psFAn8kbeR-vcRCdc860Vw xen/include/asm-ia64/init.h 1.201 421098b7XC1A5PhA-lrU9pIO3sSSmA xen/include/asm-ia64/mm.h
2.1 --- a/BitKeeper/etc/ignore Mon Apr 04 10:52:11 2005 +0000 2.2 +++ b/BitKeeper/etc/ignore Mon Apr 04 16:13:17 2005 +0000 2.3 @@ -44,6 +44,7 @@ docs/user/internals.pl 2.4 docs/user/labels.pl 2.5 docs/user/user.css 2.6 docs/user/user.html 2.7 +extras/mini-os/h/hypervisor-ifs 2.8 extras/mini-os/h/xen-public 2.9 extras/mini-os/mini-os.* 2.10 install/* 2.11 @@ -92,6 +93,11 @@ tools/ioemu/iodev/device-model 2.12 tools/libxc/xen/* 2.13 tools/misc/cpuperf/cpuperf-perfcntr 2.14 tools/misc/cpuperf/cpuperf-xen 2.15 +tools/misc/mbootpack/bin2c 2.16 +tools/misc/mbootpack/bootsect 2.17 +tools/misc/mbootpack/bzimage_header.c 2.18 +tools/misc/mbootpack/mbootpack 2.19 +tools/misc/mbootpack/setup 2.20 tools/misc/miniterm/miniterm 2.21 tools/misc/xc_shadow 2.22 tools/misc/xen_cpuperf 2.23 @@ -111,6 +117,7 @@ tools/xcs/xcsdump 2.24 tools/xentrace/xentrace 2.25 tools/xfrd/xfrd 2.26 xen/BLOG 2.27 +xen/TAGS 2.28 xen/arch/x86/asm-offsets.s 2.29 xen/arch/x86/boot/mkelf32 2.30 xen/ddb/* 2.31 @@ -120,10 +127,12 @@ xen/drivers/pci/gen-devlist 2.32 xen/figlet/figlet 2.33 xen/include/asm 2.34 xen/include/asm-*/asm-offsets.h 2.35 +xen/include/hypervisor-ifs/arch 2.36 xen/include/public/public 2.37 xen/include/xen/*.new 2.38 xen/include/xen/banner.h 2.39 xen/include/xen/compile.h 2.40 +xen/tags 2.41 xen/tools/elf-reloc 2.42 xen/tools/figlet/figlet 2.43 xen/xen
3.1 --- a/BitKeeper/etc/logging_ok Mon Apr 04 10:52:11 2005 +0000 3.2 +++ b/BitKeeper/etc/logging_ok Mon Apr 04 16:13:17 2005 +0000 3.3 @@ -20,7 +20,9 @@ cl349@freefall.cl.cam.ac.uk 3.4 cl349@labyrinth.cl.cam.ac.uk 3.5 cwc22@centipede.cl.cam.ac.uk 3.6 cwc22@donkeykong.cl.cam.ac.uk 3.7 +djm@djmnc4000.(none) 3.8 djm@kirby.fc.hp.com 3.9 +djm@sportsman.spdomain 3.10 doogie@brainfood.com 3.11 gm281@boulderdash.cl.cam.ac.uk 3.12 gm281@tetrapod.cl.cam.ac.uk 3.13 @@ -50,6 +52,7 @@ kaf24@striker.cl.cam.ac.uk 3.14 kaf24@viper.(none) 3.15 kmacy@shemp.lab.netapp.com 3.16 laudney@eclipse.(none) 3.17 +leendert@watson.ibm.com 3.18 lynx@idefix.cl.cam.ac.uk 3.19 maf46@burn.cl.cam.ac.uk 3.20 mafetter@fleming.research 3.21 @@ -72,12 +75,14 @@ rneugeba@wyvis.research.intel-research.n 3.22 sd386@font.cl.cam.ac.uk 3.23 shand@spidean.research.intel-research.net 3.24 smh22@boulderdash.cl.cam.ac.uk 3.25 +smh22@firebug.cl.cam.ac.uk 3.26 smh22@labyrinth.cl.cam.ac.uk 3.27 smh22@tempest.cl.cam.ac.uk 3.28 smh22@uridium.cl.cam.ac.uk 3.29 sos22@donkeykong.cl.cam.ac.uk 3.30 sos22@douglas.cl.cam.ac.uk 3.31 sos22@labyrinth.cl.cam.ac.uk 3.32 +tjd21@arcadians.cl.cam.ac.uk 3.33 tlh20@elite.cl.cam.ac.uk 3.34 tlh20@labyrinth.cl.cam.ac.uk 3.35 tw275@labyrinth.cl.cam.ac.uk
4.1 --- a/Config.mk Mon Apr 04 10:52:11 2005 +0000 4.2 +++ b/Config.mk Mon Apr 04 16:13:17 2005 +0000 4.3 @@ -1,11 +1,16 @@ 4.4 # -*- mode: Makefile; -*- 4.5 + 4.6 # Currently supported architectures: x86_32, x86_64 4.7 XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/) 4.8 XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH) 4.9 4.10 -# 4.11 -# Tool configuration Makefile fragment 4.12 -# 4.13 +# Set ARCH/SUBARCH appropriately. 4.14 +override COMPILE_SUBARCH := $(XEN_COMPILE_ARCH) 4.15 +override TARGET_SUBARCH := $(XEN_TARGET_ARCH) 4.16 +override COMPILE_ARCH := $(patsubst x86%,x86,$(XEN_COMPILE_ARCH)) 4.17 +override TARGET_ARCH := $(patsubst x86%,x86,$(XEN_TARGET_ARCH)) 4.18 + 4.19 +# Tools to run on system hosting the build 4.20 HOSTCC = gcc 4.21 HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 4.22 4.23 @@ -19,7 +24,6 @@ STRIP = $(CROSS_COMPILE)strip 4.24 OBJCOPY = $(CROSS_COMPILE)objcopy 4.25 OBJDUMP = $(CROSS_COMPILE)objdump 4.26 4.27 - 4.28 ifneq ($(EXTRA_PREFIX),) 4.29 EXTRA_INCLUDES += $(EXTRA_PREFIX)/include 4.30 EXTRA_LIB += $(EXTRA_PREFIX)/lib 4.31 @@ -27,7 +31,3 @@ endif 4.32 4.33 LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i)) 4.34 CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i)) 4.35 - 4.36 -CFLAGS += -g 4.37 - 4.38 -
5.1 --- a/buildconfigs/Rules.mk Mon Apr 04 10:52:11 2005 +0000 5.2 +++ b/buildconfigs/Rules.mk Mon Apr 04 16:13:17 2005 +0000 5.3 @@ -1,3 +1,5 @@ 5.4 + 5.5 +include Config.mk 5.6 5.7 # We expect these two to already be set if people 5.8 # are using the top-level Makefile
6.1 --- a/buildconfigs/mk.linux-2.6-xen0 Mon Apr 04 10:52:11 2005 +0000 6.2 +++ b/buildconfigs/mk.linux-2.6-xen0 Mon Apr 04 16:13:17 2005 +0000 6.3 @@ -32,7 +32,7 @@ build: $(LINUX_DIR)/include/linux/autoco 6.4 # Re-use config from install dir if one exits else use default config 6.5 [ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \ 6.6 cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \ 6.7 - || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \ 6.8 + || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig_$(TARGET_SUBARCH) \ 6.9 $(LINUX_DIR)/.config 6.10 $(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig 6.11
7.1 --- a/buildconfigs/mk.linux-2.6-xenU Mon Apr 04 10:52:11 2005 +0000 7.2 +++ b/buildconfigs/mk.linux-2.6-xenU Mon Apr 04 16:13:17 2005 +0000 7.3 @@ -32,7 +32,7 @@ build: $(LINUX_DIR)/include/linux/autoco 7.4 # Re-use config from install dir if one exits else use default config 7.5 [ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \ 7.6 cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \ 7.7 - || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \ 7.8 + || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig_$(TARGET_SUBARCH) \ 7.9 $(LINUX_DIR)/.config 7.10 $(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig 7.11
8.1 --- a/docs/src/interface.tex Mon Apr 04 10:52:11 2005 +0000 8.2 +++ b/docs/src/interface.tex Mon Apr 04 16:13:17 2005 +0000 8.3 @@ -601,22 +601,24 @@ documentation. 8.4 8.5 \section{Mailing lists} 8.6 8.7 -There are currently three official Xen mailing lists: 8.8 +There are currently four official Xen mailing lists: 8.9 8.10 \begin{description} 8.11 -\item[xen-devel@lists.sourceforge.net] Used for development 8.12 +\item[xen-devel@lists.xensource.com] Used for development 8.13 +discussions and bug reports. Subscribe at: \\ 8.14 +{\small {\tt http://lists.xensource.com/xen-devel}} 8.15 +\item[xen-users@lists.xensource.com] Used for installation and usage 8.16 discussions and requests for help. Subscribe at: \\ 8.17 -{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-devel}} 8.18 -\item[xen-announce@lists.sourceforge.net] Used for announcements only. 8.19 +{\small {\tt http://lists.xensource.com/xen-users}} 8.20 +\item[xen-announce@lists.xensource.com] Used for announcements only. 8.21 Subscribe at: \\ 8.22 -{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-announce}} 8.23 -\item[xen-changelog@lists.sourceforge.net] Changelog feed 8.24 +{\small {\tt http://lists.xensource.com/xen-announce}} 8.25 +\item[xen-changelog@lists.xensource.com] Changelog feed 8.26 from the unstable and 2.0 trees - developer oriented. Subscribe at: \\ 8.27 -{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-changelog}} 8.28 +{\small {\tt http://lists.xensource.com/xen-changelog}} 8.29 \end{description} 8.30 8.31 -Of these, xen-devel is the most active; it is currently used for 8.32 -both developer and user-related discussions. 8.33 +Of these, xen-devel is the most active. 8.34 8.35 8.36
9.1 --- a/docs/src/user.tex Mon Apr 04 10:52:11 2005 +0000 9.2 +++ b/docs/src/user.tex Mon Apr 04 16:13:17 2005 +0000 9.3 @@ -1101,7 +1101,7 @@ features. 9.4 To initialise a partition to support LVM volumes: 9.5 \begin{quote} 9.6 \begin{verbatim} 9.7 -# pvcreate /dev/sda10 9.8 +# pvcreate /dev/sda10 9.9 \end{verbatim} 9.10 \end{quote} 9.11 9.12 @@ -1850,23 +1850,23 @@ documentation (including the lateset ver 9.13 9.14 \section{Mailing Lists} 9.15 9.16 -There are currently three official Xen mailing lists: 9.17 +There are currently four official Xen mailing lists: 9.18 9.19 \begin{description} 9.20 -\item[xen-devel@lists.sourceforge.net] Used for development 9.21 +\item[xen-devel@lists.xensource.com] Used for development 9.22 +discussions and bug reports. Subscribe at: \\ 9.23 +{\small {\tt http://lists.xensource.com/xen-devel}} 9.24 +\item[xen-users@lists.xensource.com] Used for installation and usage 9.25 discussions and requests for help. Subscribe at: \\ 9.26 -\path{http://lists.sourceforge.net/mailman/listinfo/xen-devel} 9.27 -\item[xen-announce@lists.sourceforge.net] Used for announcements only. 9.28 +{\small {\tt http://lists.xensource.com/xen-users}} 9.29 +\item[xen-announce@lists.xensource.com] Used for announcements only. 9.30 Subscribe at: \\ 9.31 -\path{http://lists.sourceforge.net/mailman/listinfo/xen-announce} 9.32 -\item[xen-changelog@lists.sourceforge.net] Changelog feed 9.33 +{\small {\tt http://lists.xensource.com/xen-announce}} 9.34 +\item[xen-changelog@lists.xensource.com] Changelog feed 9.35 from the unstable and 2.0 trees - developer oriented. Subscribe at: \\ 9.36 -\path{http://lists.sourceforge.net/mailman/listinfo/xen-changelog} 9.37 +{\small {\tt http://lists.xensource.com/xen-changelog}} 9.38 \end{description} 9.39 9.40 -Although there is no specific user support list, the developers try to 9.41 -assist users who post on xen-devel. As the bulk of traffic on this 9.42 -list increases, a dedicated user support list may be introduced. 9.43 9.44 \appendix 9.45
10.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/ctrl_if.c Mon Apr 04 10:52:11 2005 +0000 10.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/ctrl_if.c Mon Apr 04 16:13:17 2005 +0000 10.3 @@ -470,8 +470,8 @@ ctrl_if_resume(void) 10.4 10.5 10.6 /* Sync up with shared indexes. */ 10.7 - FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring); 10.8 - BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring); 10.9 + FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM); 10.10 + BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM); 10.11 10.12 ctrl_if_evtchn = xen_start_info->domain_controller_evtchn; 10.13 ctrl_if_irq = bind_evtchn_to_irq(ctrl_if_evtchn); 10.14 @@ -498,8 +498,8 @@ ctrl_if_init(void *dummy __unused) 10.15 for ( i = 0; i < 256; i++ ) 10.16 ctrl_if_rxmsg_handler[i] = ctrl_if_rxmsg_default_handler; 10.17 10.18 - FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring); 10.19 - BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring); 10.20 + FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM); 10.21 + BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM); 10.22 10.23 mtx_init(&ctrl_if_lock, "ctrlif", NULL, MTX_SPIN | MTX_NOWITNESS); 10.24
11.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c Mon Apr 04 10:52:11 2005 +0000 11.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c Mon Apr 04 16:13:17 2005 +0000 11.3 @@ -540,7 +540,7 @@ mcl_queue_pt_update(vm_offset_t va, vm_p 11.4 MCL_QUEUE[MCL_IDX].op = __HYPERVISOR_update_va_mapping; 11.5 MCL_QUEUE[MCL_IDX].args[0] = (unsigned long)va; 11.6 MCL_QUEUE[MCL_IDX].args[1] = (unsigned long)ma; 11.7 - MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG; 11.8 + MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG|UVMF_LOCAL; 11.9 mcl_increment_idx(); 11.10 } 11.11
12.1 --- a/freebsd-5.3-xen-sparse/i386-xen/include/hypervisor.h Mon Apr 04 10:52:11 2005 +0000 12.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/include/hypervisor.h Mon Apr 04 16:13:17 2005 +0000 12.3 @@ -176,7 +176,7 @@ static inline long HYPERVISOR_set_timer_ 12.4 __asm__ __volatile__ ( 12.5 TRAP_INSTR 12.6 : "=a" (ret) : "0" (__HYPERVISOR_set_timer_op), 12.7 - "b" (timeout_hi), "c" (timeout_lo) : "memory" ); 12.8 + "b" (timeout_lo), "c" (timeout_hi) : "memory" ); 12.9 12.10 return ret; 12.11 }
13.1 --- a/freebsd-5.3-xen-sparse/i386-xen/xen/blkfront/xb_blkfront.c Mon Apr 04 10:52:11 2005 +0000 13.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/xen/blkfront/xb_blkfront.c Mon Apr 04 16:13:17 2005 +0000 13.3 @@ -102,8 +102,10 @@ static blkif_response_t blkif_control_rs 13.4 13.5 static blkif_front_ring_t blk_ring; 13.6 13.7 +#define BLK_RING_SIZE __RING_SIZE((blkif_sring_t *)0, PAGE_SIZE) 13.8 + 13.9 static unsigned long rec_ring_free; 13.10 -blkif_request_t rec_ring[RING_SIZE(&blk_ring)]; /* shadow recovery ring */ 13.11 +blkif_request_t rec_ring[BLK_RING_SIZE]; 13.12 13.13 /* XXX move to xb_vbd.c when VBD update support is added */ 13.14 #define MAX_VBDS 64 13.15 @@ -133,7 +135,7 @@ GET_ID_FROM_FREELIST( void ) 13.16 { 13.17 unsigned long free = rec_ring_free; 13.18 13.19 - KASSERT(free <= RING_SIZE(&blk_ring), ("free %lu > RING_SIZE", free)); 13.20 + KASSERT(free <= BLK_RING_SIZE, ("free %lu > RING_SIZE", free)); 13.21 13.22 rec_ring_free = rec_ring[free].id; 13.23 13.24 @@ -638,7 +640,7 @@ blkif_disconnect(void) 13.25 if (blk_ring.sring) free(blk_ring.sring, M_DEVBUF); 13.26 blk_ring.sring = (blkif_sring_t *)malloc(PAGE_SIZE, M_DEVBUF, M_WAITOK); 13.27 SHARED_RING_INIT(blk_ring.sring); 13.28 - FRONT_RING_INIT(&blk_ring, blk_ring.sring); 13.29 + FRONT_RING_INIT(&blk_ring, blk_ring.sring, PAGE_SIZE); 13.30 blkif_state = BLKIF_STATE_DISCONNECTED; 13.31 blkif_send_interface_connect(); 13.32 } 13.33 @@ -662,7 +664,7 @@ blkif_recover(void) 13.34 * This will need to be fixed once we have barriers */ 13.35 13.36 /* Stage 1 : Find active and move to safety. */ 13.37 - for ( i = 0; i < RING_SIZE(&blk_ring); i++ ) { 13.38 + for ( i = 0; i < BLK_RING_SIZE; i++ ) { 13.39 if ( rec_ring[i].id >= KERNBASE ) { 13.40 req = RING_GET_REQUEST(&blk_ring, 13.41 blk_ring.req_prod_pvt); 13.42 @@ -682,11 +684,11 @@ blkif_recover(void) 13.43 } 13.44 13.45 /* Stage 3 : Set up free list. */ 13.46 - for ( ; i < RING_SIZE(&blk_ring); i++ ){ 13.47 + for ( ; i < BLK_RING_SIZE; i++ ){ 13.48 rec_ring[i].id = i+1; 13.49 } 13.50 rec_ring_free = blk_ring.req_prod_pvt; 13.51 - rec_ring[RING_SIZE(&blk_ring)-1].id = 0x0fffffff; 13.52 + rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff; 13.53 13.54 /* blk_ring.req_prod will be set when we flush_requests().*/ 13.55 wmb(); 13.56 @@ -874,10 +876,10 @@ xb_init(void *unused) 13.57 printk("[XEN] Initialising virtual block device driver\n"); 13.58 13.59 rec_ring_free = 0; 13.60 - for (i = 0; i < RING_SIZE(&blk_ring); i++) { 13.61 + for (i = 0; i < BLK_RING_SIZE; i++) { 13.62 rec_ring[i].id = i+1; 13.63 } 13.64 - rec_ring[RING_SIZE(&blk_ring)-1].id = 0x0fffffff; 13.65 + rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff; 13.66 13.67 (void)ctrl_if_register_receiver(CMSG_BLKIF_FE, blkif_ctrlif_rx, 0); 13.68
14.1 --- a/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c Mon Apr 04 10:52:11 2005 +0000 14.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c Mon Apr 04 16:13:17 2005 +0000 14.3 @@ -440,7 +440,7 @@ xn_alloc_rx_buffers(struct xn_softc *sc) 14.4 PT_UPDATES_FLUSH(); 14.5 14.6 /* After all PTEs have been zapped we blow away stale TLB entries. */ 14.7 - xn_rx_mcl[i-1].args[2] = UVMF_FLUSH_TLB; 14.8 + xn_rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH|UVMF_LOCAL; 14.9 14.10 /* Give away a batch of pages. */ 14.11 xn_rx_mcl[i].op = __HYPERVISOR_dom_mem_op;
15.1 --- a/linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c Mon Apr 04 10:52:11 2005 +0000 15.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c Mon Apr 04 16:13:17 2005 +0000 15.3 @@ -114,12 +114,6 @@ static int xlvbd_init_device(vdisk_t *xd 15.4 if ( (bd = bdget(device)) == NULL ) 15.5 return -1; 15.6 15.7 - /* 15.8 - * Update of partition info, and check of usage count, is protected 15.9 - * by the per-block-device semaphore. 15.10 - */ 15.11 - down(&bd->bd_sem); 15.12 - 15.13 if ( ((disk = xldev_to_xldisk(device)) != NULL) && (disk->usage != 0) ) 15.14 { 15.15 printk(KERN_ALERT "VBD update failed - in use [dev=%x]\n", device); 15.16 @@ -169,14 +163,14 @@ static int xlvbd_init_device(vdisk_t *xd 15.17 blksize_size[major] = xlide_blksize_size; 15.18 hardsect_size[major] = xlide_hardsect_size; 15.19 max_sectors[major] = xlide_max_sectors; 15.20 - read_ahead[major] = 8; /* from drivers/ide/ide-probe.c */ 15.21 + read_ahead[major] = 8; 15.22 } 15.23 else if ( is_scsi ) 15.24 { 15.25 blksize_size[major] = xlscsi_blksize_size; 15.26 hardsect_size[major] = xlscsi_hardsect_size; 15.27 max_sectors[major] = xlscsi_max_sectors; 15.28 - read_ahead[major] = 0; /* XXX 8; -- guessing */ 15.29 + read_ahead[major] = 8; 15.30 } 15.31 else 15.32 { 15.33 @@ -331,7 +325,6 @@ static int xlvbd_init_device(vdisk_t *xd 15.34 } 15.35 15.36 out: 15.37 - up(&bd->bd_sem); 15.38 bdput(bd); 15.39 return rc; 15.40 } 15.41 @@ -356,12 +349,6 @@ static int xlvbd_remove_device(int devic 15.42 if ( (bd = bdget(device)) == NULL ) 15.43 return -1; 15.44 15.45 - /* 15.46 - * Update of partition info, and check of usage count, is protected 15.47 - * by the per-block-device semaphore. 15.48 - */ 15.49 - down(&bd->bd_sem); 15.50 - 15.51 if ( ((gd = get_gendisk(device)) == NULL) || 15.52 ((disk = xldev_to_xldisk(device)) == NULL) ) 15.53 BUG(); 15.54 @@ -423,7 +410,6 @@ static int xlvbd_remove_device(int devic 15.55 } 15.56 15.57 out: 15.58 - up(&bd->bd_sem); 15.59 bdput(bd); 15.60 return rc; 15.61 } 15.62 @@ -529,20 +515,17 @@ int xlvbd_init(void) 15.63 /* Initialize the global arrays. */ 15.64 for ( i = 0; i < 256; i++ ) 15.65 { 15.66 - /* from the generic ide code (drivers/ide/ide-probe.c, etc) */ 15.67 xlide_blksize_size[i] = 1024; 15.68 xlide_hardsect_size[i] = 512; 15.69 - xlide_max_sectors[i] = 128; /* 'hwif->rqsize' if we knew it */ 15.70 + xlide_max_sectors[i] = 512; 15.71 15.72 - /* from the generic scsi disk code (drivers/scsi/sd.c) */ 15.73 - xlscsi_blksize_size[i] = 1024; /* XXX 512; */ 15.74 + xlscsi_blksize_size[i] = 1024; 15.75 xlscsi_hardsect_size[i] = 512; 15.76 - xlscsi_max_sectors[i] = 128*8; /* XXX 128; */ 15.77 + xlscsi_max_sectors[i] = 512; 15.78 15.79 - /* we don't really know what to set these too since it depends */ 15.80 xlvbd_blksize_size[i] = 512; 15.81 xlvbd_hardsect_size[i] = 512; 15.82 - xlvbd_max_sectors[i] = 128; 15.83 + xlvbd_max_sectors[i] = 512; 15.84 } 15.85 15.86 vbd_info = kmalloc(MAX_VBDS * sizeof(vdisk_t), GFP_KERNEL);
16.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/head.S Mon Apr 04 10:52:11 2005 +0000 16.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/head.S Mon Apr 04 16:13:17 2005 +0000 16.3 @@ -1,6 +1,8 @@ 16.4 16.5 .section __xen_guest 16.6 - .asciz "GUEST_OS=linux,GUEST_VER=2.4,XEN_VER=3.0,VIRT_BASE=0xC0000000" 16.7 + .ascii "GUEST_OS=linux,GUEST_VER=2.4,XEN_VER=3.0,VIRT_BASE=0xC0000000" 16.8 + .ascii ",LOADER=generic" 16.9 + .byte 0 16.10 16.11 .text 16.12 #include <linux/config.h>
17.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c Mon Apr 04 10:52:11 2005 +0000 17.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c Mon Apr 04 16:13:17 2005 +0000 17.3 @@ -14,6 +14,7 @@ 17.4 #include <linux/vmalloc.h> 17.5 #include <linux/slab.h> 17.6 17.7 +#include <asm/mmu_context.h> 17.8 #include <asm/uaccess.h> 17.9 #include <asm/system.h> 17.10 #include <asm/ldt.h> 17.11 @@ -58,7 +59,6 @@ static int alloc_ldt(mm_context_t *pc, i 17.12 pc->ldt, 17.13 (pc->size*LDT_ENTRY_SIZE)/PAGE_SIZE); 17.14 load_LDT(pc); 17.15 - flush_page_update_queue(); 17.16 #ifdef CONFIG_SMP 17.17 if (current->mm->cpu_vm_mask != (1<<smp_processor_id())) 17.18 smp_call_function(flush_ldt, 0, 1, 1); 17.19 @@ -66,6 +66,8 @@ static int alloc_ldt(mm_context_t *pc, i 17.20 } 17.21 wmb(); 17.22 if (oldsize) { 17.23 + make_pages_writable( 17.24 + oldldt, (oldsize*LDT_ENTRY_SIZE)/PAGE_SIZE); 17.25 if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE) 17.26 vfree(oldldt); 17.27 else 17.28 @@ -118,7 +120,6 @@ void destroy_context(struct mm_struct *m 17.29 make_pages_writable( 17.30 mm->context.ldt, 17.31 (mm->context.size*LDT_ENTRY_SIZE)/PAGE_SIZE); 17.32 - flush_page_update_queue(); 17.33 if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE) 17.34 vfree(mm->context.ldt); 17.35 else
18.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/process.c Mon Apr 04 10:52:11 2005 +0000 18.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/process.c Mon Apr 04 16:13:17 2005 +0000 18.3 @@ -43,7 +43,6 @@ 18.4 #include <asm/i387.h> 18.5 #include <asm/desc.h> 18.6 #include <asm/mmu_context.h> 18.7 -#include <asm/multicall.h> 18.8 #include <asm-xen/xen-public/physdev.h> 18.9 18.10 #include <linux/irq.h> 18.11 @@ -305,19 +304,7 @@ void fastcall __switch_to(struct task_st 18.12 { 18.13 struct thread_struct *next = &next_p->thread; 18.14 physdev_op_t op; 18.15 - 18.16 - __cli(); 18.17 - 18.18 - /* 18.19 - * We clobber FS and GS here so that we avoid a GPF when restoring previous 18.20 - * task's FS/GS values in Xen when the LDT is switched. If we don't do this 18.21 - * then we can end up erroneously re-flushing the page-update queue when 18.22 - * we 'execute_multicall_list'. 18.23 - */ 18.24 - __asm__ __volatile__ ( 18.25 - "xorl %%eax,%%eax; movl %%eax,%%fs; movl %%eax,%%gs" : : : "eax" ); 18.26 - 18.27 - MULTICALL_flush_page_update_queue(); 18.28 + multicall_entry_t _mcl[8], *mcl = _mcl; 18.29 18.30 /* 18.31 * This is basically 'unlazy_fpu', except that we queue a multicall to 18.32 @@ -332,21 +319,26 @@ void fastcall __switch_to(struct task_st 18.33 asm volatile( "fnsave %0 ; fwait" 18.34 : "=m" (prev_p->thread.i387.fsave) ); 18.35 prev_p->flags &= ~PF_USEDFPU; 18.36 - queue_multicall1(__HYPERVISOR_fpu_taskswitch, 1); 18.37 + mcl->op = __HYPERVISOR_fpu_taskswitch; 18.38 + mcl->args[0] = 1; 18.39 + mcl++; 18.40 } 18.41 18.42 - queue_multicall2(__HYPERVISOR_stack_switch, __KERNEL_DS, next->esp0); 18.43 + mcl->op = __HYPERVISOR_stack_switch; 18.44 + mcl->args[0] = __KERNEL_DS; 18.45 + mcl->args[1] = next->esp0; 18.46 + mcl++; 18.47 18.48 if ( prev_p->thread.io_pl != next->io_pl ) 18.49 { 18.50 op.cmd = PHYSDEVOP_SET_IOPL; 18.51 op.u.set_iopl.iopl = next->io_pl; 18.52 - queue_multicall1(__HYPERVISOR_physdev_op, (unsigned long)&op); 18.53 + mcl->op = __HYPERVISOR_physdev_op; 18.54 + mcl->args[0] = (unsigned long)&op; 18.55 + mcl++; 18.56 } 18.57 18.58 - /* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */ 18.59 - execute_multicall_list(); 18.60 - __sti(); 18.61 + (void)HYPERVISOR_multicall(_mcl, mcl - _mcl); 18.62 18.63 /* 18.64 * Restore %fs and %gs.
19.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c Mon Apr 04 10:52:11 2005 +0000 19.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c Mon Apr 04 16:13:17 2005 +0000 19.3 @@ -62,9 +62,6 @@ shared_info_t *HYPERVISOR_shared_info = 19.4 19.5 unsigned int *phys_to_machine_mapping, *pfn_to_mfn_frame_list; 19.6 19.7 -DEFINE_PER_CPU(multicall_entry_t, multicall_list[8]); 19.8 -DEFINE_PER_CPU(int, nr_multicall_ents); 19.9 - 19.10 /* 19.11 * Machine setup.. 19.12 */ 19.13 @@ -231,8 +228,10 @@ void __init setup_arch(char **cmdline_p) 19.14 blk_nohighio = 1; 19.15 #endif 19.16 19.17 - HYPERVISOR_vm_assist(VMASST_CMD_enable, 19.18 - VMASST_TYPE_4gb_segments); 19.19 + HYPERVISOR_vm_assist( 19.20 + VMASST_CMD_enable, VMASST_TYPE_4gb_segments); 19.21 + HYPERVISOR_vm_assist( 19.22 + VMASST_CMD_enable, VMASST_TYPE_writable_pagetables); 19.23 19.24 HYPERVISOR_set_callbacks( 19.25 __KERNEL_CS, (unsigned long)hypervisor_callback, 19.26 @@ -1206,7 +1205,6 @@ void __init cpu_init (void) 19.27 HYPERVISOR_stack_switch(__KERNEL_DS, current->thread.esp0); 19.28 19.29 load_LDT(&init_mm.context); 19.30 - flush_page_update_queue(); 19.31 19.32 /* Force FPU initialization. */ 19.33 current->flags &= ~PF_USEDFPU;
20.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c Mon Apr 04 10:52:11 2005 +0000 20.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c Mon Apr 04 16:13:17 2005 +0000 20.3 @@ -316,15 +316,7 @@ asmlinkage void do_general_protection(st 20.4 __asm__ __volatile__ ( "sldt %0" : "=r" (ldt) ); 20.5 if ( ldt == 0 ) 20.6 { 20.7 - mmu_update_t u; 20.8 - u.ptr = MMU_EXTENDED_COMMAND; 20.9 - u.ptr |= (unsigned long)&default_ldt[0]; 20.10 - u.val = MMUEXT_SET_LDT | (5 << MMUEXT_CMD_SHIFT); 20.11 - if ( unlikely(HYPERVISOR_mmu_update(&u, 1, NULL) < 0) ) 20.12 - { 20.13 - show_trace(NULL); 20.14 - panic("Failed to install default LDT"); 20.15 - } 20.16 + xen_set_ldt((unsigned long)&default_ldt[0], 5); 20.17 return; 20.18 } 20.19 }
21.1 --- a/linux-2.4.29-xen-sparse/arch/xen/mm/fault.c Mon Apr 04 10:52:11 2005 +0000 21.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/mm/fault.c Mon Apr 04 16:13:17 2005 +0000 21.3 @@ -84,9 +84,6 @@ asmlinkage void do_page_fault(struct pt_ 21.4 error_code &= 3; 21.5 error_code |= (regs->xcs & 2) << 1; 21.6 21.7 - /* ensure all updates have completed */ 21.8 - flush_page_update_queue(); 21.9 - 21.10 /* 21.11 * We fault-in kernel-space virtual memory on-demand. The 21.12 * 'reference' page table is init_mm.pgd. 21.13 @@ -296,7 +293,6 @@ vmalloc_fault: 21.14 if (!pmd_present(*pmd_k)) 21.15 goto no_context; 21.16 set_pmd(pmd, *pmd_k); 21.17 - XEN_flush_page_update_queue(); /* flush PMD update */ 21.18 21.19 pte_k = pte_offset(pmd_k, address); 21.20 if (!pte_present(*pte_k))
22.1 --- a/linux-2.4.29-xen-sparse/arch/xen/mm/init.c Mon Apr 04 10:52:11 2005 +0000 22.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/mm/init.c Mon Apr 04 16:13:17 2005 +0000 22.3 @@ -142,7 +142,7 @@ static inline void set_pte_phys (unsigne 22.4 } 22.5 pte = pte_offset(pmd, vaddr); 22.6 22.7 - queue_l1_entry_update(pte, phys | pgprot_val(prot)); 22.8 + set_pte(pte, (pte_t) { phys | pgprot_val(prot) }); 22.9 22.10 /* 22.11 * It's enough to flush this one mapping. 22.12 @@ -201,17 +201,13 @@ static void __init fixrange_init (unsign 22.13 kpgd = pgd_offset_k((unsigned long)pte); 22.14 kpmd = pmd_offset(kpgd, (unsigned long)pte); 22.15 kpte = pte_offset(kpmd, (unsigned long)pte); 22.16 - queue_l1_entry_update(kpte, 22.17 - (*(unsigned long *)kpte)&~_PAGE_RW); 22.18 - 22.19 + set_pte(kpte, pte_wrprotect(*kpte)); 22.20 set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte))); 22.21 } 22.22 vaddr += PMD_SIZE; 22.23 } 22.24 j = 0; 22.25 } 22.26 - 22.27 - XEN_flush_page_update_queue(); 22.28 } 22.29 22.30 22.31 @@ -257,10 +253,8 @@ static void __init pagetable_init (void) 22.32 kpgd = pgd_offset_k((unsigned long)pte_base); 22.33 kpmd = pmd_offset(kpgd, (unsigned long)pte_base); 22.34 kpte = pte_offset(kpmd, (unsigned long)pte_base); 22.35 - queue_l1_entry_update(kpte, 22.36 - (*(unsigned long *)kpte)&~_PAGE_RW); 22.37 + set_pte(kpte, pte_wrprotect(*kpte)); 22.38 set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte_base))); 22.39 - XEN_flush_page_update_queue(); 22.40 } 22.41 } 22.42 22.43 @@ -311,6 +305,7 @@ void __init paging_init(void) 22.44 pagetable_init(); 22.45 22.46 zone_sizes_init(); 22.47 + 22.48 /* Switch to the real shared_info page, and clear the dummy page. */ 22.49 set_fixmap(FIX_SHARED_INFO, xen_start_info.shared_info); 22.50 HYPERVISOR_shared_info = (shared_info_t *)fix_to_virt(FIX_SHARED_INFO);
23.1 --- a/linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c Mon Apr 04 10:52:11 2005 +0000 23.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c Mon Apr 04 16:13:17 2005 +0000 23.3 @@ -113,12 +113,7 @@ int direct_remap_area_pages(struct mm_st 23.4 int i; 23.5 unsigned long start_address; 23.6 #define MAX_DIRECTMAP_MMU_QUEUE 130 23.7 - mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *w, *v; 23.8 - 23.9 - u[0].ptr = MMU_EXTENDED_COMMAND; 23.10 - u[0].val = MMUEXT_SET_FOREIGNDOM; 23.11 - u[0].val |= (unsigned long)domid << 16; 23.12 - v = w = &u[1]; 23.13 + mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *v = u; 23.14 23.15 start_address = address; 23.16 23.17 @@ -130,11 +125,11 @@ int direct_remap_area_pages(struct mm_st 23.18 __direct_remap_area_pages( mm, 23.19 start_address, 23.20 address-start_address, 23.21 - w); 23.22 + u); 23.23 23.24 - if ( HYPERVISOR_mmu_update(u, v - u, NULL) < 0 ) 23.25 + if ( HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0 ) 23.26 return -EFAULT; 23.27 - v = w; 23.28 + v = u; 23.29 start_address = address; 23.30 } 23.31 23.32 @@ -149,14 +144,14 @@ int direct_remap_area_pages(struct mm_st 23.33 v++; 23.34 } 23.35 23.36 - if ( v != w ) 23.37 + if ( v != u ) 23.38 { 23.39 /* get the ptep's filled in */ 23.40 __direct_remap_area_pages(mm, 23.41 start_address, 23.42 address-start_address, 23.43 - w); 23.44 - if ( unlikely(HYPERVISOR_mmu_update(u, v - u, NULL) < 0) ) 23.45 + u); 23.46 + if ( unlikely(HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0) ) 23.47 return -EFAULT; 23.48 } 23.49
24.1 --- a/linux-2.4.29-xen-sparse/fs/exec.c Mon Apr 04 10:52:11 2005 +0000 24.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 24.3 @@ -1,1179 +0,0 @@ 24.4 -/* 24.5 - * linux/fs/exec.c 24.6 - * 24.7 - * Copyright (C) 1991, 1992 Linus Torvalds 24.8 - */ 24.9 - 24.10 -/* 24.11 - * #!-checking implemented by tytso. 24.12 - */ 24.13 -/* 24.14 - * Demand-loading implemented 01.12.91 - no need to read anything but 24.15 - * the header into memory. The inode of the executable is put into 24.16 - * "current->executable", and page faults do the actual loading. Clean. 24.17 - * 24.18 - * Once more I can proudly say that linux stood up to being changed: it 24.19 - * was less than 2 hours work to get demand-loading completely implemented. 24.20 - * 24.21 - * Demand loading changed July 1993 by Eric Youngdale. Use mmap instead, 24.22 - * current->executable is only used by the procfs. This allows a dispatch 24.23 - * table to check for several different types of binary formats. We keep 24.24 - * trying until we recognize the file or we run out of supported binary 24.25 - * formats. 24.26 - */ 24.27 - 24.28 -#include <linux/config.h> 24.29 -#include <linux/slab.h> 24.30 -#include <linux/file.h> 24.31 -#include <linux/mman.h> 24.32 -#include <linux/a.out.h> 24.33 -#include <linux/stat.h> 24.34 -#include <linux/fcntl.h> 24.35 -#include <linux/smp_lock.h> 24.36 -#include <linux/init.h> 24.37 -#include <linux/pagemap.h> 24.38 -#include <linux/highmem.h> 24.39 -#include <linux/spinlock.h> 24.40 -#include <linux/personality.h> 24.41 -#include <linux/swap.h> 24.42 -#include <linux/utsname.h> 24.43 -#define __NO_VERSION__ 24.44 -#include <linux/module.h> 24.45 - 24.46 -#include <asm/uaccess.h> 24.47 -#include <asm/pgalloc.h> 24.48 -#include <asm/mmu_context.h> 24.49 - 24.50 -#ifdef CONFIG_KMOD 24.51 -#include <linux/kmod.h> 24.52 -#endif 24.53 - 24.54 -int core_uses_pid; 24.55 -char core_pattern[65] = "core"; 24.56 -int core_setuid_ok = 0; 24.57 -/* The maximal length of core_pattern is also specified in sysctl.c */ 24.58 - 24.59 -static struct linux_binfmt *formats; 24.60 -static rwlock_t binfmt_lock = RW_LOCK_UNLOCKED; 24.61 - 24.62 -int register_binfmt(struct linux_binfmt * fmt) 24.63 -{ 24.64 - struct linux_binfmt ** tmp = &formats; 24.65 - 24.66 - if (!fmt) 24.67 - return -EINVAL; 24.68 - if (fmt->next) 24.69 - return -EBUSY; 24.70 - write_lock(&binfmt_lock); 24.71 - while (*tmp) { 24.72 - if (fmt == *tmp) { 24.73 - write_unlock(&binfmt_lock); 24.74 - return -EBUSY; 24.75 - } 24.76 - tmp = &(*tmp)->next; 24.77 - } 24.78 - fmt->next = formats; 24.79 - formats = fmt; 24.80 - write_unlock(&binfmt_lock); 24.81 - return 0; 24.82 -} 24.83 - 24.84 -int unregister_binfmt(struct linux_binfmt * fmt) 24.85 -{ 24.86 - struct linux_binfmt ** tmp = &formats; 24.87 - 24.88 - write_lock(&binfmt_lock); 24.89 - while (*tmp) { 24.90 - if (fmt == *tmp) { 24.91 - *tmp = fmt->next; 24.92 - write_unlock(&binfmt_lock); 24.93 - return 0; 24.94 - } 24.95 - tmp = &(*tmp)->next; 24.96 - } 24.97 - write_unlock(&binfmt_lock); 24.98 - return -EINVAL; 24.99 -} 24.100 - 24.101 -static inline void put_binfmt(struct linux_binfmt * fmt) 24.102 -{ 24.103 - if (fmt->module) 24.104 - __MOD_DEC_USE_COUNT(fmt->module); 24.105 -} 24.106 - 24.107 -/* 24.108 - * Note that a shared library must be both readable and executable due to 24.109 - * security reasons. 24.110 - * 24.111 - * Also note that we take the address to load from from the file itself. 24.112 - */ 24.113 -asmlinkage long sys_uselib(const char * library) 24.114 -{ 24.115 - struct file * file; 24.116 - struct nameidata nd; 24.117 - int error; 24.118 - 24.119 - error = user_path_walk(library, &nd); 24.120 - if (error) 24.121 - goto out; 24.122 - 24.123 - error = -EINVAL; 24.124 - if (!S_ISREG(nd.dentry->d_inode->i_mode)) 24.125 - goto exit; 24.126 - 24.127 - error = permission(nd.dentry->d_inode, MAY_READ | MAY_EXEC); 24.128 - if (error) 24.129 - goto exit; 24.130 - 24.131 - file = dentry_open(nd.dentry, nd.mnt, O_RDONLY); 24.132 - error = PTR_ERR(file); 24.133 - if (IS_ERR(file)) 24.134 - goto out; 24.135 - 24.136 - error = -ENOEXEC; 24.137 - if(file->f_op && file->f_op->read) { 24.138 - struct linux_binfmt * fmt; 24.139 - 24.140 - read_lock(&binfmt_lock); 24.141 - for (fmt = formats ; fmt ; fmt = fmt->next) { 24.142 - if (!fmt->load_shlib) 24.143 - continue; 24.144 - if (!try_inc_mod_count(fmt->module)) 24.145 - continue; 24.146 - read_unlock(&binfmt_lock); 24.147 - error = fmt->load_shlib(file); 24.148 - read_lock(&binfmt_lock); 24.149 - put_binfmt(fmt); 24.150 - if (error != -ENOEXEC) 24.151 - break; 24.152 - } 24.153 - read_unlock(&binfmt_lock); 24.154 - } 24.155 - fput(file); 24.156 -out: 24.157 - return error; 24.158 -exit: 24.159 - path_release(&nd); 24.160 - goto out; 24.161 -} 24.162 - 24.163 -/* 24.164 - * count() counts the number of arguments/envelopes 24.165 - */ 24.166 -static int count(char ** argv, int max) 24.167 -{ 24.168 - int i = 0; 24.169 - 24.170 - if (argv != NULL) { 24.171 - for (;;) { 24.172 - char * p; 24.173 - 24.174 - if (get_user(p, argv)) 24.175 - return -EFAULT; 24.176 - if (!p) 24.177 - break; 24.178 - argv++; 24.179 - if(++i > max) 24.180 - return -E2BIG; 24.181 - } 24.182 - } 24.183 - return i; 24.184 -} 24.185 - 24.186 -/* 24.187 - * 'copy_strings()' copies argument/envelope strings from user 24.188 - * memory to free pages in kernel mem. These are in a format ready 24.189 - * to be put directly into the top of new user memory. 24.190 - */ 24.191 -int copy_strings(int argc,char ** argv, struct linux_binprm *bprm) 24.192 -{ 24.193 - struct page *kmapped_page = NULL; 24.194 - char *kaddr = NULL; 24.195 - int ret; 24.196 - 24.197 - while (argc-- > 0) { 24.198 - char *str; 24.199 - int len; 24.200 - unsigned long pos; 24.201 - 24.202 - if (get_user(str, argv+argc) || 24.203 - !(len = strnlen_user(str, bprm->p))) { 24.204 - ret = -EFAULT; 24.205 - goto out; 24.206 - } 24.207 - 24.208 - if (bprm->p < len) { 24.209 - ret = -E2BIG; 24.210 - goto out; 24.211 - } 24.212 - 24.213 - bprm->p -= len; 24.214 - /* XXX: add architecture specific overflow check here. */ 24.215 - pos = bprm->p; 24.216 - 24.217 - while (len > 0) { 24.218 - int i, new, err; 24.219 - int offset, bytes_to_copy; 24.220 - struct page *page; 24.221 - 24.222 - offset = pos % PAGE_SIZE; 24.223 - i = pos/PAGE_SIZE; 24.224 - page = bprm->page[i]; 24.225 - new = 0; 24.226 - if (!page) { 24.227 - page = alloc_page(GFP_HIGHUSER); 24.228 - bprm->page[i] = page; 24.229 - if (!page) { 24.230 - ret = -ENOMEM; 24.231 - goto out; 24.232 - } 24.233 - new = 1; 24.234 - } 24.235 - 24.236 - if (page != kmapped_page) { 24.237 - if (kmapped_page) 24.238 - kunmap(kmapped_page); 24.239 - kmapped_page = page; 24.240 - kaddr = kmap(kmapped_page); 24.241 - } 24.242 - if (new && offset) 24.243 - memset(kaddr, 0, offset); 24.244 - bytes_to_copy = PAGE_SIZE - offset; 24.245 - if (bytes_to_copy > len) { 24.246 - bytes_to_copy = len; 24.247 - if (new) 24.248 - memset(kaddr+offset+len, 0, 24.249 - PAGE_SIZE-offset-len); 24.250 - } 24.251 - err = copy_from_user(kaddr+offset, str, bytes_to_copy); 24.252 - if (err) { 24.253 - ret = -EFAULT; 24.254 - goto out; 24.255 - } 24.256 - 24.257 - pos += bytes_to_copy; 24.258 - str += bytes_to_copy; 24.259 - len -= bytes_to_copy; 24.260 - } 24.261 - } 24.262 - ret = 0; 24.263 -out: 24.264 - if (kmapped_page) 24.265 - kunmap(kmapped_page); 24.266 - return ret; 24.267 -} 24.268 - 24.269 -/* 24.270 - * Like copy_strings, but get argv and its values from kernel memory. 24.271 - */ 24.272 -int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm) 24.273 -{ 24.274 - int r; 24.275 - mm_segment_t oldfs = get_fs(); 24.276 - set_fs(KERNEL_DS); 24.277 - r = copy_strings(argc, argv, bprm); 24.278 - set_fs(oldfs); 24.279 - return r; 24.280 -} 24.281 - 24.282 -/* 24.283 - * This routine is used to map in a page into an address space: needed by 24.284 - * execve() for the initial stack and environment pages. 24.285 - * 24.286 - * tsk->mmap_sem is held for writing. 24.287 - */ 24.288 -void put_dirty_page(struct task_struct * tsk, struct page *page, unsigned long address) 24.289 -{ 24.290 - pgd_t * pgd; 24.291 - pmd_t * pmd; 24.292 - pte_t * pte; 24.293 - struct vm_area_struct *vma; 24.294 - pgprot_t prot = PAGE_COPY; 24.295 - 24.296 - if (page_count(page) != 1) 24.297 - printk(KERN_ERR "mem_map disagrees with %p at %08lx\n", page, address); 24.298 - pgd = pgd_offset(tsk->mm, address); 24.299 - 24.300 - spin_lock(&tsk->mm->page_table_lock); 24.301 - pmd = pmd_alloc(tsk->mm, pgd, address); 24.302 - if (!pmd) 24.303 - goto out; 24.304 - pte = pte_alloc(tsk->mm, pmd, address); 24.305 - if (!pte) 24.306 - goto out; 24.307 - if (!pte_none(*pte)) 24.308 - goto out; 24.309 - lru_cache_add(page); 24.310 - flush_dcache_page(page); 24.311 - flush_page_to_ram(page); 24.312 - /* lookup is cheap because there is only a single entry in the list */ 24.313 - vma = find_vma(tsk->mm, address); 24.314 - if (vma) 24.315 - prot = vma->vm_page_prot; 24.316 - set_pte(pte, pte_mkdirty(pte_mkwrite(mk_pte(page, prot)))); 24.317 - XEN_flush_page_update_queue(); 24.318 - tsk->mm->rss++; 24.319 - spin_unlock(&tsk->mm->page_table_lock); 24.320 - 24.321 - /* no need for flush_tlb */ 24.322 - return; 24.323 -out: 24.324 - spin_unlock(&tsk->mm->page_table_lock); 24.325 - __free_page(page); 24.326 - force_sig(SIGKILL, tsk); 24.327 - return; 24.328 -} 24.329 - 24.330 -int setup_arg_pages(struct linux_binprm *bprm) 24.331 -{ 24.332 - unsigned long stack_base; 24.333 - struct vm_area_struct *mpnt; 24.334 - int i, ret; 24.335 - 24.336 - stack_base = STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE; 24.337 - 24.338 - bprm->p += stack_base; 24.339 - if (bprm->loader) 24.340 - bprm->loader += stack_base; 24.341 - bprm->exec += stack_base; 24.342 - 24.343 - mpnt = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); 24.344 - if (!mpnt) 24.345 - return -ENOMEM; 24.346 - 24.347 - down_write(¤t->mm->mmap_sem); 24.348 - { 24.349 - mpnt->vm_mm = current->mm; 24.350 - mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p; 24.351 - mpnt->vm_end = STACK_TOP; 24.352 - mpnt->vm_flags = VM_STACK_FLAGS; 24.353 - mpnt->vm_page_prot = protection_map[VM_STACK_FLAGS & 0x7]; 24.354 - mpnt->vm_ops = NULL; 24.355 - mpnt->vm_pgoff = 0; 24.356 - mpnt->vm_file = NULL; 24.357 - mpnt->vm_private_data = (void *) 0; 24.358 - if ((ret = insert_vm_struct(current->mm, mpnt))) { 24.359 - up_write(¤t->mm->mmap_sem); 24.360 - kmem_cache_free(vm_area_cachep, mpnt); 24.361 - return ret; 24.362 - } 24.363 - current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; 24.364 - } 24.365 - 24.366 - for (i = 0 ; i < MAX_ARG_PAGES ; i++) { 24.367 - struct page *page = bprm->page[i]; 24.368 - if (page) { 24.369 - bprm->page[i] = NULL; 24.370 - put_dirty_page(current,page,stack_base); 24.371 - } 24.372 - stack_base += PAGE_SIZE; 24.373 - } 24.374 - up_write(¤t->mm->mmap_sem); 24.375 - 24.376 - return 0; 24.377 -} 24.378 - 24.379 -struct file *open_exec(const char *name) 24.380 -{ 24.381 - struct nameidata nd; 24.382 - struct inode *inode; 24.383 - struct file *file; 24.384 - int err = 0; 24.385 - 24.386 - err = path_lookup(name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, &nd); 24.387 - file = ERR_PTR(err); 24.388 - if (!err) { 24.389 - inode = nd.dentry->d_inode; 24.390 - file = ERR_PTR(-EACCES); 24.391 - if (!(nd.mnt->mnt_flags & MNT_NOEXEC) && 24.392 - S_ISREG(inode->i_mode)) { 24.393 - int err = permission(inode, MAY_EXEC); 24.394 - if (!err && !(inode->i_mode & 0111)) 24.395 - err = -EACCES; 24.396 - file = ERR_PTR(err); 24.397 - if (!err) { 24.398 - file = dentry_open(nd.dentry, nd.mnt, O_RDONLY); 24.399 - if (!IS_ERR(file)) { 24.400 - err = deny_write_access(file); 24.401 - if (err) { 24.402 - fput(file); 24.403 - file = ERR_PTR(err); 24.404 - } 24.405 - } 24.406 -out: 24.407 - return file; 24.408 - } 24.409 - } 24.410 - path_release(&nd); 24.411 - } 24.412 - goto out; 24.413 -} 24.414 - 24.415 -int kernel_read(struct file *file, unsigned long offset, 24.416 - char * addr, unsigned long count) 24.417 -{ 24.418 - mm_segment_t old_fs; 24.419 - loff_t pos = offset; 24.420 - int result = -ENOSYS; 24.421 - 24.422 - if (!file->f_op->read) 24.423 - goto fail; 24.424 - old_fs = get_fs(); 24.425 - set_fs(get_ds()); 24.426 - result = file->f_op->read(file, addr, count, &pos); 24.427 - set_fs(old_fs); 24.428 -fail: 24.429 - return result; 24.430 -} 24.431 - 24.432 -static int exec_mmap(void) 24.433 -{ 24.434 - struct mm_struct * mm, * old_mm; 24.435 - 24.436 - old_mm = current->mm; 24.437 - 24.438 - if (old_mm && atomic_read(&old_mm->mm_users) == 1) { 24.439 - mm_release(); 24.440 - down_write(&old_mm->mmap_sem); 24.441 - exit_mmap(old_mm); 24.442 - up_write(&old_mm->mmap_sem); 24.443 - return 0; 24.444 - } 24.445 - 24.446 - 24.447 - mm = mm_alloc(); 24.448 - if (mm) { 24.449 - struct mm_struct *active_mm; 24.450 - 24.451 - if (init_new_context(current, mm)) { 24.452 - mmdrop(mm); 24.453 - return -ENOMEM; 24.454 - } 24.455 - 24.456 - /* Add it to the list of mm's */ 24.457 - spin_lock(&mmlist_lock); 24.458 - list_add(&mm->mmlist, &init_mm.mmlist); 24.459 - mmlist_nr++; 24.460 - spin_unlock(&mmlist_lock); 24.461 - 24.462 - task_lock(current); 24.463 - active_mm = current->active_mm; 24.464 - current->mm = mm; 24.465 - current->active_mm = mm; 24.466 - task_unlock(current); 24.467 - activate_mm(active_mm, mm); 24.468 - mm_release(); 24.469 - if (old_mm) { 24.470 - if (active_mm != old_mm) BUG(); 24.471 - mmput(old_mm); 24.472 - return 0; 24.473 - } 24.474 - mmdrop(active_mm); 24.475 - return 0; 24.476 - } 24.477 - return -ENOMEM; 24.478 -} 24.479 - 24.480 -/* 24.481 - * This function makes sure the current process has its own signal table, 24.482 - * so that flush_signal_handlers can later reset the handlers without 24.483 - * disturbing other processes. (Other processes might share the signal 24.484 - * table via the CLONE_SIGNAL option to clone().) 24.485 - */ 24.486 - 24.487 -static inline int make_private_signals(void) 24.488 -{ 24.489 - struct signal_struct * newsig; 24.490 - 24.491 - if (atomic_read(¤t->sig->count) <= 1) 24.492 - return 0; 24.493 - newsig = kmem_cache_alloc(sigact_cachep, GFP_KERNEL); 24.494 - if (newsig == NULL) 24.495 - return -ENOMEM; 24.496 - spin_lock_init(&newsig->siglock); 24.497 - atomic_set(&newsig->count, 1); 24.498 - memcpy(newsig->action, current->sig->action, sizeof(newsig->action)); 24.499 - spin_lock_irq(¤t->sigmask_lock); 24.500 - current->sig = newsig; 24.501 - spin_unlock_irq(¤t->sigmask_lock); 24.502 - return 0; 24.503 -} 24.504 - 24.505 -/* 24.506 - * If make_private_signals() made a copy of the signal table, decrement the 24.507 - * refcount of the original table, and free it if necessary. 24.508 - * We don't do that in make_private_signals() so that we can back off 24.509 - * in flush_old_exec() if an error occurs after calling make_private_signals(). 24.510 - */ 24.511 - 24.512 -static inline void release_old_signals(struct signal_struct * oldsig) 24.513 -{ 24.514 - if (current->sig == oldsig) 24.515 - return; 24.516 - if (atomic_dec_and_test(&oldsig->count)) 24.517 - kmem_cache_free(sigact_cachep, oldsig); 24.518 -} 24.519 - 24.520 -/* 24.521 - * These functions flushes out all traces of the currently running executable 24.522 - * so that a new one can be started 24.523 - */ 24.524 - 24.525 -static inline void flush_old_files(struct files_struct * files) 24.526 -{ 24.527 - long j = -1; 24.528 - 24.529 - write_lock(&files->file_lock); 24.530 - for (;;) { 24.531 - unsigned long set, i; 24.532 - 24.533 - j++; 24.534 - i = j * __NFDBITS; 24.535 - if (i >= files->max_fds || i >= files->max_fdset) 24.536 - break; 24.537 - set = files->close_on_exec->fds_bits[j]; 24.538 - if (!set) 24.539 - continue; 24.540 - files->close_on_exec->fds_bits[j] = 0; 24.541 - write_unlock(&files->file_lock); 24.542 - for ( ; set ; i++,set >>= 1) { 24.543 - if (set & 1) { 24.544 - sys_close(i); 24.545 - } 24.546 - } 24.547 - write_lock(&files->file_lock); 24.548 - 24.549 - } 24.550 - write_unlock(&files->file_lock); 24.551 -} 24.552 - 24.553 -/* 24.554 - * An execve() will automatically "de-thread" the process. 24.555 - * Note: we don't have to hold the tasklist_lock to test 24.556 - * whether we migth need to do this. If we're not part of 24.557 - * a thread group, there is no way we can become one 24.558 - * dynamically. And if we are, we only need to protect the 24.559 - * unlink - even if we race with the last other thread exit, 24.560 - * at worst the list_del_init() might end up being a no-op. 24.561 - */ 24.562 -static inline void de_thread(struct task_struct *tsk) 24.563 -{ 24.564 - if (!list_empty(&tsk->thread_group)) { 24.565 - write_lock_irq(&tasklist_lock); 24.566 - list_del_init(&tsk->thread_group); 24.567 - write_unlock_irq(&tasklist_lock); 24.568 - } 24.569 - 24.570 - /* Minor oddity: this might stay the same. */ 24.571 - tsk->tgid = tsk->pid; 24.572 -} 24.573 - 24.574 -void get_task_comm(char *buf, struct task_struct *tsk) 24.575 -{ 24.576 - /* buf must be at least sizeof(tsk->comm) in size */ 24.577 - task_lock(tsk); 24.578 - memcpy(buf, tsk->comm, sizeof(tsk->comm)); 24.579 - task_unlock(tsk); 24.580 -} 24.581 - 24.582 -void set_task_comm(struct task_struct *tsk, char *buf) 24.583 -{ 24.584 - task_lock(tsk); 24.585 - strncpy(tsk->comm, buf, sizeof(tsk->comm)); 24.586 - tsk->comm[sizeof(tsk->comm)-1]='\0'; 24.587 - task_unlock(tsk); 24.588 -} 24.589 - 24.590 -int flush_old_exec(struct linux_binprm * bprm) 24.591 -{ 24.592 - char * name; 24.593 - int i, ch, retval; 24.594 - struct signal_struct * oldsig; 24.595 - struct files_struct * files; 24.596 - char tcomm[sizeof(current->comm)]; 24.597 - 24.598 - /* 24.599 - * Make sure we have a private signal table 24.600 - */ 24.601 - oldsig = current->sig; 24.602 - retval = make_private_signals(); 24.603 - if (retval) goto flush_failed; 24.604 - 24.605 - /* 24.606 - * Make sure we have private file handles. Ask the 24.607 - * fork helper to do the work for us and the exit 24.608 - * helper to do the cleanup of the old one. 24.609 - */ 24.610 - 24.611 - files = current->files; /* refcounted so safe to hold */ 24.612 - retval = unshare_files(); 24.613 - if(retval) 24.614 - goto flush_failed; 24.615 - 24.616 - /* 24.617 - * Release all of the old mmap stuff 24.618 - */ 24.619 - retval = exec_mmap(); 24.620 - if (retval) goto mmap_failed; 24.621 - 24.622 - /* This is the point of no return */ 24.623 - steal_locks(files); 24.624 - put_files_struct(files); 24.625 - release_old_signals(oldsig); 24.626 - 24.627 - current->sas_ss_sp = current->sas_ss_size = 0; 24.628 - 24.629 - if (current->euid == current->uid && current->egid == current->gid) { 24.630 - current->mm->dumpable = 1; 24.631 - current->task_dumpable = 1; 24.632 - } 24.633 - name = bprm->filename; 24.634 - for (i=0; (ch = *(name++)) != '\0';) { 24.635 - if (ch == '/') 24.636 - i = 0; 24.637 - else 24.638 - if (i < (sizeof(tcomm) - 1)) 24.639 - tcomm[i++] = ch; 24.640 - } 24.641 - tcomm[i] = '\0'; 24.642 - set_task_comm(current, tcomm); 24.643 - 24.644 - flush_thread(); 24.645 - 24.646 - de_thread(current); 24.647 - 24.648 - if (bprm->e_uid != current->euid || bprm->e_gid != current->egid || 24.649 - permission(bprm->file->f_dentry->d_inode,MAY_READ)) 24.650 - current->mm->dumpable = 0; 24.651 - 24.652 - /* An exec changes our domain. We are no longer part of the thread 24.653 - group */ 24.654 - 24.655 - current->self_exec_id++; 24.656 - 24.657 - flush_signal_handlers(current); 24.658 - flush_old_files(current->files); 24.659 - 24.660 - return 0; 24.661 - 24.662 -mmap_failed: 24.663 - put_files_struct(current->files); 24.664 - current->files = files; 24.665 -flush_failed: 24.666 - spin_lock_irq(¤t->sigmask_lock); 24.667 - if (current->sig != oldsig) { 24.668 - kmem_cache_free(sigact_cachep, current->sig); 24.669 - current->sig = oldsig; 24.670 - } 24.671 - spin_unlock_irq(¤t->sigmask_lock); 24.672 - return retval; 24.673 -} 24.674 - 24.675 -/* 24.676 - * We mustn't allow tracing of suid binaries, unless 24.677 - * the tracer has the capability to trace anything.. 24.678 - */ 24.679 -static inline int must_not_trace_exec(struct task_struct * p) 24.680 -{ 24.681 - return (p->ptrace & PT_PTRACED) && !(p->ptrace & PT_PTRACE_CAP); 24.682 -} 24.683 - 24.684 -/* 24.685 - * Fill the binprm structure from the inode. 24.686 - * Check permissions, then read the first 128 (BINPRM_BUF_SIZE) bytes 24.687 - */ 24.688 -int prepare_binprm(struct linux_binprm *bprm) 24.689 -{ 24.690 - int mode; 24.691 - struct inode * inode = bprm->file->f_dentry->d_inode; 24.692 - 24.693 - mode = inode->i_mode; 24.694 - /* 24.695 - * Check execute perms again - if the caller has CAP_DAC_OVERRIDE, 24.696 - * vfs_permission lets a non-executable through 24.697 - */ 24.698 - if (!(mode & 0111)) /* with at least _one_ execute bit set */ 24.699 - return -EACCES; 24.700 - if (bprm->file->f_op == NULL) 24.701 - return -EACCES; 24.702 - 24.703 - bprm->e_uid = current->euid; 24.704 - bprm->e_gid = current->egid; 24.705 - 24.706 - if(!(bprm->file->f_vfsmnt->mnt_flags & MNT_NOSUID)) { 24.707 - /* Set-uid? */ 24.708 - if (mode & S_ISUID) 24.709 - bprm->e_uid = inode->i_uid; 24.710 - 24.711 - /* Set-gid? */ 24.712 - /* 24.713 - * If setgid is set but no group execute bit then this 24.714 - * is a candidate for mandatory locking, not a setgid 24.715 - * executable. 24.716 - */ 24.717 - if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) 24.718 - bprm->e_gid = inode->i_gid; 24.719 - } 24.720 - 24.721 - /* We don't have VFS support for capabilities yet */ 24.722 - cap_clear(bprm->cap_inheritable); 24.723 - cap_clear(bprm->cap_permitted); 24.724 - cap_clear(bprm->cap_effective); 24.725 - 24.726 - /* To support inheritance of root-permissions and suid-root 24.727 - * executables under compatibility mode, we raise all three 24.728 - * capability sets for the file. 24.729 - * 24.730 - * If only the real uid is 0, we only raise the inheritable 24.731 - * and permitted sets of the executable file. 24.732 - */ 24.733 - 24.734 - if (!issecure(SECURE_NOROOT)) { 24.735 - if (bprm->e_uid == 0 || current->uid == 0) { 24.736 - cap_set_full(bprm->cap_inheritable); 24.737 - cap_set_full(bprm->cap_permitted); 24.738 - } 24.739 - if (bprm->e_uid == 0) 24.740 - cap_set_full(bprm->cap_effective); 24.741 - } 24.742 - 24.743 - memset(bprm->buf,0,BINPRM_BUF_SIZE); 24.744 - return kernel_read(bprm->file,0,bprm->buf,BINPRM_BUF_SIZE); 24.745 -} 24.746 - 24.747 -/* 24.748 - * This function is used to produce the new IDs and capabilities 24.749 - * from the old ones and the file's capabilities. 24.750 - * 24.751 - * The formula used for evolving capabilities is: 24.752 - * 24.753 - * pI' = pI 24.754 - * (***) pP' = (fP & X) | (fI & pI) 24.755 - * pE' = pP' & fE [NB. fE is 0 or ~0] 24.756 - * 24.757 - * I=Inheritable, P=Permitted, E=Effective // p=process, f=file 24.758 - * ' indicates post-exec(), and X is the global 'cap_bset'. 24.759 - * 24.760 - */ 24.761 - 24.762 -void compute_creds(struct linux_binprm *bprm) 24.763 -{ 24.764 - kernel_cap_t new_permitted, working; 24.765 - int do_unlock = 0; 24.766 - 24.767 - new_permitted = cap_intersect(bprm->cap_permitted, cap_bset); 24.768 - working = cap_intersect(bprm->cap_inheritable, 24.769 - current->cap_inheritable); 24.770 - new_permitted = cap_combine(new_permitted, working); 24.771 - 24.772 - if (bprm->e_uid != current->uid || bprm->e_gid != current->gid || 24.773 - !cap_issubset(new_permitted, current->cap_permitted)) { 24.774 - current->mm->dumpable = 0; 24.775 - 24.776 - lock_kernel(); 24.777 - if (must_not_trace_exec(current) 24.778 - || atomic_read(¤t->fs->count) > 1 24.779 - || atomic_read(¤t->files->count) > 1 24.780 - || atomic_read(¤t->sig->count) > 1) { 24.781 - if(!capable(CAP_SETUID)) { 24.782 - bprm->e_uid = current->uid; 24.783 - bprm->e_gid = current->gid; 24.784 - } 24.785 - if(!capable(CAP_SETPCAP)) { 24.786 - new_permitted = cap_intersect(new_permitted, 24.787 - current->cap_permitted); 24.788 - } 24.789 - } 24.790 - do_unlock = 1; 24.791 - } 24.792 - 24.793 - 24.794 - /* For init, we want to retain the capabilities set 24.795 - * in the init_task struct. Thus we skip the usual 24.796 - * capability rules */ 24.797 - if (current->pid != 1) { 24.798 - current->cap_permitted = new_permitted; 24.799 - current->cap_effective = 24.800 - cap_intersect(new_permitted, bprm->cap_effective); 24.801 - } 24.802 - 24.803 - /* AUD: Audit candidate if current->cap_effective is set */ 24.804 - 24.805 - current->suid = current->euid = current->fsuid = bprm->e_uid; 24.806 - current->sgid = current->egid = current->fsgid = bprm->e_gid; 24.807 - 24.808 - if(do_unlock) 24.809 - unlock_kernel(); 24.810 - current->keep_capabilities = 0; 24.811 -} 24.812 - 24.813 - 24.814 -void remove_arg_zero(struct linux_binprm *bprm) 24.815 -{ 24.816 - if (bprm->argc) { 24.817 - unsigned long offset; 24.818 - char * kaddr; 24.819 - struct page *page; 24.820 - 24.821 - offset = bprm->p % PAGE_SIZE; 24.822 - goto inside; 24.823 - 24.824 - while (bprm->p++, *(kaddr+offset++)) { 24.825 - if (offset != PAGE_SIZE) 24.826 - continue; 24.827 - offset = 0; 24.828 - kunmap(page); 24.829 -inside: 24.830 - page = bprm->page[bprm->p/PAGE_SIZE]; 24.831 - kaddr = kmap(page); 24.832 - } 24.833 - kunmap(page); 24.834 - bprm->argc--; 24.835 - } 24.836 -} 24.837 - 24.838 -/* 24.839 - * cycle the list of binary formats handler, until one recognizes the image 24.840 - */ 24.841 -int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) 24.842 -{ 24.843 - int try,retval=0; 24.844 - struct linux_binfmt *fmt; 24.845 -#ifdef __alpha__ 24.846 - /* handle /sbin/loader.. */ 24.847 - { 24.848 - struct exec * eh = (struct exec *) bprm->buf; 24.849 - 24.850 - if (!bprm->loader && eh->fh.f_magic == 0x183 && 24.851 - (eh->fh.f_flags & 0x3000) == 0x3000) 24.852 - { 24.853 - struct file * file; 24.854 - unsigned long loader; 24.855 - 24.856 - allow_write_access(bprm->file); 24.857 - fput(bprm->file); 24.858 - bprm->file = NULL; 24.859 - 24.860 - loader = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *); 24.861 - 24.862 - file = open_exec("/sbin/loader"); 24.863 - retval = PTR_ERR(file); 24.864 - if (IS_ERR(file)) 24.865 - return retval; 24.866 - 24.867 - /* Remember if the application is TASO. */ 24.868 - bprm->sh_bang = eh->ah.entry < 0x100000000; 24.869 - 24.870 - bprm->file = file; 24.871 - bprm->loader = loader; 24.872 - retval = prepare_binprm(bprm); 24.873 - if (retval<0) 24.874 - return retval; 24.875 - /* should call search_binary_handler recursively here, 24.876 - but it does not matter */ 24.877 - } 24.878 - } 24.879 -#endif 24.880 - /* kernel module loader fixup */ 24.881 - /* so we don't try to load run modprobe in kernel space. */ 24.882 - set_fs(USER_DS); 24.883 - for (try=0; try<2; try++) { 24.884 - read_lock(&binfmt_lock); 24.885 - for (fmt = formats ; fmt ; fmt = fmt->next) { 24.886 - int (*fn)(struct linux_binprm *, struct pt_regs *) = fmt->load_binary; 24.887 - if (!fn) 24.888 - continue; 24.889 - if (!try_inc_mod_count(fmt->module)) 24.890 - continue; 24.891 - read_unlock(&binfmt_lock); 24.892 - retval = fn(bprm, regs); 24.893 - if (retval >= 0) { 24.894 - put_binfmt(fmt); 24.895 - allow_write_access(bprm->file); 24.896 - if (bprm->file) 24.897 - fput(bprm->file); 24.898 - bprm->file = NULL; 24.899 - current->did_exec = 1; 24.900 - return retval; 24.901 - } 24.902 - read_lock(&binfmt_lock); 24.903 - put_binfmt(fmt); 24.904 - if (retval != -ENOEXEC) 24.905 - break; 24.906 - if (!bprm->file) { 24.907 - read_unlock(&binfmt_lock); 24.908 - return retval; 24.909 - } 24.910 - } 24.911 - read_unlock(&binfmt_lock); 24.912 - if (retval != -ENOEXEC) { 24.913 - break; 24.914 -#ifdef CONFIG_KMOD 24.915 - }else{ 24.916 -#define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e)) 24.917 - char modname[20]; 24.918 - if (printable(bprm->buf[0]) && 24.919 - printable(bprm->buf[1]) && 24.920 - printable(bprm->buf[2]) && 24.921 - printable(bprm->buf[3])) 24.922 - break; /* -ENOEXEC */ 24.923 - sprintf(modname, "binfmt-%04x", *(unsigned short *)(&bprm->buf[2])); 24.924 - request_module(modname); 24.925 -#endif 24.926 - } 24.927 - } 24.928 - return retval; 24.929 -} 24.930 - 24.931 - 24.932 -/* 24.933 - * sys_execve() executes a new program. 24.934 - */ 24.935 -int do_execve(char * filename, char ** argv, char ** envp, struct pt_regs * regs) 24.936 -{ 24.937 - struct linux_binprm bprm; 24.938 - struct file *file; 24.939 - int retval; 24.940 - int i; 24.941 - 24.942 - file = open_exec(filename); 24.943 - 24.944 - retval = PTR_ERR(file); 24.945 - if (IS_ERR(file)) 24.946 - return retval; 24.947 - 24.948 - bprm.p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *); 24.949 - memset(bprm.page, 0, MAX_ARG_PAGES*sizeof(bprm.page[0])); 24.950 - 24.951 - bprm.file = file; 24.952 - bprm.filename = filename; 24.953 - bprm.sh_bang = 0; 24.954 - bprm.loader = 0; 24.955 - bprm.exec = 0; 24.956 - if ((bprm.argc = count(argv, bprm.p / sizeof(void *))) < 0) { 24.957 - allow_write_access(file); 24.958 - fput(file); 24.959 - return bprm.argc; 24.960 - } 24.961 - 24.962 - if ((bprm.envc = count(envp, bprm.p / sizeof(void *))) < 0) { 24.963 - allow_write_access(file); 24.964 - fput(file); 24.965 - return bprm.envc; 24.966 - } 24.967 - 24.968 - retval = prepare_binprm(&bprm); 24.969 - if (retval < 0) 24.970 - goto out; 24.971 - 24.972 - retval = copy_strings_kernel(1, &bprm.filename, &bprm); 24.973 - if (retval < 0) 24.974 - goto out; 24.975 - 24.976 - bprm.exec = bprm.p; 24.977 - retval = copy_strings(bprm.envc, envp, &bprm); 24.978 - if (retval < 0) 24.979 - goto out; 24.980 - 24.981 - retval = copy_strings(bprm.argc, argv, &bprm); 24.982 - if (retval < 0) 24.983 - goto out; 24.984 - 24.985 - retval = search_binary_handler(&bprm,regs); 24.986 - if (retval >= 0) 24.987 - /* execve success */ 24.988 - return retval; 24.989 - 24.990 -out: 24.991 - /* Something went wrong, return the inode and free the argument pages*/ 24.992 - allow_write_access(bprm.file); 24.993 - if (bprm.file) 24.994 - fput(bprm.file); 24.995 - 24.996 - for (i = 0 ; i < MAX_ARG_PAGES ; i++) { 24.997 - struct page * page = bprm.page[i]; 24.998 - if (page) 24.999 - __free_page(page); 24.1000 - } 24.1001 - 24.1002 - return retval; 24.1003 -} 24.1004 - 24.1005 -void set_binfmt(struct linux_binfmt *new) 24.1006 -{ 24.1007 - struct linux_binfmt *old = current->binfmt; 24.1008 - if (new && new->module) 24.1009 - __MOD_INC_USE_COUNT(new->module); 24.1010 - current->binfmt = new; 24.1011 - if (old && old->module) 24.1012 - __MOD_DEC_USE_COUNT(old->module); 24.1013 -} 24.1014 - 24.1015 -#define CORENAME_MAX_SIZE 64 24.1016 - 24.1017 -/* format_corename will inspect the pattern parameter, and output a 24.1018 - * name into corename, which must have space for at least 24.1019 - * CORENAME_MAX_SIZE bytes plus one byte for the zero terminator. 24.1020 - */ 24.1021 -void format_corename(char *corename, const char *pattern, long signr) 24.1022 -{ 24.1023 - const char *pat_ptr = pattern; 24.1024 - char *out_ptr = corename; 24.1025 - char *const out_end = corename + CORENAME_MAX_SIZE; 24.1026 - int rc; 24.1027 - int pid_in_pattern = 0; 24.1028 - 24.1029 - /* Repeat as long as we have more pattern to process and more output 24.1030 - space */ 24.1031 - while (*pat_ptr) { 24.1032 - if (*pat_ptr != '%') { 24.1033 - if (out_ptr == out_end) 24.1034 - goto out; 24.1035 - *out_ptr++ = *pat_ptr++; 24.1036 - } else { 24.1037 - switch (*++pat_ptr) { 24.1038 - case 0: 24.1039 - goto out; 24.1040 - /* Double percent, output one percent */ 24.1041 - case '%': 24.1042 - if (out_ptr == out_end) 24.1043 - goto out; 24.1044 - *out_ptr++ = '%'; 24.1045 - break; 24.1046 - /* pid */ 24.1047 - case 'p': 24.1048 - pid_in_pattern = 1; 24.1049 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1050 - "%d", current->pid); 24.1051 - if (rc > out_end - out_ptr) 24.1052 - goto out; 24.1053 - out_ptr += rc; 24.1054 - break; 24.1055 - /* uid */ 24.1056 - case 'u': 24.1057 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1058 - "%d", current->uid); 24.1059 - if (rc > out_end - out_ptr) 24.1060 - goto out; 24.1061 - out_ptr += rc; 24.1062 - break; 24.1063 - /* gid */ 24.1064 - case 'g': 24.1065 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1066 - "%d", current->gid); 24.1067 - if (rc > out_end - out_ptr) 24.1068 - goto out; 24.1069 - out_ptr += rc; 24.1070 - break; 24.1071 - /* signal that caused the coredump */ 24.1072 - case 's': 24.1073 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1074 - "%ld", signr); 24.1075 - if (rc > out_end - out_ptr) 24.1076 - goto out; 24.1077 - out_ptr += rc; 24.1078 - break; 24.1079 - /* UNIX time of coredump */ 24.1080 - case 't': { 24.1081 - struct timeval tv; 24.1082 - do_gettimeofday(&tv); 24.1083 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1084 - "%ld", tv.tv_sec); 24.1085 - if (rc > out_end - out_ptr) 24.1086 - goto out; 24.1087 - out_ptr += rc; 24.1088 - break; 24.1089 - } 24.1090 - /* hostname */ 24.1091 - case 'h': 24.1092 - down_read(&uts_sem); 24.1093 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1094 - "%s", system_utsname.nodename); 24.1095 - up_read(&uts_sem); 24.1096 - if (rc > out_end - out_ptr) 24.1097 - goto out; 24.1098 - out_ptr += rc; 24.1099 - break; 24.1100 - /* executable */ 24.1101 - case 'e': 24.1102 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1103 - "%s", current->comm); 24.1104 - if (rc > out_end - out_ptr) 24.1105 - goto out; 24.1106 - out_ptr += rc; 24.1107 - break; 24.1108 - default: 24.1109 - break; 24.1110 - } 24.1111 - ++pat_ptr; 24.1112 - } 24.1113 - } 24.1114 - /* Backward compatibility with core_uses_pid: 24.1115 - * 24.1116 - * If core_pattern does not include a %p (as is the default) 24.1117 - * and core_uses_pid is set, then .%pid will be appended to 24.1118 - * the filename */ 24.1119 - if (!pid_in_pattern 24.1120 - && (core_uses_pid || atomic_read(¤t->mm->mm_users) != 1)) { 24.1121 - rc = snprintf(out_ptr, out_end - out_ptr, 24.1122 - ".%d", current->pid); 24.1123 - if (rc > out_end - out_ptr) 24.1124 - goto out; 24.1125 - out_ptr += rc; 24.1126 - } 24.1127 - out: 24.1128 - *out_ptr = 0; 24.1129 -} 24.1130 - 24.1131 -int do_coredump(long signr, struct pt_regs * regs) 24.1132 -{ 24.1133 - struct linux_binfmt * binfmt; 24.1134 - char corename[CORENAME_MAX_SIZE + 1]; 24.1135 - struct file * file; 24.1136 - struct inode * inode; 24.1137 - int retval = 0; 24.1138 - int fsuid = current->fsuid; 24.1139 - 24.1140 - lock_kernel(); 24.1141 - binfmt = current->binfmt; 24.1142 - if (!binfmt || !binfmt->core_dump) 24.1143 - goto fail; 24.1144 - if (!is_dumpable(current)) 24.1145 - { 24.1146 - if(!core_setuid_ok || !current->task_dumpable) 24.1147 - goto fail; 24.1148 - current->fsuid = 0; 24.1149 - } 24.1150 - current->mm->dumpable = 0; 24.1151 - if (current->rlim[RLIMIT_CORE].rlim_cur < binfmt->min_coredump) 24.1152 - goto fail; 24.1153 - 24.1154 - format_corename(corename, core_pattern, signr); 24.1155 - file = filp_open(corename, O_CREAT | 2 | O_NOFOLLOW, 0600); 24.1156 - if (IS_ERR(file)) 24.1157 - goto fail; 24.1158 - inode = file->f_dentry->d_inode; 24.1159 - if (inode->i_nlink > 1) 24.1160 - goto close_fail; /* multiple links - don't dump */ 24.1161 - if (d_unhashed(file->f_dentry)) 24.1162 - goto close_fail; 24.1163 - 24.1164 - if (!S_ISREG(inode->i_mode)) 24.1165 - goto close_fail; 24.1166 - if (!file->f_op) 24.1167 - goto close_fail; 24.1168 - if (!file->f_op->write) 24.1169 - goto close_fail; 24.1170 - if (do_truncate(file->f_dentry, 0) != 0) 24.1171 - goto close_fail; 24.1172 - 24.1173 - retval = binfmt->core_dump(signr, regs, file); 24.1174 - 24.1175 -close_fail: 24.1176 - filp_close(file, NULL); 24.1177 -fail: 24.1178 - if (fsuid != current->fsuid) 24.1179 - current->fsuid = fsuid; 24.1180 - unlock_kernel(); 24.1181 - return retval; 24.1182 -}
25.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/desc.h Mon Apr 04 10:52:11 2005 +0000 25.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/desc.h Mon Apr 04 16:13:17 2005 +0000 25.3 @@ -18,11 +18,7 @@ extern struct desc_struct default_ldt[]; 25.4 25.5 static inline void clear_LDT(void) 25.6 { 25.7 - /* 25.8 - * NB. We load the default_ldt for lcall7/27 handling on demand, as 25.9 - * it slows down context switching. Noone uses it anyway. 25.10 - */ 25.11 - queue_set_ldt(0, 0); 25.12 + xen_set_ldt(0, 0); 25.13 } 25.14 25.15 static inline void load_LDT(mm_context_t *pc) 25.16 @@ -33,7 +29,7 @@ static inline void load_LDT(mm_context_t 25.17 if ( count == 0 ) 25.18 segments = NULL; 25.19 25.20 - queue_set_ldt((unsigned long)segments, count); 25.21 + xen_set_ldt((unsigned long)segments, count); 25.22 } 25.23 25.24 #endif /* __ASSEMBLY__ */
26.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h Mon Apr 04 10:52:11 2005 +0000 26.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h Mon Apr 04 16:13:17 2005 +0000 26.3 @@ -31,44 +31,29 @@ extern pgd_t *cur_pgd; 26.4 26.5 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk, unsigned cpu) 26.6 { 26.7 + struct mmuext_op _op[2], *op = _op; 26.8 if (prev != next) { 26.9 /* stop flush ipis for the previous mm */ 26.10 clear_bit(cpu, &prev->cpu_vm_mask); 26.11 -#ifdef CONFIG_SMP 26.12 - cpu_tlbstate[cpu].state = TLBSTATE_OK; 26.13 - cpu_tlbstate[cpu].active_mm = next; 26.14 -#endif 26.15 - 26.16 /* Re-load page tables */ 26.17 cur_pgd = next->pgd; 26.18 - queue_pt_switch(__pa(cur_pgd)); 26.19 - /* load_LDT, if either the previous or next thread 26.20 - * has a non-default LDT. 26.21 - */ 26.22 - if (next->context.size+prev->context.size) 26.23 - load_LDT(&next->context); 26.24 + op->cmd = MMUEXT_NEW_BASEPTR; 26.25 + op->mfn = pfn_to_mfn(__pa(next->pgd) >> PAGE_SHIFT); 26.26 + op++; 26.27 + /* load_LDT, if either the previous or next thread 26.28 + * has a non-default LDT. 26.29 + */ 26.30 + if (next->context.size+prev->context.size) { 26.31 + op->cmd = MMUEXT_SET_LDT; 26.32 + op->linear_addr = (unsigned long)next->context.ldt; 26.33 + op->nr_ents = next->context.size; 26.34 + op++; 26.35 + } 26.36 + BUG_ON(HYPERVISOR_mmuext_op(_op, op-_op, NULL, DOMID_SELF)); 26.37 } 26.38 -#ifdef CONFIG_SMP 26.39 - else { 26.40 - cpu_tlbstate[cpu].state = TLBSTATE_OK; 26.41 - if(cpu_tlbstate[cpu].active_mm != next) 26.42 - out_of_line_bug(); 26.43 - if(!test_and_set_bit(cpu, &next->cpu_vm_mask)) { 26.44 - /* We were in lazy tlb mode and leave_mm disabled 26.45 - * tlb flush IPI delivery. We must reload %cr3. 26.46 - */ 26.47 - cur_pgd = next->pgd; 26.48 - queue_pt_switch(__pa(cur_pgd)); 26.49 - load_LDT(next); 26.50 - } 26.51 - } 26.52 -#endif 26.53 } 26.54 26.55 -#define activate_mm(prev, next) \ 26.56 -do { \ 26.57 - switch_mm((prev),(next),NULL,smp_processor_id()); \ 26.58 - flush_page_update_queue(); \ 26.59 -} while ( 0 ) 26.60 +#define activate_mm(prev, next) \ 26.61 + switch_mm((prev),(next),NULL,smp_processor_id()) 26.62 26.63 #endif
27.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/page.h Mon Apr 04 10:52:11 2005 +0000 27.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/page.h Mon Apr 04 16:13:17 2005 +0000 27.3 @@ -85,23 +85,18 @@ typedef struct { unsigned long pgprot; } 27.4 static inline unsigned long pmd_val(pmd_t x) 27.5 { 27.6 unsigned long ret = x.pmd; 27.7 - if ( (ret & 1) ) ret = machine_to_phys(ret); 27.8 + if ( ret ) ret = machine_to_phys(ret) | 1; 27.9 return ret; 27.10 } 27.11 #define pmd_val_ma(x) ((x).pmd) 27.12 #define pgd_val(x) ({ BUG(); (unsigned long)0; }) 27.13 #define pgprot_val(x) ((x).pgprot) 27.14 27.15 -static inline pte_t __pte(unsigned long x) 27.16 -{ 27.17 - if ( (x & 1) ) x = phys_to_machine(x); 27.18 - return ((pte_t) { (x) }); 27.19 -} 27.20 -static inline pmd_t __pmd(unsigned long x) 27.21 -{ 27.22 - if ( (x & 1) ) x = phys_to_machine(x); 27.23 - return ((pmd_t) { (x) }); 27.24 -} 27.25 +#define __pte(x) ({ unsigned long _x = (x); \ 27.26 + (((_x)&1) ? ((pte_t) {phys_to_machine(_x)}) : ((pte_t) {(_x)})); }) 27.27 +#define __pte_ma(x) ((pte_t) { (x) } ) 27.28 +#define __pmd(x) ({ unsigned long _x = (x); \ 27.29 + (((_x)&1) ? ((pmd_t) {phys_to_machine(_x)}) : ((pmd_t) {(_x)})); }) 27.30 #define __pgd(x) ({ BUG(); (pgprot_t) { 0 }; }) 27.31 #define __pgprot(x) ((pgprot_t) { (x) } ) 27.32
28.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h Mon Apr 04 10:52:11 2005 +0000 28.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h Mon Apr 04 16:13:17 2005 +0000 28.3 @@ -22,7 +22,6 @@ 28.4 #define pmd_populate(mm, pmd, pte) \ 28.5 do { \ 28.6 set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte))); \ 28.7 - XEN_flush_page_update_queue(); \ 28.8 } while ( 0 ) 28.9 28.10 /* 28.11 @@ -79,8 +78,8 @@ static inline pgd_t *get_pgd_slow(void) 28.12 memcpy(pgd + USER_PTRS_PER_PGD, 28.13 init_mm.pgd + USER_PTRS_PER_PGD, 28.14 (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); 28.15 - __make_page_readonly(pgd); 28.16 - queue_pgd_pin(__pa(pgd)); 28.17 + __make_page_readonly(pgd); 28.18 + xen_pgd_pin(__pa(pgd)); 28.19 } 28.20 return pgd; 28.21 } 28.22 @@ -110,8 +109,8 @@ static inline void free_pgd_slow(pgd_t * 28.23 free_page((unsigned long)__va(pgd_val(pgd[i])-1)); 28.24 kmem_cache_free(pae_pgd_cachep, pgd); 28.25 #else 28.26 - queue_pgd_unpin(__pa(pgd)); 28.27 - __make_page_writable(pgd); 28.28 + xen_pgd_unpin(__pa(pgd)); 28.29 + __make_page_writable(pgd); 28.30 free_page((unsigned long)pgd); 28.31 #endif 28.32 } 28.33 @@ -134,7 +133,7 @@ static inline pte_t *pte_alloc_one(struc 28.34 { 28.35 clear_page(pte); 28.36 __make_page_readonly(pte); 28.37 - queue_pte_pin(__pa(pte)); 28.38 + xen_pte_pin(__pa(pte)); 28.39 } 28.40 return pte; 28.41 28.42 @@ -153,7 +152,7 @@ static inline pte_t *pte_alloc_one_fast( 28.43 28.44 static __inline__ void pte_free_slow(pte_t *pte) 28.45 { 28.46 - queue_pte_unpin(__pa(pte)); 28.47 + xen_pte_unpin(__pa(pte)); 28.48 __make_page_writable(pte); 28.49 free_page((unsigned long)pte); 28.50 } 28.51 @@ -208,22 +207,19 @@ extern int do_check_pgt_cache(int, int); 28.52 28.53 static inline void flush_tlb_mm(struct mm_struct *mm) 28.54 { 28.55 - if (mm == current->active_mm) queue_tlb_flush(); 28.56 - XEN_flush_page_update_queue(); 28.57 + if (mm == current->active_mm) xen_tlb_flush(); 28.58 } 28.59 28.60 static inline void flush_tlb_page(struct vm_area_struct *vma, 28.61 unsigned long addr) 28.62 { 28.63 - if (vma->vm_mm == current->active_mm) queue_invlpg(addr); 28.64 - XEN_flush_page_update_queue(); 28.65 + if (vma->vm_mm == current->active_mm) xen_invlpg(addr); 28.66 } 28.67 28.68 static inline void flush_tlb_range(struct mm_struct *mm, 28.69 unsigned long start, unsigned long end) 28.70 { 28.71 - if (mm == current->active_mm) queue_tlb_flush(); 28.72 - XEN_flush_page_update_queue(); 28.73 + if (mm == current->active_mm) xen_tlb_flush(); 28.74 } 28.75 28.76 #else 28.77 @@ -261,7 +257,6 @@ static inline void flush_tlb_pgtables(st 28.78 unsigned long start, unsigned long end) 28.79 { 28.80 /* i386 does not keep any page table caches in TLB */ 28.81 - XEN_flush_page_update_queue(); 28.82 } 28.83 28.84 /*
29.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h Mon Apr 04 10:52:11 2005 +0000 29.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h Mon Apr 04 16:13:17 2005 +0000 29.3 @@ -34,9 +34,19 @@ static inline int pgd_bad(pgd_t pgd) { 29.4 static inline int pgd_present(pgd_t pgd) { return 1; } 29.5 #define pgd_clear(xp) do { } while (0) 29.6 29.7 -#define set_pte(pteptr, pteval) queue_l1_entry_update(pteptr, (pteval).pte_low) 29.8 -#define set_pte_atomic(pteptr, pteval) queue_l1_entry_update(pteptr, (pteval).pte_low) 29.9 -#define set_pmd(pmdptr, pmdval) queue_l2_entry_update((pmdptr), (pmdval)) 29.10 +/* 29.11 + * Certain architectures need to do special things when PTEs 29.12 + * within a page table are directly modified. Thus, the following 29.13 + * hook is made available. 29.14 + */ 29.15 +#define set_pte(pteptr, pteval) (*(pteptr) = pteval) 29.16 +#define set_pte_atomic(pteptr, pteval) (*(pteptr) = pteval) 29.17 + 29.18 +/* 29.19 + * (pmds are folded into pgds so this doesnt get actually called, 29.20 + * but the define is needed for a generic inline function.) 29.21 + */ 29.22 +#define set_pmd(pmdptr, pmdval) xen_l2_entry_update((pmdptr), (pmdval)) 29.23 #define set_pgd(pgdptr, pgdval) ((void)0) 29.24 29.25 #define pgd_page(pgd) \ 29.26 @@ -47,6 +57,7 @@ static inline pmd_t * pmd_offset(pgd_t * 29.27 return (pmd_t *) dir; 29.28 } 29.29 29.30 +#define ptep_get_and_clear(xp) __pte_ma(xchg(&(xp)->pte_low, 0)) 29.31 #define pte_same(a, b) ((a).pte_low == (b).pte_low) 29.32 29.33 /* 29.34 @@ -83,21 +94,4 @@ static inline pmd_t * pmd_offset(pgd_t * 29.35 #define pte_none(x) (!(x).pte_low) 29.36 #define __mk_pte(page_nr,pgprot) __pte(((page_nr) << PAGE_SHIFT) | pgprot_val(pgprot)) 29.37 29.38 -/* 29.39 - * A note on implementation of this atomic 'get-and-clear' operation. 29.40 - * This is actually very simple because XenoLinux can only run on a single 29.41 - * processor. Therefore, we cannot race other processors setting the 'accessed' 29.42 - * or 'dirty' bits on a page-table entry. 29.43 - * Even if pages are shared between domains, that is not a problem because 29.44 - * each domain will have separate page tables, with their own versions of 29.45 - * accessed & dirty state. 29.46 - */ 29.47 -static inline pte_t ptep_get_and_clear(pte_t *xp) 29.48 -{ 29.49 - pte_t pte = *xp; 29.50 - if ( !pte_none(pte) ) 29.51 - queue_l1_entry_update(xp, 0); 29.52 - return pte; 29.53 -} 29.54 - 29.55 #endif /* _I386_PGTABLE_2LEVEL_H */
30.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h Mon Apr 04 10:52:11 2005 +0000 30.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h Mon Apr 04 16:13:17 2005 +0000 30.3 @@ -38,11 +38,11 @@ extern void paging_init(void); 30.4 30.5 extern unsigned long pgkern_mask; 30.6 30.7 -#define __flush_tlb() ({ queue_tlb_flush(); XEN_flush_page_update_queue(); }) 30.8 +#define __flush_tlb() xen_tlb_flush() 30.9 #define __flush_tlb_global() __flush_tlb() 30.10 #define __flush_tlb_all() __flush_tlb_global() 30.11 -#define __flush_tlb_one(addr) ({ queue_invlpg(addr); XEN_flush_page_update_queue(); }) 30.12 -#define __flush_tlb_single(addr) ({ queue_invlpg(addr); XEN_flush_page_update_queue(); }) 30.13 +#define __flush_tlb_one(addr) xen_invlpg(addr) 30.14 +#define __flush_tlb_single(addr) xen_invlpg(addr) 30.15 30.16 /* 30.17 * ZERO_PAGE is a global shared page that is always zero: used 30.18 @@ -179,12 +179,14 @@ extern void * high_memory; 30.19 #define __S111 PAGE_SHARED 30.20 30.21 #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) 30.22 -#define pte_clear(xp) queue_l1_entry_update(xp, 0) 30.23 +#define pte_clear(xp) do { set_pte(xp, __pte(0)); } while (0) 30.24 30.25 -#define pmd_none(x) (!(x).pmd) 30.26 -#define pmd_present(x) ((x).pmd & _PAGE_PRESENT) 30.27 +#define pmd_none(x) (!pmd_val(x)) 30.28 +/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t. 30.29 + can temporarily clear it. */ 30.30 +#define pmd_present(x) (pmd_val(x)) 30.31 #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) 30.32 -#define pmd_bad(x) (((x).pmd & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) 30.33 +#define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PRESENT)) != (_KERNPG_TABLE & ~_PAGE_PRESENT)) 30.34 30.35 30.36 #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) 30.37 @@ -212,29 +214,28 @@ static inline pte_t pte_mkwrite(pte_t pt 30.38 30.39 static inline int ptep_test_and_clear_dirty(pte_t *ptep) 30.40 { 30.41 - unsigned long pteval = *(unsigned long *)ptep; 30.42 - int ret = pteval & _PAGE_DIRTY; 30.43 - if ( ret ) queue_l1_entry_update(ptep, pteval & ~_PAGE_DIRTY); 30.44 - return ret; 30.45 + if (!pte_dirty(*ptep)) 30.46 + return 0; 30.47 + return test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte_low); 30.48 } 30.49 -static inline int ptep_test_and_clear_young(pte_t *ptep) 30.50 + 30.51 +static inline int ptep_test_and_clear_young(pte_t *ptep) 30.52 { 30.53 - unsigned long pteval = *(unsigned long *)ptep; 30.54 - int ret = pteval & _PAGE_ACCESSED; 30.55 - if ( ret ) queue_l1_entry_update(ptep, pteval & ~_PAGE_ACCESSED); 30.56 - return ret; 30.57 + if (!pte_young(*ptep)) 30.58 + return 0; 30.59 + return test_and_clear_bit(_PAGE_BIT_ACCESSED, &ptep->pte_low); 30.60 } 30.61 + 30.62 static inline void ptep_set_wrprotect(pte_t *ptep) 30.63 { 30.64 - unsigned long pteval = *(unsigned long *)ptep; 30.65 - if ( (pteval & _PAGE_RW) ) 30.66 - queue_l1_entry_update(ptep, pteval & ~_PAGE_RW); 30.67 + if (pte_write(*ptep)) 30.68 + clear_bit(_PAGE_BIT_RW, &ptep->pte_low); 30.69 } 30.70 + 30.71 static inline void ptep_mkdirty(pte_t *ptep) 30.72 { 30.73 - unsigned long pteval = *(unsigned long *)ptep; 30.74 - if ( !(pteval & _PAGE_DIRTY) ) 30.75 - queue_l1_entry_update(ptep, pteval | _PAGE_DIRTY); 30.76 + if (!pte_dirty(*ptep)) 30.77 + set_bit(_PAGE_BIT_DIRTY, &ptep->pte_low); 30.78 } 30.79 30.80 /* 30.81 @@ -299,7 +300,7 @@ static inline void __make_page_readonly( 30.82 pgd_t *pgd = pgd_offset_k((unsigned long)va); 30.83 pmd_t *pmd = pmd_offset(pgd, (unsigned long)va); 30.84 pte_t *pte = pte_offset(pmd, (unsigned long)va); 30.85 - queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW); 30.86 + set_pte(pte, pte_wrprotect(*pte)); 30.87 } 30.88 30.89 static inline void __make_page_writable(void *va) 30.90 @@ -307,7 +308,7 @@ static inline void __make_page_writable( 30.91 pgd_t *pgd = pgd_offset_k((unsigned long)va); 30.92 pmd_t *pmd = pmd_offset(pgd, (unsigned long)va); 30.93 pte_t *pte = pte_offset(pmd, (unsigned long)va); 30.94 - queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW); 30.95 + set_pte(pte, pte_mkwrite(*pte)); 30.96 } 30.97 30.98 static inline void make_page_readonly(void *va) 30.99 @@ -315,7 +316,7 @@ static inline void make_page_readonly(vo 30.100 pgd_t *pgd = pgd_offset_k((unsigned long)va); 30.101 pmd_t *pmd = pmd_offset(pgd, (unsigned long)va); 30.102 pte_t *pte = pte_offset(pmd, (unsigned long)va); 30.103 - queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW); 30.104 + set_pte(pte, pte_wrprotect(*pte)); 30.105 if ( (unsigned long)va >= VMALLOC_START ) 30.106 __make_page_readonly(machine_to_virt( 30.107 *(unsigned long *)pte&PAGE_MASK)); 30.108 @@ -326,7 +327,7 @@ static inline void make_page_writable(vo 30.109 pgd_t *pgd = pgd_offset_k((unsigned long)va); 30.110 pmd_t *pmd = pmd_offset(pgd, (unsigned long)va); 30.111 pte_t *pte = pte_offset(pmd, (unsigned long)va); 30.112 - queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW); 30.113 + set_pte(pte, pte_mkwrite(*pte)); 30.114 if ( (unsigned long)va >= VMALLOC_START ) 30.115 __make_page_writable(machine_to_virt( 30.116 *(unsigned long *)pte&PAGE_MASK));
31.1 --- a/linux-2.4.29-xen-sparse/mkbuildtree Mon Apr 04 10:52:11 2005 +0000 31.2 +++ b/linux-2.4.29-xen-sparse/mkbuildtree Mon Apr 04 16:13:17 2005 +0000 31.3 @@ -210,7 +210,6 @@ ln -sf ../../${LINUX_26}/include/asm-xen 31.4 ln -sf ../../${LINUX_26}/include/asm-xen/evtchn.h 31.5 ln -sf ../../${LINUX_26}/include/asm-xen/gnttab.h 31.6 ln -sf ../../${LINUX_26}/include/asm-xen/hypervisor.h 31.7 -ln -sf ../../${LINUX_26}/include/asm-xen/multicall.h 31.8 ln -sf ../../${LINUX_26}/include/asm-xen/xen_proc.h 31.9 ln -sf ../../${LINUX_26}/include/asm-xen/asm-i386/synch_bitops.h 31.10
32.1 --- a/linux-2.4.29-xen-sparse/mm/highmem.c Mon Apr 04 10:52:11 2005 +0000 32.2 +++ b/linux-2.4.29-xen-sparse/mm/highmem.c Mon Apr 04 16:13:17 2005 +0000 32.3 @@ -122,7 +122,6 @@ start: 32.4 } 32.5 vaddr = PKMAP_ADDR(last_pkmap_nr); 32.6 set_pte(&(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot)); 32.7 - XEN_flush_page_update_queue(); 32.8 32.9 pkmap_count[last_pkmap_nr] = 1; 32.10 page->virtual = (void *) vaddr;
33.1 --- a/linux-2.4.29-xen-sparse/mm/memory.c Mon Apr 04 10:52:11 2005 +0000 33.2 +++ b/linux-2.4.29-xen-sparse/mm/memory.c Mon Apr 04 16:13:17 2005 +0000 33.3 @@ -153,7 +153,6 @@ void clear_page_tables(struct mm_struct 33.4 free_one_pgd(page_dir); 33.5 page_dir++; 33.6 } while (--nr); 33.7 - XEN_flush_page_update_queue(); 33.8 spin_unlock(&mm->page_table_lock); 33.9 33.10 /* keep the page table cache within bounds */ 33.11 @@ -249,10 +248,8 @@ skip_copy_pte_range: address = (address 33.12 33.13 /* If it's a COW mapping, write protect it both in the parent and the child */ 33.14 if (cow && pte_write(pte)) { 33.15 - /* XEN modification: modified ordering here to avoid RaW hazard. */ 33.16 + ptep_set_wrprotect(src_pte); 33.17 pte = *src_pte; 33.18 - pte = pte_wrprotect(pte); 33.19 - ptep_set_wrprotect(src_pte); 33.20 } 33.21 33.22 /* If it's a shared mapping, mark it clean in the child */ 33.23 @@ -914,8 +911,7 @@ static inline void establish_pte(struct 33.24 { 33.25 #ifdef CONFIG_XEN 33.26 if ( likely(vma->vm_mm == current->mm) ) { 33.27 - XEN_flush_page_update_queue(); 33.28 - HYPERVISOR_update_va_mapping(address, entry, UVMF_INVLPG); 33.29 + HYPERVISOR_update_va_mapping(address, entry, UVMF_INVLPG|UVMF_LOCAL); 33.30 } else { 33.31 set_pte(page_table, entry); 33.32 flush_tlb_page(vma, address); 33.33 @@ -1189,13 +1185,10 @@ static int do_swap_page(struct mm_struct 33.34 flush_page_to_ram(page); 33.35 flush_icache_page(vma, page); 33.36 #ifdef CONFIG_XEN 33.37 - if ( likely(vma->vm_mm == current->mm) ) { 33.38 - XEN_flush_page_update_queue(); 33.39 + if ( likely(vma->vm_mm == current->mm) ) 33.40 HYPERVISOR_update_va_mapping(address, pte, 0); 33.41 - } else { 33.42 + else 33.43 set_pte(page_table, pte); 33.44 - XEN_flush_page_update_queue(); 33.45 - } 33.46 #else 33.47 set_pte(page_table, pte); 33.48 #endif 33.49 @@ -1245,13 +1238,10 @@ static int do_anonymous_page(struct mm_s 33.50 } 33.51 33.52 #ifdef CONFIG_XEN 33.53 - if ( likely(vma->vm_mm == current->mm) ) { 33.54 - XEN_flush_page_update_queue(); 33.55 + if ( likely(vma->vm_mm == current->mm) ) 33.56 HYPERVISOR_update_va_mapping(addr, entry, 0); 33.57 - } else { 33.58 + else 33.59 set_pte(page_table, entry); 33.60 - XEN_flush_page_update_queue(); 33.61 - } 33.62 #else 33.63 set_pte(page_table, entry); 33.64 #endif 33.65 @@ -1331,13 +1321,10 @@ static int do_no_page(struct mm_struct * 33.66 if (write_access) 33.67 entry = pte_mkwrite(pte_mkdirty(entry)); 33.68 #ifdef CONFIG_XEN 33.69 - if ( likely(vma->vm_mm == current->mm) ) { 33.70 - XEN_flush_page_update_queue(); 33.71 + if ( likely(vma->vm_mm == current->mm) ) 33.72 HYPERVISOR_update_va_mapping(address, entry, 0); 33.73 - } else { 33.74 + else 33.75 set_pte(page_table, entry); 33.76 - XEN_flush_page_update_queue(); 33.77 - } 33.78 #else 33.79 set_pte(page_table, entry); 33.80 #endif 33.81 @@ -1484,7 +1471,6 @@ pte_t fastcall *pte_alloc(struct mm_stru 33.82 /* "fast" allocation can happen without dropping the lock.. */ 33.83 new = pte_alloc_one_fast(mm, address); 33.84 if (!new) { 33.85 - XEN_flush_page_update_queue(); 33.86 spin_unlock(&mm->page_table_lock); 33.87 new = pte_alloc_one(mm, address); 33.88 spin_lock(&mm->page_table_lock);
34.1 --- a/linux-2.4.29-xen-sparse/mm/mremap.c Mon Apr 04 10:52:11 2005 +0000 34.2 +++ b/linux-2.4.29-xen-sparse/mm/mremap.c Mon Apr 04 16:13:17 2005 +0000 34.3 @@ -119,11 +119,9 @@ static int move_page_tables(struct mm_st 34.4 * the old page tables) 34.5 */ 34.6 oops_we_failed: 34.7 - XEN_flush_page_update_queue(); 34.8 flush_cache_range(mm, new_addr, new_addr + len); 34.9 while ((offset += PAGE_SIZE) < len) 34.10 move_one_page(mm, new_addr + offset, old_addr + offset); 34.11 - XEN_flush_page_update_queue(); 34.12 zap_page_range(mm, new_addr, len); 34.13 return -1; 34.14 }
35.1 --- a/linux-2.4.29-xen-sparse/mm/swapfile.c Mon Apr 04 10:52:11 2005 +0000 35.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 35.3 @@ -1,1267 +0,0 @@ 35.4 -/* 35.5 - * linux/mm/swapfile.c 35.6 - * 35.7 - * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds 35.8 - * Swap reorganised 29.12.95, Stephen Tweedie 35.9 - */ 35.10 - 35.11 -#include <linux/slab.h> 35.12 -#include <linux/smp_lock.h> 35.13 -#include <linux/kernel_stat.h> 35.14 -#include <linux/swap.h> 35.15 -#include <linux/swapctl.h> 35.16 -#include <linux/blkdev.h> /* for blk_size */ 35.17 -#include <linux/vmalloc.h> 35.18 -#include <linux/pagemap.h> 35.19 -#include <linux/shm.h> 35.20 - 35.21 -#include <asm/pgtable.h> 35.22 - 35.23 -spinlock_t swaplock = SPIN_LOCK_UNLOCKED; 35.24 -unsigned int nr_swapfiles; 35.25 -int total_swap_pages; 35.26 -static int swap_overflow; 35.27 - 35.28 -static const char Bad_file[] = "Bad swap file entry "; 35.29 -static const char Unused_file[] = "Unused swap file entry "; 35.30 -static const char Bad_offset[] = "Bad swap offset entry "; 35.31 -static const char Unused_offset[] = "Unused swap offset entry "; 35.32 - 35.33 -struct swap_list_t swap_list = {-1, -1}; 35.34 - 35.35 -struct swap_info_struct swap_info[MAX_SWAPFILES]; 35.36 - 35.37 -#define SWAPFILE_CLUSTER 256 35.38 - 35.39 -static inline int scan_swap_map(struct swap_info_struct *si) 35.40 -{ 35.41 - unsigned long offset; 35.42 - /* 35.43 - * We try to cluster swap pages by allocating them 35.44 - * sequentially in swap. Once we've allocated 35.45 - * SWAPFILE_CLUSTER pages this way, however, we resort to 35.46 - * first-free allocation, starting a new cluster. This 35.47 - * prevents us from scattering swap pages all over the entire 35.48 - * swap partition, so that we reduce overall disk seek times 35.49 - * between swap pages. -- sct */ 35.50 - if (si->cluster_nr) { 35.51 - while (si->cluster_next <= si->highest_bit) { 35.52 - offset = si->cluster_next++; 35.53 - if (si->swap_map[offset]) 35.54 - continue; 35.55 - si->cluster_nr--; 35.56 - goto got_page; 35.57 - } 35.58 - } 35.59 - si->cluster_nr = SWAPFILE_CLUSTER; 35.60 - 35.61 - /* try to find an empty (even not aligned) cluster. */ 35.62 - offset = si->lowest_bit; 35.63 - check_next_cluster: 35.64 - if (offset+SWAPFILE_CLUSTER-1 <= si->highest_bit) 35.65 - { 35.66 - int nr; 35.67 - for (nr = offset; nr < offset+SWAPFILE_CLUSTER; nr++) 35.68 - if (si->swap_map[nr]) 35.69 - { 35.70 - offset = nr+1; 35.71 - goto check_next_cluster; 35.72 - } 35.73 - /* We found a completly empty cluster, so start 35.74 - * using it. 35.75 - */ 35.76 - goto got_page; 35.77 - } 35.78 - /* No luck, so now go finegrined as usual. -Andrea */ 35.79 - for (offset = si->lowest_bit; offset <= si->highest_bit ; offset++) { 35.80 - if (si->swap_map[offset]) 35.81 - continue; 35.82 - si->lowest_bit = offset+1; 35.83 - got_page: 35.84 - if (offset == si->lowest_bit) 35.85 - si->lowest_bit++; 35.86 - if (offset == si->highest_bit) 35.87 - si->highest_bit--; 35.88 - if (si->lowest_bit > si->highest_bit) { 35.89 - si->lowest_bit = si->max; 35.90 - si->highest_bit = 0; 35.91 - } 35.92 - si->swap_map[offset] = 1; 35.93 - nr_swap_pages--; 35.94 - si->cluster_next = offset+1; 35.95 - return offset; 35.96 - } 35.97 - si->lowest_bit = si->max; 35.98 - si->highest_bit = 0; 35.99 - return 0; 35.100 -} 35.101 - 35.102 -swp_entry_t get_swap_page(void) 35.103 -{ 35.104 - struct swap_info_struct * p; 35.105 - unsigned long offset; 35.106 - swp_entry_t entry; 35.107 - int type, wrapped = 0; 35.108 - 35.109 - entry.val = 0; /* Out of memory */ 35.110 - swap_list_lock(); 35.111 - type = swap_list.next; 35.112 - if (type < 0) 35.113 - goto out; 35.114 - if (nr_swap_pages <= 0) 35.115 - goto out; 35.116 - 35.117 - while (1) { 35.118 - p = &swap_info[type]; 35.119 - if ((p->flags & SWP_WRITEOK) == SWP_WRITEOK) { 35.120 - swap_device_lock(p); 35.121 - offset = scan_swap_map(p); 35.122 - swap_device_unlock(p); 35.123 - if (offset) { 35.124 - entry = SWP_ENTRY(type,offset); 35.125 - type = swap_info[type].next; 35.126 - if (type < 0 || 35.127 - p->prio != swap_info[type].prio) { 35.128 - swap_list.next = swap_list.head; 35.129 - } else { 35.130 - swap_list.next = type; 35.131 - } 35.132 - goto out; 35.133 - } 35.134 - } 35.135 - type = p->next; 35.136 - if (!wrapped) { 35.137 - if (type < 0 || p->prio != swap_info[type].prio) { 35.138 - type = swap_list.head; 35.139 - wrapped = 1; 35.140 - } 35.141 - } else 35.142 - if (type < 0) 35.143 - goto out; /* out of swap space */ 35.144 - } 35.145 -out: 35.146 - swap_list_unlock(); 35.147 - return entry; 35.148 -} 35.149 - 35.150 -static struct swap_info_struct * swap_info_get(swp_entry_t entry) 35.151 -{ 35.152 - struct swap_info_struct * p; 35.153 - unsigned long offset, type; 35.154 - 35.155 - if (!entry.val) 35.156 - goto out; 35.157 - type = SWP_TYPE(entry); 35.158 - if (type >= nr_swapfiles) 35.159 - goto bad_nofile; 35.160 - p = & swap_info[type]; 35.161 - if (!(p->flags & SWP_USED)) 35.162 - goto bad_device; 35.163 - offset = SWP_OFFSET(entry); 35.164 - if (offset >= p->max) 35.165 - goto bad_offset; 35.166 - if (!p->swap_map[offset]) 35.167 - goto bad_free; 35.168 - swap_list_lock(); 35.169 - if (p->prio > swap_info[swap_list.next].prio) 35.170 - swap_list.next = type; 35.171 - swap_device_lock(p); 35.172 - return p; 35.173 - 35.174 -bad_free: 35.175 - printk(KERN_ERR "swap_free: %s%08lx\n", Unused_offset, entry.val); 35.176 - goto out; 35.177 -bad_offset: 35.178 - printk(KERN_ERR "swap_free: %s%08lx\n", Bad_offset, entry.val); 35.179 - goto out; 35.180 -bad_device: 35.181 - printk(KERN_ERR "swap_free: %s%08lx\n", Unused_file, entry.val); 35.182 - goto out; 35.183 -bad_nofile: 35.184 - printk(KERN_ERR "swap_free: %s%08lx\n", Bad_file, entry.val); 35.185 -out: 35.186 - return NULL; 35.187 -} 35.188 - 35.189 -static void swap_info_put(struct swap_info_struct * p) 35.190 -{ 35.191 - swap_device_unlock(p); 35.192 - swap_list_unlock(); 35.193 -} 35.194 - 35.195 -static int swap_entry_free(struct swap_info_struct *p, unsigned long offset) 35.196 -{ 35.197 - int count = p->swap_map[offset]; 35.198 - 35.199 - if (count < SWAP_MAP_MAX) { 35.200 - count--; 35.201 - p->swap_map[offset] = count; 35.202 - if (!count) { 35.203 - if (offset < p->lowest_bit) 35.204 - p->lowest_bit = offset; 35.205 - if (offset > p->highest_bit) 35.206 - p->highest_bit = offset; 35.207 - nr_swap_pages++; 35.208 - } 35.209 - } 35.210 - return count; 35.211 -} 35.212 - 35.213 -/* 35.214 - * Caller has made sure that the swapdevice corresponding to entry 35.215 - * is still around or has not been recycled. 35.216 - */ 35.217 -void swap_free(swp_entry_t entry) 35.218 -{ 35.219 - struct swap_info_struct * p; 35.220 - 35.221 - p = swap_info_get(entry); 35.222 - if (p) { 35.223 - swap_entry_free(p, SWP_OFFSET(entry)); 35.224 - swap_info_put(p); 35.225 - } 35.226 -} 35.227 - 35.228 -/* 35.229 - * Check if we're the only user of a swap page, 35.230 - * when the page is locked. 35.231 - */ 35.232 -static int exclusive_swap_page(struct page *page) 35.233 -{ 35.234 - int retval = 0; 35.235 - struct swap_info_struct * p; 35.236 - swp_entry_t entry; 35.237 - 35.238 - entry.val = page->index; 35.239 - p = swap_info_get(entry); 35.240 - if (p) { 35.241 - /* Is the only swap cache user the cache itself? */ 35.242 - if (p->swap_map[SWP_OFFSET(entry)] == 1) { 35.243 - /* Recheck the page count with the pagecache lock held.. */ 35.244 - spin_lock(&pagecache_lock); 35.245 - if (page_count(page) - !!page->buffers == 2) 35.246 - retval = 1; 35.247 - spin_unlock(&pagecache_lock); 35.248 - } 35.249 - swap_info_put(p); 35.250 - } 35.251 - return retval; 35.252 -} 35.253 - 35.254 -/* 35.255 - * We can use this swap cache entry directly 35.256 - * if there are no other references to it. 35.257 - * 35.258 - * Here "exclusive_swap_page()" does the real 35.259 - * work, but we opportunistically check whether 35.260 - * we need to get all the locks first.. 35.261 - */ 35.262 -int fastcall can_share_swap_page(struct page *page) 35.263 -{ 35.264 - int retval = 0; 35.265 - 35.266 - if (!PageLocked(page)) 35.267 - BUG(); 35.268 - switch (page_count(page)) { 35.269 - case 3: 35.270 - if (!page->buffers) 35.271 - break; 35.272 - /* Fallthrough */ 35.273 - case 2: 35.274 - if (!PageSwapCache(page)) 35.275 - break; 35.276 - retval = exclusive_swap_page(page); 35.277 - break; 35.278 - case 1: 35.279 - if (PageReserved(page)) 35.280 - break; 35.281 - retval = 1; 35.282 - } 35.283 - return retval; 35.284 -} 35.285 - 35.286 -/* 35.287 - * Work out if there are any other processes sharing this 35.288 - * swap cache page. Free it if you can. Return success. 35.289 - */ 35.290 -int fastcall remove_exclusive_swap_page(struct page *page) 35.291 -{ 35.292 - int retval; 35.293 - struct swap_info_struct * p; 35.294 - swp_entry_t entry; 35.295 - 35.296 - if (!PageLocked(page)) 35.297 - BUG(); 35.298 - if (!PageSwapCache(page)) 35.299 - return 0; 35.300 - if (page_count(page) - !!page->buffers != 2) /* 2: us + cache */ 35.301 - return 0; 35.302 - 35.303 - entry.val = page->index; 35.304 - p = swap_info_get(entry); 35.305 - if (!p) 35.306 - return 0; 35.307 - 35.308 - /* Is the only swap cache user the cache itself? */ 35.309 - retval = 0; 35.310 - if (p->swap_map[SWP_OFFSET(entry)] == 1) { 35.311 - /* Recheck the page count with the pagecache lock held.. */ 35.312 - spin_lock(&pagecache_lock); 35.313 - if (page_count(page) - !!page->buffers == 2) { 35.314 - __delete_from_swap_cache(page); 35.315 - SetPageDirty(page); 35.316 - retval = 1; 35.317 - } 35.318 - spin_unlock(&pagecache_lock); 35.319 - } 35.320 - swap_info_put(p); 35.321 - 35.322 - if (retval) { 35.323 - block_flushpage(page, 0); 35.324 - swap_free(entry); 35.325 - page_cache_release(page); 35.326 - } 35.327 - 35.328 - return retval; 35.329 -} 35.330 - 35.331 -/* 35.332 - * Free the swap entry like above, but also try to 35.333 - * free the page cache entry if it is the last user. 35.334 - */ 35.335 -void free_swap_and_cache(swp_entry_t entry) 35.336 -{ 35.337 - struct swap_info_struct * p; 35.338 - struct page *page = NULL; 35.339 - 35.340 - p = swap_info_get(entry); 35.341 - if (p) { 35.342 - if (swap_entry_free(p, SWP_OFFSET(entry)) == 1) 35.343 - page = find_trylock_page(&swapper_space, entry.val); 35.344 - swap_info_put(p); 35.345 - } 35.346 - if (page) { 35.347 - page_cache_get(page); 35.348 - /* Only cache user (+us), or swap space full? Free it! */ 35.349 - if (page_count(page) - !!page->buffers == 2 || vm_swap_full()) { 35.350 - delete_from_swap_cache(page); 35.351 - SetPageDirty(page); 35.352 - } 35.353 - UnlockPage(page); 35.354 - page_cache_release(page); 35.355 - } 35.356 -} 35.357 - 35.358 -/* 35.359 - * The swap entry has been read in advance, and we return 1 to indicate 35.360 - * that the page has been used or is no longer needed. 35.361 - * 35.362 - * Always set the resulting pte to be nowrite (the same as COW pages 35.363 - * after one process has exited). We don't know just how many PTEs will 35.364 - * share this swap entry, so be cautious and let do_wp_page work out 35.365 - * what to do if a write is requested later. 35.366 - */ 35.367 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */ 35.368 -static inline void unuse_pte(struct vm_area_struct * vma, unsigned long address, 35.369 - pte_t *dir, swp_entry_t entry, struct page* page) 35.370 -{ 35.371 - pte_t pte = *dir; 35.372 - 35.373 - if (likely(pte_to_swp_entry(pte).val != entry.val)) 35.374 - return; 35.375 - if (unlikely(pte_none(pte) || pte_present(pte))) 35.376 - return; 35.377 - get_page(page); 35.378 - set_pte(dir, pte_mkold(mk_pte(page, vma->vm_page_prot))); 35.379 - swap_free(entry); 35.380 - ++vma->vm_mm->rss; 35.381 -} 35.382 - 35.383 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */ 35.384 -static inline void unuse_pmd(struct vm_area_struct * vma, pmd_t *dir, 35.385 - unsigned long address, unsigned long size, unsigned long offset, 35.386 - swp_entry_t entry, struct page* page) 35.387 -{ 35.388 - pte_t * pte; 35.389 - unsigned long end; 35.390 - 35.391 - if (pmd_none(*dir)) 35.392 - return; 35.393 - if (pmd_bad(*dir)) { 35.394 - pmd_ERROR(*dir); 35.395 - pmd_clear(dir); 35.396 - return; 35.397 - } 35.398 - pte = pte_offset(dir, address); 35.399 - offset += address & PMD_MASK; 35.400 - address &= ~PMD_MASK; 35.401 - end = address + size; 35.402 - if (end > PMD_SIZE) 35.403 - end = PMD_SIZE; 35.404 - do { 35.405 - unuse_pte(vma, offset+address-vma->vm_start, pte, entry, page); 35.406 - address += PAGE_SIZE; 35.407 - pte++; 35.408 - } while (address && (address < end)); 35.409 -} 35.410 - 35.411 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */ 35.412 -static inline void unuse_pgd(struct vm_area_struct * vma, pgd_t *dir, 35.413 - unsigned long address, unsigned long size, 35.414 - swp_entry_t entry, struct page* page) 35.415 -{ 35.416 - pmd_t * pmd; 35.417 - unsigned long offset, end; 35.418 - 35.419 - if (pgd_none(*dir)) 35.420 - return; 35.421 - if (pgd_bad(*dir)) { 35.422 - pgd_ERROR(*dir); 35.423 - pgd_clear(dir); 35.424 - return; 35.425 - } 35.426 - pmd = pmd_offset(dir, address); 35.427 - offset = address & PGDIR_MASK; 35.428 - address &= ~PGDIR_MASK; 35.429 - end = address + size; 35.430 - if (end > PGDIR_SIZE) 35.431 - end = PGDIR_SIZE; 35.432 - if (address >= end) 35.433 - BUG(); 35.434 - do { 35.435 - unuse_pmd(vma, pmd, address, end - address, offset, entry, 35.436 - page); 35.437 - address = (address + PMD_SIZE) & PMD_MASK; 35.438 - pmd++; 35.439 - } while (address && (address < end)); 35.440 -} 35.441 - 35.442 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */ 35.443 -static void unuse_vma(struct vm_area_struct * vma, pgd_t *pgdir, 35.444 - swp_entry_t entry, struct page* page) 35.445 -{ 35.446 - unsigned long start = vma->vm_start, end = vma->vm_end; 35.447 - 35.448 - if (start >= end) 35.449 - BUG(); 35.450 - do { 35.451 - unuse_pgd(vma, pgdir, start, end - start, entry, page); 35.452 - start = (start + PGDIR_SIZE) & PGDIR_MASK; 35.453 - pgdir++; 35.454 - } while (start && (start < end)); 35.455 -} 35.456 - 35.457 -static void unuse_process(struct mm_struct * mm, 35.458 - swp_entry_t entry, struct page* page) 35.459 -{ 35.460 - struct vm_area_struct* vma; 35.461 - 35.462 - /* 35.463 - * Go through process' page directory. 35.464 - */ 35.465 - spin_lock(&mm->page_table_lock); 35.466 - for (vma = mm->mmap; vma; vma = vma->vm_next) { 35.467 - pgd_t * pgd = pgd_offset(mm, vma->vm_start); 35.468 - unuse_vma(vma, pgd, entry, page); 35.469 - } 35.470 - XEN_flush_page_update_queue(); 35.471 - spin_unlock(&mm->page_table_lock); 35.472 - return; 35.473 -} 35.474 - 35.475 -/* 35.476 - * Scan swap_map from current position to next entry still in use. 35.477 - * Recycle to start on reaching the end, returning 0 when empty. 35.478 - */ 35.479 -static int find_next_to_unuse(struct swap_info_struct *si, int prev) 35.480 -{ 35.481 - int max = si->max; 35.482 - int i = prev; 35.483 - int count; 35.484 - 35.485 - /* 35.486 - * No need for swap_device_lock(si) here: we're just looking 35.487 - * for whether an entry is in use, not modifying it; false 35.488 - * hits are okay, and sys_swapoff() has already prevented new 35.489 - * allocations from this area (while holding swap_list_lock()). 35.490 - */ 35.491 - for (;;) { 35.492 - if (++i >= max) { 35.493 - if (!prev) { 35.494 - i = 0; 35.495 - break; 35.496 - } 35.497 - /* 35.498 - * No entries in use at top of swap_map, 35.499 - * loop back to start and recheck there. 35.500 - */ 35.501 - max = prev + 1; 35.502 - prev = 0; 35.503 - i = 1; 35.504 - } 35.505 - count = si->swap_map[i]; 35.506 - if (count && count != SWAP_MAP_BAD) 35.507 - break; 35.508 - } 35.509 - return i; 35.510 -} 35.511 - 35.512 -/* 35.513 - * We completely avoid races by reading each swap page in advance, 35.514 - * and then search for the process using it. All the necessary 35.515 - * page table adjustments can then be made atomically. 35.516 - */ 35.517 -static int try_to_unuse(unsigned int type) 35.518 -{ 35.519 - struct swap_info_struct * si = &swap_info[type]; 35.520 - struct mm_struct *start_mm; 35.521 - unsigned short *swap_map; 35.522 - unsigned short swcount; 35.523 - struct page *page; 35.524 - swp_entry_t entry; 35.525 - int i = 0; 35.526 - int retval = 0; 35.527 - int reset_overflow = 0; 35.528 - int shmem; 35.529 - 35.530 - /* 35.531 - * When searching mms for an entry, a good strategy is to 35.532 - * start at the first mm we freed the previous entry from 35.533 - * (though actually we don't notice whether we or coincidence 35.534 - * freed the entry). Initialize this start_mm with a hold. 35.535 - * 35.536 - * A simpler strategy would be to start at the last mm we 35.537 - * freed the previous entry from; but that would take less 35.538 - * advantage of mmlist ordering (now preserved by swap_out()), 35.539 - * which clusters forked address spaces together, most recent 35.540 - * child immediately after parent. If we race with dup_mmap(), 35.541 - * we very much want to resolve parent before child, otherwise 35.542 - * we may miss some entries: using last mm would invert that. 35.543 - */ 35.544 - start_mm = &init_mm; 35.545 - atomic_inc(&init_mm.mm_users); 35.546 - 35.547 - /* 35.548 - * Keep on scanning until all entries have gone. Usually, 35.549 - * one pass through swap_map is enough, but not necessarily: 35.550 - * mmput() removes mm from mmlist before exit_mmap() and its 35.551 - * zap_page_range(). That's not too bad, those entries are 35.552 - * on their way out, and handled faster there than here. 35.553 - * do_munmap() behaves similarly, taking the range out of mm's 35.554 - * vma list before zap_page_range(). But unfortunately, when 35.555 - * unmapping a part of a vma, it takes the whole out first, 35.556 - * then reinserts what's left after (might even reschedule if 35.557 - * open() method called) - so swap entries may be invisible 35.558 - * to swapoff for a while, then reappear - but that is rare. 35.559 - */ 35.560 - while ((i = find_next_to_unuse(si, i))) { 35.561 - /* 35.562 - * Get a page for the entry, using the existing swap 35.563 - * cache page if there is one. Otherwise, get a clean 35.564 - * page and read the swap into it. 35.565 - */ 35.566 - swap_map = &si->swap_map[i]; 35.567 - entry = SWP_ENTRY(type, i); 35.568 - page = read_swap_cache_async(entry); 35.569 - if (!page) { 35.570 - /* 35.571 - * Either swap_duplicate() failed because entry 35.572 - * has been freed independently, and will not be 35.573 - * reused since sys_swapoff() already disabled 35.574 - * allocation from here, or alloc_page() failed. 35.575 - */ 35.576 - if (!*swap_map) 35.577 - continue; 35.578 - retval = -ENOMEM; 35.579 - break; 35.580 - } 35.581 - 35.582 - /* 35.583 - * Don't hold on to start_mm if it looks like exiting. 35.584 - */ 35.585 - if (atomic_read(&start_mm->mm_users) == 1) { 35.586 - mmput(start_mm); 35.587 - start_mm = &init_mm; 35.588 - atomic_inc(&init_mm.mm_users); 35.589 - } 35.590 - 35.591 - /* 35.592 - * Wait for and lock page. When do_swap_page races with 35.593 - * try_to_unuse, do_swap_page can handle the fault much 35.594 - * faster than try_to_unuse can locate the entry. This 35.595 - * apparently redundant "wait_on_page" lets try_to_unuse 35.596 - * defer to do_swap_page in such a case - in some tests, 35.597 - * do_swap_page and try_to_unuse repeatedly compete. 35.598 - */ 35.599 - wait_on_page(page); 35.600 - lock_page(page); 35.601 - 35.602 - /* 35.603 - * Remove all references to entry, without blocking. 35.604 - * Whenever we reach init_mm, there's no address space 35.605 - * to search, but use it as a reminder to search shmem. 35.606 - */ 35.607 - shmem = 0; 35.608 - swcount = *swap_map; 35.609 - if (swcount > 1) { 35.610 - flush_page_to_ram(page); 35.611 - if (start_mm == &init_mm) 35.612 - shmem = shmem_unuse(entry, page); 35.613 - else 35.614 - unuse_process(start_mm, entry, page); 35.615 - } 35.616 - if (*swap_map > 1) { 35.617 - int set_start_mm = (*swap_map >= swcount); 35.618 - struct list_head *p = &start_mm->mmlist; 35.619 - struct mm_struct *new_start_mm = start_mm; 35.620 - struct mm_struct *mm; 35.621 - 35.622 - spin_lock(&mmlist_lock); 35.623 - while (*swap_map > 1 && 35.624 - (p = p->next) != &start_mm->mmlist) { 35.625 - mm = list_entry(p, struct mm_struct, mmlist); 35.626 - swcount = *swap_map; 35.627 - if (mm == &init_mm) { 35.628 - set_start_mm = 1; 35.629 - spin_unlock(&mmlist_lock); 35.630 - shmem = shmem_unuse(entry, page); 35.631 - spin_lock(&mmlist_lock); 35.632 - } else 35.633 - unuse_process(mm, entry, page); 35.634 - if (set_start_mm && *swap_map < swcount) { 35.635 - new_start_mm = mm; 35.636 - set_start_mm = 0; 35.637 - } 35.638 - } 35.639 - atomic_inc(&new_start_mm->mm_users); 35.640 - spin_unlock(&mmlist_lock); 35.641 - mmput(start_mm); 35.642 - start_mm = new_start_mm; 35.643 - } 35.644 - 35.645 - /* 35.646 - * How could swap count reach 0x7fff when the maximum 35.647 - * pid is 0x7fff, and there's no way to repeat a swap 35.648 - * page within an mm (except in shmem, where it's the 35.649 - * shared object which takes the reference count)? 35.650 - * We believe SWAP_MAP_MAX cannot occur in Linux 2.4. 35.651 - * 35.652 - * If that's wrong, then we should worry more about 35.653 - * exit_mmap() and do_munmap() cases described above: 35.654 - * we might be resetting SWAP_MAP_MAX too early here. 35.655 - * We know "Undead"s can happen, they're okay, so don't 35.656 - * report them; but do report if we reset SWAP_MAP_MAX. 35.657 - */ 35.658 - if (*swap_map == SWAP_MAP_MAX) { 35.659 - swap_list_lock(); 35.660 - swap_device_lock(si); 35.661 - nr_swap_pages++; 35.662 - *swap_map = 1; 35.663 - swap_device_unlock(si); 35.664 - swap_list_unlock(); 35.665 - reset_overflow = 1; 35.666 - } 35.667 - 35.668 - /* 35.669 - * If a reference remains (rare), we would like to leave 35.670 - * the page in the swap cache; but try_to_swap_out could 35.671 - * then re-duplicate the entry once we drop page lock, 35.672 - * so we might loop indefinitely; also, that page could 35.673 - * not be swapped out to other storage meanwhile. So: 35.674 - * delete from cache even if there's another reference, 35.675 - * after ensuring that the data has been saved to disk - 35.676 - * since if the reference remains (rarer), it will be 35.677 - * read from disk into another page. Splitting into two 35.678 - * pages would be incorrect if swap supported "shared 35.679 - * private" pages, but they are handled by tmpfs files. 35.680 - * 35.681 - * Note shmem_unuse already deleted swappage from cache, 35.682 - * unless corresponding filepage found already in cache: 35.683 - * in which case it left swappage in cache, lowered its 35.684 - * swap count to pass quickly through the loops above, 35.685 - * and now we must reincrement count to try again later. 35.686 - */ 35.687 - if ((*swap_map > 1) && PageDirty(page) && PageSwapCache(page)) { 35.688 - rw_swap_page(WRITE, page); 35.689 - lock_page(page); 35.690 - } 35.691 - if (PageSwapCache(page)) { 35.692 - if (shmem) 35.693 - swap_duplicate(entry); 35.694 - else 35.695 - delete_from_swap_cache(page); 35.696 - } 35.697 - 35.698 - /* 35.699 - * So we could skip searching mms once swap count went 35.700 - * to 1, we did not mark any present ptes as dirty: must 35.701 - * mark page dirty so try_to_swap_out will preserve it. 35.702 - */ 35.703 - SetPageDirty(page); 35.704 - UnlockPage(page); 35.705 - page_cache_release(page); 35.706 - 35.707 - /* 35.708 - * Make sure that we aren't completely killing 35.709 - * interactive performance. Interruptible check on 35.710 - * signal_pending() would be nice, but changes the spec? 35.711 - */ 35.712 - if (current->need_resched) 35.713 - schedule(); 35.714 - } 35.715 - 35.716 - mmput(start_mm); 35.717 - if (reset_overflow) { 35.718 - printk(KERN_WARNING "swapoff: cleared swap entry overflow\n"); 35.719 - swap_overflow = 0; 35.720 - } 35.721 - return retval; 35.722 -} 35.723 - 35.724 -asmlinkage long sys_swapoff(const char * specialfile) 35.725 -{ 35.726 - struct swap_info_struct * p = NULL; 35.727 - unsigned short *swap_map; 35.728 - struct nameidata nd; 35.729 - int i, type, prev; 35.730 - int err; 35.731 - 35.732 - if (!capable(CAP_SYS_ADMIN)) 35.733 - return -EPERM; 35.734 - 35.735 - err = user_path_walk(specialfile, &nd); 35.736 - if (err) 35.737 - goto out; 35.738 - 35.739 - lock_kernel(); 35.740 - prev = -1; 35.741 - swap_list_lock(); 35.742 - for (type = swap_list.head; type >= 0; type = swap_info[type].next) { 35.743 - p = swap_info + type; 35.744 - if ((p->flags & SWP_WRITEOK) == SWP_WRITEOK) { 35.745 - if (p->swap_file == nd.dentry) 35.746 - break; 35.747 - } 35.748 - prev = type; 35.749 - } 35.750 - err = -EINVAL; 35.751 - if (type < 0) { 35.752 - swap_list_unlock(); 35.753 - goto out_dput; 35.754 - } 35.755 - 35.756 - if (prev < 0) { 35.757 - swap_list.head = p->next; 35.758 - } else { 35.759 - swap_info[prev].next = p->next; 35.760 - } 35.761 - if (type == swap_list.next) { 35.762 - /* just pick something that's safe... */ 35.763 - swap_list.next = swap_list.head; 35.764 - } 35.765 - nr_swap_pages -= p->pages; 35.766 - total_swap_pages -= p->pages; 35.767 - p->flags = SWP_USED; 35.768 - swap_list_unlock(); 35.769 - unlock_kernel(); 35.770 - err = try_to_unuse(type); 35.771 - lock_kernel(); 35.772 - if (err) { 35.773 - /* re-insert swap space back into swap_list */ 35.774 - swap_list_lock(); 35.775 - for (prev = -1, i = swap_list.head; i >= 0; prev = i, i = swap_info[i].next) 35.776 - if (p->prio >= swap_info[i].prio) 35.777 - break; 35.778 - p->next = i; 35.779 - if (prev < 0) 35.780 - swap_list.head = swap_list.next = p - swap_info; 35.781 - else 35.782 - swap_info[prev].next = p - swap_info; 35.783 - nr_swap_pages += p->pages; 35.784 - total_swap_pages += p->pages; 35.785 - p->flags = SWP_WRITEOK; 35.786 - swap_list_unlock(); 35.787 - goto out_dput; 35.788 - } 35.789 - if (p->swap_device) 35.790 - blkdev_put(p->swap_file->d_inode->i_bdev, BDEV_SWAP); 35.791 - path_release(&nd); 35.792 - 35.793 - swap_list_lock(); 35.794 - swap_device_lock(p); 35.795 - nd.mnt = p->swap_vfsmnt; 35.796 - nd.dentry = p->swap_file; 35.797 - p->swap_vfsmnt = NULL; 35.798 - p->swap_file = NULL; 35.799 - p->swap_device = 0; 35.800 - p->max = 0; 35.801 - swap_map = p->swap_map; 35.802 - p->swap_map = NULL; 35.803 - p->flags = 0; 35.804 - swap_device_unlock(p); 35.805 - swap_list_unlock(); 35.806 - vfree(swap_map); 35.807 - err = 0; 35.808 - 35.809 -out_dput: 35.810 - unlock_kernel(); 35.811 - path_release(&nd); 35.812 -out: 35.813 - return err; 35.814 -} 35.815 - 35.816 -int get_swaparea_info(char *buf) 35.817 -{ 35.818 - char * page = (char *) __get_free_page(GFP_KERNEL); 35.819 - struct swap_info_struct *ptr = swap_info; 35.820 - int i, j, len = 0, usedswap; 35.821 - 35.822 - if (!page) 35.823 - return -ENOMEM; 35.824 - 35.825 - len += sprintf(buf, "Filename\t\t\tType\t\tSize\tUsed\tPriority\n"); 35.826 - for (i = 0 ; i < nr_swapfiles ; i++, ptr++) { 35.827 - if ((ptr->flags & SWP_USED) && ptr->swap_map) { 35.828 - char * path = d_path(ptr->swap_file, ptr->swap_vfsmnt, 35.829 - page, PAGE_SIZE); 35.830 - 35.831 - len += sprintf(buf + len, "%-31s ", path); 35.832 - 35.833 - if (!ptr->swap_device) 35.834 - len += sprintf(buf + len, "file\t\t"); 35.835 - else 35.836 - len += sprintf(buf + len, "partition\t"); 35.837 - 35.838 - usedswap = 0; 35.839 - for (j = 0; j < ptr->max; ++j) 35.840 - switch (ptr->swap_map[j]) { 35.841 - case SWAP_MAP_BAD: 35.842 - case 0: 35.843 - continue; 35.844 - default: 35.845 - usedswap++; 35.846 - } 35.847 - len += sprintf(buf + len, "%d\t%d\t%d\n", ptr->pages << (PAGE_SHIFT - 10), 35.848 - usedswap << (PAGE_SHIFT - 10), ptr->prio); 35.849 - } 35.850 - } 35.851 - free_page((unsigned long) page); 35.852 - return len; 35.853 -} 35.854 - 35.855 -int is_swap_partition(kdev_t dev) { 35.856 - struct swap_info_struct *ptr = swap_info; 35.857 - int i; 35.858 - 35.859 - for (i = 0 ; i < nr_swapfiles ; i++, ptr++) { 35.860 - if (ptr->flags & SWP_USED) 35.861 - if (ptr->swap_device == dev) 35.862 - return 1; 35.863 - } 35.864 - return 0; 35.865 -} 35.866 - 35.867 -/* 35.868 - * Written 01/25/92 by Simmule Turner, heavily changed by Linus. 35.869 - * 35.870 - * The swapon system call 35.871 - */ 35.872 -asmlinkage long sys_swapon(const char * specialfile, int swap_flags) 35.873 -{ 35.874 - struct swap_info_struct * p; 35.875 - struct nameidata nd; 35.876 - struct inode * swap_inode; 35.877 - unsigned int type; 35.878 - int i, j, prev; 35.879 - int error; 35.880 - static int least_priority = 0; 35.881 - union swap_header *swap_header = 0; 35.882 - int swap_header_version; 35.883 - int nr_good_pages = 0; 35.884 - unsigned long maxpages = 1; 35.885 - int swapfilesize; 35.886 - struct block_device *bdev = NULL; 35.887 - unsigned short *swap_map; 35.888 - 35.889 - if (!capable(CAP_SYS_ADMIN)) 35.890 - return -EPERM; 35.891 - lock_kernel(); 35.892 - swap_list_lock(); 35.893 - p = swap_info; 35.894 - for (type = 0 ; type < nr_swapfiles ; type++,p++) 35.895 - if (!(p->flags & SWP_USED)) 35.896 - break; 35.897 - error = -EPERM; 35.898 - if (type >= MAX_SWAPFILES) { 35.899 - swap_list_unlock(); 35.900 - goto out; 35.901 - } 35.902 - if (type >= nr_swapfiles) 35.903 - nr_swapfiles = type+1; 35.904 - p->flags = SWP_USED; 35.905 - p->swap_file = NULL; 35.906 - p->swap_vfsmnt = NULL; 35.907 - p->swap_device = 0; 35.908 - p->swap_map = NULL; 35.909 - p->lowest_bit = 0; 35.910 - p->highest_bit = 0; 35.911 - p->cluster_nr = 0; 35.912 - p->sdev_lock = SPIN_LOCK_UNLOCKED; 35.913 - p->next = -1; 35.914 - if (swap_flags & SWAP_FLAG_PREFER) { 35.915 - p->prio = 35.916 - (swap_flags & SWAP_FLAG_PRIO_MASK)>>SWAP_FLAG_PRIO_SHIFT; 35.917 - } else { 35.918 - p->prio = --least_priority; 35.919 - } 35.920 - swap_list_unlock(); 35.921 - error = user_path_walk(specialfile, &nd); 35.922 - if (error) 35.923 - goto bad_swap_2; 35.924 - 35.925 - p->swap_file = nd.dentry; 35.926 - p->swap_vfsmnt = nd.mnt; 35.927 - swap_inode = nd.dentry->d_inode; 35.928 - error = -EINVAL; 35.929 - 35.930 - if (S_ISBLK(swap_inode->i_mode)) { 35.931 - kdev_t dev = swap_inode->i_rdev; 35.932 - struct block_device_operations *bdops; 35.933 - devfs_handle_t de; 35.934 - 35.935 - if (is_mounted(dev)) { 35.936 - error = -EBUSY; 35.937 - goto bad_swap_2; 35.938 - } 35.939 - 35.940 - p->swap_device = dev; 35.941 - set_blocksize(dev, PAGE_SIZE); 35.942 - 35.943 - bd_acquire(swap_inode); 35.944 - bdev = swap_inode->i_bdev; 35.945 - de = devfs_get_handle_from_inode(swap_inode); 35.946 - bdops = devfs_get_ops(de); /* Increments module use count */ 35.947 - if (bdops) bdev->bd_op = bdops; 35.948 - 35.949 - error = blkdev_get(bdev, FMODE_READ|FMODE_WRITE, 0, BDEV_SWAP); 35.950 - devfs_put_ops(de);/*Decrement module use count now we're safe*/ 35.951 - if (error) 35.952 - goto bad_swap_2; 35.953 - set_blocksize(dev, PAGE_SIZE); 35.954 - error = -ENODEV; 35.955 - if (!dev || (blk_size[MAJOR(dev)] && 35.956 - !blk_size[MAJOR(dev)][MINOR(dev)])) 35.957 - goto bad_swap; 35.958 - swapfilesize = 0; 35.959 - if (blk_size[MAJOR(dev)]) 35.960 - swapfilesize = blk_size[MAJOR(dev)][MINOR(dev)] 35.961 - >> (PAGE_SHIFT - 10); 35.962 - } else if (S_ISREG(swap_inode->i_mode)) 35.963 - swapfilesize = swap_inode->i_size >> PAGE_SHIFT; 35.964 - else 35.965 - goto bad_swap; 35.966 - 35.967 - error = -EBUSY; 35.968 - for (i = 0 ; i < nr_swapfiles ; i++) { 35.969 - struct swap_info_struct *q = &swap_info[i]; 35.970 - if (i == type || !q->swap_file) 35.971 - continue; 35.972 - if (swap_inode->i_mapping == q->swap_file->d_inode->i_mapping) 35.973 - goto bad_swap; 35.974 - } 35.975 - 35.976 - swap_header = (void *) __get_free_page(GFP_USER); 35.977 - if (!swap_header) { 35.978 - printk("Unable to start swapping: out of memory :-)\n"); 35.979 - error = -ENOMEM; 35.980 - goto bad_swap; 35.981 - } 35.982 - 35.983 - lock_page(virt_to_page(swap_header)); 35.984 - rw_swap_page_nolock(READ, SWP_ENTRY(type,0), (char *) swap_header); 35.985 - 35.986 - if (!memcmp("SWAP-SPACE",swap_header->magic.magic,10)) 35.987 - swap_header_version = 1; 35.988 - else if (!memcmp("SWAPSPACE2",swap_header->magic.magic,10)) 35.989 - swap_header_version = 2; 35.990 - else { 35.991 - printk("Unable to find swap-space signature\n"); 35.992 - error = -EINVAL; 35.993 - goto bad_swap; 35.994 - } 35.995 - 35.996 - switch (swap_header_version) { 35.997 - case 1: 35.998 - memset(((char *) swap_header)+PAGE_SIZE-10,0,10); 35.999 - j = 0; 35.1000 - p->lowest_bit = 0; 35.1001 - p->highest_bit = 0; 35.1002 - for (i = 1 ; i < 8*PAGE_SIZE ; i++) { 35.1003 - if (test_bit(i,(char *) swap_header)) { 35.1004 - if (!p->lowest_bit) 35.1005 - p->lowest_bit = i; 35.1006 - p->highest_bit = i; 35.1007 - maxpages = i+1; 35.1008 - j++; 35.1009 - } 35.1010 - } 35.1011 - nr_good_pages = j; 35.1012 - p->swap_map = vmalloc(maxpages * sizeof(short)); 35.1013 - if (!p->swap_map) { 35.1014 - error = -ENOMEM; 35.1015 - goto bad_swap; 35.1016 - } 35.1017 - for (i = 1 ; i < maxpages ; i++) { 35.1018 - if (test_bit(i,(char *) swap_header)) 35.1019 - p->swap_map[i] = 0; 35.1020 - else 35.1021 - p->swap_map[i] = SWAP_MAP_BAD; 35.1022 - } 35.1023 - break; 35.1024 - 35.1025 - case 2: 35.1026 - /* Check the swap header's sub-version and the size of 35.1027 - the swap file and bad block lists */ 35.1028 - if (swap_header->info.version != 1) { 35.1029 - printk(KERN_WARNING 35.1030 - "Unable to handle swap header version %d\n", 35.1031 - swap_header->info.version); 35.1032 - error = -EINVAL; 35.1033 - goto bad_swap; 35.1034 - } 35.1035 - 35.1036 - p->lowest_bit = 1; 35.1037 - maxpages = SWP_OFFSET(SWP_ENTRY(0,~0UL)) - 1; 35.1038 - if (maxpages > swap_header->info.last_page) 35.1039 - maxpages = swap_header->info.last_page; 35.1040 - p->highest_bit = maxpages - 1; 35.1041 - 35.1042 - error = -EINVAL; 35.1043 - if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES) 35.1044 - goto bad_swap; 35.1045 - 35.1046 - /* OK, set up the swap map and apply the bad block list */ 35.1047 - if (!(p->swap_map = vmalloc(maxpages * sizeof(short)))) { 35.1048 - error = -ENOMEM; 35.1049 - goto bad_swap; 35.1050 - } 35.1051 - 35.1052 - error = 0; 35.1053 - memset(p->swap_map, 0, maxpages * sizeof(short)); 35.1054 - for (i=0; i<swap_header->info.nr_badpages; i++) { 35.1055 - int page = swap_header->info.badpages[i]; 35.1056 - if (page <= 0 || page >= swap_header->info.last_page) 35.1057 - error = -EINVAL; 35.1058 - else 35.1059 - p->swap_map[page] = SWAP_MAP_BAD; 35.1060 - } 35.1061 - nr_good_pages = swap_header->info.last_page - 35.1062 - swap_header->info.nr_badpages - 35.1063 - 1 /* header page */; 35.1064 - if (error) 35.1065 - goto bad_swap; 35.1066 - } 35.1067 - 35.1068 - if (swapfilesize && maxpages > swapfilesize) { 35.1069 - printk(KERN_WARNING 35.1070 - "Swap area shorter than signature indicates\n"); 35.1071 - error = -EINVAL; 35.1072 - goto bad_swap; 35.1073 - } 35.1074 - if (!nr_good_pages) { 35.1075 - printk(KERN_WARNING "Empty swap-file\n"); 35.1076 - error = -EINVAL; 35.1077 - goto bad_swap; 35.1078 - } 35.1079 - p->swap_map[0] = SWAP_MAP_BAD; 35.1080 - swap_list_lock(); 35.1081 - swap_device_lock(p); 35.1082 - p->max = maxpages; 35.1083 - p->flags = SWP_WRITEOK; 35.1084 - p->pages = nr_good_pages; 35.1085 - nr_swap_pages += nr_good_pages; 35.1086 - total_swap_pages += nr_good_pages; 35.1087 - printk(KERN_INFO "Adding Swap: %dk swap-space (priority %d)\n", 35.1088 - nr_good_pages<<(PAGE_SHIFT-10), p->prio); 35.1089 - 35.1090 - /* insert swap space into swap_list: */ 35.1091 - prev = -1; 35.1092 - for (i = swap_list.head; i >= 0; i = swap_info[i].next) { 35.1093 - if (p->prio >= swap_info[i].prio) { 35.1094 - break; 35.1095 - } 35.1096 - prev = i; 35.1097 - } 35.1098 - p->next = i; 35.1099 - if (prev < 0) { 35.1100 - swap_list.head = swap_list.next = p - swap_info; 35.1101 - } else { 35.1102 - swap_info[prev].next = p - swap_info; 35.1103 - } 35.1104 - swap_device_unlock(p); 35.1105 - swap_list_unlock(); 35.1106 - error = 0; 35.1107 - goto out; 35.1108 -bad_swap: 35.1109 - if (bdev) 35.1110 - blkdev_put(bdev, BDEV_SWAP); 35.1111 -bad_swap_2: 35.1112 - swap_list_lock(); 35.1113 - swap_map = p->swap_map; 35.1114 - nd.mnt = p->swap_vfsmnt; 35.1115 - nd.dentry = p->swap_file; 35.1116 - p->swap_device = 0; 35.1117 - p->swap_file = NULL; 35.1118 - p->swap_vfsmnt = NULL; 35.1119 - p->swap_map = NULL; 35.1120 - p->flags = 0; 35.1121 - if (!(swap_flags & SWAP_FLAG_PREFER)) 35.1122 - ++least_priority; 35.1123 - swap_list_unlock(); 35.1124 - if (swap_map) 35.1125 - vfree(swap_map); 35.1126 - path_release(&nd); 35.1127 -out: 35.1128 - if (swap_header) 35.1129 - free_page((long) swap_header); 35.1130 - unlock_kernel(); 35.1131 - return error; 35.1132 -} 35.1133 - 35.1134 -void si_swapinfo(struct sysinfo *val) 35.1135 -{ 35.1136 - unsigned int i; 35.1137 - unsigned long nr_to_be_unused = 0; 35.1138 - 35.1139 - swap_list_lock(); 35.1140 - for (i = 0; i < nr_swapfiles; i++) { 35.1141 - unsigned int j; 35.1142 - if (swap_info[i].flags != SWP_USED) 35.1143 - continue; 35.1144 - for (j = 0; j < swap_info[i].max; ++j) { 35.1145 - switch (swap_info[i].swap_map[j]) { 35.1146 - case 0: 35.1147 - case SWAP_MAP_BAD: 35.1148 - continue; 35.1149 - default: 35.1150 - nr_to_be_unused++; 35.1151 - } 35.1152 - } 35.1153 - } 35.1154 - val->freeswap = nr_swap_pages + nr_to_be_unused; 35.1155 - val->totalswap = total_swap_pages + nr_to_be_unused; 35.1156 - swap_list_unlock(); 35.1157 -} 35.1158 - 35.1159 -/* 35.1160 - * Verify that a swap entry is valid and increment its swap map count. 35.1161 - * 35.1162 - * Note: if swap_map[] reaches SWAP_MAP_MAX the entries are treated as 35.1163 - * "permanent", but will be reclaimed by the next swapoff. 35.1164 - */ 35.1165 -int swap_duplicate(swp_entry_t entry) 35.1166 -{ 35.1167 - struct swap_info_struct * p; 35.1168 - unsigned long offset, type; 35.1169 - int result = 0; 35.1170 - 35.1171 - type = SWP_TYPE(entry); 35.1172 - if (type >= nr_swapfiles) 35.1173 - goto bad_file; 35.1174 - p = type + swap_info; 35.1175 - offset = SWP_OFFSET(entry); 35.1176 - 35.1177 - swap_device_lock(p); 35.1178 - if (offset < p->max && p->swap_map[offset]) { 35.1179 - if (p->swap_map[offset] < SWAP_MAP_MAX - 1) { 35.1180 - p->swap_map[offset]++; 35.1181 - result = 1; 35.1182 - } else if (p->swap_map[offset] <= SWAP_MAP_MAX) { 35.1183 - if (swap_overflow++ < 5) 35.1184 - printk(KERN_WARNING "swap_dup: swap entry overflow\n"); 35.1185 - p->swap_map[offset] = SWAP_MAP_MAX; 35.1186 - result = 1; 35.1187 - } 35.1188 - } 35.1189 - swap_device_unlock(p); 35.1190 -out: 35.1191 - return result; 35.1192 - 35.1193 -bad_file: 35.1194 - printk(KERN_ERR "swap_dup: %s%08lx\n", Bad_file, entry.val); 35.1195 - goto out; 35.1196 -} 35.1197 - 35.1198 -/* 35.1199 - * Prior swap_duplicate protects against swap device deletion. 35.1200 - */ 35.1201 -void get_swaphandle_info(swp_entry_t entry, unsigned long *offset, 35.1202 - kdev_t *dev, struct inode **swapf) 35.1203 -{ 35.1204 - unsigned long type; 35.1205 - struct swap_info_struct *p; 35.1206 - 35.1207 - type = SWP_TYPE(entry); 35.1208 - if (type >= nr_swapfiles) { 35.1209 - printk(KERN_ERR "rw_swap_page: %s%08lx\n", Bad_file, entry.val); 35.1210 - return; 35.1211 - } 35.1212 - 35.1213 - p = &swap_info[type]; 35.1214 - *offset = SWP_OFFSET(entry); 35.1215 - if (*offset >= p->max && *offset != 0) { 35.1216 - printk(KERN_ERR "rw_swap_page: %s%08lx\n", Bad_offset, entry.val); 35.1217 - return; 35.1218 - } 35.1219 - if (p->swap_map && !p->swap_map[*offset]) { 35.1220 - printk(KERN_ERR "rw_swap_page: %s%08lx\n", Unused_offset, entry.val); 35.1221 - return; 35.1222 - } 35.1223 - if (!(p->flags & SWP_USED)) { 35.1224 - printk(KERN_ERR "rw_swap_page: %s%08lx\n", Unused_file, entry.val); 35.1225 - return; 35.1226 - } 35.1227 - 35.1228 - if (p->swap_device) { 35.1229 - *dev = p->swap_device; 35.1230 - } else if (p->swap_file) { 35.1231 - *swapf = p->swap_file->d_inode; 35.1232 - } else { 35.1233 - printk(KERN_ERR "rw_swap_page: no swap file or device\n"); 35.1234 - } 35.1235 - return; 35.1236 -} 35.1237 - 35.1238 -/* 35.1239 - * swap_device_lock prevents swap_map being freed. Don't grab an extra 35.1240 - * reference on the swaphandle, it doesn't matter if it becomes unused. 35.1241 - */ 35.1242 -int valid_swaphandles(swp_entry_t entry, unsigned long *offset) 35.1243 -{ 35.1244 - int ret = 0, i = 1 << page_cluster; 35.1245 - unsigned long toff; 35.1246 - struct swap_info_struct *swapdev = SWP_TYPE(entry) + swap_info; 35.1247 - 35.1248 - if (!page_cluster) /* no readahead */ 35.1249 - return 0; 35.1250 - toff = (SWP_OFFSET(entry) >> page_cluster) << page_cluster; 35.1251 - if (!toff) /* first page is swap header */ 35.1252 - toff++, i--; 35.1253 - *offset = toff; 35.1254 - 35.1255 - swap_device_lock(swapdev); 35.1256 - do { 35.1257 - /* Don't read-ahead past the end of the swap area */ 35.1258 - if (toff >= swapdev->max) 35.1259 - break; 35.1260 - /* Don't read in free or bad pages */ 35.1261 - if (!swapdev->swap_map[toff]) 35.1262 - break; 35.1263 - if (swapdev->swap_map[toff] == SWAP_MAP_BAD) 35.1264 - break; 35.1265 - toff++; 35.1266 - ret++; 35.1267 - } while (--i); 35.1268 - swap_device_unlock(swapdev); 35.1269 - return ret; 35.1270 -}
36.1 --- a/linux-2.4.29-xen-sparse/mm/vmalloc.c Mon Apr 04 10:52:11 2005 +0000 36.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 36.3 @@ -1,385 +0,0 @@ 36.4 -/* 36.5 - * linux/mm/vmalloc.c 36.6 - * 36.7 - * Copyright (C) 1993 Linus Torvalds 36.8 - * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 36.9 - * SMP-safe vmalloc/vfree/ioremap, Tigran Aivazian <tigran@veritas.com>, May 2000 36.10 - */ 36.11 - 36.12 -#include <linux/config.h> 36.13 -#include <linux/slab.h> 36.14 -#include <linux/vmalloc.h> 36.15 -#include <linux/spinlock.h> 36.16 -#include <linux/highmem.h> 36.17 -#include <linux/smp_lock.h> 36.18 - 36.19 -#include <asm/uaccess.h> 36.20 -#include <asm/pgalloc.h> 36.21 - 36.22 -rwlock_t vmlist_lock = RW_LOCK_UNLOCKED; 36.23 -struct vm_struct * vmlist; 36.24 - 36.25 -static inline void free_area_pte(pmd_t * pmd, unsigned long address, unsigned long size) 36.26 -{ 36.27 - pte_t * pte; 36.28 - unsigned long end; 36.29 - 36.30 - if (pmd_none(*pmd)) 36.31 - return; 36.32 - if (pmd_bad(*pmd)) { 36.33 - pmd_ERROR(*pmd); 36.34 - pmd_clear(pmd); 36.35 - return; 36.36 - } 36.37 - pte = pte_offset(pmd, address); 36.38 - address &= ~PMD_MASK; 36.39 - end = address + size; 36.40 - if (end > PMD_SIZE) 36.41 - end = PMD_SIZE; 36.42 - do { 36.43 - pte_t page; 36.44 - page = ptep_get_and_clear(pte); 36.45 - address += PAGE_SIZE; 36.46 - pte++; 36.47 - if (pte_none(page)) 36.48 - continue; 36.49 - if (pte_present(page)) { 36.50 - struct page *ptpage = pte_page(page); 36.51 - if (VALID_PAGE(ptpage) && (!PageReserved(ptpage))) 36.52 - __free_page(ptpage); 36.53 - continue; 36.54 - } 36.55 - printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n"); 36.56 - } while (address < end); 36.57 -} 36.58 - 36.59 -static inline void free_area_pmd(pgd_t * dir, unsigned long address, unsigned long size) 36.60 -{ 36.61 - pmd_t * pmd; 36.62 - unsigned long end; 36.63 - 36.64 - if (pgd_none(*dir)) 36.65 - return; 36.66 - if (pgd_bad(*dir)) { 36.67 - pgd_ERROR(*dir); 36.68 - pgd_clear(dir); 36.69 - return; 36.70 - } 36.71 - pmd = pmd_offset(dir, address); 36.72 - address &= ~PGDIR_MASK; 36.73 - end = address + size; 36.74 - if (end > PGDIR_SIZE) 36.75 - end = PGDIR_SIZE; 36.76 - do { 36.77 - free_area_pte(pmd, address, end - address); 36.78 - address = (address + PMD_SIZE) & PMD_MASK; 36.79 - pmd++; 36.80 - } while (address < end); 36.81 -} 36.82 - 36.83 -void vmfree_area_pages(unsigned long address, unsigned long size) 36.84 -{ 36.85 - pgd_t * dir; 36.86 - unsigned long end = address + size; 36.87 - 36.88 - dir = pgd_offset_k(address); 36.89 - flush_cache_all(); 36.90 - do { 36.91 - free_area_pmd(dir, address, end - address); 36.92 - address = (address + PGDIR_SIZE) & PGDIR_MASK; 36.93 - dir++; 36.94 - } while (address && (address < end)); 36.95 - flush_tlb_all(); 36.96 -} 36.97 - 36.98 -static inline int alloc_area_pte (pte_t * pte, unsigned long address, 36.99 - unsigned long size, int gfp_mask, 36.100 - pgprot_t prot, struct page ***pages) 36.101 -{ 36.102 - unsigned long end; 36.103 - 36.104 - address &= ~PMD_MASK; 36.105 - end = address + size; 36.106 - if (end > PMD_SIZE) 36.107 - end = PMD_SIZE; 36.108 - do { 36.109 - struct page * page; 36.110 - 36.111 - if (!pages) { 36.112 - spin_unlock(&init_mm.page_table_lock); 36.113 - page = alloc_page(gfp_mask); 36.114 - spin_lock(&init_mm.page_table_lock); 36.115 - } else { 36.116 - page = (**pages); 36.117 - (*pages)++; 36.118 - 36.119 - /* Add a reference to the page so we can free later */ 36.120 - if (page) 36.121 - atomic_inc(&page->count); 36.122 - 36.123 - } 36.124 - if (!pte_none(*pte)) 36.125 - printk(KERN_ERR "alloc_area_pte: page already exists\n"); 36.126 - if (!page) 36.127 - return -ENOMEM; 36.128 - set_pte(pte, mk_pte(page, prot)); 36.129 - address += PAGE_SIZE; 36.130 - pte++; 36.131 - } while (address < end); 36.132 - return 0; 36.133 -} 36.134 - 36.135 -static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address, 36.136 - unsigned long size, int gfp_mask, 36.137 - pgprot_t prot, struct page ***pages) 36.138 -{ 36.139 - unsigned long end; 36.140 - 36.141 - address &= ~PGDIR_MASK; 36.142 - end = address + size; 36.143 - if (end > PGDIR_SIZE) 36.144 - end = PGDIR_SIZE; 36.145 - do { 36.146 - pte_t * pte = pte_alloc(&init_mm, pmd, address); 36.147 - if (!pte) 36.148 - return -ENOMEM; 36.149 - if (alloc_area_pte(pte, address, end - address, 36.150 - gfp_mask, prot, pages)) 36.151 - return -ENOMEM; 36.152 - address = (address + PMD_SIZE) & PMD_MASK; 36.153 - pmd++; 36.154 - } while (address < end); 36.155 - return 0; 36.156 -} 36.157 - 36.158 -/*static inline*/ int __vmalloc_area_pages (unsigned long address, 36.159 - unsigned long size, 36.160 - int gfp_mask, 36.161 - pgprot_t prot, 36.162 - struct page ***pages) 36.163 -{ 36.164 - pgd_t * dir; 36.165 - unsigned long start = address; 36.166 - unsigned long end = address + size; 36.167 - 36.168 - dir = pgd_offset_k(address); 36.169 - spin_lock(&init_mm.page_table_lock); 36.170 - do { 36.171 - pmd_t *pmd; 36.172 - 36.173 - pmd = pmd_alloc(&init_mm, dir, address); 36.174 - if (!pmd) 36.175 - goto err; 36.176 - 36.177 - if (alloc_area_pmd(pmd, address, end - address, gfp_mask, prot, pages)) 36.178 - goto err; // The kernel NEVER reclaims pmds, so no need to undo pmd_alloc() here 36.179 - 36.180 - address = (address + PGDIR_SIZE) & PGDIR_MASK; 36.181 - dir++; 36.182 - } while (address && (address < end)); 36.183 - spin_unlock(&init_mm.page_table_lock); 36.184 - flush_cache_all(); 36.185 - XEN_flush_page_update_queue(); 36.186 - return 0; 36.187 -err: 36.188 - spin_unlock(&init_mm.page_table_lock); 36.189 - flush_cache_all(); 36.190 - if (address > start) 36.191 - vmfree_area_pages(start, address - start); 36.192 - return -ENOMEM; 36.193 -} 36.194 - 36.195 -int vmalloc_area_pages(unsigned long address, unsigned long size, 36.196 - int gfp_mask, pgprot_t prot) 36.197 -{ 36.198 - return __vmalloc_area_pages(address, size, gfp_mask, prot, NULL); 36.199 -} 36.200 - 36.201 -struct vm_struct * get_vm_area(unsigned long size, unsigned long flags) 36.202 -{ 36.203 - unsigned long addr, next; 36.204 - struct vm_struct **p, *tmp, *area; 36.205 - 36.206 - area = (struct vm_struct *) kmalloc(sizeof(*area), GFP_KERNEL); 36.207 - if (!area) 36.208 - return NULL; 36.209 - 36.210 - size += PAGE_SIZE; 36.211 - if (!size) { 36.212 - kfree (area); 36.213 - return NULL; 36.214 - } 36.215 - 36.216 - addr = VMALLOC_START; 36.217 - write_lock(&vmlist_lock); 36.218 - for (p = &vmlist; (tmp = *p) ; p = &tmp->next) { 36.219 - if ((size + addr) < addr) 36.220 - goto out; 36.221 - if (size + addr <= (unsigned long) tmp->addr) 36.222 - break; 36.223 - next = tmp->size + (unsigned long) tmp->addr; 36.224 - if (next > addr) 36.225 - addr = next; 36.226 - if (addr > VMALLOC_END-size) 36.227 - goto out; 36.228 - } 36.229 - area->flags = flags; 36.230 - area->addr = (void *)addr; 36.231 - area->size = size; 36.232 - area->next = *p; 36.233 - *p = area; 36.234 - write_unlock(&vmlist_lock); 36.235 - return area; 36.236 - 36.237 -out: 36.238 - write_unlock(&vmlist_lock); 36.239 - kfree(area); 36.240 - return NULL; 36.241 -} 36.242 - 36.243 -void __vfree(void * addr, int free_area_pages) 36.244 -{ 36.245 - struct vm_struct **p, *tmp; 36.246 - 36.247 - if (!addr) 36.248 - return; 36.249 - if ((PAGE_SIZE-1) & (unsigned long) addr) { 36.250 - printk(KERN_ERR "Trying to vfree() bad address (%p)\n", addr); 36.251 - return; 36.252 - } 36.253 - write_lock(&vmlist_lock); 36.254 - for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { 36.255 - if (tmp->addr == addr) { 36.256 - *p = tmp->next; 36.257 - if (free_area_pages) 36.258 - vmfree_area_pages(VMALLOC_VMADDR(tmp->addr), tmp->size); 36.259 - write_unlock(&vmlist_lock); 36.260 - kfree(tmp); 36.261 - return; 36.262 - } 36.263 - } 36.264 - write_unlock(&vmlist_lock); 36.265 - printk(KERN_ERR "Trying to vfree() nonexistent vm area (%p)\n", addr); 36.266 -} 36.267 - 36.268 -void vfree(void * addr) 36.269 -{ 36.270 - __vfree(addr,1); 36.271 -} 36.272 - 36.273 -void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot) 36.274 -{ 36.275 - void * addr; 36.276 - struct vm_struct *area; 36.277 - 36.278 - size = PAGE_ALIGN(size); 36.279 - if (!size || (size >> PAGE_SHIFT) > num_physpages) 36.280 - return NULL; 36.281 - area = get_vm_area(size, VM_ALLOC); 36.282 - if (!area) 36.283 - return NULL; 36.284 - addr = area->addr; 36.285 - if (__vmalloc_area_pages(VMALLOC_VMADDR(addr), size, gfp_mask, 36.286 - prot, NULL)) { 36.287 - __vfree(addr, 0); 36.288 - return NULL; 36.289 - } 36.290 - return addr; 36.291 -} 36.292 - 36.293 -void * vmap(struct page **pages, int count, 36.294 - unsigned long flags, pgprot_t prot) 36.295 -{ 36.296 - void * addr; 36.297 - struct vm_struct *area; 36.298 - unsigned long size = count << PAGE_SHIFT; 36.299 - 36.300 - if (!size || size > (max_mapnr << PAGE_SHIFT)) 36.301 - return NULL; 36.302 - area = get_vm_area(size, flags); 36.303 - if (!area) { 36.304 - return NULL; 36.305 - } 36.306 - addr = area->addr; 36.307 - if (__vmalloc_area_pages(VMALLOC_VMADDR(addr), size, 0, 36.308 - prot, &pages)) { 36.309 - __vfree(addr, 0); 36.310 - return NULL; 36.311 - } 36.312 - return addr; 36.313 -} 36.314 - 36.315 -long vread(char *buf, char *addr, unsigned long count) 36.316 -{ 36.317 - struct vm_struct *tmp; 36.318 - char *vaddr, *buf_start = buf; 36.319 - unsigned long n; 36.320 - 36.321 - /* Don't allow overflow */ 36.322 - if ((unsigned long) addr + count < count) 36.323 - count = -(unsigned long) addr; 36.324 - 36.325 - read_lock(&vmlist_lock); 36.326 - for (tmp = vmlist; tmp; tmp = tmp->next) { 36.327 - vaddr = (char *) tmp->addr; 36.328 - if (addr >= vaddr + tmp->size - PAGE_SIZE) 36.329 - continue; 36.330 - while (addr < vaddr) { 36.331 - if (count == 0) 36.332 - goto finished; 36.333 - *buf = '\0'; 36.334 - buf++; 36.335 - addr++; 36.336 - count--; 36.337 - } 36.338 - n = vaddr + tmp->size - PAGE_SIZE - addr; 36.339 - do { 36.340 - if (count == 0) 36.341 - goto finished; 36.342 - *buf = *addr; 36.343 - buf++; 36.344 - addr++; 36.345 - count--; 36.346 - } while (--n > 0); 36.347 - } 36.348 -finished: 36.349 - read_unlock(&vmlist_lock); 36.350 - return buf - buf_start; 36.351 -} 36.352 - 36.353 -long vwrite(char *buf, char *addr, unsigned long count) 36.354 -{ 36.355 - struct vm_struct *tmp; 36.356 - char *vaddr, *buf_start = buf; 36.357 - unsigned long n; 36.358 - 36.359 - /* Don't allow overflow */ 36.360 - if ((unsigned long) addr + count < count) 36.361 - count = -(unsigned long) addr; 36.362 - 36.363 - read_lock(&vmlist_lock); 36.364 - for (tmp = vmlist; tmp; tmp = tmp->next) { 36.365 - vaddr = (char *) tmp->addr; 36.366 - if (addr >= vaddr + tmp->size - PAGE_SIZE) 36.367 - continue; 36.368 - while (addr < vaddr) { 36.369 - if (count == 0) 36.370 - goto finished; 36.371 - buf++; 36.372 - addr++; 36.373 - count--; 36.374 - } 36.375 - n = vaddr + tmp->size - PAGE_SIZE - addr; 36.376 - do { 36.377 - if (count == 0) 36.378 - goto finished; 36.379 - *addr = *buf; 36.380 - buf++; 36.381 - addr++; 36.382 - count--; 36.383 - } while (--n > 0); 36.384 - } 36.385 -finished: 36.386 - read_unlock(&vmlist_lock); 36.387 - return buf - buf_start; 36.388 -}
37.1 --- a/linux-2.6.11-xen-sparse/arch/xen/Kconfig Mon Apr 04 10:52:11 2005 +0000 37.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/Kconfig Mon Apr 04 16:13:17 2005 +0000 37.3 @@ -114,10 +114,6 @@ config XEN_BLKDEV_TAP 37.4 to a character device, allowing device prototyping in application 37.5 space. Odds are that you want to say N here. 37.6 37.7 -config XEN_WRITABLE_PAGETABLES 37.8 - bool 37.9 - default y 37.10 - 37.11 config XEN_SCRUB_PAGES 37.12 bool "Scrub memory before freeing it to Xen" 37.13 default y
38.1 --- a/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig Mon Apr 04 10:52:11 2005 +0000 38.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 38.3 @@ -1,1100 +0,0 @@ 38.4 -# 38.5 -# Automatically generated make config: don't edit 38.6 -# Linux kernel version: 2.6.11-xen0 38.7 -# Sat Mar 19 19:42:39 2005 38.8 -# 38.9 -CONFIG_XEN=y 38.10 -CONFIG_ARCH_XEN=y 38.11 -CONFIG_NO_IDLE_HZ=y 38.12 - 38.13 -# 38.14 -# XEN 38.15 -# 38.16 -CONFIG_XEN_PRIVILEGED_GUEST=y 38.17 -CONFIG_XEN_PHYSDEV_ACCESS=y 38.18 -CONFIG_XEN_BLKDEV_BACKEND=y 38.19 -# CONFIG_XEN_BLKDEV_TAP_BE is not set 38.20 -CONFIG_XEN_NETDEV_BACKEND=y 38.21 -CONFIG_XEN_BLKDEV_FRONTEND=y 38.22 -CONFIG_XEN_NETDEV_FRONTEND=y 38.23 -# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set 38.24 -# CONFIG_XEN_BLKDEV_TAP is not set 38.25 -CONFIG_XEN_WRITABLE_PAGETABLES=y 38.26 -CONFIG_XEN_SCRUB_PAGES=y 38.27 -CONFIG_X86=y 38.28 -# CONFIG_X86_64 is not set 38.29 -CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y 38.30 - 38.31 -# 38.32 -# Code maturity level options 38.33 -# 38.34 -CONFIG_EXPERIMENTAL=y 38.35 -# CONFIG_CLEAN_COMPILE is not set 38.36 -CONFIG_BROKEN=y 38.37 -CONFIG_BROKEN_ON_SMP=y 38.38 -CONFIG_LOCK_KERNEL=y 38.39 - 38.40 -# 38.41 -# General setup 38.42 -# 38.43 -CONFIG_LOCALVERSION="" 38.44 -CONFIG_SWAP=y 38.45 -CONFIG_SYSVIPC=y 38.46 -# CONFIG_POSIX_MQUEUE is not set 38.47 -# CONFIG_BSD_PROCESS_ACCT is not set 38.48 -CONFIG_SYSCTL=y 38.49 -# CONFIG_AUDIT is not set 38.50 -CONFIG_LOG_BUF_SHIFT=14 38.51 -CONFIG_HOTPLUG=y 38.52 -CONFIG_KOBJECT_UEVENT=y 38.53 -# CONFIG_IKCONFIG is not set 38.54 -# CONFIG_EMBEDDED is not set 38.55 -CONFIG_KALLSYMS=y 38.56 -# CONFIG_KALLSYMS_EXTRA_PASS is not set 38.57 -CONFIG_FUTEX=y 38.58 -CONFIG_EPOLL=y 38.59 -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 38.60 -CONFIG_SHMEM=y 38.61 -CONFIG_CC_ALIGN_FUNCTIONS=0 38.62 -CONFIG_CC_ALIGN_LABELS=0 38.63 -CONFIG_CC_ALIGN_LOOPS=0 38.64 -CONFIG_CC_ALIGN_JUMPS=0 38.65 -# CONFIG_TINY_SHMEM is not set 38.66 - 38.67 -# 38.68 -# Loadable module support 38.69 -# 38.70 -CONFIG_MODULES=y 38.71 -CONFIG_MODULE_UNLOAD=y 38.72 -# CONFIG_MODULE_FORCE_UNLOAD is not set 38.73 -CONFIG_OBSOLETE_MODPARM=y 38.74 -# CONFIG_MODVERSIONS is not set 38.75 -# CONFIG_MODULE_SRCVERSION_ALL is not set 38.76 -CONFIG_KMOD=y 38.77 - 38.78 -# 38.79 -# X86 Processor Configuration 38.80 -# 38.81 -CONFIG_XENARCH="i386" 38.82 -CONFIG_MMU=y 38.83 -CONFIG_UID16=y 38.84 -CONFIG_GENERIC_ISA_DMA=y 38.85 -CONFIG_GENERIC_IOMAP=y 38.86 -# CONFIG_M386 is not set 38.87 -# CONFIG_M486 is not set 38.88 -# CONFIG_M586 is not set 38.89 -# CONFIG_M586TSC is not set 38.90 -# CONFIG_M586MMX is not set 38.91 -# CONFIG_M686 is not set 38.92 -# CONFIG_MPENTIUMII is not set 38.93 -# CONFIG_MPENTIUMIII is not set 38.94 -# CONFIG_MPENTIUMM is not set 38.95 -CONFIG_MPENTIUM4=y 38.96 -# CONFIG_MK6 is not set 38.97 -# CONFIG_MK7 is not set 38.98 -# CONFIG_MK8 is not set 38.99 -# CONFIG_MCRUSOE is not set 38.100 -# CONFIG_MEFFICEON is not set 38.101 -# CONFIG_MWINCHIPC6 is not set 38.102 -# CONFIG_MWINCHIP2 is not set 38.103 -# CONFIG_MWINCHIP3D is not set 38.104 -# CONFIG_MCYRIXIII is not set 38.105 -# CONFIG_MVIAC3_2 is not set 38.106 -# CONFIG_X86_GENERIC is not set 38.107 -CONFIG_X86_CMPXCHG=y 38.108 -CONFIG_X86_XADD=y 38.109 -CONFIG_X86_L1_CACHE_SHIFT=7 38.110 -CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38.111 -CONFIG_GENERIC_CALIBRATE_DELAY=y 38.112 -CONFIG_X86_WP_WORKS_OK=y 38.113 -CONFIG_X86_INVLPG=y 38.114 -CONFIG_X86_BSWAP=y 38.115 -CONFIG_X86_POPAD_OK=y 38.116 -CONFIG_X86_GOOD_APIC=y 38.117 -CONFIG_X86_INTEL_USERCOPY=y 38.118 -CONFIG_X86_USE_PPRO_CHECKSUM=y 38.119 -# CONFIG_HPET_TIMER is not set 38.120 -# CONFIG_HPET_EMULATE_RTC is not set 38.121 -# CONFIG_SMP is not set 38.122 -CONFIG_PREEMPT=y 38.123 -CONFIG_PREEMPT_BKL=y 38.124 -CONFIG_MICROCODE=y 38.125 -CONFIG_X86_CPUID=y 38.126 - 38.127 -# 38.128 -# Firmware Drivers 38.129 -# 38.130 -# CONFIG_EDD is not set 38.131 -CONFIG_NOHIGHMEM=y 38.132 -# CONFIG_HIGHMEM4G is not set 38.133 -CONFIG_MTRR=y 38.134 -CONFIG_HAVE_DEC_LOCK=y 38.135 -# CONFIG_REGPARM is not set 38.136 - 38.137 -# 38.138 -# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 38.139 -# 38.140 -CONFIG_PCI=y 38.141 -CONFIG_PCI_DIRECT=y 38.142 -CONFIG_PCI_LEGACY_PROC=y 38.143 -# CONFIG_PCI_NAMES is not set 38.144 -CONFIG_ISA=y 38.145 -# CONFIG_EISA is not set 38.146 -# CONFIG_MCA is not set 38.147 -# CONFIG_SCx200 is not set 38.148 - 38.149 -# 38.150 -# PCCARD (PCMCIA/CardBus) support 38.151 -# 38.152 -# CONFIG_PCCARD is not set 38.153 - 38.154 -# 38.155 -# PC-card bridges 38.156 -# 38.157 -CONFIG_PCMCIA_PROBE=y 38.158 - 38.159 -# 38.160 -# PCI Hotplug Support 38.161 -# 38.162 -# CONFIG_HOTPLUG_PCI is not set 38.163 - 38.164 -# 38.165 -# Kernel hacking 38.166 -# 38.167 -# CONFIG_DEBUG_KERNEL is not set 38.168 -CONFIG_EARLY_PRINTK=y 38.169 -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 38.170 -# CONFIG_FRAME_POINTER is not set 38.171 -# CONFIG_4KSTACKS is not set 38.172 -CONFIG_GENERIC_HARDIRQS=y 38.173 -CONFIG_GENERIC_IRQ_PROBE=y 38.174 -CONFIG_X86_BIOS_REBOOT=y 38.175 -CONFIG_PC=y 38.176 - 38.177 -# 38.178 -# Executable file formats 38.179 -# 38.180 -CONFIG_BINFMT_ELF=y 38.181 -# CONFIG_BINFMT_AOUT is not set 38.182 -# CONFIG_BINFMT_MISC is not set 38.183 - 38.184 -# 38.185 -# Device Drivers 38.186 -# 38.187 - 38.188 -# 38.189 -# Generic Driver Options 38.190 -# 38.191 -# CONFIG_STANDALONE is not set 38.192 -CONFIG_PREVENT_FIRMWARE_BUILD=y 38.193 -# CONFIG_FW_LOADER is not set 38.194 - 38.195 -# 38.196 -# Memory Technology Devices (MTD) 38.197 -# 38.198 -# CONFIG_MTD is not set 38.199 - 38.200 -# 38.201 -# Parallel port support 38.202 -# 38.203 -# CONFIG_PARPORT is not set 38.204 - 38.205 -# 38.206 -# Plug and Play support 38.207 -# 38.208 -# CONFIG_PNP is not set 38.209 - 38.210 -# 38.211 -# Block devices 38.212 -# 38.213 -CONFIG_BLK_DEV_FD=y 38.214 -# CONFIG_BLK_DEV_XD is not set 38.215 -# CONFIG_BLK_CPQ_DA is not set 38.216 -CONFIG_BLK_CPQ_CISS_DA=y 38.217 -# CONFIG_CISS_SCSI_TAPE is not set 38.218 -# CONFIG_BLK_DEV_DAC960 is not set 38.219 -# CONFIG_BLK_DEV_UMEM is not set 38.220 -# CONFIG_BLK_DEV_COW_COMMON is not set 38.221 -CONFIG_BLK_DEV_LOOP=y 38.222 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set 38.223 -# CONFIG_BLK_DEV_NBD is not set 38.224 -# CONFIG_BLK_DEV_SX8 is not set 38.225 -CONFIG_BLK_DEV_RAM=y 38.226 -CONFIG_BLK_DEV_RAM_COUNT=16 38.227 -CONFIG_BLK_DEV_RAM_SIZE=4096 38.228 -CONFIG_BLK_DEV_INITRD=y 38.229 -CONFIG_INITRAMFS_SOURCE="" 38.230 -# CONFIG_LBD is not set 38.231 -# CONFIG_CDROM_PKTCDVD is not set 38.232 - 38.233 -# 38.234 -# IO Schedulers 38.235 -# 38.236 -CONFIG_IOSCHED_NOOP=y 38.237 -CONFIG_IOSCHED_AS=y 38.238 -CONFIG_IOSCHED_DEADLINE=y 38.239 -CONFIG_IOSCHED_CFQ=y 38.240 -# CONFIG_ATA_OVER_ETH is not set 38.241 - 38.242 -# 38.243 -# ATA/ATAPI/MFM/RLL support 38.244 -# 38.245 -CONFIG_IDE=y 38.246 -CONFIG_BLK_DEV_IDE=y 38.247 - 38.248 -# 38.249 -# Please see Documentation/ide.txt for help/info on IDE drives 38.250 -# 38.251 -# CONFIG_BLK_DEV_IDE_SATA is not set 38.252 -# CONFIG_BLK_DEV_HD_IDE is not set 38.253 -CONFIG_BLK_DEV_IDEDISK=y 38.254 -# CONFIG_IDEDISK_MULTI_MODE is not set 38.255 -CONFIG_BLK_DEV_IDECD=y 38.256 -# CONFIG_BLK_DEV_IDETAPE is not set 38.257 -# CONFIG_BLK_DEV_IDEFLOPPY is not set 38.258 -# CONFIG_BLK_DEV_IDESCSI is not set 38.259 -# CONFIG_IDE_TASK_IOCTL is not set 38.260 - 38.261 -# 38.262 -# IDE chipset support/bugfixes 38.263 -# 38.264 -CONFIG_IDE_GENERIC=y 38.265 -# CONFIG_BLK_DEV_CMD640 is not set 38.266 -CONFIG_BLK_DEV_IDEPCI=y 38.267 -# CONFIG_IDEPCI_SHARE_IRQ is not set 38.268 -# CONFIG_BLK_DEV_OFFBOARD is not set 38.269 -CONFIG_BLK_DEV_GENERIC=y 38.270 -# CONFIG_BLK_DEV_OPTI621 is not set 38.271 -# CONFIG_BLK_DEV_RZ1000 is not set 38.272 -CONFIG_BLK_DEV_IDEDMA_PCI=y 38.273 -# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 38.274 -CONFIG_IDEDMA_PCI_AUTO=y 38.275 -# CONFIG_IDEDMA_ONLYDISK is not set 38.276 -# CONFIG_BLK_DEV_AEC62XX is not set 38.277 -# CONFIG_BLK_DEV_ALI15X3 is not set 38.278 -# CONFIG_BLK_DEV_AMD74XX is not set 38.279 -# CONFIG_BLK_DEV_ATIIXP is not set 38.280 -# CONFIG_BLK_DEV_CMD64X is not set 38.281 -# CONFIG_BLK_DEV_TRIFLEX is not set 38.282 -# CONFIG_BLK_DEV_CY82C693 is not set 38.283 -# CONFIG_BLK_DEV_CS5520 is not set 38.284 -# CONFIG_BLK_DEV_CS5530 is not set 38.285 -# CONFIG_BLK_DEV_HPT34X is not set 38.286 -# CONFIG_BLK_DEV_HPT366 is not set 38.287 -# CONFIG_BLK_DEV_SC1200 is not set 38.288 -CONFIG_BLK_DEV_PIIX=y 38.289 -# CONFIG_BLK_DEV_NS87415 is not set 38.290 -# CONFIG_BLK_DEV_PDC202XX_OLD is not set 38.291 -# CONFIG_BLK_DEV_PDC202XX_NEW is not set 38.292 -CONFIG_BLK_DEV_SVWKS=y 38.293 -# CONFIG_BLK_DEV_SIIMAGE is not set 38.294 -# CONFIG_BLK_DEV_SIS5513 is not set 38.295 -# CONFIG_BLK_DEV_SLC90E66 is not set 38.296 -# CONFIG_BLK_DEV_TRM290 is not set 38.297 -# CONFIG_BLK_DEV_VIA82CXXX is not set 38.298 -# CONFIG_IDE_ARM is not set 38.299 -# CONFIG_IDE_CHIPSETS is not set 38.300 -CONFIG_BLK_DEV_IDEDMA=y 38.301 -# CONFIG_IDEDMA_IVB is not set 38.302 -CONFIG_IDEDMA_AUTO=y 38.303 -# CONFIG_BLK_DEV_HD is not set 38.304 - 38.305 -# 38.306 -# SCSI device support 38.307 -# 38.308 -CONFIG_SCSI=y 38.309 -CONFIG_SCSI_PROC_FS=y 38.310 - 38.311 -# 38.312 -# SCSI support type (disk, tape, CD-ROM) 38.313 -# 38.314 -CONFIG_BLK_DEV_SD=y 38.315 -# CONFIG_CHR_DEV_ST is not set 38.316 -# CONFIG_CHR_DEV_OSST is not set 38.317 -# CONFIG_BLK_DEV_SR is not set 38.318 -# CONFIG_CHR_DEV_SG is not set 38.319 - 38.320 -# 38.321 -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 38.322 -# 38.323 -# CONFIG_SCSI_MULTI_LUN is not set 38.324 -# CONFIG_SCSI_CONSTANTS is not set 38.325 -# CONFIG_SCSI_LOGGING is not set 38.326 - 38.327 -# 38.328 -# SCSI Transport Attributes 38.329 -# 38.330 -# CONFIG_SCSI_SPI_ATTRS is not set 38.331 -# CONFIG_SCSI_FC_ATTRS is not set 38.332 -# CONFIG_SCSI_ISCSI_ATTRS is not set 38.333 - 38.334 -# 38.335 -# SCSI low-level drivers 38.336 -# 38.337 -CONFIG_BLK_DEV_3W_XXXX_RAID=y 38.338 -# CONFIG_SCSI_3W_9XXX is not set 38.339 -# CONFIG_SCSI_7000FASST is not set 38.340 -# CONFIG_SCSI_ACARD is not set 38.341 -# CONFIG_SCSI_AHA152X is not set 38.342 -# CONFIG_SCSI_AHA1542 is not set 38.343 -CONFIG_SCSI_AACRAID=y 38.344 -CONFIG_SCSI_AIC7XXX=y 38.345 -CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 38.346 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 38.347 -CONFIG_AIC7XXX_DEBUG_ENABLE=y 38.348 -CONFIG_AIC7XXX_DEBUG_MASK=0 38.349 -CONFIG_AIC7XXX_REG_PRETTY_PRINT=y 38.350 -# CONFIG_SCSI_AIC7XXX_OLD is not set 38.351 -CONFIG_SCSI_AIC79XX=y 38.352 -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 38.353 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 38.354 -# CONFIG_AIC79XX_ENABLE_RD_STRM is not set 38.355 -CONFIG_AIC79XX_DEBUG_ENABLE=y 38.356 -CONFIG_AIC79XX_DEBUG_MASK=0 38.357 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y 38.358 -# CONFIG_SCSI_DPT_I2O is not set 38.359 -# CONFIG_SCSI_ADVANSYS is not set 38.360 -# CONFIG_SCSI_IN2000 is not set 38.361 -# CONFIG_MEGARAID_NEWGEN is not set 38.362 -# CONFIG_MEGARAID_LEGACY is not set 38.363 -CONFIG_SCSI_SATA=y 38.364 -# CONFIG_SCSI_SATA_AHCI is not set 38.365 -# CONFIG_SCSI_SATA_SVW is not set 38.366 -CONFIG_SCSI_ATA_PIIX=y 38.367 -# CONFIG_SCSI_SATA_NV is not set 38.368 -CONFIG_SCSI_SATA_PROMISE=y 38.369 -# CONFIG_SCSI_SATA_QSTOR is not set 38.370 -CONFIG_SCSI_SATA_SX4=y 38.371 -CONFIG_SCSI_SATA_SIL=y 38.372 -# CONFIG_SCSI_SATA_SIS is not set 38.373 -# CONFIG_SCSI_SATA_ULI is not set 38.374 -# CONFIG_SCSI_SATA_VIA is not set 38.375 -# CONFIG_SCSI_SATA_VITESSE is not set 38.376 -CONFIG_SCSI_BUSLOGIC=y 38.377 -# CONFIG_SCSI_OMIT_FLASHPOINT is not set 38.378 -# CONFIG_SCSI_CPQFCTS is not set 38.379 -# CONFIG_SCSI_DMX3191D is not set 38.380 -# CONFIG_SCSI_DTC3280 is not set 38.381 -# CONFIG_SCSI_EATA is not set 38.382 -# CONFIG_SCSI_EATA_PIO is not set 38.383 -# CONFIG_SCSI_FUTURE_DOMAIN is not set 38.384 -# CONFIG_SCSI_GDTH is not set 38.385 -# CONFIG_SCSI_GENERIC_NCR5380 is not set 38.386 -# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set 38.387 -# CONFIG_SCSI_IPS is not set 38.388 -# CONFIG_SCSI_INITIO is not set 38.389 -# CONFIG_SCSI_INIA100 is not set 38.390 -# CONFIG_SCSI_NCR53C406A is not set 38.391 -# CONFIG_SCSI_SYM53C8XX_2 is not set 38.392 -# CONFIG_SCSI_IPR is not set 38.393 -# CONFIG_SCSI_PAS16 is not set 38.394 -# CONFIG_SCSI_PCI2000 is not set 38.395 -# CONFIG_SCSI_PCI2220I is not set 38.396 -# CONFIG_SCSI_PSI240I is not set 38.397 -# CONFIG_SCSI_QLOGIC_FAS is not set 38.398 -# CONFIG_SCSI_QLOGIC_ISP is not set 38.399 -# CONFIG_SCSI_QLOGIC_FC is not set 38.400 -# CONFIG_SCSI_QLOGIC_1280 is not set 38.401 -CONFIG_SCSI_QLA2XXX=y 38.402 -# CONFIG_SCSI_QLA21XX is not set 38.403 -# CONFIG_SCSI_QLA22XX is not set 38.404 -# CONFIG_SCSI_QLA2300 is not set 38.405 -# CONFIG_SCSI_QLA2322 is not set 38.406 -# CONFIG_SCSI_QLA6312 is not set 38.407 -# CONFIG_SCSI_SEAGATE is not set 38.408 -# CONFIG_SCSI_SYM53C416 is not set 38.409 -# CONFIG_SCSI_DC395x is not set 38.410 -# CONFIG_SCSI_DC390T is not set 38.411 -# CONFIG_SCSI_T128 is not set 38.412 -# CONFIG_SCSI_U14_34F is not set 38.413 -# CONFIG_SCSI_ULTRASTOR is not set 38.414 -# CONFIG_SCSI_NSP32 is not set 38.415 -# CONFIG_SCSI_DEBUG is not set 38.416 - 38.417 -# 38.418 -# Old CD-ROM drivers (not SCSI, not IDE) 38.419 -# 38.420 -# CONFIG_CD_NO_IDESCSI is not set 38.421 - 38.422 -# 38.423 -# Multi-device support (RAID and LVM) 38.424 -# 38.425 -CONFIG_MD=y 38.426 -CONFIG_BLK_DEV_MD=y 38.427 -# CONFIG_MD_LINEAR is not set 38.428 -CONFIG_MD_RAID0=y 38.429 -CONFIG_MD_RAID1=y 38.430 -# CONFIG_MD_RAID10 is not set 38.431 -CONFIG_MD_RAID5=y 38.432 -# CONFIG_MD_RAID6 is not set 38.433 -# CONFIG_MD_MULTIPATH is not set 38.434 -# CONFIG_MD_FAULTY is not set 38.435 -CONFIG_BLK_DEV_DM=y 38.436 -# CONFIG_DM_CRYPT is not set 38.437 -CONFIG_DM_SNAPSHOT=y 38.438 -CONFIG_DM_MIRROR=y 38.439 -# CONFIG_DM_ZERO is not set 38.440 - 38.441 -# 38.442 -# Fusion MPT device support 38.443 -# 38.444 -# CONFIG_FUSION is not set 38.445 - 38.446 -# 38.447 -# IEEE 1394 (FireWire) support 38.448 -# 38.449 -# CONFIG_IEEE1394 is not set 38.450 - 38.451 -# 38.452 -# I2O device support 38.453 -# 38.454 -# CONFIG_I2O is not set 38.455 - 38.456 -# 38.457 -# Networking support 38.458 -# 38.459 -CONFIG_NET=y 38.460 - 38.461 -# 38.462 -# Networking options 38.463 -# 38.464 -CONFIG_PACKET=y 38.465 -# CONFIG_PACKET_MMAP is not set 38.466 -# CONFIG_NETLINK_DEV is not set 38.467 -CONFIG_UNIX=y 38.468 -# CONFIG_NET_KEY is not set 38.469 -CONFIG_INET=y 38.470 -# CONFIG_IP_MULTICAST is not set 38.471 -# CONFIG_IP_ADVANCED_ROUTER is not set 38.472 -CONFIG_IP_PNP=y 38.473 -CONFIG_IP_PNP_DHCP=y 38.474 -# CONFIG_IP_PNP_BOOTP is not set 38.475 -# CONFIG_IP_PNP_RARP is not set 38.476 -# CONFIG_NET_IPIP is not set 38.477 -# CONFIG_NET_IPGRE is not set 38.478 -# CONFIG_ARPD is not set 38.479 -# CONFIG_SYN_COOKIES is not set 38.480 -# CONFIG_INET_AH is not set 38.481 -# CONFIG_INET_ESP is not set 38.482 -# CONFIG_INET_IPCOMP is not set 38.483 -# CONFIG_INET_TUNNEL is not set 38.484 -CONFIG_IP_TCPDIAG=y 38.485 -# CONFIG_IP_TCPDIAG_IPV6 is not set 38.486 - 38.487 -# 38.488 -# IP: Virtual Server Configuration 38.489 -# 38.490 -# CONFIG_IP_VS is not set 38.491 -# CONFIG_IPV6 is not set 38.492 -CONFIG_NETFILTER=y 38.493 -# CONFIG_NETFILTER_DEBUG is not set 38.494 -CONFIG_BRIDGE_NETFILTER=y 38.495 - 38.496 -# 38.497 -# IP: Netfilter Configuration 38.498 -# 38.499 -CONFIG_IP_NF_CONNTRACK=m 38.500 -CONFIG_IP_NF_CT_ACCT=y 38.501 -# CONFIG_IP_NF_CONNTRACK_MARK is not set 38.502 -# CONFIG_IP_NF_CT_PROTO_SCTP is not set 38.503 -CONFIG_IP_NF_FTP=m 38.504 -# CONFIG_IP_NF_IRC is not set 38.505 -# CONFIG_IP_NF_TFTP is not set 38.506 -# CONFIG_IP_NF_AMANDA is not set 38.507 -# CONFIG_IP_NF_QUEUE is not set 38.508 -CONFIG_IP_NF_IPTABLES=m 38.509 -# CONFIG_IP_NF_MATCH_LIMIT is not set 38.510 -CONFIG_IP_NF_MATCH_IPRANGE=m 38.511 -# CONFIG_IP_NF_MATCH_MAC is not set 38.512 -# CONFIG_IP_NF_MATCH_PKTTYPE is not set 38.513 -# CONFIG_IP_NF_MATCH_MARK is not set 38.514 -# CONFIG_IP_NF_MATCH_MULTIPORT is not set 38.515 -# CONFIG_IP_NF_MATCH_TOS is not set 38.516 -# CONFIG_IP_NF_MATCH_RECENT is not set 38.517 -# CONFIG_IP_NF_MATCH_ECN is not set 38.518 -# CONFIG_IP_NF_MATCH_DSCP is not set 38.519 -# CONFIG_IP_NF_MATCH_AH_ESP is not set 38.520 -# CONFIG_IP_NF_MATCH_LENGTH is not set 38.521 -# CONFIG_IP_NF_MATCH_TTL is not set 38.522 -# CONFIG_IP_NF_MATCH_TCPMSS is not set 38.523 -# CONFIG_IP_NF_MATCH_HELPER is not set 38.524 -# CONFIG_IP_NF_MATCH_STATE is not set 38.525 -# CONFIG_IP_NF_MATCH_CONNTRACK is not set 38.526 -# CONFIG_IP_NF_MATCH_OWNER is not set 38.527 -# CONFIG_IP_NF_MATCH_PHYSDEV is not set 38.528 -# CONFIG_IP_NF_MATCH_ADDRTYPE is not set 38.529 -# CONFIG_IP_NF_MATCH_REALM is not set 38.530 -# CONFIG_IP_NF_MATCH_SCTP is not set 38.531 -# CONFIG_IP_NF_MATCH_COMMENT is not set 38.532 -# CONFIG_IP_NF_MATCH_HASHLIMIT is not set 38.533 -CONFIG_IP_NF_FILTER=m 38.534 -CONFIG_IP_NF_TARGET_REJECT=m 38.535 -# CONFIG_IP_NF_TARGET_LOG is not set 38.536 -# CONFIG_IP_NF_TARGET_ULOG is not set 38.537 -# CONFIG_IP_NF_TARGET_TCPMSS is not set 38.538 -CONFIG_IP_NF_NAT=m 38.539 -CONFIG_IP_NF_NAT_NEEDED=y 38.540 -CONFIG_IP_NF_TARGET_MASQUERADE=m 38.541 -# CONFIG_IP_NF_TARGET_REDIRECT is not set 38.542 -# CONFIG_IP_NF_TARGET_NETMAP is not set 38.543 -# CONFIG_IP_NF_TARGET_SAME is not set 38.544 -# CONFIG_IP_NF_NAT_SNMP_BASIC is not set 38.545 -CONFIG_IP_NF_NAT_FTP=m 38.546 -# CONFIG_IP_NF_MANGLE is not set 38.547 -# CONFIG_IP_NF_RAW is not set 38.548 -# CONFIG_IP_NF_ARPTABLES is not set 38.549 - 38.550 -# 38.551 -# Bridge: Netfilter Configuration 38.552 -# 38.553 -# CONFIG_BRIDGE_NF_EBTABLES is not set 38.554 - 38.555 -# 38.556 -# SCTP Configuration (EXPERIMENTAL) 38.557 -# 38.558 -# CONFIG_IP_SCTP is not set 38.559 -# CONFIG_ATM is not set 38.560 -CONFIG_BRIDGE=y 38.561 -# CONFIG_VLAN_8021Q is not set 38.562 -# CONFIG_DECNET is not set 38.563 -# CONFIG_LLC2 is not set 38.564 -# CONFIG_IPX is not set 38.565 -# CONFIG_ATALK is not set 38.566 -# CONFIG_X25 is not set 38.567 -# CONFIG_LAPB is not set 38.568 -# CONFIG_NET_DIVERT is not set 38.569 -# CONFIG_ECONET is not set 38.570 -# CONFIG_WAN_ROUTER is not set 38.571 - 38.572 -# 38.573 -# QoS and/or fair queueing 38.574 -# 38.575 -# CONFIG_NET_SCHED is not set 38.576 -# CONFIG_NET_CLS_ROUTE is not set 38.577 - 38.578 -# 38.579 -# Network testing 38.580 -# 38.581 -# CONFIG_NET_PKTGEN is not set 38.582 -# CONFIG_NETPOLL is not set 38.583 -# CONFIG_NET_POLL_CONTROLLER is not set 38.584 -# CONFIG_HAMRADIO is not set 38.585 -# CONFIG_IRDA is not set 38.586 -# CONFIG_BT is not set 38.587 -CONFIG_NETDEVICES=y 38.588 -# CONFIG_DUMMY is not set 38.589 -# CONFIG_BONDING is not set 38.590 -# CONFIG_EQUALIZER is not set 38.591 -# CONFIG_TUN is not set 38.592 - 38.593 -# 38.594 -# ARCnet devices 38.595 -# 38.596 -# CONFIG_ARCNET is not set 38.597 - 38.598 -# 38.599 -# Ethernet (10 or 100Mbit) 38.600 -# 38.601 -CONFIG_NET_ETHERNET=y 38.602 -CONFIG_MII=y 38.603 -# CONFIG_HAPPYMEAL is not set 38.604 -# CONFIG_SUNGEM is not set 38.605 -CONFIG_NET_VENDOR_3COM=y 38.606 -# CONFIG_EL1 is not set 38.607 -# CONFIG_EL2 is not set 38.608 -# CONFIG_ELPLUS is not set 38.609 -# CONFIG_EL16 is not set 38.610 -# CONFIG_EL3 is not set 38.611 -# CONFIG_3C515 is not set 38.612 -CONFIG_VORTEX=y 38.613 -# CONFIG_TYPHOON is not set 38.614 -# CONFIG_LANCE is not set 38.615 -# CONFIG_NET_VENDOR_SMC is not set 38.616 -# CONFIG_NET_VENDOR_RACAL is not set 38.617 - 38.618 -# 38.619 -# Tulip family network device support 38.620 -# 38.621 -CONFIG_NET_TULIP=y 38.622 -# CONFIG_DE2104X is not set 38.623 -CONFIG_TULIP=y 38.624 -# CONFIG_TULIP_MWI is not set 38.625 -# CONFIG_TULIP_MMIO is not set 38.626 -# CONFIG_TULIP_NAPI is not set 38.627 -# CONFIG_DE4X5 is not set 38.628 -# CONFIG_WINBOND_840 is not set 38.629 -# CONFIG_DM9102 is not set 38.630 -# CONFIG_AT1700 is not set 38.631 -# CONFIG_DEPCA is not set 38.632 -# CONFIG_HP100 is not set 38.633 -# CONFIG_NET_ISA is not set 38.634 -CONFIG_NET_PCI=y 38.635 -CONFIG_PCNET32=y 38.636 -# CONFIG_AMD8111_ETH is not set 38.637 -# CONFIG_ADAPTEC_STARFIRE is not set 38.638 -# CONFIG_AC3200 is not set 38.639 -# CONFIG_APRICOT is not set 38.640 -# CONFIG_B44 is not set 38.641 -# CONFIG_FORCEDETH is not set 38.642 -# CONFIG_CS89x0 is not set 38.643 -# CONFIG_DGRS is not set 38.644 -# CONFIG_EEPRO100 is not set 38.645 -CONFIG_E100=y 38.646 -# CONFIG_E100_NAPI is not set 38.647 -# CONFIG_FEALNX is not set 38.648 -# CONFIG_NATSEMI is not set 38.649 -CONFIG_NE2K_PCI=y 38.650 -# CONFIG_8139CP is not set 38.651 -CONFIG_8139TOO=y 38.652 -CONFIG_8139TOO_PIO=y 38.653 -# CONFIG_8139TOO_TUNE_TWISTER is not set 38.654 -# CONFIG_8139TOO_8129 is not set 38.655 -# CONFIG_8139_OLD_RX_RESET is not set 38.656 -# CONFIG_SIS900 is not set 38.657 -# CONFIG_EPIC100 is not set 38.658 -# CONFIG_SUNDANCE is not set 38.659 -# CONFIG_TLAN is not set 38.660 -CONFIG_VIA_RHINE=y 38.661 -# CONFIG_VIA_RHINE_MMIO is not set 38.662 -# CONFIG_NET_POCKET is not set 38.663 - 38.664 -# 38.665 -# Ethernet (1000 Mbit) 38.666 -# 38.667 -CONFIG_ACENIC=y 38.668 -# CONFIG_ACENIC_OMIT_TIGON_I is not set 38.669 -# CONFIG_DL2K is not set 38.670 -CONFIG_E1000=y 38.671 -# CONFIG_E1000_NAPI is not set 38.672 -# CONFIG_NS83820 is not set 38.673 -# CONFIG_HAMACHI is not set 38.674 -# CONFIG_YELLOWFIN is not set 38.675 -# CONFIG_R8169 is not set 38.676 -# CONFIG_SK98LIN is not set 38.677 -# CONFIG_VIA_VELOCITY is not set 38.678 -CONFIG_TIGON3=y 38.679 - 38.680 -# 38.681 -# Ethernet (10000 Mbit) 38.682 -# 38.683 -# CONFIG_IXGB is not set 38.684 -# CONFIG_S2IO is not set 38.685 - 38.686 -# 38.687 -# Token Ring devices 38.688 -# 38.689 -# CONFIG_TR is not set 38.690 - 38.691 -# 38.692 -# Wireless LAN (non-hamradio) 38.693 -# 38.694 -# CONFIG_NET_RADIO is not set 38.695 - 38.696 -# 38.697 -# Wan interfaces 38.698 -# 38.699 -# CONFIG_WAN is not set 38.700 -# CONFIG_FDDI is not set 38.701 -# CONFIG_HIPPI is not set 38.702 -# CONFIG_PPP is not set 38.703 -# CONFIG_SLIP is not set 38.704 -# CONFIG_NET_FC is not set 38.705 -# CONFIG_SHAPER is not set 38.706 -# CONFIG_NETCONSOLE is not set 38.707 - 38.708 -# 38.709 -# ISDN subsystem 38.710 -# 38.711 -# CONFIG_ISDN is not set 38.712 - 38.713 -# 38.714 -# Telephony Support 38.715 -# 38.716 -# CONFIG_PHONE is not set 38.717 - 38.718 -# 38.719 -# Input device support 38.720 -# 38.721 -CONFIG_INPUT=y 38.722 - 38.723 -# 38.724 -# Userland interfaces 38.725 -# 38.726 -CONFIG_INPUT_MOUSEDEV=y 38.727 -CONFIG_INPUT_MOUSEDEV_PSAUX=y 38.728 -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 38.729 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 38.730 -# CONFIG_INPUT_JOYDEV is not set 38.731 -# CONFIG_INPUT_TSDEV is not set 38.732 -# CONFIG_INPUT_EVDEV is not set 38.733 -# CONFIG_INPUT_EVBUG is not set 38.734 - 38.735 -# 38.736 -# Input I/O drivers 38.737 -# 38.738 -# CONFIG_GAMEPORT is not set 38.739 -CONFIG_SOUND_GAMEPORT=y 38.740 -CONFIG_SERIO=y 38.741 -CONFIG_SERIO_I8042=y 38.742 -CONFIG_SERIO_SERPORT=y 38.743 -# CONFIG_SERIO_CT82C710 is not set 38.744 -# CONFIG_SERIO_PCIPS2 is not set 38.745 -CONFIG_SERIO_LIBPS2=y 38.746 -# CONFIG_SERIO_RAW is not set 38.747 - 38.748 -# 38.749 -# Input Device Drivers 38.750 -# 38.751 -CONFIG_INPUT_KEYBOARD=y 38.752 -CONFIG_KEYBOARD_ATKBD=y 38.753 -# CONFIG_KEYBOARD_SUNKBD is not set 38.754 -# CONFIG_KEYBOARD_LKKBD is not set 38.755 -# CONFIG_KEYBOARD_XTKBD is not set 38.756 -# CONFIG_KEYBOARD_NEWTON is not set 38.757 -CONFIG_INPUT_MOUSE=y 38.758 -CONFIG_MOUSE_PS2=y 38.759 -# CONFIG_MOUSE_SERIAL is not set 38.760 -# CONFIG_MOUSE_INPORT is not set 38.761 -# CONFIG_MOUSE_LOGIBM is not set 38.762 -# CONFIG_MOUSE_PC110PAD is not set 38.763 -# CONFIG_MOUSE_VSXXXAA is not set 38.764 -# CONFIG_INPUT_JOYSTICK is not set 38.765 -# CONFIG_INPUT_TOUCHSCREEN is not set 38.766 -# CONFIG_INPUT_MISC is not set 38.767 - 38.768 -# 38.769 -# Character devices 38.770 -# 38.771 -CONFIG_VT=y 38.772 -CONFIG_VT_CONSOLE=y 38.773 -CONFIG_HW_CONSOLE=y 38.774 -# CONFIG_SERIAL_NONSTANDARD is not set 38.775 - 38.776 -# 38.777 -# Serial drivers 38.778 -# 38.779 -# CONFIG_SERIAL_8250 is not set 38.780 - 38.781 -# 38.782 -# Non-8250 serial port support 38.783 -# 38.784 -CONFIG_UNIX98_PTYS=y 38.785 -CONFIG_LEGACY_PTYS=y 38.786 -CONFIG_LEGACY_PTY_COUNT=256 38.787 - 38.788 -# 38.789 -# IPMI 38.790 -# 38.791 -# CONFIG_IPMI_HANDLER is not set 38.792 - 38.793 -# 38.794 -# Watchdog Cards 38.795 -# 38.796 -# CONFIG_WATCHDOG is not set 38.797 -# CONFIG_HW_RANDOM is not set 38.798 -# CONFIG_NVRAM is not set 38.799 -# CONFIG_RTC is not set 38.800 -# CONFIG_GEN_RTC is not set 38.801 -# CONFIG_DTLK is not set 38.802 -# CONFIG_R3964 is not set 38.803 -# CONFIG_APPLICOM is not set 38.804 -# CONFIG_SONYPI is not set 38.805 - 38.806 -# 38.807 -# Ftape, the floppy tape device driver 38.808 -# 38.809 -# CONFIG_FTAPE is not set 38.810 -CONFIG_AGP=m 38.811 -CONFIG_AGP_ALI=m 38.812 -CONFIG_AGP_ATI=m 38.813 -CONFIG_AGP_AMD=m 38.814 -CONFIG_AGP_AMD64=m 38.815 -CONFIG_AGP_INTEL=m 38.816 -CONFIG_AGP_INTEL_MCH=m 38.817 -CONFIG_AGP_NVIDIA=m 38.818 -CONFIG_AGP_SIS=m 38.819 -CONFIG_AGP_SWORKS=m 38.820 -CONFIG_AGP_VIA=m 38.821 -# CONFIG_AGP_EFFICEON is not set 38.822 -CONFIG_DRM=m 38.823 -CONFIG_DRM_TDFX=m 38.824 -# CONFIG_DRM_GAMMA is not set 38.825 -CONFIG_DRM_R128=m 38.826 -CONFIG_DRM_RADEON=m 38.827 -CONFIG_DRM_I810=m 38.828 -CONFIG_DRM_I830=m 38.829 -CONFIG_DRM_I915=m 38.830 -CONFIG_DRM_MGA=m 38.831 -CONFIG_DRM_SIS=m 38.832 -# CONFIG_MWAVE is not set 38.833 -# CONFIG_RAW_DRIVER is not set 38.834 -# CONFIG_HANGCHECK_TIMER is not set 38.835 - 38.836 -# 38.837 -# I2C support 38.838 -# 38.839 -# CONFIG_I2C is not set 38.840 - 38.841 -# 38.842 -# Dallas's 1-wire bus 38.843 -# 38.844 -# CONFIG_W1 is not set 38.845 - 38.846 -# 38.847 -# Misc devices 38.848 -# 38.849 -# CONFIG_IBM_ASM is not set 38.850 - 38.851 -# 38.852 -# Multimedia devices 38.853 -# 38.854 -# CONFIG_VIDEO_DEV is not set 38.855 - 38.856 -# 38.857 -# Digital Video Broadcasting Devices 38.858 -# 38.859 -# CONFIG_DVB is not set 38.860 - 38.861 -# 38.862 -# Graphics support 38.863 -# 38.864 -# CONFIG_FB is not set 38.865 -# CONFIG_VIDEO_SELECT is not set 38.866 - 38.867 -# 38.868 -# Console display driver support 38.869 -# 38.870 -CONFIG_VGA_CONSOLE=y 38.871 -# CONFIG_MDA_CONSOLE is not set 38.872 -CONFIG_DUMMY_CONSOLE=y 38.873 - 38.874 -# 38.875 -# Sound 38.876 -# 38.877 -# CONFIG_SOUND is not set 38.878 - 38.879 -# 38.880 -# USB support 38.881 -# 38.882 -# CONFIG_USB is not set 38.883 -CONFIG_USB_ARCH_HAS_HCD=y 38.884 -CONFIG_USB_ARCH_HAS_OHCI=y 38.885 - 38.886 -# 38.887 -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 38.888 -# 38.889 - 38.890 -# 38.891 -# USB Gadget Support 38.892 -# 38.893 -# CONFIG_USB_GADGET is not set 38.894 - 38.895 -# 38.896 -# MMC/SD Card support 38.897 -# 38.898 -# CONFIG_MMC is not set 38.899 - 38.900 -# 38.901 -# InfiniBand support 38.902 -# 38.903 -# CONFIG_INFINIBAND is not set 38.904 - 38.905 -# 38.906 -# File systems 38.907 -# 38.908 -CONFIG_EXT2_FS=y 38.909 -# CONFIG_EXT2_FS_XATTR is not set 38.910 -CONFIG_EXT3_FS=y 38.911 -CONFIG_EXT3_FS_XATTR=y 38.912 -# CONFIG_EXT3_FS_POSIX_ACL is not set 38.913 -# CONFIG_EXT3_FS_SECURITY is not set 38.914 -CONFIG_JBD=y 38.915 -# CONFIG_JBD_DEBUG is not set 38.916 -CONFIG_FS_MBCACHE=y 38.917 -CONFIG_REISERFS_FS=y 38.918 -# CONFIG_REISERFS_CHECK is not set 38.919 -# CONFIG_REISERFS_PROC_INFO is not set 38.920 -# CONFIG_REISERFS_FS_XATTR is not set 38.921 -# CONFIG_JFS_FS is not set 38.922 - 38.923 -# 38.924 -# XFS support 38.925 -# 38.926 -# CONFIG_XFS_FS is not set 38.927 -# CONFIG_MINIX_FS is not set 38.928 -# CONFIG_ROMFS_FS is not set 38.929 -# CONFIG_QUOTA is not set 38.930 -CONFIG_DNOTIFY=y 38.931 -# CONFIG_AUTOFS_FS is not set 38.932 -# CONFIG_AUTOFS4_FS is not set 38.933 - 38.934 -# 38.935 -# CD-ROM/DVD Filesystems 38.936 -# 38.937 -CONFIG_ISO9660_FS=y 38.938 -CONFIG_JOLIET=y 38.939 -CONFIG_ZISOFS=y 38.940 -CONFIG_ZISOFS_FS=y 38.941 -# CONFIG_UDF_FS is not set 38.942 - 38.943 -# 38.944 -# DOS/FAT/NT Filesystems 38.945 -# 38.946 -CONFIG_FAT_FS=m 38.947 -CONFIG_MSDOS_FS=m 38.948 -CONFIG_VFAT_FS=m 38.949 -CONFIG_FAT_DEFAULT_CODEPAGE=437 38.950 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 38.951 -# CONFIG_NTFS_FS is not set 38.952 - 38.953 -# 38.954 -# Pseudo filesystems 38.955 -# 38.956 -CONFIG_PROC_FS=y 38.957 -CONFIG_PROC_KCORE=y 38.958 -CONFIG_SYSFS=y 38.959 -# CONFIG_DEVFS_FS is not set 38.960 -# CONFIG_DEVPTS_FS_XATTR is not set 38.961 -CONFIG_TMPFS=y 38.962 -# CONFIG_TMPFS_XATTR is not set 38.963 -# CONFIG_HUGETLBFS is not set 38.964 -# CONFIG_HUGETLB_PAGE is not set 38.965 -CONFIG_RAMFS=y 38.966 - 38.967 -# 38.968 -# Miscellaneous filesystems 38.969 -# 38.970 -# CONFIG_ADFS_FS is not set 38.971 -# CONFIG_AFFS_FS is not set 38.972 -# CONFIG_HFS_FS is not set 38.973 -# CONFIG_HFSPLUS_FS is not set 38.974 -# CONFIG_BEFS_FS is not set 38.975 -# CONFIG_BFS_FS is not set 38.976 -# CONFIG_EFS_FS is not set 38.977 -# CONFIG_CRAMFS is not set 38.978 -# CONFIG_VXFS_FS is not set 38.979 -# CONFIG_HPFS_FS is not set 38.980 -# CONFIG_QNX4FS_FS is not set 38.981 -# CONFIG_SYSV_FS is not set 38.982 -# CONFIG_UFS_FS is not set 38.983 - 38.984 -# 38.985 -# Network File Systems 38.986 -# 38.987 -CONFIG_NFS_FS=y 38.988 -CONFIG_NFS_V3=y 38.989 -# CONFIG_NFS_V4 is not set 38.990 -# CONFIG_NFS_DIRECTIO is not set 38.991 -CONFIG_NFSD=m 38.992 -CONFIG_NFSD_V3=y 38.993 -# CONFIG_NFSD_V4 is not set 38.994 -CONFIG_NFSD_TCP=y 38.995 -CONFIG_ROOT_NFS=y 38.996 -CONFIG_LOCKD=y 38.997 -CONFIG_LOCKD_V4=y 38.998 -CONFIG_EXPORTFS=m 38.999 -CONFIG_SUNRPC=y 38.1000 -# CONFIG_RPCSEC_GSS_KRB5 is not set 38.1001 -# CONFIG_RPCSEC_GSS_SPKM3 is not set 38.1002 -# CONFIG_SMB_FS is not set 38.1003 -# CONFIG_CIFS is not set 38.1004 -# CONFIG_NCP_FS is not set 38.1005 -# CONFIG_CODA_FS is not set 38.1006 -# CONFIG_AFS_FS is not set 38.1007 - 38.1008 -# 38.1009 -# Partition Types 38.1010 -# 38.1011 -# CONFIG_PARTITION_ADVANCED is not set 38.1012 -CONFIG_MSDOS_PARTITION=y 38.1013 - 38.1014 -# 38.1015 -# Native Language Support 38.1016 -# 38.1017 -CONFIG_NLS=y 38.1018 -CONFIG_NLS_DEFAULT="iso8859-1" 38.1019 -CONFIG_NLS_CODEPAGE_437=y 38.1020 -# CONFIG_NLS_CODEPAGE_737 is not set 38.1021 -# CONFIG_NLS_CODEPAGE_775 is not set 38.1022 -# CONFIG_NLS_CODEPAGE_850 is not set 38.1023 -# CONFIG_NLS_CODEPAGE_852 is not set 38.1024 -# CONFIG_NLS_CODEPAGE_855 is not set 38.1025 -# CONFIG_NLS_CODEPAGE_857 is not set 38.1026 -# CONFIG_NLS_CODEPAGE_860 is not set 38.1027 -# CONFIG_NLS_CODEPAGE_861 is not set 38.1028 -# CONFIG_NLS_CODEPAGE_862 is not set 38.1029 -# CONFIG_NLS_CODEPAGE_863 is not set 38.1030 -# CONFIG_NLS_CODEPAGE_864 is not set 38.1031 -# CONFIG_NLS_CODEPAGE_865 is not set 38.1032 -# CONFIG_NLS_CODEPAGE_866 is not set 38.1033 -# CONFIG_NLS_CODEPAGE_869 is not set 38.1034 -# CONFIG_NLS_CODEPAGE_936 is not set 38.1035 -# CONFIG_NLS_CODEPAGE_950 is not set 38.1036 -# CONFIG_NLS_CODEPAGE_932 is not set 38.1037 -# CONFIG_NLS_CODEPAGE_949 is not set 38.1038 -# CONFIG_NLS_CODEPAGE_874 is not set 38.1039 -# CONFIG_NLS_ISO8859_8 is not set 38.1040 -# CONFIG_NLS_CODEPAGE_1250 is not set 38.1041 -# CONFIG_NLS_CODEPAGE_1251 is not set 38.1042 -# CONFIG_NLS_ASCII is not set 38.1043 -CONFIG_NLS_ISO8859_1=y 38.1044 -# CONFIG_NLS_ISO8859_2 is not set 38.1045 -# CONFIG_NLS_ISO8859_3 is not set 38.1046 -# CONFIG_NLS_ISO8859_4 is not set 38.1047 -# CONFIG_NLS_ISO8859_5 is not set 38.1048 -# CONFIG_NLS_ISO8859_6 is not set 38.1049 -# CONFIG_NLS_ISO8859_7 is not set 38.1050 -# CONFIG_NLS_ISO8859_9 is not set 38.1051 -# CONFIG_NLS_ISO8859_13 is not set 38.1052 -# CONFIG_NLS_ISO8859_14 is not set 38.1053 -# CONFIG_NLS_ISO8859_15 is not set 38.1054 -# CONFIG_NLS_KOI8_R is not set 38.1055 -# CONFIG_NLS_KOI8_U is not set 38.1056 -# CONFIG_NLS_UTF8 is not set 38.1057 - 38.1058 -# 38.1059 -# Security options 38.1060 -# 38.1061 -# CONFIG_KEYS is not set 38.1062 -# CONFIG_SECURITY is not set 38.1063 - 38.1064 -# 38.1065 -# Cryptographic options 38.1066 -# 38.1067 -CONFIG_CRYPTO=y 38.1068 -CONFIG_CRYPTO_HMAC=y 38.1069 -# CONFIG_CRYPTO_NULL is not set 38.1070 -# CONFIG_CRYPTO_MD4 is not set 38.1071 -CONFIG_CRYPTO_MD5=m 38.1072 -CONFIG_CRYPTO_SHA1=m 38.1073 -# CONFIG_CRYPTO_SHA256 is not set 38.1074 -# CONFIG_CRYPTO_SHA512 is not set 38.1075 -# CONFIG_CRYPTO_WP512 is not set 38.1076 -CONFIG_CRYPTO_DES=m 38.1077 -# CONFIG_CRYPTO_BLOWFISH is not set 38.1078 -# CONFIG_CRYPTO_TWOFISH is not set 38.1079 -# CONFIG_CRYPTO_SERPENT is not set 38.1080 -# CONFIG_CRYPTO_AES_586 is not set 38.1081 -# CONFIG_CRYPTO_CAST5 is not set 38.1082 -# CONFIG_CRYPTO_CAST6 is not set 38.1083 -# CONFIG_CRYPTO_TEA is not set 38.1084 -# CONFIG_CRYPTO_ARC4 is not set 38.1085 -# CONFIG_CRYPTO_KHAZAD is not set 38.1086 -# CONFIG_CRYPTO_ANUBIS is not set 38.1087 -# CONFIG_CRYPTO_DEFLATE is not set 38.1088 -# CONFIG_CRYPTO_MICHAEL_MIC is not set 38.1089 -CONFIG_CRYPTO_CRC32C=m 38.1090 -# CONFIG_CRYPTO_TEST is not set 38.1091 - 38.1092 -# 38.1093 -# Hardware crypto devices 38.1094 -# 38.1095 -# CONFIG_CRYPTO_DEV_PADLOCK is not set 38.1096 - 38.1097 -# 38.1098 -# Library routines 38.1099 -# 38.1100 -# CONFIG_CRC_CCITT is not set 38.1101 -CONFIG_CRC32=y 38.1102 -CONFIG_LIBCRC32C=y 38.1103 -CONFIG_ZLIB_INFLATE=y
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 39.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 Mon Apr 04 16:13:17 2005 +0000 39.3 @@ -0,0 +1,1099 @@ 39.4 +# 39.5 +# Automatically generated make config: don't edit 39.6 +# Linux kernel version: 2.6.11-xen0 39.7 +# Sat Mar 19 19:42:39 2005 39.8 +# 39.9 +CONFIG_XEN=y 39.10 +CONFIG_ARCH_XEN=y 39.11 +CONFIG_NO_IDLE_HZ=y 39.12 + 39.13 +# 39.14 +# XEN 39.15 +# 39.16 +CONFIG_XEN_PRIVILEGED_GUEST=y 39.17 +CONFIG_XEN_PHYSDEV_ACCESS=y 39.18 +CONFIG_XEN_BLKDEV_BACKEND=y 39.19 +# CONFIG_XEN_BLKDEV_TAP_BE is not set 39.20 +CONFIG_XEN_NETDEV_BACKEND=y 39.21 +CONFIG_XEN_BLKDEV_FRONTEND=y 39.22 +CONFIG_XEN_NETDEV_FRONTEND=y 39.23 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set 39.24 +# CONFIG_XEN_BLKDEV_TAP is not set 39.25 +CONFIG_XEN_SCRUB_PAGES=y 39.26 +CONFIG_X86=y 39.27 +# CONFIG_X86_64 is not set 39.28 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y 39.29 + 39.30 +# 39.31 +# Code maturity level options 39.32 +# 39.33 +CONFIG_EXPERIMENTAL=y 39.34 +# CONFIG_CLEAN_COMPILE is not set 39.35 +CONFIG_BROKEN=y 39.36 +CONFIG_BROKEN_ON_SMP=y 39.37 +CONFIG_LOCK_KERNEL=y 39.38 + 39.39 +# 39.40 +# General setup 39.41 +# 39.42 +CONFIG_LOCALVERSION="" 39.43 +CONFIG_SWAP=y 39.44 +CONFIG_SYSVIPC=y 39.45 +# CONFIG_POSIX_MQUEUE is not set 39.46 +# CONFIG_BSD_PROCESS_ACCT is not set 39.47 +CONFIG_SYSCTL=y 39.48 +# CONFIG_AUDIT is not set 39.49 +CONFIG_LOG_BUF_SHIFT=14 39.50 +CONFIG_HOTPLUG=y 39.51 +CONFIG_KOBJECT_UEVENT=y 39.52 +# CONFIG_IKCONFIG is not set 39.53 +# CONFIG_EMBEDDED is not set 39.54 +CONFIG_KALLSYMS=y 39.55 +# CONFIG_KALLSYMS_EXTRA_PASS is not set 39.56 +CONFIG_FUTEX=y 39.57 +CONFIG_EPOLL=y 39.58 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 39.59 +CONFIG_SHMEM=y 39.60 +CONFIG_CC_ALIGN_FUNCTIONS=0 39.61 +CONFIG_CC_ALIGN_LABELS=0 39.62 +CONFIG_CC_ALIGN_LOOPS=0 39.63 +CONFIG_CC_ALIGN_JUMPS=0 39.64 +# CONFIG_TINY_SHMEM is not set 39.65 + 39.66 +# 39.67 +# Loadable module support 39.68 +# 39.69 +CONFIG_MODULES=y 39.70 +CONFIG_MODULE_UNLOAD=y 39.71 +# CONFIG_MODULE_FORCE_UNLOAD is not set 39.72 +CONFIG_OBSOLETE_MODPARM=y 39.73 +# CONFIG_MODVERSIONS is not set 39.74 +# CONFIG_MODULE_SRCVERSION_ALL is not set 39.75 +CONFIG_KMOD=y 39.76 + 39.77 +# 39.78 +# X86 Processor Configuration 39.79 +# 39.80 +CONFIG_XENARCH="i386" 39.81 +CONFIG_MMU=y 39.82 +CONFIG_UID16=y 39.83 +CONFIG_GENERIC_ISA_DMA=y 39.84 +CONFIG_GENERIC_IOMAP=y 39.85 +# CONFIG_M386 is not set 39.86 +# CONFIG_M486 is not set 39.87 +# CONFIG_M586 is not set 39.88 +# CONFIG_M586TSC is not set 39.89 +# CONFIG_M586MMX is not set 39.90 +# CONFIG_M686 is not set 39.91 +# CONFIG_MPENTIUMII is not set 39.92 +# CONFIG_MPENTIUMIII is not set 39.93 +# CONFIG_MPENTIUMM is not set 39.94 +CONFIG_MPENTIUM4=y 39.95 +# CONFIG_MK6 is not set 39.96 +# CONFIG_MK7 is not set 39.97 +# CONFIG_MK8 is not set 39.98 +# CONFIG_MCRUSOE is not set 39.99 +# CONFIG_MEFFICEON is not set 39.100 +# CONFIG_MWINCHIPC6 is not set 39.101 +# CONFIG_MWINCHIP2 is not set 39.102 +# CONFIG_MWINCHIP3D is not set 39.103 +# CONFIG_MCYRIXIII is not set 39.104 +# CONFIG_MVIAC3_2 is not set 39.105 +# CONFIG_X86_GENERIC is not set 39.106 +CONFIG_X86_CMPXCHG=y 39.107 +CONFIG_X86_XADD=y 39.108 +CONFIG_X86_L1_CACHE_SHIFT=7 39.109 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39.110 +CONFIG_GENERIC_CALIBRATE_DELAY=y 39.111 +CONFIG_X86_WP_WORKS_OK=y 39.112 +CONFIG_X86_INVLPG=y 39.113 +CONFIG_X86_BSWAP=y 39.114 +CONFIG_X86_POPAD_OK=y 39.115 +CONFIG_X86_GOOD_APIC=y 39.116 +CONFIG_X86_INTEL_USERCOPY=y 39.117 +CONFIG_X86_USE_PPRO_CHECKSUM=y 39.118 +# CONFIG_HPET_TIMER is not set 39.119 +# CONFIG_HPET_EMULATE_RTC is not set 39.120 +# CONFIG_SMP is not set 39.121 +CONFIG_PREEMPT=y 39.122 +CONFIG_PREEMPT_BKL=y 39.123 +CONFIG_MICROCODE=y 39.124 +CONFIG_X86_CPUID=y 39.125 + 39.126 +# 39.127 +# Firmware Drivers 39.128 +# 39.129 +# CONFIG_EDD is not set 39.130 +CONFIG_NOHIGHMEM=y 39.131 +# CONFIG_HIGHMEM4G is not set 39.132 +CONFIG_MTRR=y 39.133 +CONFIG_HAVE_DEC_LOCK=y 39.134 +# CONFIG_REGPARM is not set 39.135 + 39.136 +# 39.137 +# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 39.138 +# 39.139 +CONFIG_PCI=y 39.140 +CONFIG_PCI_DIRECT=y 39.141 +CONFIG_PCI_LEGACY_PROC=y 39.142 +# CONFIG_PCI_NAMES is not set 39.143 +CONFIG_ISA=y 39.144 +# CONFIG_EISA is not set 39.145 +# CONFIG_MCA is not set 39.146 +# CONFIG_SCx200 is not set 39.147 + 39.148 +# 39.149 +# PCCARD (PCMCIA/CardBus) support 39.150 +# 39.151 +# CONFIG_PCCARD is not set 39.152 + 39.153 +# 39.154 +# PC-card bridges 39.155 +# 39.156 +CONFIG_PCMCIA_PROBE=y 39.157 + 39.158 +# 39.159 +# PCI Hotplug Support 39.160 +# 39.161 +# CONFIG_HOTPLUG_PCI is not set 39.162 + 39.163 +# 39.164 +# Kernel hacking 39.165 +# 39.166 +# CONFIG_DEBUG_KERNEL is not set 39.167 +CONFIG_EARLY_PRINTK=y 39.168 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 39.169 +# CONFIG_FRAME_POINTER is not set 39.170 +# CONFIG_4KSTACKS is not set 39.171 +CONFIG_GENERIC_HARDIRQS=y 39.172 +CONFIG_GENERIC_IRQ_PROBE=y 39.173 +CONFIG_X86_BIOS_REBOOT=y 39.174 +CONFIG_PC=y 39.175 + 39.176 +# 39.177 +# Executable file formats 39.178 +# 39.179 +CONFIG_BINFMT_ELF=y 39.180 +# CONFIG_BINFMT_AOUT is not set 39.181 +# CONFIG_BINFMT_MISC is not set 39.182 + 39.183 +# 39.184 +# Device Drivers 39.185 +# 39.186 + 39.187 +# 39.188 +# Generic Driver Options 39.189 +# 39.190 +# CONFIG_STANDALONE is not set 39.191 +CONFIG_PREVENT_FIRMWARE_BUILD=y 39.192 +# CONFIG_FW_LOADER is not set 39.193 + 39.194 +# 39.195 +# Memory Technology Devices (MTD) 39.196 +# 39.197 +# CONFIG_MTD is not set 39.198 + 39.199 +# 39.200 +# Parallel port support 39.201 +# 39.202 +# CONFIG_PARPORT is not set 39.203 + 39.204 +# 39.205 +# Plug and Play support 39.206 +# 39.207 +# CONFIG_PNP is not set 39.208 + 39.209 +# 39.210 +# Block devices 39.211 +# 39.212 +CONFIG_BLK_DEV_FD=y 39.213 +# CONFIG_BLK_DEV_XD is not set 39.214 +# CONFIG_BLK_CPQ_DA is not set 39.215 +CONFIG_BLK_CPQ_CISS_DA=y 39.216 +# CONFIG_CISS_SCSI_TAPE is not set 39.217 +# CONFIG_BLK_DEV_DAC960 is not set 39.218 +# CONFIG_BLK_DEV_UMEM is not set 39.219 +# CONFIG_BLK_DEV_COW_COMMON is not set 39.220 +CONFIG_BLK_DEV_LOOP=y 39.221 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set 39.222 +# CONFIG_BLK_DEV_NBD is not set 39.223 +# CONFIG_BLK_DEV_SX8 is not set 39.224 +CONFIG_BLK_DEV_RAM=y 39.225 +CONFIG_BLK_DEV_RAM_COUNT=16 39.226 +CONFIG_BLK_DEV_RAM_SIZE=4096 39.227 +CONFIG_BLK_DEV_INITRD=y 39.228 +CONFIG_INITRAMFS_SOURCE="" 39.229 +# CONFIG_LBD is not set 39.230 +# CONFIG_CDROM_PKTCDVD is not set 39.231 + 39.232 +# 39.233 +# IO Schedulers 39.234 +# 39.235 +CONFIG_IOSCHED_NOOP=y 39.236 +CONFIG_IOSCHED_AS=y 39.237 +CONFIG_IOSCHED_DEADLINE=y 39.238 +CONFIG_IOSCHED_CFQ=y 39.239 +# CONFIG_ATA_OVER_ETH is not set 39.240 + 39.241 +# 39.242 +# ATA/ATAPI/MFM/RLL support 39.243 +# 39.244 +CONFIG_IDE=y 39.245 +CONFIG_BLK_DEV_IDE=y 39.246 + 39.247 +# 39.248 +# Please see Documentation/ide.txt for help/info on IDE drives 39.249 +# 39.250 +# CONFIG_BLK_DEV_IDE_SATA is not set 39.251 +# CONFIG_BLK_DEV_HD_IDE is not set 39.252 +CONFIG_BLK_DEV_IDEDISK=y 39.253 +# CONFIG_IDEDISK_MULTI_MODE is not set 39.254 +CONFIG_BLK_DEV_IDECD=y 39.255 +# CONFIG_BLK_DEV_IDETAPE is not set 39.256 +# CONFIG_BLK_DEV_IDEFLOPPY is not set 39.257 +# CONFIG_BLK_DEV_IDESCSI is not set 39.258 +# CONFIG_IDE_TASK_IOCTL is not set 39.259 + 39.260 +# 39.261 +# IDE chipset support/bugfixes 39.262 +# 39.263 +CONFIG_IDE_GENERIC=y 39.264 +# CONFIG_BLK_DEV_CMD640 is not set 39.265 +CONFIG_BLK_DEV_IDEPCI=y 39.266 +# CONFIG_IDEPCI_SHARE_IRQ is not set 39.267 +# CONFIG_BLK_DEV_OFFBOARD is not set 39.268 +CONFIG_BLK_DEV_GENERIC=y 39.269 +# CONFIG_BLK_DEV_OPTI621 is not set 39.270 +# CONFIG_BLK_DEV_RZ1000 is not set 39.271 +CONFIG_BLK_DEV_IDEDMA_PCI=y 39.272 +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 39.273 +CONFIG_IDEDMA_PCI_AUTO=y 39.274 +# CONFIG_IDEDMA_ONLYDISK is not set 39.275 +# CONFIG_BLK_DEV_AEC62XX is not set 39.276 +# CONFIG_BLK_DEV_ALI15X3 is not set 39.277 +# CONFIG_BLK_DEV_AMD74XX is not set 39.278 +# CONFIG_BLK_DEV_ATIIXP is not set 39.279 +# CONFIG_BLK_DEV_CMD64X is not set 39.280 +# CONFIG_BLK_DEV_TRIFLEX is not set 39.281 +# CONFIG_BLK_DEV_CY82C693 is not set 39.282 +# CONFIG_BLK_DEV_CS5520 is not set 39.283 +# CONFIG_BLK_DEV_CS5530 is not set 39.284 +# CONFIG_BLK_DEV_HPT34X is not set 39.285 +# CONFIG_BLK_DEV_HPT366 is not set 39.286 +# CONFIG_BLK_DEV_SC1200 is not set 39.287 +CONFIG_BLK_DEV_PIIX=y 39.288 +# CONFIG_BLK_DEV_NS87415 is not set 39.289 +# CONFIG_BLK_DEV_PDC202XX_OLD is not set 39.290 +# CONFIG_BLK_DEV_PDC202XX_NEW is not set 39.291 +CONFIG_BLK_DEV_SVWKS=y 39.292 +# CONFIG_BLK_DEV_SIIMAGE is not set 39.293 +# CONFIG_BLK_DEV_SIS5513 is not set 39.294 +# CONFIG_BLK_DEV_SLC90E66 is not set 39.295 +# CONFIG_BLK_DEV_TRM290 is not set 39.296 +# CONFIG_BLK_DEV_VIA82CXXX is not set 39.297 +# CONFIG_IDE_ARM is not set 39.298 +# CONFIG_IDE_CHIPSETS is not set 39.299 +CONFIG_BLK_DEV_IDEDMA=y 39.300 +# CONFIG_IDEDMA_IVB is not set 39.301 +CONFIG_IDEDMA_AUTO=y 39.302 +# CONFIG_BLK_DEV_HD is not set 39.303 + 39.304 +# 39.305 +# SCSI device support 39.306 +# 39.307 +CONFIG_SCSI=y 39.308 +CONFIG_SCSI_PROC_FS=y 39.309 + 39.310 +# 39.311 +# SCSI support type (disk, tape, CD-ROM) 39.312 +# 39.313 +CONFIG_BLK_DEV_SD=y 39.314 +# CONFIG_CHR_DEV_ST is not set 39.315 +# CONFIG_CHR_DEV_OSST is not set 39.316 +# CONFIG_BLK_DEV_SR is not set 39.317 +# CONFIG_CHR_DEV_SG is not set 39.318 + 39.319 +# 39.320 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 39.321 +# 39.322 +# CONFIG_SCSI_MULTI_LUN is not set 39.323 +# CONFIG_SCSI_CONSTANTS is not set 39.324 +# CONFIG_SCSI_LOGGING is not set 39.325 + 39.326 +# 39.327 +# SCSI Transport Attributes 39.328 +# 39.329 +# CONFIG_SCSI_SPI_ATTRS is not set 39.330 +# CONFIG_SCSI_FC_ATTRS is not set 39.331 +# CONFIG_SCSI_ISCSI_ATTRS is not set 39.332 + 39.333 +# 39.334 +# SCSI low-level drivers 39.335 +# 39.336 +CONFIG_BLK_DEV_3W_XXXX_RAID=y 39.337 +# CONFIG_SCSI_3W_9XXX is not set 39.338 +# CONFIG_SCSI_7000FASST is not set 39.339 +# CONFIG_SCSI_ACARD is not set 39.340 +# CONFIG_SCSI_AHA152X is not set 39.341 +# CONFIG_SCSI_AHA1542 is not set 39.342 +CONFIG_SCSI_AACRAID=y 39.343 +CONFIG_SCSI_AIC7XXX=y 39.344 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 39.345 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 39.346 +CONFIG_AIC7XXX_DEBUG_ENABLE=y 39.347 +CONFIG_AIC7XXX_DEBUG_MASK=0 39.348 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y 39.349 +# CONFIG_SCSI_AIC7XXX_OLD is not set 39.350 +CONFIG_SCSI_AIC79XX=y 39.351 +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 39.352 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 39.353 +# CONFIG_AIC79XX_ENABLE_RD_STRM is not set 39.354 +CONFIG_AIC79XX_DEBUG_ENABLE=y 39.355 +CONFIG_AIC79XX_DEBUG_MASK=0 39.356 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y 39.357 +# CONFIG_SCSI_DPT_I2O is not set 39.358 +# CONFIG_SCSI_ADVANSYS is not set 39.359 +# CONFIG_SCSI_IN2000 is not set 39.360 +# CONFIG_MEGARAID_NEWGEN is not set 39.361 +# CONFIG_MEGARAID_LEGACY is not set 39.362 +CONFIG_SCSI_SATA=y 39.363 +# CONFIG_SCSI_SATA_AHCI is not set 39.364 +# CONFIG_SCSI_SATA_SVW is not set 39.365 +CONFIG_SCSI_ATA_PIIX=y 39.366 +# CONFIG_SCSI_SATA_NV is not set 39.367 +CONFIG_SCSI_SATA_PROMISE=y 39.368 +# CONFIG_SCSI_SATA_QSTOR is not set 39.369 +CONFIG_SCSI_SATA_SX4=y 39.370 +CONFIG_SCSI_SATA_SIL=y 39.371 +# CONFIG_SCSI_SATA_SIS is not set 39.372 +# CONFIG_SCSI_SATA_ULI is not set 39.373 +# CONFIG_SCSI_SATA_VIA is not set 39.374 +# CONFIG_SCSI_SATA_VITESSE is not set 39.375 +CONFIG_SCSI_BUSLOGIC=y 39.376 +# CONFIG_SCSI_OMIT_FLASHPOINT is not set 39.377 +# CONFIG_SCSI_CPQFCTS is not set 39.378 +# CONFIG_SCSI_DMX3191D is not set 39.379 +# CONFIG_SCSI_DTC3280 is not set 39.380 +# CONFIG_SCSI_EATA is not set 39.381 +# CONFIG_SCSI_EATA_PIO is not set 39.382 +# CONFIG_SCSI_FUTURE_DOMAIN is not set 39.383 +# CONFIG_SCSI_GDTH is not set 39.384 +# CONFIG_SCSI_GENERIC_NCR5380 is not set 39.385 +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set 39.386 +# CONFIG_SCSI_IPS is not set 39.387 +# CONFIG_SCSI_INITIO is not set 39.388 +# CONFIG_SCSI_INIA100 is not set 39.389 +# CONFIG_SCSI_NCR53C406A is not set 39.390 +# CONFIG_SCSI_SYM53C8XX_2 is not set 39.391 +# CONFIG_SCSI_IPR is not set 39.392 +# CONFIG_SCSI_PAS16 is not set 39.393 +# CONFIG_SCSI_PCI2000 is not set 39.394 +# CONFIG_SCSI_PCI2220I is not set 39.395 +# CONFIG_SCSI_PSI240I is not set 39.396 +# CONFIG_SCSI_QLOGIC_FAS is not set 39.397 +# CONFIG_SCSI_QLOGIC_ISP is not set 39.398 +# CONFIG_SCSI_QLOGIC_FC is not set 39.399 +# CONFIG_SCSI_QLOGIC_1280 is not set 39.400 +CONFIG_SCSI_QLA2XXX=y 39.401 +# CONFIG_SCSI_QLA21XX is not set 39.402 +# CONFIG_SCSI_QLA22XX is not set 39.403 +# CONFIG_SCSI_QLA2300 is not set 39.404 +# CONFIG_SCSI_QLA2322 is not set 39.405 +# CONFIG_SCSI_QLA6312 is not set 39.406 +# CONFIG_SCSI_SEAGATE is not set 39.407 +# CONFIG_SCSI_SYM53C416 is not set 39.408 +# CONFIG_SCSI_DC395x is not set 39.409 +# CONFIG_SCSI_DC390T is not set 39.410 +# CONFIG_SCSI_T128 is not set 39.411 +# CONFIG_SCSI_U14_34F is not set 39.412 +# CONFIG_SCSI_ULTRASTOR is not set 39.413 +# CONFIG_SCSI_NSP32 is not set 39.414 +# CONFIG_SCSI_DEBUG is not set 39.415 + 39.416 +# 39.417 +# Old CD-ROM drivers (not SCSI, not IDE) 39.418 +# 39.419 +# CONFIG_CD_NO_IDESCSI is not set 39.420 + 39.421 +# 39.422 +# Multi-device support (RAID and LVM) 39.423 +# 39.424 +CONFIG_MD=y 39.425 +CONFIG_BLK_DEV_MD=y 39.426 +# CONFIG_MD_LINEAR is not set 39.427 +CONFIG_MD_RAID0=y 39.428 +CONFIG_MD_RAID1=y 39.429 +# CONFIG_MD_RAID10 is not set 39.430 +CONFIG_MD_RAID5=y 39.431 +# CONFIG_MD_RAID6 is not set 39.432 +# CONFIG_MD_MULTIPATH is not set 39.433 +# CONFIG_MD_FAULTY is not set 39.434 +CONFIG_BLK_DEV_DM=y 39.435 +# CONFIG_DM_CRYPT is not set 39.436 +CONFIG_DM_SNAPSHOT=y 39.437 +CONFIG_DM_MIRROR=y 39.438 +# CONFIG_DM_ZERO is not set 39.439 + 39.440 +# 39.441 +# Fusion MPT device support 39.442 +# 39.443 +# CONFIG_FUSION is not set 39.444 + 39.445 +# 39.446 +# IEEE 1394 (FireWire) support 39.447 +# 39.448 +# CONFIG_IEEE1394 is not set 39.449 + 39.450 +# 39.451 +# I2O device support 39.452 +# 39.453 +# CONFIG_I2O is not set 39.454 + 39.455 +# 39.456 +# Networking support 39.457 +# 39.458 +CONFIG_NET=y 39.459 + 39.460 +# 39.461 +# Networking options 39.462 +# 39.463 +CONFIG_PACKET=y 39.464 +# CONFIG_PACKET_MMAP is not set 39.465 +# CONFIG_NETLINK_DEV is not set 39.466 +CONFIG_UNIX=y 39.467 +# CONFIG_NET_KEY is not set 39.468 +CONFIG_INET=y 39.469 +# CONFIG_IP_MULTICAST is not set 39.470 +# CONFIG_IP_ADVANCED_ROUTER is not set 39.471 +CONFIG_IP_PNP=y 39.472 +CONFIG_IP_PNP_DHCP=y 39.473 +# CONFIG_IP_PNP_BOOTP is not set 39.474 +# CONFIG_IP_PNP_RARP is not set 39.475 +# CONFIG_NET_IPIP is not set 39.476 +# CONFIG_NET_IPGRE is not set 39.477 +# CONFIG_ARPD is not set 39.478 +# CONFIG_SYN_COOKIES is not set 39.479 +# CONFIG_INET_AH is not set 39.480 +# CONFIG_INET_ESP is not set 39.481 +# CONFIG_INET_IPCOMP is not set 39.482 +# CONFIG_INET_TUNNEL is not set 39.483 +CONFIG_IP_TCPDIAG=y 39.484 +# CONFIG_IP_TCPDIAG_IPV6 is not set 39.485 + 39.486 +# 39.487 +# IP: Virtual Server Configuration 39.488 +# 39.489 +# CONFIG_IP_VS is not set 39.490 +# CONFIG_IPV6 is not set 39.491 +CONFIG_NETFILTER=y 39.492 +# CONFIG_NETFILTER_DEBUG is not set 39.493 +CONFIG_BRIDGE_NETFILTER=y 39.494 + 39.495 +# 39.496 +# IP: Netfilter Configuration 39.497 +# 39.498 +CONFIG_IP_NF_CONNTRACK=m 39.499 +CONFIG_IP_NF_CT_ACCT=y 39.500 +# CONFIG_IP_NF_CONNTRACK_MARK is not set 39.501 +# CONFIG_IP_NF_CT_PROTO_SCTP is not set 39.502 +CONFIG_IP_NF_FTP=m 39.503 +# CONFIG_IP_NF_IRC is not set 39.504 +# CONFIG_IP_NF_TFTP is not set 39.505 +# CONFIG_IP_NF_AMANDA is not set 39.506 +# CONFIG_IP_NF_QUEUE is not set 39.507 +CONFIG_IP_NF_IPTABLES=m 39.508 +# CONFIG_IP_NF_MATCH_LIMIT is not set 39.509 +CONFIG_IP_NF_MATCH_IPRANGE=m 39.510 +# CONFIG_IP_NF_MATCH_MAC is not set 39.511 +# CONFIG_IP_NF_MATCH_PKTTYPE is not set 39.512 +# CONFIG_IP_NF_MATCH_MARK is not set 39.513 +# CONFIG_IP_NF_MATCH_MULTIPORT is not set 39.514 +# CONFIG_IP_NF_MATCH_TOS is not set 39.515 +# CONFIG_IP_NF_MATCH_RECENT is not set 39.516 +# CONFIG_IP_NF_MATCH_ECN is not set 39.517 +# CONFIG_IP_NF_MATCH_DSCP is not set 39.518 +# CONFIG_IP_NF_MATCH_AH_ESP is not set 39.519 +# CONFIG_IP_NF_MATCH_LENGTH is not set 39.520 +# CONFIG_IP_NF_MATCH_TTL is not set 39.521 +# CONFIG_IP_NF_MATCH_TCPMSS is not set 39.522 +# CONFIG_IP_NF_MATCH_HELPER is not set 39.523 +# CONFIG_IP_NF_MATCH_STATE is not set 39.524 +# CONFIG_IP_NF_MATCH_CONNTRACK is not set 39.525 +# CONFIG_IP_NF_MATCH_OWNER is not set 39.526 +# CONFIG_IP_NF_MATCH_PHYSDEV is not set 39.527 +# CONFIG_IP_NF_MATCH_ADDRTYPE is not set 39.528 +# CONFIG_IP_NF_MATCH_REALM is not set 39.529 +# CONFIG_IP_NF_MATCH_SCTP is not set 39.530 +# CONFIG_IP_NF_MATCH_COMMENT is not set 39.531 +# CONFIG_IP_NF_MATCH_HASHLIMIT is not set 39.532 +CONFIG_IP_NF_FILTER=m 39.533 +CONFIG_IP_NF_TARGET_REJECT=m 39.534 +# CONFIG_IP_NF_TARGET_LOG is not set 39.535 +# CONFIG_IP_NF_TARGET_ULOG is not set 39.536 +# CONFIG_IP_NF_TARGET_TCPMSS is not set 39.537 +CONFIG_IP_NF_NAT=m 39.538 +CONFIG_IP_NF_NAT_NEEDED=y 39.539 +CONFIG_IP_NF_TARGET_MASQUERADE=m 39.540 +# CONFIG_IP_NF_TARGET_REDIRECT is not set 39.541 +# CONFIG_IP_NF_TARGET_NETMAP is not set 39.542 +# CONFIG_IP_NF_TARGET_SAME is not set 39.543 +# CONFIG_IP_NF_NAT_SNMP_BASIC is not set 39.544 +CONFIG_IP_NF_NAT_FTP=m 39.545 +# CONFIG_IP_NF_MANGLE is not set 39.546 +# CONFIG_IP_NF_RAW is not set 39.547 +# CONFIG_IP_NF_ARPTABLES is not set 39.548 + 39.549 +# 39.550 +# Bridge: Netfilter Configuration 39.551 +# 39.552 +# CONFIG_BRIDGE_NF_EBTABLES is not set 39.553 + 39.554 +# 39.555 +# SCTP Configuration (EXPERIMENTAL) 39.556 +# 39.557 +# CONFIG_IP_SCTP is not set 39.558 +# CONFIG_ATM is not set 39.559 +CONFIG_BRIDGE=y 39.560 +# CONFIG_VLAN_8021Q is not set 39.561 +# CONFIG_DECNET is not set 39.562 +# CONFIG_LLC2 is not set 39.563 +# CONFIG_IPX is not set 39.564 +# CONFIG_ATALK is not set 39.565 +# CONFIG_X25 is not set 39.566 +# CONFIG_LAPB is not set 39.567 +# CONFIG_NET_DIVERT is not set 39.568 +# CONFIG_ECONET is not set 39.569 +# CONFIG_WAN_ROUTER is not set 39.570 + 39.571 +# 39.572 +# QoS and/or fair queueing 39.573 +# 39.574 +# CONFIG_NET_SCHED is not set 39.575 +# CONFIG_NET_CLS_ROUTE is not set 39.576 + 39.577 +# 39.578 +# Network testing 39.579 +# 39.580 +# CONFIG_NET_PKTGEN is not set 39.581 +# CONFIG_NETPOLL is not set 39.582 +# CONFIG_NET_POLL_CONTROLLER is not set 39.583 +# CONFIG_HAMRADIO is not set 39.584 +# CONFIG_IRDA is not set 39.585 +# CONFIG_BT is not set 39.586 +CONFIG_NETDEVICES=y 39.587 +# CONFIG_DUMMY is not set 39.588 +# CONFIG_BONDING is not set 39.589 +# CONFIG_EQUALIZER is not set 39.590 +# CONFIG_TUN is not set 39.591 + 39.592 +# 39.593 +# ARCnet devices 39.594 +# 39.595 +# CONFIG_ARCNET is not set 39.596 + 39.597 +# 39.598 +# Ethernet (10 or 100Mbit) 39.599 +# 39.600 +CONFIG_NET_ETHERNET=y 39.601 +CONFIG_MII=y 39.602 +# CONFIG_HAPPYMEAL is not set 39.603 +# CONFIG_SUNGEM is not set 39.604 +CONFIG_NET_VENDOR_3COM=y 39.605 +# CONFIG_EL1 is not set 39.606 +# CONFIG_EL2 is not set 39.607 +# CONFIG_ELPLUS is not set 39.608 +# CONFIG_EL16 is not set 39.609 +# CONFIG_EL3 is not set 39.610 +# CONFIG_3C515 is not set 39.611 +CONFIG_VORTEX=y 39.612 +# CONFIG_TYPHOON is not set 39.613 +# CONFIG_LANCE is not set 39.614 +# CONFIG_NET_VENDOR_SMC is not set 39.615 +# CONFIG_NET_VENDOR_RACAL is not set 39.616 + 39.617 +# 39.618 +# Tulip family network device support 39.619 +# 39.620 +CONFIG_NET_TULIP=y 39.621 +# CONFIG_DE2104X is not set 39.622 +CONFIG_TULIP=y 39.623 +# CONFIG_TULIP_MWI is not set 39.624 +# CONFIG_TULIP_MMIO is not set 39.625 +# CONFIG_TULIP_NAPI is not set 39.626 +# CONFIG_DE4X5 is not set 39.627 +# CONFIG_WINBOND_840 is not set 39.628 +# CONFIG_DM9102 is not set 39.629 +# CONFIG_AT1700 is not set 39.630 +# CONFIG_DEPCA is not set 39.631 +# CONFIG_HP100 is not set 39.632 +# CONFIG_NET_ISA is not set 39.633 +CONFIG_NET_PCI=y 39.634 +CONFIG_PCNET32=y 39.635 +# CONFIG_AMD8111_ETH is not set 39.636 +# CONFIG_ADAPTEC_STARFIRE is not set 39.637 +# CONFIG_AC3200 is not set 39.638 +# CONFIG_APRICOT is not set 39.639 +# CONFIG_B44 is not set 39.640 +# CONFIG_FORCEDETH is not set 39.641 +# CONFIG_CS89x0 is not set 39.642 +# CONFIG_DGRS is not set 39.643 +# CONFIG_EEPRO100 is not set 39.644 +CONFIG_E100=y 39.645 +# CONFIG_E100_NAPI is not set 39.646 +# CONFIG_FEALNX is not set 39.647 +# CONFIG_NATSEMI is not set 39.648 +CONFIG_NE2K_PCI=y 39.649 +# CONFIG_8139CP is not set 39.650 +CONFIG_8139TOO=y 39.651 +CONFIG_8139TOO_PIO=y 39.652 +# CONFIG_8139TOO_TUNE_TWISTER is not set 39.653 +# CONFIG_8139TOO_8129 is not set 39.654 +# CONFIG_8139_OLD_RX_RESET is not set 39.655 +# CONFIG_SIS900 is not set 39.656 +# CONFIG_EPIC100 is not set 39.657 +# CONFIG_SUNDANCE is not set 39.658 +# CONFIG_TLAN is not set 39.659 +CONFIG_VIA_RHINE=y 39.660 +# CONFIG_VIA_RHINE_MMIO is not set 39.661 +# CONFIG_NET_POCKET is not set 39.662 + 39.663 +# 39.664 +# Ethernet (1000 Mbit) 39.665 +# 39.666 +CONFIG_ACENIC=y 39.667 +# CONFIG_ACENIC_OMIT_TIGON_I is not set 39.668 +# CONFIG_DL2K is not set 39.669 +CONFIG_E1000=y 39.670 +# CONFIG_E1000_NAPI is not set 39.671 +# CONFIG_NS83820 is not set 39.672 +# CONFIG_HAMACHI is not set 39.673 +# CONFIG_YELLOWFIN is not set 39.674 +# CONFIG_R8169 is not set 39.675 +# CONFIG_SK98LIN is not set 39.676 +# CONFIG_VIA_VELOCITY is not set 39.677 +CONFIG_TIGON3=y 39.678 + 39.679 +# 39.680 +# Ethernet (10000 Mbit) 39.681 +# 39.682 +# CONFIG_IXGB is not set 39.683 +# CONFIG_S2IO is not set 39.684 + 39.685 +# 39.686 +# Token Ring devices 39.687 +# 39.688 +# CONFIG_TR is not set 39.689 + 39.690 +# 39.691 +# Wireless LAN (non-hamradio) 39.692 +# 39.693 +# CONFIG_NET_RADIO is not set 39.694 + 39.695 +# 39.696 +# Wan interfaces 39.697 +# 39.698 +# CONFIG_WAN is not set 39.699 +# CONFIG_FDDI is not set 39.700 +# CONFIG_HIPPI is not set 39.701 +# CONFIG_PPP is not set 39.702 +# CONFIG_SLIP is not set 39.703 +# CONFIG_NET_FC is not set 39.704 +# CONFIG_SHAPER is not set 39.705 +# CONFIG_NETCONSOLE is not set 39.706 + 39.707 +# 39.708 +# ISDN subsystem 39.709 +# 39.710 +# CONFIG_ISDN is not set 39.711 + 39.712 +# 39.713 +# Telephony Support 39.714 +# 39.715 +# CONFIG_PHONE is not set 39.716 + 39.717 +# 39.718 +# Input device support 39.719 +# 39.720 +CONFIG_INPUT=y 39.721 + 39.722 +# 39.723 +# Userland interfaces 39.724 +# 39.725 +CONFIG_INPUT_MOUSEDEV=y 39.726 +CONFIG_INPUT_MOUSEDEV_PSAUX=y 39.727 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 39.728 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 39.729 +# CONFIG_INPUT_JOYDEV is not set 39.730 +# CONFIG_INPUT_TSDEV is not set 39.731 +# CONFIG_INPUT_EVDEV is not set 39.732 +# CONFIG_INPUT_EVBUG is not set 39.733 + 39.734 +# 39.735 +# Input I/O drivers 39.736 +# 39.737 +# CONFIG_GAMEPORT is not set 39.738 +CONFIG_SOUND_GAMEPORT=y 39.739 +CONFIG_SERIO=y 39.740 +CONFIG_SERIO_I8042=y 39.741 +CONFIG_SERIO_SERPORT=y 39.742 +# CONFIG_SERIO_CT82C710 is not set 39.743 +# CONFIG_SERIO_PCIPS2 is not set 39.744 +CONFIG_SERIO_LIBPS2=y 39.745 +# CONFIG_SERIO_RAW is not set 39.746 + 39.747 +# 39.748 +# Input Device Drivers 39.749 +# 39.750 +CONFIG_INPUT_KEYBOARD=y 39.751 +CONFIG_KEYBOARD_ATKBD=y 39.752 +# CONFIG_KEYBOARD_SUNKBD is not set 39.753 +# CONFIG_KEYBOARD_LKKBD is not set 39.754 +# CONFIG_KEYBOARD_XTKBD is not set 39.755 +# CONFIG_KEYBOARD_NEWTON is not set 39.756 +CONFIG_INPUT_MOUSE=y 39.757 +CONFIG_MOUSE_PS2=y 39.758 +# CONFIG_MOUSE_SERIAL is not set 39.759 +# CONFIG_MOUSE_INPORT is not set 39.760 +# CONFIG_MOUSE_LOGIBM is not set 39.761 +# CONFIG_MOUSE_PC110PAD is not set 39.762 +# CONFIG_MOUSE_VSXXXAA is not set 39.763 +# CONFIG_INPUT_JOYSTICK is not set 39.764 +# CONFIG_INPUT_TOUCHSCREEN is not set 39.765 +# CONFIG_INPUT_MISC is not set 39.766 + 39.767 +# 39.768 +# Character devices 39.769 +# 39.770 +CONFIG_VT=y 39.771 +CONFIG_VT_CONSOLE=y 39.772 +CONFIG_HW_CONSOLE=y 39.773 +# CONFIG_SERIAL_NONSTANDARD is not set 39.774 + 39.775 +# 39.776 +# Serial drivers 39.777 +# 39.778 +# CONFIG_SERIAL_8250 is not set 39.779 + 39.780 +# 39.781 +# Non-8250 serial port support 39.782 +# 39.783 +CONFIG_UNIX98_PTYS=y 39.784 +CONFIG_LEGACY_PTYS=y 39.785 +CONFIG_LEGACY_PTY_COUNT=256 39.786 + 39.787 +# 39.788 +# IPMI 39.789 +# 39.790 +# CONFIG_IPMI_HANDLER is not set 39.791 + 39.792 +# 39.793 +# Watchdog Cards 39.794 +# 39.795 +# CONFIG_WATCHDOG is not set 39.796 +# CONFIG_HW_RANDOM is not set 39.797 +# CONFIG_NVRAM is not set 39.798 +# CONFIG_RTC is not set 39.799 +# CONFIG_GEN_RTC is not set 39.800 +# CONFIG_DTLK is not set 39.801 +# CONFIG_R3964 is not set 39.802 +# CONFIG_APPLICOM is not set 39.803 +# CONFIG_SONYPI is not set 39.804 + 39.805 +# 39.806 +# Ftape, the floppy tape device driver 39.807 +# 39.808 +# CONFIG_FTAPE is not set 39.809 +CONFIG_AGP=m 39.810 +CONFIG_AGP_ALI=m 39.811 +CONFIG_AGP_ATI=m 39.812 +CONFIG_AGP_AMD=m 39.813 +CONFIG_AGP_AMD64=m 39.814 +CONFIG_AGP_INTEL=m 39.815 +CONFIG_AGP_INTEL_MCH=m 39.816 +CONFIG_AGP_NVIDIA=m 39.817 +CONFIG_AGP_SIS=m 39.818 +CONFIG_AGP_SWORKS=m 39.819 +CONFIG_AGP_VIA=m 39.820 +# CONFIG_AGP_EFFICEON is not set 39.821 +CONFIG_DRM=m 39.822 +CONFIG_DRM_TDFX=m 39.823 +# CONFIG_DRM_GAMMA is not set 39.824 +CONFIG_DRM_R128=m 39.825 +CONFIG_DRM_RADEON=m 39.826 +CONFIG_DRM_I810=m 39.827 +CONFIG_DRM_I830=m 39.828 +CONFIG_DRM_I915=m 39.829 +CONFIG_DRM_MGA=m 39.830 +CONFIG_DRM_SIS=m 39.831 +# CONFIG_MWAVE is not set 39.832 +# CONFIG_RAW_DRIVER is not set 39.833 +# CONFIG_HANGCHECK_TIMER is not set 39.834 + 39.835 +# 39.836 +# I2C support 39.837 +# 39.838 +# CONFIG_I2C is not set 39.839 + 39.840 +# 39.841 +# Dallas's 1-wire bus 39.842 +# 39.843 +# CONFIG_W1 is not set 39.844 + 39.845 +# 39.846 +# Misc devices 39.847 +# 39.848 +# CONFIG_IBM_ASM is not set 39.849 + 39.850 +# 39.851 +# Multimedia devices 39.852 +# 39.853 +# CONFIG_VIDEO_DEV is not set 39.854 + 39.855 +# 39.856 +# Digital Video Broadcasting Devices 39.857 +# 39.858 +# CONFIG_DVB is not set 39.859 + 39.860 +# 39.861 +# Graphics support 39.862 +# 39.863 +# CONFIG_FB is not set 39.864 +# CONFIG_VIDEO_SELECT is not set 39.865 + 39.866 +# 39.867 +# Console display driver support 39.868 +# 39.869 +CONFIG_VGA_CONSOLE=y 39.870 +# CONFIG_MDA_CONSOLE is not set 39.871 +CONFIG_DUMMY_CONSOLE=y 39.872 + 39.873 +# 39.874 +# Sound 39.875 +# 39.876 +# CONFIG_SOUND is not set 39.877 + 39.878 +# 39.879 +# USB support 39.880 +# 39.881 +# CONFIG_USB is not set 39.882 +CONFIG_USB_ARCH_HAS_HCD=y 39.883 +CONFIG_USB_ARCH_HAS_OHCI=y 39.884 + 39.885 +# 39.886 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 39.887 +# 39.888 + 39.889 +# 39.890 +# USB Gadget Support 39.891 +# 39.892 +# CONFIG_USB_GADGET is not set 39.893 + 39.894 +# 39.895 +# MMC/SD Card support 39.896 +# 39.897 +# CONFIG_MMC is not set 39.898 + 39.899 +# 39.900 +# InfiniBand support 39.901 +# 39.902 +# CONFIG_INFINIBAND is not set 39.903 + 39.904 +# 39.905 +# File systems 39.906 +# 39.907 +CONFIG_EXT2_FS=y 39.908 +# CONFIG_EXT2_FS_XATTR is not set 39.909 +CONFIG_EXT3_FS=y 39.910 +CONFIG_EXT3_FS_XATTR=y 39.911 +# CONFIG_EXT3_FS_POSIX_ACL is not set 39.912 +# CONFIG_EXT3_FS_SECURITY is not set 39.913 +CONFIG_JBD=y 39.914 +# CONFIG_JBD_DEBUG is not set 39.915 +CONFIG_FS_MBCACHE=y 39.916 +CONFIG_REISERFS_FS=y 39.917 +# CONFIG_REISERFS_CHECK is not set 39.918 +# CONFIG_REISERFS_PROC_INFO is not set 39.919 +# CONFIG_REISERFS_FS_XATTR is not set 39.920 +# CONFIG_JFS_FS is not set 39.921 + 39.922 +# 39.923 +# XFS support 39.924 +# 39.925 +# CONFIG_XFS_FS is not set 39.926 +# CONFIG_MINIX_FS is not set 39.927 +# CONFIG_ROMFS_FS is not set 39.928 +# CONFIG_QUOTA is not set 39.929 +CONFIG_DNOTIFY=y 39.930 +# CONFIG_AUTOFS_FS is not set 39.931 +# CONFIG_AUTOFS4_FS is not set 39.932 + 39.933 +# 39.934 +# CD-ROM/DVD Filesystems 39.935 +# 39.936 +CONFIG_ISO9660_FS=y 39.937 +CONFIG_JOLIET=y 39.938 +CONFIG_ZISOFS=y 39.939 +CONFIG_ZISOFS_FS=y 39.940 +# CONFIG_UDF_FS is not set 39.941 + 39.942 +# 39.943 +# DOS/FAT/NT Filesystems 39.944 +# 39.945 +CONFIG_FAT_FS=m 39.946 +CONFIG_MSDOS_FS=m 39.947 +CONFIG_VFAT_FS=m 39.948 +CONFIG_FAT_DEFAULT_CODEPAGE=437 39.949 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 39.950 +# CONFIG_NTFS_FS is not set 39.951 + 39.952 +# 39.953 +# Pseudo filesystems 39.954 +# 39.955 +CONFIG_PROC_FS=y 39.956 +CONFIG_PROC_KCORE=y 39.957 +CONFIG_SYSFS=y 39.958 +# CONFIG_DEVFS_FS is not set 39.959 +# CONFIG_DEVPTS_FS_XATTR is not set 39.960 +CONFIG_TMPFS=y 39.961 +# CONFIG_TMPFS_XATTR is not set 39.962 +# CONFIG_HUGETLBFS is not set 39.963 +# CONFIG_HUGETLB_PAGE is not set 39.964 +CONFIG_RAMFS=y 39.965 + 39.966 +# 39.967 +# Miscellaneous filesystems 39.968 +# 39.969 +# CONFIG_ADFS_FS is not set 39.970 +# CONFIG_AFFS_FS is not set 39.971 +# CONFIG_HFS_FS is not set 39.972 +# CONFIG_HFSPLUS_FS is not set 39.973 +# CONFIG_BEFS_FS is not set 39.974 +# CONFIG_BFS_FS is not set 39.975 +# CONFIG_EFS_FS is not set 39.976 +# CONFIG_CRAMFS is not set 39.977 +# CONFIG_VXFS_FS is not set 39.978 +# CONFIG_HPFS_FS is not set 39.979 +# CONFIG_QNX4FS_FS is not set 39.980 +# CONFIG_SYSV_FS is not set 39.981 +# CONFIG_UFS_FS is not set 39.982 + 39.983 +# 39.984 +# Network File Systems 39.985 +# 39.986 +CONFIG_NFS_FS=y 39.987 +CONFIG_NFS_V3=y 39.988 +# CONFIG_NFS_V4 is not set 39.989 +# CONFIG_NFS_DIRECTIO is not set 39.990 +CONFIG_NFSD=m 39.991 +CONFIG_NFSD_V3=y 39.992 +# CONFIG_NFSD_V4 is not set 39.993 +CONFIG_NFSD_TCP=y 39.994 +CONFIG_ROOT_NFS=y 39.995 +CONFIG_LOCKD=y 39.996 +CONFIG_LOCKD_V4=y 39.997 +CONFIG_EXPORTFS=m 39.998 +CONFIG_SUNRPC=y 39.999 +# CONFIG_RPCSEC_GSS_KRB5 is not set 39.1000 +# CONFIG_RPCSEC_GSS_SPKM3 is not set 39.1001 +# CONFIG_SMB_FS is not set 39.1002 +# CONFIG_CIFS is not set 39.1003 +# CONFIG_NCP_FS is not set 39.1004 +# CONFIG_CODA_FS is not set 39.1005 +# CONFIG_AFS_FS is not set 39.1006 + 39.1007 +# 39.1008 +# Partition Types 39.1009 +# 39.1010 +# CONFIG_PARTITION_ADVANCED is not set 39.1011 +CONFIG_MSDOS_PARTITION=y 39.1012 + 39.1013 +# 39.1014 +# Native Language Support 39.1015 +# 39.1016 +CONFIG_NLS=y 39.1017 +CONFIG_NLS_DEFAULT="iso8859-1" 39.1018 +CONFIG_NLS_CODEPAGE_437=y 39.1019 +# CONFIG_NLS_CODEPAGE_737 is not set 39.1020 +# CONFIG_NLS_CODEPAGE_775 is not set 39.1021 +# CONFIG_NLS_CODEPAGE_850 is not set 39.1022 +# CONFIG_NLS_CODEPAGE_852 is not set 39.1023 +# CONFIG_NLS_CODEPAGE_855 is not set 39.1024 +# CONFIG_NLS_CODEPAGE_857 is not set 39.1025 +# CONFIG_NLS_CODEPAGE_860 is not set 39.1026 +# CONFIG_NLS_CODEPAGE_861 is not set 39.1027 +# CONFIG_NLS_CODEPAGE_862 is not set 39.1028 +# CONFIG_NLS_CODEPAGE_863 is not set 39.1029 +# CONFIG_NLS_CODEPAGE_864 is not set 39.1030 +# CONFIG_NLS_CODEPAGE_865 is not set 39.1031 +# CONFIG_NLS_CODEPAGE_866 is not set 39.1032 +# CONFIG_NLS_CODEPAGE_869 is not set 39.1033 +# CONFIG_NLS_CODEPAGE_936 is not set 39.1034 +# CONFIG_NLS_CODEPAGE_950 is not set 39.1035 +# CONFIG_NLS_CODEPAGE_932 is not set 39.1036 +# CONFIG_NLS_CODEPAGE_949 is not set 39.1037 +# CONFIG_NLS_CODEPAGE_874 is not set 39.1038 +# CONFIG_NLS_ISO8859_8 is not set 39.1039 +# CONFIG_NLS_CODEPAGE_1250 is not set 39.1040 +# CONFIG_NLS_CODEPAGE_1251 is not set 39.1041 +# CONFIG_NLS_ASCII is not set 39.1042 +CONFIG_NLS_ISO8859_1=y 39.1043 +# CONFIG_NLS_ISO8859_2 is not set 39.1044 +# CONFIG_NLS_ISO8859_3 is not set 39.1045 +# CONFIG_NLS_ISO8859_4 is not set 39.1046 +# CONFIG_NLS_ISO8859_5 is not set 39.1047 +# CONFIG_NLS_ISO8859_6 is not set 39.1048 +# CONFIG_NLS_ISO8859_7 is not set 39.1049 +# CONFIG_NLS_ISO8859_9 is not set 39.1050 +# CONFIG_NLS_ISO8859_13 is not set 39.1051 +# CONFIG_NLS_ISO8859_14 is not set 39.1052 +# CONFIG_NLS_ISO8859_15 is not set 39.1053 +# CONFIG_NLS_KOI8_R is not set 39.1054 +# CONFIG_NLS_KOI8_U is not set 39.1055 +# CONFIG_NLS_UTF8 is not set 39.1056 + 39.1057 +# 39.1058 +# Security options 39.1059 +# 39.1060 +# CONFIG_KEYS is not set 39.1061 +# CONFIG_SECURITY is not set 39.1062 + 39.1063 +# 39.1064 +# Cryptographic options 39.1065 +# 39.1066 +CONFIG_CRYPTO=y 39.1067 +CONFIG_CRYPTO_HMAC=y 39.1068 +# CONFIG_CRYPTO_NULL is not set 39.1069 +# CONFIG_CRYPTO_MD4 is not set 39.1070 +CONFIG_CRYPTO_MD5=m 39.1071 +CONFIG_CRYPTO_SHA1=m 39.1072 +# CONFIG_CRYPTO_SHA256 is not set 39.1073 +# CONFIG_CRYPTO_SHA512 is not set 39.1074 +# CONFIG_CRYPTO_WP512 is not set 39.1075 +CONFIG_CRYPTO_DES=m 39.1076 +# CONFIG_CRYPTO_BLOWFISH is not set 39.1077 +# CONFIG_CRYPTO_TWOFISH is not set 39.1078 +# CONFIG_CRYPTO_SERPENT is not set 39.1079 +# CONFIG_CRYPTO_AES_586 is not set 39.1080 +# CONFIG_CRYPTO_CAST5 is not set 39.1081 +# CONFIG_CRYPTO_CAST6 is not set 39.1082 +# CONFIG_CRYPTO_TEA is not set 39.1083 +# CONFIG_CRYPTO_ARC4 is not set 39.1084 +# CONFIG_CRYPTO_KHAZAD is not set 39.1085 +# CONFIG_CRYPTO_ANUBIS is not set 39.1086 +# CONFIG_CRYPTO_DEFLATE is not set 39.1087 +# CONFIG_CRYPTO_MICHAEL_MIC is not set 39.1088 +CONFIG_CRYPTO_CRC32C=m 39.1089 +# CONFIG_CRYPTO_TEST is not set 39.1090 + 39.1091 +# 39.1092 +# Hardware crypto devices 39.1093 +# 39.1094 +# CONFIG_CRYPTO_DEV_PADLOCK is not set 39.1095 + 39.1096 +# 39.1097 +# Library routines 39.1098 +# 39.1099 +# CONFIG_CRC_CCITT is not set 39.1100 +CONFIG_CRC32=y 39.1101 +CONFIG_LIBCRC32C=y 39.1102 +CONFIG_ZLIB_INFLATE=y
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 40.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 Mon Apr 04 16:13:17 2005 +0000 40.3 @@ -0,0 +1,703 @@ 40.4 +# 40.5 +# Automatically generated make config: don't edit 40.6 +# Linux kernel version: 2.6.10-xen0 40.7 +# Tue Mar 15 10:39:50 2005 40.8 +# 40.9 +CONFIG_XEN=y 40.10 +CONFIG_ARCH_XEN=y 40.11 +CONFIG_NO_IDLE_HZ=y 40.12 + 40.13 +# 40.14 +# XEN 40.15 +# 40.16 +CONFIG_XEN_PRIVILEGED_GUEST=y 40.17 +CONFIG_XEN_PHYSDEV_ACCESS=y 40.18 +CONFIG_XEN_BLKDEV_BACKEND=y 40.19 +# CONFIG_XEN_BLKDEV_TAP_BE is not set 40.20 +CONFIG_XEN_NETDEV_BACKEND=y 40.21 +CONFIG_XEN_BLKDEV_FRONTEND=y 40.22 +CONFIG_XEN_NETDEV_FRONTEND=y 40.23 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set 40.24 +# CONFIG_XEN_BLKDEV_TAP is not set 40.25 +# CONFIG_XEN_WRITABLE_PAGETABLES=y 40.26 +CONFIG_XEN_SCRUB_PAGES=y 40.27 +# CONFIG_XEN_X86 is not set 40.28 +CONFIG_XEN_X86_64=y 40.29 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y 40.30 + 40.31 +# 40.32 +# Code maturity level options 40.33 +# 40.34 +# CONFIG_EXPERIMENTAL is not set 40.35 +CONFIG_CLEAN_COMPILE=y 40.36 +CONFIG_BROKEN_ON_SMP=y 40.37 + 40.38 +# 40.39 +# General setup 40.40 +# 40.41 +CONFIG_LOCALVERSION="" 40.42 +# CONFIG_SWAP is not set 40.43 +# CONFIG_SYSVIPC is not set 40.44 +# CONFIG_BSD_PROCESS_ACCT is not set 40.45 +# CONFIG_SYSCTL is not set 40.46 +# CONFIG_AUDIT is not set 40.47 +CONFIG_LOG_BUF_SHIFT=14 40.48 +# CONFIG_HOTPLUG is not set 40.49 +CONFIG_KOBJECT_UEVENT=y 40.50 +# CONFIG_IKCONFIG is not set 40.51 +# CONFIG_EMBEDDED is not set 40.52 +CONFIG_KALLSYMS=y 40.53 +CONFIG_KALLSYMS_EXTRA_PASS=y 40.54 +CONFIG_FUTEX=y 40.55 +CONFIG_EPOLL=y 40.56 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 40.57 +CONFIG_SHMEM=y 40.58 +CONFIG_CC_ALIGN_FUNCTIONS=0 40.59 +CONFIG_CC_ALIGN_LABELS=0 40.60 +CONFIG_CC_ALIGN_LOOPS=0 40.61 +CONFIG_CC_ALIGN_JUMPS=0 40.62 +# CONFIG_TINY_SHMEM is not set 40.63 + 40.64 +# 40.65 +# Loadable module support 40.66 +# 40.67 +CONFIG_MODULES=y 40.68 +CONFIG_MODULE_UNLOAD=y 40.69 +CONFIG_OBSOLETE_MODPARM=y 40.70 +# CONFIG_MODULE_SRCVERSION_ALL is not set 40.71 +CONFIG_KMOD=y 40.72 +CONFIG_XENARCH="x86_64" 40.73 +CONFIG_MMU=y 40.74 +CONFIG_GENERIC_ISA_DMA=y 40.75 +CONFIG_GENERIC_IOMAP=y 40.76 +# CONFIG_MK8 is not set 40.77 +CONFIG_X86_CMPXCHG=y 40.78 +CONFIG_X86_L1_CACHE_SHIFT=7 40.79 +CONFIG_RWSEM_GENERIC_SPINLOCK=y 40.80 +CONFIG_X86_GOOD_APIC=y 40.81 +# CONFIG_HPET_TIMER is not set 40.82 +# CONFIG_SMP is not set 40.83 +# CONFIG_PREEMPT is not set 40.84 +# CONFIG_MICROCODE is not set 40.85 +# CONFIG_X86_CPUID is not set 40.86 +# CONFIG_NUMA is not set 40.87 +# CONFIG_MTRR is not set 40.88 +CONFIG_PCI=y 40.89 +CONFIG_PCI_DIRECT=y 40.90 +CONFIG_EARLY_PRINTK=y 40.91 +CONFIG_GENERIC_HARDIRQS=y 40.92 +CONFIG_GENERIC_IRQ_PROBE=y 40.93 + 40.94 +# 40.95 +# X86_64 processor configuration 40.96 +# 40.97 +CONFIG_X86_64=y 40.98 +CONFIG_X86=y 40.99 +CONFIG_64BIT=y 40.100 + 40.101 +# 40.102 +# Processor type and features 40.103 +# 40.104 +# CONFIG_MPSC is not set 40.105 +CONFIG_GENERIC_CPU=y 40.106 +CONFIG_X86_L1_CACHE_BYTES=128 40.107 +# CONFIG_X86_TSC is not set 40.108 +# CONFIG_X86_MSR is not set 40.109 +# CONFIG_GART_IOMMU is not set 40.110 +CONFIG_DUMMY_IOMMU=y 40.111 +# CONFIG_X86_MCE is not set 40.112 + 40.113 +# 40.114 +# Power management options 40.115 +# 40.116 +# CONFIG_PM is not set 40.117 + 40.118 +# 40.119 +# ACPI (Advanced Configuration and Power Interface) Support 40.120 +# 40.121 +# CONFIG_ACPI is not set 40.122 +# CONFIG_ACPI_BLACKLIST_YEAR=0 40.123 + 40.124 +# 40.125 +# CPU Frequency scaling 40.126 +# 40.127 +# CONFIG_CPU_FREQ is not set 40.128 + 40.129 +# 40.130 +# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 40.131 +# 40.132 +CONFIG_PCI=y 40.133 +CONFIG_PCI_DIRECT=y 40.134 +CONFIG_PCI_LEGACY_PROC=y 40.135 +# CONFIG_PCI_NAMES is not set 40.136 +# CONFIG_PCI_MMCONFIG is not set 40.137 + 40.138 +# 40.139 +# PCCARD (PCMCIA/CardBus) support 40.140 +# 40.141 +# CONFIG_PCCARD is not set 40.142 + 40.143 +# 40.144 +# Executable file formats / Emulations 40.145 +# 40.146 +# CONFIG_IA32_EMULATION is not set 40.147 + 40.148 +# 40.149 +# Executable file formats 40.150 +# 40.151 +CONFIG_BINFMT_ELF=y 40.152 +CONFIG_BINFMT_MISC=y 40.153 + 40.154 +# 40.155 +# Device Drivers 40.156 +# 40.157 + 40.158 +# 40.159 +# Generic Driver Options 40.160 +# 40.161 +CONFIG_STANDALONE=y 40.162 +# CONFIG_PREVENT_FIRMWARE_BUILD is not set 40.163 +# CONFIG_FW_LOADER is not set 40.164 + 40.165 +# 40.166 +# Memory Technology Devices (MTD) 40.167 +# 40.168 +# CONFIG_MTD is not set 40.169 + 40.170 +# 40.171 +# Parallel port support 40.172 +# 40.173 +# CONFIG_PARPORT is not set 40.174 + 40.175 +# 40.176 +# Plug and Play support 40.177 +# 40.178 + 40.179 +# 40.180 +# Block devices 40.181 +# 40.182 +CONFIG_BLK_DEV_FD=y 40.183 +# CONFIG_BLK_CPQ_DA is not set 40.184 +# CONFIG_BLK_CPQ_CISS_DA is not set 40.185 +# CONFIG_BLK_DEV_DAC960 is not set 40.186 +CONFIG_BLK_DEV_LOOP=y 40.187 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set 40.188 +# CONFIG_BLK_DEV_NBD is not set 40.189 +# CONFIG_BLK_DEV_SX8 is not set 40.190 +CONFIG_BLK_DEV_RAM=y 40.191 +CONFIG_BLK_DEV_RAM_COUNT=16 40.192 +CONFIG_BLK_DEV_RAM_SIZE=16384 40.193 +CONFIG_BLK_DEV_INITRD=y 40.194 +CONFIG_INITRAMFS_SOURCE="" 40.195 +# CONFIG_LBD is not set 40.196 +# CONFIG_CDROM_PKTCDVD is not set 40.197 + 40.198 +# 40.199 +# IO Schedulers 40.200 +# 40.201 +CONFIG_IOSCHED_NOOP=y 40.202 +CONFIG_IOSCHED_AS=y 40.203 +CONFIG_IOSCHED_DEADLINE=y 40.204 +CONFIG_IOSCHED_CFQ=y 40.205 +# CONFIG_ATA_OVER_ETH is not set 40.206 + 40.207 +# 40.208 +# ATA/ATAPI/MFM/RLL support 40.209 +# 40.210 +# CONFIG_IDE is not set 40.211 + 40.212 +# 40.213 +# SCSI device support 40.214 +# 40.215 +CONFIG_SCSI=y 40.216 +CONFIG_SCSI_PROC_FS=y 40.217 + 40.218 +# 40.219 +# SCSI support type (disk, tape, CD-ROM) 40.220 +# 40.221 +CONFIG_BLK_DEV_SD=y 40.222 +CONFIG_CHR_DEV_ST=y 40.223 +CONFIG_CHR_DEV_OSST=y 40.224 +CONFIG_BLK_DEV_SR=y 40.225 +CONFIG_BLK_DEV_SR_VENDOR=y 40.226 +CONFIG_CHR_DEV_SG=y 40.227 + 40.228 +# 40.229 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 40.230 +# 40.231 +# CONFIG_SCSI_MULTI_LUN is not set 40.232 +CONFIG_SCSI_CONSTANTS=y 40.233 +CONFIG_SCSI_LOGGING=y 40.234 + 40.235 +# 40.236 +# SCSI Transport Attributes 40.237 +# 40.238 +# CONFIG_SCSI_SPI_ATTRS is not set 40.239 +# CONFIG_SCSI_FC_ATTRS is not set 40.240 +# CONFIG_SCSI_ISCSI_ATTRS is not set 40.241 + 40.242 +# 40.243 +# SCSI low-level drivers 40.244 +# 40.245 +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 40.246 +# CONFIG_SCSI_3W_9XXX is not set 40.247 +# CONFIG_SCSI_ACARD is not set 40.248 +# CONFIG_SCSI_AACRAID is not set 40.249 +# CONFIG_SCSI_AIC7XXX is not set 40.250 +# CONFIG_SCSI_AIC7XXX_OLD is not set 40.251 +# CONFIG_SCSI_AIC79XX is not set 40.252 +# CONFIG_MEGARAID_NEWGEN is not set 40.253 +# CONFIG_MEGARAID_LEGACY is not set 40.254 +CONFIG_SCSI_SATA=y 40.255 +# CONFIG_SCSI_SATA_AHCI is not set 40.256 +# CONFIG_SCSI_SATA_SVW is not set 40.257 +CONFIG_SCSI_ATA_PIIX=y 40.258 +# CONFIG_SCSI_SATA_NV is not set 40.259 +CONFIG_SCSI_SATA_PROMISE=y 40.260 +# CONFIG_SCSI_SATA_QSTOR is not set 40.261 +CONFIG_SCSI_SATA_SX4=y 40.262 +CONFIG_SCSI_SATA_SIL=y 40.263 +# CONFIG_SCSI_SATA_SIS is not set 40.264 +# CONFIG_SCSI_SATA_ULI is not set 40.265 +# CONFIG_SCSI_SATA_VIA is not set 40.266 +# CONFIG_SCSI_SATA_VITESSE is not set 40.267 +CONFIG_SCSI_BUSLOGIC=y 40.268 +# CONFIG_SCSI_OMIT_FLASHPOINT is not set 40.269 +# CONFIG_SCSI_CPQFCTS is not set 40.270 +# CONFIG_SCSI_DMX3191D is not set 40.271 +# CONFIG_SCSI_DTC3280 is not set 40.272 +# CONFIG_SCSI_EATA is not set 40.273 +# CONFIG_SCSI_EATA_PIO is not set 40.274 +# CONFIG_SCSI_FUTURE_DOMAIN is not set 40.275 +# CONFIG_SCSI_GDTH is not set 40.276 +# CONFIG_SCSI_GENERIC_NCR5380 is not set 40.277 +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set 40.278 +# CONFIG_SCSI_IPS is not set 40.279 +# CONFIG_SCSI_INITIO is not set 40.280 +# CONFIG_SCSI_INIA100 is not set 40.281 +# CONFIG_SCSI_NCR53C406A is not set 40.282 +# CONFIG_SCSI_SYM53C8XX_2 is not set 40.283 +# CONFIG_SCSI_IPR is not set 40.284 +# CONFIG_SCSI_PAS16 is not set 40.285 +# CONFIG_SCSI_PCI2000 is not set 40.286 +# CONFIG_SCSI_PCI2220I is not set 40.287 +# CONFIG_SCSI_PSI240I is not set 40.288 +# CONFIG_SCSI_QLOGIC_FAS is not set 40.289 +# CONFIG_SCSI_QLOGIC_ISP is not set 40.290 +# CONFIG_SCSI_QLOGIC_FC is not set 40.291 +# CONFIG_SCSI_QLOGIC_1280 is not set 40.292 +CONFIG_SCSI_QLA2XXX=y 40.293 +# CONFIG_SCSI_QLA21XX is not set 40.294 +# CONFIG_SCSI_QLA22XX is not set 40.295 +# CONFIG_SCSI_QLA2300 is not set 40.296 +# CONFIG_SCSI_QLA2322 is not set 40.297 +# CONFIG_SCSI_QLA6312 is not set 40.298 +# CONFIG_SCSI_SEAGATE is not set 40.299 +# CONFIG_SCSI_SYM53C416 is not set 40.300 +# CONFIG_SCSI_DC395x is not set 40.301 +# CONFIG_SCSI_DC390T is not set 40.302 +# CONFIG_SCSI_T128 is not set 40.303 +# CONFIG_SCSI_U14_34F is not set 40.304 +# CONFIG_SCSI_ULTRASTOR is not set 40.305 +# CONFIG_SCSI_NSP32 is not set 40.306 +# CONFIG_SCSI_DEBUG is not set 40.307 + 40.308 +# 40.309 +# Multi-device support (RAID and LVM) 40.310 +# 40.311 +# CONFIG_MD is not set 40.312 + 40.313 +# 40.314 +# Fusion MPT device support 40.315 +# 40.316 +# CONFIG_FUSION is not set 40.317 + 40.318 +# 40.319 +# IEEE 1394 (FireWire) support 40.320 +# 40.321 +# CONFIG_IEEE1394 is not set 40.322 + 40.323 +# 40.324 +# I2O device support 40.325 +# 40.326 +# CONFIG_I2O is not set 40.327 + 40.328 +# 40.329 +# Networking support 40.330 +# 40.331 +CONFIG_NET=y 40.332 + 40.333 +# 40.334 +# Networking options 40.335 +# 40.336 +# CONFIG_PACKET is not set 40.337 +# CONFIG_NETLINK_DEV is not set 40.338 +# CONFIG_UNIX is not set 40.339 +# CONFIG_NET_KEY is not set 40.340 +CONFIG_INET=y 40.341 +# CONFIG_IP_MULTICAST is not set 40.342 +# CONFIG_IP_ADVANCED_ROUTER is not set 40.343 +# CONFIG_IP_PNP is not set 40.344 +# CONFIG_NET_IPIP is not set 40.345 +# CONFIG_NET_IPGRE is not set 40.346 +# CONFIG_SYN_COOKIES is not set 40.347 +# CONFIG_INET_AH is not set 40.348 +# CONFIG_INET_ESP is not set 40.349 +# CONFIG_INET_IPCOMP is not set 40.350 +# CONFIG_INET_TUNNEL is not set 40.351 +CONFIG_IP_TCPDIAG=y 40.352 +# CONFIG_IP_TCPDIAG_IPV6 is not set 40.353 +# CONFIG_NETFILTER is not set 40.354 +# CONFIG_BRIDGE is not set 40.355 +# CONFIG_VLAN_8021Q is not set 40.356 +# CONFIG_DECNET is not set 40.357 +# CONFIG_LLC2 is not set 40.358 +# CONFIG_IPX is not set 40.359 +# CONFIG_ATALK is not set 40.360 + 40.361 +# 40.362 +# QoS and/or fair queueing 40.363 +# 40.364 +# CONFIG_NET_SCHED is not set 40.365 +# CONFIG_NET_CLS_ROUTE is not set 40.366 + 40.367 +# 40.368 +# Network testing 40.369 +# 40.370 +# CONFIG_NET_PKTGEN is not set 40.371 +# CONFIG_NETPOLL is not set 40.372 +# CONFIG_NET_POLL_CONTROLLER is not set 40.373 +# CONFIG_HAMRADIO is not set 40.374 +# CONFIG_IRDA is not set 40.375 +# CONFIG_BT is not set 40.376 +# CONFIG_NETDEVICES is not set 40.377 + 40.378 +# 40.379 +# ISDN subsystem 40.380 +# 40.381 +# CONFIG_ISDN is not set 40.382 + 40.383 +# 40.384 +# Telephony Support 40.385 +# 40.386 +# CONFIG_PHONE is not set 40.387 + 40.388 +# 40.389 +# Input device support 40.390 +# 40.391 +CONFIG_INPUT=y 40.392 + 40.393 +# 40.394 +# Userland interfaces 40.395 +# 40.396 +CONFIG_INPUT_MOUSEDEV=y 40.397 +CONFIG_INPUT_MOUSEDEV_PSAUX=y 40.398 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 40.399 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 40.400 +# CONFIG_INPUT_JOYDEV is not set 40.401 +# CONFIG_INPUT_TSDEV is not set 40.402 +# CONFIG_INPUT_EVDEV is not set 40.403 +# CONFIG_INPUT_EVBUG is not set 40.404 + 40.405 +# 40.406 +# Input I/O drivers 40.407 +# 40.408 +# CONFIG_GAMEPORT is not set 40.409 +CONFIG_SOUND_GAMEPORT=y 40.410 +CONFIG_SERIO=y 40.411 +CONFIG_SERIO_I8042=y 40.412 +CONFIG_SERIO_SERPORT=y 40.413 +# CONFIG_SERIO_CT82C710 is not set 40.414 +# CONFIG_SERIO_PCIPS2 is not set 40.415 +# CONFIG_SERIO_RAW is not set 40.416 + 40.417 +# 40.418 +# Input Device Drivers 40.419 +# 40.420 +CONFIG_INPUT_KEYBOARD=y 40.421 +CONFIG_KEYBOARD_ATKBD=y 40.422 +# CONFIG_KEYBOARD_SUNKBD is not set 40.423 +# CONFIG_KEYBOARD_LKKBD is not set 40.424 +# CONFIG_KEYBOARD_XTKBD is not set 40.425 +# CONFIG_KEYBOARD_NEWTON is not set 40.426 +CONFIG_INPUT_MOUSE=y 40.427 +CONFIG_MOUSE_PS2=y 40.428 +# CONFIG_MOUSE_SERIAL is not set 40.429 +# CONFIG_MOUSE_VSXXXAA is not set 40.430 +# CONFIG_INPUT_JOYSTICK is not set 40.431 +# CONFIG_INPUT_TOUCHSCREEN is not set 40.432 +# CONFIG_INPUT_MISC is not set 40.433 + 40.434 +# 40.435 +# Character devices 40.436 +# 40.437 +CONFIG_VT=y 40.438 +CONFIG_VT_CONSOLE=y 40.439 +CONFIG_HW_CONSOLE=y 40.440 +# CONFIG_SERIAL_NONSTANDARD is not set 40.441 + 40.442 +# 40.443 +# Serial drivers 40.444 +# 40.445 +# CONFIG_SERIAL_8250 is not set 40.446 + 40.447 +# 40.448 +# Non-8250 serial port support 40.449 +# 40.450 +CONFIG_UNIX98_PTYS=y 40.451 +CONFIG_LEGACY_PTYS=y 40.452 +CONFIG_LEGACY_PTY_COUNT=256 40.453 + 40.454 +# 40.455 +# IPMI 40.456 +# 40.457 +# CONFIG_IPMI_HANDLER is not set 40.458 + 40.459 +# 40.460 +# Watchdog Cards 40.461 +# 40.462 +# CONFIG_WATCHDOG is not set 40.463 +# CONFIG_HW_RANDOM is not set 40.464 +# CONFIG_NVRAM is not set 40.465 +# CONFIG_RTC is not set 40.466 +# CONFIG_GEN_RTC is not set 40.467 +# CONFIG_DTLK is not set 40.468 +# CONFIG_R3964 is not set 40.469 +# CONFIG_APPLICOM is not set 40.470 + 40.471 +# 40.472 +# Ftape, the floppy tape device driver 40.473 +# 40.474 +# CONFIG_FTAPE is not set 40.475 +# CONFIG_AGP is not set 40.476 +# CONFIG_DRM is not set 40.477 +# CONFIG_MWAVE is not set 40.478 +# CONFIG_RAW_DRIVER is not set 40.479 +# CONFIG_HANGCHECK_TIMER is not set 40.480 + 40.481 +# 40.482 +# I2C support 40.483 +# 40.484 +# CONFIG_I2C is not set 40.485 + 40.486 +# 40.487 +# Dallas's 1-wire bus 40.488 +# 40.489 +# CONFIG_W1 is not set 40.490 + 40.491 +# 40.492 +# Misc devices 40.493 +# 40.494 + 40.495 +# 40.496 +# Multimedia devices 40.497 +# 40.498 +# CONFIG_VIDEO_DEV is not set 40.499 + 40.500 +# 40.501 +# Digital Video Broadcasting Devices 40.502 +# 40.503 +# CONFIG_DVB is not set 40.504 + 40.505 +# 40.506 +# Graphics support 40.507 +# 40.508 +# CONFIG_FB is not set 40.509 +# CONFIG_VIDEO_SELECT is not set 40.510 + 40.511 +# 40.512 +# Console display driver support 40.513 +# 40.514 +CONFIG_VGA_CONSOLE=y 40.515 +CONFIG_DUMMY_CONSOLE=y 40.516 + 40.517 +# 40.518 +# Sound 40.519 +# 40.520 +# CONFIG_SOUND is not set 40.521 + 40.522 +# 40.523 +# USB support 40.524 +# 40.525 +# CONFIG_USB is not set 40.526 +CONFIG_USB_ARCH_HAS_HCD=y 40.527 +CONFIG_USB_ARCH_HAS_OHCI=y 40.528 + 40.529 +# 40.530 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 40.531 +# 40.532 + 40.533 +# 40.534 +# USB Gadget Support 40.535 +# 40.536 +# CONFIG_USB_GADGET is not set 40.537 + 40.538 +# 40.539 +# File systems 40.540 +# 40.541 +CONFIG_EXT2_FS=y 40.542 +CONFIG_EXT2_FS_XATTR=y 40.543 +# CONFIG_EXT2_FS_POSIX_ACL is not set 40.544 +# CONFIG_EXT2_FS_SECURITY is not set 40.545 +CONFIG_EXT3_FS=y 40.546 +CONFIG_EXT3_FS_XATTR=y 40.547 +# CONFIG_EXT3_FS_POSIX_ACL is not set 40.548 +# CONFIG_EXT3_FS_SECURITY is not set 40.549 +CONFIG_JBD=y 40.550 +# CONFIG_JBD_DEBUG is not set 40.551 +CONFIG_FS_MBCACHE=y 40.552 +# CONFIG_REISERFS_FS is not set 40.553 +# CONFIG_JFS_FS is not set 40.554 +# CONFIG_XFS_FS is not set 40.555 +# CONFIG_MINIX_FS is not set 40.556 +# CONFIG_ROMFS_FS is not set 40.557 +# CONFIG_QUOTA is not set 40.558 +CONFIG_DNOTIFY=y 40.559 +# CONFIG_AUTOFS_FS is not set 40.560 +# CONFIG_AUTOFS4_FS is not set 40.561 + 40.562 +# 40.563 +# CD-ROM/DVD Filesystems 40.564 +# 40.565 +CONFIG_ISO9660_FS=y 40.566 +CONFIG_JOLIET=y 40.567 +CONFIG_ZISOFS=y 40.568 +CONFIG_ZISOFS_FS=y 40.569 +CONFIG_UDF_FS=y 40.570 +CONFIG_UDF_NLS=y 40.571 + 40.572 +# 40.573 +# DOS/FAT/NT Filesystems 40.574 +# 40.575 +CONFIG_FAT_FS=y 40.576 +CONFIG_MSDOS_FS=y 40.577 +CONFIG_VFAT_FS=y 40.578 +CONFIG_FAT_DEFAULT_CODEPAGE=437 40.579 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" 40.580 +# CONFIG_NTFS_FS is not set 40.581 + 40.582 +# 40.583 +# Pseudo filesystems 40.584 +# 40.585 +CONFIG_PROC_FS=y 40.586 +CONFIG_PROC_KCORE=y 40.587 +CONFIG_SYSFS=y 40.588 +CONFIG_DEVPTS_FS_XATTR=y 40.589 +CONFIG_DEVPTS_FS_SECURITY=y 40.590 +CONFIG_TMPFS=y 40.591 +CONFIG_TMPFS_XATTR=y 40.592 +CONFIG_TMPFS_SECURITY=y 40.593 +# CONFIG_HUGETLBFS is not set 40.594 +# CONFIG_HUGETLB_PAGE is not set 40.595 +CONFIG_RAMFS=y 40.596 + 40.597 +# 40.598 +# Miscellaneous filesystems 40.599 +# 40.600 +# CONFIG_HFSPLUS_FS is not set 40.601 +# CONFIG_CRAMFS is not set 40.602 +# CONFIG_VXFS_FS is not set 40.603 +# CONFIG_HPFS_FS is not set 40.604 +# CONFIG_QNX4FS_FS is not set 40.605 +# CONFIG_SYSV_FS is not set 40.606 +# CONFIG_UFS_FS is not set 40.607 + 40.608 +# 40.609 +# Network File Systems 40.610 +# 40.611 +# CONFIG_NFS_FS is not set 40.612 +# CONFIG_NFSD is not set 40.613 +# CONFIG_EXPORTFS is not set 40.614 +# CONFIG_SMB_FS is not set 40.615 +# CONFIG_CIFS is not set 40.616 +# CONFIG_NCP_FS is not set 40.617 +# CONFIG_CODA_FS is not set 40.618 + 40.619 +# 40.620 +# Partition Types 40.621 +# 40.622 +CONFIG_PARTITION_ADVANCED=y 40.623 +# CONFIG_ACORN_PARTITION is not set 40.624 +# CONFIG_OSF_PARTITION is not set 40.625 +# CONFIG_AMIGA_PARTITION is not set 40.626 +# CONFIG_ATARI_PARTITION is not set 40.627 +# CONFIG_MAC_PARTITION is not set 40.628 +CONFIG_MSDOS_PARTITION=y 40.629 +CONFIG_BSD_DISKLABEL=y 40.630 +# CONFIG_MINIX_SUBPARTITION is not set 40.631 +# CONFIG_SOLARIS_X86_PARTITION is not set 40.632 +# CONFIG_UNIXWARE_DISKLABEL is not set 40.633 +# CONFIG_LDM_PARTITION is not set 40.634 +# CONFIG_SGI_PARTITION is not set 40.635 +# CONFIG_ULTRIX_PARTITION is not set 40.636 +# CONFIG_SUN_PARTITION is not set 40.637 +CONFIG_EFI_PARTITION=y 40.638 + 40.639 +# 40.640 +# Native Language Support 40.641 +# 40.642 +CONFIG_NLS=y 40.643 +CONFIG_NLS_DEFAULT="utf8" 40.644 +CONFIG_NLS_CODEPAGE_437=y 40.645 +# CONFIG_NLS_CODEPAGE_737 is not set 40.646 +# CONFIG_NLS_CODEPAGE_775 is not set 40.647 +# CONFIG_NLS_CODEPAGE_850 is not set 40.648 +# CONFIG_NLS_CODEPAGE_852 is not set 40.649 +# CONFIG_NLS_CODEPAGE_855 is not set 40.650 +# CONFIG_NLS_CODEPAGE_857 is not set 40.651 +# CONFIG_NLS_CODEPAGE_860 is not set 40.652 +# CONFIG_NLS_CODEPAGE_861 is not set 40.653 +# CONFIG_NLS_CODEPAGE_862 is not set 40.654 +# CONFIG_NLS_CODEPAGE_863 is not set 40.655 +# CONFIG_NLS_CODEPAGE_864 is not set 40.656 +# CONFIG_NLS_CODEPAGE_865 is not set 40.657 +# CONFIG_NLS_CODEPAGE_866 is not set 40.658 +# CONFIG_NLS_CODEPAGE_869 is not set 40.659 +# CONFIG_NLS_CODEPAGE_936 is not set 40.660 +# CONFIG_NLS_CODEPAGE_950 is not set 40.661 +# CONFIG_NLS_CODEPAGE_932 is not set 40.662 +# CONFIG_NLS_CODEPAGE_949 is not set 40.663 +# CONFIG_NLS_CODEPAGE_874 is not set 40.664 +# CONFIG_NLS_ISO8859_8 is not set 40.665 +# CONFIG_NLS_CODEPAGE_1250 is not set 40.666 +# CONFIG_NLS_CODEPAGE_1251 is not set 40.667 +# CONFIG_NLS_ASCII is not set 40.668 +# CONFIG_NLS_ISO8859_1 is not set 40.669 +# CONFIG_NLS_ISO8859_2 is not set 40.670 +# CONFIG_NLS_ISO8859_3 is not set 40.671 +# CONFIG_NLS_ISO8859_4 is not set 40.672 +# CONFIG_NLS_ISO8859_5 is not set 40.673 +# CONFIG_NLS_ISO8859_6 is not set 40.674 +# CONFIG_NLS_ISO8859_7 is not set 40.675 +# CONFIG_NLS_ISO8859_9 is not set 40.676 +# CONFIG_NLS_ISO8859_13 is not set 40.677 +# CONFIG_NLS_ISO8859_14 is not set 40.678 +# CONFIG_NLS_ISO8859_15 is not set 40.679 +# CONFIG_NLS_KOI8_R is not set 40.680 +# CONFIG_NLS_KOI8_U is not set 40.681 +# CONFIG_NLS_UTF8 is not set 40.682 + 40.683 +# 40.684 +# Security options 40.685 +# 40.686 +# CONFIG_KEYS is not set 40.687 +# CONFIG_SECURITY is not set 40.688 + 40.689 +# 40.690 +# Cryptographic options 40.691 +# 40.692 +# CONFIG_CRYPTO is not set 40.693 + 40.694 +# 40.695 +# Library routines 40.696 +# 40.697 +CONFIG_CRC_CCITT=y 40.698 +CONFIG_CRC32=y 40.699 +CONFIG_LIBCRC32C=y 40.700 +CONFIG_ZLIB_INFLATE=y 40.701 + 40.702 +# 40.703 +# Firmware Drivers 40.704 +# 40.705 +CONFIG_PCI_LEGACY_PROC=y 40.706 +CONFIG_PCI_NAMES=y
41.1 --- a/linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig Mon Apr 04 10:52:11 2005 +0000 41.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 41.3 @@ -1,522 +0,0 @@ 41.4 -# 41.5 -# Automatically generated make config: don't edit 41.6 -# Linux kernel version: 2.6.11-xenU 41.7 -# Fri Mar 11 01:20:28 2005 41.8 -# 41.9 -CONFIG_XEN=y 41.10 -CONFIG_ARCH_XEN=y 41.11 -CONFIG_NO_IDLE_HZ=y 41.12 - 41.13 -# 41.14 -# XEN 41.15 -# 41.16 -# CONFIG_XEN_PRIVILEGED_GUEST is not set 41.17 -# CONFIG_XEN_PHYSDEV_ACCESS is not set 41.18 -CONFIG_XEN_BLKDEV_FRONTEND=y 41.19 -CONFIG_XEN_NETDEV_FRONTEND=y 41.20 -# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set 41.21 -# CONFIG_XEN_BLKDEV_TAP is not set 41.22 -CONFIG_XEN_WRITABLE_PAGETABLES=y 41.23 -CONFIG_XEN_SCRUB_PAGES=y 41.24 -CONFIG_X86=y 41.25 -# CONFIG_X86_64 is not set 41.26 -CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y 41.27 - 41.28 -# 41.29 -# Code maturity level options 41.30 -# 41.31 -CONFIG_EXPERIMENTAL=y 41.32 -CONFIG_CLEAN_COMPILE=y 41.33 -CONFIG_BROKEN_ON_SMP=y 41.34 -CONFIG_LOCK_KERNEL=y 41.35 - 41.36 -# 41.37 -# General setup 41.38 -# 41.39 -CONFIG_LOCALVERSION="" 41.40 -CONFIG_SWAP=y 41.41 -CONFIG_SYSVIPC=y 41.42 -# CONFIG_POSIX_MQUEUE is not set 41.43 -# CONFIG_BSD_PROCESS_ACCT is not set 41.44 -CONFIG_SYSCTL=y 41.45 -# CONFIG_AUDIT is not set 41.46 -CONFIG_LOG_BUF_SHIFT=14 41.47 -CONFIG_HOTPLUG=y 41.48 -CONFIG_KOBJECT_UEVENT=y 41.49 -# CONFIG_IKCONFIG is not set 41.50 -# CONFIG_EMBEDDED is not set 41.51 -CONFIG_KALLSYMS=y 41.52 -# CONFIG_KALLSYMS_EXTRA_PASS is not set 41.53 -CONFIG_FUTEX=y 41.54 -CONFIG_EPOLL=y 41.55 -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 41.56 -CONFIG_SHMEM=y 41.57 -CONFIG_CC_ALIGN_FUNCTIONS=0 41.58 -CONFIG_CC_ALIGN_LABELS=0 41.59 -CONFIG_CC_ALIGN_LOOPS=0 41.60 -CONFIG_CC_ALIGN_JUMPS=0 41.61 -# CONFIG_TINY_SHMEM is not set 41.62 - 41.63 -# 41.64 -# Loadable module support 41.65 -# 41.66 -CONFIG_MODULES=y 41.67 -CONFIG_MODULE_UNLOAD=y 41.68 -# CONFIG_MODULE_FORCE_UNLOAD is not set 41.69 -CONFIG_OBSOLETE_MODPARM=y 41.70 -# CONFIG_MODVERSIONS is not set 41.71 -# CONFIG_MODULE_SRCVERSION_ALL is not set 41.72 -CONFIG_KMOD=y 41.73 - 41.74 -# 41.75 -# X86 Processor Configuration 41.76 -# 41.77 -CONFIG_XENARCH="i386" 41.78 -CONFIG_MMU=y 41.79 -CONFIG_UID16=y 41.80 -CONFIG_GENERIC_ISA_DMA=y 41.81 -CONFIG_GENERIC_IOMAP=y 41.82 -# CONFIG_M386 is not set 41.83 -# CONFIG_M486 is not set 41.84 -# CONFIG_M586 is not set 41.85 -# CONFIG_M586TSC is not set 41.86 -# CONFIG_M586MMX is not set 41.87 -# CONFIG_M686 is not set 41.88 -# CONFIG_MPENTIUMII is not set 41.89 -# CONFIG_MPENTIUMIII is not set 41.90 -# CONFIG_MPENTIUMM is not set 41.91 -CONFIG_MPENTIUM4=y 41.92 -# CONFIG_MK6 is not set 41.93 -# CONFIG_MK7 is not set 41.94 -# CONFIG_MK8 is not set 41.95 -# CONFIG_MCRUSOE is not set 41.96 -# CONFIG_MEFFICEON is not set 41.97 -# CONFIG_MWINCHIPC6 is not set 41.98 -# CONFIG_MWINCHIP2 is not set 41.99 -# CONFIG_MWINCHIP3D is not set 41.100 -# CONFIG_MCYRIXIII is not set 41.101 -# CONFIG_MVIAC3_2 is not set 41.102 -# CONFIG_X86_GENERIC is not set 41.103 -CONFIG_X86_CMPXCHG=y 41.104 -CONFIG_X86_XADD=y 41.105 -CONFIG_X86_L1_CACHE_SHIFT=7 41.106 -CONFIG_RWSEM_XCHGADD_ALGORITHM=y 41.107 -CONFIG_GENERIC_CALIBRATE_DELAY=y 41.108 -CONFIG_X86_WP_WORKS_OK=y 41.109 -CONFIG_X86_INVLPG=y 41.110 -CONFIG_X86_BSWAP=y 41.111 -CONFIG_X86_POPAD_OK=y 41.112 -CONFIG_X86_GOOD_APIC=y 41.113 -CONFIG_X86_INTEL_USERCOPY=y 41.114 -CONFIG_X86_USE_PPRO_CHECKSUM=y 41.115 -# CONFIG_HPET_TIMER is not set 41.116 -# CONFIG_HPET_EMULATE_RTC is not set 41.117 -# CONFIG_SMP is not set 41.118 -CONFIG_PREEMPT=y 41.119 -CONFIG_PREEMPT_BKL=y 41.120 -CONFIG_X86_CPUID=y 41.121 - 41.122 -# 41.123 -# Firmware Drivers 41.124 -# 41.125 -# CONFIG_EDD is not set 41.126 -CONFIG_NOHIGHMEM=y 41.127 -# CONFIG_HIGHMEM4G is not set 41.128 -CONFIG_HAVE_DEC_LOCK=y 41.129 -# CONFIG_REGPARM is not set 41.130 - 41.131 -# 41.132 -# Kernel hacking 41.133 -# 41.134 -# CONFIG_DEBUG_KERNEL is not set 41.135 -CONFIG_EARLY_PRINTK=y 41.136 -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 41.137 -# CONFIG_FRAME_POINTER is not set 41.138 -# CONFIG_4KSTACKS is not set 41.139 -CONFIG_GENERIC_HARDIRQS=y 41.140 -CONFIG_GENERIC_IRQ_PROBE=y 41.141 -CONFIG_X86_BIOS_REBOOT=y 41.142 -CONFIG_PC=y 41.143 - 41.144 -# 41.145 -# Executable file formats 41.146 -# 41.147 -CONFIG_BINFMT_ELF=y 41.148 -# CONFIG_BINFMT_AOUT is not set 41.149 -# CONFIG_BINFMT_MISC is not set 41.150 - 41.151 -# 41.152 -# Device Drivers 41.153 -# 41.154 - 41.155 -# 41.156 -# Generic Driver Options 41.157 -# 41.158 -CONFIG_STANDALONE=y 41.159 -CONFIG_PREVENT_FIRMWARE_BUILD=y 41.160 -# CONFIG_FW_LOADER is not set 41.161 - 41.162 -# 41.163 -# Block devices 41.164 -# 41.165 -# CONFIG_BLK_DEV_FD is not set 41.166 -# CONFIG_BLK_DEV_COW_COMMON is not set 41.167 -CONFIG_BLK_DEV_LOOP=m 41.168 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set 41.169 -CONFIG_BLK_DEV_NBD=m 41.170 -CONFIG_BLK_DEV_RAM=y 41.171 -CONFIG_BLK_DEV_RAM_COUNT=16 41.172 -CONFIG_BLK_DEV_RAM_SIZE=4096 41.173 -CONFIG_BLK_DEV_INITRD=y 41.174 -CONFIG_INITRAMFS_SOURCE="" 41.175 -# CONFIG_LBD is not set 41.176 -# CONFIG_CDROM_PKTCDVD is not set 41.177 - 41.178 -# 41.179 -# IO Schedulers 41.180 -# 41.181 -CONFIG_IOSCHED_NOOP=y 41.182 -CONFIG_IOSCHED_AS=y 41.183 -CONFIG_IOSCHED_DEADLINE=y 41.184 -CONFIG_IOSCHED_CFQ=y 41.185 -# CONFIG_ATA_OVER_ETH is not set 41.186 - 41.187 -# 41.188 -# SCSI device support 41.189 -# 41.190 -CONFIG_SCSI=m 41.191 -CONFIG_SCSI_PROC_FS=y 41.192 - 41.193 -# 41.194 -# SCSI support type (disk, tape, CD-ROM) 41.195 -# 41.196 -CONFIG_BLK_DEV_SD=m 41.197 -# CONFIG_CHR_DEV_ST is not set 41.198 -# CONFIG_CHR_DEV_OSST is not set 41.199 -# CONFIG_BLK_DEV_SR is not set 41.200 -# CONFIG_CHR_DEV_SG is not set 41.201 - 41.202 -# 41.203 -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 41.204 -# 41.205 -# CONFIG_SCSI_MULTI_LUN is not set 41.206 -# CONFIG_SCSI_CONSTANTS is not set 41.207 -# CONFIG_SCSI_LOGGING is not set 41.208 - 41.209 -# 41.210 -# SCSI Transport Attributes 41.211 -# 41.212 -# CONFIG_SCSI_SPI_ATTRS is not set 41.213 -# CONFIG_SCSI_FC_ATTRS is not set 41.214 -# CONFIG_SCSI_ISCSI_ATTRS is not set 41.215 - 41.216 -# 41.217 -# SCSI low-level drivers 41.218 -# 41.219 -# CONFIG_SCSI_SATA is not set 41.220 -# CONFIG_SCSI_DEBUG is not set 41.221 - 41.222 -# 41.223 -# Multi-device support (RAID and LVM) 41.224 -# 41.225 -# CONFIG_MD is not set 41.226 - 41.227 -# 41.228 -# Networking support 41.229 -# 41.230 -CONFIG_NET=y 41.231 - 41.232 -# 41.233 -# Networking options 41.234 -# 41.235 -CONFIG_PACKET=y 41.236 -# CONFIG_PACKET_MMAP is not set 41.237 -# CONFIG_NETLINK_DEV is not set 41.238 -CONFIG_UNIX=y 41.239 -# CONFIG_NET_KEY is not set 41.240 -CONFIG_INET=y 41.241 -# CONFIG_IP_MULTICAST is not set 41.242 -# CONFIG_IP_ADVANCED_ROUTER is not set 41.243 -CONFIG_IP_PNP=y 41.244 -# CONFIG_IP_PNP_DHCP is not set 41.245 -# CONFIG_IP_PNP_BOOTP is not set 41.246 -# CONFIG_IP_PNP_RARP is not set 41.247 -# CONFIG_NET_IPIP is not set 41.248 -# CONFIG_NET_IPGRE is not set 41.249 -# CONFIG_ARPD is not set 41.250 -# CONFIG_SYN_COOKIES is not set 41.251 -# CONFIG_INET_AH is not set 41.252 -# CONFIG_INET_ESP is not set 41.253 -# CONFIG_INET_IPCOMP is not set 41.254 -# CONFIG_INET_TUNNEL is not set 41.255 -CONFIG_IP_TCPDIAG=y 41.256 -# CONFIG_IP_TCPDIAG_IPV6 is not set 41.257 -# CONFIG_IPV6 is not set 41.258 -# CONFIG_NETFILTER is not set 41.259 - 41.260 -# 41.261 -# SCTP Configuration (EXPERIMENTAL) 41.262 -# 41.263 -# CONFIG_IP_SCTP is not set 41.264 -# CONFIG_ATM is not set 41.265 -# CONFIG_BRIDGE is not set 41.266 -# CONFIG_VLAN_8021Q is not set 41.267 -# CONFIG_DECNET is not set 41.268 -# CONFIG_LLC2 is not set 41.269 -# CONFIG_IPX is not set 41.270 -# CONFIG_ATALK is not set 41.271 -# CONFIG_X25 is not set 41.272 -# CONFIG_LAPB is not set 41.273 -# CONFIG_NET_DIVERT is not set 41.274 -# CONFIG_ECONET is not set 41.275 -# CONFIG_WAN_ROUTER is not set 41.276 - 41.277 -# 41.278 -# QoS and/or fair queueing 41.279 -# 41.280 -# CONFIG_NET_SCHED is not set 41.281 -# CONFIG_NET_CLS_ROUTE is not set 41.282 - 41.283 -# 41.284 -# Network testing 41.285 -# 41.286 -# CONFIG_NET_PKTGEN is not set 41.287 -# CONFIG_NETPOLL is not set 41.288 -# CONFIG_NET_POLL_CONTROLLER is not set 41.289 -# CONFIG_HAMRADIO is not set 41.290 -# CONFIG_IRDA is not set 41.291 -# CONFIG_BT is not set 41.292 -CONFIG_NETDEVICES=y 41.293 -# CONFIG_DUMMY is not set 41.294 -# CONFIG_BONDING is not set 41.295 -# CONFIG_EQUALIZER is not set 41.296 -# CONFIG_TUN is not set 41.297 - 41.298 -# 41.299 -# Ethernet (10 or 100Mbit) 41.300 -# 41.301 -# CONFIG_NET_ETHERNET is not set 41.302 - 41.303 -# 41.304 -# Ethernet (1000 Mbit) 41.305 -# 41.306 - 41.307 -# 41.308 -# Ethernet (10000 Mbit) 41.309 -# 41.310 - 41.311 -# 41.312 -# Token Ring devices 41.313 -# 41.314 - 41.315 -# 41.316 -# Wireless LAN (non-hamradio) 41.317 -# 41.318 -# CONFIG_NET_RADIO is not set 41.319 - 41.320 -# 41.321 -# Wan interfaces 41.322 -# 41.323 -# CONFIG_WAN is not set 41.324 -# CONFIG_PPP is not set 41.325 -# CONFIG_SLIP is not set 41.326 -# CONFIG_SHAPER is not set 41.327 -# CONFIG_NETCONSOLE is not set 41.328 -CONFIG_UNIX98_PTYS=y 41.329 - 41.330 -# 41.331 -# File systems 41.332 -# 41.333 -CONFIG_EXT2_FS=y 41.334 -# CONFIG_EXT2_FS_XATTR is not set 41.335 -CONFIG_EXT3_FS=y 41.336 -CONFIG_EXT3_FS_XATTR=y 41.337 -# CONFIG_EXT3_FS_POSIX_ACL is not set 41.338 -# CONFIG_EXT3_FS_SECURITY is not set 41.339 -CONFIG_JBD=y 41.340 -# CONFIG_JBD_DEBUG is not set 41.341 -CONFIG_FS_MBCACHE=y 41.342 -CONFIG_REISERFS_FS=y 41.343 -# CONFIG_REISERFS_CHECK is not set 41.344 -# CONFIG_REISERFS_PROC_INFO is not set 41.345 -# CONFIG_REISERFS_FS_XATTR is not set 41.346 -# CONFIG_JFS_FS is not set 41.347 - 41.348 -# 41.349 -# XFS support 41.350 -# 41.351 -# CONFIG_XFS_FS is not set 41.352 -# CONFIG_MINIX_FS is not set 41.353 -# CONFIG_ROMFS_FS is not set 41.354 -# CONFIG_QUOTA is not set 41.355 -CONFIG_DNOTIFY=y 41.356 -CONFIG_AUTOFS_FS=y 41.357 -CONFIG_AUTOFS4_FS=y 41.358 - 41.359 -# 41.360 -# CD-ROM/DVD Filesystems 41.361 -# 41.362 -CONFIG_ISO9660_FS=y 41.363 -CONFIG_JOLIET=y 41.364 -CONFIG_ZISOFS=y 41.365 -CONFIG_ZISOFS_FS=y 41.366 -# CONFIG_UDF_FS is not set 41.367 - 41.368 -# 41.369 -# DOS/FAT/NT Filesystems 41.370 -# 41.371 -CONFIG_FAT_FS=m 41.372 -CONFIG_MSDOS_FS=m 41.373 -CONFIG_VFAT_FS=m 41.374 -CONFIG_FAT_DEFAULT_CODEPAGE=437 41.375 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 41.376 -# CONFIG_NTFS_FS is not set 41.377 - 41.378 -# 41.379 -# Pseudo filesystems 41.380 -# 41.381 -CONFIG_PROC_FS=y 41.382 -CONFIG_PROC_KCORE=y 41.383 -CONFIG_SYSFS=y 41.384 -# CONFIG_DEVFS_FS is not set 41.385 -CONFIG_DEVPTS_FS_XATTR=y 41.386 -# CONFIG_DEVPTS_FS_SECURITY is not set 41.387 -CONFIG_TMPFS=y 41.388 -# CONFIG_TMPFS_XATTR is not set 41.389 -# CONFIG_HUGETLBFS is not set 41.390 -# CONFIG_HUGETLB_PAGE is not set 41.391 -CONFIG_RAMFS=y 41.392 - 41.393 -# 41.394 -# Miscellaneous filesystems 41.395 -# 41.396 -# CONFIG_ADFS_FS is not set 41.397 -# CONFIG_AFFS_FS is not set 41.398 -# CONFIG_HFS_FS is not set 41.399 -# CONFIG_HFSPLUS_FS is not set 41.400 -# CONFIG_BEFS_FS is not set 41.401 -# CONFIG_BFS_FS is not set 41.402 -# CONFIG_EFS_FS is not set 41.403 -# CONFIG_CRAMFS is not set 41.404 -# CONFIG_VXFS_FS is not set 41.405 -# CONFIG_HPFS_FS is not set 41.406 -# CONFIG_QNX4FS_FS is not set 41.407 -# CONFIG_SYSV_FS is not set 41.408 -# CONFIG_UFS_FS is not set 41.409 - 41.410 -# 41.411 -# Network File Systems 41.412 -# 41.413 -CONFIG_NFS_FS=y 41.414 -CONFIG_NFS_V3=y 41.415 -# CONFIG_NFS_V4 is not set 41.416 -# CONFIG_NFS_DIRECTIO is not set 41.417 -# CONFIG_NFSD is not set 41.418 -CONFIG_ROOT_NFS=y 41.419 -CONFIG_LOCKD=y 41.420 -CONFIG_LOCKD_V4=y 41.421 -CONFIG_SUNRPC=y 41.422 -# CONFIG_RPCSEC_GSS_KRB5 is not set 41.423 -# CONFIG_RPCSEC_GSS_SPKM3 is not set 41.424 -# CONFIG_SMB_FS is not set 41.425 -# CONFIG_CIFS is not set 41.426 -# CONFIG_NCP_FS is not set 41.427 -# CONFIG_CODA_FS is not set 41.428 -# CONFIG_AFS_FS is not set 41.429 - 41.430 -# 41.431 -# Partition Types 41.432 -# 41.433 -# CONFIG_PARTITION_ADVANCED is not set 41.434 -CONFIG_MSDOS_PARTITION=y 41.435 - 41.436 -# 41.437 -# Native Language Support 41.438 -# 41.439 -CONFIG_NLS=y 41.440 -CONFIG_NLS_DEFAULT="iso8859-1" 41.441 -CONFIG_NLS_CODEPAGE_437=y 41.442 -# CONFIG_NLS_CODEPAGE_737 is not set 41.443 -# CONFIG_NLS_CODEPAGE_775 is not set 41.444 -# CONFIG_NLS_CODEPAGE_850 is not set 41.445 -# CONFIG_NLS_CODEPAGE_852 is not set 41.446 -# CONFIG_NLS_CODEPAGE_855 is not set 41.447 -# CONFIG_NLS_CODEPAGE_857 is not set 41.448 -# CONFIG_NLS_CODEPAGE_860 is not set 41.449 -# CONFIG_NLS_CODEPAGE_861 is not set 41.450 -# CONFIG_NLS_CODEPAGE_862 is not set 41.451 -# CONFIG_NLS_CODEPAGE_863 is not set 41.452 -# CONFIG_NLS_CODEPAGE_864 is not set 41.453 -# CONFIG_NLS_CODEPAGE_865 is not set 41.454 -# CONFIG_NLS_CODEPAGE_866 is not set 41.455 -# CONFIG_NLS_CODEPAGE_869 is not set 41.456 -# CONFIG_NLS_CODEPAGE_936 is not set 41.457 -# CONFIG_NLS_CODEPAGE_950 is not set 41.458 -# CONFIG_NLS_CODEPAGE_932 is not set 41.459 -# CONFIG_NLS_CODEPAGE_949 is not set 41.460 -# CONFIG_NLS_CODEPAGE_874 is not set 41.461 -# CONFIG_NLS_ISO8859_8 is not set 41.462 -# CONFIG_NLS_CODEPAGE_1250 is not set 41.463 -# CONFIG_NLS_CODEPAGE_1251 is not set 41.464 -# CONFIG_NLS_ASCII is not set 41.465 -CONFIG_NLS_ISO8859_1=y 41.466 -# CONFIG_NLS_ISO8859_2 is not set 41.467 -# CONFIG_NLS_ISO8859_3 is not set 41.468 -# CONFIG_NLS_ISO8859_4 is not set 41.469 -# CONFIG_NLS_ISO8859_5 is not set 41.470 -# CONFIG_NLS_ISO8859_6 is not set 41.471 -# CONFIG_NLS_ISO8859_7 is not set 41.472 -# CONFIG_NLS_ISO8859_9 is not set 41.473 -# CONFIG_NLS_ISO8859_13 is not set 41.474 -# CONFIG_NLS_ISO8859_14 is not set 41.475 -# CONFIG_NLS_ISO8859_15 is not set 41.476 -# CONFIG_NLS_KOI8_R is not set 41.477 -# CONFIG_NLS_KOI8_U is not set 41.478 -# CONFIG_NLS_UTF8 is not set 41.479 - 41.480 -# 41.481 -# Security options 41.482 -# 41.483 -# CONFIG_KEYS is not set 41.484 -# CONFIG_SECURITY is not set 41.485 - 41.486 -# 41.487 -# Cryptographic options 41.488 -# 41.489 -CONFIG_CRYPTO=y 41.490 -# CONFIG_CRYPTO_HMAC is not set 41.491 -# CONFIG_CRYPTO_NULL is not set 41.492 -# CONFIG_CRYPTO_MD4 is not set 41.493 -CONFIG_CRYPTO_MD5=m 41.494 -# CONFIG_CRYPTO_SHA1 is not set 41.495 -# CONFIG_CRYPTO_SHA256 is not set 41.496 -# CONFIG_CRYPTO_SHA512 is not set 41.497 -# CONFIG_CRYPTO_WP512 is not set 41.498 -# CONFIG_CRYPTO_DES is not set 41.499 -# CONFIG_CRYPTO_BLOWFISH is not set 41.500 -# CONFIG_CRYPTO_TWOFISH is not set 41.501 -# CONFIG_CRYPTO_SERPENT is not set 41.502 -# CONFIG_CRYPTO_AES_586 is not set 41.503 -# CONFIG_CRYPTO_CAST5 is not set 41.504 -# CONFIG_CRYPTO_CAST6 is not set 41.505 -# CONFIG_CRYPTO_TEA is not set 41.506 -# CONFIG_CRYPTO_ARC4 is not set 41.507 -# CONFIG_CRYPTO_KHAZAD is not set 41.508 -# CONFIG_CRYPTO_ANUBIS is not set 41.509 -# CONFIG_CRYPTO_DEFLATE is not set 41.510 -# CONFIG_CRYPTO_MICHAEL_MIC is not set 41.511 -CONFIG_CRYPTO_CRC32C=m 41.512 -# CONFIG_CRYPTO_TEST is not set 41.513 - 41.514 -# 41.515 -# Hardware crypto devices 41.516 -# 41.517 -# CONFIG_CRYPTO_DEV_PADLOCK is not set 41.518 - 41.519 -# 41.520 -# Library routines 41.521 -# 41.522 -# CONFIG_CRC_CCITT is not set 41.523 -# CONFIG_CRC32 is not set 41.524 -CONFIG_LIBCRC32C=m 41.525 -CONFIG_ZLIB_INFLATE=y
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 42.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 Mon Apr 04 16:13:17 2005 +0000 42.3 @@ -0,0 +1,521 @@ 42.4 +# 42.5 +# Automatically generated make config: don't edit 42.6 +# Linux kernel version: 2.6.11-xenU 42.7 +# Fri Mar 11 01:20:28 2005 42.8 +# 42.9 +CONFIG_XEN=y 42.10 +CONFIG_ARCH_XEN=y 42.11 +CONFIG_NO_IDLE_HZ=y 42.12 + 42.13 +# 42.14 +# XEN 42.15 +# 42.16 +# CONFIG_XEN_PRIVILEGED_GUEST is not set 42.17 +# CONFIG_XEN_PHYSDEV_ACCESS is not set 42.18 +CONFIG_XEN_BLKDEV_FRONTEND=y 42.19 +CONFIG_XEN_NETDEV_FRONTEND=y 42.20 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set 42.21 +# CONFIG_XEN_BLKDEV_TAP is not set 42.22 +CONFIG_XEN_SCRUB_PAGES=y 42.23 +CONFIG_X86=y 42.24 +# CONFIG_X86_64 is not set 42.25 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y 42.26 + 42.27 +# 42.28 +# Code maturity level options 42.29 +# 42.30 +CONFIG_EXPERIMENTAL=y 42.31 +CONFIG_CLEAN_COMPILE=y 42.32 +CONFIG_BROKEN_ON_SMP=y 42.33 +CONFIG_LOCK_KERNEL=y 42.34 + 42.35 +# 42.36 +# General setup 42.37 +# 42.38 +CONFIG_LOCALVERSION="" 42.39 +CONFIG_SWAP=y 42.40 +CONFIG_SYSVIPC=y 42.41 +# CONFIG_POSIX_MQUEUE is not set 42.42 +# CONFIG_BSD_PROCESS_ACCT is not set 42.43 +CONFIG_SYSCTL=y 42.44 +# CONFIG_AUDIT is not set 42.45 +CONFIG_LOG_BUF_SHIFT=14 42.46 +CONFIG_HOTPLUG=y 42.47 +CONFIG_KOBJECT_UEVENT=y 42.48 +# CONFIG_IKCONFIG is not set 42.49 +# CONFIG_EMBEDDED is not set 42.50 +CONFIG_KALLSYMS=y 42.51 +# CONFIG_KALLSYMS_EXTRA_PASS is not set 42.52 +CONFIG_FUTEX=y 42.53 +CONFIG_EPOLL=y 42.54 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 42.55 +CONFIG_SHMEM=y 42.56 +CONFIG_CC_ALIGN_FUNCTIONS=0 42.57 +CONFIG_CC_ALIGN_LABELS=0 42.58 +CONFIG_CC_ALIGN_LOOPS=0 42.59 +CONFIG_CC_ALIGN_JUMPS=0 42.60 +# CONFIG_TINY_SHMEM is not set 42.61 + 42.62 +# 42.63 +# Loadable module support 42.64 +# 42.65 +CONFIG_MODULES=y 42.66 +CONFIG_MODULE_UNLOAD=y 42.67 +# CONFIG_MODULE_FORCE_UNLOAD is not set 42.68 +CONFIG_OBSOLETE_MODPARM=y 42.69 +# CONFIG_MODVERSIONS is not set 42.70 +# CONFIG_MODULE_SRCVERSION_ALL is not set 42.71 +CONFIG_KMOD=y 42.72 + 42.73 +# 42.74 +# X86 Processor Configuration 42.75 +# 42.76 +CONFIG_XENARCH="i386" 42.77 +CONFIG_MMU=y 42.78 +CONFIG_UID16=y 42.79 +CONFIG_GENERIC_ISA_DMA=y 42.80 +CONFIG_GENERIC_IOMAP=y 42.81 +# CONFIG_M386 is not set 42.82 +# CONFIG_M486 is not set 42.83 +# CONFIG_M586 is not set 42.84 +# CONFIG_M586TSC is not set 42.85 +# CONFIG_M586MMX is not set 42.86 +# CONFIG_M686 is not set 42.87 +# CONFIG_MPENTIUMII is not set 42.88 +# CONFIG_MPENTIUMIII is not set 42.89 +# CONFIG_MPENTIUMM is not set 42.90 +CONFIG_MPENTIUM4=y 42.91 +# CONFIG_MK6 is not set 42.92 +# CONFIG_MK7 is not set 42.93 +# CONFIG_MK8 is not set 42.94 +# CONFIG_MCRUSOE is not set 42.95 +# CONFIG_MEFFICEON is not set 42.96 +# CONFIG_MWINCHIPC6 is not set 42.97 +# CONFIG_MWINCHIP2 is not set 42.98 +# CONFIG_MWINCHIP3D is not set 42.99 +# CONFIG_MCYRIXIII is not set 42.100 +# CONFIG_MVIAC3_2 is not set 42.101 +# CONFIG_X86_GENERIC is not set 42.102 +CONFIG_X86_CMPXCHG=y 42.103 +CONFIG_X86_XADD=y 42.104 +CONFIG_X86_L1_CACHE_SHIFT=7 42.105 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y 42.106 +CONFIG_GENERIC_CALIBRATE_DELAY=y 42.107 +CONFIG_X86_WP_WORKS_OK=y 42.108 +CONFIG_X86_INVLPG=y 42.109 +CONFIG_X86_BSWAP=y 42.110 +CONFIG_X86_POPAD_OK=y 42.111 +CONFIG_X86_GOOD_APIC=y 42.112 +CONFIG_X86_INTEL_USERCOPY=y 42.113 +CONFIG_X86_USE_PPRO_CHECKSUM=y 42.114 +# CONFIG_HPET_TIMER is not set 42.115 +# CONFIG_HPET_EMULATE_RTC is not set 42.116 +# CONFIG_SMP is not set 42.117 +CONFIG_PREEMPT=y 42.118 +CONFIG_PREEMPT_BKL=y 42.119 +CONFIG_X86_CPUID=y 42.120 + 42.121 +# 42.122 +# Firmware Drivers 42.123 +# 42.124 +# CONFIG_EDD is not set 42.125 +CONFIG_NOHIGHMEM=y 42.126 +# CONFIG_HIGHMEM4G is not set 42.127 +CONFIG_HAVE_DEC_LOCK=y 42.128 +# CONFIG_REGPARM is not set 42.129 + 42.130 +# 42.131 +# Kernel hacking 42.132 +# 42.133 +# CONFIG_DEBUG_KERNEL is not set 42.134 +CONFIG_EARLY_PRINTK=y 42.135 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 42.136 +# CONFIG_FRAME_POINTER is not set 42.137 +# CONFIG_4KSTACKS is not set 42.138 +CONFIG_GENERIC_HARDIRQS=y 42.139 +CONFIG_GENERIC_IRQ_PROBE=y 42.140 +CONFIG_X86_BIOS_REBOOT=y 42.141 +CONFIG_PC=y 42.142 + 42.143 +# 42.144 +# Executable file formats 42.145 +# 42.146 +CONFIG_BINFMT_ELF=y 42.147 +# CONFIG_BINFMT_AOUT is not set 42.148 +# CONFIG_BINFMT_MISC is not set 42.149 + 42.150 +# 42.151 +# Device Drivers 42.152 +# 42.153 + 42.154 +# 42.155 +# Generic Driver Options 42.156 +# 42.157 +CONFIG_STANDALONE=y 42.158 +CONFIG_PREVENT_FIRMWARE_BUILD=y 42.159 +# CONFIG_FW_LOADER is not set 42.160 + 42.161 +# 42.162 +# Block devices 42.163 +# 42.164 +# CONFIG_BLK_DEV_FD is not set 42.165 +# CONFIG_BLK_DEV_COW_COMMON is not set 42.166 +CONFIG_BLK_DEV_LOOP=m 42.167 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set 42.168 +CONFIG_BLK_DEV_NBD=m 42.169 +CONFIG_BLK_DEV_RAM=y 42.170 +CONFIG_BLK_DEV_RAM_COUNT=16 42.171 +CONFIG_BLK_DEV_RAM_SIZE=4096 42.172 +CONFIG_BLK_DEV_INITRD=y 42.173 +CONFIG_INITRAMFS_SOURCE="" 42.174 +# CONFIG_LBD is not set 42.175 +# CONFIG_CDROM_PKTCDVD is not set 42.176 + 42.177 +# 42.178 +# IO Schedulers 42.179 +# 42.180 +CONFIG_IOSCHED_NOOP=y 42.181 +CONFIG_IOSCHED_AS=y 42.182 +CONFIG_IOSCHED_DEADLINE=y 42.183 +CONFIG_IOSCHED_CFQ=y 42.184 +# CONFIG_ATA_OVER_ETH is not set 42.185 + 42.186 +# 42.187 +# SCSI device support 42.188 +# 42.189 +CONFIG_SCSI=m 42.190 +CONFIG_SCSI_PROC_FS=y 42.191 + 42.192 +# 42.193 +# SCSI support type (disk, tape, CD-ROM) 42.194 +# 42.195 +CONFIG_BLK_DEV_SD=m 42.196 +# CONFIG_CHR_DEV_ST is not set 42.197 +# CONFIG_CHR_DEV_OSST is not set 42.198 +# CONFIG_BLK_DEV_SR is not set 42.199 +# CONFIG_CHR_DEV_SG is not set 42.200 + 42.201 +# 42.202 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 42.203 +# 42.204 +# CONFIG_SCSI_MULTI_LUN is not set 42.205 +# CONFIG_SCSI_CONSTANTS is not set 42.206 +# CONFIG_SCSI_LOGGING is not set 42.207 + 42.208 +# 42.209 +# SCSI Transport Attributes 42.210 +# 42.211 +# CONFIG_SCSI_SPI_ATTRS is not set 42.212 +# CONFIG_SCSI_FC_ATTRS is not set 42.213 +# CONFIG_SCSI_ISCSI_ATTRS is not set 42.214 + 42.215 +# 42.216 +# SCSI low-level drivers 42.217 +# 42.218 +# CONFIG_SCSI_SATA is not set 42.219 +# CONFIG_SCSI_DEBUG is not set 42.220 + 42.221 +# 42.222 +# Multi-device support (RAID and LVM) 42.223 +# 42.224 +# CONFIG_MD is not set 42.225 + 42.226 +# 42.227 +# Networking support 42.228 +# 42.229 +CONFIG_NET=y 42.230 + 42.231 +# 42.232 +# Networking options 42.233 +# 42.234 +CONFIG_PACKET=y 42.235 +# CONFIG_PACKET_MMAP is not set 42.236 +# CONFIG_NETLINK_DEV is not set 42.237 +CONFIG_UNIX=y 42.238 +# CONFIG_NET_KEY is not set 42.239 +CONFIG_INET=y 42.240 +# CONFIG_IP_MULTICAST is not set 42.241 +# CONFIG_IP_ADVANCED_ROUTER is not set 42.242 +CONFIG_IP_PNP=y 42.243 +# CONFIG_IP_PNP_DHCP is not set 42.244 +# CONFIG_IP_PNP_BOOTP is not set 42.245 +# CONFIG_IP_PNP_RARP is not set 42.246 +# CONFIG_NET_IPIP is not set 42.247 +# CONFIG_NET_IPGRE is not set 42.248 +# CONFIG_ARPD is not set 42.249 +# CONFIG_SYN_COOKIES is not set 42.250 +# CONFIG_INET_AH is not set 42.251 +# CONFIG_INET_ESP is not set 42.252 +# CONFIG_INET_IPCOMP is not set 42.253 +# CONFIG_INET_TUNNEL is not set 42.254 +CONFIG_IP_TCPDIAG=y 42.255 +# CONFIG_IP_TCPDIAG_IPV6 is not set 42.256 +# CONFIG_IPV6 is not set 42.257 +# CONFIG_NETFILTER is not set 42.258 + 42.259 +# 42.260 +# SCTP Configuration (EXPERIMENTAL) 42.261 +# 42.262 +# CONFIG_IP_SCTP is not set 42.263 +# CONFIG_ATM is not set 42.264 +# CONFIG_BRIDGE is not set 42.265 +# CONFIG_VLAN_8021Q is not set 42.266 +# CONFIG_DECNET is not set 42.267 +# CONFIG_LLC2 is not set 42.268 +# CONFIG_IPX is not set 42.269 +# CONFIG_ATALK is not set 42.270 +# CONFIG_X25 is not set 42.271 +# CONFIG_LAPB is not set 42.272 +# CONFIG_NET_DIVERT is not set 42.273 +# CONFIG_ECONET is not set 42.274 +# CONFIG_WAN_ROUTER is not set 42.275 + 42.276 +# 42.277 +# QoS and/or fair queueing 42.278 +# 42.279 +# CONFIG_NET_SCHED is not set 42.280 +# CONFIG_NET_CLS_ROUTE is not set 42.281 + 42.282 +# 42.283 +# Network testing 42.284 +# 42.285 +# CONFIG_NET_PKTGEN is not set 42.286 +# CONFIG_NETPOLL is not set 42.287 +# CONFIG_NET_POLL_CONTROLLER is not set 42.288 +# CONFIG_HAMRADIO is not set 42.289 +# CONFIG_IRDA is not set 42.290 +# CONFIG_BT is not set 42.291 +CONFIG_NETDEVICES=y 42.292 +# CONFIG_DUMMY is not set 42.293 +# CONFIG_BONDING is not set 42.294 +# CONFIG_EQUALIZER is not set 42.295 +# CONFIG_TUN is not set 42.296 + 42.297 +# 42.298 +# Ethernet (10 or 100Mbit) 42.299 +# 42.300 +# CONFIG_NET_ETHERNET is not set 42.301 + 42.302 +# 42.303 +# Ethernet (1000 Mbit) 42.304 +# 42.305 + 42.306 +# 42.307 +# Ethernet (10000 Mbit) 42.308 +# 42.309 + 42.310 +# 42.311 +# Token Ring devices 42.312 +# 42.313 + 42.314 +# 42.315 +# Wireless LAN (non-hamradio) 42.316 +# 42.317 +# CONFIG_NET_RADIO is not set 42.318 + 42.319 +# 42.320 +# Wan interfaces 42.321 +# 42.322 +# CONFIG_WAN is not set 42.323 +# CONFIG_PPP is not set 42.324 +# CONFIG_SLIP is not set 42.325 +# CONFIG_SHAPER is not set 42.326 +# CONFIG_NETCONSOLE is not set 42.327 +CONFIG_UNIX98_PTYS=y 42.328 + 42.329 +# 42.330 +# File systems 42.331 +# 42.332 +CONFIG_EXT2_FS=y 42.333 +# CONFIG_EXT2_FS_XATTR is not set 42.334 +CONFIG_EXT3_FS=y 42.335 +CONFIG_EXT3_FS_XATTR=y 42.336 +# CONFIG_EXT3_FS_POSIX_ACL is not set 42.337 +# CONFIG_EXT3_FS_SECURITY is not set 42.338 +CONFIG_JBD=y 42.339 +# CONFIG_JBD_DEBUG is not set 42.340 +CONFIG_FS_MBCACHE=y 42.341 +CONFIG_REISERFS_FS=y 42.342 +# CONFIG_REISERFS_CHECK is not set 42.343 +# CONFIG_REISERFS_PROC_INFO is not set 42.344 +# CONFIG_REISERFS_FS_XATTR is not set 42.345 +# CONFIG_JFS_FS is not set 42.346 + 42.347 +# 42.348 +# XFS support 42.349 +# 42.350 +# CONFIG_XFS_FS is not set 42.351 +# CONFIG_MINIX_FS is not set 42.352 +# CONFIG_ROMFS_FS is not set 42.353 +# CONFIG_QUOTA is not set 42.354 +CONFIG_DNOTIFY=y 42.355 +CONFIG_AUTOFS_FS=y 42.356 +CONFIG_AUTOFS4_FS=y 42.357 + 42.358 +# 42.359 +# CD-ROM/DVD Filesystems 42.360 +# 42.361 +CONFIG_ISO9660_FS=y 42.362 +CONFIG_JOLIET=y 42.363 +CONFIG_ZISOFS=y 42.364 +CONFIG_ZISOFS_FS=y 42.365 +# CONFIG_UDF_FS is not set 42.366 + 42.367 +# 42.368 +# DOS/FAT/NT Filesystems 42.369 +# 42.370 +CONFIG_FAT_FS=m 42.371 +CONFIG_MSDOS_FS=m 42.372 +CONFIG_VFAT_FS=m 42.373 +CONFIG_FAT_DEFAULT_CODEPAGE=437 42.374 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 42.375 +# CONFIG_NTFS_FS is not set 42.376 + 42.377 +# 42.378 +# Pseudo filesystems 42.379 +# 42.380 +CONFIG_PROC_FS=y 42.381 +CONFIG_PROC_KCORE=y 42.382 +CONFIG_SYSFS=y 42.383 +# CONFIG_DEVFS_FS is not set 42.384 +CONFIG_DEVPTS_FS_XATTR=y 42.385 +# CONFIG_DEVPTS_FS_SECURITY is not set 42.386 +CONFIG_TMPFS=y 42.387 +# CONFIG_TMPFS_XATTR is not set 42.388 +# CONFIG_HUGETLBFS is not set 42.389 +# CONFIG_HUGETLB_PAGE is not set 42.390 +CONFIG_RAMFS=y 42.391 + 42.392 +# 42.393 +# Miscellaneous filesystems 42.394 +# 42.395 +# CONFIG_ADFS_FS is not set 42.396 +# CONFIG_AFFS_FS is not set 42.397 +# CONFIG_HFS_FS is not set 42.398 +# CONFIG_HFSPLUS_FS is not set 42.399 +# CONFIG_BEFS_FS is not set 42.400 +# CONFIG_BFS_FS is not set 42.401 +# CONFIG_EFS_FS is not set 42.402 +# CONFIG_CRAMFS is not set 42.403 +# CONFIG_VXFS_FS is not set 42.404 +# CONFIG_HPFS_FS is not set 42.405 +# CONFIG_QNX4FS_FS is not set 42.406 +# CONFIG_SYSV_FS is not set 42.407 +# CONFIG_UFS_FS is not set 42.408 + 42.409 +# 42.410 +# Network File Systems 42.411 +# 42.412 +CONFIG_NFS_FS=y 42.413 +CONFIG_NFS_V3=y 42.414 +# CONFIG_NFS_V4 is not set 42.415 +# CONFIG_NFS_DIRECTIO is not set 42.416 +# CONFIG_NFSD is not set 42.417 +CONFIG_ROOT_NFS=y 42.418 +CONFIG_LOCKD=y 42.419 +CONFIG_LOCKD_V4=y 42.420 +CONFIG_SUNRPC=y 42.421 +# CONFIG_RPCSEC_GSS_KRB5 is not set 42.422 +# CONFIG_RPCSEC_GSS_SPKM3 is not set 42.423 +# CONFIG_SMB_FS is not set 42.424 +# CONFIG_CIFS is not set 42.425 +# CONFIG_NCP_FS is not set 42.426 +# CONFIG_CODA_FS is not set 42.427 +# CONFIG_AFS_FS is not set 42.428 + 42.429 +# 42.430 +# Partition Types 42.431 +# 42.432 +# CONFIG_PARTITION_ADVANCED is not set 42.433 +CONFIG_MSDOS_PARTITION=y 42.434 + 42.435 +# 42.436 +# Native Language Support 42.437 +# 42.438 +CONFIG_NLS=y 42.439 +CONFIG_NLS_DEFAULT="iso8859-1" 42.440 +CONFIG_NLS_CODEPAGE_437=y 42.441 +# CONFIG_NLS_CODEPAGE_737 is not set 42.442 +# CONFIG_NLS_CODEPAGE_775 is not set 42.443 +# CONFIG_NLS_CODEPAGE_850 is not set 42.444 +# CONFIG_NLS_CODEPAGE_852 is not set 42.445 +# CONFIG_NLS_CODEPAGE_855 is not set 42.446 +# CONFIG_NLS_CODEPAGE_857 is not set 42.447 +# CONFIG_NLS_CODEPAGE_860 is not set 42.448 +# CONFIG_NLS_CODEPAGE_861 is not set 42.449 +# CONFIG_NLS_CODEPAGE_862 is not set 42.450 +# CONFIG_NLS_CODEPAGE_863 is not set 42.451 +# CONFIG_NLS_CODEPAGE_864 is not set 42.452 +# CONFIG_NLS_CODEPAGE_865 is not set 42.453 +# CONFIG_NLS_CODEPAGE_866 is not set 42.454 +# CONFIG_NLS_CODEPAGE_869 is not set 42.455 +# CONFIG_NLS_CODEPAGE_936 is not set 42.456 +# CONFIG_NLS_CODEPAGE_950 is not set 42.457 +# CONFIG_NLS_CODEPAGE_932 is not set 42.458 +# CONFIG_NLS_CODEPAGE_949 is not set 42.459 +# CONFIG_NLS_CODEPAGE_874 is not set 42.460 +# CONFIG_NLS_ISO8859_8 is not set 42.461 +# CONFIG_NLS_CODEPAGE_1250 is not set 42.462 +# CONFIG_NLS_CODEPAGE_1251 is not set 42.463 +# CONFIG_NLS_ASCII is not set 42.464 +CONFIG_NLS_ISO8859_1=y 42.465 +# CONFIG_NLS_ISO8859_2 is not set 42.466 +# CONFIG_NLS_ISO8859_3 is not set 42.467 +# CONFIG_NLS_ISO8859_4 is not set 42.468 +# CONFIG_NLS_ISO8859_5 is not set 42.469 +# CONFIG_NLS_ISO8859_6 is not set 42.470 +# CONFIG_NLS_ISO8859_7 is not set 42.471 +# CONFIG_NLS_ISO8859_9 is not set 42.472 +# CONFIG_NLS_ISO8859_13 is not set 42.473 +# CONFIG_NLS_ISO8859_14 is not set 42.474 +# CONFIG_NLS_ISO8859_15 is not set 42.475 +# CONFIG_NLS_KOI8_R is not set 42.476 +# CONFIG_NLS_KOI8_U is not set 42.477 +# CONFIG_NLS_UTF8 is not set 42.478 + 42.479 +# 42.480 +# Security options 42.481 +# 42.482 +# CONFIG_KEYS is not set 42.483 +# CONFIG_SECURITY is not set 42.484 + 42.485 +# 42.486 +# Cryptographic options 42.487 +# 42.488 +CONFIG_CRYPTO=y 42.489 +# CONFIG_CRYPTO_HMAC is not set 42.490 +# CONFIG_CRYPTO_NULL is not set 42.491 +# CONFIG_CRYPTO_MD4 is not set 42.492 +CONFIG_CRYPTO_MD5=m 42.493 +# CONFIG_CRYPTO_SHA1 is not set 42.494 +# CONFIG_CRYPTO_SHA256 is not set 42.495 +# CONFIG_CRYPTO_SHA512 is not set 42.496 +# CONFIG_CRYPTO_WP512 is not set 42.497 +# CONFIG_CRYPTO_DES is not set 42.498 +# CONFIG_CRYPTO_BLOWFISH is not set 42.499 +# CONFIG_CRYPTO_TWOFISH is not set 42.500 +# CONFIG_CRYPTO_SERPENT is not set 42.501 +# CONFIG_CRYPTO_AES_586 is not set 42.502 +# CONFIG_CRYPTO_CAST5 is not set 42.503 +# CONFIG_CRYPTO_CAST6 is not set 42.504 +# CONFIG_CRYPTO_TEA is not set 42.505 +# CONFIG_CRYPTO_ARC4 is not set 42.506 +# CONFIG_CRYPTO_KHAZAD is not set 42.507 +# CONFIG_CRYPTO_ANUBIS is not set 42.508 +# CONFIG_CRYPTO_DEFLATE is not set 42.509 +# CONFIG_CRYPTO_MICHAEL_MIC is not set 42.510 +CONFIG_CRYPTO_CRC32C=m 42.511 +# CONFIG_CRYPTO_TEST is not set 42.512 + 42.513 +# 42.514 +# Hardware crypto devices 42.515 +# 42.516 +# CONFIG_CRYPTO_DEV_PADLOCK is not set 42.517 + 42.518 +# 42.519 +# Library routines 42.520 +# 42.521 +# CONFIG_CRC_CCITT is not set 42.522 +# CONFIG_CRC32 is not set 42.523 +CONFIG_LIBCRC32C=m 42.524 +CONFIG_ZLIB_INFLATE=y
43.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 43.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 Mon Apr 04 16:13:17 2005 +0000 43.3 @@ -0,0 +1,513 @@ 43.4 +# 43.5 +# Automatically generated make config: don't edit 43.6 +# Linux kernel version: 2.6.10-xenU 43.7 +# Mon Dec 27 10:15:03 2004 43.8 +# 43.9 +CONFIG_XEN=y 43.10 +CONFIG_ARCH_XEN=y 43.11 +CONFIG_NO_IDLE_HZ=y 43.12 + 43.13 +# 43.14 +# XEN 43.15 +# 43.16 +# CONFIG_XEN_PRIVILEGED_GUEST is not set 43.17 +# CONFIG_XEN_PHYSDEV_ACCESS is not set 43.18 +# CONFIG_XEN_BLKDEV_BACKEND is not set 43.19 +# CONFIG_XEN_NETDEV_BACKEND is not set 43.20 +CONFIG_XEN_BLKDEV_FRONTEND=y 43.21 +CONFIG_XEN_NETDEV_FRONTEND=y 43.22 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set 43.23 +# CONFIG_XEN_BLKDEV_TAP is not set 43.24 +CONFIG_XEN_WRITABLE_PAGETABLES=y 43.25 +CONFIG_XEN_SCRUB_PAGES=y 43.26 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y 43.27 +CONFIG_X86=y 43.28 +# CONFIG_X86_64 is not set 43.29 + 43.30 +# 43.31 +# Code maturity level options 43.32 +# 43.33 +CONFIG_EXPERIMENTAL=y 43.34 +CONFIG_CLEAN_COMPILE=y 43.35 +CONFIG_BROKEN_ON_SMP=y 43.36 +CONFIG_LOCK_KERNEL=y 43.37 + 43.38 +# 43.39 +# General setup 43.40 +# 43.41 +CONFIG_LOCALVERSION="" 43.42 +CONFIG_SWAP=y 43.43 +CONFIG_SYSVIPC=y 43.44 +# CONFIG_POSIX_MQUEUE is not set 43.45 +# CONFIG_BSD_PROCESS_ACCT is not set 43.46 +CONFIG_SYSCTL=y 43.47 +# CONFIG_AUDIT is not set 43.48 +CONFIG_LOG_BUF_SHIFT=14 43.49 +CONFIG_HOTPLUG=y 43.50 +CONFIG_KOBJECT_UEVENT=y 43.51 +# CONFIG_IKCONFIG is not set 43.52 +# CONFIG_EMBEDDED is not set 43.53 +CONFIG_KALLSYMS=y 43.54 +# CONFIG_KALLSYMS_ALL is not set 43.55 +# CONFIG_KALLSYMS_EXTRA_PASS is not set 43.56 +CONFIG_FUTEX=y 43.57 +CONFIG_EPOLL=y 43.58 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 43.59 +CONFIG_SHMEM=y 43.60 +CONFIG_CC_ALIGN_FUNCTIONS=0 43.61 +CONFIG_CC_ALIGN_LABELS=0 43.62 +CONFIG_CC_ALIGN_LOOPS=0 43.63 +CONFIG_CC_ALIGN_JUMPS=0 43.64 +# CONFIG_TINY_SHMEM is not set 43.65 + 43.66 +# 43.67 +# Loadable module support 43.68 +# 43.69 +CONFIG_MODULES=y 43.70 +CONFIG_MODULE_UNLOAD=y 43.71 +# CONFIG_MODULE_FORCE_UNLOAD is not set 43.72 +CONFIG_OBSOLETE_MODPARM=y 43.73 +# CONFIG_MODVERSIONS is not set 43.74 +# CONFIG_MODULE_SRCVERSION_ALL is not set 43.75 +CONFIG_KMOD=y 43.76 + 43.77 +# 43.78 +# X86 Processor Configuration 43.79 +# 43.80 +CONFIG_XENARCH="x86_64" 43.81 +CONFIG_MMU=y 43.82 +CONFIG_UID16=y 43.83 +CONFIG_GENERIC_ISA_DMA=y 43.84 +CONFIG_GENERIC_IOMAP=y 43.85 +# CONFIG_M386 is not set 43.86 +# CONFIG_M486 is not set 43.87 +# CONFIG_M586 is not set 43.88 +# CONFIG_M586TSC is not set 43.89 +# CONFIG_M586MMX is not set 43.90 +# CONFIG_M686 is not set 43.91 +# CONFIG_MPENTIUMII is not set 43.92 +# CONFIG_MPENTIUMIII is not set 43.93 +# CONFIG_MPENTIUMM is not set 43.94 +CONFIG_MPENTIUM4=y 43.95 +# CONFIG_MK6 is not set 43.96 +# CONFIG_MK7 is not set 43.97 +# CONFIG_MK8 is not set 43.98 +# CONFIG_MCRUSOE is not set 43.99 +# CONFIG_MEFFICEON is not set 43.100 +# CONFIG_MWINCHIPC6 is not set 43.101 +# CONFIG_MWINCHIP2 is not set 43.102 +# CONFIG_MWINCHIP3D is not set 43.103 +# CONFIG_MCYRIXIII is not set 43.104 +# CONFIG_MVIAC3_2 is not set 43.105 +# CONFIG_X86_GENERIC is not set 43.106 +CONFIG_X86_CMPXCHG=y 43.107 +CONFIG_X86_XADD=y 43.108 +CONFIG_X86_L1_CACHE_SHIFT=7 43.109 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43.110 +CONFIG_X86_WP_WORKS_OK=y 43.111 +CONFIG_X86_INVLPG=y 43.112 +CONFIG_X86_BSWAP=y 43.113 +CONFIG_X86_POPAD_OK=y 43.114 +CONFIG_X86_GOOD_APIC=y 43.115 +CONFIG_X86_INTEL_USERCOPY=y 43.116 +CONFIG_X86_USE_PPRO_CHECKSUM=y 43.117 +# CONFIG_HPET_TIMER is not set 43.118 +# CONFIG_HPET_EMULATE_RTC is not set 43.119 +# CONFIG_SMP is not set 43.120 +CONFIG_PREEMPT=y 43.121 +CONFIG_X86_CPUID=y 43.122 + 43.123 +# 43.124 +# Firmware Drivers 43.125 +# 43.126 +# CONFIG_EDD is not set 43.127 +CONFIG_NOHIGHMEM=y 43.128 +# CONFIG_HIGHMEM4G is not set 43.129 +CONFIG_HAVE_DEC_LOCK=y 43.130 +# CONFIG_REGPARM is not set 43.131 + 43.132 +# 43.133 +# Kernel hacking 43.134 +# 43.135 +# CONFIG_DEBUG_KERNEL is not set 43.136 +CONFIG_EARLY_PRINTK=y 43.137 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 43.138 +# CONFIG_FRAME_POINTER is not set 43.139 +# CONFIG_4KSTACKS is not set 43.140 +CONFIG_GENERIC_HARDIRQS=y 43.141 +CONFIG_GENERIC_IRQ_PROBE=y 43.142 +CONFIG_X86_BIOS_REBOOT=y 43.143 +CONFIG_PC=y 43.144 + 43.145 +# 43.146 +# Executable file formats 43.147 +# 43.148 +CONFIG_BINFMT_ELF=y 43.149 +# CONFIG_BINFMT_AOUT is not set 43.150 +# CONFIG_BINFMT_MISC is not set 43.151 + 43.152 +# 43.153 +# Device Drivers 43.154 +# 43.155 + 43.156 +# 43.157 +# Generic Driver Options 43.158 +# 43.159 +CONFIG_STANDALONE=y 43.160 +CONFIG_PREVENT_FIRMWARE_BUILD=y 43.161 +# CONFIG_FW_LOADER is not set 43.162 +# CONFIG_DEBUG_DRIVER is not set 43.163 + 43.164 +# 43.165 +# Block devices 43.166 +# 43.167 +# CONFIG_BLK_DEV_FD is not set 43.168 +CONFIG_BLK_DEV_LOOP=m 43.169 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set 43.170 +CONFIG_BLK_DEV_NBD=m 43.171 +CONFIG_BLK_DEV_RAM=y 43.172 +CONFIG_BLK_DEV_RAM_COUNT=16 43.173 +CONFIG_BLK_DEV_RAM_SIZE=4096 43.174 +CONFIG_BLK_DEV_INITRD=y 43.175 +CONFIG_INITRAMFS_SOURCE="" 43.176 +# CONFIG_LBD is not set 43.177 +# CONFIG_CDROM_PKTCDVD is not set 43.178 + 43.179 +# 43.180 +# IO Schedulers 43.181 +# 43.182 +CONFIG_IOSCHED_NOOP=y 43.183 +CONFIG_IOSCHED_AS=y 43.184 +CONFIG_IOSCHED_DEADLINE=y 43.185 +CONFIG_IOSCHED_CFQ=y 43.186 + 43.187 +# 43.188 +# SCSI device support 43.189 +# 43.190 +CONFIG_SCSI=m 43.191 +CONFIG_SCSI_PROC_FS=y 43.192 + 43.193 +# 43.194 +# SCSI support type (disk, tape, CD-ROM) 43.195 +# 43.196 +CONFIG_BLK_DEV_SD=m 43.197 +# CONFIG_CHR_DEV_ST is not set 43.198 +# CONFIG_CHR_DEV_OSST is not set 43.199 +# CONFIG_BLK_DEV_SR is not set 43.200 +# CONFIG_CHR_DEV_SG is not set 43.201 + 43.202 +# 43.203 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 43.204 +# 43.205 +# CONFIG_SCSI_MULTI_LUN is not set 43.206 +# CONFIG_SCSI_CONSTANTS is not set 43.207 +# CONFIG_SCSI_LOGGING is not set 43.208 + 43.209 +# 43.210 +# SCSI Transport Attributes 43.211 +# 43.212 +# CONFIG_SCSI_SPI_ATTRS is not set 43.213 +# CONFIG_SCSI_FC_ATTRS is not set 43.214 + 43.215 +# 43.216 +# SCSI low-level drivers 43.217 +# 43.218 +# CONFIG_SCSI_SATA is not set 43.219 +# CONFIG_SCSI_DEBUG is not set 43.220 + 43.221 +# 43.222 +# Multi-device support (RAID and LVM) 43.223 +# 43.224 +# CONFIG_MD is not set 43.225 + 43.226 +# 43.227 +# Networking support 43.228 +# 43.229 +CONFIG_NET=y 43.230 + 43.231 +# 43.232 +# Networking options 43.233 +# 43.234 +CONFIG_PACKET=y 43.235 +# CONFIG_PACKET_MMAP is not set 43.236 +# CONFIG_NETLINK_DEV is not set 43.237 +CONFIG_UNIX=y 43.238 +# CONFIG_NET_KEY is not set 43.239 +CONFIG_INET=y 43.240 +# CONFIG_IP_MULTICAST is not set 43.241 +# CONFIG_IP_ADVANCED_ROUTER is not set 43.242 +CONFIG_IP_PNP=y 43.243 +# CONFIG_IP_PNP_DHCP is not set 43.244 +# CONFIG_IP_PNP_BOOTP is not set 43.245 +# CONFIG_IP_PNP_RARP is not set 43.246 +# CONFIG_NET_IPIP is not set 43.247 +# CONFIG_NET_IPGRE is not set 43.248 +# CONFIG_ARPD is not set 43.249 +# CONFIG_SYN_COOKIES is not set 43.250 +# CONFIG_INET_AH is not set 43.251 +# CONFIG_INET_ESP is not set 43.252 +# CONFIG_INET_IPCOMP is not set 43.253 +# CONFIG_INET_TUNNEL is not set 43.254 +CONFIG_IP_TCPDIAG=y 43.255 +# CONFIG_IP_TCPDIAG_IPV6 is not set 43.256 +# CONFIG_IPV6 is not set 43.257 +# CONFIG_NETFILTER is not set 43.258 + 43.259 +# 43.260 +# SCTP Configuration (EXPERIMENTAL) 43.261 +# 43.262 +# CONFIG_IP_SCTP is not set 43.263 +# CONFIG_ATM is not set 43.264 +# CONFIG_BRIDGE is not set 43.265 +# CONFIG_VLAN_8021Q is not set 43.266 +# CONFIG_DECNET is not set 43.267 +# CONFIG_LLC2 is not set 43.268 +# CONFIG_IPX is not set 43.269 +# CONFIG_ATALK is not set 43.270 +# CONFIG_X25 is not set 43.271 +# CONFIG_LAPB is not set 43.272 +# CONFIG_NET_DIVERT is not set 43.273 +# CONFIG_ECONET is not set 43.274 +# CONFIG_WAN_ROUTER is not set 43.275 + 43.276 +# 43.277 +# QoS and/or fair queueing 43.278 +# 43.279 +# CONFIG_NET_SCHED is not set 43.280 +# CONFIG_NET_CLS_ROUTE is not set 43.281 + 43.282 +# 43.283 +# Network testing 43.284 +# 43.285 +# CONFIG_NET_PKTGEN is not set 43.286 +# CONFIG_NETPOLL is not set 43.287 +# CONFIG_NET_POLL_CONTROLLER is not set 43.288 +# CONFIG_HAMRADIO is not set 43.289 +# CONFIG_IRDA is not set 43.290 +# CONFIG_BT is not set 43.291 +CONFIG_NETDEVICES=y 43.292 +# CONFIG_DUMMY is not set 43.293 +# CONFIG_BONDING is not set 43.294 +# CONFIG_EQUALIZER is not set 43.295 +# CONFIG_TUN is not set 43.296 + 43.297 +# 43.298 +# Ethernet (10 or 100Mbit) 43.299 +# 43.300 +# CONFIG_NET_ETHERNET is not set 43.301 + 43.302 +# 43.303 +# Ethernet (1000 Mbit) 43.304 +# 43.305 + 43.306 +# 43.307 +# Ethernet (10000 Mbit) 43.308 +# 43.309 + 43.310 +# 43.311 +# Token Ring devices 43.312 +# 43.313 + 43.314 +# 43.315 +# Wireless LAN (non-hamradio) 43.316 +# 43.317 +# CONFIG_NET_RADIO is not set 43.318 + 43.319 +# 43.320 +# Wan interfaces 43.321 +# 43.322 +# CONFIG_WAN is not set 43.323 +# CONFIG_PPP is not set 43.324 +# CONFIG_SLIP is not set 43.325 +# CONFIG_SHAPER is not set 43.326 +# CONFIG_NETCONSOLE is not set 43.327 +CONFIG_UNIX98_PTYS=y 43.328 + 43.329 +# 43.330 +# File systems 43.331 +# 43.332 +CONFIG_EXT2_FS=y 43.333 +# CONFIG_EXT2_FS_XATTR is not set 43.334 +CONFIG_EXT3_FS=y 43.335 +CONFIG_EXT3_FS_XATTR=y 43.336 +# CONFIG_EXT3_FS_POSIX_ACL is not set 43.337 +# CONFIG_EXT3_FS_SECURITY is not set 43.338 +CONFIG_JBD=y 43.339 +# CONFIG_JBD_DEBUG is not set 43.340 +CONFIG_FS_MBCACHE=y 43.341 +CONFIG_REISERFS_FS=y 43.342 +# CONFIG_REISERFS_CHECK is not set 43.343 +# CONFIG_REISERFS_PROC_INFO is not set 43.344 +# CONFIG_REISERFS_FS_XATTR is not set 43.345 +# CONFIG_JFS_FS is not set 43.346 +# CONFIG_XFS_FS is not set 43.347 +# CONFIG_MINIX_FS is not set 43.348 +# CONFIG_ROMFS_FS is not set 43.349 +# CONFIG_QUOTA is not set 43.350 +CONFIG_DNOTIFY=y 43.351 +CONFIG_AUTOFS_FS=y 43.352 +CONFIG_AUTOFS4_FS=y 43.353 + 43.354 +# 43.355 +# CD-ROM/DVD Filesystems 43.356 +# 43.357 +CONFIG_ISO9660_FS=y 43.358 +CONFIG_JOLIET=y 43.359 +CONFIG_ZISOFS=y 43.360 +CONFIG_ZISOFS_FS=y 43.361 +# CONFIG_UDF_FS is not set 43.362 + 43.363 +# 43.364 +# DOS/FAT/NT Filesystems 43.365 +# 43.366 +CONFIG_FAT_FS=m 43.367 +CONFIG_MSDOS_FS=m 43.368 +CONFIG_VFAT_FS=m 43.369 +CONFIG_FAT_DEFAULT_CODEPAGE=437 43.370 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 43.371 +# CONFIG_NTFS_FS is not set 43.372 + 43.373 +# 43.374 +# Pseudo filesystems 43.375 +# 43.376 +CONFIG_PROC_FS=y 43.377 +CONFIG_PROC_KCORE=y 43.378 +CONFIG_SYSFS=y 43.379 +# CONFIG_DEVFS_FS is not set 43.380 +CONFIG_DEVPTS_FS_XATTR=y 43.381 +# CONFIG_DEVPTS_FS_SECURITY is not set 43.382 +CONFIG_TMPFS=y 43.383 +# CONFIG_TMPFS_XATTR is not set 43.384 +# CONFIG_HUGETLBFS is not set 43.385 +# CONFIG_HUGETLB_PAGE is not set 43.386 +CONFIG_RAMFS=y 43.387 + 43.388 +# 43.389 +# Miscellaneous filesystems 43.390 +# 43.391 +# CONFIG_ADFS_FS is not set 43.392 +# CONFIG_AFFS_FS is not set 43.393 +# CONFIG_HFS_FS is not set 43.394 +# CONFIG_HFSPLUS_FS is not set 43.395 +# CONFIG_BEFS_FS is not set 43.396 +# CONFIG_BFS_FS is not set 43.397 +# CONFIG_EFS_FS is not set 43.398 +# CONFIG_CRAMFS is not set 43.399 +# CONFIG_VXFS_FS is not set 43.400 +# CONFIG_HPFS_FS is not set 43.401 +# CONFIG_QNX4FS_FS is not set 43.402 +# CONFIG_SYSV_FS is not set 43.403 +# CONFIG_UFS_FS is not set 43.404 + 43.405 +# 43.406 +# Network File Systems 43.407 +# 43.408 +CONFIG_NFS_FS=y 43.409 +CONFIG_NFS_V3=y 43.410 +# CONFIG_NFS_V4 is not set 43.411 +# CONFIG_NFS_DIRECTIO is not set 43.412 +# CONFIG_NFSD is not set 43.413 +CONFIG_ROOT_NFS=y 43.414 +CONFIG_LOCKD=y 43.415 +CONFIG_LOCKD_V4=y 43.416 +# CONFIG_EXPORTFS is not set 43.417 +CONFIG_SUNRPC=y 43.418 +# CONFIG_RPCSEC_GSS_KRB5 is not set 43.419 +# CONFIG_RPCSEC_GSS_SPKM3 is not set 43.420 +# CONFIG_SMB_FS is not set 43.421 +# CONFIG_CIFS is not set 43.422 +# CONFIG_NCP_FS is not set 43.423 +# CONFIG_CODA_FS is not set 43.424 +# CONFIG_AFS_FS is not set 43.425 + 43.426 +# 43.427 +# Partition Types 43.428 +# 43.429 +# CONFIG_PARTITION_ADVANCED is not set 43.430 +CONFIG_MSDOS_PARTITION=y 43.431 + 43.432 +# 43.433 +# Native Language Support 43.434 +# 43.435 +CONFIG_NLS=y 43.436 +CONFIG_NLS_DEFAULT="iso8859-1" 43.437 +CONFIG_NLS_CODEPAGE_437=y 43.438 +# CONFIG_NLS_CODEPAGE_737 is not set 43.439 +# CONFIG_NLS_CODEPAGE_775 is not set 43.440 +# CONFIG_NLS_CODEPAGE_850 is not set 43.441 +# CONFIG_NLS_CODEPAGE_852 is not set 43.442 +# CONFIG_NLS_CODEPAGE_855 is not set 43.443 +# CONFIG_NLS_CODEPAGE_857 is not set 43.444 +# CONFIG_NLS_CODEPAGE_860 is not set 43.445 +# CONFIG_NLS_CODEPAGE_861 is not set 43.446 +# CONFIG_NLS_CODEPAGE_862 is not set 43.447 +# CONFIG_NLS_CODEPAGE_863 is not set 43.448 +# CONFIG_NLS_CODEPAGE_864 is not set 43.449 +# CONFIG_NLS_CODEPAGE_865 is not set 43.450 +# CONFIG_NLS_CODEPAGE_866 is not set 43.451 +# CONFIG_NLS_CODEPAGE_869 is not set 43.452 +# CONFIG_NLS_CODEPAGE_936 is not set 43.453 +# CONFIG_NLS_CODEPAGE_950 is not set 43.454 +# CONFIG_NLS_CODEPAGE_932 is not set 43.455 +# CONFIG_NLS_CODEPAGE_949 is not set 43.456 +# CONFIG_NLS_CODEPAGE_874 is not set 43.457 +# CONFIG_NLS_ISO8859_8 is not set 43.458 +# CONFIG_NLS_CODEPAGE_1250 is not set 43.459 +# CONFIG_NLS_CODEPAGE_1251 is not set 43.460 +# CONFIG_NLS_ASCII is not set 43.461 +CONFIG_NLS_ISO8859_1=y 43.462 +# CONFIG_NLS_ISO8859_2 is not set 43.463 +# CONFIG_NLS_ISO8859_3 is not set 43.464 +# CONFIG_NLS_ISO8859_4 is not set 43.465 +# CONFIG_NLS_ISO8859_5 is not set 43.466 +# CONFIG_NLS_ISO8859_6 is not set 43.467 +# CONFIG_NLS_ISO8859_7 is not set 43.468 +# CONFIG_NLS_ISO8859_9 is not set 43.469 +# CONFIG_NLS_ISO8859_13 is not set 43.470 +# CONFIG_NLS_ISO8859_14 is not set 43.471 +# CONFIG_NLS_ISO8859_15 is not set 43.472 +# CONFIG_NLS_KOI8_R is not set 43.473 +# CONFIG_NLS_KOI8_U is not set 43.474 +# CONFIG_NLS_UTF8 is not set 43.475 + 43.476 +# 43.477 +# Security options 43.478 +# 43.479 +# CONFIG_KEYS is not set 43.480 +# CONFIG_SECURITY is not set 43.481 + 43.482 +# 43.483 +# Cryptographic options 43.484 +# 43.485 +CONFIG_CRYPTO=y 43.486 +# CONFIG_CRYPTO_HMAC is not set 43.487 +# CONFIG_CRYPTO_NULL is not set 43.488 +# CONFIG_CRYPTO_MD4 is not set 43.489 +CONFIG_CRYPTO_MD5=m 43.490 +# CONFIG_CRYPTO_SHA1 is not set 43.491 +# CONFIG_CRYPTO_SHA256 is not set 43.492 +# CONFIG_CRYPTO_SHA512 is not set 43.493 +# CONFIG_CRYPTO_WP512 is not set 43.494 +# CONFIG_CRYPTO_DES is not set 43.495 +# CONFIG_CRYPTO_BLOWFISH is not set 43.496 +# CONFIG_CRYPTO_TWOFISH is not set 43.497 +# CONFIG_CRYPTO_SERPENT is not set 43.498 +# CONFIG_CRYPTO_AES_586 is not set 43.499 +# CONFIG_CRYPTO_CAST5 is not set 43.500 +# CONFIG_CRYPTO_CAST6 is not set 43.501 +# CONFIG_CRYPTO_TEA is not set 43.502 +# CONFIG_CRYPTO_ARC4 is not set 43.503 +# CONFIG_CRYPTO_KHAZAD is not set 43.504 +# CONFIG_CRYPTO_ANUBIS is not set 43.505 +# CONFIG_CRYPTO_DEFLATE is not set 43.506 +# CONFIG_CRYPTO_MICHAEL_MIC is not set 43.507 +CONFIG_CRYPTO_CRC32C=m 43.508 +# CONFIG_CRYPTO_TEST is not set 43.509 + 43.510 +# 43.511 +# Library routines 43.512 +# 43.513 +# CONFIG_CRC_CCITT is not set 43.514 +# CONFIG_CRC32 is not set 43.515 +CONFIG_LIBCRC32C=m 43.516 +CONFIG_ZLIB_INFLATE=y
44.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c Mon Apr 04 10:52:11 2005 +0000 44.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c Mon Apr 04 16:13:17 2005 +0000 44.3 @@ -564,7 +564,6 @@ void __init cpu_gdt_init(struct Xgt_desc 44.4 frames[f] = virt_to_machine(va) >> PAGE_SHIFT; 44.5 make_page_readonly((void *)va); 44.6 } 44.7 - flush_page_update_queue(); 44.8 if (HYPERVISOR_set_gdt(frames, gdt_descr->size / 8)) 44.9 BUG(); 44.10 lgdt_finish(); 44.11 @@ -622,7 +621,6 @@ void __init cpu_init (void) 44.12 load_esp0(t, thread); 44.13 44.14 load_LDT(&init_mm.context); 44.15 - flush_page_update_queue(); 44.16 44.17 /* Clear %fs and %gs. */ 44.18 asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");
45.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S Mon Apr 04 10:52:11 2005 +0000 45.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S Mon Apr 04 16:13:17 2005 +0000 45.3 @@ -4,7 +4,6 @@ 45.4 .section __xen_guest 45.5 .ascii "GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xC0000000" 45.6 .ascii ",LOADER=generic" 45.7 - .ascii ",PT_MODE_WRITABLE" 45.8 .byte 0 45.9 45.10 .text
46.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c Mon Apr 04 10:52:11 2005 +0000 46.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c Mon Apr 04 16:13:17 2005 +0000 46.3 @@ -22,10 +22,8 @@ 46.4 #ifdef CONFIG_SMP /* avoids "defined but not used" warnig */ 46.5 static void flush_ldt(void *null) 46.6 { 46.7 - if (current->active_mm) { 46.8 + if (current->active_mm) 46.9 load_LDT(¤t->active_mm->context); 46.10 - flush_page_update_queue(); 46.11 - } 46.12 } 46.13 #endif 46.14 46.15 @@ -64,7 +62,6 @@ static int alloc_ldt(mm_context_t *pc, i 46.16 make_pages_readonly(pc->ldt, (pc->size * LDT_ENTRY_SIZE) / 46.17 PAGE_SIZE); 46.18 load_LDT(pc); 46.19 - flush_page_update_queue(); 46.20 #ifdef CONFIG_SMP 46.21 mask = cpumask_of_cpu(smp_processor_id()); 46.22 if (!cpus_equal(current->mm->cpu_vm_mask, mask)) 46.23 @@ -75,7 +72,6 @@ static int alloc_ldt(mm_context_t *pc, i 46.24 if (oldsize) { 46.25 make_pages_writable(oldldt, (oldsize * LDT_ENTRY_SIZE) / 46.26 PAGE_SIZE); 46.27 - flush_page_update_queue(); 46.28 if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE) 46.29 vfree(oldldt); 46.30 else 46.31 @@ -92,7 +88,6 @@ static inline int copy_ldt(mm_context_t 46.32 memcpy(new->ldt, old->ldt, old->size*LDT_ENTRY_SIZE); 46.33 make_pages_readonly(new->ldt, (new->size * LDT_ENTRY_SIZE) / 46.34 PAGE_SIZE); 46.35 - flush_page_update_queue(); 46.36 return 0; 46.37 } 46.38 46.39 @@ -127,7 +122,6 @@ void destroy_context(struct mm_struct *m 46.40 make_pages_writable(mm->context.ldt, 46.41 (mm->context.size * LDT_ENTRY_SIZE) / 46.42 PAGE_SIZE); 46.43 - flush_page_update_queue(); 46.44 if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE) 46.45 vfree(mm->context.ldt); 46.46 else
47.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c Mon Apr 04 10:52:11 2005 +0000 47.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c Mon Apr 04 16:13:17 2005 +0000 47.3 @@ -15,7 +15,9 @@ 47.4 #include <asm/io.h> 47.5 #include <asm-xen/balloon.h> 47.6 47.7 -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) 47.8 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 47.9 +#include <asm/tlbflush.h> 47.10 +#else 47.11 #define pte_offset_kernel pte_offset 47.12 #define pud_t pgd_t 47.13 #define pud_offset(d, va) d 47.14 @@ -54,10 +56,10 @@ xen_contig_memory(unsigned long vstart, 47.15 pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE))); 47.16 pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); 47.17 pfn = pte->pte_low >> PAGE_SHIFT; 47.18 - queue_l1_entry_update(pte, 0); 47.19 + HYPERVISOR_update_va_mapping( 47.20 + vstart + (i*PAGE_SIZE), __pte_ma(0), 0); 47.21 phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = 47.22 INVALID_P2M_ENTRY; 47.23 - flush_page_update_queue(); 47.24 if (HYPERVISOR_dom_mem_op(MEMOP_decrease_reservation, 47.25 &pfn, 1, 0) != 1) BUG(); 47.26 } 47.27 @@ -70,17 +72,17 @@ xen_contig_memory(unsigned long vstart, 47.28 pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE))); 47.29 pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE))); 47.30 pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); 47.31 - queue_l1_entry_update( 47.32 - pte, ((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL); 47.33 - queue_machphys_update( 47.34 + HYPERVISOR_update_va_mapping( 47.35 + vstart + (i*PAGE_SIZE), 47.36 + __pte_ma(((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL), 0); 47.37 + xen_machphys_update( 47.38 pfn+i, (__pa(vstart)>>PAGE_SHIFT)+i); 47.39 phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = 47.40 pfn+i; 47.41 } 47.42 - /* Flush updates through and flush the TLB. */ 47.43 - xen_tlb_flush(); 47.44 + flush_tlb_all(); 47.45 47.46 - balloon_unlock(flags); 47.47 + balloon_unlock(flags); 47.48 } 47.49 47.50 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
48.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c Mon Apr 04 10:52:11 2005 +0000 48.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c Mon Apr 04 16:13:17 2005 +0000 48.3 @@ -46,7 +46,6 @@ 48.4 #include <asm/i387.h> 48.5 #include <asm/irq.h> 48.6 #include <asm/desc.h> 48.7 -#include <asm-xen/multicall.h> 48.8 #include <asm-xen/xen-public/physdev.h> 48.9 #ifdef CONFIG_MATH_EMULATION 48.10 #include <asm/math_emu.h> 48.11 @@ -444,28 +443,9 @@ struct task_struct fastcall * __switch_t 48.12 int cpu = smp_processor_id(); 48.13 struct tss_struct *tss = &per_cpu(init_tss, cpu); 48.14 physdev_op_t iopl_op, iobmp_op; 48.15 - 48.16 - /* NB. No need to disable interrupts as already done in sched.c */ 48.17 - /* __cli(); */ 48.18 - 48.19 - /* 48.20 - * Save away %fs and %gs. No need to save %es and %ds, as 48.21 - * those are always kernel segments while inside the kernel. 48.22 - */ 48.23 - asm volatile("movl %%fs,%0":"=m" (*(int *)&prev->fs)); 48.24 - asm volatile("movl %%gs,%0":"=m" (*(int *)&prev->gs)); 48.25 + multicall_entry_t _mcl[8], *mcl = _mcl; 48.26 48.27 - /* 48.28 - * We clobber FS and GS here so that we avoid a GPF when restoring 48.29 - * previous task's FS/GS values in Xen when the LDT is switched. 48.30 - */ 48.31 - __asm__ __volatile__ ( 48.32 - "xorl %%eax,%%eax; movl %%eax,%%fs; movl %%eax,%%gs" : : : 48.33 - "eax" ); 48.34 - 48.35 - MULTICALL_flush_page_update_queue(); 48.36 - 48.37 - /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */ 48.38 + /* XEN NOTE: FS/GS saved in switch_mm(), not here. */ 48.39 48.40 /* 48.41 * This is basically '__unlazy_fpu', except that we queue a 48.42 @@ -474,7 +454,9 @@ struct task_struct fastcall * __switch_t 48.43 */ 48.44 if (prev_p->thread_info->status & TS_USEDFPU) { 48.45 __save_init_fpu(prev_p); /* _not_ save_init_fpu() */ 48.46 - queue_multicall1(__HYPERVISOR_fpu_taskswitch, 1); 48.47 + mcl->op = __HYPERVISOR_fpu_taskswitch; 48.48 + mcl->args[0] = 1; 48.49 + mcl++; 48.50 } 48.51 48.52 /* 48.53 @@ -482,20 +464,25 @@ struct task_struct fastcall * __switch_t 48.54 * This is load_esp0(tss, next) with a multicall. 48.55 */ 48.56 tss->esp0 = next->esp0; 48.57 - queue_multicall2(__HYPERVISOR_stack_switch, tss->ss0, tss->esp0); 48.58 + mcl->op = __HYPERVISOR_stack_switch; 48.59 + mcl->args[0] = tss->ss0; 48.60 + mcl->args[1] = tss->esp0; 48.61 + mcl++; 48.62 48.63 /* 48.64 * Load the per-thread Thread-Local Storage descriptor. 48.65 * This is load_TLS(next, cpu) with multicalls. 48.66 */ 48.67 -#define C(i) do { \ 48.68 - if (unlikely(next->tls_array[i].a != prev->tls_array[i].a || \ 48.69 - next->tls_array[i].b != prev->tls_array[i].b)) \ 48.70 - queue_multicall3(__HYPERVISOR_update_descriptor, \ 48.71 - virt_to_machine(&get_cpu_gdt_table(cpu) \ 48.72 - [GDT_ENTRY_TLS_MIN + i]), \ 48.73 - ((u32 *)&next->tls_array[i])[0], \ 48.74 - ((u32 *)&next->tls_array[i])[1]); \ 48.75 +#define C(i) do { \ 48.76 + if (unlikely(next->tls_array[i].a != prev->tls_array[i].a || \ 48.77 + next->tls_array[i].b != prev->tls_array[i].b)) { \ 48.78 + mcl->op = __HYPERVISOR_update_descriptor; \ 48.79 + mcl->args[0] = virt_to_machine(&get_cpu_gdt_table(cpu) \ 48.80 + [GDT_ENTRY_TLS_MIN + i]); \ 48.81 + mcl->args[1] = ((u32 *)&next->tls_array[i])[0]; \ 48.82 + mcl->args[2] = ((u32 *)&next->tls_array[i])[1]; \ 48.83 + mcl++; \ 48.84 + } \ 48.85 } while (0) 48.86 C(0); C(1); C(2); 48.87 #undef C 48.88 @@ -503,8 +490,9 @@ struct task_struct fastcall * __switch_t 48.89 if (unlikely(prev->io_pl != next->io_pl)) { 48.90 iopl_op.cmd = PHYSDEVOP_SET_IOPL; 48.91 iopl_op.u.set_iopl.iopl = next->io_pl; 48.92 - queue_multicall1(__HYPERVISOR_physdev_op, 48.93 - (unsigned long)&iopl_op); 48.94 + mcl->op = __HYPERVISOR_physdev_op; 48.95 + mcl->args[0] = (unsigned long)&iopl_op; 48.96 + mcl++; 48.97 } 48.98 48.99 if (unlikely(prev->io_bitmap_ptr || next->io_bitmap_ptr)) { 48.100 @@ -514,13 +502,12 @@ struct task_struct fastcall * __switch_t 48.101 (unsigned long)next->io_bitmap_ptr; 48.102 iobmp_op.u.set_iobitmap.nr_ports = 48.103 next->io_bitmap_ptr ? IO_BITMAP_BITS : 0; 48.104 - queue_multicall1(__HYPERVISOR_physdev_op, 48.105 - (unsigned long)&iobmp_op); 48.106 + mcl->op = __HYPERVISOR_physdev_op; 48.107 + mcl->args[0] = (unsigned long)&iobmp_op; 48.108 + mcl++; 48.109 } 48.110 48.111 - /* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */ 48.112 - execute_multicall_list(); 48.113 - /* __sti(); */ 48.114 + (void)HYPERVISOR_multicall(_mcl, mcl - _mcl); 48.115 48.116 /* 48.117 * Restore %fs and %gs if needed.
49.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c Mon Apr 04 10:52:11 2005 +0000 49.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c Mon Apr 04 16:13:17 2005 +0000 49.3 @@ -362,9 +362,6 @@ EXPORT_SYMBOL(HYPERVISOR_shared_info); 49.4 unsigned int *phys_to_machine_mapping, *pfn_to_mfn_frame_list; 49.5 EXPORT_SYMBOL(phys_to_machine_mapping); 49.6 49.7 -DEFINE_PER_CPU(multicall_entry_t, multicall_list[8]); 49.8 -DEFINE_PER_CPU(int, nr_multicall_ents); 49.9 - 49.10 /* Raw start-of-day parameters from the hypervisor. */ 49.11 union xen_start_info_union xen_start_info_union; 49.12 49.13 @@ -1412,8 +1409,10 @@ void __init setup_arch(char **cmdline_p) 49.14 /* Register a call for panic conditions. */ 49.15 notifier_chain_register(&panic_notifier_list, &xen_panic_block); 49.16 49.17 - HYPERVISOR_vm_assist(VMASST_CMD_enable, 49.18 - VMASST_TYPE_4gb_segments); 49.19 + HYPERVISOR_vm_assist( 49.20 + VMASST_CMD_enable, VMASST_TYPE_4gb_segments); 49.21 + HYPERVISOR_vm_assist( 49.22 + VMASST_CMD_enable, VMASST_TYPE_writable_pagetables); 49.23 49.24 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); 49.25 early_cpu_init();
50.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c Mon Apr 04 10:52:11 2005 +0000 50.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c Mon Apr 04 16:13:17 2005 +0000 50.3 @@ -203,6 +203,7 @@ inline void send_IPI_mask_sequence(cpuma 50.4 50.5 #include <mach_ipi.h> /* must come after the send_IPI functions above for inlining */ 50.6 50.7 +#if 0 /* XEN */ 50.8 /* 50.9 * Smarter SMP flushing macros. 50.10 * c/o Linus Torvalds. 50.11 @@ -441,6 +442,22 @@ void flush_tlb_all(void) 50.12 on_each_cpu(do_flush_tlb_all, NULL, 1, 1); 50.13 } 50.14 50.15 +#else 50.16 + 50.17 +irqreturn_t smp_invalidate_interrupt(int irq, void *dev_id, 50.18 + struct pt_regs *regs) 50.19 +{ return 0; } 50.20 +void flush_tlb_current_task(void) 50.21 +{ xen_tlb_flush_mask(current->mm->cpu_vm_mask); } 50.22 +void flush_tlb_mm(struct mm_struct * mm) 50.23 +{ xen_tlb_flush_mask(mm->cpu_vm_mask); } 50.24 +void flush_tlb_page(struct vm_area_struct *vma, unsigned long va) 50.25 +{ xen_invlpg_mask(vma->vm_mm->cpu_vm_mask, va); } 50.26 +void flush_tlb_all(void) 50.27 +{ xen_tlb_flush_all(); } 50.28 + 50.29 +#endif /* XEN */ 50.30 + 50.31 /* 50.32 * this function sends a 'reschedule' IPI to another CPU. 50.33 * it goes straight through and wastes no time serializing
51.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c Mon Apr 04 10:52:11 2005 +0000 51.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c Mon Apr 04 16:13:17 2005 +0000 51.3 @@ -898,7 +898,6 @@ static int __init do_boot_cpu(int apicid 51.4 make_page_readonly((void *)va); 51.5 } 51.6 ctxt.gdt_ents = cpu_gdt_descr[cpu].size / 8; 51.7 - flush_page_update_queue(); 51.8 } 51.9 51.10 /* Ring 1 stack is the initial stack. */
52.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/traps.c Mon Apr 04 10:52:11 2005 +0000 52.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/traps.c Mon Apr 04 16:13:17 2005 +0000 52.3 @@ -465,14 +465,7 @@ fastcall void do_general_protection(stru 52.4 unsigned long ldt; 52.5 __asm__ __volatile__ ("sldt %0" : "=r" (ldt)); 52.6 if (ldt == 0) { 52.7 - mmu_update_t u; 52.8 - u.ptr = MMU_EXTENDED_COMMAND; 52.9 - u.ptr |= (unsigned long)&default_ldt[0]; 52.10 - u.val = MMUEXT_SET_LDT | (5 << MMUEXT_CMD_SHIFT); 52.11 - if (unlikely(HYPERVISOR_mmu_update(&u, 1, NULL) < 0)) { 52.12 - show_trace(NULL, (unsigned long *)&u); 52.13 - panic("Failed to install default LDT"); 52.14 - } 52.15 + xen_set_ldt((unsigned long)&default_ldt[0], 5); 52.16 return; 52.17 } 52.18 } 52.19 @@ -963,7 +956,6 @@ void __init trap_init(void) 52.20 * and a callgate to lcall27 for Solaris/x86 binaries 52.21 */ 52.22 make_lowmem_page_readonly(&default_ldt[0]); 52.23 - xen_flush_page_update_queue(); 52.24 52.25 /* 52.26 * Should be a barrier for any external CPU state.
53.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c Mon Apr 04 10:52:11 2005 +0000 53.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c Mon Apr 04 16:13:17 2005 +0000 53.3 @@ -553,7 +553,6 @@ vmalloc_fault: 53.4 if (!pmd_present(*pmd_k)) 53.5 goto no_context; 53.6 set_pmd(pmd, *pmd_k); 53.7 - xen_flush_page_update_queue(); /* flush PMD update */ 53.8 53.9 pte_k = pte_offset_kernel(pmd_k, address); 53.10 if (!pte_present(*pte_k))
54.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/hypervisor.c Mon Apr 04 10:52:11 2005 +0000 54.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/hypervisor.c Mon Apr 04 16:13:17 2005 +0000 54.3 @@ -34,396 +34,142 @@ 54.4 #include <asm/page.h> 54.5 #include <asm/pgtable.h> 54.6 #include <asm-xen/hypervisor.h> 54.7 -#include <asm-xen/multicall.h> 54.8 #include <asm-xen/balloon.h> 54.9 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 54.10 #include <linux/percpu.h> 54.11 +#include <asm/tlbflush.h> 54.12 #endif 54.13 54.14 -/* 54.15 - * This suffices to protect us if we ever move to SMP domains. 54.16 - * Further, it protects us against interrupts. At the very least, this is 54.17 - * required for the network driver which flushes the update queue before 54.18 - * pushing new receive buffers. 54.19 - */ 54.20 -static spinlock_t update_lock = SPIN_LOCK_UNLOCKED; 54.21 - 54.22 -/* Linux 2.6 isn't using the traditional batched interface. */ 54.23 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) 54.24 -#define QUEUE_SIZE 2048 54.25 #define pte_offset_kernel pte_offset 54.26 -#define pmd_val_ma(v) (v).pmd; 54.27 #define pud_t pgd_t 54.28 #define pud_offset(d, va) d 54.29 #else 54.30 -#ifdef CONFIG_SMP 54.31 -#define QUEUE_SIZE 1 54.32 -#else 54.33 -#define QUEUE_SIZE 128 54.34 -#endif 54.35 #define pmd_val_ma(v) (v).pud.pgd.pgd; 54.36 #endif 54.37 54.38 -DEFINE_PER_CPU(mmu_update_t, update_queue[QUEUE_SIZE]); 54.39 -DEFINE_PER_CPU(unsigned int, mmu_update_queue_idx); 54.40 - 54.41 -/* 54.42 - * MULTICALL_flush_page_update_queue: 54.43 - * This is a version of the flush which queues as part of a multicall. 54.44 - */ 54.45 -void MULTICALL_flush_page_update_queue(void) 54.46 -{ 54.47 - int cpu = smp_processor_id(); 54.48 - int idx; 54.49 - unsigned long flags; 54.50 - unsigned int _idx; 54.51 - spin_lock_irqsave(&update_lock, flags); 54.52 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.53 - if ( (_idx = idx) != 0 ) 54.54 - { 54.55 - per_cpu(mmu_update_queue_idx, cpu) = 0; 54.56 - wmb(); /* Make sure index is cleared first to avoid double updates. */ 54.57 - queue_multicall3(__HYPERVISOR_mmu_update, 54.58 - (unsigned long)&per_cpu(update_queue[0], cpu), 54.59 - (unsigned long)_idx, 54.60 - (unsigned long)NULL); 54.61 - } 54.62 - spin_unlock_irqrestore(&update_lock, flags); 54.63 -} 54.64 - 54.65 -static inline void __flush_page_update_queue(void) 54.66 -{ 54.67 - int cpu = smp_processor_id(); 54.68 - unsigned int _idx = per_cpu(mmu_update_queue_idx, cpu); 54.69 - per_cpu(mmu_update_queue_idx, cpu) = 0; 54.70 - wmb(); /* Make sure index is cleared first to avoid double updates. */ 54.71 - if ( unlikely(HYPERVISOR_mmu_update(&per_cpu(update_queue[0], cpu), _idx, NULL) < 0) ) 54.72 - { 54.73 - printk(KERN_ALERT "Failed to execute MMU updates.\n"); 54.74 - BUG(); 54.75 - } 54.76 -} 54.77 - 54.78 -void _flush_page_update_queue(void) 54.79 -{ 54.80 - int cpu = smp_processor_id(); 54.81 - unsigned long flags; 54.82 - spin_lock_irqsave(&update_lock, flags); 54.83 - if ( per_cpu(mmu_update_queue_idx, cpu) != 0 ) __flush_page_update_queue(); 54.84 - spin_unlock_irqrestore(&update_lock, flags); 54.85 -} 54.86 - 54.87 -static inline void increment_index(void) 54.88 -{ 54.89 - int cpu = smp_processor_id(); 54.90 - per_cpu(mmu_update_queue_idx, cpu)++; 54.91 - if ( unlikely(per_cpu(mmu_update_queue_idx, cpu) == QUEUE_SIZE) ) __flush_page_update_queue(); 54.92 -} 54.93 - 54.94 -static inline void increment_index_and_flush(void) 54.95 -{ 54.96 - int cpu = smp_processor_id(); 54.97 - per_cpu(mmu_update_queue_idx, cpu)++; 54.98 - __flush_page_update_queue(); 54.99 -} 54.100 - 54.101 -void queue_l1_entry_update(pte_t *ptr, unsigned long val) 54.102 -{ 54.103 - int cpu = smp_processor_id(); 54.104 - int idx; 54.105 - unsigned long flags; 54.106 - spin_lock_irqsave(&update_lock, flags); 54.107 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.108 - per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr); 54.109 - per_cpu(update_queue[idx], cpu).val = val; 54.110 - increment_index(); 54.111 - spin_unlock_irqrestore(&update_lock, flags); 54.112 -} 54.113 - 54.114 -void queue_l2_entry_update(pmd_t *ptr, pmd_t val) 54.115 -{ 54.116 - int cpu = smp_processor_id(); 54.117 - int idx; 54.118 - unsigned long flags; 54.119 - spin_lock_irqsave(&update_lock, flags); 54.120 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.121 - per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr); 54.122 - per_cpu(update_queue[idx], cpu).val = pmd_val_ma(val); 54.123 - increment_index(); 54.124 - spin_unlock_irqrestore(&update_lock, flags); 54.125 -} 54.126 - 54.127 -void queue_pt_switch(unsigned long ptr) 54.128 -{ 54.129 - int cpu = smp_processor_id(); 54.130 - int idx; 54.131 - unsigned long flags; 54.132 - spin_lock_irqsave(&update_lock, flags); 54.133 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.134 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.135 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.136 - per_cpu(update_queue[idx], cpu).val = MMUEXT_NEW_BASEPTR; 54.137 - increment_index(); 54.138 - spin_unlock_irqrestore(&update_lock, flags); 54.139 -} 54.140 - 54.141 -void queue_tlb_flush(void) 54.142 -{ 54.143 - int cpu = smp_processor_id(); 54.144 - int idx; 54.145 - unsigned long flags; 54.146 - spin_lock_irqsave(&update_lock, flags); 54.147 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.148 - per_cpu(update_queue[idx], cpu).ptr = MMU_EXTENDED_COMMAND; 54.149 - per_cpu(update_queue[idx], cpu).val = MMUEXT_TLB_FLUSH; 54.150 - increment_index(); 54.151 - spin_unlock_irqrestore(&update_lock, flags); 54.152 -} 54.153 - 54.154 -void queue_invlpg(unsigned long ptr) 54.155 -{ 54.156 - int cpu = smp_processor_id(); 54.157 - int idx; 54.158 - unsigned long flags; 54.159 - spin_lock_irqsave(&update_lock, flags); 54.160 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.161 - per_cpu(update_queue[idx], cpu).ptr = MMU_EXTENDED_COMMAND; 54.162 - per_cpu(update_queue[idx], cpu).ptr |= ptr & PAGE_MASK; 54.163 - per_cpu(update_queue[idx], cpu).val = MMUEXT_INVLPG; 54.164 - increment_index(); 54.165 - spin_unlock_irqrestore(&update_lock, flags); 54.166 -} 54.167 - 54.168 -void queue_pgd_pin(unsigned long ptr) 54.169 -{ 54.170 - int cpu = smp_processor_id(); 54.171 - int idx; 54.172 - unsigned long flags; 54.173 - spin_lock_irqsave(&update_lock, flags); 54.174 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.175 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.176 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.177 - per_cpu(update_queue[idx], cpu).val = MMUEXT_PIN_L2_TABLE; 54.178 - increment_index(); 54.179 - spin_unlock_irqrestore(&update_lock, flags); 54.180 -} 54.181 - 54.182 -void queue_pgd_unpin(unsigned long ptr) 54.183 -{ 54.184 - int cpu = smp_processor_id(); 54.185 - int idx; 54.186 - unsigned long flags; 54.187 - spin_lock_irqsave(&update_lock, flags); 54.188 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.189 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.190 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.191 - per_cpu(update_queue[idx], cpu).val = MMUEXT_UNPIN_TABLE; 54.192 - increment_index(); 54.193 - spin_unlock_irqrestore(&update_lock, flags); 54.194 -} 54.195 - 54.196 -void queue_pte_pin(unsigned long ptr) 54.197 -{ 54.198 - int cpu = smp_processor_id(); 54.199 - int idx; 54.200 - unsigned long flags; 54.201 - spin_lock_irqsave(&update_lock, flags); 54.202 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.203 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.204 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.205 - per_cpu(update_queue[idx], cpu).val = MMUEXT_PIN_L1_TABLE; 54.206 - increment_index(); 54.207 - spin_unlock_irqrestore(&update_lock, flags); 54.208 -} 54.209 - 54.210 -void queue_pte_unpin(unsigned long ptr) 54.211 -{ 54.212 - int cpu = smp_processor_id(); 54.213 - int idx; 54.214 - unsigned long flags; 54.215 - spin_lock_irqsave(&update_lock, flags); 54.216 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.217 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.218 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.219 - per_cpu(update_queue[idx], cpu).val = MMUEXT_UNPIN_TABLE; 54.220 - increment_index(); 54.221 - spin_unlock_irqrestore(&update_lock, flags); 54.222 -} 54.223 - 54.224 -void queue_set_ldt(unsigned long ptr, unsigned long len) 54.225 -{ 54.226 - int cpu = smp_processor_id(); 54.227 - int idx; 54.228 - unsigned long flags; 54.229 - spin_lock_irqsave(&update_lock, flags); 54.230 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.231 - per_cpu(update_queue[idx], cpu).ptr = MMU_EXTENDED_COMMAND | ptr; 54.232 - per_cpu(update_queue[idx], cpu).val = MMUEXT_SET_LDT | (len << MMUEXT_CMD_SHIFT); 54.233 - increment_index(); 54.234 - spin_unlock_irqrestore(&update_lock, flags); 54.235 -} 54.236 - 54.237 -void queue_machphys_update(unsigned long mfn, unsigned long pfn) 54.238 -{ 54.239 - int cpu = smp_processor_id(); 54.240 - int idx; 54.241 - unsigned long flags; 54.242 - spin_lock_irqsave(&update_lock, flags); 54.243 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.244 - per_cpu(update_queue[idx], cpu).ptr = (mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE; 54.245 - per_cpu(update_queue[idx], cpu).val = pfn; 54.246 - increment_index(); 54.247 - spin_unlock_irqrestore(&update_lock, flags); 54.248 -} 54.249 - 54.250 -/* queue and flush versions of the above */ 54.251 void xen_l1_entry_update(pte_t *ptr, unsigned long val) 54.252 { 54.253 - int cpu = smp_processor_id(); 54.254 - int idx; 54.255 - unsigned long flags; 54.256 - spin_lock_irqsave(&update_lock, flags); 54.257 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.258 - per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr); 54.259 - per_cpu(update_queue[idx], cpu).val = val; 54.260 - increment_index_and_flush(); 54.261 - spin_unlock_irqrestore(&update_lock, flags); 54.262 + mmu_update_t u; 54.263 + u.ptr = virt_to_machine(ptr); 54.264 + u.val = val; 54.265 + BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0); 54.266 } 54.267 54.268 void xen_l2_entry_update(pmd_t *ptr, pmd_t val) 54.269 { 54.270 - int cpu = smp_processor_id(); 54.271 - int idx; 54.272 - unsigned long flags; 54.273 - spin_lock_irqsave(&update_lock, flags); 54.274 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.275 - per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr); 54.276 - per_cpu(update_queue[idx], cpu).val = pmd_val_ma(val); 54.277 - increment_index_and_flush(); 54.278 - spin_unlock_irqrestore(&update_lock, flags); 54.279 + mmu_update_t u; 54.280 + u.ptr = virt_to_machine(ptr); 54.281 + u.val = pmd_val_ma(val); 54.282 + BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0); 54.283 +} 54.284 + 54.285 +void xen_machphys_update(unsigned long mfn, unsigned long pfn) 54.286 +{ 54.287 + mmu_update_t u; 54.288 + u.ptr = (mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE; 54.289 + u.val = pfn; 54.290 + BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0); 54.291 } 54.292 54.293 void xen_pt_switch(unsigned long ptr) 54.294 { 54.295 - int cpu = smp_processor_id(); 54.296 - int idx; 54.297 - unsigned long flags; 54.298 - spin_lock_irqsave(&update_lock, flags); 54.299 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.300 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.301 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.302 - per_cpu(update_queue[idx], cpu).val = MMUEXT_NEW_BASEPTR; 54.303 - increment_index_and_flush(); 54.304 - spin_unlock_irqrestore(&update_lock, flags); 54.305 + struct mmuext_op op; 54.306 + op.cmd = MMUEXT_NEW_BASEPTR; 54.307 + op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT); 54.308 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.309 } 54.310 54.311 void xen_tlb_flush(void) 54.312 { 54.313 - int cpu = smp_processor_id(); 54.314 - int idx; 54.315 - unsigned long flags; 54.316 - spin_lock_irqsave(&update_lock, flags); 54.317 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.318 - per_cpu(update_queue[idx], cpu).ptr = MMU_EXTENDED_COMMAND; 54.319 - per_cpu(update_queue[idx], cpu).val = MMUEXT_TLB_FLUSH; 54.320 - increment_index_and_flush(); 54.321 - spin_unlock_irqrestore(&update_lock, flags); 54.322 + struct mmuext_op op; 54.323 + op.cmd = MMUEXT_TLB_FLUSH_LOCAL; 54.324 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.325 } 54.326 54.327 void xen_invlpg(unsigned long ptr) 54.328 { 54.329 - int cpu = smp_processor_id(); 54.330 - int idx; 54.331 - unsigned long flags; 54.332 - spin_lock_irqsave(&update_lock, flags); 54.333 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.334 - per_cpu(update_queue[idx], cpu).ptr = MMU_EXTENDED_COMMAND; 54.335 - per_cpu(update_queue[idx], cpu).ptr |= ptr & PAGE_MASK; 54.336 - per_cpu(update_queue[idx], cpu).val = MMUEXT_INVLPG; 54.337 - increment_index_and_flush(); 54.338 - spin_unlock_irqrestore(&update_lock, flags); 54.339 + struct mmuext_op op; 54.340 + op.cmd = MMUEXT_INVLPG_LOCAL; 54.341 + op.linear_addr = ptr & PAGE_MASK; 54.342 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.343 +} 54.344 + 54.345 +#ifdef CONFIG_SMP 54.346 + 54.347 +void xen_tlb_flush_all(void) 54.348 +{ 54.349 + struct mmuext_op op; 54.350 + op.cmd = MMUEXT_TLB_FLUSH_ALL; 54.351 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.352 } 54.353 54.354 +void xen_tlb_flush_mask(cpumask_t mask) 54.355 +{ 54.356 + struct mmuext_op op; 54.357 + op.cmd = MMUEXT_TLB_FLUSH_MULTI; 54.358 + op.cpuset = (unsigned long)mask.bits; 54.359 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.360 +} 54.361 + 54.362 +void xen_invlpg_all(unsigned long ptr) 54.363 +{ 54.364 + struct mmuext_op op; 54.365 + op.cmd = MMUEXT_INVLPG_ALL; 54.366 + op.linear_addr = ptr & PAGE_MASK; 54.367 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.368 +} 54.369 + 54.370 +void xen_invlpg_mask(cpumask_t mask, unsigned long ptr) 54.371 +{ 54.372 + struct mmuext_op op; 54.373 + op.cmd = MMUEXT_INVLPG_MULTI; 54.374 + op.cpuset = (unsigned long)mask.bits; 54.375 + op.linear_addr = ptr & PAGE_MASK; 54.376 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.377 +} 54.378 + 54.379 +#endif /* CONFIG_SMP */ 54.380 + 54.381 void xen_pgd_pin(unsigned long ptr) 54.382 { 54.383 - int cpu = smp_processor_id(); 54.384 - int idx; 54.385 - unsigned long flags; 54.386 - spin_lock_irqsave(&update_lock, flags); 54.387 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.388 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.389 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.390 - per_cpu(update_queue[idx], cpu).val = MMUEXT_PIN_L2_TABLE; 54.391 - increment_index_and_flush(); 54.392 - spin_unlock_irqrestore(&update_lock, flags); 54.393 + struct mmuext_op op; 54.394 + op.cmd = MMUEXT_PIN_L2_TABLE; 54.395 + op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT); 54.396 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.397 } 54.398 54.399 void xen_pgd_unpin(unsigned long ptr) 54.400 { 54.401 - int cpu = smp_processor_id(); 54.402 - int idx; 54.403 - unsigned long flags; 54.404 - spin_lock_irqsave(&update_lock, flags); 54.405 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.406 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.407 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.408 - per_cpu(update_queue[idx], cpu).val = MMUEXT_UNPIN_TABLE; 54.409 - increment_index_and_flush(); 54.410 - spin_unlock_irqrestore(&update_lock, flags); 54.411 + struct mmuext_op op; 54.412 + op.cmd = MMUEXT_UNPIN_TABLE; 54.413 + op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT); 54.414 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.415 } 54.416 54.417 void xen_pte_pin(unsigned long ptr) 54.418 { 54.419 - int cpu = smp_processor_id(); 54.420 - int idx; 54.421 - unsigned long flags; 54.422 - spin_lock_irqsave(&update_lock, flags); 54.423 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.424 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.425 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.426 - per_cpu(update_queue[idx], cpu).val = MMUEXT_PIN_L1_TABLE; 54.427 - increment_index_and_flush(); 54.428 - spin_unlock_irqrestore(&update_lock, flags); 54.429 + struct mmuext_op op; 54.430 + op.cmd = MMUEXT_PIN_L1_TABLE; 54.431 + op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT); 54.432 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.433 } 54.434 54.435 void xen_pte_unpin(unsigned long ptr) 54.436 { 54.437 - int cpu = smp_processor_id(); 54.438 - int idx; 54.439 - unsigned long flags; 54.440 - spin_lock_irqsave(&update_lock, flags); 54.441 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.442 - per_cpu(update_queue[idx], cpu).ptr = phys_to_machine(ptr); 54.443 - per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND; 54.444 - per_cpu(update_queue[idx], cpu).val = MMUEXT_UNPIN_TABLE; 54.445 - increment_index_and_flush(); 54.446 - spin_unlock_irqrestore(&update_lock, flags); 54.447 + struct mmuext_op op; 54.448 + op.cmd = MMUEXT_UNPIN_TABLE; 54.449 + op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT); 54.450 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.451 } 54.452 54.453 void xen_set_ldt(unsigned long ptr, unsigned long len) 54.454 { 54.455 - int cpu = smp_processor_id(); 54.456 - int idx; 54.457 - unsigned long flags; 54.458 - spin_lock_irqsave(&update_lock, flags); 54.459 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.460 - per_cpu(update_queue[idx], cpu).ptr = MMU_EXTENDED_COMMAND | ptr; 54.461 - per_cpu(update_queue[idx], cpu).val = MMUEXT_SET_LDT | (len << MMUEXT_CMD_SHIFT); 54.462 - increment_index_and_flush(); 54.463 - spin_unlock_irqrestore(&update_lock, flags); 54.464 -} 54.465 - 54.466 -void xen_machphys_update(unsigned long mfn, unsigned long pfn) 54.467 -{ 54.468 - int cpu = smp_processor_id(); 54.469 - int idx; 54.470 - unsigned long flags; 54.471 - spin_lock_irqsave(&update_lock, flags); 54.472 - idx = per_cpu(mmu_update_queue_idx, cpu); 54.473 - per_cpu(update_queue[idx], cpu).ptr = (mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE; 54.474 - per_cpu(update_queue[idx], cpu).val = pfn; 54.475 - increment_index_and_flush(); 54.476 - spin_unlock_irqrestore(&update_lock, flags); 54.477 + struct mmuext_op op; 54.478 + op.cmd = MMUEXT_SET_LDT; 54.479 + op.linear_addr = ptr; 54.480 + op.nr_ents = len; 54.481 + BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); 54.482 } 54.483 54.484 #ifdef CONFIG_XEN_PHYSDEV_ACCESS 54.485 @@ -456,12 +202,11 @@ unsigned long allocate_empty_lowmem_regi 54.486 pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE))); 54.487 pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); 54.488 pfn_array[i] = pte->pte_low >> PAGE_SHIFT; 54.489 - queue_l1_entry_update(pte, 0); 54.490 + HYPERVISOR_update_va_mapping(vstart + (i*PAGE_SIZE), __pte_ma(0), 0); 54.491 phys_to_machine_mapping[__pa(vstart)>>PAGE_SHIFT] = INVALID_P2M_ENTRY; 54.492 } 54.493 54.494 - /* Flush updates through and flush the TLB. */ 54.495 - xen_tlb_flush(); 54.496 + flush_tlb_all(); 54.497 54.498 balloon_put_pages(pfn_array, 1 << order); 54.499
55.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c Mon Apr 04 10:52:11 2005 +0000 55.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c Mon Apr 04 16:13:17 2005 +0000 55.3 @@ -192,7 +192,6 @@ static void __init kernel_physical_mappi 55.4 } 55.5 pte_ofs = 0; 55.6 } 55.7 - flush_page_update_queue(); 55.8 } 55.9 pmd_idx = 0; 55.10 } 55.11 @@ -356,12 +355,11 @@ static void __init pagetable_init (void) 55.12 */ 55.13 memcpy(new_pgd, old_pgd, PTRS_PER_PGD_NO_HV*sizeof(pgd_t)); 55.14 make_page_readonly(new_pgd); 55.15 - queue_pgd_pin(__pa(new_pgd)); 55.16 + xen_pgd_pin(__pa(new_pgd)); 55.17 load_cr3(new_pgd); 55.18 - queue_pgd_unpin(__pa(old_pgd)); 55.19 - __flush_tlb_all(); /* implicit flush */ 55.20 + xen_pgd_unpin(__pa(old_pgd)); 55.21 make_page_writable(old_pgd); 55.22 - flush_page_update_queue(); 55.23 + __flush_tlb_all(); 55.24 free_bootmem(__pa(old_pgd), PAGE_SIZE); 55.25 55.26 kernel_physical_mapping_init(new_pgd); 55.27 @@ -564,7 +562,6 @@ void __init paging_init(void) 55.28 zone_sizes_init(); 55.29 55.30 /* Switch to the real shared_info page, and clear the dummy page. */ 55.31 - flush_page_update_queue(); 55.32 set_fixmap_ma(FIX_SHARED_INFO, xen_start_info.shared_info); 55.33 HYPERVISOR_shared_info = (shared_info_t *)fix_to_virt(FIX_SHARED_INFO); 55.34 memset(empty_zero_page, 0, sizeof(empty_zero_page));
56.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/ioremap.c Mon Apr 04 10:52:11 2005 +0000 56.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/ioremap.c Mon Apr 04 16:13:17 2005 +0000 56.3 @@ -108,7 +108,7 @@ void __iomem * __ioremap(unsigned long p 56.4 if(!PageReserved(page)) 56.5 return NULL; 56.6 56.7 - domid = DOMID_LOCAL; 56.8 + domid = DOMID_SELF; 56.9 } 56.10 56.11 /* 56.12 @@ -393,15 +393,7 @@ int direct_remap_area_pages(struct mm_st 56.13 int i; 56.14 unsigned long start_address; 56.15 #define MAX_DIRECTMAP_MMU_QUEUE 130 56.16 - mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *w, *v; 56.17 - 56.18 - v = w = &u[0]; 56.19 - if (domid != DOMID_LOCAL) { 56.20 - u[0].ptr = MMU_EXTENDED_COMMAND; 56.21 - u[0].val = MMUEXT_SET_FOREIGNDOM; 56.22 - u[0].val |= (unsigned long)domid << 16; 56.23 - v = w = &u[1]; 56.24 - } 56.25 + mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *v = u; 56.26 56.27 start_address = address; 56.28 56.29 @@ -413,11 +405,11 @@ int direct_remap_area_pages(struct mm_st 56.30 __direct_remap_area_pages(mm, 56.31 start_address, 56.32 address-start_address, 56.33 - w); 56.34 + u); 56.35 56.36 - if (HYPERVISOR_mmu_update(u, v - u, NULL) < 0) 56.37 + if (HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0) 56.38 return -EFAULT; 56.39 - v = w; 56.40 + v = u; 56.41 start_address = address; 56.42 } 56.43 56.44 @@ -432,13 +424,13 @@ int direct_remap_area_pages(struct mm_st 56.45 v++; 56.46 } 56.47 56.48 - if (v != w) { 56.49 + if (v != u) { 56.50 /* get the ptep's filled in */ 56.51 __direct_remap_area_pages(mm, 56.52 start_address, 56.53 address-start_address, 56.54 - w); 56.55 - if (unlikely(HYPERVISOR_mmu_update(u, v - u, NULL) < 0)) 56.56 + u); 56.57 + if (unlikely(HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0)) 56.58 return -EFAULT; 56.59 } 56.60
57.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c Mon Apr 04 10:52:11 2005 +0000 57.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c Mon Apr 04 16:13:17 2005 +0000 57.3 @@ -193,10 +193,8 @@ void __set_fixmap_ma (enum fixed_address 57.4 pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) 57.5 { 57.6 pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); 57.7 - if (pte) { 57.8 + if (pte) 57.9 make_page_readonly(pte); 57.10 - xen_flush_page_update_queue(); 57.11 - } 57.12 return pte; 57.13 } 57.14 57.15 @@ -208,8 +206,7 @@ void pte_ctor(void *pte, kmem_cache_t *c 57.16 57.17 clear_page(pte); 57.18 make_page_readonly(pte); 57.19 - queue_pte_pin(__pa(pte)); 57.20 - flush_page_update_queue(); 57.21 + xen_pte_pin(__pa(pte)); 57.22 } 57.23 57.24 void pte_dtor(void *pte, kmem_cache_t *cache, unsigned long unused) 57.25 @@ -217,9 +214,8 @@ void pte_dtor(void *pte, kmem_cache_t *c 57.26 struct page *page = virt_to_page(pte); 57.27 ClearPageForeign(page); 57.28 57.29 - queue_pte_unpin(__pa(pte)); 57.30 + xen_pte_unpin(__pa(pte)); 57.31 make_page_writable(pte); 57.32 - flush_page_update_queue(); 57.33 } 57.34 57.35 struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) 57.36 @@ -316,8 +312,7 @@ void pgd_ctor(void *pgd, kmem_cache_t *c 57.37 memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t)); 57.38 out: 57.39 make_page_readonly(pgd); 57.40 - queue_pgd_pin(__pa(pgd)); 57.41 - flush_page_update_queue(); 57.42 + xen_pgd_pin(__pa(pgd)); 57.43 } 57.44 57.45 /* never called when PTRS_PER_PMD > 1 */ 57.46 @@ -325,9 +320,8 @@ void pgd_dtor(void *pgd, kmem_cache_t *c 57.47 { 57.48 unsigned long flags; /* can be called from interrupt context */ 57.49 57.50 - queue_pgd_unpin(__pa(pgd)); 57.51 + xen_pgd_unpin(__pa(pgd)); 57.52 make_page_writable(pgd); 57.53 - flush_page_update_queue(); 57.54 57.55 if (PTRS_PER_PMD > 1) 57.56 return; 57.57 @@ -378,7 +372,7 @@ void make_lowmem_page_readonly(void *va) 57.58 pud_t *pud = pud_offset(pgd, (unsigned long)va); 57.59 pmd_t *pmd = pmd_offset(pud, (unsigned long)va); 57.60 pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va); 57.61 - queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW); 57.62 + set_pte(pte, pte_wrprotect(*pte)); 57.63 } 57.64 57.65 void make_lowmem_page_writable(void *va) 57.66 @@ -387,7 +381,7 @@ void make_lowmem_page_writable(void *va) 57.67 pud_t *pud = pud_offset(pgd, (unsigned long)va); 57.68 pmd_t *pmd = pmd_offset(pud, (unsigned long)va); 57.69 pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va); 57.70 - queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW); 57.71 + set_pte(pte, pte_mkwrite(*pte)); 57.72 } 57.73 57.74 void make_page_readonly(void *va) 57.75 @@ -396,7 +390,7 @@ void make_page_readonly(void *va) 57.76 pud_t *pud = pud_offset(pgd, (unsigned long)va); 57.77 pmd_t *pmd = pmd_offset(pud, (unsigned long)va); 57.78 pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va); 57.79 - queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW); 57.80 + set_pte(pte, pte_wrprotect(*pte)); 57.81 if ( (unsigned long)va >= (unsigned long)high_memory ) 57.82 { 57.83 unsigned long phys; 57.84 @@ -414,7 +408,7 @@ void make_page_writable(void *va) 57.85 pud_t *pud = pud_offset(pgd, (unsigned long)va); 57.86 pmd_t *pmd = pmd_offset(pud, (unsigned long)va); 57.87 pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va); 57.88 - queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW); 57.89 + set_pte(pte, pte_mkwrite(*pte)); 57.90 if ( (unsigned long)va >= (unsigned long)high_memory ) 57.91 { 57.92 unsigned long phys;
58.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/ctrl_if.c Mon Apr 04 10:52:11 2005 +0000 58.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/ctrl_if.c Mon Apr 04 16:13:17 2005 +0000 58.3 @@ -503,8 +503,8 @@ void ctrl_if_resume(void) 58.4 } 58.5 58.6 /* Sync up with shared indexes. */ 58.7 - FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring); 58.8 - BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring); 58.9 + FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM); 58.10 + BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM); 58.11 58.12 ctrl_if_evtchn = xen_start_info.domain_controller_evtchn; 58.13 ctrl_if_irq = bind_evtchn_to_irq(ctrl_if_evtchn); 58.14 @@ -523,8 +523,8 @@ void __init ctrl_if_init(void) 58.15 for ( i = 0; i < 256; i++ ) 58.16 ctrl_if_rxmsg_handler[i] = ctrl_if_rxmsg_default_handler; 58.17 58.18 - FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring); 58.19 - BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring); 58.20 + FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM); 58.21 + BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM); 58.22 58.23 spin_lock_init(&ctrl_if_lock); 58.24
59.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c Mon Apr 04 10:52:11 2005 +0000 59.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c Mon Apr 04 16:13:17 2005 +0000 59.3 @@ -50,8 +50,8 @@ 59.4 59.5 if ( !test_and_set_bit(0, &printed) ) 59.6 { 59.7 - HYPERVISOR_vm_assist(VMASST_CMD_disable, 59.8 - VMASST_TYPE_4gb_segments_notify); 59.9 + HYPERVISOR_vm_assist( 59.10 + VMASST_CMD_disable, VMASST_TYPE_4gb_segments_notify); 59.11 59.12 DP(""); 59.13 DP("***************************************************************"); 59.14 @@ -79,8 +79,8 @@ 59.15 59.16 static int __init fixup_init(void) 59.17 { 59.18 - HYPERVISOR_vm_assist(VMASST_CMD_enable, 59.19 - VMASST_TYPE_4gb_segments_notify); 59.20 + HYPERVISOR_vm_assist( 59.21 + VMASST_CMD_enable, VMASST_TYPE_4gb_segments_notify); 59.22 return 0; 59.23 } 59.24 __initcall(fixup_init);
60.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c Mon Apr 04 10:52:11 2005 +0000 60.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c Mon Apr 04 16:13:17 2005 +0000 60.3 @@ -77,6 +77,13 @@ static void __do_suspend(void) 60.4 #define netif_resume() do{}while(0) 60.5 #endif 60.6 60.7 + 60.8 +#ifdef CONFIG_XEN_USB_FRONTEND 60.9 + extern void usbif_resume(); 60.10 +#else 60.11 +#define usbif_resume() do{}while(0) 60.12 +#endif 60.13 + 60.14 extern void time_suspend(void); 60.15 extern void time_resume(void); 60.16 extern unsigned long max_pfn; 60.17 @@ -103,20 +110,15 @@ static void __do_suspend(void) 60.18 HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page; 60.19 clear_fixmap(FIX_SHARED_INFO); 60.20 60.21 - memcpy(&suspend_record->resume_info, &xen_start_info, sizeof(xen_start_info)); 60.22 + memcpy(&suspend_record->resume_info, &xen_start_info, 60.23 + sizeof(xen_start_info)); 60.24 60.25 HYPERVISOR_suspend(virt_to_machine(suspend_record) >> PAGE_SHIFT); 60.26 60.27 - HYPERVISOR_vm_assist(VMASST_CMD_enable, 60.28 - VMASST_TYPE_4gb_segments); 60.29 -#ifdef CONFIG_XEN_WRITABLE_PAGETABLES 60.30 - HYPERVISOR_vm_assist(VMASST_CMD_enable, 60.31 - VMASST_TYPE_writable_pagetables); 60.32 -#endif 60.33 - 60.34 shutting_down = -1; 60.35 60.36 - memcpy(&xen_start_info, &suspend_record->resume_info, sizeof(xen_start_info)); 60.37 + memcpy(&xen_start_info, &suspend_record->resume_info, 60.38 + sizeof(xen_start_info)); 60.39 60.40 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 60.41 set_fixmap_ma(FIX_SHARED_INFO, xen_start_info.shared_info); 60.42 @@ -147,6 +149,8 @@ static void __do_suspend(void) 60.43 60.44 netif_resume(); 60.45 60.46 + usbif_resume(); 60.47 + 60.48 __sti(); 60.49 60.50 out: 60.51 @@ -242,7 +246,7 @@ static void shutdown_handler(ctrl_msg_t 60.52 else if ( (pending_sysrq == -1) && 60.53 (msg->subtype == CMSG_SHUTDOWN_SYSRQ) ) 60.54 { 60.55 - pending_sysrq = msg->msg[0]; 60.56 + pending_sysrq = ((shutdown_sysrq_t *)&msg->msg[0])->key; 60.57 schedule_work(&sysrq_work); 60.58 } 60.59 else
61.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 61.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig Mon Apr 04 16:13:17 2005 +0000 61.3 @@ -0,0 +1,463 @@ 61.4 +# 61.5 +# For a description of the syntax of this configuration file, 61.6 +# see Documentation/kbuild/kconfig-language.txt. 61.7 +# 61.8 +# Note: ISA is disabled and will hopefully never be enabled. 61.9 +# If you managed to buy an ISA x86-64 box you'll have to fix all the 61.10 +# ISA drivers you need yourself. 61.11 +# 61.12 + 61.13 +menu "X86_64 processor configuration" 61.14 + depends XEN_X86_64 61.15 + 61.16 +config XENARCH 61.17 + string 61.18 + default x86_64 61.19 + 61.20 +config X86_64 61.21 + bool 61.22 + default y 61.23 + help 61.24 + Port to the x86-64 architecture. x86-64 is a 64-bit extension to the 61.25 + classical 32-bit x86 architecture. For details see 61.26 + <http://www.x86-64.org/>. 61.27 + 61.28 +config X86 61.29 + bool 61.30 + default y 61.31 + 61.32 +config 64BIT 61.33 + def_bool y 61.34 + 61.35 +#config X86 61.36 +# bool 61.37 +# default y 61.38 + 61.39 +config MMU 61.40 + bool 61.41 + default y 61.42 + 61.43 +config ISA 61.44 + bool 61.45 + 61.46 +config SBUS 61.47 + bool 61.48 + 61.49 +config RWSEM_GENERIC_SPINLOCK 61.50 + bool 61.51 + default y 61.52 + 61.53 +config RWSEM_XCHGADD_ALGORITHM 61.54 + bool 61.55 + 61.56 +config GENERIC_CALIBRATE_DELAY 61.57 + bool 61.58 + default y 61.59 + 61.60 +config X86_CMPXCHG 61.61 + bool 61.62 + default y 61.63 + 61.64 +config EARLY_PRINTK 61.65 + bool "Early Printk" 61.66 + default n 61.67 + help 61.68 + Write kernel log output directly into the VGA buffer or to a serial 61.69 + port. 61.70 + 61.71 + This is useful for kernel debugging when your machine crashes very 61.72 + early before the console code is initialized. For normal operation 61.73 + it is not recommended because it looks ugly and doesn't cooperate 61.74 + with klogd/syslogd or the X server. You should normally N here, 61.75 + unless you want to debug such a crash. 61.76 + 61.77 +config HPET_TIMER 61.78 + bool 61.79 + default n 61.80 + help 61.81 + Use the IA-PC HPET (High Precision Event Timer) to manage 61.82 + time in preference to the PIT and RTC, if a HPET is 61.83 + present. The HPET provides a stable time base on SMP 61.84 + systems, unlike the RTC, but it is more expensive to access, 61.85 + as it is off-chip. You can find the HPET spec at 61.86 + <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>. 61.87 + 61.88 + If unsure, say Y. 61.89 + 61.90 +config HPET_EMULATE_RTC 61.91 + bool "Provide RTC interrupt" 61.92 + depends on HPET_TIMER && RTC=y 61.93 + 61.94 +config GENERIC_ISA_DMA 61.95 + bool 61.96 + default y 61.97 + 61.98 +config GENERIC_IOMAP 61.99 + bool 61.100 + default y 61.101 + 61.102 +#source "init/Kconfig" 61.103 + 61.104 + 61.105 +menu "Processor type and features" 61.106 + 61.107 +choice 61.108 + prompt "Processor family" 61.109 + default MK8 61.110 + 61.111 +config MK8 61.112 + bool "AMD-Opteron/Athlon64" 61.113 + help 61.114 + Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 61.115 + 61.116 +config MPSC 61.117 + bool "Intel x86-64" 61.118 + help 61.119 + Optimize for Intel IA32 with 64bit extension CPUs 61.120 + (Prescott/Nocona/Potomac) 61.121 + 61.122 +config GENERIC_CPU 61.123 + bool "Generic-x86-64" 61.124 + help 61.125 + Generic x86-64 CPU. 61.126 + 61.127 +endchoice 61.128 + 61.129 +# 61.130 +# Define implied options from the CPU selection here 61.131 +# 61.132 +config X86_L1_CACHE_BYTES 61.133 + int 61.134 + default "128" if GENERIC_CPU || MPSC 61.135 + default "64" if MK8 61.136 + 61.137 +config X86_L1_CACHE_SHIFT 61.138 + int 61.139 + default "7" if GENERIC_CPU || MPSC 61.140 + default "6" if MK8 61.141 + 61.142 +config X86_TSC 61.143 + bool 61.144 + default n 61.145 + 61.146 +config X86_GOOD_APIC 61.147 + bool 61.148 + default y 61.149 + 61.150 +config MICROCODE 61.151 + tristate "/dev/cpu/microcode - Intel CPU microcode support" 61.152 + ---help--- 61.153 + If you say Y here the 'File systems' section, you will be 61.154 + able to update the microcode on Intel processors. You will 61.155 + obviously need the actual microcode binary data itself which is 61.156 + not shipped with the Linux kernel. 61.157 + 61.158 + For latest news and information on obtaining all the required 61.159 + ingredients for this driver, check: 61.160 + <http://www.urbanmyth.org/microcode/>. 61.161 + 61.162 + To compile this driver as a module, choose M here: the 61.163 + module will be called microcode. 61.164 + If you use modprobe or kmod you may also want to add the line 61.165 + 'alias char-major-10-184 microcode' to your /etc/modules.conf file. 61.166 + 61.167 +config X86_MSR 61.168 + tristate "/dev/cpu/*/msr - Model-specific register support" 61.169 + help 61.170 + This device gives privileged processes access to the x86 61.171 + Model-Specific Registers (MSRs). It is a character device with 61.172 + major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 61.173 + MSR accesses are directed to a specific CPU on multi-processor 61.174 + systems. 61.175 + 61.176 +config X86_CPUID 61.177 + tristate "/dev/cpu/*/cpuid - CPU information support" 61.178 + help 61.179 + This